{"version":3,"file":"main.js","mappings":"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;;;;;;;;;ACXnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/guards/auth-guard.service.ts","./src/app/core/guards/role-guard.service.ts","./src/app/core/helpers/chekPasswordValue.service.ts","./src/app/core/helpers/redirect.helper.ts","./src/app/core/http-interceptors/AppHttpInterceptorRequest.ts","./src/app/core/http-interceptors/AppHttpInterceptorResponse.ts","./src/app/core/http-interceptors/AuthInterceptorRequest.ts","./src/app/core/pipes/JoinTranslate.pipe.ts","./src/app/core/pipes/doc-historial.pipe.ts","./src/app/core/pipes/formato-mensajes-documentos.pipe.ts","./src/app/core/pipes/formato-moneda.pipe.ts","./src/app/core/pipes/html-sanitizado.pipe.ts","./src/app/core/pipes/megabytes.pipe.ts","./src/app/core/pipes/pipes.module.ts","./src/app/core/services/Storage.Service.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/configuration-services.service.ts","./src/app/core/services/connections.service.ts","./src/app/core/services/data/navigation.data.ts","./src/app/core/services/download.service.ts","./src/app/core/services/export.service.ts","./src/app/core/services/featureToggle.service.ts","./src/app/core/services/generic-toaster.service.ts","./src/app/core/services/google-analytics-events.service.ts","./src/app/core/services/jwt.service.ts","./src/app/core/services/logo.service.ts","./src/app/core/services/main-nav.service.ts","./src/app/core/services/mensaje.service.ts","./src/app/core/services/mensajes-documentos.service.ts","./src/app/core/services/modal.service.ts","./src/app/core/services/navigation.service.ts","./src/app/core/services/toaster.service.ts","./src/app/material-module.ts","./src/app/pages/asociador-sncy-nc/asociador-sncy-nc.component.ts","./src/app/pages/asociador-sncy-nc/asociador-sncy-nc.component.html","./src/app/pages/asociador-sncy-nc/dialog-view-documentos-asociados/dialog-view-documentos-asociados.component.ts","./src/app/pages/asociador-sncy-nc/dialog-view-documentos-asociados/dialog-view-documentos-asociados.component.html","./src/app/pages/asociador-sncy-nc/modelos/DatosSobre.ts","./src/app/pages/asociador-sncy-nc/modelos/ErrorOperadorSaldoStateMatcher.ts","./src/app/pages/asociador-sncy-nc/modelos/ErrorTipoDocNroDocumentoStateMatcher.ts","./src/app/pages/asociador-sncy-nc/servicios/asociador-sncy-nc.service.ts","./src/app/pages/conexiones/components/services/conexiones.service.ts","./src/app/pages/configuracion-seguridad/servicios/configuracion-seguridad.service.ts","./src/app/pages/consulta-facturas-credito/models/Busqueda/BusquedaDocumentos.ts","./src/app/pages/consulta-facturas-credito/services/table-fcred-data.service.ts","./src/app/pages/desuscripcion-de-notificaciones/desuscripcion-de-notificaciones.component.ts","./src/app/pages/desuscripcion-de-notificaciones/desuscripcion-de-notificaciones.component.html","./src/app/pages/desuscripcion-de-notificaciones/services/desuscripcion-de-notificaciones.service.ts","./src/app/pages/documentos-clientes/components/dialog-view-documents/dialog-view-documents.component.ts","./src/app/pages/documentos-clientes/components/dialog-view-documents/dialog-view-documents.component.html","./src/app/pages/documentos-clientes/components/filters/dialog-filters/service/dialog-filters.service.ts","./src/app/pages/documentos-clientes/components/models/BusquedaDocumentos.ts","./src/app/pages/documentos-clientes/components/models/ClienteRelacionDocumentosCliente.ts","./src/app/pages/documentos-clientes/components/models/DocumentosMasClientes.ts","./src/app/pages/documentos-clientes/components/models/SolicitudDescarga.ts","./src/app/pages/documentos-clientes/components/services/documentos-cliente.service.ts","./src/app/pages/documentos-clientes/components/services/table-data.service.ts","./src/app/pages/faq/faq.component.ts","./src/app/pages/faq/faq.component.html","./src/app/pages/home-page/accesos-directos-pp/accesos-directos-pp.component.ts","./src/app/pages/home-page/accesos-directos-pp/accesos-directos-pp.component.html","./src/app/pages/home-page/accesos-directos-pp/logo-pp/logo-pp.component.ts","./src/app/pages/home-page/accesos-directos-pp/logo-pp/logo-pp.component.html","./src/app/pages/home-page/accesos-directos-pp/modelos/Documento.ts","./src/app/pages/home-page/accesos-directos-pp/modelos/proveedor.ts","./src/app/pages/home-page/accesos-directos-pp/servicios/accesos-directos-home.service.ts","./src/app/pages/home-page/home-page.component.ts","./src/app/pages/home-page/home-page.component.html","./src/app/pages/home-page/services/home-page.service.ts","./src/app/pages/link-vencido/link-vencido.component.ts","./src/app/pages/link-vencido/link-vencido.component.html","./src/app/pages/login/login.component.ts","./src/app/pages/login/login.component.html","./src/app/pages/login/popup-credenciales/popup-credenciales.component.ts","./src/app/pages/login/popup-credenciales/popup-credenciales.component.html","./src/app/pages/main-k360/main-k360.component.ts","./src/app/pages/main-k360/main-k360.component.html","./src/app/pages/mensaje-critico/mensaje-critico.component.ts","./src/app/pages/mensaje-critico/mensaje-critico.component.html","./src/app/pages/modificar-contrasena/modificar-contrasena.component.ts","./src/app/pages/modificar-contrasena/modificar-contrasena.component.html","./src/app/pages/novedades/novedades.component.ts","./src/app/pages/novedades/novedades.component.html","./src/app/pages/novedades/services/novedades.service.ts","./src/app/pages/page-not-found/page-not-found.component.ts","./src/app/pages/page-not-found/page-not-found.component.html","./src/app/pages/politicas-de-privacidad/politicas-de-privacidad.component.ts","./src/app/pages/politicas-de-privacidad/politicas-de-privacidad.component.html","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-br/pyp-br.component.ts","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-br/pyp-br.component.html","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-es/pyp-es.component.ts","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-es/pyp-es.component.html","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-us/pyp-us.component.ts","./src/app/pages/politicas-de-privacidad/regionalizacion/pyp-us/pyp-us.component.html","./src/app/pages/seguimiento-factura-credito/seguimiento-factura-credito.component.ts","./src/app/pages/seguimiento-factura-credito/seguimiento-factura-credito.component.html","./src/app/pages/seguimiento-factura-credito/servicios/seguimiento-factura-credito.service.ts","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-br/tyc-br.component.ts","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-br/tyc-br.component.html","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-es/tyc-es.component.ts","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-es/tyc-es.component.html","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-us/tyc-us.component.ts","./src/app/pages/terminos-ycondiciones/regionalizacion/tyc-us/tyc-us.component.html","./src/app/pages/terminos-ycondiciones/terminos-ycondiciones.component.ts","./src/app/pages/terminos-ycondiciones/terminos-ycondiciones.component.html","./src/app/pages/usuarios-de-la-empresa/servicio/usuarios-de-la-empresa.service.ts","./src/app/shared/confirmacion-dialog/confirmacion-dialog.component.ts","./src/app/shared/confirmacion-dialog/confirmacion-dialog.component.html","./src/app/shared/connected-support/connected-support.component.ts","./src/app/shared/connected-support/connected-support.component.html","./src/app/shared/connections/connections.component.ts","./src/app/shared/connections/connections.component.html","./src/app/shared/dialog-conciliacion-contactar/dialog-conciliacion-contactar.component.ts","./src/app/shared/dialog-conciliacion-contactar/dialog-conciliacion-contactar.component.html","./src/app/shared/dialog-fake-door-button/dialog-fake-door-button.component.ts","./src/app/shared/dialog-fake-door-button/dialog-fake-door-button.component.html","./src/app/shared/directives/campo-decimal-coma.directive.ts","./src/app/shared/directives/campo-numerico.directive.ts","./src/app/shared/directives/doc-historial.directive.ts","./src/app/shared/directives/scroll-autohide.directive.ts","./src/app/shared/directives/stylePaginatorDirective.ts","./src/app/shared/directives/stylePaginatorDirectiveConections.ts","./src/app/shared/footer/footer.component.ts","./src/app/shared/footer/footer.component.html","./src/app/shared/main-nav/main-nav.component.ts","./src/app/shared/main-nav/main-nav.component.html","./src/app/shared/main-nav/main-nav.icons.ts","./src/app/shared/modal/modal.component.ts","./src/app/shared/modal/modal.component.html","./src/app/shared/navbar/navbar.component.ts","./src/app/shared/navbar/navbar.component.html","./src/app/shared/navbar/shared/admin-list/admin-list.component.ts","./src/app/shared/navbar/shared/admin-list/admin-list.component.html","./src/app/shared/navbar/shared/downloads-list/downloads-list.component.ts","./src/app/shared/navbar/shared/downloads-list/downloads-list.component.html","./src/app/shared/navbar/shared/mensajes-documentos/mensajes-documentos.component.ts","./src/app/shared/navbar/shared/mensajes-documentos/mensajes-documentos.component.html","./src/app/shared/navbar/shared/notification-panel/notification-panel.component.ts","./src/app/shared/navbar/shared/notification-panel/notification-panel.component.html","./src/app/shared/planex-logo/planex-logo.component.ts","./src/app/shared/planex-logo/planex-logo.component.html","./src/app/shared/shared.module.ts","./src/app/shared/switch/switch.component.ts","./src/app/shared/switch/switch.component.html","./src/app/shared/toaster/toaster.component.ts","./src/app/shared/toaster/toaster.component.html","./src/app/shared/utils/paginador-intl.ts","./src/app/shared/utils/utils.component.ts","./src/app/shared/vertical-menu/vertical-menu.component.ts","./src/app/shared/vertical-menu/vertical-menu.component.html","./src/app/shared/vertical-menu/vertical-menu.icons.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|canvas","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|fs","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|http","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|https","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|url","ignored|C:\\Pxw_ProgramFiles\\agents\\HF563.01\\_work\\68\\s\\node_modules\\pdfjs-dist\\build|zlib"],"sourcesContent":["import { MainK360Component } from './pages/main-k360/main-k360.component';\r\nimport { NgModule } from '@angular/core'\r\nimport { Routes, RouterModule } from '@angular/router'\r\n\r\nimport { RoleGuardService as RoleGuard } from './core/guards/role-guard.service'\r\nimport { VerticalMenuComponent } from './shared/vertical-menu/vertical-menu.component'\r\nimport { HomePageComponent } from './pages/home-page/home-page.component';\r\nimport { LoginComponent } from './pages/login/login.component'\r\nimport { FAQComponent } from './pages/faq/faq.component';\r\nimport { NovedadesComponent } from './pages/novedades/novedades.component';\r\nimport { ModificarContrasenaComponent } from './pages/modificar-contrasena/modificar-contrasena.component';\r\nimport { PoliticasDePrivacidadComponent } from './pages/politicas-de-privacidad/politicas-de-privacidad.component';\r\nimport { TerminosYCondicionesComponent } from './pages/terminos-ycondiciones/terminos-ycondiciones.component';\r\nimport { MensajeCriticoComponent } from './pages/mensaje-critico/mensaje-critico.component';\r\nimport { LinkVencidoComponent } from './pages/link-vencido/link-vencido.component';\r\nimport { DesuscripcionDeNotificacionesComponent } from './pages/desuscripcion-de-notificaciones/desuscripcion-de-notificaciones.component';\r\n\r\nconst routes: Routes = [\r\n\r\n { path: '', redirectTo: '/login', pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent, },\r\n { path: 'contrasena/crear', component: LoginComponent },\r\n { path: 'terminosYCondiciones', component: TerminosYCondicionesComponent },\r\n { path: 'politicasDePrivacidad', component: PoliticasDePrivacidadComponent },\r\n { path: 'desuscripcionMail/:userData', component: DesuscripcionDeNotificacionesComponent },\r\n {\r\n path: 'main/Home/index', redirectTo: 'main/home',\r\n },\r\n {\r\n path: 'main/terminosYCondiciones',\r\n component: TerminosYCondicionesComponent,\r\n children: [\r\n {\r\n path: 'es-AR',\r\n redirectTo: '/terminosYCondiciones',\r\n },\r\n {\r\n path: 'en-US',\r\n redirectTo: '/terminosYCondiciones',\r\n },\r\n {\r\n path: 'pt-BR',\r\n redirectTo: '/terminosYCondiciones',\r\n }\r\n ]\r\n },\r\n {\r\n path: 'main/politicasDePrivacidad',\r\n component: PoliticasDePrivacidadComponent,\r\n children: [\r\n {\r\n path: 'es-AR',\r\n redirectTo: '/politicasDePrivacidad',\r\n },\r\n {\r\n path: 'en-US',\r\n redirectTo: '/politicasDePrivacidad',\r\n },\r\n {\r\n path: 'pt-BR',\r\n redirectTo: '/politicasDePrivacidad',\r\n }\r\n ]\r\n },\r\n {\r\n path: 'main', component: MainK360Component,\r\n children: [\r\n {\r\n path: 'home',\r\n component: HomePageComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' },\r\n },\r\n {\r\n path: 'ayuda',\r\n component: FAQComponent,\r\n canActivate: [RoleGuard], data: { requiredRole: '*' },\r\n },\r\n {\r\n path: 'novedades',\r\n component: NovedadesComponent,\r\n canActivate: [RoleGuard], data: { requiredRole: '*' },\r\n },\r\n {\r\n path: 'contrasena/cambiar',\r\n component: ModificarContrasenaComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'Seguridad/ModificarContrasena' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/datosBasicos',\r\n loadChildren: () => import('./pages/datos-generales-empresa/datos-generales-empresa.module').then(m => m.DatosGeneralesEmpresaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/datosBasicos' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/ConfiguracionDatosExtraDocumentoSalida',\r\n loadChildren: () => import('./pages/datos-extra-en-documentos-salida/datos-extra-en-documentos-salida.module').then(m => m.DatosExtraEnDocumentosSalidaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/ConfiguracionDatosExtraDocumentoSalida' }\r\n },\r\n {\r\n path: 'documentos/:menuId',\r\n loadChildren: () => import('./pages/documentos-clientes/documentos-clientes.module').then(m => m.DocumentosClientesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/documentos' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/servicios',\r\n loadChildren: () => import('./pages/configuracion-servicios/configuracion-servicios.module').then(m => m.ConfiguracionServiciosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/servicios' }\r\n },\r\n {\r\n path: 'conexiones/:menuId',\r\n loadChildren: () => import('./pages/conexiones/conexiones.module').then(m => m.ConexionesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/conexiones' }\r\n },\r\n {\r\n path: 'conexiones/:menuId',\r\n loadChildren: () => import('./pages/conexiones/conexiones.module').then(m => m.ConexionesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/conexiones' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/componentes',\r\n loadChildren: () => import('./pages/estructura-empresa/estructura-empresa.module').then(m => m.EstructuraEmpresaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/datosBasicos' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/SubirArchivo',\r\n loadChildren: () => import('./pages/subir-documento/subir-documento.module').then(m => m.SubirDocumentoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/SubirArchivo' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/ConfiguracionEquivalenciaArticulos',\r\n loadChildren: () => import('./pages/configuracion-equivalencias-am/configuracion-equivalencias-am.module').then(m => m.ConfiguracionEquivalenciasAmModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/ConfiguracionEquivalenciaArticulos' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/ConfiguracionEquivalenciaClientes',\r\n loadChildren: () => import('./pages/equivalencia-estructuras/equivalencia-estructuras.module').then(m => m.EquivalenciaEstructurasModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/ConfiguracionEquivalenciaClientes' }\r\n },\r\n { \r\n path: 'ConfiguracionProcesosEspeciales/:menuId/ListaPrecios',\r\n loadChildren: () => import('./pages/lista-de-precios/lista-de-precios.module').then(m => m.ListaDePreciosModule), \r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/ListaPrecios' }\r\n },\r\n { \r\n path: 'ConfiguracionProcesosEspeciales/:menuId/CatalogoArticulosPrecios',\r\n loadChildren: () => import('./pages/catalogo-articulos-precios/catalogo-articulos-precios.module').then(m => m.CatalogoArticulosPreciosModule), \r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/seguridad',\r\n loadChildren: () => import('./pages/configuracion-seguridad/configuracion-seguridad.module').then(m => m.ConfiguracionSeguridadModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/seguridad' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/AltaMail',\r\n loadChildren: () => import('./pages/alta-documento-mail/alta-documento-mail.module').then(m => m.AltaDocumentoMailModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/AltaMail' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/MaestroArticulos',\r\n loadChildren: () => import('./pages/maestro-articulos/maestro-articulos.module').then(m => m.MaestroArticulosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/MaestroArticulos' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/ClientesMixtos',\r\n loadChildren: () => import('./pages/clientes-mixtos/clientes-mixtos.module').then(m => m.ClientesMixtosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/ClientesMixtos' }\r\n },\r\n {\r\n path: 'ConversionUnidades/:menuId/Destino',\r\n loadChildren: () => import('./pages/conversion-unidades/conversion-destino/conversion-destino.module').then(m => m.ConversionDestinoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConversionUnidades/Destino' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/ConversionUnidades/Destino',\r\n loadChildren: () => import('./pages/conversion-unidades/conversion-destino/conversion-destino.module').then(m => m.ConversionDestinoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' },\r\n },\r\n\r\n {\r\n path: 'ConversionUnidades/:menuId/Origen',\r\n loadChildren: () => import('./pages/conversion-unidades/conversion-origen/conversion-origen.module').then(m => m.ConversionOrigenModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConversionUnidades/Origen' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId/OperationCompany',\r\n loadChildren: () => import('./pages/operation-company/operation-company.module').then(m => m.OperationCompanyModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionProcesosEspeciales/OperationCompany' }\r\n },\r\n {\r\n path: 'ExampleModuleRoute', loadChildren: () => import('./pages/example-module/example-module.module').then(m => m.ExampleModuleModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n //Biblioteca de euge frula\r\n //{ path: 'indice-ui', loadChildren: () => import('./pages/indice-ui/indice-ui.module').then(m => m.IndiceUiModule) },\r\n {\r\n path: 'configuraciones/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/configuraciones' }\r\n },\r\n {\r\n path: 'operacionesEspeciales/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/operacionesEspeciales' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/eventos',\r\n loadChildren: () => import('./pages/eventos-new/eventos-module.module').then(x => x.EventosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' },\r\n },\r\n {\r\n path: 'backoffice/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' },\r\n },\r\n {\r\n path: 'backoffice/:menuId/configuracion-plantillas',\r\n loadChildren: () => import('./pages/configuracion-templates/configuracion-templates.module').then(m => m.ConfiguracionTemplatesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/Usuarios',\r\n loadChildren: () => import('./pages/usuarios-bo/usuarios-bo.module').then(m => m.UsuariosBoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n }, \r\n {\r\n path: 'backoffice/:menuId/configuracion-formulario-carga-manual',\r\n loadChildren: () => import('./pages/configuracion-formulario-carga-manual/configuracion-formulario-carga-manual.module').then(m => m.ConfiguracionFormularioCargaManualModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n },\r\n {\r\n path: 'ConfiguracionProcesosEspeciales/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/ConfiguracionProcesosEspeciales' }\r\n },\r\n {\r\n path: 'ConfiguracionDocumentos/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/ConfiguracionDocumentos' }\r\n },\r\n {\r\n path: 'ConversionUnidades/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/ConversionUnidades' }\r\n },\r\n {\r\n path: 'crearOrdenCompra/:menuId', loadChildren: () => import('./pages/carga-manual-oc/carga-manual-oc.module').then(m => m.CargaManualOcModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n {\r\n path: 'ConfiguracionDocumentos/:menuId',\r\n component: VerticalMenuComponent,\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/ConfiguracionDocumentos' }\r\n },\r\n {\r\n path: 'crear/:tipoDoc/:menuId', loadChildren: () => import('./pages/carga-manual/carga-manual-redirect.module').then(m => m.CargaManualRedirectModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n {\r\n path: 'crear/:tipoDoc/:menuId/argentina', loadChildren: () => import('./pages/carga-manual/paises/argentina/carga-manual.module').then(m => m.CargaManualModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n {\r\n path: 'crear/:tipoDoc/:menuId/mexico', loadChildren: () => import('./pages/carga-manual/paises/mexico/carga-manual-mexico.module').then(m => m.CargaManualMexicoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n },\r\n {\r\n path: 'operacionesEspeciales/:menuId/AsociadorSncyNcComponent',\r\n loadChildren: () => import('./pages/asociador-sncy-nc/asociador-sncy-nc.module').then(m => m.AsociadorSncyNcModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'operacionesEspeciales/AsociadorSncyNcComponent' }\r\n },\r\n { path: 'operacionesEspeciales/:menuId/SeguimientoFacturaCredito',\r\n loadChildren: () => import('./pages/seguimiento-factura-credito/seguimiento-factura-credito.module').then(m => m.SeguimientoFacturaCreditoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'operacionesEspeciales/SeguimientoFacturaCredito' }\r\n },\r\n { path: 'operacionesEspeciales/:menuId/ConsultaFacturaCreditoMiPyme',\r\n loadChildren: () => import('./pages/consulta-facturas-credito/consulta-facturas-credito.module').then(m => m.ConsultaFacturaCreditoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'operacionesEspeciales/ConsultaFacturaCreditoMiPyme' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/admUsuariosCorporativos',\r\n loadChildren: () => import('./pages/usuarios-de-la-empresa/usuarios-de-la-empresa.module').then(m => m.UsuariosDeLaEmpresaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/admUsuariosCorporativos' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/ConfiguracionNotificaciones',\r\n loadChildren: () => import('./pages/configuracion-notificacion/configuracion-notificacion.module').then(m => m.ConfiguracionNotificacionModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/ConfiguracionNotificaciones' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/Trafico',\r\n loadChildren: () => import('./pages/trafico-de-documentos/trafico-de-documentos.module').then(m => m.TraficoDeDocumentosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/Trafico' }\r\n },\r\n {\r\n path: 'operacionesEspeciales/:menuId/ImpresionOutboundDelivery',\r\n loadChildren: () => import('./pages/outbound-delivery/outbound-delivery.module').then(m => m.OutboundDeliveryModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'operacionesEspeciales/ImpresionOutboundDelivery' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/vistas',\r\n loadChildren: () => import('./pages/vistas/vistas.module').then(m => m.VistasModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/vistas' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/Representaciones',\r\n loadChildren: () => import('./pages/configuracion-representados/configuracion-representados.module').then(m => m.ConfiguracionRepresentadosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/Representaciones' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/Recordatorios',\r\n loadChildren: () => import('./pages/recordatorios-por-vencimiento/recordatorios-por-vencimiento.module').then(m => m.RecordatoriosPorVencimientoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/Recordatorios' }\r\n },\r\n {\r\n path: 'configuraciones/:menuId/Representantes',\r\n loadChildren: () => import('./pages/configuracion-representantes/configuracion-representantes.module').then(m => m.ConfiguracionRepresentantesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'configuraciones/Representantes' }\r\n },\r\n {\r\n path: 'ConfiguracionDocumentos/:menuId/ConfiguracionEmision',\r\n loadChildren: () => import('./pages/configuracion-documentos/configuracion-emision-documentos/configuracion-emision-documentos.module').then(m => m.ConfiguracionEmisionDocumentosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionDocumentos/ConfiguracionEmision' }\r\n },\r\n {\r\n path: 'ConfiguracionDocumentos/:menuId/validadorDeDocumentos',\r\n loadChildren: () => import('./pages/configuracion-documentos/configuracion-validador-documentos/configuracion-validador-documentos.module').then(m => m.ConfiguracionValidadorDocumentosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionDocumentos/validadorDeDocumentos' }\r\n },\r\n { \r\n path: 'ConfiguracionDocumentos/:menuId/ConfiguracionRecepcion', \r\n loadChildren: () => import('./pages/configuracion-documentos/configuracion-descarga-documentos/configuracion-descarga-documentos.module').then(m => m.ConfiguracionDescargaDocumentosModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'ConfiguracionDocumentos/ConfiguracionRecepcion' }\r\n },\r\n { \r\n path: 'backoffice/:idMenu/documentosBO', \r\n loadChildren: () => import('./pages/documentos-backoffice/documentos-backoffice.module').then(m => m.DocumentosBackofficeModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/documentosBO' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/TraficoBO',\r\n loadChildren: () => import('./pages/trafico-de-documentos-bo/trafico-de-documentos-bo.module').then(m => m.TraficoDeDocumentosBoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n }, \r\n {\r\n path: 'backoffice/:menuId/pistaAuditoria',\r\n loadChildren : () => import('./pages/pista-auditoria/pistas-auditoria.module').then(m => m.PistasAuditoriaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/Usuarios',\r\n loadChildren: () => import('./pages/usuarios-bo/usuarios-bo.module').then(m => m.UsuariosBoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n }, \r\n {\r\n path: 'backoffice/:menuId/conectar',\r\n loadChildren: () => import('./pages/soporte/soporte.module').then(m => m.SoporteModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '/backoffice' }\r\n }, \r\n {\r\n path: 'backoffice/:menuId/MensajesaClientes',\r\n loadChildren: () => import('./pages/mensajes-a-clientes/mensajes-a-clientes.module').then(m => m.MensajesAClientesModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/MensajesaClientes' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/mapas',\r\n loadChildren: () => import('./pages/mapas/mapas.module').then(m => m.MapasModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/mapas' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/visualizadores',\r\n loadChildren: () => import('./pages/visualizadores/visualizadores.module').then(m => m.VisualizadoresModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/visualizadores' }\r\n },\r\n {\r\n path: 'backoffice/:menuId/conexiones',\r\n loadChildren: () => import('./pages/conexiones-bo/conexiones-bo.module').then(m => m.ConexionesBoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/conexiones' }\r\n }, \r\n {\r\n path: 'renovacion/datosBasicos',\r\n loadChildren: () => import('./pages/renovacion-asistida/renovacion-asistida.module').then(m => m.RenovacionAsistidaModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: '*' }\r\n }, \r\n {\r\n path: 'backoffice/:menuId/ResumenTraficoDocumentos',\r\n loadChildren: () => import('./pages/resumen-trafico-documentos-bo/resumen-trafico-documentos-bo.module').then(m => m.ResumenTraficoDocumentosBoModule),\r\n canActivate: [RoleGuard],\r\n data: { requiredRole: 'backoffice/ResumenTraficoDocumentos' }\r\n }, \r\n ]\r\n },\r\n { path: 'main/mensajesCriticos', component: MensajeCriticoComponent },\r\n { path: 'linkVencido', component: LinkVencidoComponent },\r\n\r\n { path: '**', component: MainK360Component, canActivate: [RoleGuard], data: { requiredRole: '*' }, pathMatch: 'full' },\r\n //{ path: '**', redirectTo: '/main', pathMatch: 'full' }\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component} from '@angular/core'\r\nimport { TranslateService } from '@ngx-translate/core'\r\nimport { AuthService } from './core/services/auth.service'\r\nimport { GenericToasterService } from './core/services/generic-toaster.service'\r\nimport { ToasterService } from './core/services/toaster.service'\r\nimport { Router, NavigationEnd } from '@angular/router'\r\nimport { environment } from '../environments/environment'\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { MatDialog } from '@angular/material/dialog'\r\n\r\n// declare ga as a function to access the JS code in TS\r\ndeclare let ga: Function;\r\ndeclare let gtag: Function;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent {\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n public toasterService: ToasterService,\r\n public genericToasterService: GenericToasterService,\r\n public authService: AuthService,\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private dialogService: MatDialog\r\n )\r\n {\r\n this.grabTheTrackId();\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n gtag('event', 'page_view', { page_path: event.urlAfterRedirects });\r\n }\r\n });\r\n }\r\n\r\n title = 'krikos360-angular'\r\n\r\n ngOnInit(): void {\r\n this.translate.addLangs(['es-AR','en-US','pt-BR']);\r\n let cultura = this.cookieService.get('ucultura');\r\n if(!cultura){\r\n cultura = this.authService.getUserData()?.Cultura || 'es-AR';\r\n if(cultura) this.cookieService.set('ucultura', cultura || 'es-AR',{ path: '/', secure:true,sameSite: \"Strict\"});\r\n }\r\n this.translate.setDefaultLang(cultura ||'es-AR');\r\n\r\n }\r\n\r\n grabTheTrackId(){\r\n let gaTrackId = environment.gaTrackId\r\n let customGtagScriptEle: HTMLScriptElement = document.createElement('script');\r\n customGtagScriptEle.async = true;\r\n customGtagScriptEle.src = 'https://www.googletagmanager.com/gtag/js?id=' + gaTrackId;\r\n document.head.prepend(customGtagScriptEle);\r\n gtag('config', gaTrackId, { send_page_view: false, cookie_flags: 'max-age=7200;secure;samesite=none' });\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n","// Module imports\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { LOCALE_ID, NgModule } from '@angular/core';\r\nimport { CurrencyPipe, DatePipe, registerLocaleData } from '@angular/common';\r\nimport { HttpClient, HttpClientModule, HttpClientXsrfModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { PipesModule } from './core/pipes/pipes.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\r\nimport {TranslateModule, TranslateLoader, TranslateService} from '@ngx-translate/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\n\r\n\r\n\r\nimport { IPublicClientApplication, PublicClientApplication, BrowserCacheLocation, LogLevel, InteractionType } from '@azure/msal-browser';\r\nimport { MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalInterceptorConfiguration, MSAL_GUARD_CONFIG,\r\n MsalGuardConfiguration, MsalBroadcastService, MsalService, MsalGuard, MsalRedirectComponent,\r\n MsalModule, MsalInterceptor,\r\n} from '@azure/msal-angular';\r\n\r\n\r\n// Services\r\nimport { ToasterService } from './core/services/toaster.service';\r\n\r\n// Component imports\r\nimport { AppComponent } from './app.component';\r\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\r\nimport { AuthInterceptorRequest } from './core/http-interceptors/AuthInterceptorRequest';\r\n\r\n// FontAwesome imports\r\nimport {\r\n FaIconLibrary, FontAwesomeModule,\r\n} from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { far } from '@fortawesome/free-regular-svg-icons';\r\nimport { AuthService } from './core/services/auth.service';\r\nimport { HomePageComponent } from './pages/home-page/home-page.component';\r\nimport { GenericToasterService } from './core/services/generic-toaster.service';\r\nimport { AuthGuardService } from './core/guards/auth-guard.service';\r\nimport { RoleGuardService } from './core/guards/role-guard.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { PaginatorI18n } from './shared/utils/paginador-intl';\r\nimport { LoginComponent } from './pages/login/login.component';\r\nimport { GoogleAnalyticsEventsService } from './core/services/google-analytics-events.service';\r\nimport { StorageService } from './core/services/Storage.Service';\r\nimport { MainK360Component } from './pages/main-k360/main-k360.component';\r\nimport { PasswordStrengthMeterModule } from 'angular-password-strength-meter';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { FAQComponent } from './pages/faq/faq.component';\r\nimport { NovedadesComponent } from './pages/novedades/novedades.component';\r\nimport { ModificarContrasenaComponent } from './pages/modificar-contrasena/modificar-contrasena.component';\r\nimport { TerminosYCondicionesComponent } from './pages/terminos-ycondiciones/terminos-ycondiciones.component';\r\nimport { PoliticasDePrivacidadComponent } from './pages/politicas-de-privacidad/politicas-de-privacidad.component';\r\nimport { MensajeCriticoComponent } from './pages/mensaje-critico/mensaje-critico.component';\r\nimport { TycESComponent } from './pages/terminos-ycondiciones/regionalizacion/tyc-es/tyc-es.component';\r\nimport { TycUSComponent } from './pages/terminos-ycondiciones/regionalizacion/tyc-us/tyc-us.component';\r\nimport { TycBRComponent } from './pages/terminos-ycondiciones/regionalizacion/tyc-br/tyc-br.component';\r\nimport { PypESComponent } from './pages/politicas-de-privacidad/regionalizacion/pyp-es/pyp-es.component';\r\nimport { PypUSComponent } from './pages/politicas-de-privacidad/regionalizacion/pyp-us/pyp-us.component';\r\nimport { PypBRComponent } from './pages/politicas-de-privacidad/regionalizacion/pyp-br/pyp-br.component';\r\nimport { LinkVencidoComponent } from './pages/link-vencido/link-vencido.component';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport { NavbarComponent } from './shared/navbar/navbar.component';\r\nimport { SlickCarouselModule } from 'ngx-slick-carousel';\r\nimport { AsociadorSncyNcComponent } from './pages/asociador-sncy-nc/asociador-sncy-nc.component';\r\nimport { AppHttpInterceptorRequest } from './core/http-interceptors/AppHttpInterceptorRequest';\r\nimport { AppHttpInterceptorResponse } from './core/http-interceptors/AppHttpInterceptorResponse';\r\nimport { AccesosDirectosPpComponent } from './pages/home-page/accesos-directos-pp/accesos-directos-pp.component';\r\nimport { LogoPpComponent } from './pages/home-page/accesos-directos-pp/logo-pp/logo-pp.component';\r\nimport { AvatarModule } from 'ngx-avatar';\r\nimport { SeguimientoFacturaCreditoComponent } from './pages/seguimiento-factura-credito/seguimiento-factura-credito.component';\r\nimport { environment } from './../environments/environment';\r\nimport { PopUpCredencialesComponent } from './pages/login/popup-credenciales/popup-credenciales.component';\r\nimport { DesuscripcionDeNotificacionesComponent } from './pages/desuscripcion-de-notificaciones/desuscripcion-de-notificaciones.component';\r\n\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient,\"/v2/assets/i18n/\",\".json\");\r\n}\r\n\r\n\r\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\n\r\n//Metodo para loguear info despues del callback de la generacion del token\r\nexport function loggerCallback(logLevel: LogLevel, message: string) {\r\n // console.log(message);\r\n}\r\n\r\n//La funci�n se utiliza para configurar y crear una instancia de la librer�a MSAL para su uso en una aplicaci�n. \r\n//La interfaz�IPublicClientApplication representa una aplicaci�n cliente p�blica\r\n//que se puede utilizar para autenticar usuarios y adquirir tokens para recursos protegidos\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: environment.clientId,\r\n redirectUri: environment.redirectUri,\r\n knownAuthorities: environment.knownAuthorities,\r\n postLogoutRedirectUri: environment.redirectUri\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage,\r\n storeAuthStateInCookie: isIE, // set to true for IE 11\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false,\r\n },\r\n },\r\n });\r\n}\r\n\r\n//#region \r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: ['user.read'],\r\n },\r\n };\r\n}\r\n//#endregion\r\n\r\n@NgModule({\r\n declarations: [AppComponent, PageNotFoundComponent, HomePageComponent, LoginComponent, MainK360Component, FAQComponent, NovedadesComponent, ModificarContrasenaComponent, TerminosYCondicionesComponent, PoliticasDePrivacidadComponent, MensajeCriticoComponent, LinkVencidoComponent, TycESComponent, TycUSComponent, TycBRComponent, PypESComponent, PypUSComponent, PypBRComponent, AsociadorSncyNcComponent, AccesosDirectosPpComponent, LogoPpComponent, SeguimientoFacturaCreditoComponent, PopUpCredencialesComponent, DesuscripcionDeNotificacionesComponent],\r\n imports: [\r\n AvatarModule,\r\n SlickCarouselModule,\r\n ScrollingModule,\r\n BrowserModule,\r\n RouterModule.forRoot([], { relativeLinkResolution: 'legacy' }),\r\n HttpClientXsrfModule.withOptions({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'X-XSRF-TOKEN'\r\n }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n AppRoutingModule,\r\n NgbModule,\r\n FontAwesomeModule,\r\n HttpClientModule,\r\n SharedModule,\r\n PipesModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot({ preventDuplicates: true }),\r\n PasswordStrengthMeterModule,\r\n NgxChartsModule,\r\n CarouselModule,\r\n ChartsModule,\r\n PdfViewerModule\r\n ],\r\n providers: [\r\n CurrencyPipe,\r\n ToasterService,\r\n GenericToasterService,\r\n AuthService,\r\n AuthGuardService,\r\n RoleGuardService,\r\n StorageService,\r\n GoogleAnalyticsEventsService,\r\n { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptorResponse, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptorRequest, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptorRequest, multi: true },\r\n { provide: MSAL_INSTANCE, useFactory: MSALInstanceFactory },\r\n { provide: MSAL_GUARD_CONFIG, useFactory: MSALGuardConfigFactory },\r\n //{ provide: HTTP_INTERCEPTORS, useClass: HelperInterceptorRequest, multi: true }, Este sirve por si hay q verificar las conexiones a la api, dejar comentado\r\n { provide: MatPaginatorIntl, deps:[TranslateService], useFactory:(translateService: TranslateService) => new PaginatorI18n(translateService).getPaginatorIntl() },\r\n { provide: LOCALE_ID, useFactory: (authService: AuthService) => authService.getUserData()?.Cultura || 'es-AR', deps: [AuthService]},\r\n DatePipe,\r\n CookieService,\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n ],\r\n bootstrap: [AppComponent, MsalRedirectComponent]\r\n})\r\nexport class AppModule {\r\n constructor(library: FaIconLibrary) {\r\n // Add an icon to the library for convenient access in other components\r\n library.addIconPacks(fas, far);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { CanActivate } from '@angular/router'\r\nimport { AuthService } from '../services/auth.service'\r\nimport { environment } from 'src/environments/environment';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor(\r\n private authService: AuthService,\r\n @Inject(DOCUMENT) private document: Document\r\n ) {}\r\n\r\n canActivate(): boolean {\r\n let legacyURL = `${environment.url}/index.html#/`\r\n if (!this.authService.isAuthenticated()) {\r\n\r\n if (environment.production) {\r\n this.document.location.href = legacyURL\r\n } else {\r\n // if not in production environment, redirect after a minute\r\n // so that we have time to load a token in sessionStorage\r\n setTimeout(() => {\r\n //this.document.location.href = legacyURL\r\n this.document.location.href = this.document.location.href\r\n }, 160000);\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { AuthService } from '../services/auth.service'\r\nimport { ActivatedRouteSnapshot, CanActivate, Data, Router } from '@angular/router'\r\nimport { environment } from 'src/environments/environment';\r\nimport { DOCUMENT, PathLocationStrategy } from '@angular/common';\r\nimport { RedirectHelper } from '../helpers/redirect.helper';\r\n\r\n\r\ninterface RouteRoleData {\r\n requiredRole: string\r\n}\r\n\r\ninterface Route extends ActivatedRouteSnapshot {\r\n data: Data | RouteRoleData\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoleGuardService implements CanActivate {\r\n\r\n constructor(private authService: AuthService, private router: Router, @Inject(DOCUMENT) private document: Document,\r\n private redirectHelper: RedirectHelper\r\n ) { }\r\n\r\n canActivate(route: Route): boolean {\r\n const { requiredRole } = route.data\r\n let legacyURL = `${environment.url}/index.html#`;\r\n if (!this.authService.isAuthenticated()) {\r\n // @todo redirect to login page\r\n sessionStorage.removeItem('token');\r\n sessionStorage.removeItem('ClientesHolding');\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n // guardo el href para hacer la redireccion cuando estemos logueados\r\n this.redirectHelper.setRedirectUrlParams(route);\r\n this.router.navigate(['login']);\r\n\r\n //document se agrega para poder hacer la redireccion al sitio legacy\r\n //cuando este activo el login actual hay que quitar esto y habilitar por this.router.navigate\r\n //this.document.location.href = legacyURL\r\n return false\r\n }\r\n\r\n if (!this.authService.hasRole(requiredRole)) {\r\n // @todo redirect to \"unauthorized\" error page if any\r\n // this.router.navigate(['unauthorized'])\r\n return false\r\n }\r\n\r\n if (sessionStorage.getItem(\"pm\") != undefined) {\r\n let ruta = route.url.map(x => x.path).join('/');\r\n var paginas = JSON.parse(sessionStorage.getItem(\"pm\") || '');\r\n\r\n // parche: algunas rutas no empiezan con /main le agrego la barra\r\n if (ruta.startsWith('main/')) {\r\n ruta = '/' + ruta;\r\n }\r\n\r\n paginas?.forEach((item: any, index: number) => {\r\n paginas[index] = \"/main\" + item;\r\n });\r\n let dir = ruta.match('main') ? ruta : ('/main/' + ruta);\r\n if (paginas?.includes(dir))\r\n return true;\r\n else {\r\n\r\n let redireccionar = ruta.match('/main') ? ruta.replace('/main', '') : ruta;\r\n this.document.location.href = legacyURL + redireccionar;\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChekPasswordValueService {\r\n\r\nconstructor() { }\r\n\r\n esTextoAlfa(pass: string): boolean {\r\n const regex = /([a-zA-Z])/;\r\n return regex.test(pass)\r\n }\r\n tieneMayuscula(pass: string): boolean {\r\n const regex = /([A-Z])/;\r\n return regex.test(pass)\r\n };\r\n tieneMinuscula(pass: string): boolean {\r\n const regex = /([a-z])/;\r\n return regex.test(pass)\r\n };\r\n tieneNumero(pass: string): boolean {\r\n const regex = /([0-9])/;\r\n return regex.test(pass)\r\n };\r\n tieneCaracterEspecial(pass: string): boolean {\r\n const regex = /.[!,@,#,$,%,\\^,&,*,?,¿,_,~,¡,=,),(,\\/,\",|,.,:,;,\\-,',\\+,<,>,[,\\],{,}]/;\r\n return regex.test(pass)\r\n };\r\n\r\n complegidadMedia(pass: string): boolean {\r\n return this.esTextoAlfa(pass) && this.tieneNumero(pass) && this.tieneMayuscula(pass) && this.tieneMinuscula(pass) && this.tieneCaracterEspecial(pass);\r\n }\r\n\r\n complejidadAlta(pass: string): boolean {\r\n return this.complegidadMedia(pass) && pass.length > 9;\r\n }\r\n}\r\n","import { Injectable, Query } from '@angular/core';\r\n// import { environment } from 'src/environments/environment';\r\nimport { ActivatedRouteSnapshot, Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RedirectHelper {\r\n\r\n private redirectPathQuery: {\r\n path: string | undefined,\r\n queryParams: object\r\n };\r\n\r\n constructor(private router: Router) { }\r\n\r\n /**\r\n * redirecciona al path y query seteados\r\n */\r\n redirect() {\r\n this.router.navigate(\r\n [this.redirectPathQuery.path],\r\n { queryParams: this.redirectPathQuery.queryParams }\r\n );\r\n }\r\n\r\n /**\r\n * Evalua si debe redireccionar basandose en si existe path y query seteados previamente.\r\n * @returns si debe redireccionar\r\n */\r\n tengoQueRedireccionar(): boolean {\r\n return !!this.redirectPathQuery;\r\n }\r\n\r\n setRedirectUrlParams(route: ActivatedRouteSnapshot): void {\r\n let basePath = route.parent?.url.map(url => url.path).join('/');\r\n let relativePath = route.url.map(url => url.path).join('/');\r\n this.redirectPathQuery = {\r\n path: `${basePath}/${relativePath}`,\r\n queryParams: route.queryParams\r\n };\r\n }\r\n\r\n}","\r\nimport {Injectable} from \"@angular/core\";\r\nimport {HttpEvent, HttpHandler, HttpInterceptor,HttpRequest} from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AppHttpInterceptorRequest implements HttpInterceptor {\r\n constructor() {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n req = req.clone({\r\n setHeaders: {\r\n \"Permissions-Policy\": \"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=(), interest-cohort=()\",\r\n \"Strict-Transport-Security\": \"max-age=31536000; includeSubdomains\",\r\n \"X-Frame-Options\": \"SAMEORIGIN\",\r\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\r\n \"X-Content-Type-Options\": \"nosniff\",\r\n \"X-Xss-Protection\": \"1; mode=block\",\r\n \"Content-Security-Policy\": \"default-src 'self'; form-action 'self'; script-src 'unsafe-inline' 'self'\"\r\n }\r\n });\r\n return next.handle(req);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpEvent, HttpResponse, HttpRequest, HttpHandler } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map, filter } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AppHttpInterceptorResponse implements HttpInterceptor {\r\n intercept(httpRequest: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(httpRequest).pipe(\r\n filter(event => event instanceof HttpResponse),\r\n map((event: HttpResponse) =>\r\n event.clone({\r\n headers: event.headers\r\n .set('Permissions-Policy', 'accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=(), interest-cohort=()')\r\n .set('Strict-Transport-Security', 'max-age=31536000; includeSubdomains')\r\n .set('X-Frame-Options', 'SAMEORIGIN')\r\n .set('Referrer-Policy', 'strict-origin-when-cross-origin')\r\n .set('X-Content-Type-Options', 'nosniff')\r\n .set('X-Xss-Protection', '1; mode=block')\r\n .set('Content-Security-Policy', 'report-uri /csp-violation-report-endpoint/')\r\n }))\r\n );\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n/** Pass untouched request through to the next request handler. */\r\n@Injectable()\r\nexport class AuthInterceptorRequest implements HttpInterceptor {\r\n constructor(private authService: AuthService,\r\n private router: Router,\r\n private dialogService: MatDialog) {}\r\n private urlsSinToken = [\"acceso\",\"i18n\",\"version\", \"contrasena/crear\", \"getmensajesparaelusuariobyresourcekey\", \"desuscripcionmail\"];\r\n\r\n intercept(req: HttpRequest, next: HttpHandler):\r\n Observable> {\r\n\r\n // TODO SACAR CUANDO SE VALIDE DESDE EL BACK EL TOKEN\r\n var url = req.url.toLowerCase();\r\n var sinToken = true;\r\n if(!(url.includes(\"acceso/recuperarcontrasena\") && req.body.rtu === \"\")){\r\n this.urlsSinToken.forEach(cada => {\r\n if(url.includes(cada))\r\n sinToken = false;\r\n });\r\n }\r\n\r\n if(sinToken && !this.authService.isAuthenticated() ){\r\n sessionStorage.removeItem('token');\r\n sessionStorage.removeItem('ClientesHolding');\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.router.navigateByUrl('/login')\r\n const sinAuthReq = req.clone();\r\n return next.handle(sinAuthReq);\r\n }\r\n const authHeader = `Bearer ${this.authService.getRawToken()}`;\r\n const authReq = req.clone({headers: req.headers.set('Authorization', authHeader)});\r\n return next.handle(authReq);\r\n\r\n }\r\n\r\n}\r\n","\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'joinTranslate',\r\n pure: false\r\n})\r\n\r\nexport class JoinTranslatePipe implements PipeTransform {\r\n\r\n constructor( private translate: TranslateService){\r\n //translate.addLangs(['es-AR','en-US','pt-BR']);\r\n }\r\n\r\n transform(input: Array): string {\r\n let result: string[] = input.map(x=> {return this.translate.instant(x)});\r\n return result.join(', ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform, ViewContainerRef } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'DocHistorial' })\r\nexport class DocHistorialPipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer,\r\n public readonly elementRef: ViewContainerRef) {\r\n\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.domSanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatoMensajesDocumentos'\r\n})\r\nexport class FormatoMensajesDocumentosPipe implements PipeTransform {\r\n\r\n transform(value: string): string {\r\n if ((value.length - 3) > 300) {\r\n let shortValue : string = value.substring(0, 303) + \"...\";\r\n return shortValue.replace(\"*#*\", \"
\");\r\n }else{\r\n return value.replace(\"*#*\", \"
\");\r\n }\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { isNullOrEmptyOrUndefined } from 'src/app/shared/utils/utils.component';\r\n\r\n@Pipe({\r\n name: 'formatoMoneda',\r\n pure: true\r\n})\r\n\r\nexport class FormatoMoneda implements PipeTransform {\r\n\r\n \r\n constructor( private translate: TranslateService){\r\n }\r\n \r\n transform(input: number, maximumFractionDigits: number): string {\r\n const lang: string = this.translate.defaultLang;\r\n const formatter = new Intl.NumberFormat(lang,{\r\n style: 'currency',\r\n currency: 'ARS',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: isNullOrEmptyOrUndefined(maximumFractionDigits) == true ? 2 : maximumFractionDigits\r\n })\r\n // @ts-ignore: Salta un error por la version desactualizada de TS\r\n const output: string = formatter.formatToParts(input).map(({type, value}) => {\r\n switch (type) {\r\n case 'currency': return '';\r\n default: return value;\r\n }\r\n }).reduce((string: string, part: string) => string + part);\r\n return output.trim();\r\n }\r\n}","import { Pipe, PipeTransform, ViewContainerRef } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'HtmlSanitizado' })\r\nexport class HtmlSanitizado implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer,\r\n public readonly elementRef: ViewContainerRef) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.domSanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'megabytes'\r\n})\r\nexport class MegabytesPipe implements PipeTransform {\r\n\r\n transform(value: number): string {\r\n let size = value / 1024\r\n let formattedSize = size.toFixed(2)\r\n return `${formattedSize} MB`;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MegabytesPipe } from './megabytes.pipe';\r\nimport { JoinTranslatePipe } from './JoinTranslate.pipe';\r\nimport { FormatoMoneda } from './formato-moneda.pipe'\r\nimport { DocHistorialPipe } from './doc-historial.pipe';\r\nimport { FormatoMensajesDocumentosPipe } from './formato-mensajes-documentos.pipe'\r\nimport { HtmlSanitizado } from './html-sanitizado.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MegabytesPipe,JoinTranslatePipe,FormatoMoneda,DocHistorialPipe, FormatoMensajesDocumentosPipe, HtmlSanitizado],\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MegabytesPipe,JoinTranslatePipe,FormatoMoneda,DocHistorialPipe, FormatoMensajesDocumentosPipe, HtmlSanitizado]\r\n})\r\nexport class PipesModule { }\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable()\r\n export class StorageService {\r\n\r\n getHoldingMode() : boolean {\r\n const clientesHolding: any = JSON.parse(sessionStorage.getItem(\"ClientesHolding\")!)\r\n return clientesHolding.MostrarHolding;\r\n }\r\n\r\n getClientesHolding() : any { \r\n return JSON.parse(sessionStorage.getItem('ClientesHolding') ?? '{}');\r\n }\r\n \r\n// private cantidadItemsEvent = new BehaviorSubject(0);\r\n// cantidadItemsActual = this.cantidadItemsEvent.asObservable();\r\n\r\n// setEmpresaVendedora(empresaVendedora: EmpresaView) {\r\n// localStorage.setItem(\"empresaVendedora\", JSON.stringify(empresaVendedora));\r\n// }\r\n\r\n// getEmpresaVendedora()\r\n// : EmpresaView {\r\n// return JSON.parse(localStorage.getItem(\"empresaVendedora\"));\r\n// }\r\n\r\n// setEmpresa(empresa: EmpresaView) {\r\n// localStorage.setItem(\"empresa\", JSON.stringify(empresa));\r\n// }\r\n\r\n// getEmpresa()\r\n// : EmpresaView {\r\n// return JSON.parse(localStorage.getItem(\"empresa\"));\r\n// }\r\n\r\n// setUsuario(usuario: UsuarioView) {\r\n// localStorage.setItem(\"usuario\", JSON.stringify(usuario));\r\n// }\r\n\r\n// getUsuario()\r\n// : UsuarioView {\r\n// return JSON.parse(localStorage.getItem(\"usuario\"));\r\n// }\r\n\r\n// setDivisionesHabilitadas(divisionesHabilitadas: DivisionView[]) {\r\n// localStorage.setItem(\"divisionesHabilitadas\", JSON.stringify(divisionesHabilitadas));\r\n// }\r\n\r\n// getDivisionesHabilitadas()\r\n// : DivisionView[] {\r\n// return JSON.parse(localStorage.getItem(\"divisionesHabilitadas\"));\r\n// }\r\n\r\n// setSucursalesHabilitadas(sucursalesHabilitadas: SucursalView[]) {\r\n// localStorage.setItem(\"sucursalesHabilitadas\", JSON.stringify(sucursalesHabilitadas));\r\n// }\r\n\r\n// getSucursalesHabilitadas()\r\n// : SucursalView[] {\r\n// return JSON.parse(localStorage.getItem(\"sucursalesHabilitadas\"));\r\n// }\r\n\r\n// setLugaresDeEntregaHabilitados(lugaresDeEntregaHabilitados: LugarDeEntregaView[]) {\r\n// localStorage.setItem(\"lugaresDeEntregaHabilitados\", JSON.stringify(lugaresDeEntregaHabilitados));\r\n// }\r\n\r\n// getLugaresDeEntregaHabilitados()\r\n// : LugarDeEntregaView[] {\r\n// return JSON.parse(localStorage.getItem(\"lugaresDeEntregaHabilitados\"));\r\n// }\r\n\r\n// setCabeceraPedido(cabeceraPedido: PedidoCabeceraView) {\r\n// localStorage.setItem(\"cabeceraPedido\", JSON.stringify(cabeceraPedido));\r\n// }\r\n\r\n// getDetallePedido()\r\n// : ItemDePedidoView[] {\r\n// return JSON.parse(localStorage.getItem(\"detallePedido\"));\r\n// }\r\n\r\n// setDetallePedido(detallePedido: ItemDePedidoView[]) {\r\n// localStorage.setItem(\"detallePedido\", JSON.stringify(detallePedido));\r\n// // mover esto al carrito service cuando se saque el carrito del localstorage\r\n// this.cantidadItemsEvent.next(detallePedido != null ? detallePedido.length : 0);\r\n// }\r\n\r\n// getCabeceraPedido()\r\n// : PedidoCabeceraView {\r\n// return JSON.parse(localStorage.getItem(\"cabeceraPedido\"));\r\n// }\r\n\r\n// setFiltroPedidos(filtroPedidos: FiltroPedidos) {\r\n// localStorage.setItem(\"filtroPedidos\", JSON.stringify(filtroPedidos));\r\n// }\r\n\r\n// getFiltroPedidos()\r\n// : FiltroPedidos {\r\n// return JSON.parse(localStorage.getItem(\"filtroPedidos\"));\r\n// }\r\n }\r\n","import { Injectable } from '@angular/core'\r\nimport { TokenUserData } from '../models/accessToken'\r\nimport { clienteHolding } from '../models/clienteHolding'\r\nimport { JwtService } from './jwt.service'\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { isNullOrEmptyOrUndefined } from 'src/app/shared/utils/utils.component';\r\nimport { GenericToasterService } from './generic-toaster.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public userdata: any\r\n public hasValidToken: boolean = false\r\n\r\n constructor(private jwtService: JwtService, public http: HttpClient, private genericToasterService: GenericToasterService ) {}\r\n\r\n isAuthenticated(): boolean {\r\n const accessToken = this.jwtService.getAccessToken()\r\n\r\n if (!accessToken) {\r\n return false\r\n }\r\n this.userdata = accessToken.userdata\r\n const exp = accessToken.exp * 1000\r\n this.hasValidToken = exp >= new Date().getTime()\r\n return this.hasValidToken\r\n }\r\n\r\n hasRole(role: string): boolean {\r\n const accessToken = this.jwtService.getAccessToken();\r\n if (role == '*')\r\n return true;\r\n\r\n return accessToken ? accessToken.role.includes(role) : false\r\n }\r\n\r\n getUserData(): TokenUserData | undefined {\r\n const accessToken = this.jwtService.getAccessToken()\r\n if (accessToken && accessToken.userdata) {\r\n return accessToken.userdata\r\n }\r\n }\r\n\r\n getTimeZone(): string {\r\n if(this.getUserData())\r\n return 'GMT' + this.getUserData()?.Cliente.UtcOffsetString;\r\n return '';\r\n \r\n }\r\n\r\n getRawToken(): string | null {\r\n return sessionStorage.getItem('token');\r\n }\r\n\r\n getClienteHolding(): clienteHolding {\r\n const clientesHolding: clienteHolding = JSON.parse(sessionStorage.getItem(\"ClientesHolding\")!)\r\n return clientesHolding\r\n }\r\n\r\n getLogin(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/Login`, body)\r\n }\r\n\r\n getLoginMultiEmpresa(body: any, socialLogin: boolean){\r\n return this.http.post(`${environment.apiUrl}/Acceso/LoginMultiEmpresa/${socialLogin}`, body)\r\n }\r\n\r\n async getClientesHoldingFromApi(): Promise {\r\n try {\r\n const data = await this.http.get(`${environment.apiUrl}/Cliente/GetClientesHolding`)\r\n .toPromise();\r\n //TODO: Verificar esta basura porque no encontramos forma de que tome las propiedades en mayuscula.\r\n // --> ver config backend: newtonsoft json serializer set to camelCase\r\n const clientes = data.map((cliente: any) => ({\r\n Id: cliente.id,\r\n IdPais: cliente.idPais,\r\n RazonSocial: cliente.razonSocial,\r\n EstadoAutenticacion: cliente.estadoAutenticacion,\r\n IdInterno: cliente.idInterno,\r\n Owner: cliente.owner,\r\n EsHolding: cliente.esHolding,\r\n Acceso: cliente.acceso,\r\n AliasEmpresa: cliente.aliasEmpresa,\r\n CantidadEstructuras: cliente.cantidadEstructuras,\r\n Identificador: cliente.identificador,\r\n Domicilio: cliente.domicilio,\r\n CodigoTipoIdentificacion: cliente.codigoTipoIdentificacion\r\n }));\r\n sessionStorage.setItem(\"ClientesHolding\", JSON.stringify({ clientes, MostrarHolding: clientes.length > 1 }));\r\n } catch (err) {\r\n this.genericToasterService.pushError(\"ERROR_APLICACION\");\r\n };\r\n }\r\n\r\n getOwner(){\r\n const clientesHolding = JSON.parse(sessionStorage.getItem('ClientesHolding')!);\r\n let ownerIndex = 0;\r\n const empresas = clientesHolding.clientes.map((client: any, index: any) => {\r\n if (client.Owner) {\r\n ownerIndex = index;\r\n }\r\n return {\r\n id: client.Id,\r\n idPais: client.IdPais,\r\n razonSocial: client.RazonSocial,\r\n }\r\n });\r\n return empresas[ownerIndex];\r\n }\r\n\r\n getPantallasMigradasFromApi() {\r\n this.http.get(`${environment.apiUrl}/Acceso/RecuperarPantallasMigradas`)\r\n .subscribe(\r\n (data: any) => {\r\n // es responsabilidad del auth service?\r\n sessionStorage.setItem(\"pm\", JSON.stringify(data));\r\n },\r\n (err) => {\r\n this.genericToasterService.pushError(\"ERROR_APLICACION\");\r\n });\r\n }\r\n\r\n getFuncionesFromToken() {\r\n const accessToken = this.jwtService.getAccessToken();\r\n sessionStorage.setItem(\"Funciones\", JSON.stringify(accessToken?.role));\r\n }\r\n\r\n getRecuperarContrasena(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/RecuperarContrasena`, body)\r\n }\r\n\r\n postRenovarContrasena(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/RenovarContrasena`, body)\r\n }\r\n\r\n postGenerarNuevaContrasena(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/GenerarNuevaContrasena`, body)\r\n }\r\n\r\n postGenerarUsuarioCredencialesSociales(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/GenerarUsuarioCredencialesSociales`, body)\r\n }\r\n actualizarUsaSocialLogin(body: any){\r\n return this.http.post(`${environment.apiUrl}/Acceso/UsuarioUsaCredencialesSociales`, body)\r\n }\r\n \r\n desconectarSoporte(){\r\n return this.http.get(`${environment.apiUrl}/Acceso/DesconectarSoporte`)\r\n }\r\n generarTokenJWT(){\r\n return this.http.get(`${environment.apiUrl}/Acceso/GenerarTokenJWT`)\r\n }\r\n\r\n generarTokenJWTDesconectarSoporte(){\r\n return this.http.get(`${environment.apiUrl}/Acceso/GenerarTokenJWTDesconectarSoporte`)\r\n }\r\n\r\n getRecuperarAvisoCambioContrasena(){\r\n return this.http.get(`${environment.apiUrl}/Acceso/RecuperarAvisoContrasena`)\r\n }\r\n\r\n esPlanexwareYConectadoComo():boolean{\r\n var esUsuarioPlanexwareConectadoComo = !isNullOrEmptyOrUndefined(this.userdata.ConectadoComo);\r\n\r\n //Se chequea por los dos tipos de usuario, por los token generados en WebApi y V2.\r\n var esUsuarioPlanexwareSoporteDobleToken = (this.userdata.Tipo ?? this.userdata.TipoUsuario) === 'Planex';\r\n\r\n return (esUsuarioPlanexwareSoporteDobleToken && esUsuarioPlanexwareConectadoComo);\r\n }\r\n\r\n esPlanexware():boolean{\r\n //Se chequea por los dos tipos de usuario, por los token generados en WebApi y V2.\r\n var esUsuarioPlanexwareSoporteDobleToken = (this.userdata.Tipo ?? this.userdata.TipoUsuario) === 'Planex';\r\n\r\n return esUsuarioPlanexwareSoporteDobleToken;\r\n }\r\n\r\n conectadoComo():boolean{\r\n var esUsuarioPlanexwareConectadoComo = !isNullOrEmptyOrUndefined(this.userdata.ConectadoComo);\r\n return esUsuarioPlanexwareConectadoComo;\r\n }\r\n getPais(): Observable {\r\n return this.http.get(`${environment.apiUrl}/acceso/RecuperarPais`)\r\n }\r\n\r\n getUser(body: any, socialLogin: boolean){\r\n return this.http.post(`${environment.apiUrl}/Acceso/GetUser/${socialLogin}`, body)\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { of } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { GenericToasterService } from './generic-toaster.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationServicesService {\r\n\r\n constructor(\r\n private http: HttpClient, \r\n private genericToasterService: GenericToasterService\r\n ) { }\r\n\r\n GetServicesConfigurations(): Promise {\r\n return this.http.get(`${environment.apiUrl}/ConfiguracionServicios/ListarConfiguraciones`)\r\n .pipe(take(1))\r\n .pipe(catchError(error => of(this.genericToasterService.pushError(\"ERROR_APLICACION\"))))\r\n .toPromise();\r\n }\r\n\r\n GetServicesConfigurationsByClient(clienteId:number,clienteIdPais:number): Promise {\r\n return this.http.get(`${environment.apiUrl}/ConfiguracionServicios/ListarConfiguracionesPorCliente`,{params:{clienteId: clienteId,clienteIdPais: clienteIdPais}})\r\n .pipe(take(1))\r\n .pipe(catchError(error => of(this.genericToasterService.pushError(\"ERROR_APLICACION\"))))\r\n .toPromise();\r\n }\r\n\r\n GetDownloadServicesConfigurations(): Promise {\r\n return this.http.get(`${environment.apiUrl}/ConfiguracionServicios/ListarServiciosDescarga`)\r\n .pipe(take(1))\r\n .pipe(catchError(error => of(this.genericToasterService.pushError(\"ERROR_APLICACION\"))))\r\n .toPromise();\r\n }\r\n\r\n GetDownloadServicesConfigurationsByDocumentType(tipoDoc:string,servicioDMS:string): Promise {\r\n return this.http.get(`${environment.apiUrl}/ConfiguracionServicios/ListarServiciosDescargaPorTipoDocumento`,{params:{tipoDocumento: tipoDoc,servicioDMS: servicioDMS}})\r\n .pipe(take(1))\r\n .pipe(catchError(error => of(this.genericToasterService.pushError(\"ERROR_APLICACION\"))))\r\n .toPromise();\r\n }\r\n\r\n GetConfiguracionesPorCategoria(categoria: string): Promise{\r\n return new Promise((resolve)=>{\r\n this.http.get>(`${environment.apiUrl}/ConfiguracionServicios/ListarConfiguracionesPorCategoria`,{params:{categoria: categoria}}).subscribe({\r\n next: (data:any) => {\r\n resolve(data);\r\n },\r\n error: (err) => { \r\n this.genericToasterService.pushError(\"ERROR_APLICACION\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n GetCantidadLimiteDeAltasPorCategoriaServicio(idCliente:number|null, idPaisCliente:number|null, servicio:string): Promise{\r\n return new Promise((resolve)=>{\r\n const requestOptions: Object = { params: {idCliente : idCliente, idPaisCliente: idPaisCliente, servicio:servicio} };\r\n this.http.get(`${environment.apiUrl}/ConfiguracionServicios/RecuperarCantidadLimiteDeAltasPorCategoriaServicio`,requestOptions).subscribe({\r\n next: (data:any) => {\r\n resolve(data);\r\n },\r\n error: (err) => { \r\n this.genericToasterService.pushError(\"ERROR_APLICACION\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n ValidarClienteTieneServicioContratado(idCliente:number, idPaisCliente:number, servicio:string): Promise{\r\n return new Promise((resolve)=>{\r\n this.http.get(`${environment.apiUrl}/ConfiguracionServicios/ValidarClienteTieneServicioContratado`,{params:{idCliente: idCliente,idPaisCliente: idPaisCliente, servicio: servicio}}).subscribe({\r\n next: (data:any) => { resolve(data); },\r\n error: (err) => { this.genericToasterService.pushError(\"ERROR_APLICACION\"); }\r\n });\r\n });\r\n }\r\n}\r\n","import { BehaviorSubject, timer } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthService } from './auth.service';\r\nimport { Connections, ConnectionDocument, DocumentPermissions, RejectResponse } from '../models/connections.interface';\r\nimport { ModalService } from './modal.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LogoService } from './logo.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConnectionsService {\r\n connectionsMock: Array = []\r\n loadingNotifications = false\r\n // currentDocument = documentPermissions;\r\n notificationsCount: number = 0\r\n connectionsMock$: BehaviorSubject> = new BehaviorSubject(this.connectionsMock);\r\n notificationsCount$: BehaviorSubject = new BehaviorSubject(0);\r\n\r\n myBoolean = false\r\n\r\n editingConnection: Connections;\r\n editingConnectionDocs: Array\r\n editingDoc: ConnectionDocument | undefined\r\n connectionPermissions: Array = [];\r\n\r\n isLoading: boolean = false;\r\n totalPages: number | undefined = 0;\r\n interval = 300000 // 5 min\r\n currentPage: number = 1;\r\n connectionIndex: number = 0;\r\n documentIndex: number = 0;\r\n\r\n guestEmail: string = 'none'\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private modalService: ModalService,\r\n private toastr: ToastrService,\r\n private logoService: LogoService,\r\n private translateService: TranslateService,\r\n ) {\r\n this.getGuestUser()\r\n timer(1000, this.interval).subscribe(() => {\r\n this.getNotificationsAmount()\r\n })\r\n }\r\n\r\n //Agregar Get al back para obtener el total de notificaciones con sus detalles.\r\n //this.getMensajesAmount\r\n //Agregar variable BehaviorSubject para mensajes obtenidos y pasarlos al componente\r\n\r\n getNotificationsAmount() {\r\n if(!this.authService.hasRole(\"/panelnotificaciones\")) return;\r\n setTimeout(() => {\r\n this.http.get(`${environment.apiUrl}/PanelNotificaciones/Cantidad`)\r\n .subscribe(\r\n (res) => {\r\n this.notificationsCount = res\r\n this.notificationsCount$.next(res)\r\n },\r\n (err) => {\r\n // TODO SACAR CUANDO SE VALIDE DESDE EL BACK EL TOKEN\r\n if(this.authService.isAuthenticated()){\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n }\r\n )\r\n }, 1000);\r\n }\r\n\r\n getGuestUser() {\r\n if(!this.authService.hasRole(\"/conexiones\")) return;\r\n setTimeout(() => {\r\n let userData = this.authService.getUserData()\r\n let userObj = {\r\n id: userData!.Cliente.Id,\r\n idPais: userData!.Cliente.IdPais\r\n }\r\n this.http\r\n .post(\r\n `${environment.apiUrl}/PanelNotificaciones/RecuperarUltimaInvitacion`,\r\n userObj\r\n )\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.guestEmail = res.invitado.email\r\n }\r\n });\r\n },1000);\r\n }\r\n\r\n getConnections() {\r\n this.http.get>(`${environment.apiUrl}/PanelNotificaciones/`)\r\n .subscribe(\r\n (res) => {\r\n this.loadingNotifications = false\r\n res.forEach(element => {\r\n element.intercambiosDeDocumento.forEach(documento => {\r\n switch (documento.sentido) {\r\n case 'ENVIAR':\r\n documento.sentido = 'RECIBIR'\r\n documento.notificacion = this.translateService.instant('RECIBIR')\r\n break;\r\n case 'RECIBIR':\r\n documento.sentido = 'ENVIARLE'\r\n documento.notificacion = this.translateService.instant('ENVIARLE')\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n\r\n })\r\n this.connectionsMock = res\r\n this.connectionsMock.forEach(element => {\r\n this.cargarImagen(element)\r\n });\r\n this.connectionsMock$.next(res)\r\n\r\n },\r\n (err) => {\r\n this.loadingNotifications = false\r\n // TODO SACAR CUANDO SE VALIDE DESDE EL BACK EL TOKEN\r\n if(this.authService.isAuthenticated()) {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n cargarImagen(element: any) {\r\n this.logoService.getLogoWeb(element.interlocutor.id, element.interlocutor.idPais).subscribe(byteArray => {\r\n if (byteArray.byteLength) {\r\n element.interlocutor.logo = 'data:image/png;base64,' + btoa(new Uint8Array(byteArray).reduce(function (data, byte) {\r\n return data + String.fromCharCode(byte);\r\n }, '')); \r\n } else {\r\n //Verificar\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n canvas.width = 80;\r\n canvas.height = 80;\r\n ctx!.fillStyle = 'rgb(26, 188, 156)';\r\n ctx!.fillRect(0, 0, 80, 80);\r\n ctx!.font = '25px / 60px Helvetica, Arial, sans-serif';\r\n ctx!.fillStyle = 'white';\r\n ctx!.textAlign = 'center';\r\n ctx!.textBaseline = 'middle';\r\n ctx!.fillText(element.interlocutor.razonSocial[0], 40, 40);\r\n element.interlocutor.logo = canvas.toDataURL();\r\n }\r\n });\r\n }\r\n\r\n rejectConnection(id: number, razonSocial: string) {\r\n this.connectionIndex = this.connectionsMock.findIndex(\r\n (e) => e.interlocutor.id === id\r\n )\r\n let connectionObj = this.connectionsMock[this.connectionIndex]\r\n this.http\r\n .post(\r\n `${environment.apiUrl}/PanelNotificaciones/rechazar`,\r\n connectionObj\r\n )\r\n .subscribe((res: RejectResponse) => {\r\n if (res.isSuccess) {\r\n this.toastr.error(this.translateService.instant('SE_RECHAZO_LA_CONEXION_CON')+razonSocial);\r\n } else {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n this.getNotificationsAmount()\r\n\r\n });\r\n\r\n this.connectionsMock.splice(this.connectionIndex, 1)\r\n }\r\n\r\n confirmConnection(id: number, razonSocial: string) {\r\n this.resetPages()\r\n this.isLoading = true;\r\n this.connectionIndex = this.connectionsMock.findIndex(\r\n (e) => e.interlocutor.id === id\r\n )\r\n this.editingConnection = this.connectionsMock[this.connectionIndex]\r\n this.editingConnectionDocs = this.connectionsMock[this.connectionIndex].intercambiosDeDocumento\r\n this.setDocument()\r\n\r\n this.calculatePages();\r\n this.getDocumentPermissions();\r\n }\r\n\r\n calculatePages() {\r\n this.totalPages = this.editingConnectionDocs!.length;\r\n }\r\n\r\n getDocumentPermissions() {\r\n // debugger\r\n let documentObj = this.editingConnectionDocs![this.documentIndex];\r\n if (this.connectionPermissions[this.documentIndex] === undefined) {\r\n this.isLoading = true;\r\n this.http\r\n .post(\r\n `${environment.apiUrl}/panelnotificaciones/RecuperarAccesosAlDocumento`,\r\n documentObj\r\n )\r\n .subscribe((res: DocumentPermissions[]) => {\r\n this.connectionPermissions[this.documentIndex] = this.sortPermissions(res);\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n sortPermissions(permissions: DocumentPermissions[]) {\r\n let forbiddenArr: Array = [];\r\n let permittedArr: Array = [];\r\n\r\n permissions.map((e: DocumentPermissions) => {\r\n if (e.esSeleccionable) {\r\n if (e.usuario.email === this.guestEmail) {\r\n e.recibeNotificaciones = true\r\n }\r\n forbiddenArr.push(e)\r\n } else {\r\n e.tieneAcceso = true;\r\n e.recibeNotificaciones = true;\r\n permittedArr.push(e);\r\n }\r\n });\r\n return { forbidden: forbiddenArr, permitted: permittedArr };\r\n }\r\n\r\n setDocument() {\r\n this.editingDoc = this.editingConnectionDocs[this.documentIndex]\r\n }\r\n\r\n isGuest(email: string) {\r\n if (email === this.guestEmail) {\r\n return true\r\n } else {\r\n false\r\n }\r\n }\r\n\r\n nextDocument() {\r\n this.currentPage = this.currentPage + 1;\r\n this.documentIndex = this.documentIndex + 1;\r\n this.setDocument()\r\n this.getDocumentPermissions();\r\n }\r\n\r\n previousDocument() {\r\n this.currentPage = this.currentPage - 1;\r\n this.documentIndex = this.documentIndex - 1;\r\n this.setDocument()\r\n this.getDocumentPermissions();\r\n }\r\n\r\n submitPermissions(razonSocial: string) {\r\n this.connectionPermissions.map((e, index) => {\r\n let permissions: DocumentPermissions[] = []\r\n e.forbidden.forEach((element: DocumentPermissions) => {\r\n permissions.push(element)\r\n });\r\n e.permitted.forEach((element: DocumentPermissions) => {\r\n permissions.push(element)\r\n });\r\n this.editingConnectionDocs[index]!.configuracionDeAccesoAlDocumento = permissions\r\n })\r\n\r\n this.http\r\n .post(\r\n `${environment.apiUrl}/PanelNotificaciones/Aceptar`,\r\n this.connectionsMock[this.connectionIndex]\r\n )\r\n .subscribe(\r\n (res) => {\r\n this.toastr.success(this.translateService.instant('SE_ACEPTO_LA_CONEXION_CON')+razonSocial);\r\n this.getNotificationsAmount()\r\n },\r\n (err) => {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n });\r\n this.connectionsMock.splice(this.connectionIndex, 1)\r\n this.modalService.closeModal()\r\n this.resetPages()\r\n }\r\n\r\n resetPages() {\r\n this.currentPage = 1;\r\n this.documentIndex = 0;\r\n this.connectionPermissions = []\r\n }\r\n}\r\n","import { environment } from \"src/environments/environment\"\r\n\r\nexport default {\r\n misc: {\r\n planex: 'https://www.planexware.com/',\r\n },\r\n topBar: {\r\n contacto: 'https://www.planexware.com/contacto',\r\n email: 'mesadeayuda@planexware.com',\r\n },\r\n pages: { // link to existing Krikos360 legacy pages\r\n home: `${environment.apiUrl}/index.html#/Home/index`,\r\n user: {\r\n pwdChange: `${environment.apiUrl}/index.html#/contrasena/cambiar`,\r\n faq: `${environment.apiUrl}/index.html#/ayuda`,\r\n },\r\n nav: {\r\n documentos: `${environment.apiUrl}/index.html#/documentos/37`,\r\n conexiones: `${environment.apiUrl}/index.html#/conexiones/38`,\r\n administracion: `${environment.apiUrl}/index.html#/configuraciones/31`,\r\n },\r\n newDocument: {\r\n factura: `${environment.apiUrl}/index.html#/crearFactura/1`,\r\n ordenDeCompra: `${environment.apiUrl}/index.html#/crearOrdenCompra/2`,\r\n notaDeCredito: `${environment.apiUrl}/index.html#/crearNotaCredito/3`,\r\n subirArchivo: `${environment.apiUrl}/index.html#/subirArchivo`,\r\n }\r\n },\r\n social: {\r\n twitter: 'https://twitter.com/planexware',\r\n linkedin: 'https://www.linkedin.com/company/planexware',\r\n },\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { BusquedaDocumentos } from 'src/app/pages/documentos-clientes/components/models/BusquedaDocumentos';\r\nimport { SolicitudDescarga } from 'src/app/pages/documentos-clientes/components/models/SolicitudDescarga';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Downloads } from '../models/downloads.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DownloadService {\r\n public downloadsLoading = true\r\n public downloadsAmount = 0\r\n public downloadsList: Array = []\r\n downloadsAmount$: BehaviorSubject = new BehaviorSubject(0);\r\n constructor(private http: HttpClient, \r\n private toastr: ToastrService,\r\n private translateService: TranslateService) { \r\n this.getDownloadsAmount()\r\n }\r\n\r\n getFile(id: Number) {\r\n return this.http.get(`${environment.apiUrl}/descargas/${id}`, {\r\n responseType: 'arraybuffer'\r\n })\r\n }\r\n\r\n getDownloadsList() {\r\n this.downloadsLoading = true\r\n this.http.get(`${environment.apiUrl}/descargas`)\r\n .subscribe(\r\n (data: Array) => {\r\n this.downloadsList = data;\r\n this.downloadsLoading = false\r\n },\r\n (err) => {\r\n this.downloadsLoading = false\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n \r\n });\r\n });\r\n }\r\n\r\n getDownloadsAmount() {\r\n setTimeout(() => {\r\n this.http.get(`${environment.apiUrl}/descargas/cantidad`)\r\n .subscribe(\r\n (res) => {\r\n this.downloadsAmount$.next(res)\r\n this.downloadsAmount = res\r\n },\r\n (err) => {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n \r\n });\r\n }\r\n )\r\n }, 2000);\r\n }\r\n\r\n getConfiguracionDeTiposDocumentoParaGestor() : Observable {\r\n return this.http.get(`${environment.apiUrl}/descargas/RecuperarConfiguracionDeTiposDocumentoParaGestor`);\r\n }\r\n\r\n exportarTodosLosDocumentos(solicitudDescarga: SolicitudDescarga) : Observable {\r\n return this.http.post(`${environment.apiUrl}/descargas/ExportarTodosLosDocumentos`, solicitudDescarga);\r\n }\r\n recuperarLimitesGeneracion() : Observable {\r\n return this.http.get(`${environment.apiUrl}/descargas/RecuperarLimitesGeneracion`);\r\n }\r\n\r\n postExportarDocumentos(solicitudDescarga: SolicitudDescarga) : Observable {\r\n return this.http.post(`${environment.apiUrl}/descargas/ExportarDocumentos`,solicitudDescarga);\r\n }\r\n\r\n postExportarResultados(filtros: BusquedaDocumentos, cantidadSeleccionados: number): Observable {\r\n let solicitudDescarga = {\r\n DocumentosSeleccionados: {\r\n ClientesHolding: [],\r\n Documentos: [],\r\n Formato: null\r\n },\r\n FiltrosDeBusqueda: filtros,\r\n CantidadSolicitada: cantidadSeleccionados\r\n };\r\n return this.http.post(`${environment.apiUrl}/descargas/ExportarResultados`, solicitudDescarga);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as _ from 'underscore';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DocumentoExportacion } from 'src/app/pages/documentos-clientes/components/models/DocumentoExportacion';\r\nimport { DocumentosClienteService } from 'src/app/pages/documentos-clientes/components/services/documentos-cliente.service';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DocData } from 'src/app/pages/documentos-clientes/components/table-doc/table-doc.component';\r\nimport { TipoDocumento } from 'src/app/pages/equivalencia-estructuras/modelos/TipoDocumento';\r\nimport { ExportacionDeDocumentosResult } from 'src/app/pages/documentos-clientes/components/models/ExportacionDeDocumentosResult';\r\nimport { RecuperarExportacionDocumentos } from 'src/app/pages/documentos-clientes/components/models/RecuperarExportacionDocumentos';\r\nimport { DownloadService } from './download.service';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { SolicitudDescarga } from 'src/app/pages/documentos-clientes/components/models/SolicitudDescarga';\r\nimport { BusquedaDocumentos } from 'src/app/pages/documentos-clientes/components/models/BusquedaDocumentos';\r\nimport { DocumentosMasClientes } from 'src/app/pages/documentos-clientes/components/models/DocumentosMasClientes';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\nimport { ClaveCompuestaView } from '../models/ClaveCompuestaView';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { DialogViewDocumentsComponent } from 'src/app/pages/documentos-clientes/components/dialog-view-documents/dialog-view-documents.component';\r\nimport { take } from 'rxjs/operators';\r\nimport { error } from 'console';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n constructor(\r\n public dialog: MatDialog,\r\n private documentosClienteService: DocumentosClienteService,\r\n private genericToasterService: GenericToasterService,\r\n private translate: TranslateService,\r\n private downloadService: DownloadService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private domSanitizer: DomSanitizer,\r\n private authService: AuthService\r\n ) { }\r\n\r\n //#region Public Methods\r\n public async DescargarDocumentoOnline(documento: DocData, documentoSponsoreado: boolean = false): Promise {\r\n this.googleAnalyticsEventsService.emitEvent('Grilla documentos', 'Ver documento Online', null, true);\r\n return new Promise((resolve) => {\r\n this.documentosClienteService.getVerificarDisponibleVisualizadorHash(documento.id, documento.idPais).subscribe((data: boolean) => {\r\n if (data) {\r\n let popUp = this.AbrirPopUpViewDocumento();\r\n var formato = documento.esLadrillo ? \"\" : \"Pdf\";\r\n this.documentosClienteService.postExportarDocumentos(\r\n [{\r\n Id: documento.id,\r\n IdPais: documento.idPais,\r\n Sentido: documento.sentido\r\n }],\r\n [],\r\n formato\r\n ).subscribe(async (exportacion: ExportacionDeDocumentosResult) => {\r\n if (exportacion != null && typeof (exportacion) != undefined) {\r\n var exportacionDocumento: RecuperarExportacionDocumentos = { id: exportacion.id, attachment: false };\r\n await this.AbrirDocumentoPopUp(popUp, exportacionDocumento, documento.id,documento.idPais, documentoSponsoreado);\r\n }\r\n resolve();\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async DescargarDocumentoOnlineImagen(documentoVinculado: DocData, documentoSponsoreado: boolean = false): Promise {\r\n this.googleAnalyticsEventsService.emitEvent('Grilla documentos', 'Ver documento Online Image', null, true);\r\n documentoVinculado.sentido = 'ENVIADO';\r\n documentoVinculado.esLadrillo = true;\r\n return new Promise((resolve) => {\r\n this.documentosClienteService.getVerificarDisponibleVisualizadorHash(documentoVinculado.id, documentoVinculado.idPais).subscribe((data: boolean) => {\r\n if (data) {\r\n let popUp = this.AbrirPopUpViewDocumento();\r\n var formato = documentoVinculado.esLadrillo ? \"\" : \"Pdf\";\r\n this.documentosClienteService.postExportarDocumentos(\r\n [{\r\n Id: documentoVinculado.id,\r\n IdPais: documentoVinculado.idPais,\r\n Sentido: documentoVinculado.sentido\r\n }],\r\n [],\r\n formato\r\n ).subscribe(async (exportacion: ExportacionDeDocumentosResult) => {\r\n if (exportacion != null && typeof (exportacion) != undefined) {\r\n var exportacionDocumento: RecuperarExportacionDocumentos = { id: exportacion.id, attachment: false };\r\n await this.AbrirDocumentoPopUp(popUp, exportacionDocumento, documentoVinculado.id,documentoVinculado.idPais, documentoSponsoreado);\r\n }\r\n resolve();\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n });\r\n });\r\n }\r\n public async DescargarEtiquetaOnline(documento: DocData, documentoSponsoreado: boolean = false): Promise {\r\n this.googleAnalyticsEventsService.emitEvent('Grilla documentos', 'Ver etiqueta Online', null, true);\r\n return new Promise((resolve) => {\r\n this.documentosClienteService.getEtiqueta(documento).subscribe(async (data: string) => {\r\n if (data) {\r\n let popUp = this.AbrirPopUpViewDocumento();\r\n const formato: string = \"Pdf\";\r\n var exportacionDocumento: RecuperarExportacionDocumentos = { id: data, attachment: false };\r\n await this.AbrirDocumentoPopUp(popUp, exportacionDocumento, data,documento.idPais, documentoSponsoreado);\r\n resolve();\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async DescargarDocumentoHistorial(documentoHistorial: ClaveCompuestaView, documentoSponsoreado: boolean = false): Promise {\r\n this.googleAnalyticsEventsService.emitEvent('Informacion adicional', 'Ver documento historial', null, true);\r\n return new Promise((resolve) => {\r\n this.documentosClienteService.getVerificarDisponibleVisualizador(documentoHistorial.Id, documentoHistorial.IdPais).subscribe((data: boolean) => {\r\n if (data) {\r\n let popUp = this.AbrirPopUpViewDocumento();\r\n var formato = \"\";\r\n this.documentosClienteService.postExportarDocumentosHistorial(\r\n [{\r\n Id: documentoHistorial.Id,\r\n IdPais: documentoHistorial.IdPais,\r\n Sentido: 'ENVIADO'\r\n }],\r\n [],\r\n formato\r\n ).subscribe(async (exportacion: ExportacionDeDocumentosResult) => {\r\n if (exportacion != null && typeof (exportacion) != undefined) {\r\n var exportacionDocumento: RecuperarExportacionDocumentos = { id: exportacion.id, attachment: false };\r\n await this.AbrirDocumentoPopUp(popUp, exportacionDocumento, documentoHistorial.Id,documentoHistorial.IdPais,documentoSponsoreado);\r\n }\r\n resolve();\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async ExportarDocumentoOnline(documento: DocData, documentoSponsoreado: boolean = false): Promise {\r\n return new Promise((resolve) => {\r\n this.documentosClienteService.getVerificarDisponibleVisualizadorHash(documento.id, documento.idPais).subscribe((data: boolean) => {\r\n if (data) {\r\n this.genericToasterService.pushSuccess(this.translate.instant('ExportarXLS'));\r\n documento.sentido = (documento.sentido == 'ENVIADO' || documento.sentido == 'E') ? 'E' : 'R';\r\n this.documentosClienteService.postExportarDocumentos(\r\n [{\r\n Id: documento.id,\r\n IdPais: documento.idPais,\r\n Sentido: documento.sentido\r\n }],\r\n [],\r\n \"Excel\"\r\n ).subscribe(async (exportacion: ExportacionDeDocumentosResult) => {\r\n if (exportacion != null && typeof (exportacion) != undefined) {\r\n var exportacionDocumento: RecuperarExportacionDocumentos = { id: exportacion.id, attachment: false };\r\n let doc: ClaveCompuestaView[] = [{ Id: documento.id, IdPais: documento.idPais }];\r\n await this.DescargarDocumentoSinAbrirSolapa(exportacionDocumento, doc, documentoSponsoreado);\r\n }\r\n resolve();\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async DocumentoRequiereGestor(documento: DocData): Promise {\r\n return new Promise((resolve, reject) => {\r\n let tiposDocumentos: TipoDocumento[] = [];\r\n this.downloadService.getConfiguracionDeTiposDocumentoParaGestor().subscribe(\r\n (data: TipoDocumento[]) => {\r\n if (data.length > 0) {\r\n tiposDocumentos = data;\r\n resolve(tiposDocumentos.filter(e => e.resourceKey === documento.tipoDoc).length > 0);\r\n }\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n reject('Error');\r\n });\r\n }\r\n );\r\n }\r\n\r\n public DescargarDocumentoPorGestor(doc: DocData) {\r\n this.documentosClienteService.getVerificarDisponibleVisualizadorHash(doc.id, doc.idPais).subscribe((existe: boolean) => {\r\n if (existe) {\r\n const solicitudDescarga = new SolicitudDescarga();\r\n solicitudDescarga.filtrosDeBusqueda = new BusquedaDocumentos();\r\n solicitudDescarga.filtrosDeBusqueda.empresasDelUsuario = [];\r\n solicitudDescarga.documentosSeleccionados = new DocumentosMasClientes();\r\n solicitudDescarga.documentosSeleccionados.formato = 'ZIP';\r\n solicitudDescarga.documentosSeleccionados.clientesHolding = [];\r\n solicitudDescarga.documentosSeleccionados.documentos = [doc];\r\n this.downloadService.postExportarDocumentos(solicitudDescarga).subscribe(\r\n (data: any) => {\r\n if (data.value == \"Ok\") {\r\n this.genericToasterService.pushSuccess(this.translate.instant(\"LA_DESCARGA_ESTA_EN_PROCESO\"));\r\n }\r\n else {\r\n var mensaje = doc.estado == \"NoDisponible\" ? \"CONTENIDO_DOCUMENTO_NO_DISPONIBLE_EXT\" : \"CONTENIDO_DOCUMENTO_NO_DISPONIBLE\";\r\n this.genericToasterService.pushWarning(this.translate.instant(mensaje));\r\n }\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n } else {\r\n this.genericToasterService.pushError(this.translate.instant('CONTENIDO_DOCUMENTO_NO_DISPONIBLE'));\r\n }\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n\r\n public async DescargarDocumentoSinAbrirSolapa(exportacion: RecuperarExportacionDocumentos, doc:ClaveCompuestaView[] = [], documentoSponsoreado: boolean = false): Promise {\r\n return new Promise((resolve) => {\r\n var attach = (exportacion.attachment) ? exportacion.attachment : false;\r\n this.documentosClienteService.getRecuperarExportacionDocumentos(exportacion.id, documentoSponsoreado).subscribe((data: DocumentoExportacion) => {\r\n this.MostrarDocumentoSinVentana(data, attach,doc,documentoSponsoreado);\r\n resolve();\r\n },\r\n (error) => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n });\r\n }\r\n\r\n SanitizeURL(url: string): SafeResourceUrl {\r\n var urlSanitizada = this.domSanitizer.bypassSecurityTrustResourceUrl(url)\r\n return urlSanitizada;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Private Methods\r\n private AbrirPopUpViewDocumento(): MatDialogRef {\r\n const dialogRef = this.dialog.open(DialogViewDocumentsComponent, {\r\n width: '95%',\r\n height: '97%',\r\n maxWidth: '100%',\r\n });\r\n dialogRef.afterClosed().pipe(take(1)).subscribe(\r\n async result => {\r\n }\r\n );\r\n return dialogRef;\r\n }\r\n\r\n private async AbrirDocumentoPopUp(popUp: MatDialogRef, datos: RecuperarExportacionDocumentos, idSobre: string,idPaisSobre: string, documentoSponsoreado: boolean = false): Promise {\r\n return new Promise((resolve) => {\r\n var attach = (datos.attachment) ? datos.attachment : false;\r\n this.documentosClienteService.getRecuperarExportacionDocumentos(datos.id, documentoSponsoreado).subscribe((data: DocumentoExportacion) => {\r\n data.nombreTemporal = data.nombreTemporal == null ? \"\" : data.nombreTemporal;\r\n var url = environment.apiUrl + \"/DocumentosCliente/VisualizarDocumento?guid=\" + data.nombreTemporal +\r\n \"&filename=\" + this.ReemplazarCaracteresEspeciales(data.nombre) +\r\n \"&tipoContenido=\" + data.tipoContenido +\r\n \"&m=\" + !this.IsMobile() +\r\n \"&attach=\" + attach;\r\n popUp.componentInstance.setDoc(this.SanitizeURL(url));\r\n let doc: ClaveCompuestaView[] = [{ Id: idSobre, IdPais: idPaisSobre }];\r\n if(documentoSponsoreado && !this.authService.esPlanexwareYConectadoComo()){\r\n this.documentosClienteService.postHistorialVisualizacionSponspor(doc).subscribe(x => {\r\n\r\n }, error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n resolve();\r\n },\r\n error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n popUp.close();\r\n });\r\n });\r\n }\r\n\r\n public MostrarDocumentoSinVentana(documento: DocumentoExportacion, attach: boolean, doc: ClaveCompuestaView[] = [], documentoSponsoreado: boolean = false){\r\n documento.nombreTemporal = documento.nombreTemporal == null ? \"\" : documento.nombreTemporal;\r\n this.documentosClienteService.getDescargaDocumento(\r\n documento.nombreTemporal,\r\n this.ReemplazarCaracteresEspeciales(documento.nombre),\r\n documento.tipoContenido,\r\n !this.IsMobile(),\r\n attach\r\n ).subscribe((data: ArrayBuffer) => {\r\n\r\n const file = new File([data], this.ReemplazarCaracteresEspeciales(documento.nombre), {\r\n type: 'application/zip',\r\n });\r\n let blobURL = window.URL.createObjectURL(file);\r\n\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute('href', blobURL);\r\n a.setAttribute('download', this.ReemplazarCaracteresEspeciales(documento.nombre));\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n\r\n if(documentoSponsoreado && !this.authService.esPlanexwareYConectadoComo()){\r\n this.documentosClienteService.postHistorialVisualizacionSponspor(doc).subscribe(x => {\r\n\r\n }, error => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n },\r\n (err) => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n\r\n private IsMobile(): boolean {\r\n var isMobile = false;\r\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)\r\n || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(navigator.userAgent.substr(0, 4))) isMobile = true;\r\n return isMobile;\r\n }\r\n\r\n private ReemplazarCaracteresEspeciales(entrada: string) {\r\n var caracteres = ['#'];\r\n _.each(caracteres, function (caracter) {\r\n var rCaracter = new RegExp(caracter, 'g');\r\n var n = entrada.replace(rCaracter, '_');\r\n entrada = n;\r\n });\r\n return entrada;\r\n }\r\n //#endregion\r\n}","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { lastValueFrom, map } from 'rxjs';\r\n\r\nexport class Feature {\r\n nombre: string;\r\n activa: boolean;\r\n descripcion: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FeatureToggleService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Setea el estado del feature toggle para poder consultarlo despues.\r\n */\r\n public async obtenerFeatureToggles(): Promise {\r\n const request = this.http.get(`${environment.apiUrl}/Acceso/RecuperarFeatureToggles`);\r\n const features = await lastValueFrom(request);\r\n sessionStorage.setItem(\"featureToggles\", JSON.stringify(features));\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Se fija si la feature está activa o no.\r\n * @param featureName el nombre de la feature.\r\n * @returns true/false.\r\n */\r\n public isFeatureEnabled(featureName: string): boolean {\r\n const features: Feature[] = JSON.parse(sessionStorage.getItem('featureToggles') || '[]');\r\n const feature = features.find(x => x.nombre == featureName);\r\n if (feature) {\r\n return feature.activa;\r\n }\r\n return false;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DefaultGlobalConfig, GlobalConfig, IndividualConfig, ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GenericToasterService {\r\n\r\n defalutOptions: Partial = {\r\n closeButton: true,\r\n positionClass: \"toast-top-full-width\",\r\n toastClass: 'toastr-class',\r\n timeOut: 10000,\r\n extendedTimeOut: 5000,\r\n enableHtml: true,\r\n iconClasses: {\r\n error: 'fas fa-exclamation-circle',\r\n success: 'fas fa-check',\r\n warning: 'something',\r\n },\r\n };\r\n\r\n constructor(\r\n private toastr: ToastrService,\r\n private translate: TranslateService) {\r\n }\r\n\r\n pushError(message: string, params?: Object, disableTimeOut?: boolean, className?: string) {\r\n let options = this.defalutOptions;\r\n options.positionClass = className == undefined ? 'toast-top-full-width' : 'toast-top-full-width' + \"_\" + className\r\n this.toastr.overlayContainer = undefined;\r\n options.disableTimeOut = disableTimeOut ? disableTimeOut : false;\r\n this.toastr.error(this.translate.instant(message, params), '', options);\r\n }\r\n\r\n pushWarning(message: string, params?: Object, disableTimeOut?: boolean, className?: string) {\r\n let options = this.defalutOptions;\r\n options.positionClass = className == undefined ? 'toast-top-full-width' : 'toast-top-full-width' + \"_\" + className\r\n this.toastr.overlayContainer = undefined;\r\n options.disableTimeOut = disableTimeOut ? disableTimeOut : false;\r\n this.toastr.warning(this.translate.instant(message, params), '', options);\r\n }\r\n\r\n pushSuccess(message: string, params?: Object, disableTimeOut?: boolean, className?: string) {\r\n let options = this.defalutOptions;\r\n options.positionClass = className == undefined ? 'toast-top-full-width' : 'toast-top-full-width' + \"_\" + className\r\n this.toastr.overlayContainer = undefined;\r\n options.disableTimeOut = disableTimeOut ? disableTimeOut : false;\r\n this.toastr.success(this.translate.instant(message, params), '', options);\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\n\r\ndeclare let gtag: Function;\r\n\r\n@Injectable()\r\nexport class GoogleAnalyticsEventsService {\r\n\r\n public emitEvent(eventCategory: string,\r\n eventAction: string,\r\n eventValue: any = null,\r\n eventLabel: any = null) {\r\n gtag('event', eventCategory, {eventAction,eventLabel,eventValue});\r\n }\r\n}","import { Injectable } from '@angular/core'\r\nimport jwtDecode from 'jwt-decode'\r\nimport { AccessToken } from '../models/accessToken'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JwtService {\r\n getAccessToken(): AccessToken | undefined {\r\n const rawToken = sessionStorage.getItem('token')\r\n return this.getToken(rawToken)\r\n }\r\n\r\n getToken(token: string|null): AccessToken | undefined {\r\n if (token) {\r\n const decoded = jwtDecode(token)\r\n return {\r\n ...decoded,\r\n userdata: JSON.parse(decoded['http://schemas.microsoft.com/ws/2008/06/identity/claims/userdata']),\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogoService {\r\n\r\n constructor(public http: HttpClient) { }\r\n \r\n getLogoWeb(id: number, idPais: number){\r\n return this.http.get(`${environment.apiUrl}/Cliente/GetLogoWeb/Paises/${idPais}/Clientes/${id}`).pipe(map((x: any) => this.convert(x.hex)))\r\n }\r\n\r\n convert(img: string | null): Uint8Array{\r\n if(!img){\r\n return new Uint8Array();\r\n }\r\n let input = img.replace(/[^A-Fa-f0-9]/g, \"\");\r\n if (input.length % 2) {\r\n return new Uint8Array();\r\n }\r\n \r\n let binary = new Array();\r\n for (let i = 0; i < input.length / 2; i++) {\r\n let h = input.substr(i * 2, 2);\r\n binary[i] = parseInt(h, 16);\r\n }\r\n \r\n let byteArray = new Uint8Array(binary);\r\n return byteArray; \r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { faCopy, IconDefinition } from '@fortawesome/free-regular-svg-icons'\r\nimport { faLink, faCog } from '@fortawesome/free-solid-svg-icons'\r\nimport { FlipProp } from '@fortawesome/fontawesome-svg-core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\nimport { environment } from 'src/environments/environment'\r\n\r\nexport interface NavItemIcon {\r\n definition: IconDefinition\r\n flip?: FlipProp\r\n}\r\n\r\nexport interface NavItem {\r\n claseEstilos: string\r\n habilitado: boolean\r\n id: number\r\n orden: number\r\n resourceKey: string\r\n url: string\r\n}\r\n\r\nexport interface MainNavItem extends NavItem {\r\n icon: NavItemIcon\r\n}\r\n\r\nexport interface NewDocumentItem extends NavItem {\r\n afterDivider?: boolean\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MainNavService {\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getMainItems(): Observable {\r\n return this.http.get(`${environment.apiUrl}/Menu/horizontal`)\r\n }\r\n\r\n getNewDocumentItems() {\r\n return this.http.get(`${environment.apiUrl}/nuevodocumento/GetBotonNuevoDocumento`)\r\n\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MensajeHTMLView } from 'src/app/pages/novedades/models/mensajeHTMLView';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MensajeService {\r\n\r\n\r\n constructor(private http: HttpClient) { \r\n\r\n }\r\n getMensajeUser_ResourceKey(body: any){\r\n return this.http.get(`${environment.apiUrl}/Mensajes/GetMensajesParaElUsuarioByResourceKey?resourceKey=${body}`);\r\n }\r\n\r\n cerrarMensajeUsuario(body: any){\r\n return this.http.post(`${environment.apiUrl}/Mensajes/CerrarMensajeDelUsuario`,body);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BehaviorSubject, Observable, timer } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MesajeDocumentosChatNotificacion } from '../models/mensajesDocumentos.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MensajesDocumentosService {\r\n\r\n mensajesDocumentosCount$: BehaviorSubject = new BehaviorSubject(0);\r\n mensajesDocumentosMock$: BehaviorSubject> = new BehaviorSubject([] as Array);\r\n tieneServicioNoChat$: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n interval = 300000 // 5 min\r\n\r\n\r\n constructor(\r\n private toastr: ToastrService,\r\n private translateService: TranslateService,\r\n private http: HttpClient,\r\n ) {\r\n timer(0, this.interval).subscribe(() => {\r\n this.getMensajesDocumentosAmount()\r\n })\r\n }\r\n\r\n getMensajesDocumentosAmount() {\r\n this.http.get(`${environment.apiUrl}/PanelMensajeriaChat/GetCantidadMensajes`)\r\n .subscribe(\r\n (res) => {\r\n this.mensajesDocumentosCount$.next(res)\r\n },\r\n (err) => {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n )\r\n }\r\n\r\n getCantidadMensajesConRetorno(): Observable{\r\n return this.http.get(`${environment.apiUrl}/PanelMensajeriaChat/GetCantidadMensajes`)\r\n }\r\n\r\n getMensajesDocumentos() {\r\n this.http.get>(`${environment.apiUrl}/PanelMensajeriaChat/GetMensajes`)\r\n .subscribe(\r\n (res) => {\r\n this.mensajesDocumentosMock$.next(res);\r\n },\r\n (err) => {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n );\r\n }\r\n\r\n checkServicioNoChat() {\r\n this.http.get(`${environment.apiUrl}/PanelMensajeriaChat/GetCheckServicio`)\r\n .subscribe(\r\n (res) => {\r\n this.tieneServicioNoChat$.next(res);\r\n },\r\n (err) => {\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'))\r\n }\r\n );\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n _openModal: string\r\n // _openModal: string = 'connectionsModal'\r\n\r\n constructor() { }\r\n\r\n openModal(id: string) {\r\n this._openModal = id\r\n }\r\n\r\n closeModal() {\r\n this._openModal = ''\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport navigation from './data/navigation.data'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport type NavigationData = typeof navigation\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NavigationService {\r\n public readonly from: NavigationData\r\n openNotificationPanel: Boolean = false\r\n\r\n constructor(private http: HttpClient) {\r\n this.from = navigation\r\n }\r\n\r\n getNotifications() {\r\n return this.http.get(`${environment.apiUrl}/descargas/cantidad`)\r\n }\r\n\r\n getAdminsInfo() {\r\n return this.http.get(`${environment.apiUrl}/cliente/administradores`)\r\n }\r\n \r\n getVersion() {\r\n return this.http.get(`${environment.apiUrl}/version`)\r\n }\r\n\r\n logout() {\r\n return this.http.get(`${environment.apiUrl}/acceso/salir`)\r\n }\r\n logout_msoft() : Observable {\r\n return this.http.post(`https://login.live.com/logout.srf`, null)\r\n }\r\n \r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { timer } from 'rxjs';\r\nimport { ToasterMessage } from '../models/alert-message.interface';\r\nimport { AuthService } from './auth.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MensajeService } from './mensaje.service';\r\nimport { MensajeHTMLView } from 'src/app/pages/novedades/models/mensajeHTMLView';\r\nimport { isNullOrEmptyOrUndefined } from 'src/app/shared/utils/utils.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToasterService {\r\n messages: ToasterMessage[] = [];\r\n interval = 300000 // 5 min\r\n private urlsSinToken = [\"/login\",\"contrasena/crear\",\"terminosycondiciones\", \"politicasdeprivacidad\",\"/desuscripcionmail\"];\r\n constructor(private http: HttpClient,\r\n private mensajeService: MensajeService, private authService: AuthService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private translateService: TranslateService) {\r\n this.getMessages();\r\n }\r\n\r\n closeAlert(id: number | undefined) {\r\n let index = this.messages.findIndex((message) => message.id === id);\r\n var mensaje = this.messages[index];\r\n mensaje.resourceKey = 'CierreNoC'; // Se usa para grabar log de auditoria\r\n this.mensajeService.cerrarMensajeUsuario(mensaje).subscribe(x => {\r\n this.messages.splice(index, 1);\r\n });\r\n\r\n }\r\n\r\n pushMessage(mnessage: ToasterMessage) {\r\n var rs = this.authService.getUserData()?.Cliente.RazonSocial ?? \"\";\r\n mnessage.mensaje = mnessage.mensaje.replace(\"{0}\", rs);\r\n // solo agrego el mensaje si no existe\r\n var aux = this.messages.find(cada => cada.mensaje === mnessage.mensaje && cada.id === mnessage.id);\r\n if (isNullOrEmptyOrUndefined(aux)) {\r\n this.messages.push(mnessage);\r\n }\r\n }\r\n\r\n getMessages() {\r\n timer(1000, this.interval).subscribe(() => {\r\n // TODO SACAR CUANDO SE VALIDE DESDE EL BACK EL TOKEN\r\n if (this.authService.isAuthenticated()) {\r\n this.http\r\n .get(`${environment.apiUrl}/mensajes/GetMensajesParaElUsuario`)\r\n .subscribe(\r\n (res: ToasterMessage[]) => {\r\n if (res.length > 0) {\r\n res.forEach(cada => this.pushMessage(cada));\r\n }\r\n },\r\n (err) => {\r\n if (err.error !== null && err.status !== 0)\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n }\r\n );\r\n // TODO SACAR CUANDO SE VALIDE DESDE EL BACK EL TOKEN\r\n } else if(!this.sinToken(this.router.url)) {\r\n sessionStorage.removeItem('token');\r\n sessionStorage.removeItem('ClientesHolding');\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.router.navigateByUrl('/login')\r\n }\r\n })\r\n }\r\n\r\n sinToken(routerURL: string): boolean {\r\n var url = routerURL.toLowerCase();\r\n var sinToken = false;\r\n this.urlsSinToken.forEach(cada => {\r\n if(url.includes(cada))\r\n sinToken = true;\r\n });\r\n\r\n return sinToken;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport {A11yModule} from '@angular/cdk/a11y';\r\nimport {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatGridListModule} from '@angular/material/grid-list';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatSidenavModule} from '@angular/material/sidenav';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatTreeModule} from '@angular/material/tree';\r\nimport {OverlayModule} from '@angular/cdk/overlay';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\n\r\n@NgModule({\r\n imports: [\r\n A11yModule,\r\n ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n OverlayModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ],\r\n exports: [\r\n A11yModule,\r\n ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatMomentDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n OverlayModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ],\r\n declarations: []\r\n})\r\nexport class MaterialModule { }\r\n","import { Component, ElementRef, OnInit, ViewChild, ViewChildren, QueryList, ChangeDetectorRef, NgModule, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { JwtService } from 'src/app/core/services/jwt.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { BehaviorSubject, forkJoin, Observable, of, Subscription } from 'rxjs';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { AsociadorSncyNcService } from './servicios/asociador-sncy-nc.service';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { NoopScrollStrategy } from '@angular/cdk/overlay';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Cliente } from './modelos/Cliente';\r\nimport { BusquedaAsociaciones } from './modelos/BusquedaAsociaciones';\r\nimport { ErrorOperadorSaldoStateMatcher } from './modelos/ErrorOperadorSaldoStateMatcher';\r\nimport { ErrorTipoDocNroDocumentoStateMatcher } from './modelos/ErrorTipoDocNroDocumentoStateMatcher';\r\nimport { DocumentoAsociado } from './modelos/DocumentoAsociado';\r\nimport { DialogViewDocumentosAsociadosComponent } from './dialog-view-documentos-asociados/dialog-view-documentos-asociados.component';\r\nimport { DatosSobre } from './modelos/DatosSobre';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeES from '@angular/common/locales/es';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\nregisterLocaleData(localeES, 'es');\r\n\r\nexport interface Conciliaciones {\r\n headerCheckbox: boolean;\r\n IdDocumentoSobre: number;\r\n IdPaisDocumentoSobre: number;\r\n Cuit: string;\r\n Interlocutor: string;\r\n NroConciliacion: string;\r\n Saldo: string;\r\n EstadoConciliacion: string;\r\n documentos?: Documento[] | MatTableDataSource;\r\n}\r\n\r\nexport interface Documento {\r\n TipoDocumento: string;\r\n Motivo: string;\r\n NumeroDocumento: string;\r\n Fecha: string;\r\n Importe: string;\r\n Visualizador: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-asociador-sncy-nc',\r\n templateUrl: './asociador-sncy-nc.component.html',\r\n styleUrls: ['./asociador-sncy-nc.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n\r\nexport class AsociadorSncyNcComponent implements OnInit {\r\n buscando: boolean = false;\r\n\r\n parametrosDeBusqueda: FormGroup = this.fb.group({\r\n fechaDesde: [new Date()],\r\n fechaHasta: [new Date()],\r\n idCliente: 0,\r\n idPaisCliente: 0,\r\n interlocutores: [new Array()],\r\n estadoConciliacion: ['todos'],\r\n motivoSolicitud: ['todos'],\r\n operador: ['todos'],\r\n saldo: [''],\r\n tipoDocumento: ['todos'],\r\n numeroDocumento: [''],\r\n });\r\n\r\n checkboxGral = new FormControl();\r\n checkboxGral1 = new FormControl();\r\n matcherOperadorSaldo = new ErrorOperadorSaldoStateMatcher();\r\n matcherTipoDocNroDocumento = new ErrorTipoDocNroDocumentoStateMatcher();\r\n noExistenSeleccionados: boolean = true;\r\n\r\n empresaActual: any;\r\n interlocutoresFiltrados: Observable;\r\n estadosConciliacion: any;\r\n motivosSolicitud: any;\r\n tiposDocumentosSncNc: any;\r\n\r\n isDownLoading = false;\r\n totalRows = 0;\r\n pageSize = 30;\r\n currentPage = 0;\r\n pageSizeOptions: number[] = [10, 30, 50, 100];\r\n\r\n @ViewChild('outerSort', { static: true }) sort: MatSort;\r\n @ViewChildren('innerSort') innerSort: QueryList;\r\n @ViewChildren('innerTables') innerTables: QueryList>;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n selection = new SelectionModel(true, []);\r\n\r\n dataSource: MatTableDataSource;\r\n columnsToDisplay = ['headerCheckbox', 'interlocutor', 'nroConciliacion', 'saldo', 'estadoConciliacion', 'flechita'];\r\n innerDisplayedColumns = ['tipoDocumento', 'motivo', 'numeroDocumento', 'fecha', 'importe', 'documentoAsociado'];\r\n expandedElement: Conciliaciones | null;\r\n Grupos: Conciliaciones[] = [];\r\n\r\n toggleRow(element: Conciliaciones) {\r\n element.documentos && (element.documentos as MatTableDataSource).data.length ? (this.expandedElement = this.expandedElement === element ? null : element) : null;\r\n this.cd.detectChanges();\r\n this.innerTables.forEach((table, index) => (table.dataSource as MatTableDataSource).sort = this.innerSort.toArray()[index]);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.innerTables.forEach((table, index) => (table.dataSource as MatTableDataSource).filter = filterValue.trim().toLowerCase());\r\n }\r\n\r\n private subscriptions = new Subscription()\r\n constructor(\r\n private fb: FormBuilder,\r\n public servicioAsociador: AsociadorSncyNcService,\r\n public jwtService: JwtService,\r\n public genericToasterService: GenericToasterService,\r\n public translate: TranslateService,\r\n private cd: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private toastr: ToastrService,\r\n private authService: AuthService,\r\n private _adapter: DateAdapter,\r\n )\r\n { }\r\n\r\n\r\n ngOnInit(): void {\r\n this._adapter.setLocale(this.authService.getUserData()?.Cultura || 'es-AR');\r\n const fechaSemanaAnterior = new Date(new Date());\r\n // tomamos una semana para atras por defecto\r\n fechaSemanaAnterior.setDate(fechaSemanaAnterior.getDate() - 7);\r\n\r\n this.setEmpresa();\r\n\r\n const requests: any = [\r\n this.servicioAsociador.getEstadosConciliacion()\r\n .pipe(catchError(error => of(this.genericToasterService\r\n .pushError(\"ERROR_APLICACION\")))),\r\n\r\n this.servicioAsociador.getMotivosSolicitud(this.empresaActual)\r\n .pipe(catchError(error => of(this.genericToasterService\r\n .pushError(\"ERROR_APLICACION\")))),\r\n\r\n this.servicioAsociador.getTiposDocumentosSncNc()\r\n .pipe(catchError(error => of(this.genericToasterService\r\n .pushError(\"ERROR_APLICACION\")))),\r\n\r\n ];\r\n\r\n this.servicioAsociador.getInterlocutores(this.empresaActual).then(x => {\r\n this.interlocutores = x;\r\n this.interlocutoresOptions.next(x);\r\n });\r\n\r\n this.subscriptions.add(\r\n this.filteredInterlocutores.subscribe(x => this.interlocutoresOptions.next(x)));\r\n\r\n const joined$ = forkJoin(requests);\r\n\r\n joined$.subscribe((respuestas: any) => {\r\n this.estadosConciliacion = respuestas[0];\r\n this.motivosSolicitud = respuestas[1];\r\n this.tiposDocumentosSncNc= respuestas[2];\r\n });\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")!.setValue(fechaSemanaAnterior);\r\n\r\n //Recupero la busqueda si ya se había realizado antes\r\n let busquedaGuardada = sessionStorage.getItem('filtroBusqueda');\r\n if((busquedaGuardada != '') && (busquedaGuardada != null)){\r\n let busquedaJSON = JSON.parse(busquedaGuardada);\r\n this.parametrosDeBusqueda.setValue(busquedaJSON);\r\n }\r\n\r\n this.buscarGruposConciliacion();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n binarySelectOptions: string[] = [\"TODOS\", \"<=\", \">=\"]\r\n registrosConciliacion: Conciliaciones;\r\n\r\n validarErrorOperadorYSaldo()\r\n {\r\n if (this.parametrosDeBusqueda!.get(\"saldo\")!.value != null && this.parametrosDeBusqueda!.get(\"saldo\")!.value != '')\r\n {\r\n if (this.parametrosDeBusqueda!.get(\"operador\")!.value == 'todos' || this.parametrosDeBusqueda!.get(\"operador\")!.value == 'TODOS')\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n if (this.parametrosDeBusqueda!.get(\"operador\")!.value != 'todos' && this.parametrosDeBusqueda!.get(\"operador\")!.value != 'TODOS')\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n validarErrorTipoYNumeroDocumento()\r\n {\r\n if (this.parametrosDeBusqueda!.get(\"numeroDocumento\")!.value != null && this.parametrosDeBusqueda!.get(\"numeroDocumento\")!.value != '')\r\n {\r\n this.deshabilitarControles()\r\n if (this.parametrosDeBusqueda!.get(\"tipoDocumento\")!.value == 'todos' || (this.parametrosDeBusqueda!.get(\"tipoDocumento\")!.value).resourceKey == 'todos')\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n this.habilitarControles();\r\n if (this.parametrosDeBusqueda!.get(\"tipoDocumento\")!.value != 'todos' && (this.parametrosDeBusqueda!.get(\"tipoDocumento\")!.value).resourceKey != 'todos')\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n setEmpresa() {\r\n this.empresaActual = this.jwtService.getAccessToken()?.userdata?.Cliente ?? null;\r\n }\r\n\r\n mapeadorBusqueda(busqueda: any): BusquedaAsociaciones\r\n {\r\n if (busqueda.interlocutores == '' || busqueda.interlocutores.length == 0)\r\n {\r\n busqueda.interlocutores = null;\r\n }\r\n\r\n if (busqueda.estadoConciliacion == 'todos' || busqueda.estadoConciliacion.resourceKey == 'TODOS')\r\n {\r\n busqueda.estadoConciliacion = null;\r\n }\r\n\r\n if (busqueda.motivoSolicitud == 'todos' || busqueda.motivoSolicitud.resourceKey == 'todos')\r\n {\r\n busqueda.motivoSolicitud= null;\r\n }\r\n\r\n if (busqueda.tipoDocumento == 'todos' || busqueda.tipoDocumento.resourceKey == 'todos')\r\n {\r\n busqueda.tipoDocumento= null;\r\n }\r\n\r\n if ( busqueda.numeroDocumento != null && busqueda.numeroDocumento != '')\r\n {\r\n busqueda.numeroDocumento = busqueda.numeroDocumento.trim();\r\n }\r\n\r\n if (busqueda.operador == 'todos' || busqueda.operador == 'TODOS')\r\n {\r\n busqueda.operador = \"\";\r\n }\r\n\r\n if (busqueda.saldo == null || busqueda.saldo == '')\r\n {\r\n busqueda.saldo = \"0\";\r\n }\r\n\r\n busqueda.idCliente = this.empresaActual.Id;\r\n busqueda.idPaisCliente= this.empresaActual.IdPais;\r\n if (this.currentPage == 0)\r\n {\r\n busqueda.nroPagina = 1;\r\n }\r\n else\r\n {\r\n if (busqueda.numeroDocumento != null && busqueda.numeroDocumento != '') {\r\n this.currentPage = 0;\r\n busqueda.nroPagina = 1;\r\n }\r\n else {\r\n busqueda.nroPagina = this.currentPage + 1;\r\n }\r\n }\r\n busqueda.cantPorPagina = this.pageSize;\r\n\r\n return busqueda;\r\n }\r\n\r\n buscarGruposConciliacionDesdeBoton() {\r\n this.currentPage = 0;\r\n this.buscarGruposConciliacion();\r\n }\r\n\r\n buscarGruposConciliacion() {\r\n const isValidTipoyNumero: boolean = this.matcherTipoDocNroDocumento.valid;\r\n const isValidOperacionYsaldo: boolean = this.matcherOperadorSaldo.valid;\r\n this.checkboxGral.setValue(false);\r\n this.clearAll();\r\n\r\n if (isValidTipoyNumero && isValidOperacionYsaldo) {\r\n this.buscando = true;\r\n let busqueda = this.mapeadorBusqueda(this.parametrosDeBusqueda.getRawValue());\r\n\r\n this.servicioAsociador.postBuscarAsociacionesSncNc(busqueda).subscribe((\r\n resultado: any) =>\r\n {\r\n this.buscando = false;\r\n this.Grupos = resultado.registros;\r\n this.totalRows = resultado.cantidadRegistros;\r\n\r\n if (resultado.registros.length == 0) {\r\n this.dataSource = new MatTableDataSource();\r\n this.mostrarMensaje();\r\n }\r\n else {\r\n let registrosConciliacion: Conciliaciones[] = [];\r\n this.Grupos.forEach(asociacion => {\r\n if (asociacion.documentos && Array.isArray(asociacion.documentos) && asociacion.documentos.length) {\r\n registrosConciliacion = [...registrosConciliacion, {...asociacion, documentos: new MatTableDataSource(asociacion.documentos)}];\r\n } else {\r\n registrosConciliacion = [...registrosConciliacion, asociacion];\r\n }\r\n });\r\n this.dataSource = new MatTableDataSource(registrosConciliacion);\r\n setTimeout(() => {\r\n this.paginator.pageIndex = this.currentPage;\r\n this.paginator.length = this.totalRows;\r\n });\r\n\r\n ////guardar busqueda\r\n sessionStorage.setItem('filtroBusqueda', JSON.stringify(this.parametrosDeBusqueda.value));\r\n }\r\n });\r\n }\r\n }\r\n\r\n pageChanged(event: PageEvent) {\r\n this.pageSize = event.pageSize;\r\n this.currentPage = event.pageIndex;\r\n this.buscarGruposConciliacion();\r\n }\r\n\r\n limpiar() {\r\n const fechaSemanaAnterior = new Date(new Date());\r\n // tomamos una semana para atras por defecto\r\n fechaSemanaAnterior.setDate(fechaSemanaAnterior.getDate() - 7);\r\n\r\n this.parametrosDeBusqueda.reset();\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")!.setValue(fechaSemanaAnterior);\r\n this.parametrosDeBusqueda.get(\"fechaHasta\")!.setValue(new Date());\r\n this.parametrosDeBusqueda.get(\"interlocutores\")!.setValue(new Array());\r\n this.parametrosDeBusqueda.get(\"estadoConciliacion\")!.setValue(['todos']);\r\n this.parametrosDeBusqueda.get(\"motivoSolicitud\")!.setValue(['todos']);\r\n this.parametrosDeBusqueda.get(\"tipoDocumento\")!.setValue(['todos']);\r\n this.parametrosDeBusqueda.get(\"operador\")!.setValue(['todos']);\r\n this.interlocutoresOptions.next(this.interlocutores);\r\n sessionStorage.removeItem('filtroBusqueda');\r\n this.buscarGruposConciliacion();\r\n }\r\n\r\n //Interlocutor\r\n interlocutores: any[] = [];\r\n interlocutorControl = new FormControl();\r\n @ViewChild('interlocutoresInput') interlocutoresInput: ElementRef;\r\n @ViewChild('interlocutorPanel') interlocutorPanel: MatAutocomplete;\r\n interlocutoresOptions: BehaviorSubject = new BehaviorSubject([])\r\n @ViewChild(MatAutocompleteTrigger) panel: MatAutocompleteTrigger;\r\n\r\n filteredInterlocutores: Observable = this.interlocutorControl.valueChanges.pipe(\r\n map((chip: string | null) => {\r\n let result: any[];\r\n if (typeof chip == 'string') {\r\n let filterValue = chip.toLowerCase();\r\n result = this.interlocutores.filter(x => x.razonSocial.toLowerCase().includes(filterValue)\r\n || (x.aliasEmpresa != null && x.aliasEmpresa.toLowerCase().includes(filterValue))\r\n || x.cuit.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n result = this.interlocutores.filter(x => !this.parametrosDeBusqueda.value.interlocutores?.includes(x) ?? true);\r\n }\r\n return result;\r\n })\r\n );\r\n\r\n selectInterlocutor(event: MatAutocompleteSelectedEvent): void {\r\n this.parametrosDeBusqueda.controls.interlocutores.value.push(event.option.value);\r\n this.limpiarInputInterlocutor();\r\n }\r\n\r\n limpiarInputInterlocutor() {\r\n this.interlocutoresInput.nativeElement.value = '';\r\n this.interlocutorControl.reset();\r\n }\r\n\r\n removeInterlocutor(chip: any): void {\r\n const index = this.parametrosDeBusqueda.controls.interlocutores.value.indexOf(chip);\r\n if (index >= 0) {\r\n this.parametrosDeBusqueda.controls.interlocutores.value.splice(index, 1);\r\n }\r\n }\r\n\r\n onBlurInterlocutor(): void {\r\n if (!(this.panel.panelOpen)) {\r\n this.interlocutorControl.reset();\r\n }\r\n }\r\n\r\n onClosePanelInterlocutor(): void {\r\n this.limpiarInputInterlocutor();\r\n }\r\n\r\n exportarTodo()\r\n {\r\n let busqueda = this.mapeadorBusqueda(this.parametrosDeBusqueda.getRawValue());\r\n\r\n this.servicioAsociador.postExportarTodasLasAsociacionesSncNc(busqueda).subscribe((\r\n res: any) =>\r\n {\r\n if (res.length > 0) {\r\n const fechaDelDia = new Date(new Date());\r\n let csvContent =this.generarArchivoCSVTodosPorFiltro(res);\r\n var hiddenElement = document.createElement('a');\r\n hiddenElement.href= 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csvContent);\r\n hiddenElement.target= '_blank';\r\n hiddenElement.download= \"GestionSolicNCredito\" + \"_\"\r\n + fechaDelDia.getFullYear().toString()\r\n + this.devolverNumeroFormateado(fechaDelDia.getMonth() + 1)\r\n + this.devolverNumeroFormateado(fechaDelDia.getDate())\r\n + this.devolverNumeroFormateado(fechaDelDia.getHours())\r\n + this.devolverNumeroFormateado(fechaDelDia.getMinutes()) + '.csv';\r\n hiddenElement.click();\r\n }\r\n });\r\n }\r\n\r\n exportarSeleccionados() {\r\n let csvContent =this.generarArchivoCSVSeleccionados();\r\n const fechaDelDia = new Date(new Date());\r\n var hiddenElement = document.createElement('a');\r\n hiddenElement.href= 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csvContent);\r\n hiddenElement.target= '_blank';\r\n hiddenElement.download= \"GestionSolicNCredito\" + \"_\"\r\n + fechaDelDia.getFullYear().toString()\r\n + this.devolverNumeroFormateado(fechaDelDia.getMonth() + 1)\r\n + this.devolverNumeroFormateado(fechaDelDia.getDate())\r\n + this.devolverNumeroFormateado(fechaDelDia.getHours())\r\n + this.devolverNumeroFormateado(fechaDelDia.getMinutes()) + '.csv';\r\n hiddenElement.click();\r\n }\r\n\r\n devolverNumeroFormateado(numero: number) : string {\r\n let numeroFormateado = \"\";\r\n if ((\"00\" + (numero).toString()).length == 3 ) {\r\n numeroFormateado = (\"00\" + (numero).toString()).substring(1, 3);\r\n }\r\n else {\r\n numeroFormateado = (\"00\" + (numero).toString()).substring(2, 4);\r\n }\r\n return numeroFormateado;\r\n }\r\n\r\n generarArchivoCSVTodosPorFiltro(asociaciones: any): string\r\n {\r\n let registro: string[] = ['cuit', 'interlocutor', 'nroConciliacion', 'importe', 'saldo', 'estadoConciliacion', 'tipoDocumento', 'motivo', 'numeroDocumento', 'fecha'];\r\n\r\n let rowWithPropertyNames = registro.join(';') + '\\n';\r\n\r\n let csvContent = rowWithPropertyNames;\r\n let rows: string[]= [];\r\n\r\n asociaciones.forEach((asociacion: any) => {\r\n let values: string[]= [];\r\n\r\n registro.forEach((key)=> {\r\n let val: any= asociacion[key];\r\n\r\n if(val !== undefined && val !== null){\r\n if (key == \"tipoDocumento\"){\r\n val = new String(this.translate.instant(val));\r\n }\r\n else if (key == \"estadoConciliacion\") {\r\n val = new String(this.translate.instant(val.toLowerCase()));\r\n }\r\n else if (key == \"motivo\") {\r\n if (val != \"\") {\r\n val = new String(this.translate.instant(val));\r\n }\r\n else {\r\n val = new String(val);\r\n }\r\n }\r\n else {\r\n val = new String(val);\r\n }\r\n }else {\r\n val= '';\r\n }\r\n values.push(val);\r\n });\r\n\r\n rows.push(values.join(';'));\r\n });\r\n\r\n csvContent+= rows.join('\\n');\r\n\r\n return csvContent;\r\n }\r\n\r\n generarArchivoCSVSeleccionados(): string\r\n {\r\n if(this.selection.selected.length == 0) {\r\n return '';\r\n }\r\n\r\n let cabecera: string[] = ['cuit', 'interlocutor', 'nroConciliacion', 'saldo', 'estadoConciliacion']\r\n let detalle: string[] = ['tipoDocumento', 'motivo', 'numeroDocumento', 'fecha', 'importe']\r\n\r\n let rowWithPropertyNames = ['cuit', 'interlocutor', 'nroConciliacion', 'importe', 'saldo', 'estadoConciliacion', 'tipoDocumento', 'motivo', 'numeroDocumento', 'fecha'].join(';') + '\\n';\r\n\r\n let csvContent = rowWithPropertyNames;\r\n let rows: string[]= [];\r\n\r\n this.selection.selected.sort((a, b) => (a.nroConciliacion > b.nroConciliacion) ? -1 : 1);\r\n\r\n this.selection.selected.forEach((asociacion)=> {\r\n let valuesCabecera: string[]= [];\r\n\r\n cabecera.forEach((key)=> {\r\n let val: any= asociacion[key];\r\n\r\n if(val !== undefined && val !== null){\r\n if (key == \"estadoConciliacion\") {\r\n val = new String(this.translate.instant(val.toLowerCase()));\r\n }\r\n else {\r\n val= new String(val);\r\n }\r\n }else {\r\n val= '';\r\n }\r\n\r\n valuesCabecera.push(val);\r\n });\r\n\r\n asociacion.documentos._data._value.forEach((documento: any) => {\r\n let i = 0;\r\n let valuesRegistro: string[]= [];\r\n let valuesDetalle: string[]= [];\r\n let tipoDocumento : any;\r\n\r\n detalle.forEach((key)=> {\r\n let valDetalle: any= documento[key];\r\n\r\n if(valDetalle !== undefined && valDetalle !== null){\r\n if (key == \"tipoDocumento\"){\r\n tipoDocumento = valDetalle;\r\n valDetalle= new String(this.translate.instant(valDetalle));\r\n }\r\n else if (key == \"motivo\") {\r\n if (valDetalle != \"\") {\r\n valDetalle = new String(this.translate.instant(valDetalle));\r\n }\r\n else {\r\n valDetalle = new String(valDetalle);\r\n }\r\n }\r\n else {\r\n valDetalle= new String(valDetalle);\r\n }\r\n }else {\r\n valDetalle = '';\r\n }\r\n valuesDetalle.push(valDetalle);\r\n });\r\n\r\n /// cambio el orden de los campos a pedido del cliente\r\n let valuesRegistroAuxiliar: string[]= [];\r\n valuesRegistroAuxiliar[0] = valuesCabecera[0];\r\n valuesRegistroAuxiliar[1] = valuesCabecera[1];\r\n valuesRegistroAuxiliar[2] = valuesCabecera[2];\r\n if (tipoDocumento != 'SOLNCRE') {\r\n ///negativo a las NC y NCMiPyme\r\n var numberValue = Number(valuesDetalle[4]) * (-1);\r\n valuesRegistroAuxiliar[3] = String(numberValue);\r\n }\r\n else {\r\n valuesRegistroAuxiliar[3] = valuesDetalle[4];\r\n }\r\n if (valuesCabecera[3] == \"\") {\r\n valuesRegistroAuxiliar[4] = \"0\";\r\n }\r\n else {\r\n valuesRegistroAuxiliar[4] = valuesCabecera[3];\r\n }\r\n valuesRegistroAuxiliar[5] = valuesCabecera[4];\r\n valuesRegistroAuxiliar[6] = valuesDetalle[0];\r\n valuesRegistroAuxiliar[7] = valuesDetalle[1];\r\n valuesRegistroAuxiliar[8] = valuesDetalle[2];\r\n valuesRegistroAuxiliar[9] = valuesDetalle[3];\r\n\r\n valuesRegistro = valuesRegistroAuxiliar;\r\n rows.push(valuesRegistro.join(';'));\r\n });\r\n });\r\n\r\n csvContent+= rows.join('\\n');\r\n\r\n return csvContent;\r\n }\r\n\r\n habilitarControles()\r\n {\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")?.enable();\r\n if (this.parametrosDeBusqueda.get(\"fechaDesde\")?.value == null)\r\n {\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")?.setValue(new Date());\r\n }\r\n this.parametrosDeBusqueda.get(\"fechaHasta\")?.enable();\r\n if (this.parametrosDeBusqueda.get(\"fechaHasta\")?.value == null)\r\n {\r\n this.parametrosDeBusqueda.get(\"fechaHasta\")?.setValue(new Date());\r\n }\r\n this.parametrosDeBusqueda.get(\"interlocutores\")?.enable();\r\n this.parametrosDeBusqueda.get(\"estadoConciliacion\")?.enable();\r\n this.parametrosDeBusqueda.get(\"motivoSolicitud\")?.enable();\r\n this.parametrosDeBusqueda.get(\"operador\")?.enable();\r\n this.parametrosDeBusqueda.get(\"saldo\")?.enable();\r\n }\r\n\r\n deshabilitarControles()\r\n {\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")?.disable();\r\n this.parametrosDeBusqueda.get(\"fechaDesde\")?.setValue(null);\r\n this.parametrosDeBusqueda.get(\"fechaHasta\")?.disable();\r\n this.parametrosDeBusqueda.get(\"fechaHasta\")?.setValue(null);\r\n this.parametrosDeBusqueda.get(\"interlocutores\")?.disable();\r\n this.parametrosDeBusqueda.get(\"estadoConciliacion\")?.setValue('todos');\r\n this.parametrosDeBusqueda.get(\"estadoConciliacion\")?.disable();\r\n this.parametrosDeBusqueda.get(\"motivoSolicitud\")?.setValue('todos');\r\n this.parametrosDeBusqueda.get(\"motivoSolicitud\")?.disable();\r\n this.parametrosDeBusqueda.get(\"operador\")?.setValue('todos');\r\n this.parametrosDeBusqueda.get(\"operador\")?.disable();\r\n this.parametrosDeBusqueda.get(\"saldo\")?.setValue('');\r\n this.parametrosDeBusqueda.get(\"saldo\")?.disable();\r\n }\r\n\r\n controlMenuExportacion(evento: any, selection: any, row: any) {\r\n evento ? selection.toggle(row): null;\r\n this.isAllSelected()\r\n }\r\n\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected != null ? this.selection.selected.length : 0;\r\n const numRows = this.dataSource.data.length;\r\n\r\n if (numSelected >= 1) {\r\n this.noExistenSeleccionados = false;\r\n }\r\n else {\r\n if (numSelected == 0) {\r\n this.noExistenSeleccionados = true;\r\n }\r\n }\r\n\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle(evento: MatCheckboxChange) {\r\n this.isAllSelected() ?\r\n this.clearAll() :\r\n this.markAll();\r\n }\r\n\r\n clearAll() {\r\n this.selection.clear();\r\n this.noExistenSeleccionados = true;\r\n }\r\n\r\n markAll() {\r\n this.selection.clear();\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n onClickGetDocAsoc(idSobre: number, idPaisSobre: number) {\r\n this.servicioAsociador.getDocumentosAsociados(idSobre, idPaisSobre).subscribe((data: DocumentoAsociado[]) => {\r\n this.dialog\r\n .open(DialogViewDocumentosAsociadosComponent, {\r\n data: {\r\n documentos: data\r\n },\r\n autoFocus: false,\r\n scrollStrategy: new NoopScrollStrategy()\r\n })\r\n }\r\n );\r\n }\r\n\r\n mostrarMensaje() {\r\n this.genericToasterService.pushError(\"LA_BUSQUEDA_NO_ARROJO_RESULTADOS\")\r\n }\r\n\r\n onClickGetDocumentoPDFGrilla(idSobre: number, idPaisSobre: number, tipoDocumento: string, visualizador: string) {\r\n this.isDownLoading = true;\r\n let datos: DatosSobre = this.mapeadorDatoSobre(idSobre, idPaisSobre, tipoDocumento, visualizador);\r\n\r\n this.servicioAsociador.postObtenerDocumentoPDFGrilla(datos).subscribe((\r\n documento: any) =>\r\n {\r\n if (documento!= null) {\r\n this.isDownLoading = false;\r\n var arrrayBuffer = this.base64ToArrayBuffer(documento.contenidoBinario); //data is the base64 encoded string    \r\n var blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n var linkNew = window.URL.createObjectURL(blob);\r\n window.open(linkNew, '_blank');\r\n }\r\n });\r\n }\r\n\r\n base64ToArrayBuffer(base64:any) {\r\n var binaryString = window.atob(base64);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n mapeadorDatoSobre(idSobre: number, idPaisSobre: number, tipoDocumento: string, visualizador: string): DatosSobre {\r\n let datos: DatosSobre = new DatosSobre();\r\n\r\n datos.idDocumentoSobre=idSobre;\r\n datos.idPaisDocumentoSobre=idPaisSobre;\r\n datos.tipoDocumento=tipoDocumento;\r\n datos.visualizador=visualizador;\r\n datos.formato = 'PDF';\r\n\r\n return datos;\r\n }\r\n}\r\n","

\r\n {{ 'GestionSolicNCredito' | translate }}\r\n

\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n {{ 'FECHA_DESDE' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'FECHA_HASTA' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n {{ 'INTERLOCUTOR' | translate }}\r\n\r\n \r\n \r\n {{ chip.razonSocial }}\r\n cancel\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{option.razonSocial}}\r\n \r\n \r\n\r\n {{ \"SELECCIONE_INTERLOCUTOR\" | translate }}\r\n \r\n\r\n \r\n \r\n {{ \"ESTADO_CONCILIACION\" | translate }}\r\n \r\n \r\n {{ opt.resourceKey.toLowerCase() | translate }}\r\n \r\n \r\n {{\"SELECCIONE_ESTADO_DE_CONCILIACION\" | translate }}\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n {{ \"MOTIVO\" | translate }}\r\n \r\n \r\n {{ opt.resourceKey | translate }}\r\n \r\n \r\n\r\n {{ \"SELECCIONE_MOTIVO_DE_SOLICITUD\" | translate }}\r\n \r\n\r\n
\r\n \r\n \r\n {{ \"Operador\" | translate }}\r\n \r\n \r\n {{ opt }}\r\n \r\n \r\n {{\"SELECCIONE_OPERADOR\" | translate}}\r\n \r\n\r\n \r\n \r\n {{ \"Saldo\" | translate }}\r\n \r\n {{ \"INGRESE_SALDO\" | translate }}\r\n \r\n\r\n
\r\n {{ \"AMBOS_CAMPOS_DEBEN_COMPLETARSE\" | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ \"TIPO_DOCUMENTO\" | translate }}\r\n \r\n \r\n {{ opt.resourceKey | translate }}\r\n \r\n \r\n {{ \"SELECCIONE_TIPO_DOCUMENTO\" | translate }}\r\n \r\n\r\n \r\n \r\n {{ \"NUMERO_DOCUMENTO\" | translate }}\r\n \r\n {{ \"INGRESE_NUMERO_DOCUMENTO\" | translate }}\r\n \r\n\r\n
\r\n {{ \"AMBOS_CAMPOS_DEBEN_COMPLETARSE\" | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ 'interlocutor' | translate }} {{element.interlocutor}} {{ 'nroConciliacion' | translate }} {{element.nroConciliacion}} {{ 'saldo' | translate }} \r\n {{ element.saldo != null ? '$' : '' }}{{ element.saldo | currency: 'ARS' : '' : '1.2-2' }}\r\n {{ 'estadoConciliacion' | translate }} \r\n \r\n {{ element.estadoConciliacion.toLowerCase() | translate }} \r\n \r\n \r\n expand_more\r\n expand_less\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ 'tipoDocumento' | translate }}\r\n {{ element.tipoDocumento | translate }} {{ 'motivo' | translate }}\r\n {{ element.motivo | translate }} {{ 'numeroDocumento' | translate }}\r\n \r\n {{ element.numeroDocumento }} \r\n {{ 'fecha' | translate }} {{ element.fecha }} {{ 'importe' | translate }}\r\n \r\n {{ element.importe != null ? '$' : '' }}{{ element.importe | currency: 'ARS' : '' : '1.2-2' }}\r\n {{ 'documentoAsociado' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, Inject, NgModule, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DatosSobre } from '../modelos/DatosSobre';\r\nimport { DocumentoAsociado } from '../modelos/DocumentoAsociado';\r\nimport { AsociadorSncyNcService } from '../servicios/asociador-sncy-nc.service';\r\n\r\nexport interface Data {\r\n documentos: DocumentoAsociado;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog-view-documentos-asociados',\r\n templateUrl: './dialog-view-documentos-asociados.component.html',\r\n styleUrls: ['./dialog-view-documentos-asociados.component.scss']\r\n})\r\nexport class DialogViewDocumentosAsociadosComponent implements OnInit {\r\n isDownLoading: boolean = false;\r\n constructor(\r\n public dialogo: MatDialogRef,\r\n public servicioAsociador: AsociadorSncyNcService,\r\n @Inject(MAT_DIALOG_DATA) public data: Data) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClickGetDocumentoPDFPopup(idSobre: number, idPaisSobre: number, tipoDocumento: string, visualizador: string) {\r\n this.isDownLoading = true;\r\n let datos: DatosSobre = this.mapeadorDatoSobre(idSobre, idPaisSobre, tipoDocumento, visualizador);\r\n\r\n this.servicioAsociador.postObtenerDocumentoPDFGrilla(datos).subscribe((\r\n documento: any) => \r\n {\r\n if (documento!= null) {\r\n this.isDownLoading = false;\r\n var arrrayBuffer = this.base64ToArrayBuffer(documento.contenidoBinario); //data is the base64 encoded string    \r\n var blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n var linkNew = window.URL.createObjectURL(blob);\r\n window.open(linkNew, '_blank');\r\n }\r\n }); \r\n }\r\n\r\n base64ToArrayBuffer(base64:any) {\r\n var binaryString = window.atob(base64);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n mapeadorDatoSobre(idSobre: number, idPaisSobre: number, tipoDocumento: string, visualizador: string): DatosSobre {\r\n let datos: DatosSobre = new DatosSobre();\r\n\r\n datos.idDocumentoSobre=idSobre; \r\n datos.idPaisDocumentoSobre=idPaisSobre;\r\n datos.tipoDocumento=tipoDocumento;\r\n datos.visualizador=visualizador;\r\n datos.formato = 'PDF';\r\n\r\n return datos;\r\n } \r\n}\r\n","
\r\n

{{ 'DOCUMENTOS_ASOCIADOS' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n device_hub\r\n
\r\n
\r\n link\r\n link\r\n
\r\n
\r\n \t
\r\n {{ Documento.tipoDocumento | translate }} N° {{ Documento.numeroDocumento }} \r\n
\r\n
\r\n {{ Documento.tipoDocumento | translate }} N° {{ Documento.numeroDocumento }}\r\n \r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n\r\n","export class DatosSobre {\r\n idDocumentoSobre: number;\r\n idPaisDocumentoSobre: number;\r\n tipoDocumento: string;\r\n visualizador: string;\r\n formato: string;\r\n}","import { FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport { ErrorStateMatcher } from \"@angular/material/core\";\r\n\r\nexport class ErrorOperadorSaldoStateMatcher implements ErrorStateMatcher {\r\n public valid: boolean = true;\r\n\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n if (form!.form.get(\"saldo\")!.value != null && form!.form.get(\"saldo\")!.value != '')\r\n {\r\n if (form!.form.get(\"operador\")!.value == 'todos' || form!.form.get(\"operador\")!.value == 'TODOS')\r\n {\r\n this.valid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.valid = true;\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n if (form!.form.get(\"operador\")!.value != 'todos' && form!.form.get(\"operador\")!.value != 'TODOS')\r\n {\r\n this.valid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.valid = true;\r\n return false;\r\n }\r\n }\r\n }\r\n}\r\n","import { FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport { ErrorStateMatcher } from \"@angular/material/core\";\r\n\r\nexport class ErrorTipoDocNroDocumentoStateMatcher implements ErrorStateMatcher {\r\n public valid: boolean = true;\r\n\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n if (form!.form.get(\"numeroDocumento\")!.value != null && form!.form.get(\"numeroDocumento\")!.value != '')\r\n {\r\n if (form!.form.get(\"tipoDocumento\")!.value == 'todos' || (form!.form.get(\"tipoDocumento\")!.value).resourceKey == 'todos')\r\n {\r\n this.valid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.valid = true;\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n if (form!.form.get(\"tipoDocumento\")!.value == 'todos' || (form!.form.get(\"tipoDocumento\")!.value).resourceKey == 'todos')\r\n {\r\n this.valid = true;\r\n return false;\r\n }\r\n else\r\n {\r\n this.valid = false;\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n ","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BusquedaAsociaciones } from '../modelos/BusquedaAsociaciones';\r\nimport { DatosSobre } from '../modelos/DatosSobre';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AsociadorSncyNcService {\r\n\r\n constructor(public http:HttpClient) { }\r\n\r\n getInterlocutores(cliente: any): Promise\r\n {\r\n return this.http.get(`${environment.apiUrl}/AsociadorSncYNc/Clientes/${cliente.Id}/Paises/${cliente.IdPais}/ListarInterlocutores`).toPromise();\r\n } \r\n\r\n getEstadosConciliacion(): Observable\r\n {\r\n return this.http.get(`${environment.apiUrl}/AsociadorSncYNc/ListarEstadosConciliacion`);\r\n }\r\n\r\n getMotivosSolicitud(cliente: any): Observable\r\n {\r\n return this.http.get(`${environment.apiUrl}/AsociadorSncYNc/Clientes/${cliente.Id}/Paises/${cliente.IdPais}/ListarMotivosSolicitud`);\r\n }\r\n\r\n getTiposDocumentosSncNc(): Observable\r\n {\r\n return this.http.get(`${environment.apiUrl}/AsociadorSncYNc/ListarTiposDocumentosSncNc`);\r\n }\r\n\r\n postBuscarAsociacionesSncNc(searchFilters: BusquedaAsociaciones): Observable \r\n {\r\n return this.http.post(`${environment.apiUrl}/AsociadorSncYNc/BuscarAsociacionesSncNc`, searchFilters);\r\n }\r\n\r\n postExportarTodasLasAsociacionesSncNc(searchFilters: BusquedaAsociaciones): Observable \r\n {\r\n return this.http.post(`${environment.apiUrl}/AsociadorSncYNc/ExportarTodasLasAsociacionesSncNc`, searchFilters);\r\n }\r\n\r\n getDocumentosAsociados(idSobre: number, idPaisSobre: number): Observable {\r\n return this.http.get(`${environment.apiUrl}/AsociadorSncYNc/Sobres/${idSobre}/Paises/${idPaisSobre}/RecuperarDocumentosAsociados`);\r\n }\r\n\r\n postObtenerDocumentoPDFGrilla(datos: DatosSobre): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ObtenerDocumentoPDF`, datos);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BaseView } from '../models/BaseView';\r\nimport { BusquedaConexiones } from '../models/BusquedaConexiones';\r\nimport { ClienteConexion, ClienteDetalle } from '../models/ClienteConexion';\r\nimport { Conexion } from '../models/Conexion';\r\nimport { ConexionView } from '../models/ConexionView';\r\nimport { InvitacionView } from '../models/InvitacionView';\r\nimport { SolicitudConexion } from '../models/SolicitudConexion';\r\nimport { RelacionIntercambioView } from '../models/RelacionIntercambioView';\r\nimport { TipoProveedorView } from '../models/TipoProveedorView';\r\nimport { CargaArchivo } from '../models/CargaArchivo';\r\nimport { RelacionIntercambio } from '../models/RelacionIntercambio';\r\nimport { BusquedaUltimaInvitacionSponsor, ReenvioInvitacion, UltimaInvitacionSponsor } from '../models/UltimaInvitacion';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConexionesService {\r\n\r\n constructor(public http: HttpClient) {\r\n\r\n }\r\n\r\n getConexiones( searchFilters: BusquedaConexiones): Observable {\r\n /* let asd = {CampoOrden: \"FechaAlta\",\r\n Count:0,\r\n CriterioFiltroFecha:\"SIN_FILTRO_POR_FECHA\",\r\n FechaDesde:\"2023-03-30T12:35:22-03:00\",\r\n FechaHasta:\"2023-03-30T12:35:22-03:00\",\r\n PageNumber:1,\r\n RangoFecha: 0,\r\n Reverse:true}\r\n */\r\n searchFilters.count = false;\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetConexiones`, searchFilters);\r\n }\r\n getConexionesCount(searchFilters: BusquedaConexiones): Observable {\r\n if(searchFilters) searchFilters.count = true;\r\n else \r\n return new Observable();\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetConexionesCount`, searchFilters);\r\n }\r\n\r\n getFranquicias(idCliente: number, idPaisCliente: number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetClientesFranquiciaSponsor`, {params: {IdCliente : idCliente, IdPaisCliente: idPaisCliente}});\r\n }\r\n\r\n getUltimaInvitacionAFranquiciaSponsor(idCliente: number, idPaisCliente: number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetUltimaInvitacionAFranquiciaSponsor`, {params: {idCliente : idCliente, idPaisCliente: idPaisCliente}}); \r\n }\r\n\r\n getTemplatesPdf(): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetTemplatesPdf`);\r\n }\r\n getCheckServicioMaestrosClientes(): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetCheckServicioMaestrosClientes`);\r\n }\r\n \r\n getExportarResultados(): Observable>{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetExportarResultados`, {responseType: 'blob', observe: 'response'});\r\n }\r\n\r\n getCliente(cliente:BaseView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetCliente`, cliente);\r\n }\r\n\r\n getLogoWebCliente(id: number, idPais:number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetLogoWebCliente`, {params: {IdCliente : id, IdPaisCliente: idPais}});\r\n }\r\n\r\n getCiudades(idPais: number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetCiudades`, {params: {idPais : idPais}});\r\n }\r\n\r\n getCheckConfiguracionRecordatoriosVencimientos(cliente: ClienteConexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetCheckConfiguracionRecordatoriosVencimientos`, cliente);\r\n }\r\n\r\n getDatosExtra(idRelacion: number, idPaisRelacion:number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetDatosExtra`, {params: {idRelacion : idRelacion, idPaisRelacion: idPaisRelacion}});\r\n }\r\n getUsuariosParaAccesoADocumentos(conexion: Conexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetUsuariosParaAccesoADocumentos`, conexion);\r\n }\r\n\r\n updateConfiguracionConexion(conexion:ConexionView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/UpdateConfiguracionConexion`, conexion);\r\n }\r\n\r\n getEstructuras(cliente:BaseView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetEstructuras`, cliente);\r\n }\r\n getUltimaInvitacion(relacion: RelacionIntercambioView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetUltimaInvitacion`, relacion);\r\n }\r\n getUltimaInvitacionSponsor(relacion: BusquedaUltimaInvitacionSponsor): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetUltimaInvitacionSponsor`, relacion);\r\n }\r\n getConfiguracionFormulario(id:number, idPais:number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetConfiguracionFormulario`, {params: {id : id, idPais: idPais}});\r\n }\r\n\r\n postReenviarInvitacion(invitacion: InvitacionView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/PostReenviarInvitacion`, invitacion);\r\n }\r\n\r\n postReenviarInvitacionSponsor(invitacion: ReenvioInvitacion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/PostReenviarInvitacionSponsor`, invitacion);\r\n }\r\n\r\n postRechazarConexion(solicitudConexion:SolicitudConexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/PostRechazarConexion`, solicitudConexion);\r\n }\r\n\r\n postAceptarInvitacion(solicitudConexion:SolicitudConexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/PostAceptarInvitacion`, solicitudConexion);\r\n }\r\n\r\n updateConfiguracionFormulario(tipoProveedorView:TipoProveedorView): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/UpdateConfiguracionFormulario`, tipoProveedorView);\r\n }\r\n\r\n recuperarAliasEmpresa(): Observable{\r\n const headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');\r\n const requestOptions: Object = { responseType: 'text', headers };\r\n return this.http.post(`${environment.apiUrl}/Cliente/RecuperarAliasEmpresa`,{}, requestOptions);\r\n }\r\n\r\n recuperarConexionesExistentesAnfitrionInvitado(identificadorTributario: string, idPais: number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/RecuperarConexionesExistentesAnfitrionInvitado`, {params: {cuit: identificadorTributario, idPaisInvitado: idPais}});\r\n }\r\n\r\n validarCuitPais(pais: string, identificadorTributario: string): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/ValidarCuitPais`, {params: {pais : pais, cuit: identificadorTributario}});\r\n }\r\n \r\n verificarExistenciaCuit(identificadoresTributarios: string[]): Observable{\r\n return this.http.post(`${environment.apiUrl}/Cliente/VerificarExistenciaCuit`, identificadoresTributarios);\r\n }\r\n \r\n recuperarDatosExtraClientePorCuit(identificadorTributario: string, idPais: number): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/RecuperarDatosExtraClientePorCuit`, {params: {cuit: identificadorTributario, idPais: idPais}});\r\n }\r\n \r\n esIdentificadorTributarioDeArgentina(aliasEmpresa:string, identificadorTributario: string): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/EsIdentificadorTributarioDeArgentina`, {params: {identificadorTributario: identificadorTributario, aliasEmpresa: aliasEmpresa}});\r\n }\r\n \r\n recuperarConfiguracionDocumentosMapas(configuracion: any): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/RecuperarConfiguracionDocumentosMapas`, configuracion);\r\n }\r\n\r\n recuperarConfiguracionDocumentosPorCliente(cliente: ClienteConexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/RecuperarConfiguracionDocumentosPorCliente`, cliente);\r\n }\r\n \r\n recuperarConfiguracionTiposDocumentosPorCliente(configuracion: any): Observable{\r\n return this.http.post(`${environment.apiUrl}/ConfiguracionServicios/RecuperarConfiguracionTiposDocumentosPorCliente`, configuracion);\r\n }\r\n\r\n getRecuperarConfiguracionTiposDeProveedoresPorCuitCliente(identificadorTributario: string): Observable{\r\n return this.http.get(`${environment.apiUrl}/Conexiones/GetRecuperarConfiguracionTiposDeProveedoresPorCuitCliente`, {params: {cuit: identificadorTributario}});\r\n }\r\n\r\n subirZip(zip: Blob, fileName: string): Observable{\r\n const requestOptions: Object = { responseType: 'text'};\r\n const formData = new FormData();\r\n formData.append(\"file\", zip, fileName);\r\n\r\n return this.http.post(`${environment.apiUrl}/CargaDocumento/SubirZip`, formData, requestOptions);\r\n }\r\n crearMetadata(archivo: CargaArchivo): Observable{\r\n return this.http.post(`${environment.apiUrl}/CargaDocumento/CrearMetadata`, archivo);\r\n }\r\n\r\n getRecuperarRelacionesIntercambioIncompatibles(relacion : Conexion): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/RecuperarRelacionIntercambioIncompatible`, relacion);\r\n }\r\n getRecuperarRelacionesExistentes(relaciones : RelacionIntercambio[]): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/RecuperarRelacionesExistentes`, relaciones);\r\n }\r\n\r\n getInterlocutoresConIdentificadorTributario(idCliente: number, idPaisCliente: number): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/GetInterlocutoresConIdentificadorTributario`, {id:idCliente, idPais: idPaisCliente});\r\n }\r\n\r\n existeEventoCambioEstadoConexion(conexiones : number[]): Observable{\r\n return this.http.post(`${environment.apiUrl}/Conexiones/ExisteEventoCambioEstadoConexion`, conexiones);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Observable } from 'rxjs';\r\nimport { Cliente } from '../modelos/Cliente';\r\nimport { ConfiguracionSeguridadView } from '../modelos/ConfiguracionSeguridadView';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfiguracionSeguridadService {\r\n constructor(public http: HttpClient) { \r\n }\r\n\r\n getComplejidadesHash(): Observable {\r\n return this.http.get(`${environment.apiUrl}/ComplejidadesHash`)\r\n }\r\n\r\n getConfiguracionSeguridad(empresaActual: any): Observable {\r\n return this.http.get(`${environment.apiUrl}/Paises/${empresaActual.IdPais}/Clientes/${empresaActual.Id}/ConfiguracionSeguridad`)\r\n }\r\n\r\n putConfiguracionSeguridad(empresaActual: any, config: ConfiguracionSeguridadView) {\r\n return this.http.put(`${environment.apiUrl}/Paises/${empresaActual.IdPais}/Clientes/${empresaActual.Id}/ConfiguracionSeguridad`, config)\r\n }\r\n \r\n}\r\n","// es la misma clase que usamos en consulta de documentos?\r\nexport class BusquedaDocumentos {\r\n tiposComprobantes: number[];\r\n cuitEmisor: string;\r\n numerosDocumentos: string[];\r\n tipoFecha: string;\r\n fechaDesde: Date;\r\n fechaHasta: Date;\r\n rangoFecha: number;\r\n criterioFiltroFecha: string;\r\n estadosCtaCte: number[];\r\n circuito: string;\r\n tengoCmp: boolean;\r\n esProveedorHabitual: boolean | null;\r\n existeEnERP: boolean | null;\r\n existeEnK360: boolean | null;\r\n pantalla: string = \"FCRED\";\r\n pageNumber: number;\r\n productivo: boolean | null;\r\n\r\n constructor() {\r\n this.tiposComprobantes = [];\r\n this.cuitEmisor = \"\";\r\n this.numerosDocumentos = [];\r\n this.tipoFecha = \"\";\r\n this.fechaDesde = new Date();\r\n this.fechaHasta = new Date();\r\n this.rangoFecha = -1;\r\n this.criterioFiltroFecha = \"DEFINIR_UN_RANGO\";\r\n this.estadosCtaCte = [];\r\n this.circuito = \"\";\r\n this.tengoCmp = false;\r\n this.esProveedorHabitual = null;\r\n this.existeEnERP = null;\r\n this.existeEnK360 = null;\r\n this.pantalla = \"FCRED\";\r\n this.pageNumber = 1;\r\n this.productivo = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { StorageService } from 'src/app/core/services/Storage.Service';\r\nimport { Cliente } from 'src/app/core/models/Cliente';\r\nimport { BusquedaDocumentos } from '../models/Busqueda/BusquedaDocumentos';\r\nimport { DatosBusqueda } from '../models/Busqueda/DatosBusqueda';\r\nimport { DocumentoFCredGrillaView } from '../models/DocumentoFCredGrillaView';\r\n\r\nexport class ParamsAccesosDirectos {\r\n tiposDocumento: number[];\r\n unicoDocRK: string;\r\n cliente: Cliente;\r\n}\r\n\r\nconst TABLE_COLUMNS = ['comprobante', 'aceptacion', 'emisor', 'numero', 'circuito', 'fechaVtoAcept', 'fechaVtoPago', 'importe', 'saldo', 'estado'];\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableFCredDataService {\r\n\r\n private paramsAccesosDirectosSubject: BehaviorSubject = new BehaviorSubject({} as ParamsAccesosDirectos);\r\n public readonly paramsAccesosDirectos: Observable = this.paramsAccesosDirectosSubject.asObservable();\r\n\r\n private tableDataSourceSubject: BehaviorSubject> = new BehaviorSubject({} as MatTableDataSource);\r\n public readonly tableDataSource: Observable> = this.tableDataSourceSubject.asObservable();\r\n\r\n private searchFiltersSubject: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly searchFilters: Observable = this.searchFiltersSubject.asObservable();\r\n\r\n private BusquedaDocumentosSubject: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly BusquedaDocumentos: Observable = this.BusquedaDocumentosSubject.asObservable();\r\n\r\n private FilterSubject: BehaviorSubject = new BehaviorSubject('');\r\n public readonly Filter: Observable = this.FilterSubject.asObservable();\r\n\r\n private LoadingDocumentosSubject: BehaviorSubject = new BehaviorSubject(true);\r\n public readonly LoadingDocumentos: Observable = this.LoadingDocumentosSubject.asObservable();\r\n\r\n displayedColumnsDefault: string[] = TABLE_COLUMNS;\r\n displayedColumnsOrdenCompra: string[] = TABLE_COLUMNS;\r\n displayedColumnsFactura: string[] = TABLE_COLUMNS;\r\n displayedColumnsFacturaSoporte: string[] = TABLE_COLUMNS;\r\n\r\n private DisplayColumsSubject: BehaviorSubject = new BehaviorSubject(this.displayedColumnsDefault);\r\n public readonly displayColums: Observable = this.DisplayColumsSubject.asObservable();\r\n\r\n public showHolding: boolean = false;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private storageService: StorageService,\r\n private authService: AuthService\r\n ) { }\r\n\r\n\r\n setSessionFilters(filtros: BusquedaDocumentos): void {\r\n sessionStorage.setItem(\"tagFiltrosFCREDV2\", JSON.stringify(filtros));\r\n }\r\n\r\n setSearchFilters(filtros: BusquedaDocumentos): void {\r\n this.resetGrillaHeaders();\r\n this.LoadingDocumentosSubject.next(true);\r\n sessionStorage.setItem(\"tagFiltrosFCREDV2\", JSON.stringify(filtros));\r\n this.searchFiltersSubject.next(filtros);\r\n }\r\n\r\n setTableDataSource(data: MatTableDataSource): void {\r\n this.tableDataSourceSubject.next(data);\r\n }\r\n\r\n\r\n setBusquedaDocumentos(filtros: DatosBusqueda): void {\r\n this.BusquedaDocumentosSubject.next(filtros);\r\n }\r\n\r\n setDisplayColums(lista: string[]): void {\r\n this.DisplayColumsSubject.next(lista);\r\n }\r\n\r\n setInputFilter(filter: string) {\r\n this.FilterSubject.next(filter);\r\n }\r\n\r\n setLoadingDocumentos(loading: boolean) {\r\n this.LoadingDocumentosSubject.next(loading);\r\n }\r\n\r\n private resetGrillaHeaders() {\r\n this.displayedColumnsDefault = TABLE_COLUMNS;\r\n this.displayedColumnsOrdenCompra = TABLE_COLUMNS;\r\n this.displayedColumnsFactura = TABLE_COLUMNS;\r\n this.displayedColumnsFacturaSoporte = TABLE_COLUMNS;\r\n }\r\n\r\n setParamsAccesosDirectos(params: ParamsAccesosDirectos): void {\r\n this.paramsAccesosDirectosSubject.next(params);\r\n }\r\n ngOnDestroy(): void {\r\n this.searchFiltersSubject.next(null);\r\n }\r\n}","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DesuscripcionMail } from './model/DesuscripcionMail';\r\nimport { DesuscripcionDeNotificacionesService } from './services/desuscripcion-de-notificaciones.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { MotivoDesuscripcion } from './model/MotivoDesuscripcion.model';\r\nimport { DesuscripcionTotalParams } from './model/DesuscripcionTotalParams';\r\nimport { DesuscripcionUsuarioParams } from './model/DesuscripcionUsuarioParams';\r\n\r\n@Component({\r\n selector: 'app-desuscripcion-de-notificaciones',\r\n templateUrl: './desuscripcion-de-notificaciones.component.html',\r\n styleUrls: ['./desuscripcion-de-notificaciones.component.scss']\r\n})\r\nexport class DesuscripcionDeNotificacionesComponent implements OnInit {\r\n @HostListener('window:beforeunload', ['$event'])\r\n unloadNotification() {\r\n if (!this.enviado) {\r\n const desuscripcionUsuarioParams: DesuscripcionUsuarioParams = {\r\n email: this.desuscripcionMail.userEmail,\r\n idMotivo: this.desuscripcionForm.value.motivo,\r\n tipoNotificacion: this.desuscripcionMail.tipoNotificacion\r\n }\r\n this.PostDesuscripcionUsuario(desuscripcionUsuarioParams);\r\n }\r\n\r\n }\r\n\r\n loading: boolean = false;\r\n motivos: MotivoDesuscripcion[] = [];\r\n notificacion: string = '';\r\n desuscripcionMail: DesuscripcionMail;\r\n enviado: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private desuscripcionDeNotificacionesService: DesuscripcionDeNotificacionesService,\r\n private translate: TranslateService,\r\n private genericToasterService: GenericToasterService\r\n ) { }\r\n\r\n desuscripcionForm: FormGroup = this.formBuilder.group({\r\n motivo: [0],\r\n desuscribirTodas: [false]\r\n });\r\n\r\n async ngOnInit() {\r\n this.loading = true;\r\n await this.getUserData(this.getUrlParameter());\r\n await this.DeleteConfiguracionesNotificacionUsuario(this.desuscripcionMail);\r\n await this.getMotivosDesuscripcion();\r\n }\r\n\r\n getUrlParameter(): string {\r\n const result = this.route.snapshot.paramMap.get('userData') || '';\r\n return result;\r\n }\r\n\r\n\r\n async getUserData(userEncriptedData: string) {\r\n try {\r\n const userInfo = await this.desuscripcionDeNotificacionesService.GetUserData(userEncriptedData);\r\n if (userInfo === undefined) {\r\n return;\r\n }\r\n this.desuscripcionMail = userInfo;\r\n this.notificacion = this.desuscripcionMail.tipoNotificacion;\r\n }\r\n catch (error) {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n }\r\n }\r\n\r\n async DeleteConfiguracionesNotificacionUsuario(desuscripcionMail: DesuscripcionMail) {\r\n try {\r\n await this.desuscripcionDeNotificacionesService.DeleteConfiguracionesNotificacionUsuario(desuscripcionMail);\r\n this.loading = false;\r\n }\r\n catch (error) {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n }\r\n }\r\n\r\n async PostDesuscripcionUsuario(params: DesuscripcionUsuarioParams) {\r\n try {\r\n await this.desuscripcionDeNotificacionesService.PostDesuscripcionUsuario(params);\r\n }\r\n catch (error) {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n }\r\n }\r\n\r\n async PostDesuscripcionTotal(params: DesuscripcionTotalParams) {\r\n try {\r\n await this.desuscripcionDeNotificacionesService.PostDesuscripcionTotal(params);\r\n }\r\n catch (error) {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n }\r\n }\r\n\r\n async getMotivosDesuscripcion() {\r\n try {\r\n this.motivos = await this.desuscripcionDeNotificacionesService.GetMotivosDesuscripcion() ?? [];\r\n this.desuscripcionForm.controls['motivo'].setValue(this.motivos.find(x => x.resourceKey == \"Default\")?.id);\r\n this.motivos = this.motivos.filter(x => x.resourceKey != \"Default\");\r\n }\r\n catch (error) {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n }\r\n }\r\n\r\n send() {\r\n this.loading = true;\r\n if (this.desuscripcionForm.value.desuscribirTodas) {\r\n const desuscripcionTotalParams: DesuscripcionTotalParams = {\r\n email: this.desuscripcionMail.userEmail,\r\n idMotivo: this.desuscripcionForm.value.motivo\r\n }\r\n this.PostDesuscripcionTotal(desuscripcionTotalParams);\r\n }\r\n\r\n const desuscripcionUsuarioParams: DesuscripcionUsuarioParams = {\r\n email: this.desuscripcionMail.userEmail,\r\n idMotivo: this.desuscripcionForm.value.motivo,\r\n tipoNotificacion: this.desuscripcionMail.tipoNotificacion\r\n }\r\n\r\n this.PostDesuscripcionUsuario(desuscripcionUsuarioParams);\r\n this.loading = false;\r\n this.enviado = true;\r\n }\r\n\r\n}\r\n","
\r\n \r\n \"Planexware\"\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DesuscripcionMail } from '../model/DesuscripcionMail';\r\nimport { MotivoDesuscripcion } from '../model/MotivoDesuscripcion.model';\r\nimport { Observable } from 'rxjs';\r\nimport { DesuscripcionTotalParams } from '../model/DesuscripcionTotalParams';\r\nimport { DesuscripcionUsuarioParams } from '../model/DesuscripcionUsuarioParams';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DesuscripcionDeNotificacionesService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private genericToasterService: GenericToasterService\r\n ) { }\r\n\r\n DeleteConfiguracionesNotificacionUsuario(data: DesuscripcionMail): Promise {\r\n return new Promise((resolve) => {\r\n this.httpClient\r\n .post(\r\n `${environment.apiUrl}/DesuscripcionMails/DeleteConfiguracionesNotificacionUsuario`,\r\n data\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n resolve(data);\r\n },\r\n error: (err) => {\r\n this.genericToasterService.pushError('ERROR_APLICACION');\r\n },\r\n });\r\n });\r\n }\r\n\r\n\r\n GetUserData(encriptedData: string): Promise {\r\n return new Promise(\r\n (resolve) => {\r\n this.httpClient\r\n .get(\r\n `${environment.apiUrl}/DesuscripcionMails/GetUserInfo/Encode/${encriptedData}`,\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n resolve(data);\r\n },\r\n error: (err) => {\r\n this.genericToasterService.pushError('ERROR_APLICACION');\r\n },\r\n });\r\n }\r\n )\r\n }\r\n\r\n GetMotivosDesuscripcion(): Promise {\r\n return new Promise(\r\n (resolve) => {\r\n this.httpClient\r\n .get(\r\n `${environment.apiUrl}/DesuscripcionMails/GetMotivosDesuscripcion`\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n resolve(data);\r\n },\r\n error: (err) => {\r\n this.genericToasterService.pushError('ERROR_APLICACION');\r\n },\r\n });\r\n }\r\n )\r\n }\r\n\r\n PostDesuscripcionUsuario(data: DesuscripcionUsuarioParams): Promise {\r\n return new Promise((resolve) => {\r\n this.httpClient\r\n .post(\r\n `${environment.apiUrl}/DesuscripcionMails/PostDesuscripcionUsuario`,\r\n data\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n resolve(data);\r\n },\r\n error: (err) => {\r\n this.genericToasterService.pushError('ERROR_APLICACION');\r\n },\r\n });\r\n });\r\n }\r\n\r\n PostDesuscripcionTotal(data: DesuscripcionTotalParams): Promise {\r\n return new Promise((resolve) => {\r\n this.httpClient\r\n .post(\r\n `${environment.apiUrl}/DesuscripcionMails/PostDesuscripcionTotal`,\r\n data\r\n )\r\n .subscribe({\r\n next: (data: any) => {\r\n resolve(data);\r\n },\r\n error: (err) => {\r\n this.genericToasterService.pushError('ERROR_APLICACION');\r\n },\r\n });\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit , ElementRef, OnDestroy} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { ExportService } from 'src/app/core/services/export.service';\r\n\r\nexport interface Data {\r\n url: string;\r\n}\r\n@Component({\r\n selector: 'app-dialog-view-documents',\r\n templateUrl: './dialog-view-documents.component.html',\r\n styleUrls: ['./dialog-view-documents.component.scss']\r\n})\r\n\r\nexport class DialogViewDocumentsComponent implements OnDestroy {\r\n loading = true;\r\n url: any = null;\r\n private urlSubscription: Subscription | undefined;\r\n constructor( @Inject(MAT_DIALOG_DATA) public data: Data,\r\n private dialogRef: MatDialogRef, private _domElement: ElementRef, private exportService: ExportService) { }\r\n\r\n\r\n closeDialog(){\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.urlSubscription?.unsubscribe();\r\n }\r\n\r\n public setDoc(value:any){\r\n if(value){\r\n this.loading = false;\r\n this.url = value;\r\n } \r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Cliente } from 'src/app/pages/clientes-mixtos/modelos/Cliente';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BusquedaDocumentos } from '../../../models/BusquedaDocumentos';\r\nimport { ClienteDocumentos } from '../../../models/ClienteDocumentos';\r\nimport { TipoDocumentoClientes } from '../../../models/TipoDocumentoClientes';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogFiltersService {\r\n \r\n getEstados(): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetEstados`)\r\n }\r\n\r\n getDocumentos(): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetTiposDocumento`)\r\n }\r\n\r\n getTiposDocumentosPorClientes(clientes:Cliente[]): Observable {\r\n return this.http.post(`${environment.apiUrl}/maestros/GetTiposDocumento`,clientes);\r\n }\r\n\r\n getInterlocutores() : Observable{\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetInterlocutores`)\r\n }\r\n\r\n getEstructuras(interlocutor : ClienteDocumentos) : Observable{\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetEstructuras/Id/${interlocutor.id}/IdPais/${interlocutor.idPais}`)\r\n }\r\n\r\n getEstadosSeguimiento(): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetEstadosSeguimiento`)\r\n }\r\n\r\n getFechas(): string[] {\r\n let fechas: string[] = [\"HOY\", \"AYER\", \"ULTIMOS_3_DIAS\", \"ULTIMOS_7_DIAS\", \"ULTIMOS_30_DIAS\", \"ULTIMOS_90_DIAS\", \"DEFINIR_UN_RANGO\"];\r\n return fechas;\r\n }\r\n \r\n putFilters(filters: BusquedaDocumentos){\r\n return this.http.put(`${environment.apiUrl}/DocumentosCliente/SaveFiltroBusquedaDocumentos`, filters)\r\n }\r\n\r\n postGetDocumentosTest(clientes: Cliente[]):Observable{\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/GetDocumentosTest`, clientes)\r\n }\r\n\r\n constructor(public http: HttpClient) { }\r\n}","import * as moment from \"moment\";\r\nimport { ClaveCompuestaHash } from \"../dialog-chat-documentos/models/ClaveCompuestaHash\";\r\nimport { ClienteRelacionDocumentosCliente } from \"./ClienteRelacionDocumentosCliente\";\r\nimport { ComponenteFiltro } from \"./ComponenteFiltro\";\r\nimport { EstadoSeguimientoDocumentosCliente } from \"./EstadoSeguimientoDocumentosCliente\";\r\nimport { TipoDocFiltro } from \"./TipoDocFiltro\";\r\n\r\nexport class BusquedaDocumentos {\r\n id: number;\r\n sobre: ClaveCompuestaHash | null;\r\n tiposDocumentos: TipoDocFiltro[];\r\n estadosDocumentos: number[];\r\n numerosDocumentos: string[];\r\n descargaAutomatica: EstadoSeguimientoDocumentosCliente[];\r\n empresasDelUsuario: ClienteRelacionDocumentosCliente[];\r\n interlocutores: ClienteRelacionDocumentosCliente[];\r\n componentes: ComponenteFiltro[];\r\n productivo: boolean | null;\r\n pageNumber: number;\r\n count: boolean;\r\n grupoDeDocumentos: string;\r\n importeDesde: number | null;\r\n importeHasta: number | null;\r\n origen: string | null;\r\n esWorkflow: boolean;\r\n\r\n //FECHAS\r\n rangoFecha: number;\r\n criterioFiltroFecha: string;\r\n fechaDesde: Date | null | moment.Moment;\r\n fechaHasta: Date | null | moment.Moment;\r\n fechaVencimientoDesde: Date | null | moment.Moment;\r\n fechaVencimientoHasta: Date | null | moment.Moment;\r\n fechaEmisionDesde: Date | null | moment.Moment;\r\n fechaEmisionHasta: Date | null | moment.Moment;\r\n fechaEntregaDesde: Date | null | moment.Moment;\r\n fechaEntregaHasta: Date | null | moment.Moment;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.sobre = null;\r\n this.tiposDocumentos = [];\r\n this.estadosDocumentos = [];\r\n this.numerosDocumentos = [];\r\n this.descargaAutomatica = [];\r\n this.empresasDelUsuario = [];\r\n this.interlocutores = [];\r\n this.componentes = [];\r\n this.productivo = null;\r\n this.pageNumber = 0;\r\n this.count = false;\r\n this.grupoDeDocumentos = 'Generico';\r\n this.importeDesde = null;\r\n this.importeHasta = null;\r\n this.origen = null;\r\n this.esWorkflow = false;\r\n this.rangoFecha = 0;\r\n this.criterioFiltroFecha = 'SIN_FILTRO_POR_FECHA';\r\n this.fechaDesde = null;\r\n this.fechaHasta = null;\r\n this.fechaVencimientoDesde = null;\r\n this.fechaVencimientoHasta = null;\r\n this.fechaEmisionDesde = null;\r\n this.fechaEmisionHasta = null;\r\n this.fechaEntregaDesde = null;\r\n this.fechaEntregaHasta = null;\r\n }\r\n}","export class ClienteRelacionDocumentosCliente {\r\n id: number;\r\n idPais: number;\r\n idInterno?: number;\r\n\r\n razonSocial?: string;\r\n owner?: boolean;\r\n esHolding?: boolean;\r\n acceso?: boolean;\r\n\r\n aliasEmpresa?: string;\r\n identificador?: string;\r\n domicilio?: string;\r\n codigoTipoIdentificacion?: string;\r\n estadoAutenticacion?: string;\r\n\r\n cantidadEstructuras?: number;\r\n}","import { Cliente } from \"src/app/pages/clientes-mixtos/modelos/Cliente\";\r\nimport { DocData } from \"../table-doc/table-doc.component\";\r\n\r\nexport class DocumentosMasClientes {\r\n documentos: DocData[];\r\n clientesHolding: Cliente[];\r\n formato: String;\r\n}\r\n","import { BusquedaDocumentos } from \"./BusquedaDocumentos\";\r\nimport { DocumentosMasClientes } from \"./DocumentosMasClientes\";\r\n\r\n\r\nexport class SolicitudDescarga {\r\n documentosSeleccionados: DocumentosMasClientes;\r\n filtrosDeBusqueda: BusquedaDocumentos;\r\n cantidadSolicitada: number;\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ClaveCompuestaView } from 'src/app/core/models/ClaveCompuestaView';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BusquedaDocumentos } from '../models/BusquedaDocumentos';\r\nimport { ClienteDocumentos } from '../models/ClienteDocumentos';\r\nimport { DocumentosExportarMasClientes } from '../models/DocumentosExportarMasClientes';\r\nimport { DocumentosMasClientes } from '../models/DocumentosMasClientes';\r\nimport { DocData } from '../table-doc/table-doc.component';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentosClienteService {\r\n\r\n constructor(public http: HttpClient,\r\n private genericToasterService: GenericToasterService) {\r\n\r\n }\r\n\r\n getDocumentos(esPrueba: boolean, searchFilters: BusquedaDocumentos): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/RecuperarMultiDocumentos/EsPrueba/${esPrueba}`, searchFilters);\r\n }\r\n\r\n getDocumentosCount(searchFilters: BusquedaDocumentos): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/RecuperarMultiDocumentosCount`, searchFilters);\r\n }\r\n\r\n getDocumentosAsocidos(idSobre: string, idPaisSobre: string, esPrueba: boolean): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarDocumentosAsociados`,{ params: {idSobre: idSobre,IdPaisSobre:idPaisSobre,EsPrueba: esPrueba}});\r\n }\r\n\r\n getDocumentosReferencia(idSobre: string, idPaisSobre: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarDocumentosReferencia`,{ params: {idSobre: idSobre, IdPaisSobre: idPaisSobre}});\r\n }\r\n\r\n getDetalleDocumento(id: string, idPais: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarDetalleDocumento`,{ params: {id: id,idPais:idPais}});\r\n }\r\n getDetalleDocumentoVersionRegistro(id: string, idPais: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarDetalleDocumentoVersionRegistro`,{ params: {id: id,idPais:idPais}});\r\n }\r\n\r\n getHistorialDocumento(id: string, idPais: string, sentido: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarHistorialDocumento`,{ params: {id: id,idPais:idPais,sentido: sentido}});\r\n }\r\n\r\n getTiposExportacionHabilitados(): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/DocumentosFormatosExportacionHabilitados`);\r\n }\r\n\r\n getEstructuras(id: number, idPais: number): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetEstructuras/Id/${id}/IdPais/${idPais}`);\r\n }\r\n\r\n GetDefaultBusquedaDocumentos(): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetDefaultBusquedaDocumentos`);\r\n }\r\n\r\n // GetEmptyBusquedaDocumentos(): Observable {\r\n // return this.http.get(`${environment.apiUrl}/DocumentosCliente/GetEmptyBusquedaDocumentos`);\r\n // }\r\n\r\n PutBusquedaDocumentos(busquedaDocumentos: BusquedaDocumentos): Observable {\r\n return this.http.put(`${environment.apiUrl}/DocumentosCliente/SaveFiltroBusquedaDocumentos`, busquedaDocumentos);\r\n }\r\n\r\n getVerificarPoseeDocumentosVinculados(id: string, idPais: string, sentido: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/VerificarPoseeDocumentosVinculados`,{ params: {idDocumentoSobreHash: id,idPaisHash: idPais,origen: sentido}});\r\n }\r\n\r\n getVerificarDisponibleVisualizadorHash(id: string, idPais: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/VerificarDisponibleVisualizadorHash`,{ params: {idHash: id,idPaisHash:idPais}});\r\n }\r\n\r\n getVerificarDisponibleVisualizador(id: string, idPais: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/VerificarDisponibleVisualizador`,{ params: {id: id,idPais:idPais}});\r\n }\r\n\r\n postExportarDocumentos(docs: any[], clientesHolding:any[], formato:string): Observable {\r\n let documentosMasClientes = {\r\n Documentos : docs,\r\n ClientesHolding: clientesHolding,\r\n Formato : formato\r\n }\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ExportarDocumentos`,documentosMasClientes);\r\n }\r\n\r\n postExportarDocumentosHistorial(docs: any[], clientesHolding:any[], formato:string): Observable {\r\n let documentosMasClientes = {\r\n Documentos : docs,\r\n ClientesHolding: clientesHolding,\r\n Formato : formato\r\n }\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ExportarSobre`,documentosMasClientes);\r\n }\r\n\r\n getExportarDocumentosAdjunto(doc: any): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecoverContenidoBinarioDArchivoAdjunto`, { params: {id: doc.id, idPais: doc.idPais}});\r\n }\r\n\r\n getRecuperarExportacionDocumentos(idDescarga: string, documentoSponsoreado: boolean = false): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarExportacionDocumentos`,{ params: {id: idDescarga, documentoSponsoreado: documentoSponsoreado}});\r\n }\r\n\r\n getVisualizarDocumento(guid: string, filename: string, tipoContenido: string, m: boolean, attach: boolean): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/VisualizarDocumento`,{ params: {guid: guid,filename:filename,tipoContenido:tipoContenido,m:m,attach:attach}});\r\n }\r\n\r\n getDescargaDocumento(guid: string, filename: string, tipoContenido: string, m: boolean, attach: boolean): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/VisualizarDocumento`,{ params: {guid: guid,filename:filename,tipoContenido:tipoContenido,m:m,attach:attach},responseType: 'arraybuffer'});\r\n }\r\n\r\n postExportarGrilla(documentos:DocData[]): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ExportarGrilla`,documentos);\r\n }\r\n\r\n postExportarGrillaTodosLosResultados(claveCompuesta:ClaveCompuestaView): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ExportarGrillaTodosLosResultados`,claveCompuesta);\r\n }\r\n\r\n getValidarAccesoDocumentoAsociado(id: string, idPais: string): Observable {\r\n\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/ValidarAccesoDocumentosAsociados`, { params: {id: id, idPais: idPais}});\r\n\r\n }\r\n\r\n postReprocesarDocumento(documentos:ClaveCompuestaView[]): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/ReprocesarDocumentos`,documentos);\r\n }\r\n\r\n postRedisponibilizarDocumentos(documentos:ClaveCompuestaView[]): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/RedisponibilizarDocumentos`,documentos);\r\n }\r\n\r\n postCancelarDocumentos(documentos:ClaveCompuestaView[]): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/CancelarDocumentos`,documentos);\r\n }\r\n getMotivosDeRechazo(id: number, idPais: number, idDocumento: number): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarMotivosDeRechazo/Paises/${idPais}/Clientes/${id}/TiposDocumento/${idDocumento}`);\r\n }\r\n\r\n postDocumentosTipoExportacionDocumentos(documentosExportarMasClientes:DocumentosExportarMasClientes): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/DocumentosTipoExportacionDocumentos`, documentosExportarMasClientes);\r\n }\r\n\r\n postRecuperarUrlEdicionRemitoCarnico(claveCompuesta:ClaveCompuestaView): Observable{\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/RecuperarURLEdicionRemitoCarnico`,claveCompuesta, {responseType: 'text' });\r\n }\r\n getRecuperarResultadoAltaMasivaClientes(id: string, idPais: string, tipoDocumento: string, numero: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/DocumentosCliente/RecuperarResultadoAltaMasivaClientes`,{ params: {id: id, p:idPais, tipoDocumento:tipoDocumento, numero:numero}, responseType: 'arraybuffer'});\r\n }\r\n getEtiqueta(docs: DocData): Observable {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/VisualizarEtiqueta`,docs, {responseType: 'text' });\r\n }\r\n postHistorialVisualizacionSponspor(documentos:ClaveCompuestaView[]) {\r\n return this.http.post(`${environment.apiUrl}/DocumentosCliente/PostHistorialVisualizacionSponsor`,documentos);\r\n }\r\n //Generar nuevo get de obtencion de apertura de chat segun condicion.\r\n \r\n getTieneDescargasEnProceso(): Promise{\r\n return new Promise((resolve)=>{\r\n this.http.get(`${environment.apiUrl}/Descargas/TieneDescargasEnProceso`).subscribe({\r\n next: (data: boolean) => { resolve(data); },\r\n error: (err) => { this.genericToasterService.pushError(\"ERROR_APLICACION\"); }\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { StorageService } from 'src/app/core/services/Storage.Service';\r\nimport { isNullOrEmptyOrUndefined } from 'src/app/shared/utils/utils.component';\r\nimport { Cliente } from 'src/app/core/models/Cliente';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BusquedaDocumentos } from '../models/BusquedaDocumentos';\r\nimport { ClienteRelacionDocumentosCliente } from '../models/ClienteRelacionDocumentosCliente';\r\nimport { DatosBusqueda } from '../models/DatosBusqueda';\r\nimport { DocData } from '../table-doc/table-doc.component';\r\n\r\nexport class ParamsAccesosDirectos {\r\n tiposDocumento: number[];\r\n unicoDocRK: string;\r\n cliente: Cliente;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableDataService {\r\n \r\n formDialogFilter: FormGroup = this.fb.group({\r\n empresaCtrl: [''],\r\n tiposDocumentoCtrl: [''],\r\n estadosCtrl: [''],\r\n rangosFechasGroup: this.fb.group({\r\n rangosFechasCtrl: [''],\r\n fechaInicioCtrl: [''],\r\n fechaFinCtrl: ['']\r\n }),\r\n numeroDocumentoCtrl: [''],\r\n interlocutoresCtrl: [''],\r\n estructuraCtrl: [''],\r\n estadoSeguimientoCtrl: [''],\r\n fechasEmisionGroup: this.fb.group({\r\n fechaInicioCtrl: [''],\r\n fechaFinCtrl: ['']\r\n }),\r\n fechasVencimientoGroup: this.fb.group({\r\n fechaInicioCtrl: [''],\r\n fechaFinCtrl: ['']\r\n }),\r\n fechasEntregaGroup: this.fb.group({\r\n fechaInicioCtrl: [''],\r\n fechaFinCtrl: ['']\r\n }),\r\n importeGroup: this.fb.group({\r\n importeInicioCtrl: [''],\r\n importeFinCtrl: ['']\r\n }),\r\n });\r\n\r\n private paramsAccesosDirectosSubject: BehaviorSubject = new BehaviorSubject({} as ParamsAccesosDirectos);\r\n public readonly paramsAccesosDirectos: Observable = this.paramsAccesosDirectosSubject.asObservable(); \r\n\r\n private tableDataSourceSubject: BehaviorSubject> = new BehaviorSubject({} as MatTableDataSource);\r\n public readonly tableDataSource: Observable> = this.tableDataSourceSubject.asObservable();\r\n\r\n private searchFiltersSubject: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly searchFilters: Observable = this.searchFiltersSubject.asObservable();\r\n\r\n private formFiltersSubject: BehaviorSubject = new BehaviorSubject(this.formDialogFilter as FormGroup);\r\n public readonly formFilters: Observable = this.formFiltersSubject.asObservable();\r\n\r\n private BusquedaDocumentosSubject: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly BusquedaDocumentos: Observable = this.BusquedaDocumentosSubject.asObservable();\r\n\r\n private FilterSubject: BehaviorSubject = new BehaviorSubject('');\r\n public readonly Filter: Observable = this.FilterSubject.asObservable();\r\n\r\n private LoadingDocumentosSubject: BehaviorSubject = new BehaviorSubject(true);\r\n public readonly LoadingDocumentos: Observable = this.LoadingDocumentosSubject.asObservable();\r\n\r\n displayedColumnsDefault: string[] = ['select','interlocutor', 'tipoDoc','nDoc','fechaIngreso', 'estado','seguimiento', 'actions'];\r\n displayedColumnsOrdenCompra: string[] = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEntrega', 'glnSucursal', 'estado','seguimiento', 'actions'];\r\n displayedColumnsFactura: string[] = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'importe', 'estado','seguimiento', 'actions'];\r\n displayedColumnsFacturaSoporte: string[] = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'estado','seguimiento', 'actions'];\r\n \r\n private DisplayColumsSubject: BehaviorSubject = new BehaviorSubject(this.displayedColumnsDefault);\r\n public readonly displayColums: Observable = this.DisplayColumsSubject.asObservable();\r\n\r\n listFact : string[] = [\"Factura\", \"NotaCredito\", \"DEBITO\", \"FCRE\", \"NDMiPyME\", \"NCMiPyME\"];\r\n listOC : string[] = [\"OrdenCompra\", \"ORDERA\"]\r\n\r\n public showHolding: boolean = false;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private storageService: StorageService,\r\n private authService: AuthService\r\n ) { }\r\n\r\n /**\r\n * Aca se setean los filtros que disparan toda la cadena de eventos para que actuen los demas componentes,\r\n * tabla de documentos, etc.\r\n * @param filtros los filtros que va a usar para filtrar los documentos.\r\n */\r\n setSearchFilters(filtros: BusquedaDocumentos): void {\r\n this.resetGrillaHeaders();\r\n if(this.showHolding){\r\n this.setEmpresaGrillaHeaders();\r\n }else{\r\n this.resetGrillaHeaders();\r\n }\r\n this.LoadingDocumentosSubject.next(true);\r\n if(filtros.tiposDocumentos.every(doc => this.listOC.includes(doc.resourceKey)) && filtros.tiposDocumentos.length>0){\r\n this.setDisplayColums(this.displayedColumnsOrdenCompra);\r\n filtros.grupoDeDocumentos = 'Retail';\r\n }\r\n else if(filtros.tiposDocumentos.every(doc => this.listFact.includes(doc.resourceKey)) && filtros.tiposDocumentos.length>0){\r\n if(this.authService.esPlanexwareYConectadoComo()){\r\n this.setDisplayColums(this.displayedColumnsFacturaSoporte);\r\n } else {\r\n this.setDisplayColums(this.displayedColumnsFactura);\r\n }\r\n \r\n filtros.grupoDeDocumentos = 'Def';\r\n }\r\n else{\r\n this.setDisplayColums(this.displayedColumnsDefault);\r\n filtros.grupoDeDocumentos = 'Generico';\r\n }\r\n filtros = this.chequeoFiltrosFecha(filtros);\r\n filtros = this.chequeoEmpresasDelUsuario(filtros);\r\n if(!this.authService.esPlanexwareYConectadoComo()){\r\n sessionStorage.setItem(\"tagFiltrosV2\", JSON.stringify(filtros));\r\n } \r\n this.searchFiltersSubject.next(filtros); \r\n }\r\n\r\n setTableDataSource(data: MatTableDataSource): void {\r\n this.tableDataSourceSubject.next(data);\r\n }\r\n\r\n setFormFilterDialog(form: FormGroup): void {\r\n this.formFiltersSubject.next(form);\r\n }\r\n\r\n setBusquedaDocumentos(filtros: DatosBusqueda): void {\r\n this.BusquedaDocumentosSubject.next(filtros);\r\n }\r\n \r\n setDisplayColums(lista : string[]): void {\r\n this.DisplayColumsSubject.next(lista);\r\n }\r\n\r\n setInputFilter(filter:string){\r\n this.FilterSubject.next(filter);\r\n }\r\n\r\n setLoadingDocumentos(loading:boolean){\r\n this.LoadingDocumentosSubject.next(loading);\r\n }\r\n\r\n private chequeoFiltrosFecha(filtros: BusquedaDocumentos) : BusquedaDocumentos {\r\n filtros.fechaDesde = (filtros.fechaDesde != null && filtros.fechaDesde > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaDesde : null;\r\n filtros.fechaHasta = (filtros.fechaHasta != null && filtros.fechaHasta > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaHasta : null;\r\n filtros.fechaEmisionDesde = (filtros.fechaEmisionDesde != null && filtros.fechaEmisionDesde > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaEmisionDesde : null;\r\n filtros.fechaEmisionHasta = (filtros.fechaEmisionHasta != null && filtros.fechaEmisionHasta > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaEmisionHasta : null;\r\n filtros.fechaEntregaDesde = (filtros.fechaEntregaDesde != null && filtros.fechaEntregaDesde > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaEntregaDesde : null;\r\n filtros.fechaEntregaHasta = (filtros.fechaEntregaHasta != null && filtros.fechaEntregaHasta > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaEntregaHasta : null;\r\n filtros.fechaVencimientoDesde = (filtros.fechaVencimientoDesde != null && filtros.fechaVencimientoDesde > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaVencimientoDesde : null;\r\n filtros.fechaVencimientoHasta = (filtros.fechaVencimientoHasta != null && filtros.fechaVencimientoHasta > moment(\"0001-01-01T00:00:00+00:00\")) ? filtros.fechaVencimientoHasta : null;\r\n return filtros;\r\n }\r\n\r\n private chequeoEmpresasDelUsuario(filtros: BusquedaDocumentos) : BusquedaDocumentos{\r\n if(filtros.empresasDelUsuario.length == 0){\r\n let clientesHolding: any = this.storageService.getClientesHolding();\r\n let ownerIndex: number = 0;\r\n let empresas = clientesHolding.clientes.map(\r\n (client: any, index: number) => {\r\n if (client.Owner) {\r\n ownerIndex = index;\r\n }\r\n let clienteRelacion: ClienteRelacionDocumentosCliente = new ClienteRelacionDocumentosCliente();\r\n clienteRelacion.id = client.Id;\r\n clienteRelacion.idPais = client.IdPais;\r\n return clienteRelacion;\r\n }\r\n );\r\n let clienteActual = empresas[ownerIndex];\r\n filtros.empresasDelUsuario = [clienteActual];\r\n } \r\n return filtros;\r\n }\r\n\r\n private resetGrillaHeaders(){\r\n this.displayedColumnsDefault = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsOrdenCompra = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEntrega', 'glnSucursal', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsFactura = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'importe', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsFacturaSoporte = ['select','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'estado','seguimiento', 'actions'];\r\n } \r\n\r\n private setEmpresaGrillaHeaders(){\r\n this.displayedColumnsDefault = ['select','empresa','interlocutor','tipoDoc','nDoc','fechaIngreso', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsOrdenCompra = ['select','empresa','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEntrega', 'glnSucursal', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsFactura = ['select','empresa','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'importe', 'estado','seguimiento', 'actions'];\r\n this.displayedColumnsFacturaSoporte = ['select','empresa','interlocutor','tipoDoc','nDoc','fechaIngreso', 'fechaEmision', 'fechaVencimiento', 'estado','seguimiento', 'actions'];\r\n }\r\n \r\n setParamsAccesosDirectos(params: ParamsAccesosDirectos): void{\r\n this.paramsAccesosDirectosSubject.next(params);\r\n }\r\n ngOnDestroy(): void {\r\n this.searchFiltersSubject.next(null);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\n\r\n@Component({\r\n selector: 'app-faq',\r\n templateUrl: './faq.component.html',\r\n styleUrls: ['./faq.component.scss']\r\n})\r\nexport class FAQComponent implements OnInit {\r\n\r\n constructor(\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService, \r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if(!this.authService.esPlanexware()){\r\n var auth = this.authService.getUserData();\r\n if (auth) {\r\n this.googleAnalyticsEventsService.emitEvent('Ayuda', auth.Cliente.RazonSocial, auth.Apellido + ' ' + auth.Nombre, 0);\r\n }\r\n }\r\n }\r\n\r\n // applyFilter(event: Event) {\r\n // const filterValue = (event.target as HTMLInputElement).value;\r\n // this. ACA VA LA LISTA Q HAY Q REFACTORIZAR .filter = filterValue.trim().toLowerCase();\r\n // }\r\n\r\n}\r\n","
\r\n

\r\n {{ \"PREGUNTAS_FRECUENTES\" | translate }}\r\n

\r\n
\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n {{ \"FAQ_DONDE_COMUNICO\" | translate }}\r\n \r\n \r\n

{{'FAQ_DONDE_COMUNICO_RTA.DESC' | translate }} (+5411) 7701 8282 {{'FAQ_DONDE_COMUNICO_RTA.TEL' | translate }} 0810 444 7599, {{'FAQ_DONDE_COMUNICO_RTA.EMAIL' | translate }} mesadeayuda@planexware.com.

\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{ \"FAQ_DONDE_INSTRUCTIVOS\" | translate }}\r\n \r\n \r\n

{{'FAQ_DONDE_INSTRUCTIVOS_RTA' | translate }} {{'AQUI' | translate }}.

\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_CAMBIO_CONTRASENA' | translate }}\r\n \r\n \r\n

{{'FAQ_CAMBIO_CONTRASENA_RTA' | translate }}

\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_GENERAR_USUARIOS_COMPANIEROS' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_BUSCAR_DOCUMENTO' | translate }}\r\n \r\n \r\n

{{'FAQ_BUSCAR_DOCUMENTO_RTA' | translate }}

\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_DOCUMENTOS_AUTOMATICOS' | translate }}\r\n \r\n \r\n

{{'FAQ_DOCUMENTOS_AUTOMATICOS_RTA' | translate }}

\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_SIGNIFICADO_COLUMNAS' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_FLECHA_REGISTRO' | translate}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_ACEPTAR_RECHAZAR_OC' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_DOC_ASOCIADOS' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_HISTORIAL_DOCUMENTO' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_BUSCAR_OC_SUC' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_EXPORTAR_K360' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_AVISO_EMAIL_NUEVO_DOC' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{'FAQ_DONDE_DIRECC_ENTREGA_SUPER' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { take } from 'rxjs/operators';\r\nimport { ClientInfo } from 'src/app/core/models/accessToken';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { JwtService } from 'src/app/core/services/jwt.service';\r\nimport { LogoService } from 'src/app/core/services/logo.service'; import { DialogFiltersService } from '../../documentos-clientes/components/filters/dialog-filters/service/dialog-filters.service';\r\nimport { BusquedaDocumentos } from '../../documentos-clientes/components/models/BusquedaDocumentos';\r\nimport { ClienteRelacionDocumentosCliente } from '../../documentos-clientes/components/models/ClienteRelacionDocumentosCliente';\r\nimport { TipoDocFiltro } from '../../documentos-clientes/components/models/TipoDocFiltro';\r\nimport { TipoDocumentoClientes } from '../../documentos-clientes/components/models/TipoDocumentoClientes';\r\nimport { DocumentosClienteService } from '../../documentos-clientes/components/services/documentos-cliente.service';\r\nimport { TableDataService } from '../../documentos-clientes/components/services/table-data.service';\r\nimport { Documento } from './modelos/Documento';\r\nimport { Proveedor } from './modelos/proveedor';\r\nimport { UltimoDoc } from './modelos/ultimoDoc';\r\nimport { AccesosDirectosHomeService } from './servicios/accesos-directos-home.service';\r\n\r\n\r\nconst MAX_PROVEEDORES = 8;\r\n\r\n@Component({\r\n selector: 'app-accesos-directos-pp',\r\n templateUrl: './accesos-directos-pp.component.html',\r\n styleUrls: ['./accesos-directos-pp.component.scss']\r\n})\r\nexport class AccesosDirectosPpComponent implements OnInit {\r\n\r\n mostrarProveedores = false;\r\n empresaActual: ClientInfo | null;\r\n\r\n ultimosDocs: any[];\r\n mostrarUltimosDocs = false;\r\n grupos: any;\r\n\r\n // ordenar por fecha ultimo doc\r\n proveedores: Proveedor[] = []\r\n\r\n slideConfig = {\r\n \"slidesToShow\": 4,\r\n \"slidesToScroll\": 4,\r\n \"infinite\": false,\r\n \"arrows\": true,\r\n \"draggable\": false,\r\n \"responsive\": [\r\n {\r\n breakpoint: 1100,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n };\r\n proveedoresConfig = {\r\n \"slidesToShow\": 8,\r\n \"slidesToScroll\": 1,\r\n \"infinite\": false,\r\n \"arrows\": true,\r\n \"draggable\": false,\r\n \"responsive\": [\r\n {\r\n breakpoint: 1100,\r\n settings: {\r\n slidesToShow: 8,\r\n slidesToScroll: 1,\r\n }\r\n },\r\n {\r\n breakpoint: 870,\r\n settings: {\r\n slidesToShow: 6,\r\n slidesToScroll: 1,\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n };\r\n\r\n constructor(private logoService: LogoService,\r\n private ADService: AccesosDirectosHomeService,\r\n private jwtService: JwtService,\r\n private service: DocumentosClienteService,\r\n private authService: AuthService,\r\n private dialogFiltersService: DialogFiltersService,\r\n private tableDataSourceService: TableDataService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.empresaActual = this.setEmpresa();\r\n\r\n this.ADService.getUltimosDocs(this.empresaActual?.Id!, this.empresaActual?.IdPais!).subscribe(ultimosDocs => {\r\n this.ultimosDocs = ultimosDocs;\r\n if (this.ultimosDocs.length > 0) {\r\n this.mostrarUltimosDocs = true;\r\n }\r\n })\r\n\r\n this.ADService.getGrupos().subscribe(grupos => {\r\n let result = grupos.reduce(function (r: any, grupo: any) {\r\n r[grupo.tipoGrupo] = r[grupo.tipoGrupo] || [];\r\n r[grupo.tipoGrupo].push(new Documento(grupo.idTipoDocumento, grupo.tipoDocumento));\r\n return r;\r\n }, Object.create(null));\r\n this.grupos = result;\r\n })\r\n\r\n this.ADService.getPortalDeProveedores(this.empresaActual?.Id!, this.empresaActual?.IdPais!).subscribe(proveedores => {\r\n this.proveedores = proveedores;\r\n if (this.proveedores.length > 0) {\r\n this.mostrarProveedores = true;\r\n }\r\n this.proveedores = this.shuffleAndPickProveedores(this.proveedores);\r\n })\r\n }\r\n\r\n setEmpresa(): ClientInfo | null {\r\n return this.jwtService.getAccessToken()?.userdata?.Cliente ?? null;\r\n }\r\n\r\n agregarTimeZone(): string {\r\n return this.authService.getTimeZone();\r\n }\r\n\r\n shuffleAndPickProveedores(arrayProveedores: Proveedor[]) {\r\n const shuffledArray = arrayProveedores.sort((a, b) => 0.5 - Math.random());\r\n return shuffledArray;\r\n }\r\n\r\n setearFechassessionStorage(filtrosessionStorage: BusquedaDocumentos): void {\r\n filtrosessionStorage.fechaDesde = moment(filtrosessionStorage.fechaDesde).isValid() ? moment(filtrosessionStorage.fechaDesde) : null;\r\n filtrosessionStorage.fechaHasta = moment(filtrosessionStorage.fechaHasta).isValid() ? moment(filtrosessionStorage.fechaHasta) : null;\r\n filtrosessionStorage.fechaVencimientoDesde = moment(filtrosessionStorage.fechaVencimientoDesde).isValid() ? moment(filtrosessionStorage.fechaVencimientoDesde) : null;\r\n filtrosessionStorage.fechaVencimientoHasta = moment(filtrosessionStorage.fechaVencimientoHasta).isValid() ? moment(filtrosessionStorage.fechaVencimientoHasta) : null;\r\n filtrosessionStorage.fechaEmisionDesde = moment(filtrosessionStorage.fechaEmisionDesde).isValid() ? moment(filtrosessionStorage.fechaEmisionDesde) : null;\r\n filtrosessionStorage.fechaEmisionHasta = moment(filtrosessionStorage.fechaEmisionHasta).isValid() ? moment(filtrosessionStorage.fechaEmisionHasta) : null;\r\n filtrosessionStorage.fechaEntregaDesde = moment(filtrosessionStorage.fechaEntregaDesde).isValid() ? moment(filtrosessionStorage.fechaEntregaDesde) : null;\r\n filtrosessionStorage.fechaEntregaHasta = moment(filtrosessionStorage.fechaEntregaHasta).isValid() ? moment(filtrosessionStorage.fechaEntregaHasta) : null;\r\n }\r\n\r\n onGrupoClick(event: any, doc: UltimoDoc) {\r\n if (doc.resourceKeyGrupo === \"facturasIncompletas\") {\r\n const busqueda = new BusquedaDocumentos();\r\n busqueda.estadosDocumentos.push(doc.idEstadoDocumento);\r\n busqueda.criterioFiltroFecha = \"ULTIMOS_90_DIAS\";\r\n busqueda.rangoFecha = 90;\r\n this.setearFechassessionStorage(busqueda);\r\n this.tableDataSourceService.setSearchFilters(busqueda);\r\n this.router.navigate([\r\n '/main/documentos/37',\r\n ]);\r\n return;\r\n }\r\n this.ADService.getFiltroHome(\"90DHOME\").pipe(take(1)).subscribe((data: BusquedaDocumentos) => {\r\n this.dialogFiltersService.getTiposDocumentosPorClientes([this.authService.getOwner()]).subscribe((tiposDocumentosClientes: TipoDocumentoClientes[]) => {\r\n let documentosFiltrados: TipoDocumentoClientes[] = this.filterDuplicados(tiposDocumentosClientes);\r\n if (this.grupos[doc.resourceKeyGrupo]) {\r\n this.grupos[doc.resourceKeyGrupo].forEach((documento: any) => {\r\n if (documentosFiltrados.find((docFiltrado: TipoDocumentoClientes) => docFiltrado.idTipoDocumento === documento.id && docFiltrado.sentido === this.resolverSentido(doc.sentido.toUpperCase()))) {\r\n let documetoGrupo: TipoDocFiltro = { id: documento.id, resourceKey: documento.resourceKey, sentido: this.resolverSentido(doc.sentido.toUpperCase()) }\r\n data.tiposDocumentos.push(documetoGrupo);\r\n }\r\n });\r\n }\r\n else {\r\n let documetoGrupo: TipoDocFiltro = { id: doc.documento.id, resourceKey: doc.documento.resourceKey!, sentido: this.resolverSentido(doc.sentido.toUpperCase()) }\r\n data.tiposDocumentos.push(documetoGrupo);\r\n }\r\n this.setearFechassessionStorage(data);\r\n this.tableDataSourceService.setSearchFilters(data);\r\n });\r\n })\r\n\r\n this.router.navigate([\r\n '/main/documentos/37',\r\n ]);\r\n }\r\n resolverSentido(sentido: string): string {\r\n if (sentido === 'ENVIADAS' || sentido === 'ENVIADOS' || sentido === 'ENVIADO' || sentido === 'ENVIADA') {\r\n return 'ENVIADO';\r\n } else {\r\n return 'RECIBIDO';\r\n }\r\n }\r\n\r\n filterDuplicados(res: TipoDocumentoClientes[]): TipoDocumentoClientes[] {\r\n let tiposDocumento: TipoDocumentoClientes[] = [];\r\n res.forEach(element => {\r\n let encontrado = false;\r\n tiposDocumento.forEach(element2 => {\r\n if (element.resourceKeyTipoDocumento === element2.resourceKeyTipoDocumento && element.esDeEmision === element2.esDeEmision) {\r\n encontrado = true;\r\n }\r\n });\r\n if (!encontrado) {\r\n tiposDocumento.push(element);\r\n }\r\n });\r\n return tiposDocumento;\r\n }\r\n\r\n onProveedorClick(event: any, proveedor: any) {\r\n this.ADService.getFiltroHome(\"90DHOME\").pipe(take(1)).subscribe((data: BusquedaDocumentos) => {\r\n let interlocutor: ClienteRelacionDocumentosCliente = { id: proveedor.id, idPais: proveedor.idPais };\r\n data.interlocutores.push(interlocutor);\r\n this.setearFechassessionStorage(data);\r\n this.tableDataSourceService.setSearchFilters(data);\r\n })\r\n\r\n this.router.navigate([\r\n '/main/documentos/37',\r\n ]);\r\n }\r\n\r\n}\r\n","
\r\n \r\n

{{ \"MIS_DOCUMENTOS\" | translate }}

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n

\r\n {{ doc.resourceKeyGrupo | translate }}\r\n {{ doc.sentido | translate }}\r\n

\r\n

\r\n {{ \"UltDoc\" | translate }}\r\n {{\r\n doc.fechaUltimoDocumento\r\n | date : \"dd/MM/yyyy HH:mm\" : agregarTimeZone()\r\n }}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n

\r\n {{ \"PORTAL_DE_PROVEEDORES\" | translate }}\r\n

\r\n

\r\n {{ \"SUB-HEADER-PORTAL-PROVEEDORES\" | translate }}\r\n

\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n","import { Component, Input, OnInit, SimpleChanges } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { LogoService } from 'src/app/core/services/logo.service';\r\nimport { Proveedor } from '../modelos/proveedor';\r\n\r\n@Component({\r\n selector: 'app-logo-pp',\r\n templateUrl: './logo-pp.component.html',\r\n styleUrls: ['./logo-pp.component.scss']\r\n})\r\nexport class LogoPpComponent implements OnInit {\r\n\r\n constructor(private logoService: LogoService, private sanitizer:DomSanitizer) { }\r\n\r\n src: any;\r\n @Input() proveedor: Proveedor;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n let img: any = document.querySelector('.heximage');\r\n let src = window.URL.createObjectURL(new Blob([this.proveedor.logo], { type: 'application/octet-stream' }));\r\n this.src = this.sanitizer.bypassSecurityTrustUrl(src); \r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n","export class Documento {\r\n id: number;\r\n resourceKey: string|null;\r\n\r\n constructor(id: number, resourceKey: string|null){\r\n this.id = id;\r\n this.resourceKey = resourceKey;\r\n }\r\n}","export class Proveedor {\r\n id: number;\r\n idPais: number;\r\n razonSocial: string;\r\n logo: Uint8Array;\r\n srcImg: any;\r\n\r\n constructor(razonSocial: string){\r\n this.razonSocial= razonSocial;\r\n }\r\n }","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LogoService } from 'src/app/core/services/logo.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ClienteAD } from '../modelos/ad-cliente';\r\nimport { Proveedor } from '../modelos/proveedor';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccesosDirectosHomeService {\r\n\r\n constructor(public http: HttpClient, private logoService: LogoService) { }\r\n\r\n getGrupos(): Observable {\r\n return this.http.get(`${environment.apiUrl}/AccesosDirectosHome/GetGruposDocumentos`)\r\n }\r\n\r\n getUltimosDocs(id: number, idPais: number): Observable {\r\n return this.http.get(`${environment.apiUrl}/AccesosDirectosHome/GetUltimosDocumentos/Paises/${idPais}/Clientes/${id}`)\r\n // .pipe(map((respuesta: RespuestaUltimosDocs) => {return respuesta}))\r\n }\r\n\r\n getFiltroHome(categoria: string): Observable {\r\n return this.http.get(`${environment.apiUrl}/AccesosDirectosHome/GetBusquedaDocumentosHome/Categoria/${categoria}`)\r\n }\r\n //pasar un modelo cliente\r\n getPortalDeProveedores(id: number, idPais: number): Observable {\r\n return this.http.get(`${environment.apiUrl}/AccesosDirectosHome/GetPortalDeProveedores/Paises/${idPais}/Clientes/${id}`)\r\n .pipe(map((proveedores: any) => {\r\n\r\n let respuesta: Proveedor[] = [];\r\n\r\n proveedores.forEach((proveedor: any) => {\r\n let newProv = new Proveedor(proveedor.cliente.razonSocial.replace(/[^a-z0-9]/gi, ''));\r\n\r\n newProv.id = proveedor.cliente.id;\r\n newProv.idPais = proveedor.cliente.idPais;\r\n newProv.logo = this.logoService.convert(proveedor.logo.hex);\r\n\r\n respuesta.push(newProv)\r\n });\r\n\r\n return respuesta;\r\n }))\r\n }\r\n}\r\n","import { Component, LOCALE_ID, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ChartDataSets, ChartOptions, ChartType } from 'chart.js';\r\nimport { Label, SingleDataSet } from 'ng2-charts';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ConexionesDashboard } from './models/ConexionesDashboard';\r\nimport { HomePageService } from './services/home-page.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { ToasterService } from 'src/app/core/services/toaster.service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport * as _ from 'underscore';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { tick } from '@angular/core/testing';\r\n\r\n@Component({\r\n selector: 'app-home-page',\r\n templateUrl: './home-page.component.html',\r\n styleUrls: ['./home-page.component.scss'],\r\n providers: [\r\n {\r\n provide: LOCALE_ID,\r\n useFactory: (authService: AuthService) => authService.getUserData()?.Cultura || 'es-AR',\r\n deps: [AuthService]\r\n }\r\n ]\r\n})\r\nexport class HomePageComponent implements OnInit {\r\n //#region Carousel\r\n limit: number = 10; // <==== Edit this number to limit API results\r\n customOptions: OwlOptions = {\r\n loop: true,\r\n autoplay: false,\r\n center: true,\r\n dots: false,\r\n autoHeight: true,\r\n autoWidth: true,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n },\r\n 600: {\r\n items: 1,\r\n },\r\n 1000: {\r\n items: 1,\r\n },\r\n },\r\n };\r\n //#endregion\r\n\r\n spinner = true;\r\n\r\n //#region Variables de datos\r\n indicadoresSubject: BehaviorSubject;\r\n fechasList: any[] = [];\r\n conexionesSubject: BehaviorSubject;\r\n totalEmpresas: number = 0;\r\n noAceptaron: number = 0;\r\n COMUNIDAD_TOOLTIP = 'Mi_Comunidad_Info';\r\n tieneComunidad = false;\r\n expandirComunidad = true;\r\n mesesBarras: string[];\r\n conexionesEstadoSubject: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n indicadoresEstadoSubject: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n\r\n //#endregion\r\n\r\n // Dona\r\n donaDataBSubject: BehaviorSubject;\r\n donaData = [\r\n {\r\n name: '',\r\n value: 0,\r\n },\r\n ];\r\n\r\n adjustYAxisTicks(): void {\r\n const ticks = document.querySelectorAll('g.tick text');\r\n ticks.forEach((tick: any) => {\r\n const tickValue = tick.textContent.trim();\r\n\r\n if (!isNaN(tickValue) && tickValue.includes('.')) {\r\n const numericValue = parseFloat(tickValue);\r\n\r\n if (Number.isInteger(numericValue)) {\r\n tick.textContent = numericValue.toFixed(0);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public pieChartOptions: ChartOptions = {\r\n responsive: true,\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n fontFamily: 'montserrat-regular',\r\n },\r\n },\r\n };\r\n public pieChartLabels: Label[] = [\r\n [1 + ' Empresas Conectada(s) ' + 50 + '%'],\r\n [1 + ' Empresas No Conectada(s) ' + 50 + '%'],\r\n ];\r\n public pieChartData: SingleDataSet = [0, 0];\r\n public pieChartType: ChartType = 'pie';\r\n public pieChartLegend = true;\r\n public pieChartPlugins = [];\r\n public pieChartColors: any[] = [\r\n {\r\n backgroundColor: ['#01ADC3', '#FE2643'],\r\n },\r\n ];\r\n\r\n //Fin de Dona\r\n\r\n // Barras V1\r\n listBar: any[];\r\n listFechas: any[];\r\n barlistBehavior: BehaviorSubject;\r\n xAxisLabelBehavior: BehaviorSubject;\r\n view: any[] = [650, 350];\r\n\r\n // options\r\n barPadding: number = 8;\r\n showXAxis: boolean = true;\r\n showYAxis: boolean = true;\r\n gradient: boolean = false;\r\n showLegend: boolean = true;\r\n animations: boolean = true;\r\n showXAxisLabel: boolean = true;\r\n xAxisLabel: string = '';\r\n showLabels: boolean = true;\r\n isDoughnut: boolean = false;\r\n label: string = this.translate.instant('TOTAL');\r\n\r\n colorScheme = {\r\n domain: ['#01adc3', '#fe2643', '#9f1daa'],\r\n };\r\n\r\n public barTitleData: string[] = ['precarga'];\r\n public barSentidoData: string[] = ['precarga'];\r\n public barDescripcionDocumentoData: string[] = ['precarga'];\r\n //Fin de Barras V1\r\n\r\n //#region Barras V2\r\n\r\n public barChartOptions: ChartOptions = {\r\n responsive: true,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n backdropColor: '#000',\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n public barChartLabels: Label[] = [\r\n '2012',\r\n '2007',\r\n '2008',\r\n '2009',\r\n '2010',\r\n '2011',\r\n '2012',\r\n ];\r\n public barChartType: ChartType = 'bar';\r\n public barChartLegend = true;\r\n public barChartPlugins = [];\r\n\r\n public barChartData: ChartDataSets[] = [\r\n { data: [65, 59, 80, 12], label: 'Series A', stack: 'a' },\r\n { data: [28, 48, 40, 5], label: 'Series B', stack: 'a' },\r\n ];\r\n doughnutChartData: number[][];\r\n doughnutChartLabels: any[];\r\n\r\n //#endregion Barras V2\r\n\r\n // grafico barras version 153022\r\n\r\n public chartColors: Array = [\r\n {\r\n // color verde\r\n backgroundColor: '#01ADC3',\r\n borderColor: '#01ADC3',\r\n pointBackgroundColor: '#01ADC3',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: '#01ADC3',\r\n },\r\n {\r\n // color rojo\r\n backgroundColor: '#FE2643',\r\n borderColor: '#FE2643',\r\n pointBackgroundColor: '#FE2643',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: '#FE2643',\r\n },\r\n ];\r\n\r\n slideConfig = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n infinite: true,\r\n arrows: true,\r\n draggable: false,\r\n };\r\n\r\n // fin grafico barras version 153022\r\n static contadorAlerta = false;\r\n constructor(\r\n private homePageService: HomePageService,\r\n private toasterService: ToasterService,\r\n private authService: AuthService,\r\n public translate: TranslateService,\r\n private toastr: ToastrService\r\n ) {}\r\n\r\n esUsuarioPLX(): boolean {\r\n return this.authService.esPlanexware();\r\n }\r\n\r\n estaConectadoComo(): boolean {\r\n return this.authService.conectadoComo();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n await this.authService.getClientesHoldingFromApi();\r\n this.getAlertaProxVencimiento();\r\n this.homePageService.getTieneComunidad().subscribe(\r\n (result: boolean) => {\r\n this.tieneComunidad = result;\r\n if (this.tieneComunidad) {\r\n this.getIndicadores();\r\n this.getConexiones();\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n this.toastr.error(this.translate.instant('ERROR_APLICACION'), '', {\r\n positionClass: 'toast-top-full-width',\r\n disableTimeOut: true,\r\n closeButton: true,\r\n });\r\n }\r\n );\r\n var idioma = this.authService.getUserData()?.Cultura;\r\n }\r\n\r\n onSelect(event: any) {}\r\n\r\n toggleComunidad(): void {\r\n this.expandirComunidad = !this.expandirComunidad;\r\n }\r\n\r\n onResize(event: any) {\r\n this.view = [event.target.innerWidth / 1.35, 400];\r\n }\r\n\r\n getIndicadores() {\r\n this.homePageService\r\n .getIndicadoresDashboard()\r\n .subscribe((indicadoresDashboard: any[]) => {\r\n this.listFechas = indicadoresDashboard.map(\r\n (element) => element.fechaUltimaActualizacion\r\n );\r\n\r\n if (indicadoresDashboard.length > 0) {\r\n this.indicadoresEstadoSubject.next(true);\r\n\r\n this.indicadoresSubject = new BehaviorSubject(\r\n indicadoresDashboard\r\n );\r\n\r\n //Obtengo los meses a mostrar en el grafico\r\n this.getMesIndicadores(\r\n this.indicadoresSubject.value[0].fechaUltimaActualizacion\r\n );\r\n\r\n this.indicadoresSubject.value.forEach((elemento) => {\r\n switch (elemento.tipoIdentificador) {\r\n case 'SiLeySiCon':\r\n case 'NoLeyNoCon':\r\n case 'NoLeySiCon':\r\n elemento.sociedad = 'comunidad';\r\n break;\r\n case 'EmpNoLey':\r\n case 'EmpLey':\r\n case 'EmpEmis':\r\n elemento.sociedad = 'empresa';\r\n break;\r\n default:\r\n elemento.sociedad = 'empresa';\r\n break;\r\n }\r\n });\r\n\r\n this.indicadoresSubject.value.forEach((elemento) => {\r\n switch (elemento.tipoIdentificador) {\r\n case 'SiLeySiCon': //Conectado\r\n case 'NoLeySiCon': //Conectado\r\n case 'EmpEmis': //Conectado\r\n elemento.estado = 'conectado';\r\n break;\r\n case 'NoLeyNoCon': //NoConectado\r\n case 'EmpNoLey': //NoConectado\r\n case 'EmpLey': //NoConectado\r\n elemento.estado = 'noConectado';\r\n break;\r\n default:\r\n elemento.estado = 'noConectado';\r\n break;\r\n }\r\n });\r\n\r\n var grupete = _.groupBy(\r\n this.indicadoresSubject.value,\r\n function (indicador) {\r\n var props = ['tipoDocumento', 'sentido', 'sociedad', 'estado']; // server-defined\r\n var prop = [];\r\n\r\n for (var i = 0, length = props.length; i < length; i++) {\r\n prop.push(indicador[props[i]]);\r\n }\r\n\r\n return prop.join('|');\r\n }\r\n );\r\n\r\n var data: any[] = [];\r\n\r\n for (const [key, value] of Object.entries(grupete)) {\r\n value.map((element) => {\r\n switch (element.tipoIdentificador) {\r\n case 'SiLeySiCon':\r\n element.tipoIdentificador = this.translate.instant(\r\n 'LEIDOS_EMPRESAS_CONECTADAS'\r\n );\r\n break;\r\n case 'NoLeyNoCon':\r\n element.tipoIdentificador = this.translate.instant(\r\n 'NO_LEIDOS_EMP_NO_CONECTADAS'\r\n );\r\n break;\r\n case 'NoLeySiCon':\r\n element.tipoIdentificador = this.translate.instant(\r\n 'NO_LEIDOS_EMP_CONECTADAS'\r\n );\r\n break;\r\n case 'EmpNoLey':\r\n element.tipoIdentificador =\r\n this.translate.instant('NO_LEYERON');\r\n break;\r\n case 'EmpLey':\r\n element.tipoIdentificador = this.translate.instant('LEYERON');\r\n break;\r\n case 'EmpEmis':\r\n element.tipoIdentificador = this.translate.instant(\r\n 'CANTIDAD_EMPRESAS_CONECTADAS'\r\n );\r\n break;\r\n default:\r\n element.tipoIdentificador = 'no pactado';\r\n break;\r\n }\r\n });\r\n\r\n var char = [\r\n {\r\n name: this.mesesBarras[0],\r\n series: value.map((element) => {\r\n return {\r\n name: element.tipoIdentificador,\r\n value: element.periodoDos,\r\n };\r\n }),\r\n },\r\n {\r\n name: this.mesesBarras[1],\r\n series: value.map((element) => {\r\n return {\r\n name: element.tipoIdentificador,\r\n value: element.periodoUno,\r\n };\r\n }),\r\n },\r\n {\r\n name: this.mesesBarras[2],\r\n series: value.map((element) => {\r\n return {\r\n name: element.tipoIdentificador,\r\n value: element.periodo,\r\n };\r\n }),\r\n },\r\n ];\r\n data.push(char);\r\n\r\n this.barTitleData.push(value[0].tipoDocumento);\r\n this.barSentidoData.push(this.validateSentido(value[0]));\r\n this.barDescripcionDocumentoData.push(\r\n this.validateDescripcionDocumento(value[0])\r\n );\r\n }\r\n this.barTitleData.shift();\r\n this.barSentidoData.shift();\r\n this.barDescripcionDocumentoData.shift();\r\n\r\n this.barlistBehavior = new BehaviorSubject(data);\r\n } else {\r\n this.indicadoresEstadoSubject.next(false);\r\n }\r\n this.spinner = false;\r\n setTimeout(() => {\r\n const ticks = document.querySelectorAll('.barras-card .ngx-charts .tick');\r\n ticks.forEach((tick) => {\r\n // Buscar el texto dentro de cada \r\n const textElement = tick.querySelector('text');\r\n if (textElement) {\r\n // Obtener el valor del texto\r\n let value = parseFloat(textElement.textContent!.trim());\r\n\r\n // Comprobar si el número es entero\r\n if (Number.isInteger(value)) {\r\n // Si es un número entero, lo redondeamos a su valor sin decimales\r\n textElement.textContent = value.toString().split('.')[0];\r\n }\r\n }\r\n });\r\n }, 0);\r\n });\r\n }\r\n\r\n validateIndicador(indicadoresDashboard: any) {\r\n if (indicadoresDashboard.tipoIdentificador == 'SiLeySiCon') {\r\n return this.translate.instant('LEIDOS_EMPRESAS_CONECTADAS');\r\n } else if (indicadoresDashboard.tipoIdentificador == 'NoLeyNoCon') {\r\n return this.translate.instant('NO_LEIDOS_EMP_NO_CONECTADAS');\r\n } else if (indicadoresDashboard.tipoIdentificador == 'NoLeySiCon') {\r\n return this.translate.instant('NO_LEIDOS_EMP_CONECTADAS');\r\n } else if (indicadoresDashboard.tipoIdentificador == 'EmpNoLey') {\r\n return this.translate.instant('NO_LEYERON');\r\n } else if (indicadoresDashboard.tipoIdentificador == 'EmpLey') {\r\n return this.translate.instant('LEYERON');\r\n } else if (indicadoresDashboard.tipoIdentificador == 'EmpEmis') {\r\n return this.translate.instant('CANTIDAD_EMPRESAS_CONECTADAS');\r\n } else {\r\n return 'no pactado';\r\n }\r\n }\r\n\r\n validateSentido(indicadoresDashboard: any) {\r\n if (indicadoresDashboard.sentido == 'R') {\r\n return this.translate.instant('recibidas');\r\n } else {\r\n return this.translate.instant('enviadas');\r\n }\r\n }\r\n\r\n validateDescripcionDocumento(indicadoresDashboard: any) {\r\n if (indicadoresDashboard.sociedad == 'comunidad') {\r\n if (indicadoresDashboard.sentido == 'R')\r\n return this.translate.instant('DE_SU_COMUNIDAD_DE_EMPRESAS');\r\n return this.translate.instant('A_SU_COMUNIDAD_DE_EMPRESAS');\r\n } else {\r\n if (indicadoresDashboard.sentido == 'R')\r\n return this.translate.instant('EMPRESAS_QUE_EMITIERON');\r\n else {\r\n return this.translate.instant('EMPRESAS_QUE_LEYERON');\r\n }\r\n }\r\n }\r\n\r\n getConexiones() {\r\n this.homePageService\r\n .getConexionesComunidad()\r\n .subscribe((conexionesDashboard: ConexionesDashboard[]) => {\r\n if (conexionesDashboard.length > 0) {\r\n var conexiones;\r\n conexionesDashboard.forEach((element) => {\r\n switch (element.estadoEmpresa) {\r\n case 'CONECTADA':\r\n if (conexionesDashboard.length <= 1) {\r\n var obj = {\r\n cantidadConexiones: 0,\r\n estadoEmpresa: 'NO CONECTADA',\r\n };\r\n conexionesDashboard.push(obj);\r\n }\r\n break;\r\n case 'NO CONECTADA':\r\n if (conexionesDashboard.length <= 1) {\r\n var obj = {\r\n cantidadConexiones: 0,\r\n estadoEmpresa: 'CONECTADA',\r\n };\r\n conexionesDashboard.push(obj);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n this.conexionesEstadoSubject.next(true);\r\n\r\n this.conexionesSubject = new BehaviorSubject(\r\n conexionesDashboard\r\n );\r\n\r\n this.noAceptaron = conexionesDashboard[1].cantidadConexiones;\r\n this.totalEmpresas =\r\n conexionesDashboard[0].cantidadConexiones +\r\n conexionesDashboard[1].cantidadConexiones;\r\n var porcentajeEmpresasConectadas = (\r\n (conexionesDashboard[0].cantidadConexiones / this.totalEmpresas) *\r\n 100\r\n ).toFixed();\r\n var porcentajeEmpresasNoConectadas = (\r\n (conexionesDashboard[1].cantidadConexiones / this.totalEmpresas) *\r\n 100\r\n ).toFixed();\r\n\r\n this.pieChartData = [\r\n [\r\n conexionesDashboard[0].cantidadConexiones,\r\n conexionesDashboard[1].cantidadConexiones,\r\n ],\r\n ];\r\n\r\n this.pieChartLabels = [\r\n [\r\n conexionesDashboard[0].cantidadConexiones +\r\n ' ' +\r\n this.translate.instant('Empresas_Contectadas') +\r\n ' ' +\r\n porcentajeEmpresasConectadas +\r\n ' %',\r\n ],\r\n\r\n [\r\n conexionesDashboard[1].cantidadConexiones +\r\n ' ' +\r\n this.translate.instant('EMPRESAS_NO_CONECTADAS') +\r\n ' ' +\r\n porcentajeEmpresasNoConectadas +\r\n ' %',\r\n ],\r\n ];\r\n } else {\r\n this.conexionesEstadoSubject.next(false);\r\n }\r\n this.spinner = false;\r\n });\r\n }\r\n\r\n getMesIndicadores(date: any) {\r\n const idioma = this.authService.getUserData()?.Cultura;\r\n const obtenerNombreMes = (fecha: Date): string => {\r\n const mes = fecha.toLocaleString(idioma === 'en-US' ? 'en-us' : 'es-es', {\r\n month: 'long',\r\n });\r\n return mes.charAt(0).toUpperCase() + mes.slice(1);\r\n };\r\n\r\n const fechaActual = new Date(date);\r\n const anio = fechaActual.getFullYear();\r\n\r\n const mesEnCurso = obtenerNombreMes(fechaActual);\r\n\r\n fechaActual.setMonth(fechaActual.getMonth() - 1);\r\n const mesAnterior1 = obtenerNombreMes(fechaActual);\r\n\r\n fechaActual.setMonth(fechaActual.getMonth() - 1);\r\n const mesAnterior2 = obtenerNombreMes(fechaActual);\r\n\r\n this.mesesBarras = [\r\n `${this.translate.instant(mesAnterior2)} - ${anio}`,\r\n `${this.translate.instant(mesAnterior1)} - ${anio}`,\r\n `${this.translate.instant(mesEnCurso)} - ${anio}`,\r\n ];\r\n }\r\n\r\n getAlertaProxVencimiento() {\r\n if (this.authService.getUserData()?.UsaSocialLogin) return;\r\n this.authService\r\n .getRecuperarAvisoCambioContrasena()\r\n .subscribe((respuesta) => {\r\n respuesta = respuesta;\r\n if (respuesta.value !== null) {\r\n if (HomePageComponent.contadorAlerta) return;\r\n var mensaje =\r\n this.translate.instant('FALTAN_N_DIAS_VENCIMIENTO_CONTRASENA') +\r\n respuesta.value +\r\n this.translate.instant('FALTAN_N_DIAS_VENCIMIENTO_CONTRASENA_2');\r\n var toasterMessage: any = {\r\n id: 0,\r\n mensaje: mensaje,\r\n tipoMensaje: 'info',\r\n bloqueante: false,\r\n visibleEnCadaLogin: true,\r\n };\r\n this.toasterService.pushMessage(toasterMessage);\r\n HomePageComponent.contadorAlerta = true;\r\n }\r\n });\r\n }\r\n\r\n agregarTimeZone(): string {\r\n return this.authService.getTimeZone();\r\n }\r\n}\r\n","\r\n\r\n\r\n

\r\n {{ \"Mi_Comunidad_Titulo\" | translate }}\r\n

\r\n \r\n help\r\n \r\n keyboard_arrow_up\r\n keyboard_arrow_down\r\n\r\n
\r\n \r\n \r\n \r\n cached\r\n

{{ \"Donut_Grafico_Vacio\" | translate }}

\r\n
\r\n

{{ \"Donut_Grafico_Vacio_Descrip1\" | translate }}

\r\n

{{ \"Donut_Grafico_Vacio_Descrip2\" | translate }}

\r\n
\r\n
\r\n
\r\n

{{ \"Empresas\" | translate }}

\r\n {{ \"TOTAL\" | translate }}: {{ totalEmpresas }}\r\n {{ \"Empresas\" | translate }}\r\n\r\n \r\n \r\n\r\n

\r\n {{ \"Su_Empresa_Invito_a\" | translate }} {{ totalEmpresas }}\r\n {{ \"Empresas_De_Las_Cuales\" | translate }} {{ noAceptaron }}\r\n {{ \"No_Han_Aceptado_Aun\" | translate }}\r\n {{\r\n \"Su_Panel_De_Conexiones\" | translate\r\n }}\r\n {{ \"Su_Panel_De_Conexiones\" | translate }}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n file_copy\r\n

{{ \"Bar_Grafico_Vacio\" | translate }}

\r\n

{{ \"Bar_Grafico_Vacion_Descrip\" | translate }}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

\r\n {{ barTitleData[i] | translate }}\r\n {{ barSentidoData[i] | translate }}\r\n {{ barDescripcionDocumentoData[i] | translate }}\r\n

\r\n
\r\n
\r\n

\r\n {{ \"Ultima_Actualizacion_Dash\" | translate }}\r\n {{\r\n listFechas[i] | date : \"dd-MM-YYYY HH:mm\" : agregarTimeZone()\r\n }}\r\n

\r\n av_timer\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n \r\n \r\n question_answer\r\n

{{ \"PREGUNTAS_FRECUENTES\" | translate }}

\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n ondemand_video\r\n

{{ \"VIDEO_TUTORIALES\" | translate }}

\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n new_releases\r\n

{{ \"NOVEDADES_DE_LA_PLATAFORMA\" | translate }}

\r\n \r\n
\r\n
\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomePageService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getIndicadoresDashboard() {\r\n return this.http.get(`${environment.apiUrl}/DashboardHome/GetIndicadoresComunidad`)\r\n }\r\n\r\n getConexionesComunidad() {\r\n return this.http.get(`${environment.apiUrl}/DashboardHome/GetConexionesComunidad`)\r\n }\r\n getTieneComunidad() {\r\n return this.http.get(`${environment.apiUrl}/DashboardHome/GetTieneComunidad`)\r\n }\r\n}\r\n","import { Component, HostListener, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { Cliente } from '../clientes-mixtos/modelos/Cliente';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { isNullOrEmptyOrUndefined } from '../../shared/utils/utils.component';\r\nimport { GoogleAnalyticsEventsService } from '../../core/services/google-analytics-events.service';\r\n\r\nimport { NumericConfig } from '@rxweb/reactive-form-validators/models/config';\r\nimport { environment } from '../../../environments/environment';\r\nimport { MensajeService } from 'src/app/core/services/mensaje.service';\r\nimport { MensajeHTMLView } from '../novedades/models/mensajeHTMLView';\r\n\r\n\r\n@Component({\r\n selector: 'app-link-vencido',\r\n templateUrl: './link-vencido.component.html',\r\n styleUrls: ['./link-vencido.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LinkVencidoComponent implements OnInit {\r\n\r\n public mensajes: MensajeHTMLView[];\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private router: Router,\r\n private mensajeService: MensajeService) { }\r\n\r\n ngOnInit(): void {\r\n this.mensajeService.getMensajeUser_ResourceKey('MsjCritico').subscribe((x: MensajeHTMLView[]) => {\r\n this.mensajes = x;\r\n });\r\n }\r\n\r\n cerrarMensaje(mensaje: MensajeHTMLView):void {\r\n mensaje.resourceKey = 'CierreCrit'; // Se usa para grabar log de auditoria\r\n this.mensajeService.cerrarMensajeUsuario(mensaje).subscribe(x => {\r\n this.mensajes.splice(this.mensajes.indexOf(mensaje),1);\r\n if(this.mensajes.length === 0){\r\n if(mensaje.bloqueante){\r\n // En caso de ser el mensaje de renovacion de abono y cerrarlo. Te saca\r\n sessionStorage.removeItem('token');\r\n this.router.navigate(['/']);\r\n }\r\n else\r\n this.router.navigate(['main/home']);\r\n }\r\n });\r\n }\r\n renovarAbono() {\r\n this.router.navigate(['/main/renovacion/datosBasicos']);\r\n }\r\n\r\n}\r\n","
\r\n \r\n \"Planexware\"\r\n\r\n
\r\n\r\n","import { AfterViewInit, Component, HostListener, Inject, OnInit, ViewEncapsulation, NgZone } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { Cliente } from '../clientes-mixtos/modelos/Cliente';\r\nimport { JwtInfo } from './Models/JwtInfo';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { isNullOrEmptyOrUndefined } from '../../shared/utils/utils.component';\r\nimport { GoogleAnalyticsEventsService } from '../../core/services/google-analytics-events.service';\r\nimport { Contrasena } from './Models/Contrasena';\r\nimport { MensajeService } from 'src/app/core/services/mensaje.service';\r\nimport { ToasterService } from 'src/app/core/services/toaster.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ChekPasswordValueService } from 'src/app/core/helpers/chekPasswordValue.service';\r\nimport { ConfiguracionSeguridadService } from '../configuracion-seguridad/servicios/configuracion-seguridad.service';\r\nimport { JwtService } from 'src/app/core/services/jwt.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RedirectHelper } from 'src/app/core/helpers/redirect.helper';\r\nimport { lastValueFrom, take } from 'rxjs';\r\nimport { FeatureToggleService } from 'src/app/core/services/featureToggle.service';\r\nimport { MsalService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { AuthenticationResult, InteractionType, PopupRequest, PublicClientApplication, RedirectRequest } from '@azure/msal-browser';\r\nimport jwtDecode from 'jwt-decode';\r\nimport { Client } from '@microsoft/microsoft-graph-client';\r\nimport { AuthCodeMSALBrowserAuthenticationProvider } from '@microsoft/microsoft-graph-client/authProviders/authCodeMsalBrowser';\r\nimport * as MicrosoftGraph from '@microsoft/microsoft-graph-types';\r\nimport { PopUpCredencialesComponent } from './popup-credenciales/popup-credenciales.component';\r\nimport { NoopScrollStrategy } from '@angular/cdk/overlay';\r\nimport { environment } from 'src/environments/environment';\r\nimport { UsuariosDeLaEmpresaService } from '../usuarios-de-la-empresa/servicio/usuarios-de-la-empresa.service';\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LoginComponent implements OnInit, AfterViewInit {\r\n /*vars*/\r\n email: string;\r\n password: string;\r\n password_nueva: string;\r\n tooltip_contrasena: string;\r\n clienteSeleccionado: Cliente;\r\n repassword: string;\r\n intentos = 0;\r\n contrasena_corta = false;\r\n /*Templates*/\r\n template_login: boolean = true;\r\n template_recupero_contrasena: boolean = false;\r\n template_nueva_contrasena: boolean = false;\r\n template_usuario_multiempresa: boolean = false;\r\n template_recupero_contrasena_ok: boolean = false;\r\n template_nuevo_credencial_o_contrasena: boolean = false;\r\n template_sso: boolean = false;\r\n\r\n userInfo: JwtInfo;\r\n multiEmpresaControl = new FormControl('', Validators.required);\r\n emailControl = new FormControl('', Validators.required);\r\n passwordControl = new FormControl('', Validators.required);\r\n repasswordControl = new FormControl('', Validators.required);\r\n passwordNuevaControl = new FormControl('', Validators.required);\r\n\r\n hide = true;\r\n hide_repeat = true;\r\n ver_reenviar = true;\r\n segundosRestantes: number;\r\n terminos_condiciones: boolean = false;\r\n ver_terminos_condiciones: boolean;\r\n contrasena: Contrasena;\r\n passStrength: number;\r\n minLengt = 8;\r\n\r\n complejidadContrasena: string;\r\n complejidadDelCliente: number;\r\n\r\n icono = \"clear\"\r\n private usaCredencialesSociales: boolean = false;\r\n public graphClient?: Client;\r\n hint_sso = false;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n public genericToasterService: GenericToasterService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private totasterService: ToasterService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private route: ActivatedRoute,\r\n private mensajeService: MensajeService,\r\n private cookieService: CookieService,\r\n private chekPasswordValueService: ChekPasswordValueService,\r\n private configuracionSeguridadService: ConfiguracionSeguridadService,\r\n private jwtService: JwtService,\r\n private dialogService: MatDialog,\r\n private redirectHelper: RedirectHelper,\r\n private featureToggleService: FeatureToggleService,\r\n private authMsalService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private ngZone: NgZone,\r\n public dialog: MatDialog,\r\n private usuarioService: UsuariosDeLaEmpresaService\r\n ) { }\r\n\r\n\r\n ngOnInit(): void {\r\n // Boton login google\r\n // @ts-ignore\r\n window.onGoogleLibraryLoad = () => {\r\n // @ts-ignore\r\n google.accounts.id.initialize({\r\n client_id: environment.googleClientId,\r\n // @ts-ignore\r\n callback: ({ credential }) => {\r\n this.ngZone.run(() => {\r\n this.callback_login_google(credential);\r\n });\r\n },\r\n });\r\n // @ts-ignore\r\n google.accounts.id.renderButton(\r\n // @ts-ignore\r\n document.getElementById(\"google-button\"),\r\n { theme: \"outline\", size: \"medium\", width: \"300px\", text: \"continue_with\", locale: this.cookieService.get('ucultura') || 'es-AR', logo_alignment: \"center\" }\r\n\r\n );\r\n\r\n };\r\n this.dialogService.closeAll();\r\n this.dialogService.ngOnDestroy();\r\n if (this.authService.isAuthenticated()) {\r\n this.router.navigate(['main/home']);\r\n }\r\n\r\n if (sessionStorage.getItem(\"msal.interaction.status\") == \"b9d15110-c18d-4680-8d5a-6317f43bdfdf\") sessionStorage.removeItem('msal.interaction.status');\r\n this.setPantallasMigradas();\r\n this.seteoVariables();\r\n this.route.queryParams.subscribe((params) => {\r\n let body = { ...params.keys, ...params };\r\n\r\n if (isNullOrEmptyOrUndefined(body.rtu) || isNullOrEmptyOrUndefined(body.ff))\r\n this.cambiarTemplate(true);\r\n else {\r\n\r\n this.authService.postRenovarContrasena(body).subscribe((param) => {\r\n this.contrasena = param as Contrasena;\r\n if (this.contrasena.complejidadHashDescripcion === 'Alta') {\r\n this.minLengt = 10;\r\n this.tooltip_contrasena = '';\r\n }\r\n this.textoTooltipContrasena(this.contrasena.complejidadHashDescripcion);\r\n switch (this.contrasena.complejidadHashDescripcion) {\r\n case 'Baja':\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_BAJA');\r\n this.complejidadDelCliente = 1\r\n break;\r\n case 'Media':\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_MEDIA');\r\n this.complejidadDelCliente = 2\r\n break;\r\n case 'Alta':\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_ALTA');\r\n this.complejidadDelCliente = 3\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.email = this.contrasena.usuario;\r\n this.emailControl.disable();\r\n this.passwordNuevaControl.reset();\r\n this.password_nueva = '';\r\n if(this.contrasena.usuarioNuevo){\r\n // primera vez\r\n this.nuevaContrasena_o_sociales(true);\r\n } else {\r\n // recupera la contraseña\r\n this.nuevaContrasena(true);\r\n }\r\n\r\n },\r\n (err) => {\r\n err = err;\r\n if (err.error.Message === \"Error with Message='ERROR_LINK_NO_VIGENTE'\") {\r\n this.router.navigate(['linkVencido']);\r\n } else {\r\n this.toastr.error(this.translate.instant('ERROR_APLICACION'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n }\r\n }\r\n );\r\n this.nuevaContrasena_o_sociales(true);\r\n }\r\n });\r\n this.checkNewPassword();\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Limpio contraseña al recuperar\r\n let html = document.getElementsByTagName(\"app-root\")[0];\r\n let url = window.location.pathname;\r\n (url.includes(\"login\") || url.includes(\"contrasena\")) && html.classList.contains(\"no-login\") == false\r\n ? html.classList.add(\"login\") : html.classList.add(\"no-login\")\r\n if (url.includes(\"login\")) {\r\n html.classList.remove(\"no-login\")\r\n html.classList.add(\"login\")\r\n }\r\n if (this.template_nuevo_credencial_o_contrasena)\r\n this.habilitarBotones();\r\n }\r\n\r\n checkNewPassword() {\r\n this.passwordNuevaControl.valueChanges.subscribe(data => {\r\n if (data != undefined || data != null) {\r\n this.validateNewPassword(data);\r\n }\r\n })\r\n }\r\n\r\n validateNewPassword(data: any) {\r\n switch (this.complejidadDelCliente) {\r\n case 1:\r\n if (data.length > 7 && this.chekPasswordValueService.tieneMayuscula(data) && this.chekPasswordValueService.tieneMinuscula(data)) {\r\n this.icono = \"done\"\r\n } else {\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n case 2:\r\n if (data.length > 7 && this.chekPasswordValueService.complegidadMedia(data)) {\r\n this.icono = \"done\"\r\n } else {\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n case 3:\r\n if (this.chekPasswordValueService.complejidadAlta(data)) {\r\n this.icono = \"done\"\r\n } else {\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n login() {\r\n const element = document.getElementById(\"loginButton\");\r\n element?.classList.add(\"loading\");\r\n this.emailControl.disable()\r\n this.passwordControl.disable()\r\n\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n this.borrarToast();\r\n this.googleAnalyticsEventsService.emitEvent('Acciones', 'Login', null, true);\r\n\r\n let body = {\r\n usuario: this.email,\r\n contrasena: this.password\r\n }\r\n\r\n if (isNullOrEmptyOrUndefined(this.email) || isNullOrEmptyOrUndefined(this.password)) {\r\n this.genericToasterService.pushError(this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS'), '', true, \"login\");\r\n this.emailControl.markAsTouched();\r\n this.passwordControl.markAsTouched();\r\n element?.classList.remove(\"loading\");\r\n return;\r\n }\r\n\r\n this.googleAnalyticsEventsService.emitEvent('Login', 'Boton Acceder', null, 0);\r\n this.authService.getLogin(body).subscribe(async (respuesta) => {\r\n this.userInfo = respuesta;\r\n if (this.userInfo.jwt != null) {\r\n // nota del dev: la linea de featureToggle DEBE ser comentada en la rama de dev. NO borrar, gracias.\r\n // await this.featureToggleService.obtenerFeatureToggles();\r\n if (this.userInfo.clientesParaMultiEmpresa.length > 1) {\r\n this.setIdiomaDespuesLogin(this.userInfo.cultura);\r\n this.templateUsuarioMultiEmpresa(true);\r\n }\r\n else {\r\n sessionStorage.setItem('token', this.userInfo.jwt);\r\n await this.setClientesHolding();\r\n this.setFunciones();\r\n this.setIdiomaDespuesLogin(this.userInfo.cultura);\r\n if (this.redirectHelper.tengoQueRedireccionar()) {\r\n this.redirectHelper.redirect();\r\n } else {\r\n this.recuperarMensajesUsuario();\r\n }\r\n }\r\n }\r\n\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n if (this.intentos !== 0 && mensaje === \"USUARIO_CONTRASENA_INCORRECTO\") {\r\n mensaje = \"USUARIO_CONTRASENA_INCORRECTO_DOS\"\r\n }\r\n this.intentos++;\r\n\r\n this.genericToasterService.pushError(mensaje, '', true, \"login\");\r\n\r\n element?.classList.remove(\"loading\");\r\n\r\n this.emailControl.enable()\r\n this.passwordControl.enable()\r\n });\r\n this.setPantallasMigradas();\r\n }\r\n\r\n recuperarMensajesUsuario() {\r\n this.mensajeService.getMensajeUser_ResourceKey('MsjCritico').subscribe(x => {\r\n if (x && x.length > 0) {\r\n this.router.navigate(['main/mensajesCriticos']);\r\n }\r\n else {\r\n this.totasterService.getMessages();\r\n this.router.navigate(['main/home']);\r\n }\r\n });\r\n }\r\n\r\n recuperoContrasenaTemplate(value: boolean) {\r\n this.template_login = false;\r\n this.template_recupero_contrasena = true;\r\n }\r\n\r\n nuevaContrasena(value: boolean) {\r\n this.template_login = false;\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = true;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_nuevo_credencial_o_contrasena = false;\r\n this.template_sso = false;\r\n }\r\n\r\n nuevaContrasena_o_sociales(value: boolean) {\r\n this.template_login = false;\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = false;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_nuevo_credencial_o_contrasena = true;\r\n this.template_sso = false;\r\n }\r\n cancelar(value: boolean) {\r\n this.template_login = true;\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = false;\r\n this.template_usuario_multiempresa = false;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_nuevo_credencial_o_contrasena = false;\r\n this.template_sso = false;\r\n this.usaCredencialesSociales = false;\r\n setTimeout(() => {\r\n let cultura = this.cookieService.get('ucultura') || 'es-AR'\r\n // @ts-ignore\r\n google.accounts.id.renderButton(\r\n // @ts-ignore\r\n document.getElementById(\"google-button\"),\r\n { theme: \"outline\", size: \"medium\", width: \"300px\", text: \"continue_with\", locale: cultura, logo_alignment: \"center\" }\r\n );\r\n }, 10);\r\n this.emailControl.enable();\r\n }\r\n cancelar_sso(value: boolean) {\r\n this.hint_sso = false;\r\n this.emailControl.setErrors(null);\r\n this.emailControl.markAsUntouched();\r\n\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = false;\r\n this.template_usuario_multiempresa = false;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_sso = false;\r\n this.usaCredencialesSociales = false;\r\n\r\n if (window.location.pathname.includes(\"contrasena\")) {\r\n // Es creacion de contraseña\r\n this.template_login = false;\r\n this.template_nuevo_credencial_o_contrasena = true;\r\n setTimeout(() => {\r\n let cultura = this.cookieService.get('ucultura') || 'es-AR'\r\n // @ts-ignore\r\n google.accounts.id.renderButton(\r\n // @ts-ignore\r\n document.getElementById(\"google-button\"),\r\n { theme: \"outline\", size: \"medium\", width: \"300px\", text: \"continue_with\", locale: cultura, logo_alignment: \"center\" }\r\n );\r\n }, 10);\r\n } else {\r\n this.template_nuevo_credencial_o_contrasena = false;\r\n this.template_login = true;\r\n this.emailControl.enable();\r\n }\r\n }\r\n volver_contrasena() {\r\n this.template_login = false;\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = false;\r\n this.template_usuario_multiempresa = false;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_nuevo_credencial_o_contrasena = true;\r\n this.template_sso = false;\r\n this.usaCredencialesSociales = false;\r\n setTimeout(() => {\r\n let cultura = this.cookieService.get('ucultura') || 'es-AR'\r\n // @ts-ignore\r\n google.accounts.id.renderButton(\r\n // @ts-ignore\r\n document.getElementById(\"google-button\"),\r\n { theme: \"outline\", size: \"medium\", width: \"300px\", text: \"continue_with\", locale: cultura, logo_alignment: \"center\" }\r\n );\r\n }, 10);\r\n }\r\n\r\n cambiarTemplate(value: boolean) {\r\n this.template_login = value;\r\n this.template_recupero_contrasena = !value;\r\n }\r\n\r\n templateUsuarioMultiEmpresa(value: boolean) {\r\n this.template_usuario_multiempresa = value;\r\n this.template_login = !value;\r\n }\r\n\r\n textoTooltipContrasena(complejidad: string) {\r\n switch (complejidad) {\r\n case 'Baja':\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_BAJA');\r\n break;\r\n case 'Media':\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_MEDIA');\r\n break;\r\n case 'Alta':\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_ALTA');\r\n break;\r\n default:\r\n break;\r\n }\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONSEJO_CAMBIO_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('NO_UTILIZAR_PALABRAS_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONSEJO_LA_MEJOR_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONTRASEÑA_INTRANSFERIBLE');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('NO_REUTILIZAR_CONTRASENAS');\r\n }\r\n\r\n loginMultiEmpresa() {\r\n this.borrarToast();\r\n this.userInfo.cliente.id = this.clienteSeleccionado.id;\r\n this.userInfo.cliente.idPais = this.clienteSeleccionado.idPais;\r\n this.userInfo.cliente.razonSocial = this.clienteSeleccionado.razonSocial;\r\n\r\n this.authService.getLoginMultiEmpresa(this.userInfo, this.usaCredencialesSociales).subscribe(async (respuesta) => {\r\n this.userInfo = respuesta;\r\n sessionStorage.removeItem('token');\r\n sessionStorage.setItem('token', this.userInfo.jwt);\r\n await this.setClientesHolding();\r\n this.setFunciones();\r\n if (this.redirectHelper.tengoQueRedireccionar()) {\r\n this.redirectHelper.redirect();\r\n } else {\r\n this.recuperarMensajesUsuario();\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n if (this.intentos !== 0 && mensaje === \"USUARIO_CONTRASENA_INCORRECTO\") {\r\n mensaje = \"USUARIO_CONTRASENA_INCORRECTO_DOS\"\r\n }\r\n this.intentos++;\r\n this.toastr.error(this.translate.instant(mensaje), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n });\r\n }\r\n\r\n async setClientesHolding() {\r\n await this.authService.getClientesHoldingFromApi();\r\n }\r\n\r\n setFunciones() {\r\n this.authService.getFuncionesFromToken();\r\n }\r\n\r\n setPantallasMigradas() {\r\n this.authService.getPantallasMigradasFromApi();\r\n }\r\n\r\n setIdiomaDespuesLogin(cultura: string) {\r\n var lang = this.authService.getUserData()?.Cultura;\r\n this.translate.use(lang || 'es-AR');\r\n this.cookieService.set('ucultura', lang || 'es-AR', { path: '/', secure: true, sameSite: \"Strict\" });\r\n }\r\n\r\n recuperoContrasena(value: boolean) {\r\n\r\n this.seteoVariables();\r\n if (isNullOrEmptyOrUndefined(this.email)) {\r\n this.toastr.error(this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n this.emailControl.markAsTouched();\r\n return;\r\n }\r\n\r\n let body = {\r\n usuario: this.email,\r\n rtu: ''\r\n }\r\n\r\n this.authService.getRecuperarContrasena(body).subscribe((respuesta) => {\r\n //muestro el template de envio de recupero\r\n this.recuperoContrasenaTemplateOk(true);\r\n this.startCountdownRecoveryPassoword(59);\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n this.toastr.error(this.translate.instant(mensaje), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n }\r\n );\r\n }\r\n\r\n borrarToast() {\r\n this.toastr.toasts.forEach(cada => {\r\n this.toastr.remove(cada.toastId);\r\n });\r\n }\r\n\r\n @HostListener('document:keydown.enter')\r\n onKeydownHandler() {\r\n this.toastr.clear();\r\n if (this.template_login) this.login();\r\n if (this.template_recupero_contrasena) this.recuperoContrasena(true);\r\n if (this.template_nueva_contrasena) this.nuevaContrasena(true);\r\n }\r\n\r\n recuperoContrasenaTemplateOk(value: boolean) {\r\n this.template_login = !value;\r\n this.template_recupero_contrasena = !value;\r\n this.template_recupero_contrasena_ok = value;\r\n }\r\n\r\n private startCountdownRecoveryPassoword(seconds: number) {\r\n let counter = seconds;\r\n\r\n const interval = setInterval(() => {\r\n this.segundosRestantes = counter;\r\n counter--;\r\n\r\n if (counter < 0) {\r\n clearInterval(interval);\r\n this.ver_reenviar = false;\r\n }\r\n }, 1000);\r\n }\r\n\r\n seteoVariables() {\r\n this.ver_reenviar = true;\r\n this.segundosRestantes = 60;\r\n this.toastr.clear();\r\n };\r\n\r\n guardar() {\r\n this.borrarToast();\r\n this.ver_terminos_condiciones = this.terminos_condiciones ? false : true; // Si esta adentro del if. El mat hint solo desaparece si vuelve a entrar en el if, sino queda siempre visible\r\n if (isNullOrEmptyOrUndefined(this.emailControl.value)\r\n || isNullOrEmptyOrUndefined(this.passwordNuevaControl.value)\r\n || isNullOrEmptyOrUndefined(this.repasswordControl.value)) {\r\n this.toastr.error(this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n this.emailControl.markAsTouched();\r\n this.passwordNuevaControl.markAsTouched();\r\n this.repasswordControl.markAsTouched();\r\n return;\r\n }\r\n\r\n if (this.passwordNuevaControl.value != this.repasswordControl.value) {\r\n this.toastr.error(this.translate.instant('CONTRASENAS_NO_COINCIDEN'), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n return;\r\n }\r\n //Verifica contraseña corta\r\n if (this.passwordNuevaControl.value.length < this.minLengt) {\r\n this.contrasena_corta = true;\r\n this.toastr.error(this.translate.instant('PorFavorVerifiqueLosDatosIngresados' + ''), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n return;\r\n }\r\n this.contrasena_corta = false;\r\n\r\n if (!this.chekPasswordValueService.tieneMayuscula(this.passwordNuevaControl.value) ||\r\n !this.chekPasswordValueService.tieneMinuscula(this.passwordNuevaControl.value) ||\r\n (this.contrasena.complejidadHashDescripcion == 'Media' && (this.passStrength < 2 ||\r\n !this.chekPasswordValueService.complegidadMedia(this.passwordNuevaControl.value))) ||\r\n (this.contrasena.complejidadHashDescripcion == 'Alta' && (this.passStrength < 2 ||\r\n !this.chekPasswordValueService.complejidadAlta(this.passwordNuevaControl.value)))) {\r\n\r\n this.toastr.error(this.translate.instant('CONTRASENA_NO_CUMPLE_REQ_SEG') + ': ' + this.complejidadContrasena, '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n return;\r\n }\r\n\r\n let param = {\r\n usuario: this.contrasena.usuario,\r\n rtu: this.contrasena.rtu,\r\n ff: this.contrasena.ff,\r\n contrasena: this.passwordNuevaControl.value,\r\n repeticionContrasena: this.repasswordControl.value\r\n }\r\n\r\n this.authService.postGenerarNuevaContrasena(param).subscribe((res) => {\r\n this.googleAnalyticsEventsService.emitEvent('Registrarse', 'Correo electronico', null, 0);\r\n this.toastr.success(this.translate.instant('NUEVA_CONTRASENA_CREADA'), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n setTimeout(() => {\r\n this.router.navigate(['login']);\r\n }, 1000);\r\n\r\n },\r\n (err) => {\r\n var msj;\r\n var errorMessaje: string[] = err.error.Message.split('=');\r\n\r\n if (errorMessaje.length == 2 && errorMessaje[1] != '') {\r\n msj = errorMessaje[1].slice(1, -1);\r\n } else {\r\n msj = \"ERROR_APLICACION\";\r\n }\r\n this.toastr.error(this.translate.instant(msj), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n });\r\n }\r\n\r\n\r\n guardarCredencialesSociales(auth: AuthenticationResult) {\r\n let param = {\r\n usuario: this.contrasena.usuario,\r\n rtu: this.contrasena.rtu,\r\n ff: this.contrasena.ff,\r\n contrasena: this.passwordNuevaControl.value,\r\n repeticionContrasena: this.repasswordControl.value\r\n }\r\n\r\n this.authService.postGenerarUsuarioCredencialesSociales(param).subscribe((res) => {\r\n this.afterCredenciales(auth)\r\n },\r\n (err) => {\r\n var msj;\r\n var errorMessaje: string[] = err.error.Message.split('=');\r\n\r\n if (errorMessaje.length == 2 && errorMessaje[1] != '') {\r\n msj = errorMessaje[1].slice(1, -1);\r\n } else {\r\n msj = \"ERROR_APLICACION\";\r\n }\r\n this.toastr.error(this.translate.instant(msj), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n });\r\n }\r\n\r\n async callback_login_google(json: any) {\r\n // console.log(\"JSON\", json);\r\n let token = jwtDecode(json) as any;\r\n // console.log(token);\r\n let auth = { account: { username: token.email } } as AuthenticationResult;\r\n if (token.email_verified) {\r\n if (this.template_nuevo_credencial_o_contrasena) {\r\n // En el caso de que es un usuario nuevo, se debe actualizar los datos del usuario\r\n this.googleAnalyticsEventsService.emitEvent('Registrarse', 'Google', null, 0);\r\n this.guardarCredencialesSociales(auth);\r\n\r\n } else {\r\n this.afterCredenciales(auth);\r\n\r\n }\r\n }\r\n }\r\n\r\n login_google() {\r\n if (!this.template_nuevo_credencial_o_contrasena) {\r\n this.googleAnalyticsEventsService.emitEvent('Login', 'Boton Google', null, 0);\r\n }\r\n\r\n // Crea un boton falso de google para poder hacer click\r\n const createFakeGoogleWrapper = () => {\r\n const googleLoginWrapper = document.createElement(\"div\");\r\n // Or you can simple hide it in CSS rule for custom-google-button\r\n googleLoginWrapper.style.display = \"none\";\r\n googleLoginWrapper.classList.add(\"custom-google-button\");\r\n\r\n // Add the wrapper to body\r\n document.body.appendChild(googleLoginWrapper);\r\n\r\n // Use GSI javascript api to render the button inside our wrapper\r\n // You can ignore the properties because this button will not appear\r\n google.accounts.id.renderButton(googleLoginWrapper, {\r\n type: \"icon\",\r\n width: \"200\",\r\n });\r\n\r\n const googleLoginWrapperButton = googleLoginWrapper.querySelector(\"div[role=button]\");\r\n\r\n return {\r\n click: () => {\r\n // @ts-ignore\r\n googleLoginWrapperButton.click();\r\n },\r\n };\r\n };\r\n // Now we have a wrapper to click\r\n const googleButtonWrapper = createFakeGoogleWrapper();\r\n googleButtonWrapper.click();\r\n }\r\n\r\n login_microsoft() {\r\n if (!this.template_nuevo_credencial_o_contrasena) {\r\n this.googleAnalyticsEventsService.emitEvent('Login', 'Boton Microsoft', null, 0);\r\n }\r\n this.authMsalService.loginPopup()\r\n .subscribe({\r\n next: async (result) => {\r\n this.ver_terminos_condiciones = this.terminos_condiciones ? false : true;\r\n if (this.template_nuevo_credencial_o_contrasena && this.terminos_condiciones == false) {\r\n // Si no acepto los terminos y condiciones, no hago nada\r\n this.toastr.error(this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n return;\r\n }\r\n\r\n this.authMsalService.instance.setActiveAccount(result.account);\r\n let email = await this.getUserMicrosoft(true)\r\n let auth = { account: { username: email } } as AuthenticationResult;\r\n if (this.template_nuevo_credencial_o_contrasena) {\r\n this.googleAnalyticsEventsService.emitEvent('Registrarse', 'Microsoft', null, 0);\r\n // En el caso de que es un usuario nuevo, se debe actualizar los datos del usuario\r\n this.guardarCredencialesSociales(auth);\r\n\r\n } else {\r\n this.afterCredenciales(auth);\r\n\r\n }\r\n },\r\n error: (error) => {\r\n //console.log(error)\r\n //esta key es la que controla el estado del logeo\r\n localStorage.removeItem('msal.interaction.status');\r\n sessionStorage.removeItem('msal.interaction.status');\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n private async getUserMicrosoft(authenticated: boolean): Promise {\r\n if (!authenticated) return undefined;\r\n\r\n // Create an authentication provider for the current user\r\n const authProvider = new AuthCodeMSALBrowserAuthenticationProvider(\r\n this.authMsalService.instance as PublicClientApplication,\r\n {\r\n account: this.authMsalService.instance.getActiveAccount()!,\r\n scopes: ['user.read'],\r\n interactionType: InteractionType.Popup,\r\n },\r\n );\r\n\r\n // Initialize the Graph client\r\n this.graphClient = Client.initWithMiddleware({\r\n authProvider: authProvider,\r\n });\r\n\r\n // Get the user from Graph (GET /me)\r\n const graphUser: MicrosoftGraph.User = await this.graphClient\r\n .api('/me')\r\n .select('displayName,mail,userPrincipalName')\r\n .get();\r\n\r\n return graphUser.mail ?? graphUser.userPrincipalName ?? '';\r\n }\r\n\r\n afterCredenciales(result: AuthenticationResult) {\r\n\r\n //verificar si existe el usuario en DPT, login\r\n let body = {\r\n usuario: result.account?.username,\r\n rtu: ''\r\n }\r\n\r\n this.usaCredencialesSociales = true;\r\n this.authService.getUser(body, true).subscribe(async (respuesta) => {\r\n\r\n this.userInfo = respuesta;\r\n // let authResult = respuesta as AuthenticationResult;\r\n // this.authMsalService.instance.setActiveAccount(authResult.account);\r\n if (this.userInfo.jwt != null) {\r\n // nota del dev: la linea de featureToggle DEBE ser comentada en la rama de dev. NO borrar, gracias.\r\n // await this.featureToggleService.obtenerFeatureToggles();\r\n // @ts-ignore\r\n if (!this.jwtService.getToken(this.userInfo.jwt)?.userdata?.UsaSocialLogin) {\r\n await this.mostrarPopUpPrimerCredencialSocial();\r\n } else {\r\n await this.afterCredenciales_multiempresa_o_home();\r\n }\r\n }\r\n\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n if (this.intentos !== 0 && mensaje === \"USUARIO_CONTRASENA_INCORRECTO\") {\r\n mensaje = \"USUARIO_CONTRASENA_INCORRECTO_DOS\"\r\n }\r\n this.intentos++;\r\n\r\n this.genericToasterService.pushError(mensaje, '', true, \"login\");\r\n\r\n //element?.classList.remove(\"loading\");\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n this.emailControl.enable()\r\n this.passwordControl.enable()\r\n });\r\n }\r\n\r\n async afterCredenciales_multiempresa_o_home() {\r\n if(this.userInfo.estadoUsuario != \"Activo\"){\r\n let param = {\r\n id: this.jwtService.getToken(this.userInfo.jwt)?.userdata?.Id,\r\n idPais : this.jwtService.getToken(this.userInfo.jwt)?.userdata?.IdPais\r\n }\r\n this.usuarioService.ActualizarEstadoActivo(param).subscribe(x => {\r\n \r\n });\r\n }\r\n\r\n\r\n if (this.userInfo.clientesParaMultiEmpresa.length > 1) {\r\n this.setIdiomaDespuesLogin(this.userInfo.cultura);\r\n this.templateUsuarioMultiEmpresa(true);\r\n }\r\n else {\r\n sessionStorage.setItem('token', this.userInfo.jwt);\r\n await this.setClientesHolding();\r\n this.setFunciones();\r\n this.setIdiomaDespuesLogin(this.userInfo.cultura);\r\n if (this.redirectHelper.tengoQueRedireccionar()) {\r\n this.redirectHelper.redirect();\r\n } else {\r\n this.recuperarMensajesUsuario();\r\n }\r\n }\r\n }\r\n _habilitarBotones() {\r\n if (this.terminos_condiciones) {\r\n // @ts-ignore\r\n google.accounts.id.renderButton(\r\n // @ts-ignore\r\n document.getElementById(\"google-button\"),\r\n { theme: \"outline\", size: \"medium\", width: \"300px\", text: \"continue_with\", locale: this.cookieService.get('ucultura') || 'es-AR', logo_alignment: \"center\" }\r\n );\r\n }\r\n }\r\n\r\n habilitarBotones() {\r\n if (this.terminos_condiciones == false) {\r\n\r\n var input_microsoft = document.getElementById(\"google-button-front\") ?? new HTMLElement();\r\n input_microsoft.style.opacity = \"0.6\";\r\n input_microsoft.style.pointerEvents = \"none\";\r\n\r\n var input_microsoft = document.getElementById(\"microsoft-button\") ?? new HTMLElement();\r\n input_microsoft.style.opacity = \"0.6\";\r\n input_microsoft.style.pointerEvents = \"none\";\r\n\r\n var input_sso = document.getElementById(\"sso-button\") ?? new HTMLElement();\r\n input_sso.style.opacity = \"0.6\";\r\n input_sso.style.pointerEvents = \"none\";\r\n }\r\n\r\n if (this.terminos_condiciones) {\r\n var input_microsoft = document.getElementById(\"google-button-front\") ?? new HTMLElement();\r\n input_microsoft.style.opacity = \"1\";\r\n input_microsoft.style.pointerEvents = \"auto\";\r\n\r\n var input_microsoft = document.getElementById(\"microsoft-button\") ?? new HTMLElement();\r\n input_microsoft.style.opacity = \"1\";\r\n input_microsoft.style.pointerEvents = \"auto\";\r\n\r\n var input_sso = document.getElementById(\"sso-button\") ?? new HTMLElement();\r\n input_sso.style.opacity = \"1\";\r\n input_sso.style.pointerEvents = \"auto\";\r\n }\r\n\r\n }\r\n\r\n boton_sso() {\r\n if (!this.template_nuevo_credencial_o_contrasena) {\r\n this.googleAnalyticsEventsService.emitEvent('Login', 'Boton SSO', null, 0);\r\n }\r\n this.template_login = false;\r\n this.template_recupero_contrasena = false;\r\n this.template_nueva_contrasena = false;\r\n this.template_usuario_multiempresa = false;\r\n this.template_recupero_contrasena_ok = false;\r\n this.template_nuevo_credencial_o_contrasena = false;\r\n this.template_sso = true;\r\n this.hint_sso = false;\r\n this.emailControl.setErrors(null);\r\n this.emailControl.markAsUntouched();\r\n }\r\n login_sso() {\r\n if (isNullOrEmptyOrUndefined(this.email)) {\r\n this.genericToasterService.pushError(this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS'), '', true, \"login\");\r\n this.emailControl.markAsTouched();\r\n return;\r\n }\r\n this.hint_sso = true;\r\n\r\n this.emailControl.setErrors({ 'incorrect': true });\r\n this.googleAnalyticsEventsService.emitEvent('Login SSO', 'Ingreso SSO', this.email, 0);\r\n }\r\n\r\n private async mostrarPopUpPrimerCredencialSocial() {\r\n const dialogRef = this.dialog.open(PopUpCredencialesComponent, {\r\n autoFocus: true,\r\n scrollStrategy: new NoopScrollStrategy(),\r\n width: '500px',\r\n height: '382px',\r\n maxWidth: '500px',\r\n maxHeight: '382px',\r\n });\r\n dialogRef.afterClosed().pipe(take(1)).subscribe(\r\n async result => {\r\n if (result) {\r\n // guardar usa credenciales\r\n let param = {\r\n id: this.jwtService.getToken(this.userInfo.jwt)?.userdata?.Id,\r\n idPais : this.jwtService.getToken(this.userInfo.jwt)?.userdata?.IdPais\r\n }\r\n this.authService.actualizarUsaSocialLogin(param).pipe(take(1)).subscribe( async x => {\r\n await this.afterCredenciales_multiempresa_o_home();\r\n });\r\n \r\n \r\n } else {\r\n // mandarlo a login\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n }\r\n }\r\n );\r\n\r\n }\r\n}\r\n","
\r\n \r\n \"Planexware\"\r\n\r\n
\r\n\r\n\r\n\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit, Optional } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-popup-credenciales',\r\n templateUrl: './popup-credenciales.component.html',\r\n styleUrls: ['./popup-credenciales.component.scss']\r\n})\r\nexport class PopUpCredencialesComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n aceptar() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n rechazar() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{\"CREDENCIALES_SOCIALES_TEXTO_IRREVERSIBLE\" | translate}}

\r\n
\r\n
\r\n

{{\"DeseaContinuar\" | translate}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component,OnInit } from '@angular/core'\r\nimport { TranslateService } from '@ngx-translate/core'\r\nimport { Router, NavigationEnd } from '@angular/router'\r\nimport { ToasterService } from 'src/app/core/services/toaster.service'\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service'\r\nimport { AuthService } from 'src/app/core/services/auth.service'\r\n\r\n@Component({\r\n selector: 'app-main-k360',\r\n templateUrl: './main-k360.component.html',\r\n styleUrls: ['./main-k360.component.scss']\r\n})\r\nexport class MainK360Component implements OnInit {\r\n public paisKey: string = \"\";\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n public toasterService: ToasterService,\r\n public genericToasterService: GenericToasterService,\r\n public authService: AuthService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.isAuthenticated();\r\n if(this.router.url == '/main'){\r\n this.router.navigate(['/main/home']);\r\n }\r\n\r\n let html = document.getElementsByTagName(\"app-root\")[0];\r\n let url = window.location.pathname;\r\n\r\n url.includes(\"login\") && html.classList.contains(\"no-login\") == false\r\n ? html.classList.add(\"login\") : html.classList.add(\"no-login\")\r\n\r\n if(url.includes(\"main\") )\r\n html.classList.remove(\"login\")\r\n\r\n this.authService.getPais().subscribe(\r\n async result => {\r\n this.paisKey = result.nombrePais;\r\n }\r\n );;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, HostListener, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { Cliente } from '../clientes-mixtos/modelos/Cliente';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { isNullOrEmptyOrUndefined } from '../../shared/utils/utils.component';\r\nimport { GoogleAnalyticsEventsService } from '../../core/services/google-analytics-events.service';\r\n\r\nimport { NumericConfig } from '@rxweb/reactive-form-validators/models/config';\r\nimport { environment } from '../../../environments/environment';\r\nimport { MensajeService } from 'src/app/core/services/mensaje.service';\r\nimport { MensajeHTMLView } from '../novedades/models/mensajeHTMLView';\r\nimport { ToasterService } from 'src/app/core/services/toaster.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-mensaje-critico',\r\n templateUrl: './mensaje-critico.component.html',\r\n styleUrls: ['./mensaje-critico.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MensajeCriticoComponent implements OnInit {\r\n\r\n public mensajes: MensajeHTMLView[];\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private router: Router,\r\n private totasterService: ToasterService,\r\n private authService: AuthService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private mensajeService: MensajeService) { }\r\n\r\n ngOnInit(): void {\r\n this.mensajeService.getMensajeUser_ResourceKey('MsjCritico').subscribe((x: MensajeHTMLView[]) => {\r\n\r\n let userData = this.authService.getUserData();\r\n var razonSocial = userData?.Cliente.RazonSocial ?? \"\";\r\n if(x[0].tipoMensaje == 'Revision') {\r\n this.googleAnalyticsEventsService.emitEvent('Mensaje Crítico', 'Revision usuario', 'mostar', 0);\r\n razonSocial = (userData?.Apellido ?? \"\") + ', ' + (userData?.Nombre ?? \"\");\r\n }\r\n \r\n // var savedName: any = x.map(e => e.mensaje.replace(\"{0}\", razonSocial));\r\n x.forEach(e => {\r\n e.mensaje = e.mensaje.replace(\"{0}\", razonSocial)\r\n this.googleAnalyticsEventsService.emitEvent('Mensaje Bloqueante' + (e.resourceKey != '' ? ' - Automático' : ' - Manual'), 'Mostrar', e, true);\r\n });\r\n\r\n\r\n this.mensajes = x\r\n });\r\n\r\n setTimeout(() => {\r\n var test = document.getElementsByClassName(\"numero\");\r\n for (let i = 0; i < test.length; i++) {\r\n test[i].innerHTML = (i + 1).toString()\r\n }\r\n var arr: any = document.getElementById(\"mensaje.mensaje\")?.getElementsByTagName(\"a\");\r\n for (let i = 0; i < arr.length; i++) {\r\n arr[i].setAttribute('target', '_blank');\r\n }\r\n }, 300)\r\n\r\n }\r\n\r\n cerrarMensaje(mensaje: MensajeHTMLView): void {\r\n this.googleAnalyticsEventsService.emitEvent('Mensaje Bloqueante' + (mensaje.resourceKey != '' ? ' - Automático' : ' - Manual'), 'Cerrar', mensaje, true);\r\n mensaje.resourceKey = 'CierreCrit'; // Se usa para grabar log de auditoria\r\n mensaje.mensaje = ''; //Se aplica para no grabar el mensaje en auditoria. Se envia Id en su lugar.\r\n this.mensajeService.cerrarMensajeUsuario(mensaje).subscribe(x => {\r\n this.mensajes.splice(this.mensajes.indexOf(mensaje), 1);\r\n if (this.mensajes.length === 0) {\r\n if (mensaje.bloqueante) {\r\n // En caso de ser el mensaje de renovacion de abono y cerrarlo. Te saca\r\n sessionStorage.removeItem('token');\r\n this.router.navigate(['/']);\r\n }\r\n else {\r\n this.totasterService.getMessages();\r\n this.authService.getRecuperarAvisoCambioContrasena().subscribe((respuesta) => {\r\n respuesta = respuesta;\r\n if (respuesta.value !== null && !this.authService.getUserData()?.UsaSocialLogin) {\r\n var mensaje = this.translate.instant('FALTAN_N_DIAS_VENCIMIENTO_CONTRASENA') + respuesta.value + this.translate.instant('FALTAN_N_DIAS_VENCIMIENTO_CONTRASENA_2');\r\n var toasterMessage: any = {\r\n //resourceKey?: string;\r\n id: 0,\r\n mensaje: mensaje,\r\n tipoMensaje: \"info\",\r\n bloqueante: false,\r\n visibleEnCadaLogin: true\r\n }\r\n this.totasterService.pushMessage(toasterMessage);\r\n }\r\n this.router.navigate(['main/home']);\r\n });\r\n }\r\n ;\r\n }\r\n });\r\n }\r\n renovarAbono() {\r\n this.router.navigate(['/main/renovacion/datosBasicos']);\r\n }\r\n revisionUsuario(){\r\n this.googleAnalyticsEventsService.emitEvent('Mensaje Crítico', 'Revision usuario', 'Realizar revision', 0);\r\n this.router.navigate(['/main/configuraciones/31/admUsuariosCorporativos'])\r\n }\r\n cerrarMensajeRevision(mensaje: MensajeHTMLView): void {\r\n this.googleAnalyticsEventsService.emitEvent('Mensaje Crítico', 'Revision usuario', 'Ahora no', 0);\r\n this.cerrarMensaje(mensaje);\r\n }\r\n}\r\n","
\r\n \r\n \"Planexware\"\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n RENOVAR_ABONO\r\n \r\n \r\n AHORA_NO\r\n \r\n
\r\n
\r\n\r\n \r\n {{ (\"GESTIONAR_USUARIO\" | translate).toUpperCase()}}\r\n \r\n\r\n \r\n {{ (\"AHORA_NO\" | translate).toUpperCase()}}\r\n \r\n\r\n
\r\n \r\n CERRAR\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { Contrasena } from '../login/Models/Contrasena';\r\nimport { RecuperarContrasena } from './models/RecuperarContrasena';\r\nimport { ConfiguracionSeguridadService } from '../configuracion-seguridad/servicios/configuracion-seguridad.service';\r\nimport { JwtService } from 'src/app/core/services/jwt.service';\r\nimport { ChekPasswordValueService } from 'src/app/core/helpers/chekPasswordValue.service';\r\n\r\n@Component({\r\n selector: 'app-modificar-contrasena',\r\n templateUrl: './modificar-contrasena.component.html',\r\n styleUrls: ['./modificar-contrasena.component.scss']\r\n})\r\nexport class ModificarContrasenaComponent implements OnInit {\r\n\r\n urlsprtu: string | null = \"\";\r\n urlspff: string | null = \"\";\r\n\r\n formModificarContrasena: FormGroup;\r\n tooltip_contrasena: string;\r\n passStrength: number;\r\n loginOk: boolean = false;\r\n\r\n public showPassword: boolean = false;\r\n public showPasswordNew: boolean = false;\r\n public showPasswordRepeat: boolean = false;\r\n\r\n postRenovarContrasena: any;\r\n public showCheck: boolean = false;\r\n contrasena: Contrasena;\r\n password: string;\r\n flagGuardar = false;\r\n contrasenaDebePoseer = '';\r\n minLengh = 8;\r\n\r\n complejidadContrasena: string;\r\n complejidadDelCliente: number;\r\n\r\n icono = \"clear\"\r\n usaSocialLogin = false;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private translate: TranslateService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private configuracionSeguridadService: ConfiguracionSeguridadService,\r\n private jwtService: JwtService,\r\n private chekPasswordValueService: ChekPasswordValueService) { }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n this.cargarConfig();\r\n\r\n this.toggleCheckVisibility();\r\n let html = document.getElementsByTagName(\"app-root\")[0];\r\n let url = window.location.pathname;\r\n\r\n (url.includes(\"login\") || url.includes(\"contrasena\")) && html.classList.contains(\"no-login\") == false\r\n ? html.classList.add(\"login\") : html.classList.add(\"no-login\")\r\n\r\n if(url.includes(\"login\") ){\r\n html.classList.remove(\"no-login\")\r\n html.classList.add(\"login\")\r\n }\r\n this.checkNewPassword();\r\n this.usaSocialLogin = this.authService.getUserData()?.UsaSocialLogin?? false;\r\n }\r\n\r\n createForm(){\r\n this.formModificarContrasena = this.formBuilder.group({\r\n contrasenaActual: ['', Validators.required],\r\n contrasenaNueva: ['', Validators.required],\r\n repeticionContrasena: ['', Validators.required],\r\n });\r\n }\r\n\r\n get formContrasenaNueva() {\r\n return this.formModificarContrasena.get('contrasenaNueva') as FormControl;\r\n }\r\n\r\n checkNewPassword(){\r\n this.formContrasenaNueva?.valueChanges.subscribe(data => {\r\n if(data != undefined || data != null)\r\n {\r\n this.validateNewPassword(data);\r\n }\r\n })\r\n }\r\n\r\n validateNewPassword(data: any){\r\n switch (this.complejidadDelCliente) {\r\n case 1:\r\n if(data.length > 7 && this.chekPasswordValueService.tieneMayuscula(data) && this.chekPasswordValueService.tieneMinuscula(data))\r\n {\r\n this.icono = \"done\"\r\n }else{\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n case 2:\r\n if(data.length > 7 && this.chekPasswordValueService.complegidadMedia(data))\r\n {\r\n this.icono = \"done\"\r\n }else{\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n case 3:\r\n if(this.chekPasswordValueService.complejidadAlta(data))\r\n {\r\n this.icono = \"done\"\r\n }else{\r\n this.icono = \"clear\"\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n cargarConfig(){\r\n this.configuracionSeguridadService.getConfiguracionSeguridad(this.jwtService.getAccessToken()?.userdata?.Cliente ?? null).subscribe((respuesta: any) => {\r\n switch (respuesta.complejidadHash.id) {\r\n case 1:\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_BAJA');\r\n this.complejidadDelCliente = 1\r\n break;\r\n case 2:\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_MEDIA');\r\n this.complejidadDelCliente = 2\r\n break;\r\n case 3:\r\n this.complejidadContrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_ALTA');\r\n this.complejidadDelCliente = 3\r\n break;\r\n default:\r\n break;\r\n }\r\n this.textoTooltipContrasena(respuesta.complejidadHash.id)\r\n });\r\n }\r\n\r\n getPassword(){\r\n this.flagGuardar = true;\r\n this.borrarToast();\r\n let userData = this.authService.getUserData();\r\n let login = {\r\n usuario: userData?.Email,\r\n contrasena: this.formModificarContrasena.get('contrasenaActual')?.value\r\n }\r\n var mensaje = this.translate.instant('CONTRASENA_NO_CUMPLE_REQ_SEG')+': '+this.complejidadContrasena;\r\n if(this.formModificarContrasena.controls.contrasenaActual.value.length === 0 || this.formModificarContrasena.controls.contrasenaNueva.value.length === 0 || this.formModificarContrasena.controls.repeticionContrasena.value.length === 0){\r\n this.toastr.error(this.translate.instant(\"POR_FAVOR_COMPLETE_TODOS_LOS_DATOS\"), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n } else if(this.formModificarContrasena.controls.contrasenaActual.value.length < 8 || this.formModificarContrasena.controls.contrasenaNueva.value.length < 8 || this.formModificarContrasena.controls.repeticionContrasena.value.length < 8){\r\n this.toastr.error(mensaje, '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n }\r\n else if(this.formModificarContrasena.get('contrasenaNueva')?.value != this.formModificarContrasena.get('repeticionContrasena')?.value){\r\n this.toastr.error(this.translate.instant(\"CONTRASENAS_NO_COINCIDEN\"), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n }\r\n else{\r\n this.authService.getLogin(login).subscribe((respuesta: any) => {\r\n this.loginOk = true;\r\n this.getRecuperoContrasena();\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n if(mensaje === \"USUARIO_CONTRASENA_INCORRECTO\"){\r\n mensaje = \"CONTRASENA_ACTUAL_INCORRECTA\"\r\n }else{\r\n mensaje = \"POR_FAVOR_COMPLETE_TODOS_LOS_DATOS\"\r\n }\r\n this.toastr.error(this.translate.instant(mensaje), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n }); \r\n });\r\n\r\n }\r\n }\r\n\r\n getRecuperoContrasena() {\r\n let userData = this.authService.getUserData();\r\n\r\n let recuperarContrasena = {\r\n usuario: userData?.Email,\r\n rtu: \"\",\r\n NoEnvioMail: true\r\n }\r\n\r\n this.authService.getRecuperarContrasena(recuperarContrasena).subscribe((pass: RecuperarContrasena) => {\r\n let url = new URL(pass.rtu);\r\n let urlsp = url.searchParams;\r\n //Cargo demas datos para renovar contraseña\r\n this.urlsprtu = urlsp.get(\"rtu\");\r\n this.urlspff = urlsp.get(\"ff\");\r\n this.postContrasena();\r\n },\r\n (err: HttpErrorResponse) => {\r\n var mensaje = err.error.Message;\r\n if (mensaje === \"PorFavorVerifiqueLosDatosIngresados\") {\r\n mensaje = \"PorFavorVerifiqueLosDatosIngresados\"\r\n }\r\n this.toastr.error(this.translate.instant(mensaje), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n });\r\n }\r\n\r\n postContrasena() {\r\n let userData = this.authService.getUserData();\r\n let body = {\r\n usuario: userData?.Email,\r\n contrasena: this.formModificarContrasena.get('contrasenaNueva')?.value,\r\n repeticionContrasena: this.formModificarContrasena.get('repeticionContrasena')?.value,\r\n rtu: this.urlsprtu,\r\n ff: userData?.Email,\r\n complejidadHashDescripcion: \"\",\r\n estadoPendiente: true,\r\n NoEnvioMail: true\r\n }\r\n\r\n this.authService.postGenerarNuevaContrasena(body).subscribe(data => {\r\n this.toastr.success(this.translate.instant('NUEVA_CONTRASENA_CREADA'), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n setTimeout(() => {\r\n this.router.navigate(['main/home']);\r\n }, 1000);\r\n\r\n },\r\n (err) => {\r\n var msj;\r\n var mensaje = this.translate.instant('CONTRASENA_NO_CUMPLE_REQ_SEG') + ': ' + this.complejidadContrasena;\r\n switch (err.error.Message) {\r\n case \"Error with Message='CONTRASENA_NO_CUMPLE_REQ_SEG'\":\r\n msj = mensaje;\r\n break;\r\n case \"Error with Message='CONTRASENA_UTILIZADA_ANTERIORMENTE'\":\r\n msj = \"CONTRASENA_UTILIZADA_ANTERIORMENTE\";\r\n break;\r\n default:\r\n msj = \"ERROR_APLICACION\";\r\n break;\r\n }\r\n this.toastr.error(this.translate.instant(msj), '', {\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n });\r\n });\r\n }\r\n\r\n strengthChange(value: number) {\r\n this.passStrength = value;\r\n };\r\n\r\n textoTooltipContrasena(complejidad: number) {\r\n\r\n switch (complejidad) {\r\n case 1:\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_BAJA');\r\n break;\r\n case 2:\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_MEDIA');\r\n break;\r\n case 3:\r\n this.tooltip_contrasena = this.translate.instant('COMPLEJIDAD_CONTRASENA_ALTA');\r\n break;\r\n default:\r\n break;\r\n }\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONSEJO_CAMBIO_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('NO_UTILIZAR_PALABRAS_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONSEJO_LA_MEJOR_CONTRASENA');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('CONTRASEÑA_INTRANSFERIBLE');\r\n this.tooltip_contrasena += \" \\n\\n\" + this.translate.instant('NO_REUTILIZAR_CONTRASENAS');\r\n }\r\n\r\n\r\n public togglePasswordVisibility(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n public togglePasswordVisibilityNew(): void {\r\n this.showPasswordNew = !this.showPasswordNew;\r\n }\r\n\r\n public togglePasswordVisibilityRepet(): void {\r\n this.showPasswordRepeat = !this.showPasswordRepeat;\r\n }\r\n\r\n public toggleCheckVisibility(): void {\r\n if (this.formModificarContrasena.get('contrasenaNueva')?.value.length >= 8) {\r\n this.showCheck = true;\r\n }\r\n }\r\n\r\n validatePassRepeat() {\r\n if (this.flagGuardar && this.formModificarContrasena.controls.repeticionContrasena.value === '') { // Primero valido que hayan completado el campo\r\n return this.translate.instant('POR_FAVOR_COMPLETE_TODOS_LOS_DATOS');\r\n } else if (this.formModificarContrasena.get('contrasenaNueva')?.value != this.formModificarContrasena.get('repeticionContrasena')?.value) {\r\n return this.translate.instant('CONTRASENAS_NO_COINCIDEN');\r\n }\r\n }\r\n\r\n borrarToast() {\r\n this.toastr.toasts.forEach(cada => {\r\n this.toastr.remove(cada.toastId);\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n {{ \"CAMBIO_CONTRASENA\" | translate }}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \"CONTRASENA_ACTUAL\" | translate }} *\r\n \r\n \r\n {{ showPassword ? \"visibility\" : \"visibility_off\" }}\r\n \r\n {{\r\n \"POR_FAVOR_COMPLETE_TODOS_LOS_DATOS\" | translate\r\n }}\r\n \r\n\r\n \r\n {{ \"NUEVA_CONTRASENA\" | translate }} *\r\n \r\n \r\n {{ showPasswordNew ? \"visibility\" : \"visibility_off\" }}\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n {{ complejidadContrasena | translate }}\r\n \r\n \r\n {{ icono }}\r\n \r\n \r\n

\r\n
\r\n
\r\n {{ \"FORTALEZA_CONTRASENA\" | translate }}\r\n \r\n help\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n {{ \"REPITA_NUEVA_CONTRASENA\" | translate }} *\r\n \r\n \r\n {{ showPasswordRepeat ? \"visibility\" : \"visibility_off\" }}\r\n \r\n {{ validatePassRepeat() }}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ \"GUARDAR_Y_VOLVER\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MensajeHTMLView } from './models/mensajeHTMLView';\r\nimport { NovedadesService } from './services/novedades.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-novedades',\r\n templateUrl: './novedades.component.html',\r\n styleUrls: ['./novedades.component.scss']\r\n})\r\nexport class NovedadesComponent implements OnInit {\r\n\r\n detalle: string;\r\n subject: BehaviorSubject;\r\n constructor(private translate: TranslateService,\r\n public novedadesService: NovedadesService,\r\n public authService: AuthService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n //this.translate.currentLang;\r\n this.getMensaje();\r\n }\r\n\r\n getMensaje() {\r\n this.novedadesService.getNovedades().subscribe( (data: MensajeHTMLView) => {\r\n this.subject = new BehaviorSubject(data);\r\n this.detalle = this.subject.value.mensaje;\r\n ////console.log(\"LA DATA DE GET NOVEDADES: \",this.detalle);\r\n })\r\n }\r\n\r\n}\r\n","
\r\n

\r\n {{ \"NOVEDADES_DEL_SISTEMA\" | translate }}\r\n

\r\n
\r\n
\r\n","import { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MensajeHTMLView } from '../models/mensajeHTMLView';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NovedadesService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getNovedades() {\r\n return this.http.get(`${environment.apiUrl}/NovedadesHome/GetNovedades`)\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { LocationStrategy, DOCUMENT } from \"@angular/common\";\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss'],\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n fullURL: string\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private locationStrategy: LocationStrategy,\r\n @Inject(DOCUMENT) private document: Document\r\n ) {\r\n // //console.log('*** ROUTER URL');\r\n // //console.log(router.url);\r\n // //console.log('*** BASE_HREF');\r\n // //console.log(this.locationStrategy.getBaseHref());\r\n // //console.log('FULL URL');\r\n\r\n this.fullURL = `${environment.url}/index.html#${router.url}`\r\n ////console.log('Redirecting to:');\r\n ////console.log(this.fullURL);\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.document.location.href = this.fullURL\r\n // this.router.navigate(['/../v1/legacyComponent']);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-politicas-de-privacidad',\r\n templateUrl: './politicas-de-privacidad.component.html',\r\n styleUrls: ['./politicas-de-privacidad.component.scss']\r\n})\r\nexport class PoliticasDePrivacidadComponent implements OnInit {\r\n\r\n idioma: string;\r\n template: any;\r\n constructor(private translate: TranslateService,\r\n public authService: AuthService,) { }\r\n\r\n ngOnInit(): void {\r\n this.idioma = this.authService.getUserData()?.Cultura || \"es-AR\"\r\n if(this.idioma == \"es-419\"){\r\n this.idioma = \"es-AR\";\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \"Planexware\"\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pyp-br',\r\n templateUrl: './pyp-br.component.html',\r\n styleUrls: ['./pyp-br.component.scss']\r\n})\r\nexport class PypBRComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Políticas de privacidad

\r\n

La presente Política de Privacidad de Datos, tiene por objeto poner en conocimiento de los interesados los alcances de la protección integral de los datos personales asentados en los archivos; registros; bancos o bases de datos; u otros medios técnicos de tratamiento de datos implementados por PLANEXWARE S.A., con domicilio en Alberti 2154 piso 7°, Ciudad Autónoma de Buenos Aires, República Argentina, (en adelante PLANEXWARE), asegurando el respeto al derecho a la intimidad de las personas, así como también al libre acceso a la información que sobre las mismas pueda eventualmente registrarse.

\r\n

PLANEXWARE considera que cualquier tipo de información relativa a una persona es información de carácter personal, y por consiguiente vela en todo momento por la privacidad y confidencialidad de la misma. La confidencialidad de la información implicará su mantenimiento en archivos y/o bancos o bases de datos seguros, de modo tal que el acceso por parte de terceros que no se encuentren autorizados a tal efecto, se encuentre impedido.

\r\n

Para preguntas sobre esta Política o cualquier circunstancia relativa al tratamiento de información de carácter personal, los interesados podrán contactarse a través de cualquiera de estos medios:

\r\n

E-mail:

\r\n

info@planexware.com

\r\n

Correo postal:

\r\n

\r\n Alberti 2154 piso 7°
\r\n C1247AAT
\r\n Ciudad Autónoma de Buenos Aires
\r\n República Argentina
\r\n

\r\n

Las notificaciones y comunicaciones cursadas por PLANEXWARE a la dirección postal o, a la casilla de correo electrónico consignada directamente por el interesado, o aquella que surja como domicilio o dirección de correo del remitente se considerarán eficaces y plenamente válidas. Asimismo, se considerarán eficaces las comunicaciones que consistan en avisos y mensajes insertos en el sitio web de PLANEXWARE www.planexware.com, o que se envíen durante la prestación de un servicio, que tengan por finalidad informar a los usuarios sobre determinada circunstancia.

\r\n

Esta Política de Privacidad refiere a los siguientes aspectos:

\r\n
    \r\n
  • Voluntariedad en la entrega de datos
  • \r\n
  • Datos sensibles
  • \r\n
  • Datos financieros
  • \r\n
  • Autorización de uso de la información personal
  • \r\n
  • Recolección y uso de Información
  • \r\n
  • Qué información recaba PLANEXWARE
  • \r\n
  • Transferencia de la información personal
  • \r\n
  • Divulgación de la información
  • \r\n
  • Lugar físico en donde tiene lugar el tratamiento de los datos personales del usuario
  • \r\n
  • Comunicaciones del Sitio
  • \r\n
  • Derechos de los titulares de los datos
  • \r\n
  • Utilizamos Métodos de Seguridad Apropiados
  • \r\n
  • Cumplimiento de la ley 25.326
  • \r\n
  • Cambios a esta Política
  • \r\n
  • ¿Qué ocurre con su información personal cuando cierra su cuenta con nosotros?
  • \r\n
\r\n

Voluntariedad en la entrega de datos

\r\n

La presente Política está destinada a informar a los interesados acerca del tratamiento de datos personales llevado adelante por PLANEXWARE, con el objeto que libre y voluntariamente determinen la entrega o no, de sus datos personales cuando les sean requeridos o que se puedan obtener a partir de la utilización de alguno de los servicios provistos por PLANEXWARE.

\r\n

Por regla general, cuando para utilizar un servicio o acceder a cierto contenido se solicite algún dato personal, la entrega del mismo no es obligatoria, con excepción de aquellos casos donde específicamente se indicara que es un dato requerido para la prestación del servicio.

\r\n

Datos sensibles

\r\n

PLANEXWARE no recaba datos sensibles de ninguna naturaleza. Si cualquiera de los datos requeridos fueren en el futuro calificados como dato sensible de tipo personal por la Dirección Nacional de Protección de Datos Personales, u otra autoridad competente, ningún usuario estará obligado a la entrega de ese dato a efectos de acceder a los servicios provistos por PLANEXWARE

\r\n

Datos financieros

\r\n

PLANEXWARE no recaba datos financieros de ninguna naturaleza.

\r\n

Autorización de uso de la información personal

\r\n

El cliente o usuario que facilitara sus datos personales, autoriza expresamente a PLANEXWARE para el uso de los datos aportados con los fines aquí expuestos. Implica ello además la aceptación de todos los términos contenidos en esta Política, y en los respectivos contratos de prestación de servicios.

\r\n

Recolección y uso de Información

\r\n

La recolección y tratamiento de datos de carácter personal de los Usuarios tiene por finalidad la prestación, gestión, administración, personalización, actualización y mejora de los productos y servicios puestos a disposición de sus usuarios por parte de PLANEXWARE Es posible asimismo que se utilice la información personal de los Usuarios para todos los fines legales, los cuales pueden incluir, pero sin limitarse a, responder sus solicitudes, procesar transacciones, para fines administrativos.

\r\n

Qué información recaba PLANEXWARE

\r\n

La información recolectada es:

\r\n
    \r\n
  1. Nombre de usuario y contraseña de acceso.
  2. \r\n
  3. También al utilizar los servicios prestados, es posible que PLANEXWARE reciba de parte de los usuarios información no personal como \"referencias de navegación\", direcciones IP, acciones de usuario y distintas variables del entorno.
  4. \r\n
\r\n
\r\n
    \r\n
  • Referencias

    Una \"referencia\" es información que el explorador Web transmite a los servidores de PLANEXWARE y que hace alusión al URL desde el que accede al Sitio.

  • \r\n
  • Dirección IP.

    Al ingresar a PLANEXWARE es posible que se obtenga la dirección IP (Internet Protocol), y el tipo de navegador que utiliza el Usuario. La dirección IP permite además conocer la ubicación geográfica de la computadora o dispositivo de navegación por internet desde el cual se ha accedido a PLANEXWARE, la fecha y hora de acceso. El navegador asimismo puede llegar a permitirnos conocer cuáles son las páginas de internet que el Usuario ha visitado previamente.

  • \r\n
  • Variables de entorno

    Las \"variables del entorno\" son, entre otras cosas, la hora de acceso, el tipo de explorador, el sistema operativo o plataforma que se utilizan, la dirección de Internet o del sitio web que le remite a PLANEXWARE

  • \r\n
  • Acciones de usuario

    Las “acciones de usuario” remiten a la información relativa a la utilización de los recursos ofrecidos por el sitio. Esta información entre otras aspecto podrá referir a los documentos consultados por el usuario así como su cantidad y tipo, los servicios a los cuales acceda el usuario dentro del sitio, a los criterio de búsqueda utilizados, y en general a cualquier otro dato que describa la actividad de los usuarios dentro del sitio. Estos datos podrán almacenarse en forma singular o servir de base para la elaboración de información estadística.

  • \r\n
  • Cookies

    Eventualmente PLANEXWARE puede utilizar cookies, que se instalaran en la computadora del usuario cuando este navegue por el sitio. Tienen por finalidad facilitar la navegación por el sitio al usuario, y proporcionar a PLANEXWARE, información que le ayudará a mejorar sus servicios y contenidos. En ningún caso las cookies utilizadas por PLANEXWARE proporcionarán información de carácter personal del usuario, quien en relación a las mismas mantendrá pleno anonimato, aun frente a PLANEXWARE, dado que tampoco suministran información tendiente a la individualización del usuario. Es intención de PLANEXWARE poner de resalto que para navegar por el sitio, no resulta necesario que el usuario permita la instalación de las cookies enviadas por PLANEXWARE, ello solo podrá requerirse en relación a ciertos servicios y/o contenidos.

  • \r\n
\r\n

Esta información se recopila para uso exclusivamente interno de PLANEXWARE, por ejemplo, para incrementar la seguridad del servicio.

\r\n

Cesión de los datos

\r\n

Todos los datos personales recolectados de los Usuarios, son de uso exclusivamente interno por parte de PLANEXWARE. Toda vez que se recabe información personal como parte de la relación directa con un usuario, en respeto a la privacidad y confidencialidad de los usuarios, PLANEXWARE no cederá ni transferirá esa información personal a ningún tercero que no sea parte de PLANEXWARE, o sus asociados. Únicamente se compartirá con terceros la información personal de los usuarios, en los siguientes casos:

\r\n
    \r\n
  • Cuando exista obligación legal de hacerlo.
  • \r\n
  • Cuando exista una orden emanada de un Juez competente.
  • \r\n
\r\n

Divulgación de la información

\r\n

PLANEXWARE puede llegar a compartir cierta información personal, con terceras partes según los términos que se describen a continuación.

\r\n
    \r\n
  • \r\n Asociados

    \r\n Es posible que se comparta información, incluyendo la información personal que proporcione, con terceros asociados, tales como socios comerciales.\r\n PLANEXWARE se asegura que todos sus socios cumplan con las obligaciones impuestas por la Ley de Protección de Datos Personales, incluyendo la implementación de sistemas de seguridad adecuados, y en idéntico sentido que suscriban y cumplan en cuanto resulte aplicable, los principios sostenidos por PLANEXWARE en materia de protección y confidencialidad de datos personales.\r\n

    \r\n
  • \r\n
  • \r\n Terceros prestadores de servicios de tratamiento de datos

    \r\n Para la puesta a disposición de sus servicios, es posible que PLANEXWARE contrate ciertas prestaciones a cargo de terceros. Estas prestaciones podrán consistir, sin que está enunciación resulte taxativa, en tratamiento automatizado de datos, almacenamiento de información, servicios de envío de comunicaciones electrónicas, procesamiento de transacciones. Para la adecuada prestación de los servicios, los terceros a cargo de los mismos es posible que requieran acceso a las bases de datos de PLANEXWARE. Sin embargo PLANEXWARE no cede a estos terceros información de orden personal de ningún tipo, el acceso por parte de los mismos a las bases de datos de PLANEXWARE se limita estrictamente a las actividades necesarias para la prestación del servicio, siéndoles prohibida la extracción de datos o la realización de copias totales o parciales de las bases de datos de PLANEXWARE.\r\n PLANEXWARE se asegura que todos sus proveedores cumplan con las obligaciones impuestas por la Ley de Protección de Datos Personales, incluyendo la implementación de sistemas de seguridad adecuados, y en idéntico sentido que suscriban y cumplan en cuanto resulte aplicable, los principios sostenidos por PLANEXWARE en materia de protección y confidencialidad de datos personales.\r\n

    \r\n
  • \r\n
\r\n

Lugar físico en donde tiene lugar el tratamiento de los datos personales de los usuarios

\r\n

La información recabada en relación con los servicios brindados por PLANEXWARE puede procesarse y almacenarse en el territorio de la República Argentina o fuera de éste. EL USUARIO NO RESIDENTE EN LA REPUBLICA ARGENTINA, ACEPTA EXPRESAMENTE LA EVENTUAL TRANSFERENCIA DE LA INFORMACIÓN PERSONAL A LA REPUBLICA ARGENTINA. ASIMISMO TODOS LOS USUARIOS RESIDENTES O NO, ACEPTAN EXPRESAMENTE QUE SU INFORMACIÓN PERSONAL PUEDA SER CONSERVADA EN MEDIOS UBICADOS FUERA DE LA REPÚBLICA ARGENTINA. Este consentimiento se entenderá otorgado en forma tácita cuando el usuario se hubiere hecho uso de cualquiera de los servicios prestados por PLANEXWARE. En cualquier caso PLANEXWARE garantiza que la información será tratada únicamente en una jurisdicción que asegure una adecuada protección legal a los titulares de los datos.

\r\n

Comunicaciones de PLANEXWARE

\r\n

Ocasionalmente los datos de los usuarios podrán ser utilizados para el envío de comunicaciones a los propios usuarios, en lo referente a los servicios brindados por PLANEXWARE. Cuando un usuario prefiera no ser contactado con estos fines, podrá:

\r\n
    \r\n
  • Comunicarse con PLANEXWARE según los datos de contacto aquí suministrados, y solicitar que no le sea enviada información sobre los productos y servicios.
  • \r\n
  • Ejecutar de las instrucciones a ese efecto incluidas en los correos enviados por PLANEXWARE
  • \r\n
\r\n

Finalmente se enviarán a los usuarios mensajes relacionados con el estado o cambios relativos a los servicios siempre que ello sea necesario. Así por ejemplo, si un servicio es modificado, agrega nuevas funcionalidades, o actualiza su forma de operar.

\r\n

Derechos de los titulares de los datos

\r\n

\r\n Res 10/08, DNPDP, art 1: \"El titular de los datos personales tiene la facultad de ejercer el derecho de acceso a los mismos en forma gratuita a intervalos no inferiores a seis meses, salvo que se acredite un interés legítimo al efecto conforme lo establecido en el artículo 14, inciso 3 de la Ley Nº 25.326\"\r\n A su vez, y como consecuencia de la garantía de los derechos amparados, se expresa también como finalidad, la de permitir en todo momento el acceso a la información por parte de las personas vinculadas a los datos registrados.\r\n De este modo, el interesado podrá ejercitar los derechos de acceso, rectificación, bloqueo y supresión, que más adelante se mencionarán.\r\n

\r\n

\r\n El derecho de acceso los datos: es el derecho a solicitar y obtener información de los datos de carácter personal incluidos en las bases de datos.
\r\n El derecho a exigir la rectificación de los datos: En principio, el derecho a exigir la rectificación puede ser ejercido ante la falsedad, inexactitud, imprecisión, falta de vigencia, o carácter erróneo que tengan los datos. Su reconocimiento implica el de la preservación de la veracidad de la información, condición que hace a la calidad de la misma.
\r\n El derecho de bloqueo: constituye el derecho a exigir el retiro de los datos de carácter personal de una base de datos destinada a publicidad.
\r\n Los derechos a la supresión: La \"supresión\" de un dato implica su eliminación definitiva del archivo o registro, esto es su completa desaparición.
\r\n

\r\n

El ejercicio de dichos derechos podrá ser efectivizado por cada usuario mediante comunicación dirigida a PLANEXWARE, según la información de contacto aquí brindada. La solicitud de acceso, rectificación, actualización o supresión deberá contener y acompañar lo siguiente:

\r\n
    \r\n
  • El nombre del titular, dirección de correo electrónico y domicilio para comunicar la respuesta a su solicitud;
  • \r\n
  • Los documentos que acrediten la identidad o, en su caso, la representación legal del titular;
  • \r\n
  • La descripción clara y precisa de los datos personales respecto de los que se busca ejercer alguno de los derechos antes mencionados, y
  • \r\n
  • Cualquier otro elemento o documento que facilite la localización de los datos personales.
  • \r\n
  • En el caso de solicitudes de rectificación de datos personales, el titular deberá indicar, además de lo señalado en los puntos anteriores, las modificaciones a realizarse y aportar la documentación que sustente su petición.
  • \r\n
\r\n

Efectuado un requerimiento por el titular de los datos, PLANEXWARE, emitirá una constancia de recepción de la solicitud, y procederá según el caso:

\r\n

Solicitud de acceso a datos personales almacenados: se informarán los datos almacenados en el plazo máximo de 10 días corridos de recibido el reclamo del titular de los datos.

\r\n

Solicitud de rectificación, o supresión datos personales almacenados: las operaciones necesarias al fin solicitado será arbitradas dentro de los 5 días hábiles de recibido el reclamo del titular de los datos.

\r\n

Utilizamos métodos de seguridad apropiados

\r\n

En PLANEXWARE la seguridad es importante. PLANEXWARE adopta todas las medidas de seguridad lógica y física exigidas por las reglamentaciones, y las que resultan de la adecuada prudencia y diligencia en la protección de los Usuarios que han depositado su confianza en PLANEXWARE, para proteger la información personal reunida contra el acceso no autorizado, alteración o destrucción. PLANEXWARE evalúa y mejora sus sistemas de seguridad toda vez que sea necesario.

\r\n

Cumplimiento de la ley 25.326

\r\n

\r\n En cumplimiento de las obligaciones impuestas por la Ley 25.326 de Protección de Datos Personales y normativa complementaria, PLANEXWARE posee su bases de datos con información personal debidamente inscriptas en el registro administrado por la Dirección Nacional de Protección de Datos Personales dependiente del Ministerio de Justicia y Derechos Humanos, Poder Ejecutivo, República Argentina. Los Usuarios que deseen más información relativa al Régimen de Protección de Datos Personales vigente en la República Argentina podrán dirigirse a:
\r\n Dirección Nacional de Protección de Datos Personales.
\r\n Sarmiento 1118, piso 5°, Ciudad Autónoma de Buenos Aires, República Argentina.
\r\n Teléfono: (+5411) 5300-4000.
\r\n http://www.jus.gob.ar/datos-personales/\r\n

\r\n

La DIRECCION NACIONAL DE PROTECCION DE DATOS PERSONALES, Órgano de Control de la Ley Nº 25.326, tiene la atribución de atender las denuncias y reclamos que se interpongan con relación al incumplimiento de las normas sobre protección de datos personales.

\r\n

Cambios a esta Política

\r\n

En caso de modificación de esta Política, publicaremos esos cambios en esta sección, la pagina principal del Sitio, y otros lugares que sean considerados apropiados para notificar a los interesados sobre los cambios. PLANEXWARE se reserva el derecho a modificar esta Política en cualquier momento, a cuyo efecto los interesados deberán tomar conocimiento de la misma chequeando esta sección en forma regular.

\r\n

¿Qué ocurre con su Información Personal cuando cierra su cuenta de usuario?

\r\n

En el caso que un cliente o usuario decida cerrar su cuenta con PLANEXWARE, nuestra Política de Privacidad continuará vigente respecto ese cliente o usuario. Toda su información personal será señalada como no disponible; sin embargo el cliente o usuario debe tener en cuenta que esto no significa la eliminación de su información. La información de los clientes o usuarios seguirá almacenada en los sistemas de PLANEXWARE permaneciendo indisponible, solamente podrá ser usada para resolver cualquier controversia o situación legal que pudiere acontecer, y hasta el cumplimiento del término de la prescripción legal de las obligaciones de naturaleza contractual. La obligación de confidencialidad continuará indefinidamente respecto la información que constituya un dato personal en los términos de la ley 25.326 y en tanto esos datos sean conservados por PLANEXWARE.

\r\n
\r\n
\r\n Código: POL/DES-8-004\r\n
\r\n Revisión: 001\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pyp-es',\r\n templateUrl: './pyp-es.component.html',\r\n styleUrls: ['./pyp-es.component.scss']\r\n})\r\nexport class PypESComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Políticas de privacidad

\r\n

La presente Política de Privacidad de Datos, tiene por objeto poner en conocimiento de los interesados los alcances de la protección integral de los datos personales asentados en los archivos; registros; bancos o bases de datos; u otros medios técnicos de tratamiento de datos implementados por PLANEXWARE S.A., con domicilio en Alberti 2154 piso 7°, Ciudad Autónoma de Buenos Aires, República Argentina, (en adelante PLANEXWARE), asegurando el respeto al derecho a la intimidad de las personas, así como también al libre acceso a la información que sobre las mismas pueda eventualmente registrarse.

\r\n

PLANEXWARE considera que cualquier tipo de información relativa a una persona es información de carácter personal, y por consiguiente vela en todo momento por la privacidad y confidencialidad de la misma. La confidencialidad de la información implicará su mantenimiento en archivos y/o bancos o bases de datos seguros, de modo tal que el acceso por parte de terceros que no se encuentren autorizados a tal efecto, se encuentre impedido.

\r\n

Para preguntas sobre esta Política o cualquier circunstancia relativa al tratamiento de información de carácter personal, los interesados podrán contactarse a través de cualquiera de estos medios:

\r\n

E-mail:

\r\n

info@planexware.com

\r\n

Correo postal:

\r\n

\r\n Alberti 2154 piso 7°
\r\n C1247AAT
\r\n Ciudad Autónoma de Buenos Aires
\r\n República Argentina
\r\n

\r\n

Las notificaciones y comunicaciones cursadas por PLANEXWARE a la dirección postal o, a la casilla de correo electrónico consignada directamente por el interesado, o aquella que surja como domicilio o dirección de correo del remitente se considerarán eficaces y plenamente válidas. Asimismo, se considerarán eficaces las comunicaciones que consistan en avisos y mensajes insertos en el sitio web de PLANEXWARE www.planexware.com, o que se envíen durante la prestación de un servicio, que tengan por finalidad informar a los usuarios sobre determinada circunstancia.

\r\n

Esta Política de Privacidad refiere a los siguientes aspectos:

\r\n
    \r\n
  • Voluntariedad en la entrega de datos
  • \r\n
  • Datos sensibles
  • \r\n
  • Datos financieros
  • \r\n
  • Autorización de uso de la información personal
  • \r\n
  • Recolección y uso de Información
  • \r\n
  • Qué información recaba PLANEXWARE
  • \r\n
  • Transferencia de la información personal
  • \r\n
  • Divulgación de la información
  • \r\n
  • Lugar físico en donde tiene lugar el tratamiento de los datos personales del usuario
  • \r\n
  • Comunicaciones del Sitio
  • \r\n
  • Derechos de los titulares de los datos
  • \r\n
  • Utilizamos Métodos de Seguridad Apropiados
  • \r\n
  • Cumplimiento de la ley 25.326
  • \r\n
  • Cambios a esta Política
  • \r\n
  • ¿Qué ocurre con su información personal cuando cierra su cuenta con nosotros?
  • \r\n
\r\n

Voluntariedad en la entrega de datos

\r\n

La presente Política está destinada a informar a los interesados acerca del tratamiento de datos personales llevado adelante por PLANEXWARE, con el objeto que libre y voluntariamente determinen la entrega o no, de sus datos personales cuando les sean requeridos o que se puedan obtener a partir de la utilización de alguno de los servicios provistos por PLANEXWARE.

\r\n

Por regla general, cuando para utilizar un servicio o acceder a cierto contenido se solicite algún dato personal, la entrega del mismo no es obligatoria, con excepción de aquellos casos donde específicamente se indicara que es un dato requerido para la prestación del servicio.

\r\n

Datos sensibles

\r\n

PLANEXWARE no recaba datos sensibles de ninguna naturaleza. Si cualquiera de los datos requeridos fueren en el futuro calificados como dato sensible de tipo personal por la Dirección Nacional de Protección de Datos Personales, u otra autoridad competente, ningún usuario estará obligado a la entrega de ese dato a efectos de acceder a los servicios provistos por PLANEXWARE

\r\n

Datos financieros

\r\n

PLANEXWARE no recaba datos financieros de ninguna naturaleza.

\r\n

Autorización de uso de la información personal

\r\n

El cliente o usuario que facilitara sus datos personales, autoriza expresamente a PLANEXWARE para el uso de los datos aportados con los fines aquí expuestos. Implica ello además la aceptación de todos los términos contenidos en esta Política, y en los respectivos contratos de prestación de servicios.

\r\n

Recolección y uso de Información

\r\n

La recolección y tratamiento de datos de carácter personal de los Usuarios tiene por finalidad la prestación, gestión, administración, personalización, actualización y mejora de los productos y servicios puestos a disposición de sus usuarios por parte de PLANEXWARE Es posible asimismo que se utilice la información personal de los Usuarios para todos los fines legales, los cuales pueden incluir, pero sin limitarse a, responder sus solicitudes, procesar transacciones, para fines administrativos.

\r\n

Qué información recaba PLANEXWARE

\r\n

La información recolectada es:

\r\n
    \r\n
  1. Nombre de usuario y contraseña de acceso.
  2. \r\n
  3. También al utilizar los servicios prestados, es posible que PLANEXWARE reciba de parte de los usuarios información no personal como \"referencias de navegación\", direcciones IP, acciones de usuario y distintas variables del entorno.
  4. \r\n
\r\n
\r\n
    \r\n
  • Referencias

    Una \"referencia\" es información que el explorador Web transmite a los servidores de PLANEXWARE y que hace alusión al URL desde el que accede al Sitio.

  • \r\n
  • Dirección IP.

    Al ingresar a PLANEXWARE es posible que se obtenga la dirección IP (Internet Protocol), y el tipo de navegador que utiliza el Usuario. La dirección IP permite además conocer la ubicación geográfica de la computadora o dispositivo de navegación por internet desde el cual se ha accedido a PLANEXWARE, la fecha y hora de acceso. El navegador asimismo puede llegar a permitirnos conocer cuáles son las páginas de internet que el Usuario ha visitado previamente.

  • \r\n
  • Variables de entorno

    Las \"variables del entorno\" son, entre otras cosas, la hora de acceso, el tipo de explorador, el sistema operativo o plataforma que se utilizan, la dirección de Internet o del sitio web que le remite a PLANEXWARE

  • \r\n
  • Acciones de usuario

    Las “acciones de usuario” remiten a la información relativa a la utilización de los recursos ofrecidos por el sitio. Esta información entre otras aspecto podrá referir a los documentos consultados por el usuario así como su cantidad y tipo, los servicios a los cuales acceda el usuario dentro del sitio, a los criterio de búsqueda utilizados, y en general a cualquier otro dato que describa la actividad de los usuarios dentro del sitio. Estos datos podrán almacenarse en forma singular o servir de base para la elaboración de información estadística.

  • \r\n
  • Cookies

    Eventualmente PLANEXWARE puede utilizar cookies, que se instalaran en la computadora del usuario cuando este navegue por el sitio. Tienen por finalidad facilitar la navegación por el sitio al usuario, y proporcionar a PLANEXWARE, información que le ayudará a mejorar sus servicios y contenidos. En ningún caso las cookies utilizadas por PLANEXWARE proporcionarán información de carácter personal del usuario, quien en relación a las mismas mantendrá pleno anonimato, aun frente a PLANEXWARE, dado que tampoco suministran información tendiente a la individualización del usuario. Es intención de PLANEXWARE poner de resalto que para navegar por el sitio, no resulta necesario que el usuario permita la instalación de las cookies enviadas por PLANEXWARE, ello solo podrá requerirse en relación a ciertos servicios y/o contenidos.

  • \r\n
\r\n

Esta información se recopila para uso exclusivamente interno de PLANEXWARE, por ejemplo, para incrementar la seguridad del servicio.

\r\n

Cesión de los datos

\r\n

Todos los datos personales recolectados de los Usuarios, son de uso exclusivamente interno por parte de PLANEXWARE. Toda vez que se recabe información personal como parte de la relación directa con un usuario, en respeto a la privacidad y confidencialidad de los usuarios, PLANEXWARE no cederá ni transferirá esa información personal a ningún tercero que no sea parte de PLANEXWARE, o sus asociados. Únicamente se compartirá con terceros la información personal de los usuarios, en los siguientes casos:

\r\n
    \r\n
  • Cuando exista obligación legal de hacerlo.
  • \r\n
  • Cuando exista una orden emanada de un Juez competente.
  • \r\n
\r\n

Divulgación de la información

\r\n

PLANEXWARE puede llegar a compartir cierta información personal, con terceras partes según los términos que se describen a continuación.

\r\n
    \r\n
  • \r\n Asociados

    \r\n Es posible que se comparta información, incluyendo la información personal que proporcione, con terceros asociados, tales como socios comerciales.\r\n PLANEXWARE se asegura que todos sus socios cumplan con las obligaciones impuestas por la Ley de Protección de Datos Personales, incluyendo la implementación de sistemas de seguridad adecuados, y en idéntico sentido que suscriban y cumplan en cuanto resulte aplicable, los principios sostenidos por PLANEXWARE en materia de protección y confidencialidad de datos personales.\r\n

    \r\n
  • \r\n
  • \r\n Terceros prestadores de servicios de tratamiento de datos

    \r\n Para la puesta a disposición de sus servicios, es posible que PLANEXWARE contrate ciertas prestaciones a cargo de terceros. Estas prestaciones podrán consistir, sin que está enunciación resulte taxativa, en tratamiento automatizado de datos, almacenamiento de información, servicios de envío de comunicaciones electrónicas, procesamiento de transacciones. Para la adecuada prestación de los servicios, los terceros a cargo de los mismos es posible que requieran acceso a las bases de datos de PLANEXWARE. Sin embargo PLANEXWARE no cede a estos terceros información de orden personal de ningún tipo, el acceso por parte de los mismos a las bases de datos de PLANEXWARE se limita estrictamente a las actividades necesarias para la prestación del servicio, siéndoles prohibida la extracción de datos o la realización de copias totales o parciales de las bases de datos de PLANEXWARE.\r\n PLANEXWARE se asegura que todos sus proveedores cumplan con las obligaciones impuestas por la Ley de Protección de Datos Personales, incluyendo la implementación de sistemas de seguridad adecuados, y en idéntico sentido que suscriban y cumplan en cuanto resulte aplicable, los principios sostenidos por PLANEXWARE en materia de protección y confidencialidad de datos personales.\r\n

    \r\n
  • \r\n
\r\n

Lugar físico en donde tiene lugar el tratamiento de los datos personales de los usuarios

\r\n

La información recabada en relación con los servicios brindados por PLANEXWARE puede procesarse y almacenarse en el territorio de la República Argentina o fuera de éste. EL USUARIO NO RESIDENTE EN LA REPUBLICA ARGENTINA, ACEPTA EXPRESAMENTE LA EVENTUAL TRANSFERENCIA DE LA INFORMACIÓN PERSONAL A LA REPUBLICA ARGENTINA. ASIMISMO TODOS LOS USUARIOS RESIDENTES O NO, ACEPTAN EXPRESAMENTE QUE SU INFORMACIÓN PERSONAL PUEDA SER CONSERVADA EN MEDIOS UBICADOS FUERA DE LA REPÚBLICA ARGENTINA. Este consentimiento se entenderá otorgado en forma tácita cuando el usuario se hubiere hecho uso de cualquiera de los servicios prestados por PLANEXWARE. En cualquier caso PLANEXWARE garantiza que la información será tratada únicamente en una jurisdicción que asegure una adecuada protección legal a los titulares de los datos.

\r\n

Comunicaciones de PLANEXWARE

\r\n

Ocasionalmente los datos de los usuarios podrán ser utilizados para el envío de comunicaciones a los propios usuarios, en lo referente a los servicios brindados por PLANEXWARE. Cuando un usuario prefiera no ser contactado con estos fines, podrá:

\r\n
    \r\n
  • Comunicarse con PLANEXWARE según los datos de contacto aquí suministrados, y solicitar que no le sea enviada información sobre los productos y servicios.
  • \r\n
  • Ejecutar de las instrucciones a ese efecto incluidas en los correos enviados por PLANEXWARE
  • \r\n
\r\n

Finalmente se enviarán a los usuarios mensajes relacionados con el estado o cambios relativos a los servicios siempre que ello sea necesario. Así por ejemplo, si un servicio es modificado, agrega nuevas funcionalidades, o actualiza su forma de operar.

\r\n

Derechos de los titulares de los datos

\r\n

\r\n Res 10/08, DNPDP, art 1: \"El titular de los datos personales tiene la facultad de ejercer el derecho de acceso a los mismos en forma gratuita a intervalos no inferiores a seis meses, salvo que se acredite un interés legítimo al efecto conforme lo establecido en el artículo 14, inciso 3 de la Ley Nº 25.326\"\r\n A su vez, y como consecuencia de la garantía de los derechos amparados, se expresa también como finalidad, la de permitir en todo momento el acceso a la información por parte de las personas vinculadas a los datos registrados.\r\n De este modo, el interesado podrá ejercitar los derechos de acceso, rectificación, bloqueo y supresión, que más adelante se mencionarán.\r\n

\r\n

\r\n El derecho de acceso los datos: es el derecho a solicitar y obtener información de los datos de carácter personal incluidos en las bases de datos.
\r\n El derecho a exigir la rectificación de los datos: En principio, el derecho a exigir la rectificación puede ser ejercido ante la falsedad, inexactitud, imprecisión, falta de vigencia, o carácter erróneo que tengan los datos. Su reconocimiento implica el de la preservación de la veracidad de la información, condición que hace a la calidad de la misma.
\r\n El derecho de bloqueo: constituye el derecho a exigir el retiro de los datos de carácter personal de una base de datos destinada a publicidad.
\r\n Los derechos a la supresión: La \"supresión\" de un dato implica su eliminación definitiva del archivo o registro, esto es su completa desaparición.
\r\n

\r\n

El ejercicio de dichos derechos podrá ser efectivizado por cada usuario mediante comunicación dirigida a PLANEXWARE, según la información de contacto aquí brindada. La solicitud de acceso, rectificación, actualización o supresión deberá contener y acompañar lo siguiente:

\r\n
    \r\n
  • El nombre del titular, dirección de correo electrónico y domicilio para comunicar la respuesta a su solicitud;
  • \r\n
  • Los documentos que acrediten la identidad o, en su caso, la representación legal del titular;
  • \r\n
  • La descripción clara y precisa de los datos personales respecto de los que se busca ejercer alguno de los derechos antes mencionados, y
  • \r\n
  • Cualquier otro elemento o documento que facilite la localización de los datos personales.
  • \r\n
  • En el caso de solicitudes de rectificación de datos personales, el titular deberá indicar, además de lo señalado en los puntos anteriores, las modificaciones a realizarse y aportar la documentación que sustente su petición.
  • \r\n
\r\n

Efectuado un requerimiento por el titular de los datos, PLANEXWARE, emitirá una constancia de recepción de la solicitud, y procederá según el caso:

\r\n

Solicitud de acceso a datos personales almacenados: se informarán los datos almacenados en el plazo máximo de 10 días corridos de recibido el reclamo del titular de los datos.

\r\n

Solicitud de rectificación, o supresión datos personales almacenados: las operaciones necesarias al fin solicitado será arbitradas dentro de los 5 días hábiles de recibido el reclamo del titular de los datos.

\r\n

Utilizamos métodos de seguridad apropiados

\r\n

En PLANEXWARE la seguridad es importante. PLANEXWARE adopta todas las medidas de seguridad lógica y física exigidas por las reglamentaciones, y las que resultan de la adecuada prudencia y diligencia en la protección de los Usuarios que han depositado su confianza en PLANEXWARE, para proteger la información personal reunida contra el acceso no autorizado, alteración o destrucción. PLANEXWARE evalúa y mejora sus sistemas de seguridad toda vez que sea necesario.

\r\n

Cumplimiento de la ley 25.326

\r\n

\r\n En cumplimiento de las obligaciones impuestas por la Ley 25.326 de Protección de Datos Personales y normativa complementaria, PLANEXWARE posee su bases de datos con información personal debidamente inscriptas en el registro administrado por la Dirección Nacional de Protección de Datos Personales dependiente del Ministerio de Justicia y Derechos Humanos, Poder Ejecutivo, República Argentina. Los Usuarios que deseen más información relativa al Régimen de Protección de Datos Personales vigente en la República Argentina podrán dirigirse a:
\r\n Dirección Nacional de Protección de Datos Personales.
\r\n Sarmiento 1118, piso 5°, Ciudad Autónoma de Buenos Aires, República Argentina.
\r\n Teléfono: (+5411) 5300-4000.
\r\n http://www.jus.gob.ar/datos-personales/\r\n

\r\n

La DIRECCION NACIONAL DE PROTECCION DE DATOS PERSONALES, Órgano de Control de la Ley Nº 25.326, tiene la atribución de atender las denuncias y reclamos que se interpongan con relación al incumplimiento de las normas sobre protección de datos personales.

\r\n

Cambios a esta Política

\r\n

En caso de modificación de esta Política, publicaremos esos cambios en esta sección, la pagina principal del Sitio, y otros lugares que sean considerados apropiados para notificar a los interesados sobre los cambios. PLANEXWARE se reserva el derecho a modificar esta Política en cualquier momento, a cuyo efecto los interesados deberán tomar conocimiento de la misma chequeando esta sección en forma regular.

\r\n

¿Qué ocurre con su Información Personal cuando cierra su cuenta de usuario?

\r\n

En el caso que un cliente o usuario decida cerrar su cuenta con PLANEXWARE, nuestra Política de Privacidad continuará vigente respecto ese cliente o usuario. Toda su información personal será señalada como no disponible; sin embargo el cliente o usuario debe tener en cuenta que esto no significa la eliminación de su información. La información de los clientes o usuarios seguirá almacenada en los sistemas de PLANEXWARE permaneciendo indisponible, solamente podrá ser usada para resolver cualquier controversia o situación legal que pudiere acontecer, y hasta el cumplimiento del término de la prescripción legal de las obligaciones de naturaleza contractual. La obligación de confidencialidad continuará indefinidamente respecto la información que constituya un dato personal en los términos de la ley 25.326 y en tanto esos datos sean conservados por PLANEXWARE.

\r\n
\r\n
\r\n Código: POL/DES-8-004\r\n
\r\n Revisión: 002\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pyp-us',\r\n templateUrl: './pyp-us.component.html',\r\n styleUrls: ['./pyp-us.component.scss']\r\n})\r\nexport class PypUSComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Privacy Policy

\r\n

The purpose of this Data Privacy Policy is to inform the parties concerned about the scope of the comprehensive protection of all personal data entered in the files; registers; banks or databases; or in any further technical means for processing data implemented by PLANEXWARE S.A., domiciled at Alberti Nr. 2154, 7th floor, Autonomous City of Buenos Aires, Republic of Argentina (herein after PLANEXWARE), ensuring compliance with the right of privacy of individuals, as well as free access to the information which might eventually be registered regarding the individuals.

\r\n

PLANEXWARE considers that any kind of information related to an individual is personal information, and therefor it protects privacy and confidential information with professional zeal. Privacy of information involves maintaining information in safe files and/or banks or databases, in such a way to prevent access by any non-authorized third party

\r\n

For questions about this Policy or about any circumstance related to the processing of personal information, please contact any of the following channels:

\r\n

E-mail:

\r\n

info@planexware.com

\r\n

Postal address:

\r\n

\r\n Alberti Nr. 2154, 7th floor
\r\n C1247AAT
\r\n Ciudad Autónoma de Buenos Aires
\r\n República Argentina
\r\n

\r\n

All notices and communications sent by PLANEXWARE to the postal address or to the e-mail address informed directly by the interested party, or to the address appearing as the sender's address shall be considered valid and effective. Likewise, all communications consisting of prompts and messages posted in PLANEXWARE website (www.planexware.com) or sent during the provision of a service with the purpose of informing the users about any special circumstance, shall also be considered valid and effective

\r\n

This Privacy Policy refers to the following issues:

\r\n
    \r\n
  • Willingness to hand over data
  • \r\n
  • Sensitive Data\t
  • \r\n
  • Financial Data
  • \r\n
  • Authorization to use personal information
  • \r\n
  • Collection and use of information
  • \r\n
  • What kind of information does PLANEXWARE collect
  • \r\n
  • Transfer of personal information
  • \r\n
  • Disclosure of information
  • \r\n
  • Physical location where the processing of user's personal data takes place
  • \r\n
  • Communications of the Website
  • \r\n
  • Rights of the owner of data
  • \r\n
  • Use of Appropriate Security Methods
  • \r\n
  • Compliance with Act 25326
  • \r\n
  • Changes to this Policy
  • \r\n
  • What happens with your personal information after you close your account with us?
  • \r\n
\r\n

Willingness to hand over data

\r\n

This Policy is aimed to inform the parties concerned about the processing of personal data by PLANEXWARE, with the purpose to get their free and voluntary decision to hand over or not any personal data required, or to allow their collection as from the use of any of the services provided by PLANEXWARE.

\r\n

As a general rule, whenever a person is required to provide personal information to use a service or to access certain content, handing over said information is not compulsory, except for those cases when it is specifically stated that the information required is necessary for the provision of the service.

\r\n

Sensitive Data

\r\n

PLANEXWARE does not collect sensitive data of any kind. In case that any of the required data would be qualified in the future as sensitive personal information by the National Direction for the Protection of Personal Data or by any other competent authority, no user will be obliged to hand that information over to get access to the services provided by PLANEXWARE.

\r\n

Financial Data

\r\n

PLANEXWARE does not collect financial data of any kind.

\r\n

Authorization to use personal information

\r\n

The client or user who hands over its personal data, does expressly authorize PLANEXWARE to use all the information provided for the purposes herein stated. The above mentioned also implies that the client or user accepts all the terms and conditions included in this Policy, and in the pertinent contracts for the provision of services.

\r\n

Collection and use of information

\r\n

Collection and processing of the user´s personal data aims to the provision, management, administration, customization, updating and improvement of the products and services provided by PLANEXWARE to the users. It is also probable that the user´s personal information be used for any legal purpose, which might include answering requirements, processing transactions, administrative purposes, without limitations thereto.

\r\n

What kind of information does PLANEXWARE collect

\r\n

The information collected is the following:

\r\n
    \r\n
  1. User's name and password.
  2. \r\n
  3. It is possible that while using the services provided, PLANEXWARE receives non-personal information from the users, as for example \"browsing references\", IP directions, users' actions and other different environmental variables.
  4. \r\n
\r\n
\r\n
    \r\n
  • References:

    A \"reference\" is information transmitted by the Web browser to the servers of PLANEXWARE, and points out the URL from which the website is accessed.

  • \r\n
  • IP Address

    When accessing PLANEXWARE website, it is possible get the IP (Internet Protocol) address and the type of browser used by the User . The IP address also allows to identify the geographical location of the computer or of the browsing device from which PLANEXWARE was accessed, as well as the date and time of access. The browser may also collect information about the web sites previously visited by the user.

  • \r\n
  • Environmental variables

    The \"environmental variables\" are, among others, the time of access, the kind of browser, the operative system or platform used, the internet address or the web site address from which the user is directed to PLANEXWARE.

  • \r\n
  • User´s actions

    \"Users' actions\" refer to the information related to the use of the resources offered in the site. This information may refer to the documents consulted by the user, among others, as well as to their number and kinds, the services accessed by the user within the site, the search criteria used, and in general any other data describing the activity of the users within the site. All this information may be stored on an individual basis or be used to produce statistical information.

  • \r\n
  • Cookies

    PLANEXWARE might eventually use cookies, which shall be installed in the user's computer while browsing the site. Cookies are used to improve navigation for the user in the site, and to provide information to PLANEXWARE in order to develop more efficiently its services and contents. Under no circumstance the cookies used by PLANEXWARE shall provide personal information of the user, who will remain at all times anonymous while browsing the site, even for PLANEXWARE, since the cookies do not provide information to identify the user. It is the intention of PLANEXWARE to emphasize that in order to browse the site, it is not necessary for the user to allow the installation of the cookies sent by PLANEXWARE, since this might only be required in connection with certain services and/or contents.

  • \r\n
\r\n

\r\n This information is only collected for the exclusive internal use by PLANEXWARE, for example, to improve the security of its service.\r\n

\r\n

Transfer of data

\r\n

Any and all personal data collected from the Users, are for the internal and exclusive use by PLANEXWARE. Every time when personal information is collected as a result of a direct relation with a user, and as regards privacy and confidentiality of the users, PLANEXWARE shall not transfer or assign such personal information to any third party not being a party related to PLANEXWARE, or to its associates. Personal information of the users shall only be shared with third parties in the following cases:

\r\n
    \r\n
  • If there is a legal obligation to do so.
  • \r\n
  • If there is an order issued by a competent Judge.
  • \r\n
\r\n

Disclosure of information

\r\n

PLANEXWARE may share some personal information with third parties on the following basis:

\r\n
    \r\n
  • \r\n Associates

    \r\n Information -including personal information handed over by the users- might be shared with third parties associated to PLANEXWARE, as for example business associates. PLANEXWARE shall ensure that all its associates comply with the obligations and duties imposed by the Personal Data Protection Law, including the implementation of appropriate security systems, and also that they enter into and fulfill -when applicable- all the principles held by PLANEXWARE as regards protection and privacy of personal data.\r\n

    \r\n
  • \r\n
  • \r\n Third party data processing service providers

    \r\n To render its services available, PLANEXWARE may probably engage the provision of certain services to third parties. The provision of these kind of services might include, without limitation, automated processing of data, storage of information, services related to forwarding electronic communications, processing administrative transactions. In order to provide their services correctly, the third parties engaged might possibly require access to PLANEXWARE databases. However, PLANEXWARE shall not assign to these third parties any personal information of any nature whatsoever, and the access by those providers to PLANEXWARE databases is strictly limited to the activities necessary for the provision of the service involved, not being allowed to get any data or to make total or partial copies of the databases belonging to PLANEXWARE. PLANEXWARE shall ensure that all its providers comply with the obligations and duties imposed by the Personal Data Protection Law, including the implementation of appropriate security systems, and also that they enter into and fulfill -when applicable- all the principles held by PLANEXWARE as regards protection and privacy of personal data.\r\n

    \r\n
  • \r\n
\r\n

Physical location where the processing of users personal data takes place

\r\n

All the information collected in relation with the services provided by PLANEXWARE may be processed and stored within the territory of the Republic of Argentina or abroad. USERS NON-RESIDENT IN THE REPUBLIC OF ARGENTINA EXPRESSLY AGREE TO THE EVENTUAL TRANSFER OF PERSONAL INFORMATION TO THE REPUBLIC OF ARGENTINA. LIKEWISE, ALL RESIDENT OR NON-RESIDENT USERS EXPRESSLY AGREE TO THE MAINTENANCE OF THEIR PERSONAL INFORMATION IN ANY MEANS LOCATED OUT OF THE REPUBLIC OF ARGENTINA. This agreement shall be deemed a tacit consent when the user has already used any of the services granted by PLANEXWARE. In any event, PLANEXWARE guarantees that the information shall only be processed in a jurisdiction which might ensure an appropriate legal protection to the owners of the data involved.

\r\n

Communications by PLANEXWARE

\r\n

Ocassionaly, user´s data might be used to send communications to the users regarding the services provided by PLANEXWARE. In case a user prefers not to receive any information by PLANEXWARE, the user may:

\r\n
    \r\n
  • Contact PLANEXWARE at the contact data herein provided for, and inform he/she does not want to receive any information about products and services.
  • \r\n
  • Follow the steps included in the e-mails sent by PLANEXWARE to that end.
  • \r\n
\r\n

Finally, messages shall be sent to the users informing the status or changes entered in connection with the services, whenever necessary. For example, information about changes in services, new functions or updates.

\r\n

Rights of the owner of data

\r\n

\r\n Res 10/08, DNPDP, section 1: \"The owner of personal data may exercise its right to request and obtain information on its personal data in intervals no shorter than six months free of charge, unless a legitimate interest to do otherwise is shown, according to the provisions of section 14 subsection 3 of Act Nr. 25326\". Likewise, and as a consequence of the guarantee regarding the protected rights, it is also provided that access is allowed at all times to any person related to the registered data. In this way, the interested party may exercise its rights to access, rectify, block and remove, herein above mentioned.\r\n

\r\n

\r\n The right to access data: is the right to request and to obtain information on the personal data included in databases.
\r\n The right to request the rectification of data: in principle, the right to request rectification may be exercised upon the falsehood, inaccuracy, ambiguity, ineffectiveness or error in the data. The recognition of the above mentioned implies recognition to the preservation of the truthfulness of the information, a statuts closely related to its quality.
\r\n The right to block: is the right to request the removal of personal data from a database intended for advertising purposes.
\r\n The right of removal: \"Removal\" of a datum implies its final deletion from the file or register, that means its complete and definite elimination.
\r\n

\r\n

Each user may exercise these rights by informing PLANEXWARE, according to the contact information herein included. The request to access, rectify, update or remove personal data must include and mention the following information:

\r\n
    \r\n
  • Name of the owner, e-mail address and domicile to receive the answer to its request;
  • \r\n
  • Documents proving identity of the owner, or legal representation if the case may be;
  • \r\n
  • A clear and accurate description of the personal data on which any of the above mentioned rights is intended to be exercised, and
  • \r\n
  • Any further element or document which may facilitate the localization of the personal data involved.
  • \r\n
  • In case of a request to rectify personal data, the owner must clearly state, not only the above mentioned, buy also the amendments to be entered and enclose the documents supporting its request.
  • \r\n
\r\n

Once a request is submitted by the owner of the date, PLANEXWARE shall issue an acknowledgment of receipt and proceed accordingly:

\r\n

Request to access personal data already stored: data stored shall be informed within a maximal term of 10 calendar days as of reception of the request by the data's owner.

\r\n

Request to rectify, or remove personal data already stored: the necessary steps to comply with the request shall be taken within 5 working days as of reception of the request submitted by the data's owner.

\r\n

Use of Appropriate Security Methods

\r\n

For PLANEXWARE security is relevant. PLANEXWARE takes all the logical and physical security measures required by the rules in force, including those arising from due diligence and prudence, for the protection of the Users, who place their confidence in PLANEXWARE to protect the personal information collected against unauthorized access, alteration or destruction. PLANEXWARE evaluates and improves its security systems whenever necessary.

\r\n

Compliance with Act 25326

\r\n

\r\n In full compliance with the obligations imposed for by Act Nr. 25326 on the Protection of Personal Data and supplementary rules, PLANEXWARE has duly registered its databases with personal information with the register managed by the National Direction for the Protection of Personal Data under the Ministry of Justice and Human Rights, Executive Branch, Republic of Argentina. Those Users requiring more information on the Personal Data Protection Legislation, in force in the Republic of Argentina may refer to:
\r\n Dirección Nacional de Protección de Datos Personales.
\r\n Sarmiento Nr. 1118, 5th floor, Autonomous City of Buenos Aires, Republic of Argentina
\r\n Telephone: +5411 5300-4000
\r\n http://www.jus.gob.ar/datos-personales/\r\n

\r\n

The NATIONAL DIRECTION FOR THE PROTECTION OF PERSONAL DATA, the control body of Act Nr. 25326, has the power to receive compliances and claims filed in relation to the non-fulfillment of the rules governing the protection of personal data.

\r\n

Changes to this Policy

\r\n

In case of any amendment to this Policy, we shall publish the changes in this section, the main page of the Site, and in any other places deemed properly to notify the interested parties about such amendments. PLANEXWARE reserves the right to amend this Policy at any time, and to that end all the interested parties shall take note of the changes by regularly checking this section.

\r\n

What happens with your Personal Information after you close your account with us?

\r\n

In case a client or user decides to close its account with PLANEXWARE, our Privacy Policy shall be effective in relation to such client or users. All the personal information shall appear as not available; however, the client or user must know that this does not imply the removal of its information. The client´s or user´s information shall still be stored in PLANEXWARE's systems as unavailable, and can only be used for the resolution of any legal dispute or controversy which may arise and up to the expiration of the term applicable by the statute of limitation on contractual obligations. The confidentiality obligation shall be in force indefinitely as regards the information which might constitute personal data according to the provisions of Act Nr. 25326, provided that such data is kept by PLANEXWARE.

\r\n
\r\n
\r\n Code: POL/DES-8-004\r\n
\r\n Revision: 002\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SeguimientoFacturaCreditoService } from './servicios/seguimiento-factura-credito.service';\r\nimport { DatosFacturaCredito } from './modelos/datos-factura-credito';\r\nimport { DatosExtraFacturaCredito } from './modelos/datos-extra-factura-credito';\r\nimport { Color } from 'ng2-charts';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BusquedaDocumentos } from '../consulta-facturas-credito/models/Busqueda/BusquedaDocumentos';\r\nimport { TableFCredDataService } from '../consulta-facturas-credito/services/table-fcred-data.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-seguimiento-factura-credito',\r\n templateUrl: './seguimiento-factura-credito.component.html',\r\n styleUrls: ['./seguimiento-factura-credito.component.scss']\r\n})\r\nexport class SeguimientoFacturaCreditoComponent implements OnInit {\r\n datosFacturaCredito: DatosFacturaCredito[] = [];\r\n datosFacturaCreditoDias: DatosFacturaCredito | undefined;\r\n datosFacturaCreditoTacitasExpresas: DatosFacturaCredito | undefined;\r\n datosFacturaCreditoSCAADC: DatosFacturaCredito[] | undefined = [];\r\n datosFacturaCreditoSelected: DatosFacturaCredito[] = [];\r\n datosExtraFacturaCredito: DatosExtraFacturaCredito[] = [];\r\n ultimaFecha: DatosExtraFacturaCredito;\r\n opcionesPermitidas: string[] = ['IndTotNoVenc', 'IndNoExisteERP', 'IndProvNoHab'];\r\n opcionSeleccionada: DatosFacturaCredito | undefined;\r\n totalFacturas: number = 0;\r\n\r\n constructor(private seguimientoService: SeguimientoFacturaCreditoService,\r\n private genericToasterService: GenericToasterService,\r\n private router: Router,\r\n private tableFCredDataService: TableFCredDataService,\r\n private translate: TranslateService) { }\r\n\r\n public doughnutChartData: number[] = [1, 1, 1];\r\n public doughnutChartType: string = 'doughnut';\r\n public doughnutChartLabels: string[] = ['', '', ''];\r\n public doughnutChartOptions: any = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: true,\r\n position: 'bottom', // Colocar la leyenda debajo del gráfico\r\n labels: {\r\n fontSize: 10, // Tamaño de la fuente de la leyenda\r\n usePointStyle: true // Utilizar estilos de punto para los elementos de la leyenda\r\n }\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (tooltipItem: { index: string | number; }, data: { labels: { [x: string]: any; }; }) {\r\n return data.labels[tooltipItem.index]; // Devuelve solo la etiqueta, no el valor\r\n }\r\n }\r\n }\r\n };\r\n\r\n public doughnutChartColors: Color[] = [\r\n { backgroundColor: ['#D3D3D3', '#A9A9A9', '#c44ace'] },\r\n ];\r\n\r\n ngOnInit(): void {\r\n this.recuperarDatosIndicadoresFacturaCredito();\r\n }\r\n\r\n recuperarDatosIndicadoresFacturaCredito() {\r\n this.seguimientoService.recuperarDatosIndicadoresFacturaCredito()\r\n .subscribe({\r\n next: (data: DatosFacturaCredito[]) => {\r\n this.datosFacturaCredito = data;\r\n this.datosFacturaCreditoSelected = data.filter(opt => this.opcionesPermitidas.includes(opt.resourceKey));\r\n this.opcionSeleccionada = this.datosFacturaCreditoSelected.find(opt => opt.resourceKey === 'IndTotNoVenc');\r\n this.totalFacturas = this.datosFacturaCredito.filter(opt => ['IndConf1', 'IndConf2', 'IndVencMan'].includes(opt.resourceKey)).reduce((suma, objeto) => {\r\n const cantidadNumerica = Number(objeto.cantidad);\r\n return suma + (isNaN(cantidadNumerica) ? 0 : cantidadNumerica);\r\n }, 0);\r\n this.onSeleccionDays('IndVencMan');\r\n this.onSeleccionExpTac('IndAceptadas');\r\n this.onSeleccionSCAADC('IndADC');\r\n this.doughnutChartData = [parseInt(this.datosFacturaCredito.find(x => x.resourceKey == 'IndVencMan')?.cantidad!), parseInt(this.datosFacturaCredito.find(x => x.resourceKey == 'IndConf1')?.cantidad!), parseInt(this.datosFacturaCredito.find(x => x.resourceKey == 'IndConf2')?.cantidad!)];\r\n this.recuperarDatosExtraIndicadoresFacturaCredito();\r\n },\r\n error: (error: any) => {\r\n console.error('Error fetching data:', error);\r\n }\r\n });\r\n }\r\n\r\n recuperarDatosExtraIndicadoresFacturaCredito() {\r\n this.seguimientoService.recuperarDatosExtraIndicadoresFacturaCredito()\r\n .subscribe({\r\n next: (data: DatosExtraFacturaCredito[]) => {\r\n this.datosExtraFacturaCredito = data;\r\n this.ultimaFecha = this.datosExtraFacturaCredito.find(x => x.resourceKey === 'FechaUltActFCE')!;\r\n this.doughnutChartLabels = [this.translate.instant('MAÑANA_UPPER') + \": \" + this.datosFacturaCredito.find(x => x.resourceKey === 'IndVencMan')?.cantidad, this.datosExtraFacturaCredito.find(x => x.resourceKey === 'DiasIndConf1')?.valor + \" \" + this.translate.instant('DIAS_UPPER') + \": \" + this.datosFacturaCredito.find(x => x.resourceKey === 'IndConf1')?.cantidad, this.datosExtraFacturaCredito.find(x => x.resourceKey === 'DiasIndConf2')?.valor + \" \" + this.translate.instant('DIAS_UPPER') + \": \" + this.datosFacturaCredito.find(x => x.resourceKey === 'IndConf2')?.cantidad];\r\n\r\n },\r\n error: (error: any) => {\r\n console.error('Error fetching data:', error);\r\n }\r\n });\r\n }\r\n\r\n onSeleccionDays(days: string) {\r\n // console.log(days);\r\n switch (days) {\r\n case \"IndConf1\":\r\n this.datosFacturaCreditoDias = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndConf1')!;\r\n this.doughnutChartColors = [{ backgroundColor: ['#D3D3D3', '#c44ace', '#A9A9A9'] }];\r\n break;\r\n case \"IndConf2\":\r\n this.datosFacturaCreditoDias = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndConf2')!;\r\n this.doughnutChartColors = [{ backgroundColor: ['#D3D3D3', '#A9A9A9', '#c44ace'] }];\r\n break;\r\n case \"IndVencMan\":\r\n this.datosFacturaCreditoDias = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndVencMan')!;\r\n this.doughnutChartColors = [{ backgroundColor: ['#c44ace', '#A9A9A9', '#D3D3D3'] }];\r\n break;\r\n default:\r\n this.datosFacturaCreditoDias = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndVencMan')!;\r\n this.doughnutChartColors = [{ backgroundColor: ['#c44ace', '#A9A9A9', '#D3D3D3'] }];\r\n break;\r\n }\r\n }\r\n\r\n OnClickRecuperarDatos() {\r\n // console.log(this.datosFacturaCreditoDias);\r\n this.genericToasterService.pushSuccess(\"LA_DESCARGA_ESTA_EN_PROCESO\");\r\n this.seguimientoService.RecuperarDatosExportacionCSV(this.datosFacturaCreditoDias?.idDocumentoSobre, this.datosFacturaCreditoDias?.idPaisDocumentoSobre).subscribe((response: any) => {\r\n\r\n let fileName = response.headers.get('fileName');\r\n const file = new File([response.body], fileName, { type: response.body.type });\r\n\r\n let blobURL = window.URL.createObjectURL(file);\r\n\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute('href', blobURL);\r\n a.setAttribute('download', fileName);\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n\r\n },\r\n (err: any) => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n\r\n //merge con la de arriba\r\n OnClickRecuperarDatosTotal() {\r\n // console.log(this.datosFacturaCreditoDias);\r\n this.genericToasterService.pushSuccess(\"LA_DESCARGA_ESTA_EN_PROCESO\");\r\n this.seguimientoService.RecuperarDatosExportacionCSV(this.opcionSeleccionada?.idDocumentoSobre, this.opcionSeleccionada?.idPaisDocumentoSobre).subscribe((response: any) => {\r\n\r\n let fileName = response.headers.get('fileName');\r\n const file = new File([response.body], fileName, { type: response.body.type });\r\n\r\n let blobURL = window.URL.createObjectURL(file);\r\n\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute('href', blobURL);\r\n a.setAttribute('download', fileName);\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n\r\n },\r\n (err: any) => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n\r\n OnClickRecuperarPoroveedoresHabituales() {\r\n this.genericToasterService.pushSuccess(\"LA_DESCARGA_ESTA_EN_PROCESO\");\r\n this.seguimientoService.RecuperarProveedoresHabituales().subscribe((response: any) => {\r\n\r\n let fileName = response.headers.get('fileName');\r\n const file = new File([response.body], fileName, { type: response.body.type });\r\n\r\n let blobURL = window.URL.createObjectURL(file);\r\n\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute('href', blobURL);\r\n a.setAttribute('download', fileName);\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n\r\n },\r\n (err: any) => {\r\n this.genericToasterService.pushError(this.translate.instant('ERROR_APLICACION'));\r\n });\r\n }\r\n\r\n\r\n esADC(): boolean | undefined {\r\n return this.datosFacturaCreditoSCAADC?.some(opt => opt.resourceKey === 'IndInformadas' || opt.resourceKey === 'IndNoInformadas');\r\n }\r\n\r\n onSeleccionDiasShow(exp: string): string | undefined {\r\n return this.datosExtraFacturaCredito.find(x => x.resourceKey === exp)?.valor\r\n }\r\n\r\n onSeleccionExpTac(opcion: string) {\r\n switch (opcion) {\r\n case \"IndAceptExp\":\r\n this.datosFacturaCreditoTacitasExpresas = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndAceptExp')!;\r\n break;\r\n default:\r\n this.datosFacturaCreditoTacitasExpresas = this.datosFacturaCredito.find(opt => opt.resourceKey === 'IndAceptadas')!;\r\n break;\r\n }\r\n }\r\n\r\n onSeleccionSCAADC(opcion: string) {\r\n switch (opcion) {\r\n case \"IndADC\":\r\n this.datosFacturaCreditoSCAADC = this.datosFacturaCredito\r\n .filter(opt => opt.resourceKey === 'IndNoInformadas' || opt.resourceKey === 'IndInformadas')\r\n .sort((a, b) => {\r\n if (a.resourceKey === 'IndInformadas' && b.resourceKey === 'IndNoInformadas') {\r\n return -1;\r\n } else if (a.resourceKey === 'IndNoInformadas' && b.resourceKey === 'IndInformadas') {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n break;\r\n default:\r\n this.datosFacturaCreditoSCAADC = this.datosFacturaCredito.filter(opt => opt.resourceKey === 'IndSCA');\r\n break;\r\n }\r\n }\r\n\r\n onADCTitulo(item: DatosFacturaCredito): string {\r\n let titulo = '';\r\n if (this.esADC()) {\r\n if (item.resourceKey === 'IndInformadas') {\r\n titulo = this.translate.instant('INFORMADAS A CNV');\r\n }\r\n else if (item.resourceKey === 'IndNoInformadas') {\r\n titulo = this.translate.instant('NO INFORMADAS A CNV');\r\n }\r\n }\r\n return titulo;\r\n }\r\n\r\n ConsultaFCRED() {\r\n let busqueda: BusquedaDocumentos = new BusquedaDocumentos();\r\n\r\n busqueda.tipoFecha = \"FECHA_DE_VTO_ACEPTACION\";\r\n switch (this.datosFacturaCreditoDias?.resourceKey) {\r\n case \"IndConf1\":\r\n busqueda.fechaDesde = new Date(new Date().getTime());\r\n busqueda.fechaHasta = new Date(new Date().getTime() + (parseInt(this.onSeleccionDiasShow('DiasIndConf1')!) * 24 * 60 * 60 * 1000));\r\n break;\r\n case \"IndConf2\":\r\n busqueda.fechaDesde = new Date(new Date().getTime());\r\n busqueda.fechaHasta = new Date(new Date().getTime() + (parseInt(this.onSeleccionDiasShow('DiasIndConf2')!) * 24 * 60 * 60 * 1000));\r\n break;\r\n case \"IndVencMan\":\r\n busqueda.fechaDesde = new Date(new Date().getTime());\r\n busqueda.fechaHasta = new Date(new Date().getTime() + (1 * 24 * 60 * 60 * 1000));\r\n break;\r\n default:\r\n busqueda.fechaDesde = new Date(new Date().getTime());\r\n busqueda.fechaHasta = new Date(new Date().getTime());\r\n break;\r\n }\r\n busqueda.estadosCtaCte = [1];\r\n busqueda.pantalla = \"FCRED\";\r\n\r\n this.tableFCredDataService.setSearchFilters(busqueda);\r\n this.router.navigate(['/main/operacionesEspeciales/2075/ConsultaFacturaCreditoMiPyme']);\r\n }\r\n\r\n public onClickAyudaSeguimientoFcred() {\r\n window.open(this.translate.instant(\"instructivo_seguimiento_fcred\"), 'HelpCon');\r\n }\r\n\r\n ConsultaFCRED_TOP() {\r\n let busqueda: BusquedaDocumentos = new BusquedaDocumentos();\r\n \r\n busqueda.tipoFecha = \"FECHA_DE_VTO_ACEPTACION\";\r\n const aYearFromNow = new Date();\r\n aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 2);\r\n busqueda.fechaDesde = new Date();\r\n busqueda.fechaHasta = aYearFromNow;\r\n busqueda.pantalla = \"FCRED\";\r\n if (this.opcionSeleccionada?.resourceKey == 'IndProvNoHab') {\r\n busqueda.estadosCtaCte = [1, 3, 5]; // evitar hardcodeo por ids!!!!!\r\n busqueda.existeEnERP = null;\r\n busqueda.existeEnK360 = null;\r\n busqueda.esProveedorHabitual = false;\r\n }\r\n if (this.opcionSeleccionada?.resourceKey == 'IndNoExisteERP') {\r\n busqueda.estadosCtaCte = [1, 3, 5]; // evitar hardcodeo por ids!!!!!\r\n busqueda.existeEnERP = false;\r\n busqueda.existeEnK360 = null;\r\n busqueda.esProveedorHabitual = null;\r\n }\r\n this.tableFCredDataService.setSessionFilters(busqueda);\r\n this.router.navigate(['/main/operacionesEspeciales/2075/ConsultaFacturaCreditoMiPyme']);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n

\r\n {{ \"PanelSeguimiento\" | translate }}\r\n \r\n \r\n

\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n {{ opt.resourceKey | translate }}\r\n \r\n \r\n \r\n\r\n \r\n {{\"VER_PROV_HABITUAL\" | translate}}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n {{ \"UltimaActualizacion\" | translate }} {{ ultimaFecha?.valor }}\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n

{{ \"Facturas\" | translate }}

\r\n
\r\n \r\n \r\n \r\n

{{ opcionSeleccionada?.cantidad }}

\r\n
\r\n
\r\n
\r\n

{{ \"Proveedores\" | translate }}

\r\n
\r\n \r\n \r\n \r\n \r\n

{{ opcionSeleccionada?.proveedores }}

\r\n
\r\n
\r\n
\r\n

{{ \"ImporteTotal\" | translate }}

\r\n
\r\n \r\n \r\n \r\n

$ {{ opcionSeleccionada?.saldo | number:'1.2-2' }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{ \"FacturasVencer\" | translate }}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ \"TOTAL\" | translate }}: {{totalFacturas}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n

{{ datosFacturaCreditoDias?.cantidad }} {{ \"Facturas\" | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

{{ datosFacturaCreditoDias?.proveedores }} {{ \"Proveedores\" |\r\n translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n

$ {{ datosFacturaCreditoDias?.saldo | number:'1.2-2' }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{ \"FacturasAceptadas\" | translate }}

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

{{ datosFacturaCreditoTacitasExpresas?.cantidad }} {{ \"Facturas\" |\r\n translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

{{ datosFacturaCreditoTacitasExpresas?.proveedores }} {{ \"Proveedores\" |\r\n translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n

$ {{ datosFacturaCreditoTacitasExpresas?.saldo | number:'1.2-2' }}

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{ onADCTitulo(dato) }}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n {{ dato?.cantidad }}\r\n

\r\n

{{ \"Facturas\" | translate }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n {{ dato?.proveedores }}\r\n

\r\n

{{ \"Proveedores\" | translate }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

$ {{ dato?.saldo | number:'1.2-2' }}

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DatosExtraFacturaCredito } from '../modelos/datos-extra-factura-credito';\r\nimport { DatosFacturaCredito } from '../modelos/datos-factura-credito';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SeguimientoFacturaCreditoService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n recuperarDatosIndicadoresFacturaCredito(): Observable {\r\n const url = `${environment.apiUrl}/SeguimientoFacturaCredito/RecuperarDatosIndicadoresFacturaCredito`;\r\n return this.http.get(url);\r\n }\r\n\r\n recuperarDatosExtraIndicadoresFacturaCredito(): Observable {\r\n const url = `${environment.apiUrl}/SeguimientoFacturaCredito/RecuperarDatosExtraIndicadoresFacturaCredito`;\r\n return this.http.get(url);\r\n }\r\n\r\n RecuperarDatosExportacionCSV(idDocumentoSobre: number | undefined, idPaisDocumentoSobre: number | undefined): Observable>{\r\n return this.http.get(`${environment.apiUrl}/SeguimientoFacturaCredito/RecuperarDatosExportacionCSV/id/${idDocumentoSobre}/idpais/${idPaisDocumentoSobre}`, {responseType: 'blob', observe: 'response'});\r\n }\r\n\r\n \r\n RecuperarProveedoresHabituales(): Observable>{\r\n return this.http.get(`${environment.apiUrl}/SeguimientoFacturaCredito/RecuperarProveedoresHabituales`, {responseType: 'blob', observe: 'response'});\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tyc-br',\r\n templateUrl: './tyc-br.component.html',\r\n styleUrls: ['./tyc-br.component.scss']\r\n})\r\nexport class TycBRComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Términos y Condiciones

\r\n

1. SOBRE ESTE DOCUMENTO

\r\n

A continuación se describen los términos y condiciones de uso (en adelante los \"Términos y Condiciones\") aplicables al acceso y la utilización de la plataforma KRIKOS 360 (en adelante también la \"Plataforma\" o el “Sistema” indistintamente) de titularidad de PLANEXWARE S.A., con domicilio en Alberti 2154 piso 7°, Ciudad Autónoma de Buenos Aires, República Argentina, (en lo sucesivo “PLANEXWARE”) así como los alcances y limitaciones de los servicios provistos a través la misma.

\r\n

Este documento conforma un acuerdo vinculante entre Ud. (en adelante el “Usuario”) y PLANEXWARE en los términos del artículo 1105 y concordantes del Código Civil y Comercial de la República Argentina.

\r\n

2. SU ACEPTACIÓN POR PARTE DE LOS USUARIOS

\r\n

PLANEXWARE en su calidad de prestador del servicio, exige que cada usuario, acepte y cumpla los términos aquí incluidos como condición necesaria para el acceso y la utilización de la plataforma KRIKOS 360.

\r\n

En tal sentido, cualquier persona que pretenda acceder y/o utilizar la plataforma KRIKOS 360 podrá hacerlo sujetándose a las disposiciones aquí fijadas y a la normativa legal de orden nacional y local cuya aplicación corresponda.

\r\n

El Usuario que no acepte, no esté de acuerdo, o incumpla lo dispuesto en estos Términos y Condiciones, y/o la Política de Privacidad, no contara con autorización para el acceso y utilización del Sistema, debiendo abstenerse de ingresar, iniciar su sesión de usuario, o hacer uso del Sistema bajo cualquier forma.

\r\n

Cuando un Usuario iniciare su sesión de Usuario en el sistema a través de su identificación con las credenciales otorgadas, se entenderá que ha aceptado y prestado consentimiento en forma positiva respecto del contenido de este texto en su conjunto, asumiendo la obligación de respetar lo aquí dispuesto.

\r\n

3. CONDICIÓN DE USUARIO

\r\n

3.1 Usuarios de KRIKOS 360

\r\n

La plataforma KRIKOS 360 no resulta un servicio del libre acceso, sino que su utilización se encuentra sujeta a la previa existencia de un acuerdo (“Solicitud de Adhesión”) entre PLANEXWARE como prestador del servicio y el prestatario (también el “Titular del Servicio” o el “Licenciatario”).

\r\n

El Titular del Servicio podrá autorizar una determinada cantidad de usuarios de KRIKOS 360 pertenecientes a su organización o externos a la misma, conforme los límites establecidos en la Solicitud de Adhesión. En este sentido, únicamente podrán ser usuarios de KRIKOS 360 aquellas personas que hubieren sido expresamente autorizadas por el titular del servicio, quien será responsable por todas las acciones que lleven adelante en el uso de la Plataforma los usuarios por él designados.

\r\n

Para la adquisición de la calidad de “Usuario”, además de la expresa designación como usuario por parte del Titular del Servicio, se requiere la aceptación (según las formas aquí previstas) de estos Términos y Condiciones, y aquellas disposiciones particulares establecidas o que pueda disponer en el futuro PLANEXWARE en relación a los servicios prestados a través de KRIKOS 360.

\r\n

Sin embargo, para la utilización de algunos servicios, podrá determinarse como requisito, el previo registro del Usuario. Dicho registro tendrá por finalidad establecer la identidad e información de contacto del Usuario.

\r\n

3.2 Credenciales de acceso a KRIKOS 360

\r\n

Cuando el Titular del Servicio designe un usuario de KRIKOS 360, proporcionará un nombre de identificación y una contraseña o password que le permitirán el acceso personalizado, confidencial y seguro a su cuenta dentro de la Plataforma. Los servicios de KRIKOS 360 han sido concebidos para el uso propio del Usuario, por lo tanto, la contraseña de acceso concedida por el Titular del Servicio solo podrá ser usada por el Usuario, estando prohibida su utilización por otra persona distinta al mismo. El Usuario asume la obligación de guarda y custodia de su contraseña de acceso, debiendo informar inmediatamente al Titular del Servicio y a PLANEXWARE cuando los mismos hubieren perdido su estado de confidencialidad.

\r\n

El Usuario será solidariamente responsable junto con el Titular del Servicio por todas las operaciones efectuadas a través de su cuenta personal, debiendo notificar a PLANEXWARE en forma inmediata y por medio idóneo y fehaciente, cualquier uso no autorizado de su cuenta, así como el ingreso por terceros no autorizados a la misma.

\r\n

PLANEXWARE podrá suspender o cancelar en cualquier momento la cuenta del Usuario, sin que tal decisión deba ser justificada, y sin que ello genere derecho a reparación alguna en beneficio del Usuario.

\r\n

3.3 Capacidad legal de los usuarios

\r\n

Únicamente podrán acceder y utilizar KRIKOS 360, quienes a tenor de la legislación vigente en su lugar de residencia puedan válidamente emitir su consentimiento para la celebración de contratos.

\r\n

En el supuesto de actuación en representación de una persona jurídica, el Usuario debe contar con facultades suficientes para contratar en nombre de la entidad invocada y de obligar a la misma en los términos de este documento. Si el Usuario no contare con tales facultades, o actuare en exceso de las mismas, se entenderá que se ha comprometido también a título personal.

\r\n

4. LA PLATAFORMA KRIKOS 360

\r\n

KRIKOS 360 es una plataforma web de integración que permite la transmisión estructurada de documentos electrónicos y datos de negocio entre distintas organizaciones usarías del sistema (titulares del servicio), utilizando múltiples protocolos de comunicación. Permite convertir todos los formatos electrónicos, independientemente del origen y el destino y admite diferentes sistemas de intercambio. KRIKOS 360 es una plataforma multidireccional que no sólo permite la comunicación vertical con los socios del canal, sino que a su vez admite comunicaciones en sentido horizontal con otros usuarios de la misma, como parte emisora y receptora de información al mismo tiempo.

\r\n

KRIKOS 360 no es un repositorio destinado al almacenamiento de documentos o mensajes. La conservación de la información dentro de KRIKOS 360 siempre será temporal, estando disponible para el Usuario por un término de tiempo determinado desde que hubiera sido enviada o recibida. Transcurrido dicho plazo la información será desecha, y no podrá ser accedida ni recuperada.

\r\n

Los servicios brindados a través de KRIKOS 360, están sujetos a su modificación, supresión y/o reemplazo en cualquier momento por parte de PLANEXWARE. Consecuentemente el número, tipo, calidad, condiciones de acceso y utilización de los servicios ofrecidos, podrán variar a través del tiempo, sin que se requiera notificación alguna a los usuarios, a reparo de las obligaciones asumidas por PLANEXWARE en acuerdos con el Titular de Servicio.

\r\n

5. DISPONIBILIDAD DEL SISTEMA

\r\n

PLANEXWARE realiza sus mejores esfuerzos por mantener y mejorar la calidad de sus servicios, sin embargo, no garantiza la provisión continuada e ininterrumpida de los servicios de KRIKOS 360. Asimismo, los sistemas informáticos de los que depende KRIKOS 360 pueden eventualmente no estar disponibles debido a dificultades técnicas o fallas de conectividad, o por cualquier otra circunstancia ajena a PLANEXWARE. Por su parte el Usuario reconoce y acepta que el acceso a los servicios brindados por KRIKOS 360, sólo es posible gracias a la infraestructura de recursos de terceras partes como ser proveedores de conexión a Internet, proveedores de software y hardware, nodos de interconexión, carriers de datos, proveedores de energía eléctrica, etc., sobre los que PLANEXWARE no posee control. En conocimiento de esto el Usuario renuncia expresamente a reclamar cualquier reparación con base en la responsabilidad subjetiva u objetiva de PLANEXWARE por fallos, lentitud, y/o errores en el acceso y uso del servicio, debido a problemas de conectividad, comunicaciones, fallas o averías en los sistemas informáticos u otras contingencias posibles.

\r\n

Tampoco será responsable PLANEXWARE en caso de interrupción del servicio o deficiencias en su prestación cuando ello sea consecuencia de:

\r\n
    \r\n
  1. Fallas originadas a causa de virus informáticos, ataques Dos o DDoS, intrusión no autorizada a los sistemas informáticos, y cualquier otra circunstancia susceptible de ser calificada como un delito informático.
  2. \r\n
  3. Caso fortuito o fuerza mayor.
  4. \r\n
  5. Actos de ciberterrorismo conforme el alcance dado a la definición por la O.N.U.
  6. \r\n
  7. Actos criminales de terceros, como sabotajes, daño a las instalaciones, interrupción de las telecomunicaciones, actos del gobierno, emergencias, catástrofes naturales, crisis económico financieras, guerra.
  8. \r\n
  9. Huelga u otras medidas de fuerza sindicales.
  10. \r\n
\r\n

Por su parte, para la correcta utilización de los servicios, los usuarios deberán: (a) disponer de una computadora personal (PC) que soporte las últimas dos iteraciones cronológicamente publicadas del navegador de internet utilizado (Edge; Chrome; Firefox; Safari); (b) una conexión de banda ancha a internet.

\r\n

PLANEXWARE no garantiza que los servicios sean accesibles con un equipamiento de inferiores características a las descriptas o no configurado correctamente. Los requerimientos para el acceso al sitio podrán variar de tiempo en tiempo, motivo por el cual el usuario acepta que para la utilización del servicio es posible que sea necesario actualizar su equipamiento de software y/o hardware conforme el desarrollo tecnológico de los mismos.

\r\n

6. OBLIGACIONES DEL USUARIO

\r\n

6.1. Uso correcto de los servicios

\r\n

El Usuario se compromete a utilizar la plataforma KRIKOS 360 de conformidad con la ley, estos Términos y Condiciones, así como con la moral, las buenas costumbres y el orden público. El Usuario se obliga a abstenerse de utilizar el Sistema con fines o efectos ilícitos, contrarios a lo establecido en estos Términos y Condiciones, o que resulten lesivos para los derechos e intereses de terceros.

\r\n

6.2 Copias de respaldo

\r\n

El Usuario reconoce y acepta que, dado que KRIKOS 360 sólo conserva en forma temporal y limitada los documentos y comunicaciones cursados por y hacia el Usuario, por dicha circunstancia deberá efectuar y almacenar por su cuenta copias de respaldo de todos y cada uno de los mensajes y documentos que envíe o reciba a través de KRIKOS 360.

\r\n

6.3. Responsabilidades del Usuario:

\r\n

Cada usuario será exclusivo responsable por las acciones que lleve adelante dentro del marco del servicio KRIKOS 360. Sin embargo, cuando PLANEXWARE reciba a través de su mecanismo de recepción de denuncias, la manifestación de una persona, que hubiere sufrido en forma injustificada un menoscabo en cualquiera de sus derechos, tomará en forma inmediata las medidas necesarias para evitar la continuación de la situación perjudicial, y pondrá en conocimiento de las autoridades competentes los acontecimientos del caso.

\r\n

6.4 Responsabilidad por el envío de mensajes y documentos

\r\n

Todo usuario que remita un mensaje, un documento o dé origen a una comunicación a través de KRIKOS 360, asume plena y exclusiva responsabilidad por la remisión de los mismos, sin perjuicio de la responsabilidad solidaria del Titular del Servicio. Mantendrá asimismo indemne a PLANEXWARE en todos los casos en que esta fuere requerida a partir de los contenidos suministrados por el usuario.

\r\n

6.5 Sanciones. Suspensiones o inhabilitaciones

\r\n

Sin perjuicio de otras medidas que estime pertinentes, PLANEXWARE advertirá, suspenderá temporalmente o inhabilitará definitivamente la cuenta de un Usuario si,

\r\n
    \r\n
  1. Se quebrantara alguna ley, los derechos de un tercero, el orden público, la moral y las buenas costumbres, o cualquiera de las estipulaciones de los Términos y Condiciones Generales o los términos y condiciones particulares de cada servicio, y demás disposiciones de PLANEXWARE.
  2. \r\n
  3. Si incumpliera sus compromisos como Usuario.
  4. \r\n
  5. Si se incurriera a criterio de PLANEXWARE en conductas o actos dolosos o fraudulentos.
  6. \r\n
  7. Desarrolle actividades que tengan por objeto vulnerar la seguridad, y/o el normal funcionamiento de los sistemas informáticos de PLANEXWARE o de terceros.
  8. \r\n
\r\n

7. FACULTADES DE DIRECCIÓN Y CONTROL SOBRE LOS SERVICIOS

\r\n

7.1 Facultades reservadas

\r\n

PLANEXWARE se reserva todas las facultades de control y dirección sobre KRIKOS 360, en particular sobre los servicios, contenidos y comunicaciones existentes en el mismo. Podrá en consecuencia PLANEXWARE, introducir todos los cambios y modificaciones que estime convenientes a su solo criterio, podrá agregar, alterar, sustituir o suprimir cualquiera de los servicios en todo momento.

\r\n

SIN PERJUICIO DE ESTAS FACULTADES RESERVADAS, EN RESPETO A LA PRIVACIDAD Y CONFIDENCIALIDAD DE LAS COMUNICACIONES DE LOS USUARIOS, PLANEXWARE NO EJERCERÁ NINGÚN CONTROL DE LEGALIDAD SOBRE LAS COMUNICACIONES LLEVADAS ADELANTE POR LOS USUARIOS. CONSECUENTEMENTE NO SERÁ RESPONSABLE POR EL USO CONTRARIO A DERECHO DE LOS SERVICIOS QUE EFECTUEN LOS USUARIOS.

\r\n

7.2 Autorización de intercepción, acceso y desvío de comunicaciones

\r\n

EL Usuario confiere expresa autorización a PLANEXWARE, para permitirle monitorear, supervisar, intervenir, captar, interceptar, desviar, acceder, suspender o interrumpir sus comunicaciones electrónicas cursadas a través de KRIKOS 360 a los fines de brindar el servicio, o por cualquier otro tipo de circunstancia que en principio y con carácter preventivo sea identificada como peligrosa, potencialmente peligrosa o indeseada por parte de PLANEXWARE. El Usuario reconoce y acepta que la actividad de PLANEXWARE con relación a sus comunicaciones resulta consentida y necesaria para la prestación del servicio KRIKOS 360, y que tal actividad no resulta alcanzada por el art. 153 del Código Penal Argentino.

\r\n

En igual sentido el Usuario autoriza a PLANEXWARE a desviar, suspender o interrumpir sus comunicaciones electrónicas cursadas a través de KRIKOS 360, a los fines de la realización de tareas de mantenimiento y/o actualización de sus sistemas informáticos.

\r\n

8. EXCLUSIÓN DE RESPONSABILIDAD POR LOS SERVICIOS Y CONTENIDOS

\r\n

8.1 Responsabilidad de PLANEXWARE

\r\n

Los servicios de KRIKOS 360 PLANEXWARE se brindan únicamente como una herramienta auxiliar. PLANEXWARE no asume responsabilidad por ninguna consecuencia que resulte directa o indirectamente de cualquier acción o falta de acción que el Usuario emprenda sobre la base de la información, los servicios u otros elementos resulten accesibles a través de KRIKOS 360.

\r\n

El Usuario acepta específicamente que PLANEXWARE no será responsable por el acceso o la alteración de las transmisiones, datos y/o archivos, por cualquier material o datos enviados o recibidos, o no enviados o no recibidos.

\r\n

PLANEXWARE no responderá por la pérdida de datos y/o archivos, cualesquiera que hayan sido las causas, personas o circunstancias que lo hayan provocado, salvo cuando ello derivare de su propia y exclusiva culpa o dolo.

\r\n

PLANEXWARE no responderá en ningún caso de la utilidad, idoneidad, disponibilidad, exactitud, oportunidad, fiabilidad, pertinencia, actualidad, licitud o veracidad de los archivos transmitidos hacia y desde KRIKOS 360.

\r\n

PLANEXWARE no será responsable por a) los daños que pudiera sufrir el Usuario originados en los riesgos propios de Internet, incluyendo a título de ejemplo, la interacción entre KRIKOS 360 y los equipos del Usuario, o la alteración por terceros de la información transmitida a través de KRIKOS 360 o alojada en los equipos informáticos del Usuario o de PLANEXWARE, b) la alteración, pérdida o sustracción de datos cursados por medio de las redes públicas de comunicaciones.

\r\n

PLANEXWARE no responderá en el caso que el Usuario experimentare problemas de acceso a KRIKOS 360 derivados de la utilización de equipos o con programas informáticos obsoletos o mediante conexiones a Internet de calidad pobre o escaso ancho de banda.

\r\n

PLANEXWARE excluye cualquier responsabilidad por los daños y perjuicios de toda naturaleza que puedan deberse a la falta de disponibilidad o de continuidad del funcionamiento del Producto, a la defraudación de las expectativas que los usuarios hubieren podido atribuir al Producto.

\r\n

PLANEXWARE EXCLUYE, CON TODA LA EXTENSIÓN PERMITIDA POR EL ORDENAMIENTO JURÍDICO APLICABLE, CUALQUIER RESPONSABILIDAD POR LOS DAÑOS Y PERJUICIOS DE TODA NATURALEZA QUE PUEDAN DEBERSE A LA TRANSMISIÓN, DIFUSIÓN, ALMACENAMIENTO, PUESTA A DISPOSICIÓN, ENVÍO Y RECEPCIÓN, DE MENSAJES O DOCUMENTOS, ASÍ COMO CUALQUIER OTRO MATERIAL O INFORMACIÓN QUE SE ENVÍE HACIA O DESDE LA PLATAFORMA KRIKOS 360.

\r\n

PLANEXWARE no responderá por cualquier circunstancia (tales como pérdidas o cualquier otra), ya sea del Usuario o de un tercero, que pueda derivarse del extravío, robo, o uso de cualquier clave de acceso o password del Usuario.

\r\n

La puesta a disposición del software se considerará bajo la modalidad “as-is” (“en la condición en que se encuentra”) y sin garantía alguna, expresa o implícita, de ningún tipo sobre un resultado concreto.

\r\n

8.2 Confidencialidad de la información

\r\n

PLANEXWARE tratará la información de los usuarios, bajo estrictas normas de confidencialidad en resguardo de su privacidad, en ningún caso accederá o utilizará la información de los usuarios salvo en aquellas cuestiones que haga estrictamente a la prestación de los servicios de KRIKOS 360 (conforme art. 3 Ley 24.766).

\r\n

8.3 Material titularidad de terceros

\r\n

En uso de KRIKOS 360, el usuario puede tener acceso a documentos provistos por terceros. PLANEXWARE no extiende ningún tipo de garantía sobre la licitud, exactitud, fiabilidad y/o legitimidad del material provisto por terceros.

\r\n

9. POLÍTICA DE PRIVACIDAD

\r\n

Ver Política de Privacidad

\r\n

10. INFORMACIÓN DE CONTACTO

\r\n

A los fines que los usuarios puedan tomar contacto con PLANEXWARE, se considerarán válidas las comunicaciones dirigidas a: info@planexware.com

\r\n

Las notificaciones y comunicaciones cursadas por PLANEXWARE a la dirección postal o, a la casilla de correo electrónico consignada directamente por el usuario, en los formularios de registro o, aquella que surja como domicilio o dirección de correo del remitente en los casos que entable comunicación un visitante no registrado, se considerarán eficaces y plenamente válidas. Asimismo, se considerarán eficaces las comunicaciones que consistan en avisos y mensajes insertos en KRIKOS 360, o que se envíen durante la prestación de un servicio, que tengan por finalidad informar a los usuarios sobre determinada circunstancia.

\r\n

11. CAMBIOS Y MODIFICACIONES

\r\n

PLANEXWARE podrá introducir todos los cambios y modificaciones que estime convenientes a su solo criterio, sobre estos Términos y Condiciones, en cualquier momento y sin previo aviso, bastando la sola publicación en la página de acceso a KRIKOS 360 de los términos modificados. Todos los términos modificados entrarán en vigor al día siguiente al de su publicación. Dentro de los 3 (tres) días siguientes a la publicación de las modificaciones introducidas, el Usuario deberá comunicar por correo electrónico el rechazo de las mismas; en ese supuesto quedará disuelto el vínculo y será inhabilitado como Usuario. Vencido este plazo, se considerará que el Usuario acepta los nuevos términos.

\r\n

12. JURISDICCIÓN Y COMPETENCIA

\r\n

Este acuerdo estará regido en todos sus puntos por las leyes vigentes en la República Argentina. Cualquier controversia derivada del presente acuerdo, su existencia, validez, interpretación, alcance o cumplimiento, será sometida a la Justicia Nacional con jurisdicción en la Ciudad Autónoma de Buenos Aires.

\r\n
\r\n
\r\n Código: POL/DES-8-008\r\n
\r\n Revisión: 002\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tyc-es',\r\n templateUrl: './tyc-es.component.html',\r\n styleUrls: ['./tyc-es.component.scss']\r\n})\r\nexport class TycESComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Términos y Condiciones

\r\n

1. SOBRE ESTE DOCUMENTO

\r\n

A continuación se describen los términos y condiciones de uso (en adelante los \"Términos y Condiciones\") aplicables al acceso y la utilización de la plataforma KRIKOS 360 (en adelante también la \"Plataforma\" o el “Sistema” indistintamente) de titularidad de PLANEXWARE S.A., con domicilio en Alberti 2154 piso 7°, Ciudad Autónoma de Buenos Aires, República Argentina, (en lo sucesivo “PLANEXWARE”) así como los alcances y limitaciones de los servicios provistos a través la misma.

\r\n

Este documento conforma un acuerdo vinculante entre Ud. (en adelante el “Usuario”) y PLANEXWARE en los términos del artículo 1105 y concordantes del Código Civil y Comercial de la República Argentina.

\r\n

2. SU ACEPTACIÓN POR PARTE DE LOS USUARIOS

\r\n

PLANEXWARE en su calidad de prestador del servicio, exige que cada usuario, acepte y cumpla los términos aquí incluidos como condición necesaria para el acceso y la utilización de la plataforma KRIKOS 360.

\r\n

En tal sentido, cualquier persona que pretenda acceder y/o utilizar la plataforma KRIKOS 360 podrá hacerlo sujetándose a las disposiciones aquí fijadas y a la normativa legal de orden nacional y local cuya aplicación corresponda.

\r\n

El Usuario que no acepte, no esté de acuerdo, o incumpla lo dispuesto en estos Términos y Condiciones, y/o la Política de Privacidad, no contara con autorización para el acceso y utilización del Sistema, debiendo abstenerse de ingresar, iniciar su sesión de usuario, o hacer uso del Sistema bajo cualquier forma.

\r\n

Cuando un Usuario iniciare su sesión de Usuario en el sistema a través de su identificación con las credenciales otorgadas, se entenderá que ha aceptado y prestado consentimiento en forma positiva respecto del contenido de este texto en su conjunto, asumiendo la obligación de respetar lo aquí dispuesto.

\r\n

3. CONDICIÓN DE USUARIO

\r\n

3.1 Usuarios de KRIKOS 360

\r\n

La plataforma KRIKOS 360 no resulta un servicio del libre acceso, sino que su utilización se encuentra sujeta a la previa existencia de un acuerdo (“Solicitud de Adhesión”) entre PLANEXWARE como prestador del servicio y el prestatario (también el “Titular del Servicio” o el “Licenciatario”).

\r\n

El Titular del Servicio podrá autorizar una determinada cantidad de usuarios de KRIKOS 360 pertenecientes a su organización o externos a la misma, conforme los límites establecidos en la Solicitud de Adhesión. En este sentido, únicamente podrán ser usuarios de KRIKOS 360 aquellas personas que hubieren sido expresamente autorizadas por el titular del servicio, quien será responsable por todas las acciones que lleven adelante en el uso de la Plataforma los usuarios por él designados.

\r\n

Para la adquisición de la calidad de “Usuario”, además de la expresa designación como usuario por parte del Titular del Servicio, se requiere la aceptación (según las formas aquí previstas) de estos Términos y Condiciones, y aquellas disposiciones particulares establecidas o que pueda disponer en el futuro PLANEXWARE en relación a los servicios prestados a través de KRIKOS 360.

\r\n

Sin embargo, para la utilización de algunos servicios, podrá determinarse como requisito, el previo registro del Usuario. Dicho registro tendrá por finalidad establecer la identidad e información de contacto del Usuario.

\r\n

3.2 Credenciales de acceso a KRIKOS 360

\r\n

Cuando el Titular del Servicio designe un usuario de KRIKOS 360, proporcionará un nombre de identificación y una contraseña o password que le permitirán el acceso personalizado, confidencial y seguro a su cuenta dentro de la Plataforma. Los servicios de KRIKOS 360 han sido concebidos para el uso propio del Usuario, por lo tanto, la contraseña de acceso concedida por el Titular del Servicio solo podrá ser usada por el Usuario, estando prohibida su utilización por otra persona distinta al mismo. El Usuario asume la obligación de guarda y custodia de su contraseña de acceso, debiendo informar inmediatamente al Titular del Servicio y a PLANEXWARE cuando los mismos hubieren perdido su estado de confidencialidad.

\r\n

El Usuario será solidariamente responsable junto con el Titular del Servicio por todas las operaciones efectuadas a través de su cuenta personal, debiendo notificar a PLANEXWARE en forma inmediata y por medio idóneo y fehaciente, cualquier uso no autorizado de su cuenta, así como el ingreso por terceros no autorizados a la misma.

\r\n

PLANEXWARE podrá suspender o cancelar en cualquier momento la cuenta del Usuario, sin que tal decisión deba ser justificada, y sin que ello genere derecho a reparación alguna en beneficio del Usuario.

\r\n

3.3 Capacidad legal de los usuarios

\r\n

Únicamente podrán acceder y utilizar KRIKOS 360, quienes a tenor de la legislación vigente en su lugar de residencia puedan válidamente emitir su consentimiento para la celebración de contratos.

\r\n

En el supuesto de actuación en representación de una persona jurídica, el Usuario debe contar con facultades suficientes para contratar en nombre de la entidad invocada y de obligar a la misma en los términos de este documento. Si el Usuario no contare con tales facultades, o actuare en exceso de las mismas, se entenderá que se ha comprometido también a título personal.

\r\n

4. LA PLATAFORMA KRIKOS 360

\r\n

KRIKOS 360 es una plataforma web de integración que permite la transmisión estructurada de documentos electrónicos y datos de negocio entre distintas organizaciones usarías del sistema (titulares del servicio), utilizando múltiples protocolos de comunicación. Permite convertir todos los formatos electrónicos, independientemente del origen y el destino y admite diferentes sistemas de intercambio. KRIKOS 360 es una plataforma multidireccional que no sólo permite la comunicación vertical con los socios del canal, sino que a su vez admite comunicaciones en sentido horizontal con otros usuarios de la misma, como parte emisora y receptora de información al mismo tiempo.

\r\n

KRIKOS 360 no es un repositorio destinado al almacenamiento de documentos o mensajes. La conservación de la información dentro de KRIKOS 360 siempre será temporal, estando disponible para el Usuario por un término de tiempo determinado desde que hubiera sido enviada o recibida. Transcurrido dicho plazo la información será desecha, y no podrá ser accedida ni recuperada.

\r\n

Los servicios brindados a través de KRIKOS 360, están sujetos a su modificación, supresión y/o reemplazo en cualquier momento por parte de PLANEXWARE. Consecuentemente el número, tipo, calidad, condiciones de acceso y utilización de los servicios ofrecidos, podrán variar a través del tiempo, sin que se requiera notificación alguna a los usuarios, a reparo de las obligaciones asumidas por PLANEXWARE en acuerdos con el Titular de Servicio.

\r\n

5. DISPONIBILIDAD DEL SISTEMA

\r\n

PLANEXWARE realiza sus mejores esfuerzos por mantener y mejorar la calidad de sus servicios, sin embargo, no garantiza la provisión continuada e ininterrumpida de los servicios de KRIKOS 360. Asimismo, los sistemas informáticos de los que depende KRIKOS 360 pueden eventualmente no estar disponibles debido a dificultades técnicas o fallas de conectividad, o por cualquier otra circunstancia ajena a PLANEXWARE. Por su parte el Usuario reconoce y acepta que el acceso a los servicios brindados por KRIKOS 360, sólo es posible gracias a la infraestructura de recursos de terceras partes como ser proveedores de conexión a Internet, proveedores de software y hardware, nodos de interconexión, carriers de datos, proveedores de energía eléctrica, etc., sobre los que PLANEXWARE no posee control. En conocimiento de esto el Usuario renuncia expresamente a reclamar cualquier reparación con base en la responsabilidad subjetiva u objetiva de PLANEXWARE por fallos, lentitud, y/o errores en el acceso y uso del servicio, debido a problemas de conectividad, comunicaciones, fallas o averías en los sistemas informáticos u otras contingencias posibles.

\r\n

Tampoco será responsable PLANEXWARE en caso de interrupción del servicio o deficiencias en su prestación cuando ello sea consecuencia de:

\r\n
    \r\n
  1. Fallas originadas a causa de virus informáticos, ataques Dos o DDoS, intrusión no autorizada a los sistemas informáticos, y cualquier otra circunstancia susceptible de ser calificada como un delito informático.
  2. \r\n
  3. Caso fortuito o fuerza mayor.
  4. \r\n
  5. Actos de ciberterrorismo conforme el alcance dado a la definición por la O.N.U.
  6. \r\n
  7. Actos criminales de terceros, como sabotajes, daño a las instalaciones, interrupción de las telecomunicaciones, actos del gobierno, emergencias, catástrofes naturales, crisis económico financieras, guerra.
  8. \r\n
  9. Huelga u otras medidas de fuerza sindicales.
  10. \r\n
\r\n

Por su parte, para la correcta utilización de los servicios, los usuarios deberán: (a) disponer de una computadora personal (PC) que soporte las últimas dos iteraciones cronológicamente publicadas del navegador de internet utilizado (Edge; Chrome; Firefox; Safari); (b) una conexión de banda ancha a internet.

\r\n

PLANEXWARE no garantiza que los servicios sean accesibles con un equipamiento de inferiores características a las descriptas o no configurado correctamente. Los requerimientos para el acceso al sitio podrán variar de tiempo en tiempo, motivo por el cual el usuario acepta que para la utilización del servicio es posible que sea necesario actualizar su equipamiento de software y/o hardware conforme el desarrollo tecnológico de los mismos.

\r\n

6. OBLIGACIONES DEL USUARIO

\r\n

6.1. Uso correcto de los servicios

\r\n

El Usuario se compromete a utilizar la plataforma KRIKOS 360 de conformidad con la ley, estos Términos y Condiciones, así como con la moral, las buenas costumbres y el orden público. El Usuario se obliga a abstenerse de utilizar el Sistema con fines o efectos ilícitos, contrarios a lo establecido en estos Términos y Condiciones, o que resulten lesivos para los derechos e intereses de terceros.

\r\n

6.2 Copias de respaldo

\r\n

El Usuario reconoce y acepta que, dado que KRIKOS 360 sólo conserva en forma temporal y limitada los documentos y comunicaciones cursados por y hacia el Usuario, por dicha circunstancia deberá efectuar y almacenar por su cuenta copias de respaldo de todos y cada uno de los mensajes y documentos que envíe o reciba a través de KRIKOS 360.

\r\n

6.3. Responsabilidades del Usuario:

\r\n

Cada usuario será exclusivo responsable por las acciones que lleve adelante dentro del marco del servicio KRIKOS 360. Sin embargo, cuando PLANEXWARE reciba a través de su mecanismo de recepción de denuncias, la manifestación de una persona, que hubiere sufrido en forma injustificada un menoscabo en cualquiera de sus derechos, tomará en forma inmediata las medidas necesarias para evitar la continuación de la situación perjudicial, y pondrá en conocimiento de las autoridades competentes los acontecimientos del caso.

\r\n

6.4 Responsabilidad por el envío de mensajes y documentos

\r\n

Todo usuario que remita un mensaje, un documento o dé origen a una comunicación a través de KRIKOS 360, asume plena y exclusiva responsabilidad por la remisión de los mismos, sin perjuicio de la responsabilidad solidaria del Titular del Servicio. Mantendrá asimismo indemne a PLANEXWARE en todos los casos en que esta fuere requerida a partir de los contenidos suministrados por el usuario.

\r\n

6.5 Sanciones. Suspensiones o inhabilitaciones

\r\n

Sin perjuicio de otras medidas que estime pertinentes, PLANEXWARE advertirá, suspenderá temporalmente o inhabilitará definitivamente la cuenta de un Usuario si,

\r\n
    \r\n
  1. Se quebrantara alguna ley, los derechos de un tercero, el orden público, la moral y las buenas costumbres, o cualquiera de las estipulaciones de los Términos y Condiciones Generales o los términos y condiciones particulares de cada servicio, y demás disposiciones de PLANEXWARE.
  2. \r\n
  3. Si incumpliera sus compromisos como Usuario.
  4. \r\n
  5. Si se incurriera a criterio de PLANEXWARE en conductas o actos dolosos o fraudulentos.
  6. \r\n
  7. Desarrolle actividades que tengan por objeto vulnerar la seguridad, y/o el normal funcionamiento de los sistemas informáticos de PLANEXWARE o de terceros.
  8. \r\n
\r\n

7. FACULTADES DE DIRECCIÓN Y CONTROL SOBRE LOS SERVICIOS

\r\n

7.1 Facultades reservadas

\r\n

PLANEXWARE se reserva todas las facultades de control y dirección sobre KRIKOS 360, en particular sobre los servicios, contenidos y comunicaciones existentes en el mismo. Podrá en consecuencia PLANEXWARE, introducir todos los cambios y modificaciones que estime convenientes a su solo criterio, podrá agregar, alterar, sustituir o suprimir cualquiera de los servicios en todo momento.

\r\n

SIN PERJUICIO DE ESTAS FACULTADES RESERVADAS, EN RESPETO A LA PRIVACIDAD Y CONFIDENCIALIDAD DE LAS COMUNICACIONES DE LOS USUARIOS, PLANEXWARE NO EJERCERÁ NINGÚN CONTROL DE LEGALIDAD SOBRE LAS COMUNICACIONES LLEVADAS ADELANTE POR LOS USUARIOS. CONSECUENTEMENTE NO SERÁ RESPONSABLE POR EL USO CONTRARIO A DERECHO DE LOS SERVICIOS QUE EFECTUEN LOS USUARIOS.

\r\n

7.2 Autorización de intercepción, acceso y desvío de comunicaciones

\r\n

EL Usuario confiere expresa autorización a PLANEXWARE, para permitirle monitorear, supervisar, intervenir, captar, interceptar, desviar, acceder, suspender o interrumpir sus comunicaciones electrónicas cursadas a través de KRIKOS 360 a los fines de brindar el servicio, o por cualquier otro tipo de circunstancia que en principio y con carácter preventivo sea identificada como peligrosa, potencialmente peligrosa o indeseada por parte de PLANEXWARE. El Usuario reconoce y acepta que la actividad de PLANEXWARE con relación a sus comunicaciones resulta consentida y necesaria para la prestación del servicio KRIKOS 360, y que tal actividad no resulta alcanzada por el art. 153 del Código Penal Argentino.

\r\n

En igual sentido el Usuario autoriza a PLANEXWARE a desviar, suspender o interrumpir sus comunicaciones electrónicas cursadas a través de KRIKOS 360, a los fines de la realización de tareas de mantenimiento y/o actualización de sus sistemas informáticos.

\r\n

8. EXCLUSIÓN DE RESPONSABILIDAD POR LOS SERVICIOS Y CONTENIDOS

\r\n

8.1 Responsabilidad de PLANEXWARE

\r\n

Los servicios de KRIKOS 360 PLANEXWARE se brindan únicamente como una herramienta auxiliar. PLANEXWARE no asume responsabilidad por ninguna consecuencia que resulte directa o indirectamente de cualquier acción o falta de acción que el Usuario emprenda sobre la base de la información, los servicios u otros elementos resulten accesibles a través de KRIKOS 360.

\r\n

El Usuario acepta específicamente que PLANEXWARE no será responsable por el acceso o la alteración de las transmisiones, datos y/o archivos, por cualquier material o datos enviados o recibidos, o no enviados o no recibidos.

\r\n

PLANEXWARE no responderá por la pérdida de datos y/o archivos, cualesquiera que hayan sido las causas, personas o circunstancias que lo hayan provocado, salvo cuando ello derivare de su propia y exclusiva culpa o dolo.

\r\n

PLANEXWARE no responderá en ningún caso de la utilidad, idoneidad, disponibilidad, exactitud, oportunidad, fiabilidad, pertinencia, actualidad, licitud o veracidad de los archivos transmitidos hacia y desde KRIKOS 360.

\r\n

PLANEXWARE no será responsable por a) los daños que pudiera sufrir el Usuario originados en los riesgos propios de Internet, incluyendo a título de ejemplo, la interacción entre KRIKOS 360 y los equipos del Usuario, o la alteración por terceros de la información transmitida a través de KRIKOS 360 o alojada en los equipos informáticos del Usuario o de PLANEXWARE, b) la alteración, pérdida o sustracción de datos cursados por medio de las redes públicas de comunicaciones.

\r\n

PLANEXWARE no responderá en el caso que el Usuario experimentare problemas de acceso a KRIKOS 360 derivados de la utilización de equipos o con programas informáticos obsoletos o mediante conexiones a Internet de calidad pobre o escaso ancho de banda.

\r\n

PLANEXWARE excluye cualquier responsabilidad por los daños y perjuicios de toda naturaleza que puedan deberse a la falta de disponibilidad o de continuidad del funcionamiento del Producto, a la defraudación de las expectativas que los usuarios hubieren podido atribuir al Producto.

\r\n

PLANEXWARE EXCLUYE, CON TODA LA EXTENSIÓN PERMITIDA POR EL ORDENAMIENTO JURÍDICO APLICABLE, CUALQUIER RESPONSABILIDAD POR LOS DAÑOS Y PERJUICIOS DE TODA NATURALEZA QUE PUEDAN DEBERSE A LA TRANSMISIÓN, DIFUSIÓN, ALMACENAMIENTO, PUESTA A DISPOSICIÓN, ENVÍO Y RECEPCIÓN, DE MENSAJES O DOCUMENTOS, ASÍ COMO CUALQUIER OTRO MATERIAL O INFORMACIÓN QUE SE ENVÍE HACIA O DESDE LA PLATAFORMA KRIKOS 360.

\r\n

PLANEXWARE no responderá por cualquier circunstancia (tales como pérdidas o cualquier otra), ya sea del Usuario o de un tercero, que pueda derivarse del extravío, robo, o uso de cualquier clave de acceso o password del Usuario.

\r\n

La puesta a disposición del software se considerará bajo la modalidad “as-is” (“en la condición en que se encuentra”) y sin garantía alguna, expresa o implícita, de ningún tipo sobre un resultado concreto.

\r\n

8.2 Confidencialidad de la información

\r\n

PLANEXWARE tratará la información de los usuarios, bajo estrictas normas de confidencialidad en resguardo de su privacidad, en ningún caso accederá o utilizará la información de los usuarios salvo en aquellas cuestiones que haga estrictamente a la prestación de los servicios de KRIKOS 360 (conforme art. 3 Ley 24.766).

\r\n

8.3 Material titularidad de terceros

\r\n

En uso de KRIKOS 360, el usuario puede tener acceso a documentos provistos por terceros. PLANEXWARE no extiende ningún tipo de garantía sobre la licitud, exactitud, fiabilidad y/o legitimidad del material provisto por terceros.

\r\n

9. POLÍTICA DE PRIVACIDAD

\r\n

Ver Política de Privacidad

\r\n

10. INFORMACIÓN DE CONTACTO

\r\n

A los fines que los usuarios puedan tomar contacto con PLANEXWARE, se considerarán válidas las comunicaciones dirigidas a: info@planexware.com

\r\n

Las notificaciones y comunicaciones cursadas por PLANEXWARE a la dirección postal o, a la casilla de correo electrónico consignada directamente por el usuario, en los formularios de registro o, aquella que surja como domicilio o dirección de correo del remitente en los casos que entable comunicación un visitante no registrado, se considerarán eficaces y plenamente válidas. Asimismo, se considerarán eficaces las comunicaciones que consistan en avisos y mensajes insertos en KRIKOS 360, o que se envíen durante la prestación de un servicio, que tengan por finalidad informar a los usuarios sobre determinada circunstancia.

\r\n

11. CAMBIOS Y MODIFICACIONES

\r\n

PLANEXWARE podrá introducir todos los cambios y modificaciones que estime convenientes a su solo criterio, sobre estos Términos y Condiciones, en cualquier momento y sin previo aviso, bastando la sola publicación en la página de acceso a KRIKOS 360 de los términos modificados. Todos los términos modificados entrarán en vigor al día siguiente al de su publicación. Dentro de los 3 (tres) días siguientes a la publicación de las modificaciones introducidas, el Usuario deberá comunicar por correo electrónico el rechazo de las mismas; en ese supuesto quedará disuelto el vínculo y será inhabilitado como Usuario. Vencido este plazo, se considerará que el Usuario acepta los nuevos términos.

\r\n

12. JURISDICCIÓN Y COMPETENCIA

\r\n

Este acuerdo estará regido en todos sus puntos por las leyes vigentes en la República Argentina. Cualquier controversia derivada del presente acuerdo, su existencia, validez, interpretación, alcance o cumplimiento, será sometida a la Justicia Nacional con jurisdicción en la Ciudad Autónoma de Buenos Aires.

\r\n
\r\n
\r\n Código: POL/DES-8-008\r\n
\r\n Revisión: 002\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tyc-us',\r\n templateUrl: './tyc-us.component.html',\r\n styleUrls: ['./tyc-us.component.scss']\r\n})\r\nexport class TycUSComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Terms and conditions

\r\n

1. ABOUT THIS DOCUMENT

\r\n

The following are the terms and conditions of use (hereinafter the \"Terms and Conditions\") applicable to the access and use of KRIKOS360 (hereinafter the \"Platform\" or the \"System\" indistinctly) belonging to PLANEXWARE S.A., domiciled at Alberti nr. 2154, 7th floor, Autonomous City of Buenos Aires, Republic of Argentina (hereinafter \"PLANEXWARE\") as well as the scope and restrictions of the services provided by it.

\r\n

This document is a binding agreement between you (hereinafter the \"User\") and PLANEXWARE pursuant to the terms of Section 1105 and related provisions of the Civil and Commercial Code of the Republic of Argentina.

\r\n

2. ACCEPTANCE BY USERS

\r\n

PLANEXWARE, in its capacity as service provider, requests each of the users to accept and fulfill with the terms herein included as a necessary condition to access and use KRIKOS360 platform.

\r\n

In this sense, any person who wishes to access and/or use KRIKOS360 platform may do so by observing the provisions herein and the national and local applicable legal rules, as the case may be.

\r\n

Any User who does not accept the above mentioned, or does not agree thereto, or fails to comply with the Terms and Conditions herein, and/or with the Privacy Policy, shall not be authorized to access and use the System, and must refrain from any kind of access, login or use of the System.

\r\n

Whenever a User logs in to the System through its ID with the credentials already granted, it will be understood that he accepts and agrees to the contents of this writing as a whole, and that he agrees to be bound by the provisions herein.

\r\n

3. USER CONDITION

\r\n

3.1 Users of KRIKOS360

\r\n

KRIKOS360 platform is not a free access service, but its use is subject to a previous agreement (\"Membership Agreement\") between PLANEXWARE as service provider and the customer (also the \"Holder of the Service\" or the \"Licensee\").

\r\n

The Holder of the Service may authorize a certain number of KRIKOS360 users, belonging to its organization or not, according to the limits set forth in the Membership Agreement. In this sense, only those persons previously authorized by the holder of the service may become users of KRIKOS360, and the latter will be responsible for all the activities performed by the authorized users while using the Platform.

\r\n

To become a \"User\", besides the express authorization by the Holder of the Service, it is necessary to accept these Terms and Conditions (according to the provisions herein set forth) and all those specific provisions applicable or to be applicable in the future pursuant to PLANEXWARE criteria in relation to the services provided by KRIKOS360.

\r\n

However, to use certain services, previous registration of the User might be requested. The purpose of said registration is to determine the identity and information of the User's contact.

\r\n

3.2. Credentials to access KRIKOS360

\r\n

When the Holder of the Service appoints a user for KRIKOS360, it shall provide an identification name and a password to let the user access the Platform on a personal, confidential and security basis, KRIKOS360 services have been conceived for the User's use, therefore, the access password granted by the Holder of the Service may only be used by the User, and it is forbidden its use by any other person rather than the user. The User is responsible for the care and custody of its access password, and it must inform immediately the Holder of the Service and PLANEXWARE whenever the confidentiality status is lost.

\r\n

The User and the Holder of the Service will be jointly liable for all operations executed through the user's personal account, and he must notify immediately PLANEXWARE through any reliable means in case of any unauthorized use of his account and/or any login by unauthorized third party.

\r\n

PLANEXWARE may decide the suspension or cancellation of a User's account at any time whatsoever, at its own criteria, and this decision does not imply any right of compensation to the User.

\r\n

3.3 User's legal capacity

\r\n

KRIKOS360 may only be accessed and used by any person with capacity to express his consent and to execute agreements according to the legislation in force in his place of residence.

\r\n

In case the User acts in representation of a legal person, he must have enough powers to enter into agreements on its behalf to bind it pursuant to the terms and conditions hereof. If the User does not have sufficient powers, or acts beyond the powers granted to him, it will be understood that the User is also bound personally.

\r\n

4. KRIKOS360 PLATFORM

\r\n

KRIKOS360 is a web integration platform which facilitates the transmission of e-documents and business data between different organizations using the system (holders of the service) through multiple communication protocols. It allows the conversion of all electronic formats, regardless the origin and destination, and admits different exchange systems. KRIKOS360 is a multi directional platform that allows not only vertical communication with the channel's partners but also horizontal communications between the users of the platform, as issuer and receiver of the information at the same time.

\r\n

KRIKOS360 is not a repository aimed to store documents or messages. Within KRIKOS360, the storage of information is always temporary, and will be available for the Users only for a certain term as of the date of issue or reception. Upon expiration of that term, the information will be deleted, without possibilities to access it or to recover it any longer.

\r\n

All services provided on KRIKOS360 are subject to changes, removal or replacement by PLANEXWARE at any time whatsoever. Therefor, the number, type, quality, access conditions and use of the services offered by PLANEXWARE may change in time, without previous notice to the users, according to the commitments assumed by PLANEXWARE in the agreements entered into with each Holder of the Service.

\r\n

5. AVAILABILITY OF THE SERVICE

\r\n

PLANEXWARE makes its best efforts to keep and enhance the quality of its services. However, it does not guarantee a continuous and uninterrupted provision of KRIKOS360 services. Likewise, the software systems on which KRIKOS360 depends might eventually not be available due to technical difficulties or to connectivity failures or to any other circumstance beyond PLANEXWARE control. The User acknowledges and accepts that access to the services provided by KRIKOS360 is only possible thanks to the infrastructure of resources provided by other third parties, as for example Internet connection providers, software and hardware providers, interconnection nodes, data carriers, electricity suppliers, etc, on which PLANEXWARE has no control whatsoever. Aware of the above mentioned, the User expressly waives any claim for compensation based on PLANEXWARE's strict liability or on any liability based on breach of a duty in case of failures, slowness and/or errors in the access and use of the services due to connectivity or communications problems, to failures or damages in the software systems or to any other possible contingency.

\r\n

PLANEXWARE shall neither be liable in case of interruption of the service or of poor provision of services resulting from:

\r\n
    \r\n
  1. Failures arising from computer viruses, Dos or DDoS attacks, unauthorized hacking into computer systems and any further circumstance susceptible to be qualified as a computer-related crime.
  2. \r\n
  3. Act of God or force majeure.
  4. \r\n
  5. Cyberterrorism activities according to the definition given by the U.N.
  6. \r\n
  7. Third parties criminal acts, such as sabotage, damage to the facilities, disruption of telecommunications, acts of government, emergencies, natural hazards, economic and financial crisis, war.
  8. \r\n
  9. Strikes or other trade union force actions.
  10. \r\n
\r\n

Besides, for a correct use of the services, Users must fulfill the following requirements: (a) have available a PC supporting the two last iterations chronologically published by the internet browser used (Edge, Chrome, Firefox, Safari); (b) broadband internet connection.

\r\n

PLANEXWARE does not guarantee accessibility to services if the hardware used does not meet the above mentioned requirements or if accessibility settings are not correctly fixed. Requirements to access the site may change from time to time, so, therefore, the user accepts to update its software or hardware to use the service according to their technological development.

\r\n

6. USER'S DUTIES

\r\n

6.1. Correct use of the services

\r\n

The User agrees to use KRIKOS360 platform according to the regulations in force, to these Terms and Conditions and to the principles ruling morality, good conduct and public order. The User agrees to refrain from using the System for illegal and forbidden purposes, contrary to the provisions of these Terms and Conditions, or in detriment to third parties rights and interests.

\r\n

6.2. Supporting copies

\r\n

The User acknowledges and agrees to make and store by its own all supporting copies of the messages and documents received and forwarded through KRIKOS360, since KRIKOS360 only stores on a temporary and limited basis all the documents and communications received and forwarded by the User.

\r\n

6.3. User's liabilities

\r\n

Each user is solely liable for all actions executed within the framework of KRIKOS360 services. However, if PLANEXWARE receives a claim following the pertinent procedures, stating that a person was adversely affected by an unjustified detriment of any of his rights, PLANEXWARE will take immediately all the necessary measures to prevent the injurious situation and will inform the competent authorities about he circumstances of the case.

\r\n

6.4 Liability regarding messages and documents forwarding

\r\n

Any User forwarding a message or a document, or who initiates a communication through KRIKOS360, shall be fully and exclusively liable for their forwarding, notwithstanding the joint liability of the Holder of the Service. The User shall indemnify PLANEXWARE whenever it shall act as a requested party in relation to the contents submitted by the user.

\r\n

6.5. Penalties Suspensions or disablements

\r\n

Notwithstanding any further measures applicable by PLANEXWARE at its own criteria, it may warn, temporarily suspend of definitively disable a User's account in the following cases:

\r\n
    \r\n
  1. If the User breaches a law, third parties rights, public order, morality and good conducts, or any of the provisions of the General Terms and Conditions or of the specific terms and conditions of each service or other provisions determined by PLANEXWARE.
  2. \r\n
  3. If the User fails to comply with his commitments as User.
  4. \r\n
  5. If at PLANEXWARE's criteria the User commits any willful or fraudulent misconduct or act.
  6. \r\n
  7. If the User develops activities aimed to harm the security and/or the normal function of the software systems belonging to PLANEXWARE or to any third party.
  8. \r\n
\r\n

7. POWERS RELATED TO THE MANAGEMENT AND CONTROL OF SERVICES

\r\n

7.1. Reserved powers

\r\n

PLANEXWARE reserves all powers of control and management on KRIKOS360, in particular on the services, contents and communications therein contained. Thus, PLANEXWARE may introduce all changes and adjustments as it deems convenient at its own criteria, and may add, modify, substitute or delete any service at any time whatsoever.

\r\n

NOTWITHSTANDING THE ABOVE MENTIONED RESERVED POWERS, AS REGARDS PRIVACY AND CONFIDENTIALITY OF THE USER'S COMMUNICATIONS, PLANEXWARE SHALL NOT EXERCISE ANY LEGAL AUTHORITY ON THE COMMUNICATIONS CARRIED OUT BETWEEN USERS. THEREFORE, PLANEXWARE SHALL NOT BE LIABLE FOR THE SERVICES ' USE CONTRARY TO THE LAW INCURRED BY USERS.

\r\n

7.2. Authorization to intercept, access and divert communications

\r\n

The USER expressly authorizes PLANEXWARE to monitor, supervise, intervene, detect, intercept, divert, access, suspend or interrupt e-communications forwarded through KRIKOS360 in order to supply the service, and to take action in any way whatsoever in case of any other circumstance which might in principle and preventively, be identified as hazardous, potentially hazardous or undesirable by PLANEXWARE. The User acknowledges and agrees that PLANEXWARE's activity in relation to his communications is consented and necessary to supply KRIKOS360 service, and that such activity is not covered by section 153 of the Argentine Criminal Code.

\r\n

Likewise, the User authorizes PLANEXWARE to divert, suspend or interrupt his e-communications forwarded on KRIKOS360 in order to carry out maintenance and/or updating works in the software systems.

\r\n

8. LIABILITY DISCLAIMER FOR SERVICES AND CONTENTS

\r\n

8.1 PLANEXWARE LIABILITY

\r\n

PLANEXWARE KRICKOS360 services are supplied only as an auxiliary tool. PLANEXWARE shall not be liable for any direct or indirect consequence arising from any action or omission to act executed by the User based on the information, on the services or on the elements accessed through KRIKOS360.

\r\n

The User particularly agrees that PLANEXWARE shall not be liable for the access or the disruption of transmissions, data and/or files, or for any material or data forwarded or received, or not forwarded or not received.

\r\n

PLANEXWARE shall not be liable for the loss of data and/or files, whatever the reasons, persons or circumstances thereof, except it is a result of its own and exclusive negligence or fraud.

\r\n

Under no circumstance PLANEXWARE shall be liable for the usefulness, suitability, availability, accuracy, opportunity, reliability, appropriateness, updating, lawfulness or truthfulness of the files transmitted to and from KRIKOS360.

\r\n

PLANEXWARE shall not be liable for a) any damage suffered by the User as a consequence of Internet own risks, including -but not limited to- interaction between KRIKOS360 and the User's hardware, or the disruption by third parties of information forwarded through KRIKOS360, or of information saved either in the User's or in PLANEXWARE's hardware and software; b) any disruption, loss or data theft occurred while using public communications networks.

\r\n

PLANEXWARE shall not be liable in case the User has problems while accessing KRIKOS360 as a consequence of the use of obsolete computer hardware or software or of poor quality internet connections or of weak broadband.

\r\n

PLANEXWARE disclaims any liability for damages of any nature whatsoever which might be due to the lack of availability or to disruptions of the Product's operation, or to any disappointment caused by the expectations created by the users in relation to the scope of the Product.

\r\n

PLANEXWARE DISCLAIMS WITH ALL THE EXTENT GRANTED BY THE LEGAL REGULATIONS IN FORCE, ANY LIABILITY FOR DAMAGES OF ANY NATURE WHATSOEVER DUE TO THE TRANSMISSION, DISCLOSURE, STORAGE, AVAILABILITY, FORWARDING AND RECEPTION, OF ANY AND ALL MESSAGES OR DOCUMENTS, AS WELL AS OF ANY FURTHER MATERIAL OR INFORMATION FORWARDED TO OR FROM KRIKOS360 PLATFORM.

\r\n

PLANEXWARE shall not be liable for any circumstance (such as losses or any other similar circumstance), suffered by the User or any third party, which might arise from the loss, theft or misuse of the User's login or password.

\r\n

The supply of the software shall be under the \"as-is\" mode, without any warranty, expressed or implied, of any nature in relation to a specific result.

\r\n

8.2. Confidentiality of the Information

\r\n

PLANEXWARE shall deal with the User's information under strict confidentiality rules to ensure privacy, and under no circumstance it shall access or use the Users' information, except for those matters strictly related to the supply of KRIKOS360 services (pursuant to section 3 of Act 24766).

\r\n

8.3 Third parties material

\r\n

While using KRIKOS360, the User may access to documents provided by third parties. PLANEXWARE does not grant any kind of guarantee on the lawfulness, accuracy, truthfulness and/or authenticity of the material provided by third parties.

\r\n

9. PRIVACY POLICY

\r\n

See Privacy Policy

\r\n

10. CONTACT INFORMATION

\r\n

Users may contact PLANEXWARE and all communications forwarded to the following e-mail address shall be valid: info@planexware.com

\r\n

All notices and communications sent by PLANEXWARE to the postal address, to the e-mail address informed directly by the user, to the address informed in the registration forms or to the address appearing as the sender's address if the User contacts a non-registered guest, shall be considered valid and effective. Likewise, all communications consisting of prompts and messages posted in KRIKOS360 or sent during the provision of a service with the purpose of informing the users about any special circumstance, shall also be considered valid and effective.

\r\n

11. CHANGES AND ADJUSTMENTS

\r\n

PLANEXWARE may introduce all changes and adjustments as it deems convenient at its own criteria, on these Terms and Conditions, at any time whatsoever, and without previous notice, only publishing the modified Terms in KRIKOS360 access page. All modified terms and conditions shall be effective as of the day following publication. Within 3 (three) days after publication of the modifications made by PLANEXWARE, the User must inform via e-mail if he rejects them, and such being the case, the services agreement will be terminated and the User will be disabled to act as such. Upon expiration of that term, it will be understood that the User accepts the new terms and conditions.

\r\n

12. JURISDICTION AND VENUE

\r\n

This agreement is ruled by the laws in force in the Republic of Argentina. Any claim arising from this agreement. related to its existence, validity, construction, scope or execution, shall be filed to the National Courts with jurisdiction in the Autonomous City of Buenos Aires.

\r\n
\r\n
\r\n Code: POL/DES-8-008\r\n
\r\n Revision: 002\r\n
\r\n F.U.R: 08/02/2022\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-terminos-ycondiciones',\r\n templateUrl: './terminos-ycondiciones.component.html',\r\n styleUrls: ['./terminos-ycondiciones.component.scss']\r\n})\r\nexport class TerminosYCondicionesComponent implements OnInit {\r\n\r\n idioma: string;\r\n template: any;\r\n constructor(private translate: TranslateService,\r\n public authService: AuthService,) { }\r\n\r\n ngOnInit(): void {\r\n this.idioma = this.authService.getUserData()?.Cultura || \"es-AR\"\r\n if(this.idioma == \"es-419\"){\r\n this.idioma = \"es-AR\";\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \"Planexware\"\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RolUsuario, UsuarioConfiguracion, UsuarioCorporativoView, UsuarioGuardar } from '../models/UsuarioCorporativo';\r\nimport { EstadoUsuario } from '../models/EstadosUsuario';\r\nimport { ClienteUsuario } from '../models/clienteUsuario';\r\nimport { RepresentanteUsuario } from '../models/RepresentanteUsuario';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsuariosDeLaEmpresaService {\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private genericToasterService: GenericToasterService\r\n ) { }\r\n\r\n GetUsuarios(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/UsuarioCorporativo/GetUsuariosCorporativos`);\r\n }\r\n\r\n GetEstadoEmpresa(idCliente:number, idPaisCliente:number): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/UsuarioCorporativo/GetEstadoEmpresa`, {params:{idCliente:idCliente,idPaisCliente:idPaisCliente }});\r\n }\r\n \r\n GetEstadosUsuario(): Observable> {\r\n return this.httpClient.get>(`${environment.apiUrl}/UsuarioCorporativo/GetEstadosUsuario`);\r\n }\r\n \r\n GetUsuarioConfiguracion(idUsuario:number, idPaisUsuario:number): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/UsuarioCorporativo/GetUsuarioConfiguracion`, {params:{idUsuario:idUsuario,idPaisUsuario:idPaisUsuario }});\r\n }\r\n\r\n ValidarMailEnUso(email:string): Promise{\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n const requestOptions: Object = { headers };\r\n return new Promise((resolve)=>{\r\n this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/GetValidarMailEnUso`, JSON.stringify(email), requestOptions).subscribe({\r\n next: (data) => { resolve(data); },\r\n error: (err) => { this.genericToasterService.pushError(\"ERROR_APLICACION\"); }\r\n });\r\n });\r\n }\r\n\r\n ValidarClienteTieneMenu(idCliente:number, idPaisCliente:number, menu:string): Promise{\r\n return new Promise((resolve)=>{\r\n this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/GetValidarClienteTieneMenu`, {idCliente:idCliente, idPaisCliente:idPaisCliente, resourceKeyMenu:menu}).subscribe({\r\n next: (data) => { resolve(data); },\r\n error: (err) => { this.genericToasterService.pushError(\"ERROR_APLICACION\"); }\r\n });\r\n });\r\n }\r\n\r\n UpdateUltimaRevisionUsuariosClientes(): Promise{\r\n return new Promise((resolve)=>{\r\n this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/UpdateUltimaRevisionUsuariosClientes`, {}).subscribe({\r\n next: () => {\r\n resolve();\r\n },\r\n error: (err) => { \r\n this.genericToasterService.pushError(\"ERROR_APLICACION\");\r\n }\r\n });\r\n });\r\n }\r\n \r\n GetClientesUsuarioCorporativo(idUsuario:number, idPaisUsuario:number): Observable> {\r\n return this.httpClient.get>(`${environment.apiUrl}/UsuarioCorporativo/GetClientesUsuarioCorporativo`, {params:{idUsuario:idUsuario,idPaisUsuario:idPaisUsuario }});\r\n }\r\n \r\n GetClienteRoles(cliente: any): Observable> {\r\n return this.httpClient.post>(`${environment.apiUrl}/UsuarioCorporativo/GetClienteRoles`, cliente??{});\r\n }\r\n \r\n GetUsuarioRol(idUsuario:number, idPaisUsuario:number): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/UsuarioCorporativo/GetUsuarioRol`, {params:{idUsuario:idUsuario,idPaisUsuario:idPaisUsuario }});\r\n }\r\n \r\n GetRepresentantes(cliente: any): Observable> {\r\n return this.httpClient.post>(`${environment.apiUrl}/UsuarioCorporativo/GetRepresentantes`, cliente??{});\r\n }\r\n\r\n GetEstadosUsuarioAdmin(): Observable> {\r\n return this.httpClient.get>(`${environment.apiUrl}/UsuarioCorporativo/GetEstadosUsuarioAdmin`);\r\n }\r\n\r\n UpdateUsuario(usuario: UsuarioGuardar): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/PostUsuario`,usuario);\r\n }\r\n\r\n InsertUsuario(usuario: UsuarioGuardar): Observable {\r\n return this.httpClient.put(`${environment.apiUrl}/UsuarioCorporativo/PutUsuario`,usuario);\r\n }\r\n\r\n ReenviarMailNuevoUsuario(email:string): Observable {\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n const requestOptions: Object = { headers };\r\n return this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/ReenviarMailNuevoUsuario`,JSON.stringify(email),requestOptions);\r\n }\r\n\r\n EnviarMailDeSolicitudDeUsuarios(cliente: ClienteUsuario): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/EnviarMailDeSolicitudDeUsuarios`, cliente);\r\n }\r\n\r\n ActualizarEstadoActivo(body: any){\r\n return this.httpClient.post(`${environment.apiUrl}/UsuarioCorporativo/ActualizarEstadoActivo`, body)\r\n }\r\n}\r\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface Data {\r\n titulo: string;\r\n mensaje: string;\r\n params?: Object;\r\n mensaje2?: string;\r\n confirmacion: string;\r\n rechazo: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirmacion-dialog',\r\n templateUrl: './confirmacion-dialog.component.html',\r\n styleUrls: ['./confirmacion-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ConfirmacionDialogComponent {\r\n public element: string;\r\n\r\n constructor(\r\n public dialogo: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: Data) { }\r\n \r\n cerrarDialogo(): void {\r\n this.dialogo.close(false);\r\n }\r\n confirmado(): void {\r\n this.dialogo.close(true);\r\n }\r\n}\r\n","

{{data.titulo | translate}}

\r\n
\r\n

{{data.mensaje | translate:data.params}}

\r\n

{{data.mensaje2 | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { DOCUMENT } from '@angular/common';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { JwtInfo } from 'src/app/pages/login/Models/JwtInfo';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-connected-support',\r\n templateUrl: './connected-support.component.html',\r\n styleUrls: ['./connected-support.component.scss']\r\n})\r\nexport class ConnectedSupportComponent implements OnInit {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,\r\n private authService: AuthService,\r\n private translate: TranslateService,) {\r\n }\r\n\r\n @Input() client: string;\r\n @Input() pais: string;\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n }\r\n\r\n disconnectSupport(): void{\r\n this.authService.desconectarSoporte()\r\n .subscribe((respuesta) => {\r\n let userInfo: JwtInfo = (respuesta);\r\n\r\n if (userInfo.jwt != null) {\r\n sessionStorage.setItem('token', userInfo.jwt);\r\n this.authService.getFuncionesFromToken();\r\n let fullURL = `${environment.url}/v2/main/home`;\r\n this.document.location.href = fullURL;\r\n }\r\n\r\n },\r\n (err: HttpErrorResponse) => {\r\n ////console.log(err)\r\n });\r\n }\r\n}\r\n","\r\n
\r\n info\r\n {{ \"ESTA_UTILIZANDO_KRIKOS360_EN_NOMBRE_DE\" | translate }}\r\n {{ client }}\r\n ({{ pais}})\r\n
\r\n \r\n \r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConnectionsService } from 'src/app/core/services/connections.service';\r\ndeclare var $: any;\r\nimport { ModalService } from 'src/app/core/services/modal.service';\r\n@Component({\r\n selector: 'app-connections',\r\n templateUrl: './connections.component.html',\r\n styleUrls: ['./connections.component.scss']\r\n})\r\nexport class ConnectionsComponent implements OnInit {\r\n constructor(public connectionsService: ConnectionsService, public modalService: ModalService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // ngAfterViewInit() {\r\n // // $(function () {\r\n // // $('[data-toggle=\"tooltip\"]').tooltip({ container: '.connections__title__link' })\r\n // // })\r\n // }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n closeModal() {\r\n this.modalService.closeModal()\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{ \"ACEPTAR_CONEXION\" | translate }} \r\n \r\n \r\n \r\n
\r\n
\r\n {{ \"TIPO_DE_DOCUMENTO\" | translate }}\r\n {{\r\n connectionsService.currentPage\r\n }}\r\n {{ \"de\" | translate }}\r\n {{\r\n connectionsService.totalPages\r\n }}\r\n
\r\n
\r\n

\r\n {{ \"PODRA\" | translate }}\r\n \r\n {{ connectionsService.editingDoc.sentido | translate }}\r\n {{\r\n connectionsService.editingDoc.tipoDocumento.resourceKey\r\n | translate\r\n }}\r\n {{\r\n connectionsService.editingDoc.tipoDocumento.version | translate\r\n }}\r\n \r\n {{ \"de\" | translate }}\r\n \r\n {{ connectionsService.editingConnection.interlocutor.razonSocial }}\r\n \r\n

\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n {{ \"PermitaElAccesoA\" | translate }}\r\n \r\n {{\r\n connectionsService.editingDoc.tipoDocumento.resourceKey\r\n | translate\r\n }}\r\n {{\r\n connectionsService.editingDoc.tipoDocumento.version | translate\r\n }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {{ forbiddenUser.usuario.nombre }}\r\n {{ forbiddenUser.usuario.apellido }}\r\n
\r\n
\r\n {{ forbiddenUser.usuario.email }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{ \"RecibirEmailsRecordatoriosXVencimiento\" | translate }}\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n {{ \"UsuariosConAccesoA\" | translate }}\r\n \r\n {{\r\n connectionsService.editingDoc.tipoDocumento.resourceKey\r\n | translate\r\n }}\r\n {{\r\n connectionsService.editingDoc.tipoDocumento.version | translate\r\n }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {{ permittedUser.usuario.nombre }}\r\n {{ permittedUser.usuario.apellido }}\r\n
\r\n
\r\n {{ permittedUser.usuario.email }}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{ \"RecibirEmailsRecordatoriosXVencimiento\" | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ \"CANCELAR_Y_VOLVER\" | translate }}\r\n \r\n \r\n {{ \"VOLVER\" | translate }}\r\n \r\n \r\n {{ \"CONFIRMAR\" | translate }}\r\n \r\n \r\n {{ \"ACEPTAR\" | translate }}\r\n \r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\n\r\n@Component({\r\n selector: 'app-dialog-conciliacion-contactar',\r\n templateUrl: './dialog-conciliacion-contactar.component.html',\r\n styleUrls: ['./dialog-conciliacion-contactar.component.scss']\r\n})\r\nexport class DialogConciliacionContactarComponent implements OnInit {\r\n formEmail: FormGroup = this.fb.group({\r\n email: new FormControl('', [Validators.required]),\r\n nombreApellido: new FormControl('', [Validators.required])\r\n });\r\n private user = this.authService.userdata;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private fb: FormBuilder,\r\n private authService: AuthService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private genericToasterService: GenericToasterService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.formEmail.controls['email'].disable()\r\n this.formEmail.controls['email'].setValue(this.user.NombreUsuario);\r\n this.formEmail.controls['nombreApellido'].setValue(this.user.Nombre + ' ' + this.user.Apellido);\r\n\r\n }\r\n\r\n Contactar(): void {\r\n let logAnalytic = \"Contactar - \" + this.user.Cliente.RazonSocial + ' - ' + this.formEmail.controls['nombreApellido'].value + ' - ' + this.user.NombreUsuario;\r\n this.googleAnalyticsEventsService.emitEvent('Conciliacion', logAnalytic, null, true);\r\n this.genericToasterService.pushSuccess(\"Sus datos han sido enviados correctamente. Pronto será contactado por alguien de nuestro equipo de Producto. ¡Muchas Gracias!\");\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Conciliación de Facturas

\r\n
\r\n Estamos desarrollando una nueva funcionalidad
\r\n ¡Déjenos sus datos y lo contactaremos para contarle más!\r\n
\r\n
\r\n \"BLURRED\r\n
\r\n
\r\n
\r\n \r\n \r\n Nombre y Apellido\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{'EMAIL' | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n QUIERO QUE ME CONTACTEN\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { GenericToasterService } from 'src/app/core/services/generic-toaster.service';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-dialog-fake-door-button',\r\n templateUrl: './dialog-fake-door-button.component.html',\r\n styleUrls: ['./dialog-fake-door-button.component.scss']\r\n})\r\nexport class DialogFakeDoorButtonComponent implements OnInit {\r\n\r\n formEmail: FormGroup = this.fb.group({\r\n email: new FormControl('', [Validators.required]),\r\n nombreApellido: new FormControl('', [Validators.required])\r\n });\r\n\r\n title: string = '';\r\n text: string = '';\r\n imgSrc: string = '';\r\n imgName: string = '';\r\n imgWidth:string='';\r\n\r\n private user = this.authService.userdata;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private fb: FormBuilder,\r\n private authService: AuthService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private genericToasterService: GenericToasterService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.formEmail.controls['nombreApellido'].setValue(this.user.Nombre + ' ' + this.user.Apellido);\r\n this.formEmail.controls['email'].setValue(this.user.NombreUsuario);\r\n this.formEmail.controls['email'].disable();\r\n\r\n this.title = this.data.title;\r\n this.text = this.data.text;\r\n this.imgSrc = \"assets/images/FakeDoorButtonImg/\" + this.data.imgName;\r\n this.imgName = this.data.imgName;\r\n this.imgWidth = this.data.imgWidth;\r\n }\r\n\r\n Contactar() {\r\n const logAnalytic = \"Contactar - \" + this.user.Cliente.RazonSocial + ' - ' + this.formEmail.controls['nombreApellido'].value + ' - ' + this.user.NombreUsuario;\r\n this.googleAnalyticsEventsService.emitEvent(this.data.GAEventCategory, logAnalytic, null, true);\r\n \r\n this.genericToasterService.pushSuccess(\"FAKE_DOOR_BUTTON.DATOS_ENVIADOS_CORRECTAMENTE\");\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n

{{title|translate}}

\r\n\r\n
\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{'NOMBRE_Y_APELLIDO' | translate}} \r\n \r\n \r\n \r\n \r\n {{'EMAIL' | translate}} \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
","import { Directive, HostListener, ElementRef, OnInit, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { aDecimalConPuntoSinSepMil, deserializarImporte, isNullOrEmptyOrUndefined, serializarImporte } from '../utils/utils.component';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[campoDecimalComa]',\r\n})\r\nexport class CampoDecimalComa implements OnInit {\r\n @Input() campoDecimalComa: number;\r\n @Input() parteEntera: number;\r\n @Input() seccionItems: boolean = false;\r\n @Input() permitirVacio: boolean = false;\r\n @Input() mostrarLiteral: boolean = false;\r\n private regex: RegExp;\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n private caracterDecimal: string;\r\n private caracterMillar: string;\r\n constructor(\r\n private el: ElementRef,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.campoDecimalComa) this.campoDecimalComa = 2;\r\n if (!this.parteEntera) this.parteEntera = 13;\r\n if (this.translate.defaultLang == 'en-US') {\r\n this.caracterDecimal = '.';\r\n this.caracterMillar = ',';\r\n }\r\n else {\r\n this.caracterDecimal = ',';\r\n this.caracterMillar = '.';\r\n }\r\n this.regex = new RegExp(`^\\\\d{1,${this.parteEntera}}(\\\\${this.caracterDecimal}\\\\d{0,${this.campoDecimalComa}})?$`, 'g');\r\n // this.regex = new RegExp(`^\\\\d*(\\\\.?\\\\d{3})*(\\\\,?\\\\d{0,${this.campoDecimalComa}})$`, 'g');\r\n }\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n this.onKeyDown(event);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n\r\n // Allow Backspace, tab, end, and home keys\r\n if (this.specialKeys.indexOf(event.key) !== -1\r\n // Allow: Ctrl+A\r\n || (event.key === 'a' && (event.ctrlKey || event.metaKey))\r\n // Allow: Ctrl+C\r\n || (event.key === 'c' && (event.ctrlKey || event.metaKey))\r\n // Allow: Ctrl+V\r\n || (event.key === 'v' && (event.ctrlKey || event.metaKey))\r\n // Allow: Ctrl+X\r\n || (event.key === 'x' && (event.ctrlKey || event.metaKey))) {\r\n return;\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? ',' : event.key, current.slice(position)].join('');\r\n\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n\r\n //cambiar el punto por coma y viceversa en ingles\r\n if (event.key == this.caracterMillar && String(next.replace(this.caracterMillar, this.caracterDecimal)).match(this.regex)) {\r\n event.preventDefault();\r\n this.el.nativeElement.value = next.replace(this.caracterMillar, this.caracterDecimal);\r\n return\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n var element = this.el.nativeElement as HTMLInputElement;\r\n if(this.mostrarLiteral && !String(element.value).match(this.regex)){\r\n return;\r\n }\r\n\r\n if(this.permitirVacio && (element.value == '' || Number(element.value) == 0)){\r\n this.el.nativeElement.value = '';\r\n return;\r\n }\r\n let valor = element.value == '' ? \"0\" : (element.value == 'NaN' ? \"0\" : element.value);\r\n this.el.nativeElement.value = serializarImporte(deserializarImporte(valor), this.campoDecimalComa, this.seccionItems);\r\n return;\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n let element = this.el.nativeElement as HTMLInputElement;\r\n if(this.mostrarLiteral && !String(element.value).match(this.regex)){\r\n return;\r\n }\r\n\r\n let valor = (element.value == '' || element.value == 'NaN') ? '' : element.value;\r\n this.el.nativeElement.value = aDecimalConPuntoSinSepMil(valor).replace('.', ',');\r\n element.select();\r\n return;\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const endPos = this.el.nativeElement.selectionEnd;\r\n let clipboard: string = event.clipboardData!.getData('text');;\r\n if (!this.seccionItems) {\r\n clipboard = clipboard.replace(this.caracterMillar == ',' ? /,/g : /\\./g, '');\r\n }\r\n const next: string = [current.slice(0, position), clipboard, current.slice(endPos)].join('');\r\n if (next) {\r\n if (!String(next).match(this.regex)) {\r\n event.preventDefault();\r\n if (this.seccionItems) {\r\n this.el.nativeElement.value = serializarImporte(0, this.campoDecimalComa, true);\r\n } else {\r\n this.el.nativeElement.value = '';\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n\r\n\r\n //TO DO Si no funciona el regex para la cantidad de numeros etc, le agregamos esto\r\n validarCantidadDeCifras(valor: string): boolean {\r\n let value = deserializarImporte(valor);\r\n if (value.toString().indexOf('.') != -1) {\r\n let numero = value.toString().split('.');\r\n let entero = numero[0];\r\n let decimal = numero[1] ?? '';\r\n\r\n if (entero.length > this.parteEntera || decimal.length > this.campoDecimalComa) {\r\n return false\r\n }\r\n } else if (value.toString().length > this.parteEntera) {\r\n return false\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { isNullOrEmptyOrUndefined } from 'src/app/shared/utils/utils.component';\r\n\r\n@Directive({\r\n selector: '[campoNumerico]'\r\n})\r\nexport class CampoNumericoDirective implements OnInit {\r\n\r\n @Input() campoNumerico: { length: number, esAlfaNumerico: boolean };\r\n navigationArrows: string[] = ['Delete', 'Backspace', 'Tab', 'Escape', 'Enter', 'Home', 'End', 'ArrowLeft', 'ArrowRight']\r\n FRegex: RegExp = /F[0-9]{1,2}$/\r\n regex: RegExp;\r\n campo: FormControl;\r\n \r\n constructor(\r\n private el: ElementRef,\r\n public control: NgControl) { }\r\n \r\n ngOnInit(){\r\n if(this.campoNumerico.esAlfaNumerico) {\r\n this.FRegex = /^[a-zA-Z0-9_]*$/;\r\n }\r\n\r\n this.campo = this.control.control as FormControl;\r\n if(this.campoNumerico){\r\n this.regex = new RegExp(`^\\\\d{0,${this.campoNumerico}}$`);\r\n }\r\n else {\r\n this.regex = new RegExp(`^\\\\d*$`);\r\n }\r\n }\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n this.onKeyDown(event);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n \r\n let e = event;\r\n if (\r\n // Allow: home, end, left, right'Delete', 'Backspace', 'Tab', 'Escape', 'Enter'\r\n this.navigationArrows.indexOf(e.key) !== -1\r\n // Allow: Ctrl+A\r\n || (e.key === 'a' && (e.ctrlKey || e.metaKey))\r\n // Allow: Ctrl+C\r\n || (e.key === 'c' && (e.ctrlKey || e.metaKey))\r\n // Allow: Ctrl+V\r\n || (e.key === 'v' && (e.ctrlKey || e.metaKey))\r\n // Allow: Ctrl+X\r\n || (e.key === 'x' && (e.ctrlKey || e.metaKey))\r\n // Allow FX keys\r\n || (this.FRegex.test(e.key))\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n var element = this.el.nativeElement as HTMLInputElement;\r\n let valor = element.value;\r\n if(this.campoNumerico.length > 0 && !isNullOrEmptyOrUndefined(valor)){\r\n this.campo.setValue(valor.padStart(this.campoNumerico.length,'0'));\r\n }\r\n this.campo.updateValueAndValidity();\r\n }\r\n\r\n @HostListener('paste',['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const endPos = this.el.nativeElement.selectionEnd;\r\n let clipboard: string = event.clipboardData!.getData('text');;\r\n\r\n const next: string = [current.slice(0, position), clipboard , current.slice(endPos)].join('');\r\n if (next) {\r\n if(!this.regex.test(next)){\r\n this.campo.setValue('');\r\n event.preventDefault();\r\n }else{\r\n return\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n Renderer2,\r\n ViewContainerRef\r\n } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ExportService } from 'src/app/core/services/export.service';\r\n \r\n @Directive({\r\n selector: '[docHistorialDirective]',\r\n })\r\n export class DocHistorialDirective implements AfterViewInit {\r\n constructor(\r\n private readonly vr: ViewContainerRef,\r\n private readonly ren: Renderer2,\r\n private readonly exportService: ExportService,\r\n public dialog: MatDialog,\r\n ) {}\r\n \r\n public ngAfterViewInit() {\r\n let elem = this.vr.element.nativeElement.querySelector('span a');\r\n if(elem){\r\n elem?.classList.add('documentoOriginal');\r\n elem?.addEventListener('click', this.onClick.bind(this));\r\n }\r\n \r\n }\r\n\r\n async onClick(elem:any){\r\n let idSobre = elem.currentTarget.attributes.sobre.nodeValue;\r\n let idPais = elem.currentTarget.attributes.pais.nodeValue;\r\n let documentoSponsoreado: boolean = elem.currentTarget.attributes.documentosponsoreado.nodeValue == 'true';\r\n await this.exportService.DescargarDocumentoHistorial({Id: idSobre, IdPais: idPais}, documentoSponsoreado);\r\n \r\n }\r\n }","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core'\r\n\r\n@Directive({\r\n selector: '[appScrollAutohide]',\r\n})\r\nexport class ScrollAutohideDirective implements OnInit {\r\n el: HTMLElement\r\n initialHeight: number\r\n lastScrollY = 0\r\n\r\n constructor(el: ElementRef) {\r\n this.el = el.nativeElement\r\n this.el.style.overflow = 'hidden'\r\n this.el.style.transition = '0.3s all'\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initialHeight = this.el.scrollHeight\r\n this.lastScrollY = window.scrollY\r\n }\r\n\r\n @HostListener('document:scroll') onScroll = () => {\r\n const { scrollY } = window\r\n this.el.style.height = `${scrollY > this.lastScrollY ? 0 : this.initialHeight}px`\r\n this.lastScrollY = scrollY\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n Host,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n ViewContainerRef,\r\n Input\r\n } from '@angular/core';\r\n import { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { BusquedaDocumentos } from 'src/app/pages/documentos-clientes/components/models/BusquedaDocumentos';\r\nimport { DocumentosClienteService } from 'src/app/pages/documentos-clientes/components/services/documentos-cliente.service';\r\n \r\n @Directive({\r\n selector: '[appStylePaginator]',\r\n })\r\n export class StylePaginatorDirective implements AfterViewInit {\r\n private count: number | null = null;\r\n @Input() filterObject: BusquedaDocumentos;\r\n constructor(\r\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\r\n private readonly vr: ViewContainerRef,\r\n private readonly ren: Renderer2,\r\n private documentosService: DocumentosClienteService,\r\n private traslate: TranslateService\r\n ) {}\r\n\r\n private removeCreateContainer():void{\r\n const pagingContainerMain = this.vr.element.nativeElement.querySelector('.mat-paginator-range-actions');\r\n if (\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.btn_custom-paging-container')\r\n ) {\r\n this.ren.removeChild(\r\n pagingContainerMain,\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.btn_custom-paging-container'),\r\n );\r\n }\r\n if(this.matPag.length > 999){\r\n if ((this.matPag.length - 21) % 1000 != 0) this.count = this.matPag.length;\r\n const pagingContainerBtns = this.ren.createElement('div');\r\n const refNode = this.vr.element.nativeElement.childNodes[0].childNodes[0].childNodes[2].childNodes[2];\r\n this.ren.addClass(pagingContainerBtns, 'btn_custom-paging-container');\r\n this.ren.insertBefore(pagingContainerMain, pagingContainerBtns, refNode); \r\n const pageRange = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-paginator-range-actions div.btn_custom-paging-container',\r\n );\r\n pageRange.innerHtml = '';\r\n this.ren.insertBefore(pageRange, this.createButtonCount(), null);\r\n } \r\n }\r\n \r\n private createButtonCount(): any {\r\n const linkBtn = this.ren.createElement('mat-button'); \r\n let text = this.ren.createText(this.count == null ? '?' : '' + this.count.toString());\r\n this.ren.addClass(linkBtn, 'mat-custom-page');\r\n if(this.count == null){\r\n this.ren.addClass(linkBtn, 'mat-icon-button');\r\n this.ren.listen(linkBtn, 'click', (event) => this.clickButton(event)); \r\n } \r\n this.ren.appendChild(linkBtn, text);\r\n return linkBtn;\r\n }\r\n \r\n private initPageButton(): void {\r\n this.removeCreateContainer(); \r\n }\r\n\r\n private clickButton(event:any): void {\r\n if(this.count == null){\r\n this.documentosService.getDocumentosCount(this.filterObject).pipe(take(1)).subscribe( (count:number) => {\r\n this.count = count;\r\n this.initPageButton();\r\n }); \r\n } \r\n }\r\n\r\n \r\n public ngAfterViewInit() {\r\n this.matPag._intl.getRangeLabel = (page: number, pageSize: number, length: number) => this.rangeLabelPaginator(page,pageSize,length);\r\n setTimeout(() => { \r\n this.initPageButton(); \r\n }, 500);\r\n }\r\n\r\n public Update(){\r\n this.count = null;\r\n setTimeout(() => { \r\n this.initPageButton(); \r\n }, 200);\r\n }\r\n\r\n rangeLabelPaginator(page: number, pageSize: number, length: number):string {\r\n\r\n const pageNumber = this.filterObject?.pageNumber ?? 1;\r\n const ITEMS_PER_PAGE = 1000;\r\n const pageStartIndex = page * pageSize + 1;\r\n const pageEndIndex = Math.min(length, (page + 1) * pageSize);\r\n const filterPageStartIndex = (pageNumber - 1) * ITEMS_PER_PAGE;\r\n const itemsTotal = length > ITEMS_PER_PAGE - 1 ? '' : (length + filterPageStartIndex).toString();\r\n if (length === ITEMS_PER_PAGE * pageNumber) {\r\n this.matPag.length = ITEMS_PER_PAGE * pageNumber + 21;\r\n }\r\n return `${pageStartIndex} - ${pageEndIndex} ${this.traslate.instant('DE_PAGER')} ${itemsTotal}`;\r\n\r\n };\r\n }","import {\r\n AfterViewInit,\r\n Directive,\r\n Host,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n ViewContainerRef,\r\n Input\r\n } from '@angular/core';\r\n import { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { BusquedaConexiones } from 'src/app/pages/conexiones/components/models/BusquedaConexiones';\r\nimport { ConexionesService } from 'src/app/pages/conexiones/components/services/conexiones.service';\r\n\r\n\r\n \r\n @Directive({\r\n selector: '[appStylePaginatorDirectiveConections]',\r\n })\r\n export class stylePaginatorDirectiveConections implements AfterViewInit {\r\n private count: number | null = null;\r\n page = 1;\r\n pageSize = 1;\r\n length = 1;\r\n @Input() filterObject: BusquedaConexiones;\r\n constructor(\r\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\r\n private readonly vr: ViewContainerRef,\r\n private readonly ren: Renderer2,\r\n private conexionService: ConexionesService,\r\n private traslate: TranslateService\r\n ) {}\r\n\r\n private removeCreateContainer():void{\r\n const pagingContainerMain = this.vr.element.nativeElement.querySelector('.mat-paginator-range-actions');\r\n if (\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.mat-paginator-range-label')\r\n ) {\r\n this.ren.removeChild(\r\n pagingContainerMain,\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.mat-paginator-range-label'),\r\n );\r\n } else if (\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.btn_custom-paging-container')\r\n ) {\r\n this.ren.removeChild(\r\n pagingContainerMain,\r\n this.vr.element.nativeElement.querySelector('div.mat-paginator-range-actions div.btn_custom-paging-container mat-button'),\r\n );\r\n }\r\n //if ((this.matPag.length - 21) % 1000 != 0) this.count = this.matPag.length;\r\n const pagingContainerBtns = this.ren.createElement('div');\r\n const refNode = this.vr.element.nativeElement.childNodes[0].childNodes[0].childNodes[2].childNodes[2];\r\n\r\n this.ren.addClass(pagingContainerBtns, 'btn_custom-paging-container');\r\n this.ren.insertBefore(pagingContainerMain, pagingContainerBtns, refNode); \r\n const pageRange = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-paginator-range-actions div.btn_custom-paging-container',\r\n );\r\n pageRange.innerHtml = this.matPag;\r\n this.matPag._intl.getRangeLabel = (page: number, pageSize: number, length: number) => this.rangeLabelPaginator(page,pageSize,length);\r\n this.ren.insertBefore(pageRange, this.createButtonCount(), null); \r\n }\r\n \r\n private createButtonCount(): any {\r\n const linkBtn = this.ren.createElement('mat-button'); \r\n let text = this.ren.createText(this.rangeLabelPaginator(this.matPag.pageIndex,this.matPag.pageSize,this.matPag.length));\r\n this.ren.addClass(linkBtn, 'mat-custom-page');\r\n this.ren.appendChild(linkBtn, text);\r\n return linkBtn;\r\n }\r\n\r\n private initPageButton(): void {\r\n this.removeCreateContainer(); \r\n }\r\n\r\n\r\n \r\n public ngAfterViewInit() {\r\n }\r\n\r\n public Update(count: number){\r\n this.count = count;\r\n this.matPag._intl.getRangeLabel = (page: number, pageSize: number, length: number) => this.rangeLabelPaginator(page,pageSize,length); \r\n this.initPageButton();\r\n }\r\n\r\n rangeLabelPaginator(page: number, pageSize: number, length: number):string {\r\n this.page = page;\r\n this.pageSize = pageSize;\r\n this.length = length;\r\n const pageStartIndex = page * pageSize + 1;\r\n const pageEndIndex = Math.min(length, (page + 1) * pageSize);\r\n const itemsTotal = this.count;\r\n return `${pageStartIndex} - ${pageEndIndex} ${this.traslate.instant('DE_PAGER')} ${itemsTotal}`;\r\n\r\n };\r\n }","import { Component, OnInit } from '@angular/core'\r\nimport { faTwitter, faLinkedinIn } from '@fortawesome/free-brands-svg-icons'\r\nimport { NavigationData, NavigationService } from '../../core/services/navigation.service'\r\nimport { AuthService } from '../../core/services/auth.service'\r\nimport { faPhoneAlt, faEnvelope } from '@fortawesome/free-solid-svg-icons'\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n faTwitter = faTwitter\r\n faLinkedIn = faLinkedinIn\r\n faPhoneAlt = faPhoneAlt\r\n faEnvelope = faEnvelope\r\n\r\n socialNav: NavigationData['social']\r\n\r\n version: string = ''\r\n cultura: string = ''\r\n currentYear = new Date().getFullYear();\r\n\r\n constructor(public navService: NavigationService, public authService: AuthService) {\r\n this.socialNav = navService.from.social\r\n this.cultura = this.authService.getUserData()?.Cultura || 'es-AR'\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getVersion()\r\n\r\n\r\n }\r\n\r\n getVersion() {\r\n this.navService.getVersion()\r\n .subscribe((res: string) => {\r\n this.version = res\r\n })\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n © Copyright {{currentYear}} Planexware S.A. Versión {{ version }} | \r\n {{\"TERMINOS_CONDICIONES\" | translate}} |\r\n {{\"POLITICAS_PRIVACIDAD\" | translate}}\r\n
\r\n
\r\n \r\n
\r\n \r\n \"Planexware\"\r\n \"AFIP\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { NavItem, MainNavService, NewDocumentItem } from '../../core/services/main-nav.service'\r\nimport { icons as navIcons } from './main-nav.icons'\r\nimport { MatDialog } from '@angular/material/dialog'\r\n\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service'\r\nimport { AuthService } from 'src/app/core/services/auth.service'\r\nimport { DialogConciliacionContactarComponent } from '../dialog-conciliacion-contactar/dialog-conciliacion-contactar.component'\r\nimport { ConfigurationServicesService } from 'src/app/core/services/configuration-services.service'\r\nimport { environment } from 'src/environments/environment'\r\nimport { DialogFakeDoorButtonComponent } from '../dialog-fake-door-button/dialog-fake-door-button.component'\r\n\r\n@Component({\r\n selector: 'app-main-nav',\r\n templateUrl: './main-nav.component.html',\r\n styleUrls: ['./main-nav.component.scss'],\r\n})\r\nexport class MainNavComponent implements OnInit {\r\n mainNavIcons = navIcons\r\n navItems: NavItem[] = []\r\n newDocumentItems: any[] = []\r\n conciliacionVisible = false;\r\n seguimientoEntregaFakeDoorButtonVisible = false;\r\n\r\n constructor(private mainNavService: MainNavService,\r\n public dialog: MatDialog,\r\n private authService: AuthService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n private configurationServicesService: ConfigurationServicesService, \r\n ) {\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.mainNavService.getMainItems().subscribe((data) => {\r\n this.navItems = data;\r\n //TODO: FIX\r\n this.navItems.forEach((item) => {\r\n item.url = \"/main\" + item.url\r\n });\r\n });\r\n this.mainNavService.getNewDocumentItems().subscribe((data: any[]) => {\r\n this.newDocumentItems = data;\r\n });\r\n let userdata = this.authService.userdata;\r\n let EmFacRetail = await this.configurationServicesService.ValidarClienteTieneServicioContratado(userdata.Cliente.Id,userdata.Cliente.IdPais,'EmFacRetail');\r\n let EmNcreRetail = await this.configurationServicesService.ValidarClienteTieneServicioContratado(userdata.Cliente.Id, userdata.Cliente.IdPais,'EmNcreRetail');\r\n let EmFCMiPymeRetail = await this.configurationServicesService.ValidarClienteTieneServicioContratado(userdata.Cliente.Id,userdata.Cliente.IdPais,'EmFCMiPymeRetail');\r\n let EmNCMiPymeRetail = await this.configurationServicesService.ValidarClienteTieneServicioContratado(userdata.Cliente.Id,userdata.Cliente.IdPais,'EmNCMiPymeRetail');\r\n\r\n this.conciliacionVisible = (EmFacRetail || EmNcreRetail || EmFCMiPymeRetail || EmNCMiPymeRetail) && environment.conciliacion && !this.authService.esPlanexware();\r\n if(this.conciliacionVisible)\r\n this.googleAnalyticsEventsService.emitEvent('Boton en barra - Conciliacion', 'Boton en barra - Conciliacion', null, true);\r\n\r\n this.evaluarFakeDoorButtonSeguimientoEntrega();\r\n }\r\n\r\n evaluarFakeDoorButtonSeguimientoEntrega(){\r\n this.seguimientoEntregaFakeDoorButtonVisible = environment.fakeDoorButton.seguimientoDeEntrega.visible && !this.authService.esPlanexware();\r\n if(this.seguimientoEntregaFakeDoorButtonVisible){\r\n const ga = 'Boton en barra - '+ environment.fakeDoorButton.seguimientoDeEntrega.GA;\r\n this.googleAnalyticsEventsService.emitEvent(ga, ga, null, true);\r\n }\r\n }\r\n\r\n onClickConciliacion(){\r\n let userdata = this.authService.userdata;\r\n let logAnalytic = \"Mostrar - \" + userdata.Cliente.RazonSocial + ' - ' + userdata.Nombre + ' ' + userdata.Apellido + ' - ' + userdata.NombreUsuario;\r\n this.googleAnalyticsEventsService.emitEvent('Conciliacion', logAnalytic, null, true);\r\n this.dialog.open(DialogConciliacionContactarComponent);\r\n }\r\n\r\n onClickFakeDoorButton(){\r\n const userdata = this.authService.userdata;\r\n const logAnalytic = \"Mostrar - \" + userdata.Cliente.RazonSocial + ' - ' + userdata.Nombre + ' ' + userdata.Apellido + ' - ' + userdata.NombreUsuario;\r\n this.googleAnalyticsEventsService.emitEvent(environment.fakeDoorButton.seguimientoDeEntrega.GA, logAnalytic, null, true);\r\n\r\n this.dialog.open(DialogFakeDoorButtonComponent,\r\n {\r\n data: {\r\n title: 'FAKE_DOOR_BUTTON.SEGUIMIENTO_DE_ENTREGAS_TITLE',\r\n text: 'FAKE_DOOR_BUTTON.SEGUIMIENTO_DE_ENTREGAS_DESC',\r\n imgName:'IMG_BLURRED_SEGUIMIENTO_ENTREGA.png',\r\n GAEventCategory: environment.fakeDoorButton.seguimientoDeEntrega.GA,\r\n imgWidth: '58%',\r\n },\r\n autoFocus: false,\r\n maxHeight: '95vh',\r\n panelClass: 'fake-door-dialog-container' \r\n }\r\n );\r\n\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {{ item.resourceKey | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{ item.resourceKey | translate }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","export let icons: any = {\r\n \"DOCUMENTOS_ICON\": \"copy\",\r\n \"CONEXIONES_ICON\": \"link\",\r\n \"CONFIGURACIONES_ICON\": \"cog\",\r\n \"OPERACIONES_ESP_ICON\": \"share-alt\"\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { ModalService } from 'src/app/core/services/modal.service';\r\n\r\n@Component({\r\n selector: 'app-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\nexport class ModalComponent implements OnInit {\r\n\r\n @Input() modalId: String\r\n @Input() closeFromBackground: Boolean = true\r\n\r\n @ViewChild('modalBackground') modalBackground: ElementRef\r\n\r\n constructor(public modalService: ModalService, private renderer: Renderer2) {\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n ngAfterViewInit() {\r\n this.renderer.listen(this.modalBackground.nativeElement, 'click',(e:Event)=>{\r\n if (e.target && this.closeFromBackground && e.target == this.modalBackground.nativeElement) {\r\n this.close()\r\n }\r\n /**\r\n * Only run when toggleButton is not clicked\r\n * If we don't check this, all clicks (even on the toggle button) gets into this\r\n * section which in the result we might never see the menu open!\r\n * And the menu itself is checked here, and it's where we check just outside of\r\n * the menu and button the condition abbove must close the menu\r\n */\r\n // if(e.target !== this.toggleButton.nativeElement && e.target!==this.menu.nativeElement){\r\n // this.isMenuOpen=false;\r\n // }\r\n });\r\n \r\n }\r\n\r\n handleClickEvent(e: Event) {\r\n }\r\n\r\n close(): void {\r\n this.modalService.closeModal()\r\n }\r\n\r\n backgroundClose() {\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n faPhone,\r\n faEnvelope,\r\n faBell,\r\n faDownload,\r\n faQuestion,\r\n faUser,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport {\r\n NavigationData,\r\n NavigationService,\r\n} from 'src/app/core/services/navigation.service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { TokenUserData } from 'src/app/core/models/accessToken';\r\nimport { ModalService } from 'src/app/core/services/modal.service';\r\n\r\nimport { Administrators } from 'src/app/core/models/administrators.interface';\r\nimport { ConnectionsService } from 'src/app/core/services/connections.service';\r\nimport { DownloadService } from 'src/app/core/services/download.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { BehaviorSubject, Subscription, of } from 'rxjs';\r\nimport { MediaChange, MediaObserver } from '@angular/flex-layout';\r\nimport { isNullOrEmptyOrUndefined } from '../utils/utils.component';\r\nimport { JwtInfo } from 'src/app/pages/login/Models/JwtInfo';\r\nimport { MensajesDocumentosService } from 'src/app/core/services/mensajes-documentos.service';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\n\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { finalize, switchMap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.scss'],\r\n})\r\nexport class NavbarComponent implements OnInit {\r\n\r\n userData?: TokenUserData;\r\n isTopNavCollapsed: boolean;\r\n unreadNotifications$: BehaviorSubject;\r\n adminsList: Array;\r\n\r\n mediaSub: Subscription;\r\n deviceXs: boolean;\r\n\r\n openAdminsModal: boolean;\r\n openDownloadsModal: boolean;\r\n\r\n notif = 6;\r\n downloads = 2;\r\n\r\n // icons\r\n faPhone = faPhone;\r\n faEnvelope = faEnvelope;\r\n faBell = faBell;\r\n faDownload = faDownload;\r\n faQuestion = faQuestion;\r\n faUser = faUser;\r\n\r\n // nav\r\n pagesNav: NavigationData['pages'];\r\n userNav: NavigationData['pages']['user'];\r\n topBarNav: NavigationData['topBar'];\r\n\r\n hideBell = false;\r\n usaSocialLogin = false;\r\n constructor(\r\n public mediaObserver: MediaObserver,\r\n public navService: NavigationService,\r\n public authService: AuthService,\r\n public modalService: ModalService,\r\n public connectionsService: ConnectionsService,\r\n public mensajesDocumentosService: MensajesDocumentosService,\r\n public downloadService: DownloadService,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private authMsalService: MsalService \r\n ) {\r\n this.pagesNav = navService.from.pages;\r\n this.userNav = this.pagesNav.user;\r\n this.topBarNav = navService.from.topBar;\r\n this.userData = authService.getUserData();\r\n }\r\n\r\n ngOnInit(): void {\r\n var ocultar = false;\r\n if (this.authService.userdata.TipoUsuario === 'Planex' && isNullOrEmptyOrUndefined(this.authService.userdata.ConectadoComo) ) {\r\n ocultar = true;\r\n this.authService.generarTokenJWTDesconectarSoporte().subscribe(token => {\r\n let userInfo: JwtInfo = (token);\r\n sessionStorage.setItem('token', userInfo.jwt);\r\n });\r\n }\r\n this.hideBell = ( (this.authService.userdata.Tipo ?? this.authService.userdata.TipoUsuario) === 'Planex' && isNullOrEmptyOrUndefined(this.authService.userdata.ConectadoComo)) || ocultar;\r\n this.connectionsService.getNotificationsAmount();\r\n \r\n this.mensajesDocumentosService.checkServicioNoChat();\r\n this.analyticsCantidadMensajes()\r\n if(!this.mensajesDocumentosService.tieneServicioNoChat$) this.mensajesDocumentosService.getMensajesDocumentosAmount(); \r\n \r\n this.getAdminsInfo();\r\n this.getLayout();\r\n this.usaSocialLogin = this.authService.getUserData()?.UsaSocialLogin?? false;\r\n \r\n }\r\n\r\n esUsuarioPLX(): boolean {\r\n return this.authService.esPlanexware();\r\n }\r\n \r\n estaConectadoComo(): boolean {\r\n return this.authService.conectadoComo();\r\n }\r\n\r\n\r\n ngOnDestroy(){\r\n this.mediaSub.unsubscribe()\r\n }\r\n\r\n getLayout(){\r\n this.mediaSub = this.mediaObserver.media$.subscribe((resutl:MediaChange) => {\r\n this.deviceXs = resutl.mqAlias === 'xs' ? true : false\r\n });\r\n }\r\n\r\n getAdminsInfo() {\r\n this.navService.getAdminsInfo().subscribe(\r\n (res: Array) => {\r\n this.adminsList = res;\r\n },\r\n (err) => {\r\n // TODO: toaster error\r\n }\r\n );\r\n }\r\n\r\n\r\n toggleNotifications() {\r\n this.connectionsService.loadingNotifications = true\r\n this.connectionsService.getConnections()\r\n this.connectionsService.getNotificationsAmount();\r\n\r\n }\r\n\r\n openDownloads() {\r\n this.downloadService.getDownloadsList()\r\n this.openModal('downloadsModal')\r\n }\r\n\r\n openAdmins() {\r\n this.openModal('adminModal')\r\n }\r\n\r\n openModal(id: string) {\r\n this.navService.openNotificationPanel = false;\r\n this.modalService.openModal(id);\r\n }\r\n\r\n logout() {\r\n if (this.authService.getUserData()?.UsaSocialLogin) {\r\n const account = this.authMsalService.instance.getActiveAccount();\r\n if(account?.idTokenClaims?.iss?.includes(\"microsoft\")){\r\n this.authMsalService.instance.setActiveAccount(null);\r\n }\r\n }\r\n this.clearSessionAndRedirect();\r\n // this.navService.logout().pipe(\r\n // switchMap(() => {\r\n // if (this.authService.getUserData()?.UsaSocialLogin) {\r\n // const account = this.authMsalService.instance.getActiveAccount();\r\n // if(account?.idTokenClaims?.iss?.includes(\"microsoft\")){\r\n // this.authMsalService.instance.setActiveAccount(null);\r\n // return this.authMsalService.logoutPopup(\r\n // { idTokenHint: account?.idToken,\r\n // mainWindowRedirectUri: `${environment.url}/v2/login`\r\n // });\r\n // return of(null); \r\n // } else {\r\n // return of(null); \r\n // }\r\n // }\r\n // // If the user is not authenticated with Google or Microsoft, just return an empty observable\r\n // return of(null);\r\n \r\n // }),\r\n // finalize(() => this.clearSessionAndRedirect())\r\n // ).subscribe({\r\n // error: (err) => this.handleError(err),\r\n // complete: () => this.handleComplete()\r\n // });\r\n }\r\n \r\n clearSessionAndRedirect() {\r\n this.clearSession();\r\n if(this.authService.getUserData()?.UsaSocialLogin) {\r\n this.authMsalService.logoutRedirect();\r\n }\r\n \r\n let fullURL = `${environment.url}/v2/login`\r\n this.document.location.href = fullURL\r\n }\r\n \r\n clearSession() {\r\n localStorage.removeItem('msal.interaction.status');\r\n sessionStorage.removeItem('msal.interaction.status');\r\n sessionStorage.removeItem('jwt');\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n }\r\n\r\n getMensajesDocumentos(){\r\n this.mensajesDocumentosService.getMensajesDocumentosAmount();\r\n this.mensajesDocumentosService.getMensajesDocumentos();\r\n\r\n let owner = this.authService.getOwner();\r\n this.googleAnalyticsEventsService.emitEvent('Mensajeria', `Mostrar Msj: ${this.mensajesDocumentosService.mensajesDocumentosCount$.value} - Empresa: ${owner.razonSocial}`, null, true);\r\n }\r\n\r\n analyticsCantidadMensajes(){\r\n this.mensajesDocumentosService.getCantidadMensajesConRetorno().subscribe(cant =>{\r\n this.googleAnalyticsEventsService.emitEvent('Mensajeria', `Panel Msj: ${cant} - Empresa: ${this.authService.getOwner().razonSocial}`, null, true);\r\n });\r\n }\r\n}\r\n","\r\n \r\n \"Planexware\"\r\n\r\n\r\n \r\n \r\n
\r\n \r\n \"Krikos360\"\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n {{ userData?.Nombre }} {{ userData?.Apellido }}\r\n {{ userData?.Cliente.RazonSocial }}\r\n\r\n \r\n personarrow_drop_down\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n personarrow_drop_down\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { faUser } from '@fortawesome/free-solid-svg-icons'\r\nimport { ModalService } from 'src/app/core/services/modal.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-admin-list',\r\n templateUrl: './admin-list.component.html',\r\n styleUrls: ['./admin-list.component.scss']\r\n})\r\nexport class AdminListComponent implements OnInit {\r\n @Input() administrators: any\r\n // Icons\r\n faUser = faUser\r\n constructor(public modalService: ModalService, private translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n closeModal() {\r\n this.modalService.closeModal()\r\n }\r\n}\r\n","\r\n \r\n

\r\n {{ \"DATOS_DE_MI_ADMINISTRADOR\" | translate }}\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n

\r\n {{ admin.nombre }} {{ admin.apellido }}\r\n

\r\n {{ admin.email }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DownloadService } from 'src/app/core/services/download.service';\r\n\r\nimport { Downloads } from 'src/app/core/models/downloads.interface';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Sort } from '@angular/material/sort';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-downloads-list',\r\n templateUrl: './downloads-list.component.html',\r\n styleUrls: ['./downloads-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DownloadsListComponent implements OnInit {\r\n loadingId: number | undefined\r\n constructor(\r\n public downloadService: DownloadService,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private translateService: TranslateService,\r\n private authService: AuthService\r\n ) {}\r\n\r\n displayedColumns: string[] = ['nombre', 'fechaInicio', 'peso', 'estado','control'];\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n downloadFile(id: number, nombre: string) {\r\n this.loadingId = id;\r\n\r\n this.downloadService.getFile(id).subscribe((data: ArrayBuffer) => {\r\n this.loadingId = undefined\r\n const file = new File([data], nombre, {\r\n type: 'application/zip',\r\n });\r\n let blobURL = window.URL.createObjectURL(file);\r\n //TODO: Revisar\r\n // if (window.navigator.msSaveOrOpenBlob) {\r\n // IE needs special hand-holding....\r\n // window.navigator.msSaveOrOpenBlob(file, 'EXPLORER.zip');\r\n //} else {\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute('href', blobURL);\r\n a.setAttribute('download', nombre);\r\n a.click();\r\n URL.revokeObjectURL(a.href);\r\n a.remove();\r\n //window.open(blobURL);\r\n //}\r\n var index = this.downloadService.downloadsList.findIndex(cada => cada.id === id);\r\n this.downloadService.downloadsList[index].inicioDescarga = true;\r\n this.downloadService.downloadsList[index].generado = true;\r\n },\r\n (err) => {\r\n this.downloadFailed(err)\r\n });\r\n }\r\n\r\n downloadFailed(err: HttpErrorResponse) {\r\n\r\n this.toastr.error(this.translateService.instant('ERROR_APLICACION'), '', {\r\n\r\n positionClass: \"toast-top-full-width\",\r\n disableTimeOut: true,\r\n closeButton: true\r\n\r\n });\r\n this.loadingId = undefined\r\n ////console.log(err.message)\r\n }\r\n sortData(sort: Sort) {\r\n const data = this.downloadService.downloadsList.slice();\r\n if (!sort.active || sort.direction === '') {\r\n this.downloadService.downloadsList = data;\r\n return;\r\n }\r\n\r\n this.downloadService.downloadsList = data.sort((a, b) => {\r\n const isAsc = sort.direction === 'asc';\r\n switch (sort.active) {\r\n case 'nombre':\r\n return compare(a.nombre, b.nombre, isAsc);\r\n case 'fechaInicio':\r\n return compare(a.fechaInicio, b.fechaInicio, isAsc);\r\n case 'peso':\r\n return compare(a.peso, b.peso, isAsc);\r\n case 'estado':\r\n return compare(this.estadoANumero(a), this.estadoANumero(b), isAsc);\r\n\r\n default:\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n estadoANumero(row: Downloads): number{\r\n if(row.generado === false)\r\n return 10;\r\n if(row.inicioDescarga === true)\r\n return 5;\r\n return 0;\r\n }\r\n\r\n agregarTimeZone(): string {\r\n return this.authService.getTimeZone();\r\n }\r\n\r\n\r\n}\r\n\r\nfunction compare(a: number | string, b: number | string, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\r\n}\r\n\r\n","\r\n
\r\n
\r\n

{{'DESCARGAS_EXPORTACIONES' | translate}}

\r\n
\r\n
\r\n
\r\n

\r\n {{'ARCHIVOS_48_HORAS' | translate }}\r\n

\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ 'Nombre' | translate }} {{element.nombre}} {{ 'FECHA_PEDIDO' | translate }} {{ element.fechaInicio | date: \"dd/MM/yyyy HH:mm\" : agregarTimeZone() }} {{ 'PESO' | translate }} {{ element.peso | megabytes }} {{ 'Estado' | translate }} \r\n
\r\n \r\n
\r\n {{ 'DESCARGA_PENDIENTE' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ 'DESCARGA_DESCARGADO' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ 'DESCARGA_DISPONIBLE' | translate }}
\r\n
\r\n
\r\n\r\n
\r\n \r\n get_app\r\n autorenew\r\n \r\n
\r\n\r\n \r\n \r\n {{'NO_HAY_DESCARGAS_DISPONIBLES' | translate }}\r\n
\r\n
\r\n

\r\n \r\n {{'HELP_VALORES_COLUMNA_ESTADO' | translate }}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MesajeDocumentosChatNotificacion } from 'src/app/core/models/mensajesDocumentos.interface';\r\nimport { StorageService } from 'src/app/core/services/Storage.Service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { GoogleAnalyticsEventsService } from 'src/app/core/services/google-analytics-events.service';\r\nimport { MensajesDocumentosService } from 'src/app/core/services/mensajes-documentos.service';\r\nimport { BusquedaDocumentos } from 'src/app/pages/documentos-clientes/components/models/BusquedaDocumentos';\r\nimport { TableDataService } from 'src/app/pages/documentos-clientes/components/services/table-data.service';\r\n\r\n@Component({\r\n selector: 'app-mensajes-documentos',\r\n templateUrl: './mensajes-documentos.component.html',\r\n styleUrls: ['./mensajes-documentos.component.scss']\r\n})\r\nexport class MensajesDocumentosComponent implements OnInit {\r\n\r\n constructor(\r\n public mensajesDocumentosService: MensajesDocumentosService,\r\n private tableDataSourceService: TableDataService,\r\n private router: Router,\r\n private googleAnalyticsEventsService: GoogleAnalyticsEventsService,\r\n public authService: AuthService,\r\n private storageService: StorageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClickResponder(mensaje: MesajeDocumentosChatNotificacion){\r\n\r\n let filtro : BusquedaDocumentos =new BusquedaDocumentos;\r\n filtro.numerosDocumentos = [mensaje.numeroDocumento];\r\n filtro.sobre = mensaje.sobre;\r\n filtro.productivo = null;\r\n filtro.criterioFiltroFecha=\"SIN_FILTRO_POR_FECHA\";\r\n filtro.tiposDocumentos=[]\r\n filtro.estadosDocumentos=[]\r\n filtro.descargaAutomatica=[]\r\n if(this.storageService.getHoldingMode()){\r\n filtro.empresasDelUsuario=[{id: mensaje.clienteFiltro.id, idPais: mensaje.clienteFiltro.idPais}]\r\n }else{\r\n filtro.empresasDelUsuario=[];\r\n }\r\n filtro.interlocutores=[]\r\n filtro.componentes=[]\r\n filtro.origen = \"MensajesDocumentosNavBar\"\r\n\r\n this.tableDataSourceService.setSearchFilters(filtro);\r\n this.router.navigate([\r\n '/main/documentos/37',\r\n ]);\r\n\r\n let owner = this.authService.getOwner();\r\n this.googleAnalyticsEventsService.emitEvent('Mensajeria', `Responder Msj - Empresa: ${owner.razonSocial}`, null, true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{\"MENSAJERIA_SOBRE_DOCUMENTOS\" | translate}}

\r\n\r\n
\r\n

{{\"NO_HAY_MENSAJES\" | translate}}

\r\n
\r\n\r\n
\r\n
{{\"MENSAJES_DE\" | translate}} {{mensaje.razonSocial}} {{\"SOBRE\" | translate}} {{mensaje.tipoDocumento | translate}} N° {{mensaje.numeroDocumento}}
\r\n

\r\n \r\n
\r\n
\r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { ConnectionsService } from 'src/app/core/services/connections.service';\r\nimport { ModalService } from 'src/app/core/services/modal.service';\r\nimport { NavigationService } from 'src/app/core/services/navigation.service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { isNullOrEmptyOrUndefined } from '../../../utils/utils.component'\r\nimport { environment } from 'src/environments/environment';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Connections } from 'src/app/core/models/connections.interface';\r\nimport { LogoService } from 'src/app/core/services/logo.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-notification-panel',\r\n templateUrl: './notification-panel.component.html',\r\n styleUrls: ['./notification-panel.component.scss'],\r\n})\r\nexport class NotificationPanelComponent implements OnInit {\r\n\r\n rejectingConnectionId: number\r\n conectadoComo: boolean\r\n connectionsMock: Array\r\n tieneFuncionAceptarRechazar = false;\r\n tieneFuncionRepresentantes = false;\r\n tooltip_aceptarrechazar: string;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n public navService: NavigationService,\r\n public connectionsService: ConnectionsService,\r\n public modalService: ModalService,\r\n public authService: AuthService,\r\n private toastr: ToastrService,\r\n private logoService: LogoService,\r\n @Inject(DOCUMENT) private document: Document\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n //Generar metodo de obtencion de nuevos mensajes. Llamar al serviceMetod Notifaciones De Chat.\r\n //Modificar metodo de suma de conexiones en campanita. Agregar la cantidad de mensajes total.\r\n //Generar una nueva clase que se va a terminar mostrando a modo de card en el html.\r\n //Generar metodo de Responder con redireccion a documentos\r\n //Generar metodo de Ver todos con redireccion a documentos\r\n\r\n this.conectadoComo = !isNullOrEmptyOrUndefined(this.authService.userdata.ConectadoComo) && (this.authService.userdata.Tipo ?? this.authService.userdata.TipoUsuario) === 'Planex';\r\n var funciones = sessionStorage.getItem(\"Funciones\")?.toString().includes(\"ConexionesPendientes/AceptarRechazar\");\r\n if (funciones)\r\n this.tieneFuncionAceptarRechazar = true;\r\n else\r\n this.tieneFuncionAceptarRechazar = false;\r\n if (this.muestra())\r\n this.tooltip_aceptarrechazar = \"\";\r\n else\r\n this.tooltip_aceptarrechazar = 'CONTACTE_ADMINISTRADOR';// this.translateService.instant('CONTACTE_ADMINISTRADOR');\r\n\r\n }\r\n\r\n confirmConnection(id: number, razonSocial: string) {\r\n this.connectionsService.confirmConnection(id, razonSocial)\r\n this.modalService.openModal('connectionsModal');\r\n\r\n }\r\n\r\n rejectConnection(id: number, razonSocial: string) {\r\n this.rejectingConnectionId = id\r\n }\r\n\r\n resolverSentido(sentido: string) {\r\n let res: string = \"\";\r\n if (sentido == 'Enviarle'){\r\n res = \"a\";\r\n }\r\n else{\r\n res = \"de\";\r\n }\r\n return res;\r\n }\r\n\r\n\r\n\r\n cancelReject() {\r\n this.rejectingConnectionId = 0\r\n this.connectionsService.getNotificationsAmount();\r\n\r\n }\r\n\r\n confirmReject(id: number, razonSocial: string) {\r\n this.connectionsService.rejectConnection(this.rejectingConnectionId, razonSocial)\r\n this.connectionsService.getNotificationsAmount();\r\n\r\n }\r\n muestra(): boolean {\r\n return !this.conectadoComo && this.tieneFuncionAceptarRechazar\r\n }\r\n\r\n close() {\r\n this.navService.openNotificationPanel = false;\r\n }\r\n\r\n funcionRepresentante(): boolean {\r\n return sessionStorage.getItem(\"Funciones\")?.toString().includes(\"configuraciones/Representantes\") ?? false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{ \"PANEL_NOTIFICACIONES\" | translate }}

\r\n 0\" class=\"solicitudes\">\r\n {{ \"VER_TODAS\" | translate }}\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n notifications_off\r\n
\r\n {{ \"USTED_NO_POSEE_SOLICITUDES_PENDIENTES\" | translate }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {{card.intercambiosDeDocumento.length > 0 ? \"\" : card.interlocutor.razonSocial}} {{ (card.intercambiosDeDocumento.length > 0 ? \"EMPRESA_INVITADA_A\" : \"SER_SU_REPRESENTANTE\") | translate }}\r\n
    \r\n
  1. \r\n {{ document.notificacion | translate }}\r\n {{ document.tipoDocumento.resourceKey | translate }}\r\n {{ document.tipoDocumento.version | translate }}\r\n {{ resolverSentido(document.notificacion) | translate }}\r\n {{ card.interlocutor.razonSocial }}\r\n
  2. \r\n
\r\n
0\" class=\"footer-card\">\r\n {{ \"RECHAZAR\" | translate }}\r\n   \r\n\r\n {{ \"CONFIRMAR\" | translate }}\r\n
\r\n
\r\n {{ \"VER\" | translate }}\r\n
\r\n
\r\n\r\n \r\n {{ \"MENSAJE_MODAL_RECHAZAR_INVITACION\" | translate }}\r\n
\r\n {{ \"CANCELAR\" | translate }}\r\n {{ \"CONFIRMAR\" | translate }}\r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'app-planex-logo',\r\n templateUrl: './planex-logo.component.html',\r\n styleUrls: ['./planex-logo.component.scss'],\r\n})\r\nexport class PlanexLogoComponent implements OnInit {\r\n @Input() width?: string\r\n @Input() height?: string\r\n @Input() inline?: boolean\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n \"Planexware\"\r\n\r\n","import { LOCALE_ID, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavbarComponent } from './navbar/navbar.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbCollapseModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { PlanexLogoComponent } from './planex-logo/planex-logo.component';\r\nimport { ScrollAutohideDirective } from './directives/scroll-autohide.directive';\r\nimport { MainNavComponent } from './main-nav/main-nav.component';\r\nimport { ModalComponent } from './modal/modal.component';\r\nimport { AdminListComponent } from './navbar/shared/admin-list/admin-list.component';\r\nimport { DownloadsListComponent } from './navbar/shared/downloads-list/downloads-list.component';\r\nimport { PipesModule } from '../core/pipes/pipes.module';\r\nimport { NotificationPanelComponent } from './navbar/shared/notification-panel/notification-panel.component';\r\nimport { ConnectionsComponent } from './connections/connections.component';\r\nimport { SwitchComponent } from './switch/switch.component';\r\nimport { VerticalMenuComponent } from './vertical-menu/vertical-menu.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { CampoDecimalComa } from './directives/campo-decimal-coma.directive';\r\nimport { CampoNumericoDirective } from './directives/campo-numerico.directive';\r\nimport { StylePaginatorDirective } from './directives/stylePaginatorDirective';\r\nimport { DocHistorialDirective } from './directives/doc-historial.directive';\r\nimport { MaterialModule } from '../material-module';\r\n\r\n\r\n// AvatarModule\r\nimport { AvatarModule } from 'ngx-avatar';\r\n\r\n// i18n modules\r\nimport { ToasterComponent } from './toaster/toaster.component';\r\nimport { ConnectedSupportComponent } from './connected-support/connected-support.component';\r\nimport { ConfirmacionDialogComponent } from './confirmacion-dialog/confirmacion-dialog.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MensajesDocumentosComponent } from './navbar/shared/mensajes-documentos/mensajes-documentos.component';\r\nimport { stylePaginatorDirectiveConections } from './directives/stylePaginatorDirectiveConections';\r\nimport { DialogConciliacionContactarComponent } from './dialog-conciliacion-contactar/dialog-conciliacion-contactar.component';\r\nimport { DialogFakeDoorButtonComponent } from './dialog-fake-door-button/dialog-fake-door-button.component';\r\nimport { AuthService } from '../core/services/auth.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NavbarComponent,\r\n FooterComponent,\r\n PlanexLogoComponent,\r\n ScrollAutohideDirective,\r\n MainNavComponent,\r\n ModalComponent,\r\n AdminListComponent,\r\n DownloadsListComponent,\r\n NotificationPanelComponent,\r\n ConnectionsComponent,\r\n SwitchComponent,\r\n VerticalMenuComponent,\r\n ToasterComponent,\r\n CampoDecimalComa,\r\n CampoNumericoDirective,\r\n ConnectedSupportComponent,\r\n ConfirmacionDialogComponent,\r\n StylePaginatorDirective,\r\n stylePaginatorDirectiveConections,\r\n DocHistorialDirective,\r\n MensajesDocumentosComponent,\r\n DialogConciliacionContactarComponent,\r\n DialogFakeDoorButtonComponent\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n CommonModule,\r\n RouterModule,\r\n NgbCollapseModule,\r\n FontAwesomeModule,\r\n NgbModule,\r\n PipesModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AvatarModule,\r\n NgxDatatableModule,\r\n AutocompleteLibModule,\r\n MaterialModule,\r\n FlexLayoutModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n NavbarComponent,\r\n FooterComponent,\r\n TranslateModule,\r\n NgxDatatableModule,\r\n AutocompleteLibModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FontAwesomeModule,\r\n ToasterComponent,\r\n MainNavComponent,\r\n CampoDecimalComa,\r\n CampoNumericoDirective,\r\n ConnectedSupportComponent,\r\n MaterialModule,\r\n PipesModule,\r\n FlexLayoutModule,\r\n StylePaginatorDirective,\r\n stylePaginatorDirectiveConections,\r\n DocHistorialDirective,\r\n ModalComponent\r\n\r\n ],\r\n providers: [\r\n { provide: LOCALE_ID, useFactory: (authService: AuthService) => authService.getUserData()?.Cultura || 'es-AR', deps: [AuthService]}\r\n ]\r\n})\r\nexport class SharedModule {\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-switch',\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SwitchComponent),\r\n multi: true\r\n }\r\n]\r\n})\r\nexport class SwitchComponent {\r\n\r\n @Input() id: number\r\n\r\n constructor() { }\r\n\r\n \r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ToasterMessage } from 'src/app/core/models/alert-message.interface';\r\nimport { ToasterService } from 'src/app/core/services/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-toaster',\r\n templateUrl: './toaster.component.html',\r\n styleUrls: ['./toaster.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n \r\n constructor(private toasterService: ToasterService, private router: Router) { }\r\n @Input() message: ToasterMessage\r\n \r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n closeAlert(id: number | undefined) {\r\n this.toasterService.closeAlert(id)\r\n }\r\n\r\n getStyleClass(messageType: string) {\r\n switch (messageType) {\r\n case 'Comercial':\r\n return '--comercial'\r\n case 'Operativo':\r\n return '--operativo'\r\n case 'info':\r\n return '--info'\r\n case 'Producto':\r\n return '--producto'\r\n }\r\n }\r\n\r\n getIcon(messageType: string) {\r\n switch (messageType) {\r\n case 'Comercial':\r\n return 'bullhorn'\r\n case 'Operativo':\r\n return 'exclamation-circle'\r\n case 'info':\r\n return 'exclamation-circle'\r\n case 'Renovacion':\r\n return 'bell'\r\n case 'Producto':\r\n return 'bullhorn'\r\n }\r\n }\r\n renovarAbono() {\r\n this.router.navigate(['/main/renovacion/datosBasicos']);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n RENOVAR_ABONO\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport class PaginatorI18n {\r\n\r\n constructor(private readonly translate: TranslateService) {}\r\n\r\n private RangeLabel = (page: number, pageSize: number, length: number) => {\r\n let de = this.translate.instant(\"DE_PAGER\");\r\n if (length == 0 || pageSize == 0) { return `0 ${de} ${length}`; }\r\n \r\n length = Math.max(length, 0);\r\n\r\n const startIndex = page * pageSize;\r\n\r\n // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n const endIndex = startIndex < length ?\r\n Math.min(startIndex + pageSize, length) :\r\n startIndex + pageSize;\r\n\r\n return `${startIndex + 1} - ${endIndex} ${de} ${length}`;\r\n }\r\n\r\n\r\n public getPaginatorIntl():MatPaginatorIntl {\r\n const paginatorIntl = new MatPaginatorIntl(); \r\n\r\n paginatorIntl.itemsPerPageLabel = this.translate.instant(\"ITEMS_POR_PAGINA\");\r\n paginatorIntl.nextPageLabel = this.translate.instant(\"PAGINA_SIGUIENTE\");\r\n paginatorIntl.previousPageLabel = this.translate.instant(\"PAGINA_ANTERIOR\");\r\n paginatorIntl.firstPageLabel = this.translate.instant(\"PRIMER_PAGINA\");\r\n paginatorIntl.lastPageLabel = this.translate.instant(\"ULTIMA_PAGINA\");\r\n paginatorIntl.getRangeLabel = this.RangeLabel; \r\n \r\n return paginatorIntl;\r\n }\r\n}","\r\nimport { formatCurrency } from '@angular/common';\r\n\r\nexport const isNullOrEmptyOrUndefined = (value: any): boolean => {\r\n return value === null || value === undefined || value === '';\r\n};\r\n\r\nexport const stringToNumber = (value: string): number => {\r\n\r\n if (value != null && typeof value == 'string')\r\n if (value.includes('.') && value.includes(','))\r\n value = value.replace(/\\./g,\"\").replace(',', '.');\r\n else\r\n value = value.replace(',','.');\r\n\r\n return Number(value);\r\n};\r\n\r\nexport const numberToString = (value: number): string => {\r\n let retorno = '';\r\n if (value != null && typeof value == 'number')\r\n if (value.toString().includes('.') && value.toString().includes(','))\r\n retorno = value.toString().replace(/\\,/g,\"\").replace('.', ',');\r\n else\r\n retorno = value.toString().replace(',','.');\r\n \r\n return retorno;\r\n};\r\n\r\nexport const formatearInfo = (data: any, simbolo: string): any => {\r\n if (simbolo == '%')\r\n {\r\n if (Array.isArray(data))\r\n {\r\n let info = data.map((x:any) => ({ ...x, desc_ok: generarDescripcionPorcentage(x.descripcion) }))\r\n return (info).sort((a:any,b:any)=> { return a.descripcion - b.descripcion });\r\n }\r\n \r\n return generarDescripcionPorcentage(data);\r\n \r\n }\r\n\r\n if (simbolo == '$')\r\n {\r\n return retornaCampoImporte(data);\r\n }\r\n\r\n};\r\n\r\nfunction generarDescripcionPorcentage(x:any) {\r\n let desc = x.toString().replace('.', ',');\r\n let numArr = desc.split(\",\");\r\n if (numArr.length > 1) {\r\n \r\n if (numArr[1].length === 1) { \r\n //20,0 a 20,00\r\n desc += \"0\"; \r\n }\r\n \r\n if (numArr[1].length > 2) {\r\n //10,052 1, 10,05\r\n desc = desc.slice(0, 2 + desc.indexOf(',') + 1);\r\n }\r\n \r\n }\r\n else\r\n { //1 a 1,00\r\n desc += \",00\";\r\n }\r\n return desc;\r\n}\r\n\r\nfunction retornaCampoImporte(pImporte:any) {\r\n \r\n let local = sessionStorage.getItem('lenguage') || 'es-AR';\r\n let imp = stringToNumber(pImporte);\r\n let importe = formatCurrency(imp, local, '', '');\r\n \r\n return importe;\r\n \r\n}\r\n\r\nexport const aDecimalConPuntoSinSepMil = (importe: string | number, decimals: number = 2): string => {\r\n let value: string = '';\r\n if (typeof importe == 'number'){\r\n value = serializarImporte(importe);\r\n } else {\r\n value = importe;\r\n }\r\n\r\n const lang = sessionStorage.getItem('lenguage') || 'es-AR';\r\n\r\n const separador: RegExp = lang == 'en-US' ? /,/g : /\\./g;\r\n const decimal: string = lang == 'en-US' ? '.' : ',';\r\n value = value.replace(separador, '');\r\n value = value.replace(decimal, '.');\r\n\r\n if (!isNullOrEmptyOrUndefined(value)) {\r\n if(value.indexOf('.') === -1) {\r\n value = value + \".\";\r\n }\r\n\r\n let i: number = value.length - value.indexOf('.');\r\n\r\n for (let index = i; index <= decimals; index++) {\r\n value = value + \"0\";\r\n }\r\n }\r\n\r\n return value;\r\n}\r\n\r\nexport const deserializarImporte = (importe: string): number => {\r\n const lang = sessionStorage.getItem('lenguage') || 'es-AR';\r\n\r\n const caracterMillar: RegExp = lang == 'en-US' ? /,/g : /\\./g;\r\n const caracterDecimal: string = lang == 'en-US' ? '.' : ',';\r\n importe = importe.replace(caracterMillar, '');\r\n importe = importe.replace(caracterDecimal, '.');\r\n return parseFloat(importe);\r\n}\r\n\r\nexport const serializarImporte = (importe: number, decimales: number = 2, seccionItems?: boolean): string => {\r\n const lang = sessionStorage.getItem('lenguage') || 'es-AR';\r\n const formatter = new Intl.NumberFormat(lang, {\r\n style: 'currency',\r\n currency: 'ARS',\r\n minimumFractionDigits: decimales,\r\n maximumFractionDigits: decimales\r\n });\r\n // @ts-ignore: Salta un error por la version desactualizada de TS\r\n const output: string = formatter.formatToParts(importe).map(({ type, value }) => {\r\n switch (type) {\r\n case 'currency': return '';\r\n case 'literal': return '';\r\n case 'group': {\r\n if(seccionItems) return '';\r\n else return value;\r\n };\r\n default: return value;\r\n }\r\n }).reduce((string: string, part: string) => string + part);\r\n return output;\r\n }\r\n\r\n //#region El método recibe 2 numeros para evaluar una diferencia, devuelve true si la diferencia entre los 2 numeros es igual o mayor a +-diferencia\r\n export const existeDiferencia = (primero: number, segundo: number, diferencia: number): boolean =>{\r\n return ((primero - segundo)/diferencia)**2 >= 1\r\n }\r\n //#endregion\r\n\r\n\r\n\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { icons as menuIcons } from './vertical-menu.icons';\r\n\r\n@Component({\r\n selector: 'app-vertical-menu',\r\n templateUrl: './vertical-menu.component.html',\r\n styleUrls: ['./vertical-menu.component.scss'],\r\n})\r\nexport class VerticalMenuComponent implements OnInit {\r\n menuId: string | null;\r\n menu: any[];\r\n menuSubject: BehaviorSubject\r\n numero: string = \"(+5411) 7701 8277\"\r\n constructor(\r\n private http: HttpClient,\r\n private activatedRoute: ActivatedRoute,\r\n public translate: TranslateService,\r\n public authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.paramMap.subscribe((param: ParamMap) => {\r\n this.menuId = param.get('menuId')\r\n this.getMenu();\r\n });\r\n }\r\n\r\n getMenu() {\r\n this.http\r\n .get(\r\n `${environment.apiUrl}/menu/vertical/${this.menuId}`\r\n )\r\n .subscribe((res: any[]) => {\r\n\r\n ////console.log(\"🚀 ~ file: vertical-menu.component.ts ~ line 38 ~ VerticalMenuComponent ~ .subscribe ~ res\", res)\r\n this.menuSubject = new BehaviorSubject(res);\r\n this.menu = this.menuSubject.value;\r\n sessionStorage.setItem('menu', JSON.stringify(this.menu));\r\n //TODO:FIX\r\n this.menu.forEach((item: any) => {\r\n item.url = \"/main/\" + item.url\r\n })\r\n\r\n if(this.authService.getUserData()?.Rol == 'Operador'){\r\n this.menu = this.menu.filter(item=> !item.disabled);\r\n }\r\n });\r\n }\r\n\r\n getIcon(resourceKey: string) {\r\n const result = menuIcons[`${resourceKey}_ICON`];\r\n return result;\r\n }\r\n\r\n iconClass(icon: string | null): string {\r\n return icon != \"AltaMail\" ? 'item__icon' : 'item__icon_empty';\r\n }\r\n\r\n canAccessToMenuPoint(item: any): boolean {\r\n return !item.disabled ||\r\n (item.disabled &&\r\n item.esEspecifico &&\r\n this.authService.userdata.ConectadoComo) ||\r\n (item.disabled &&\r\n !item.esEspecifico &&\r\n this.authService.userdata.ConectadoComo) ||\r\n (item.disabled &&\r\n !item.esEspecifico &&\r\n !this.authService.userdata.ConectadoComo)\r\n }\r\n\r\n itemDisabledAndConectedAsClient(item: any): boolean {\r\n return item.disabled && !this.authService.userdata.ConectadoComo;\r\n }\r\n\r\n itemEnabledAndConectedAsClient(item: any): boolean {\r\n return !item.disabled && !this.authService.userdata.ConectadoComo;\r\n }\r\n\r\n itemDisabledAndConectedAsSupport(item: any): boolean {\r\n return item.disabled && this.authService.userdata.ConectadoComo;\r\n }\r\n\r\n itemEnabledAndConectedAsSupport(item: any): boolean {\r\n return !item.disabled || this.authService.userdata.ConectadoComo\r\n }\r\n\r\n enableItemOrBackOffice(item: any): boolean {\r\n return this.itemEnabledAndConectedAsClient(item) || this.authService.userdata.ConectadoComo;\r\n }\r\n}\r\n\r\n","
\r\n
\r\n \r\n
\r\n \r\n {{ getIcon(item.resourceKey) }}\r\n \r\n
\r\n\r\n \r\n
\r\n

{{ item.resourceKey | translate }}

\r\n \r\n {{ \"person_off\" }}\r\n \r\n
\r\n \r\n {{ item.resourceKey + \"_DESC\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n {{\r\n \"EMPRESA_NO_TIENE_SERVICIO\" | translate : { numero: this.numero }\r\n }}\r\n \r\n
\r\n \r\n \r\n\r\n","export let icons: any = {\r\n \"ABMClientes_ICON\": \"business_center\",\r\n \"ABMMensajCli_ICON\": \"campaign\",\r\n \"ABMMensaje_ICON\": \"drafts\",\r\n \"ABMUsuariosBO_ICON\": \"groups\",\r\n \"ABMVisualizadores_ICON\": \"newspaper\",\r\n \"ABM_COMP_ICON\": \"account_tree\",\r\n \"ABM_PROC_ICON\": \"share\",\r\n \"ABM_SERVICIOS_ICON\": \"manufacturing\",\r\n \"ABM_SERV_ICON\": \"\",\r\n \"ABM_US_ICON\": \"groups\",\r\n \"AdmApps_ICON\": \"apps\",\r\n \"BACKOFFICE_ICON\": \"\",\r\n \"CONEXIONESBO_ICON\": \"link\",\r\n \"CONEXIONES_ICON\": \"\",\r\n \"CONFIGURACIONES_ICON\": \"\",\r\n \"CONFIG_DOCS_ICON\": \"file_copy\",\r\n \"CONFIG_SEG_ICON\": \"lock\",\r\n \"ClientesMixtos_ICON\": \"groups_3\",\r\n \"ConfigDocE_ICON\": \"manufacturing\",\r\n \"ConfigDocR_ICON\": \"manufacturing\",\r\n \"ConfigNotif_ICON\": \"notifications\",\r\n \"ConvUnidDest_ICON\": \"arrow_back_ios\",\r\n \"ConvUnidOrig_ICON\": \"arrow_forward_ios\",\r\n \"ConvUnid_ICON\": \"repeat\",\r\n \"CrearFactura_ICON\": \"\",\r\n \"DATOS_EMP_ICON\": \"domain\",\r\n \"DOCUMENTOSBO_ICON\": \"file_copy\",\r\n \"DOCUMENTOS_ICON\": \"\",\r\n \"DatosExtra_ICON\": \"add_notes\",\r\n \"Delegaciones_ICON\": \"business_center\",\r\n \"DomiciliosRecepAfip_ICON\": \"domain\",\r\n \"EVENTOS_ICON\": \"bolt\",\r\n \"EquivalenciasArt_ICON\": \"barcode\", \r\n \"EquivalenciasCli_ICON\": \"sync_alt\",\r\n \"GrillaFCred_ICON\": \"file_copy\",\r\n \"ImpresionOD_ICON\": \"print\",\r\n \"ListaPre_ICON\": \"list\",\r\n \"MAPAS_ICON\": \"code\",\r\n \"MaestroArt_ICON\": \"list_alt\",\r\n \"OPERACIONES_ESP_ICON\": \"\",\r\n \"OperationCompanyM_ICON\": \"description\",\r\n \"PistasAudit_ICON\": \"person_search\",\r\n \"RecordVencimien_ICON\": \"calendar_today\",\r\n \"Representaciones_ICON\": \"business_center\",\r\n \"ResumenTrafDocsEmp_ICON\": \"monitoring\",\r\n \"SOPORTEAPOYO_ICON\": \"visibility\",\r\n \"SeguimientoFCred_ICON\": \"speed\",\r\n \"SubidaArchivos_ICON\": \"upload\",\r\n \"TraficoBO_ICON\": \"quick_reference_all\",\r\n \"VALIDADOC_ICON\": \"task\",\r\n \"VISTAS_ICON\": \"grid_on\",\r\n \"VerTrazaProc_ICON\": \"menu\",\r\n \"trafico_ICON\": \"query_stats\",\r\n \"ABMTemplates_ICON\": \"picture_as_pdf\",\r\n \"ABMConfigForm_ICON\": \"manufacturing\",\r\n \"GestionSolicNCredito_ICON\": \"sync_alt\",\r\n \"CatalogoArticPrecios_ICON\": \"price_check\",\r\n \"AltaMail_ICON\": \"alternate_email\",\r\n}","export const environment = {\r\n production: true,\r\n url: 'https://krikos360.planexware.net',\r\n apiUrl: 'https://krikos360.planexware.net/api2',\r\n gaTrackId:'G-C5HHD78KEH',\r\n googleClientId: '340820289997-g3bbus9bkuu5asftjfdhpeep5i26jjk1.apps.googleusercontent.com',\r\n apis: {\r\n precioysurtidos: 'PrecioYSurtidos'\r\n },\r\n webServices: {\r\n pdfExtractor: 'https://ws.planexware.net/K360.PdfExtractor',\r\n pdfMapper: 'https://ws.planexware.net/K360.PdfMapper',\r\n QrReader: 'https://ws.planexware.net/K360.QrReader',\r\n },\r\n conciliacion: false,\r\n clientId: 'b9d15110-c18d-4680-8d5a-6317f43bdfdf',\r\n redirectUri: 'https://krikos360.planexware.net/v2/main',\r\n knownAuthorities: [\"aidasplanexware.b2clogin.com\", \"aidasplanexware.onmicrosoft.com\"],\r\n fakeDoorButton:{\r\n seguimientoDeEntrega: {\r\n visible: false,\r\n GA: 'Conciliacion'\r\n }\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core'\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic'\r\n\r\nimport { AppModule } from './app/app.module'\r\nimport { environment } from './environments/environment'\r\n\r\nif (environment.production) {\r\n enableProdMode()\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err))\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}