{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/directivas/digito.directive.ts","./src/app/domain/helpers/auth.interceptor.ts","./src/app/domain/servicios/alerts.service.ts","./src/app/domain/servicios/componentes.service.ts","./src/app/domain/servicios/log.service.ts","./src/app/domain/servicios/objetos.service.ts","./src/app/domain/servicios/pre-invoice.service.ts","./src/app/domain/servicios/questions.service.ts","./src/app/domain/servicios/ssps.service.ts","./src/app/infraestucture/driven-adapter/pre-invoice-adapter.service.ts","./src/app/infraestucture/driven-adapter/ssps-adapter.service.ts","./src/app/modulos/certimail/certimail-home/certimail-home.component.ts","./src/app/modulos/certimail/certimail-home/certimail-home.component.html","./src/app/modulos/descarga-certificado-pfx/descarga-certificado-pfx.component.ts","./src/app/modulos/descarga-certificado/descarga-certificado.component.ts","./src/app/modulos/descargar-factura/descargar-factura.component.ts","./src/app/modulos/estado-tramite/estado-tramite.component.ts","./src/app/modulos/prefactura/prefactura.component.ts","./src/app/modulos/revocar-certificado/revocar-certificado.component.ts","./src/app/modulos/validacion-identidad/validacion-identidad.component.ts","./src/app/ui/components/alerta-salir-mensaje-valida-identidad/alerta-salir-mensaje-valida-identidad.component.ts","./src/app/ui/components/alerta-salir-mensaje-valida-identidad/alerta-salir-mensaje-valida-identidad.component.html","./src/app/ui/components/alerta-salir-valida-identidad/alerta-salir-valida-identidad.component.ts","./src/app/ui/components/alerta-salir-valida-identidad/alerta-salir-valida-identidad.component.html","./src/app/ui/components/alerta-valida-identidad/alerta-valida-identidad.component.ts","./src/app/ui/components/alerta-valida-identidad/alerta-valida-identidad.component.html","./src/app/ui/components/barra/barra.component.ts","./src/app/ui/components/barra/barra.component.html","./src/app/ui/components/confirmacion-alerta/confirmacion-alertacomponent.ts","./src/app/ui/components/confirmacion-alerta/confirmacion-alerta.component.html","./src/app/ui/components/confirmation/confirmation.component.ts","./src/app/ui/components/confirmation/confirmation.component.html","./src/app/ui/components/contactenos/contactenos.component.ts","./src/app/ui/components/contactenos/contactenos.component.html","./src/app/ui/components/descarga-certificado-modal/descarga-certificado-modal.component.ts","./src/app/ui/components/descarga-certificado-modal/descarga-certificado-modal.component.html","./src/app/ui/components/descarga-certificado/descarga-certificado.component.ts","./src/app/ui/components/descarga-certificado/descarga-certificado.component.html","./src/app/ui/components/descarga-pfx/descarga-pfx.component.ts","./src/app/ui/components/descarga-pfx/descarga-pfx.component.html","./src/app/ui/components/descargar-factura/descargar-factura.component.ts","./src/app/ui/components/descargar-factura/descargar-factura.component.html","./src/app/ui/components/error/error.component.ts","./src/app/ui/components/error/error.component.html","./src/app/ui/components/estado-tramite/estado-tramite.component.ts","./src/app/ui/components/estado-tramite/estado-tramite.component.html","./src/app/ui/components/finalizado/finalizado.component.ts","./src/app/ui/components/finalizado/finalizado.component.html","./src/app/ui/components/flujocomprassps/contacto/contacto.component.ts","./src/app/ui/components/flujocomprassps/contacto/contacto.component.html","./src/app/ui/components/flujocomprassps/datos-facturacion/datos-facturacion.component.ts","./src/app/ui/components/flujocomprassps/datos-facturacion/datos-facturacion.component.html","./src/app/ui/components/flujocomprassps/datosempresa/datosempresa.component.ts","./src/app/ui/components/flujocomprassps/datosempresa/datosempresa.component.html","./src/app/ui/components/flujocomprassps/entrega/entrega.component.ts","./src/app/ui/components/flujocomprassps/entrega/entrega.component.html","./src/app/ui/components/flujocomprassps/flujocomprassps.component.ts","./src/app/ui/components/flujocomprassps/flujocomprassps.component.html","./src/app/ui/components/flujocomprassps/info-basica/info-basica.component.ts","./src/app/ui/components/flujocomprassps/info-basica/info-basica.component.html","./src/app/ui/components/flujocomprassps/pago/pago.component.ts","./src/app/ui/components/flujocomprassps/pago/pago.component.html","./src/app/ui/components/flujocomprassps/pse/pse.component.ts","./src/app/ui/components/flujocomprassps/pse/pse.component.html","./src/app/ui/components/flujocomprassps/solicitantes/solicitantes.component.ts","./src/app/ui/components/flujocomprassps/solicitantes/solicitantes.component.html","./src/app/ui/components/loading/loading.component.ts","./src/app/ui/components/loading/loading.component.html","./src/app/ui/components/message/message.component.ts","./src/app/ui/components/message/message.component.html","./src/app/ui/components/modulos.module.ts","./src/app/ui/components/prefactura/aceptar-prefactura/aceptar-prefactura.component.ts","./src/app/ui/components/prefactura/aceptar-prefactura/aceptar-prefactura.component.html","./src/app/ui/components/prefactura/rechazar-prefactura/rechazar-prefactura.component.ts","./src/app/ui/components/prefactura/rechazar-prefactura/rechazar-prefactura.component.html","./src/app/ui/components/revocar-certificado/revocar-certificado.component.ts","./src/app/ui/components/revocar-certificado/revocar-certificado.component.html","./src/app/ui/components/shared/footer/footer.component.ts","./src/app/ui/components/shared/footer/footer.component.html","./src/app/ui/components/shared/navbar/navbar.component.ts","./src/app/ui/components/shared/navbar/navbar.component.html","./src/app/ui/components/shared/shared.module.ts","./src/app/ui/components/showopentabs/show-open-tabs.component.ts","./src/app/ui/components/showopentabs/show-open-tabs.component.html","./src/app/ui/components/sinpago/sinpago.component.ts","./src/app/ui/components/sinpago/sinpago.component.html","./src/app/ui/components/solicitudfaltantes/solicitudfaltantes.component.ts","./src/app/ui/components/solicitudfaltantes/solicitudfaltantes.component.html","./src/app/ui/components/solicitudfinalizada/solicitudfinalizada.component.ts","./src/app/ui/components/solicitudfinalizada/solicitudfinalizada.component.html","./src/app/ui/components/ssps/ssps.component.ts","./src/app/ui/components/ssps/ssps.component.html","./src/app/ui/components/validacion-identidad/validacion-identidad.component.ts","./src/app/ui/components/validacion-identidad/validacion-identidad.component.html","./src/app/ui/components/validaciones/persona-j/persona-j.component.ts","./src/app/ui/components/validaciones/persona-j/persona-j.component.html","./src/app/ui/components/validaciones/persona-n/persona-n.component.ts","./src/app/ui/components/validaciones/persona-n/persona-n.component.html","./src/app/ui/components/validaciones/persona-solicitante/persona-solicitante.component.ts","./src/app/ui/components/validaciones/persona-solicitante/persona-solicitante.component.html","./src/app/ui/components/validaciones/validaciones.component.ts","./src/app/ui/components/validaciones/validaciones.component.html","./src/app/ui/directivas/input-mask.directive.ts","./src/app/ui/directivas/nocopiado.directive.ts","./src/app/ui/directivas/uppercase.directive.ts","./src/assets/config/app.conf.ts","./src/environments/environment.ts","./src/main.ts","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\asn1.js\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\browserify-sign\\node_modules\\readable-stream\\lib\\internal\\streams|util","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\browserify-sign\\node_modules\\readable-stream\\lib|util","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\create-ecdh\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\diffie-hellman\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\elliptic\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\miller-rabin\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|canvas","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|fs","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|http","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|https","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|url","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|zlib","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\public-encrypt\\node_modules\\bn.js\\lib|buffer","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\readable-stream\\lib\\internal\\streams|util","ignored|C:\\Users\\cdelgado\\OneDrive - Asesoftware S.A.S\\Documentos\\Certicamara\\Azure\\Canal_Ventas\\node_modules\\readable-stream\\lib|util"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { SspsComponent } from './ui/components/ssps/ssps.component';\r\nimport { ContactenosComponent } from './ui/components/contactenos/contactenos.component';\r\nimport { PersonaNComponent } from './ui/components/validaciones/persona-n/persona-n.component';\r\nimport { PersonaJComponent } from './ui/components/validaciones/persona-j/persona-j.component';\r\nimport { ValidacionesComponent } from './ui/components/validaciones/validaciones.component';\r\nimport { FlujocomprasspsComponent } from './ui/components/flujocomprassps/flujocomprassps.component';\r\nimport { InfoBasicaComponent } from './ui/components/flujocomprassps/info-basica/info-basica.component';\r\nimport { PagoComponent } from './ui/components/flujocomprassps/pago/pago.component';\r\nimport { ContactoComponent } from './ui/components/flujocomprassps/contacto/contacto.component';\r\nimport { EntregaComponent } from './ui/components/flujocomprassps/entrega/entrega.component';\r\nimport { DatosFacturacionComponent } from './ui/components/flujocomprassps/datos-facturacion/datos-facturacion.component';\r\nimport { PSEComponent } from './ui/components/flujocomprassps/pse/pse.component';\r\nimport { DatosempresaComponent } from './ui/components/flujocomprassps/datosempresa/datosempresa.component';\r\nimport { SolicitantesComponent } from './ui/components/flujocomprassps/solicitantes/solicitantes.component';\r\nimport {ValidacionIdentidadComponent} from './modulos/validacion-identidad/validacion-identidad.component'\r\nimport {DescargaCertificadoComponent} from './modulos/descarga-certificado/descarga-certificado.component'\r\nimport {DescargaCertificadoPfxComponent} from './modulos/descarga-certificado-pfx/descarga-certificado-pfx.component'\r\nimport { PrefacturaComponent } from './modulos/prefactura/prefactura.component';\r\nimport { RevocarCertificadoComponent } from './modulos/revocar-certificado/revocar-certificado.component';\r\nimport { CertimailHomeComponent } from './modulos/certimail/certimail-home/certimail-home.component';\r\nimport { DescargarFacturaComponent } from './modulos/descargar-factura/descargar-factura.component';\r\nimport { EstadoTramiteComponent } from './modulos/estado-tramite/estado-tramite.component';\r\n\r\n\r\n\r\nconst routes: Routes = [\r\n{path:'ssps' ,component:SspsComponent},\r\n{path:'validaciones' ,component:ValidacionesComponent,\r\nchildren: [\r\n {path: 'natural', component:PersonaNComponent},\r\n {path: 'juridica', component:PersonaJComponent},\r\n {path:'**' ,component:PersonaNComponent},\r\n \r\n ]\r\n},\r\n{path: 'validacion-identidad', component:ValidacionIdentidadComponent},\r\n{path: 'descarga-certificado', component:DescargaCertificadoComponent},\r\n{path: 'descarga-pfx', component:DescargaCertificadoPfxComponent},\r\n{path: 'revocar-certificado', component:RevocarCertificadoComponent},\r\n{path: 'flujo', component:FlujocomprasspsComponent,\r\nchildren: [\r\n {path: 'infobasi', component:InfoBasicaComponent},\r\n {path: 'pago', component:PagoComponent},\r\n {path: 'contacto', component:ContactoComponent},\r\n {path: 'entrega', component:EntregaComponent},\r\n {path: 'facturacion', component:DatosFacturacionComponent},\r\n {path: 'pasarela', component:PSEComponent},\r\n {path: 'empresa', component:DatosempresaComponent},\r\n {path: 'solicitante', component:SolicitantesComponent},\r\n {path:'**' ,component:InfoBasicaComponent},\r\n ]\r\n},\r\n{path:'contacto' ,component:ContactenosComponent,},\r\n{path:'prefactura', component:PrefacturaComponent},\r\n{path: 'descargar-factura', component:DescargarFacturaComponent},\r\n{path: 'estado-tramite', component:EstadoTramiteComponent},\r\n{path:'**' ,component:CertimailHomeComponent},\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ComponentesService } from './domain/servicios/componentes.service';\r\nimport { SspsService } from './domain/servicios/ssps.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'certicámara';\r\n subscription!: Subscription;\r\n formsInit = true\r\n constructor(private components: ComponentesService,\r\n private ssps: SspsService, private router: Router, \r\n private gtmService: GoogleTagManagerService\r\n ) {\r\n router.events.subscribe((val: any) => {\r\n if (val.url !== undefined && val.url.includes(\"/flujo\"))\r\n this.formsInit = false\r\n if (val.url !== undefined && val.url === \"/\")\r\n this.formsInit = true\r\n });\r\n\r\n gtmService.addGtmToDom();\r\n\r\n }\r\n ngOnInit(): void {\r\n this.ssps.checkIfFirstTab();\r\n\r\n this.router.events.forEach(item => {\r\n if (item instanceof NavigationEnd) {\r\n const gtmTag = {\r\n event: 'page',\r\n pageName: item.url\r\n };\r\n this.gtmService.pushTag(gtmTag);\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 { NgModule, LOCALE_ID, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { httpInterceptorProviders } from '../app/domain/helpers/auth.interceptor';\r\nimport { DigitoDirective } from './directivas/digito.directive';\r\nimport { NgbDateAdapter, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedModule } from './ui/components/shared/shared.module';\r\nimport { ModulosModule } from './ui/components/modulos.module';\r\nimport { CommonModule, DatePipe, TitleCasePipe } from '@angular/common';\r\nimport { CustomAdapter, CustomDateParserFormatter } from './domain/servicios/componentes.service';\r\nimport { LogService } from './domain/servicios/log.service';\r\nimport '@angular/common/locales/global/es-CO';\r\nimport { RECAPTCHA_V3_SITE_KEY, RecaptchaV3Module } from 'ng-recaptcha';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport { NgStepperModule } from 'angular-ng-stepper';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { GoogleTagManagerModule } from 'angular-google-tag-manager';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent, \r\n DigitoDirective\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n DatePipe,\r\n TitleCasePipe,\r\n ModulosModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n SharedModule,\r\n RecaptchaV3Module,\r\n MatTableModule, MatButtonModule, MatIconModule,\r\n NgStepperModule, CdkStepperModule,\r\n GoogleTagManagerModule.forRoot({\r\n id: env.gtmId,\r\n })\r\n ],exports:[\r\n BrowserModule\r\n ],\r\n providers: [\r\n { provide: NgbDateAdapter, useClass: CustomAdapter },\r\n { provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter },\r\n { provide: LOCALE_ID, useValue: 'es-CO' },\r\n {\r\n provide: RECAPTCHA_V3_SITE_KEY,\r\n useValue: env.recaptcha.siteKey,\r\n },\r\n httpInterceptorProviders, DatePipe, LogService, TitleCasePipe],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppModule { }\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDigito]'\r\n})\r\nexport class DigitoDirective {\r\n\r\n constructor() { }\r\n\r\n @HostListener('input', ['$event'])\r\n onKeyDown(ev: KeyboardEvent) {\r\n const input = ev.target as HTMLInputElement;\r\n input.value = String(input.value.replace(/\\D+/g, ''));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HTTP_INTERCEPTORS, HttpErrorResponse, HttpResponse } from '@angular/common/http';\r\nimport { SspsService } from '../servicios/ssps.service';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common'\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Injectable()\r\nexport class HttpRequestInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n public datepipe: DatePipe,\r\n private ssps: SspsService\r\n ) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let request = req;\r\n if ((request.url.includes(`${env.ordenPedidoServiceEC2}`) ||\r\n request.url.includes(`${env.certificadoServiceEC2}`) ||\r\n request.url.includes(`${env.validacionIdentidadServiceEC2}`) ||\r\n request.url.includes(`${env.estadoTramiteServiceEC2}`) ||\r\n request.url.includes(`/historico/`) ||\r\n request.url.includes(`/pasarelaPago/`)) && request.body !== null\r\n && request.body !== undefined) {\r\n request = req.clone({\r\n body: {\r\n data: this.ssps.encrypt(JSON.stringify(req.body))\r\n }\r\n });\r\n }\r\n const token = this.ssps.getLocalStorage('token');\r\n var token_expiration = new Date('1968-11-16T00:00:00');\r\n const token_date = this.ssps.getLocalStorage('token_date');\r\n if (token_date && !request.url.includes('oauth2/token')) {\r\n token_expiration = new Date(Date.parse(token_date));\r\n token_expiration.setSeconds(token_expiration.getSeconds() + 3600);\r\n }\r\n\r\n if (token && !request.url.includes('oauth2/token')) {\r\n if (new Date() > token_expiration) {\r\n return this.handle401Error(request, next);\r\n }\r\n else {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `${token}`\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (token === null && !request.url.includes('oauth2/token')) {\r\n return this.handle401Error(request, next);\r\n }\r\n\r\n return this.handleResponse(request, next)\r\n }\r\n\r\n private handle401Error(request: HttpRequest, next: HttpHandler): any {\r\n return this.ssps.token()\r\n .pipe(\r\n switchMap((data: any) => {\r\n this.ssps.saveLocalStorage(\"token\", data.access_token)\r\n this.ssps.saveLocalStorage(\"token_date\", this.datepipe.transform(new Date(), \"yyyy-MM-dd'T'HH:mm:ss\")!)\r\n request = request.clone({\r\n setHeaders: {\r\n authorization: `${data.access_token}`\r\n }\r\n });\r\n return this.handleResponse(request, next)\r\n }),\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n private handleResponse(request: HttpRequest, next: HttpHandler): any {\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n if (!request.url.includes('oauth2/token') &&\r\n (request.url.includes(`${env.ordenPedidoServiceEC2}`) ||\r\n request.url.includes(`${env.certificadoServiceEC2}`) ||\r\n request.url.includes(`${env.validacionIdentidadServiceEC2}`) ||\r\n request.url.includes(`${env.estadoTramiteServiceEC2}`) ||\r\n request.url.includes(`/historico/`) ||\r\n request.url.includes(`/pasarelaPago/`)) &&\r\n event.body.data !== undefined && event.body.data !== null) {\r\n event = event.clone({ body: JSON.parse(this.ssps.decryptUsingAES256(event.body.data)) });\r\n }\r\n if (request.url.includes(`/assets/json/`)) {\r\n event = event.clone({ body: JSON.parse(this.ssps.decryptUsingAES256(event.body.data)) });\r\n }\r\n }\r\n return event;\r\n }),\r\n catchError((error) => {\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !request.url.includes('oauth2/token') &&\r\n (error.status === 401 || error.status === 403)\r\n ) {\r\n return this.handle401Error(request, next);\r\n }\r\n else if(error.status === 504) {\r\n console.error(\"error interceptor timeout\", error)\r\n error.message = \"timed out\"\r\n }\r\n else{\r\n console.error(\"error interceptor\", error)\r\n }\r\n\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: HttpRequestInterceptor, multi: true },\r\n];","import { Injectable } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContactenosComponent } from 'src/app/ui/components/contactenos/contactenos.component';\r\nimport { SspsComponent } from 'src/app/ui/components/ssps/ssps.component';\r\nimport { ConfirmationComponent } from 'src/app/ui/components/confirmation/confirmation.component';\r\nimport { SinPagoComponent } from 'src/app/ui/components/sinpago/sinpago.component';\r\nimport { ErrorComponent } from 'src/app/ui/components/error/error.component';\r\nimport { FinalizadoComponent } from 'src/app/ui/components/finalizado/finalizado.component';\r\nimport { SolicitudFinalizadaComponent } from 'src/app/ui/components/solicitudfinalizada/solicitudfinalizada.component';\r\nimport { SolicitudFaltantesComponent } from 'src/app/ui/components/solicitudfaltantes/solicitudfaltantes.component';\r\nimport { LoadingComponent } from 'src/app/ui/components/loading/loading.component';\r\nimport { MessageComponent } from 'src/app/ui/components/message/message.component';\r\nimport { ValidacionesComponent } from 'src/app/ui/components/validaciones/validaciones.component';\r\nimport { PersonaSolicitanteComponent } from 'src/app/ui/components/validaciones/persona-solicitante/persona-solicitante.component';\r\nimport { ValidacionIdentidadComponent } from 'src/app/ui/components/validacion-identidad/validacion-identidad.component';\r\nimport { AlertaValidaIdentidadComponent } from 'src/app/ui/components/alerta-valida-identidad/alerta-valida-identidad.component';\r\nimport { AlertaSalirValidaIdentidadComponent } from 'src/app/ui/components/alerta-salir-valida-identidad/alerta-salir-valida-identidad.component';\r\nimport { AlertaSalirMensajeValidaIdentidadComponent } from 'src/app/ui/components/alerta-salir-mensaje-valida-identidad/alerta-salir-mensaje-valida-identidad.component';\r\nimport { DescargaCertificadoComponent } from 'src/app/ui/components/descarga-certificado/descarga-certificado.component';\r\nimport { DescargaCertificadoModalComponent } from 'src/app/ui/components/descarga-certificado-modal/descarga-certificado-modal.component';\r\nimport { DescargaPfxComponent } from 'src/app/ui/components/descarga-pfx/descarga-pfx.component';\r\nimport { AceptarPrefacturaComponent } from 'src/app/ui/components/prefactura/aceptar-prefactura/aceptar-prefactura.component';\r\nimport { RechazarPrefacturaComponent } from 'src/app/ui/components/prefactura/rechazar-prefactura/rechazar-prefactura.component';\r\nimport { RevocarCertificadoComponent } from 'src/app/ui/components/revocar-certificado/revocar-certificado.component';\r\nimport { ConfirmacionAlertaComponent } from 'src/app/ui/components/confirmacion-alerta/confirmacion-alertacomponent';\r\nimport { DescargarFacturaComponent } from 'src/app/ui/components/descargar-factura/descargar-factura.component';\r\nimport { ShowOpenTabsComponent } from 'src/app/ui/components/showopentabs/show-open-tabs.component';\r\nimport { Subject } from 'rxjs';\r\nimport { EstadoTramiteComponent } from 'src/app/ui/components/estado-tramite/estado-tramite.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertsService {\r\n\r\n activeDigital: any;\r\n modalLoading: any;\r\n modalspps: any;\r\n modalReporter: any;\r\n modalContacted: any;\r\n showMessage: any;\r\n modalOpenTabs: any;\r\n\r\n private envios = new Subject();\r\n // Flujos de cadenas observables\r\n // Observable de tipo string\r\n eventos$ = this.envios.asObservable();\r\n \r\n eventos(change: any) {\r\n this.envios.next(change);\r\n }\r\n\r\n constructor(private modalService: NgbModal) { }\r\n\r\n //TODO:modal para campo de detalles*/\r\n showFiels() {\r\n this.activeDigital = this.modalService.open(ValidacionesComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n }\r\n\r\n showSolicitante() {\r\n this.activeDigital = this.modalService.open(PersonaSolicitanteComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n }\r\n\r\n showFieldsValidacionIdentidad(urlRedireccionFlujoValida: any, botonFinalizaIdentidad: any) {\r\n this.activeDigital = this.modalService.open(ValidacionIdentidadComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.activeDigital.componentInstance.urlRedireccionFlujoValida = urlRedireccionFlujoValida\r\n this.activeDigital.componentInstance.botonFinalizaIdentidad = botonFinalizaIdentidad\r\n\r\n return this.activeDigital\r\n }\r\n\r\n showFieldsRevocarCertificado() {\r\n this.activeDigital = this.modalService.open(RevocarCertificadoComponent, { backdrop: \"static\", size: \"xl\", centered: true });\r\n }\r\n\r\n showFieldsDescargarFactura() {\r\n this.activeDigital = this.modalService.open(DescargarFacturaComponent, { backdrop: \"static\", size: \"xl\", centered: true });\r\n }\r\n\r\n showFieldsEstadoTramite() {\r\n this.activeDigital = this.modalService.open(EstadoTramiteComponent, { backdrop: \"static\", size: \"xl\", centered: true });\r\n }\r\n\r\n showFieldsDescargaCertificado() {\r\n this.activeDigital = this.modalService.open(DescargaCertificadoComponent, { backdrop: \"static\", size: \"lg\", centered: true });\r\n }\r\n\r\n showFieldsDescargaPfx() {\r\n this.activeDigital = this.modalService.open(DescargaPfxComponent, { backdrop: \"static\", size: \"lg\", centered: true });\r\n }\r\n\r\n closesFiels() {\r\n if (this.activeDigital)\r\n this.activeDigital.close();\r\n }\r\n\r\n //TODO:modal loading\r\n showSpiner(mensaje: any) {\r\n this.modalLoading = this.modalService.open(LoadingComponent, { backdrop: \"static\", fullscreen: true, modalDialogClass: 'dark-modal' });\r\n this.modalLoading.componentInstance.mensaje = mensaje\r\n }\r\n\r\n closesSpiner() {\r\n this.modalLoading?.close();\r\n }\r\n\r\n //TODO:modal ssps\r\n showSssps() {\r\n this.modalspps = this.modalService.open(SspsComponent, { backdrop: \"static\", size: \"lg\", centered: true });\r\n }\r\n\r\n closesSsps() {\r\n this.modalspps.close();\r\n }\r\n\r\n //TODO:Modal pventana de confirmacion\r\n showReporter(redirigirWeb: boolean) {\r\n this.modalReporter = this.modalService.open(ConfirmationComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalReporter.componentInstance.redirigirWeb = redirigirWeb\r\n }\r\n\r\n showSinPago(titulo: any, mensaje: any,) {\r\n this.modalReporter = this.modalService.open(SinPagoComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalReporter.componentInstance.titulo = titulo\r\n this.modalReporter.componentInstance.mensaje = mensaje\r\n }\r\n\r\n showAlertaValidarIdentidad(redirigirValidaIdentidad: boolean) {\r\n this.modalReporter = this.modalService.open(AlertaValidaIdentidadComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.modalReporter.componentInstance.redirigirValidaIdentidad = redirigirValidaIdentidad\r\n }\r\n\r\n showAlertaSalirValidarIdentidad(mensajeSalir: any, cancelarValidacionFacial: boolean, usuarioValida: any,\r\n vista: any, urlRedireccionFlujoValida: any, botonFinalizaIdentidad: any) {\r\n this.modalReporter = this.modalService.open(AlertaSalirValidaIdentidadComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.modalReporter.componentInstance.mensajeSalir = mensajeSalir\r\n this.modalReporter.componentInstance.cancelarValidacionFacial = cancelarValidacionFacial\r\n this.modalReporter.componentInstance.usuarioValida = usuarioValida\r\n this.modalReporter.componentInstance.vista = vista\r\n this.modalReporter.componentInstance.urlRedireccionFlujoValida = urlRedireccionFlujoValida\r\n this.modalReporter.componentInstance.botonFinalizaIdentidad = botonFinalizaIdentidad\r\n }\r\n\r\n showAlertaSalirMensajeValidarIdentidad(redirigirValida: boolean, urlRedireccionFlujoValida: any) {\r\n this.modalReporter = this.modalService.open(AlertaSalirMensajeValidaIdentidadComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalReporter.componentInstance.redirigirValida = redirigirValida\r\n this.modalReporter.componentInstance.urlRedireccionFlujoValida = urlRedireccionFlujoValida\r\n }\r\n\r\n showError(mensaje: any, redirigir: boolean, titulo: any, identidadValidada: boolean,\r\n urlRedireccion: any, tituloBoton: any, redirigirExternal: boolean) {\r\n this.modalReporter = this.modalService.open(ErrorComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalReporter.componentInstance.mensaje = mensaje\r\n this.modalReporter.componentInstance.redirigir = redirigir\r\n this.modalReporter.componentInstance.titulo = titulo !== null ? titulo : \"¡Algo salió mal!\"\r\n this.modalReporter.componentInstance.identidadValidada = identidadValidada\r\n this.modalReporter.componentInstance.urlRedireccion = urlRedireccion\r\n this.modalReporter.componentInstance.tituloBoton = tituloBoton !== null ? tituloBoton: \"Cerrar\"\r\n this.modalReporter.componentInstance.redirigirExternal = redirigirExternal\r\n return this.modalReporter\r\n }\r\n\r\n showConfirmacion(mensaje: any, titulo: any, tituloBoton: any, tituloBoton2: any) {\r\n this.modalReporter = this.modalService.open(ConfirmacionAlertaComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalReporter.componentInstance.mensaje = mensaje\r\n this.modalReporter.componentInstance.titulo = titulo\r\n this.modalReporter.componentInstance.tituloBoton = tituloBoton\r\n this.modalReporter.componentInstance.tituloBoton2 = tituloBoton2\r\n return this.modalReporter\r\n }\r\n\r\n closeshowConfirmacion() {\r\n this.modalReporter.close();\r\n }\r\n\r\n showDescargaCertificado(redirigir: boolean) {\r\n this.modalReporter = this.modalService.open(DescargaCertificadoModalComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.modalReporter.componentInstance.redirigir = redirigir\r\n }\r\n\r\n closesshowReporter() {\r\n this.modalReporter.close();\r\n }\r\n\r\n //TODO:modal modal contacto tecnico\r\n showContact(redirigir: boolean) {\r\n this.modalReporter = this.modalService.open(ContactenosComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.modalReporter.componentInstance.redirigir = redirigir\r\n }\r\n\r\n closeContact() {\r\n this.modalReporter.close();\r\n }\r\n\r\n closeErrorAlert() {\r\n this.modalReporter.close();\r\n }\r\n\r\n //TODO:modal modal contacto tecnico\r\n showAlert(redirigir: boolean) {\r\n this.showMessage = this.modalService.open(MessageComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.showMessage.componentInstance.redirigir = redirigir\r\n }\r\n\r\n showFinalizado(pagoComprobante: any) {\r\n this.showMessage = this.modalService.open(FinalizadoComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.showMessage.componentInstance.pagoComprobante = pagoComprobante\r\n }\r\n\r\n showSolicitudFinalizada(redirigir: boolean) {\r\n this.showMessage = this.modalService.open(SolicitudFinalizadaComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.showMessage.componentInstance.redirigir = redirigir\r\n }\r\n\r\n showSolicitudFaltantes() {\r\n this.showMessage = this.modalService.open(SolicitudFaltantesComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n }\r\n\r\n closeAlert() {\r\n this.showMessage.close();\r\n }\r\n\r\n //Modales Prefactura\r\n showAceptarPrefactura(preInvoice:any, data: any) {\r\n this.activeDigital = this.modalService.open(AceptarPrefacturaComponent, { backdrop: \"static\", size: \"lg\", centered: true });\r\n this.activeDigital.componentInstance.loadData = data;\r\n this.activeDigital.componentInstance.preInvoice = preInvoice;\r\n }\r\n\r\n showRechazarPrefactura(preInvoice:any) {\r\n this.activeDigital = this.modalService.open(RechazarPrefacturaComponent, { backdrop: \"static\", size: \"ms\", centered: true });\r\n this.activeDigital.componentInstance.preInvoice = preInvoice;\r\n }\r\n\r\n closeAceptarPrefactura(){\r\n this.activeDigital.close();\r\n }\r\n showOpenTabs(data: string) {\r\n this.modalOpenTabs = this.modalService.open(ShowOpenTabsComponent, { backdrop: \"static\", size: \"sm\", centered: true });\r\n this.modalOpenTabs.componentInstance.data = data;\r\n }\r\n closeTabs() {\r\n this.modalOpenTabs?.close();\r\n }\r\n\r\n}\r\n","import { Injectable, ViewChild, ElementRef } from '@angular/core';\r\nimport {\r\n AbstractControl, FormGroup, ValidationErrors, FormArray, ValidatorFn, FormControl,\r\n} from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { of } from 'rxjs';\r\nimport { NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n readonly DELIMITER = '/';\r\n\r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value) {\r\n const date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10),\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date\r\n ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year\r\n : null;\r\n }\r\n}\r\n\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n readonly DELIMITER = '/';\r\n\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10),\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct | null): string {\r\n return date\r\n ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year\r\n : '';\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class ComponentesService {\r\n private datos: any | undefined;\r\n formModal: any | undefined;\r\n estados: boolean = false;\r\n rutas: string = '';\r\n myGuid = uuidv4();\r\n enviodata: any = false;\r\n //public show: boolean = false;\r\n\r\n // declaracion de sujeto para multiples observables Fuentes de cadenas observables\r\n private envios = new Subject();\r\n // Flujos de cadenas observables\r\n // Observable de tipo string\r\n eventos$ = this.envios.asObservable();\r\n // Comandos de mensajes de servicio\r\n\r\n constructor() {\r\n }\r\n\r\n /*implementacion de validaciond e modals */\r\n abrirmodal() {\r\n this.formModal.show();\r\n }\r\n\r\n cerrarModal() {\r\n this.formModal.hide();\r\n }\r\n\r\n //TODO:emicion de eventos flujo de compra\r\n emitircambio(change: any) {\r\n this.envios.next(change);\r\n }\r\n\r\n /*validaciones de formularios listas negras campo personalizado validacion de cedula*/\r\n\r\n codigonit(tipo: string, numero: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n const tipo1 = formGroup.get(tipo)!.value;\r\n const numero1 = formGroup.get(numero)!.value;\r\n //let palabras = alfanumertico(numero1);\r\n let numerosolo = /^[0-9]+$/;\r\n const str = String(numero);\r\n let numeros = /^0[0-9].*$/;\r\n let regex = /^[a-zA-Z0-9]{7,9}$/;\r\n let valida = new RegExp('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*');\r\n\r\n switch (tipo1) {\r\n case \"NI\":\r\n if (!numero1 || numero1.length !== 9 || numero1 == '') {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n break;\r\n case \"CC\":\r\n if (!numero1 || numero1.length <= 3 || numero1.length > 12 || numero1 == '') {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n break;\r\n\r\n case \"CE\":\r\n if (!numero1 || numero1.length <= 3 || numero1.length > 12 || numero1 == '') {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n\r\n break;\r\n\r\n case \"PP\":\r\n if (!numero1 || !regex.test(numero1) || numero1.length <= 3 || numero1.length > 9 || numero1 == '') {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n break;\r\n\r\n case \"\":\r\n\r\n if (!numero1 || numero1 == '') {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n break;\r\n }\r\n\r\n if (\r\n (tipo1 == 'CC' && !numero1.match(numerosolo)) ||\r\n numeros.test(str)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n\r\n if (\r\n tipo1 == 'CE' && valida.test(str)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ sincodigo: true });\r\n return { sincodigo: true };\r\n }\r\n formGroup.get(numero)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n /*implementacion de validaciones de minimo una politica debe estar selecionada en el slide de politcas a selecionar modulos ssps*/\r\n\r\n /*validador si el check es mayor a uno*/\r\n validar(min = 1) {\r\n const validator: ValidatorFn = (formArray: AbstractControl) => {\r\n if (formArray instanceof FormArray) {\r\n const totalSelected = formArray.controls\r\n .map((control) => control.value)\r\n .reduce((prev, next) => (next ? prev + next : prev), 0);\r\n return totalSelected <= 1 ? null : { required: true };\r\n }\r\n\r\n throw new Error('formArray no es una instancia de FormArray');\r\n };\r\n\r\n return validator;\r\n }\r\n\r\n /*funcion de checks minimos uno*/\r\n minSelectedCheckboxes(min = 1) {\r\n const validator: ValidatorFn = (formArray: AbstractControl) => {\r\n if (formArray instanceof FormArray) {\r\n const totalSelected = formArray.controls\r\n .map((control) => control.value)\r\n .reduce((prev, next) => (next ? prev + next : prev), 0);\r\n return totalSelected >= min ? null : { required: true };\r\n }\r\n\r\n throw new Error('formArray no es una instancia de FormArray');\r\n };\r\n\r\n return validator;\r\n }\r\n\r\n /*validar si los corrreos son iguales modulo info basica ssps*/\r\n\r\n soniguales(campo1: string, campo2: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n const correo = formGroup.get(campo1)!.value;\r\n const correo1 = formGroup.get(campo2)!.value;\r\n\r\n if (correo !== correo1 || correo1 == '') {\r\n formGroup.get(campo2)!.setErrors({ noiguales: true });\r\n return { noiguales: true };\r\n }\r\n\r\n formGroup.get(campo2)!.setErrors(null);\r\n return null;\r\n };\r\n\r\n /* Validador de datalist*/\r\n }\r\n\r\n validalist(indicativo: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n const indi = formGroup.get(indicativo)!.value;\r\n let numerosolo = /^[0-9]+$/;\r\n let valida = new RegExp('[a-zA-Z][a-zA-Z ]+');\r\n var numlet = new RegExp('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*');\r\n let comas = /^[0-9,]*$/g;\r\n\r\n if (\r\n indi && numerosolo.test(indi) == false\r\n ) {\r\n formGroup.get(indicativo)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(indicativo)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n validadigito(indicativo: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n const indi = formGroup.get(indicativo)!.value;\r\n\r\n function getNumberLength(num: any) {\r\n return Math.ceil(Math.log10(num + 1));\r\n }\r\n\r\n const str = String(indi);\r\n var numeros = /^0[0-9].*$/;\r\n\r\n if (indi > 9 || indi == '' || indi == null) {\r\n formGroup.get(indicativo)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(indicativo)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n minimos(numero: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n let numerosolo = /^[0-9]+$/;\r\n const indi = formGroup.get(numero)!.value;\r\n const numeros = String(indi);\r\n\r\n let comas = /[^.,]/;\r\n\r\n function getNumberLength(num: any) {\r\n return Math.ceil(Math.log10(num + 1));\r\n }\r\n\r\n let valor = getNumberLength(indi);\r\n\r\n if (\r\n valor < 4 ||\r\n valor > 11 ||\r\n indi == '' ||\r\n indi == null ||\r\n !numeros.match(indi)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(numero)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n digitoChequeo(numero: string, digito: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n var nit = formGroup.get(numero)!.value;\r\n var digitoForm = formGroup.get(digito)!.value;\r\n if (isNaN(nit) || nit === \"\") {\r\n formGroup.get(numero)!.setErrors({ novalido: true });\r\n return { novalido: true };\r\n };\r\n\r\n if (isNaN(digitoForm) || digitoForm === \"\") {\r\n formGroup.get(digito)!.setErrors({ novalido: true });\r\n return { novalido: true };\r\n };\r\n\r\n var digitoChequeo = this.calcularDigitoChequeo(nit)\r\n if (+digitoChequeo !== +digitoForm) {\r\n formGroup.get(digito)!.setErrors({ digitonovalido: true });\r\n return { digitonovalido: true };\r\n }\r\n\r\n //formGroup.get(numero)!.setErrors(null);\r\n formGroup.get(digito)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n digitoChequeoNumero(numero: string, digito: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n var nit = formGroup.get(numero)!.value;\r\n var digitoForm = formGroup.get(digito)!.value;\r\n if (isNaN(nit) || nit === \"\" || nit.length <= 6) {\r\n formGroup.get(numero)!.setErrors({ novalido: true });\r\n return { novalido: true };\r\n };\r\n\r\n if (isNaN(digitoForm) || digitoForm === \"\") {\r\n formGroup.get(digito)!.setErrors({ novalido: true });\r\n return { novalido: true };\r\n };\r\n\r\n var digitoChequeo = this.calcularDigitoChequeo(nit)\r\n if (+digitoChequeo !== +digitoForm) {\r\n formGroup.get(digito)!.setErrors({ digitonovalido: true });\r\n return { digitonovalido: true };\r\n }\r\n\r\n formGroup.get(numero)!.setErrors(null);\r\n formGroup.get(digito)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n calcularDigitoChequeo(nit: string) {\r\n if (nit === undefined || nit === null || nit === \"\") {\r\n return \"\"\r\n }\r\n var vpri: any,\r\n x: any,\r\n y: any,\r\n z: any;\r\n\r\n // Procedimiento\r\n vpri = new Array(16);\r\n z = nit.length;\r\n vpri[1] = 3;\r\n vpri[2] = 7;\r\n vpri[3] = 13;\r\n vpri[4] = 17;\r\n vpri[5] = 19;\r\n vpri[6] = 23;\r\n vpri[7] = 29;\r\n vpri[8] = 37;\r\n vpri[9] = 41;\r\n vpri[10] = 43;\r\n vpri[11] = 47;\r\n vpri[12] = 53;\r\n vpri[13] = 59;\r\n vpri[14] = 67;\r\n vpri[15] = 71;\r\n\r\n x = 0;\r\n y = 0;\r\n for (var i = 0; i < z; i++) {\r\n y = (nit.substr(i, 1));\r\n\r\n x += (y * vpri[z - i]);\r\n }\r\n\r\n y = x % 11;\r\n return (y > 1) ? 11 - y : y;\r\n }\r\n\r\n /*validacion de direcciones*/\r\n\r\n minimosd(numero: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n let numerosolo = /^[0-9]+$/;\r\n const indi = formGroup.get(numero)!.value;\r\n const numeros = String(indi);\r\n\r\n let valida = new RegExp('^[^,]+$');\r\n\r\n function getNumberLength(num: any) {\r\n return Math.ceil(Math.log10(num + 1));\r\n }\r\n\r\n let valor = getNumberLength(indi);\r\n\r\n if (\r\n valor < 1 ||\r\n valor > 3 ||\r\n indi == '' ||\r\n indi == null ||\r\n !numeros.match(indi)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(numero)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n //minismos calles direciones\r\n minimosc(numero: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n let numerosolo = /^[0-9]+$/;\r\n const indi = formGroup.get(numero)!.value;\r\n const numeros = String(indi);\r\n\r\n let comas = /[^.,]/;\r\n\r\n function getNumberLength(num: any) {\r\n return Math.ceil(Math.log10(num + 1));\r\n }\r\n\r\n let valor = getNumberLength(indi);\r\n\r\n if (\r\n valor < 1 ||\r\n valor > 10 ||\r\n indi == '' ||\r\n indi == null ||\r\n !numeros.match(indi)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(numero)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n //validaciones de commas\r\n commas(event: any) {\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n let respuesta;\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n // this.comasnit = true;\r\n return of(true);\r\n } else {\r\n // this.comas = false;\r\n return of(false);\r\n }\r\n }\r\n\r\n //validaciones de codigo actividad economica\r\n\r\n economica(numero: string) {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n let numerosolo = /^[0-9]+$/;\r\n const indi = formGroup.get(numero)!.value;\r\n const numeros = String(indi);\r\n\r\n function getNumberLength(num: any) {\r\n return Math.ceil(Math.log10(num + 1));\r\n }\r\n\r\n let valor = getNumberLength(indi);\r\n\r\n if (\r\n valor < 1 ||\r\n valor > 5 ||\r\n indi == '' ||\r\n indi == null ||\r\n !numeros.match(indi)\r\n ) {\r\n formGroup.get(numero)!.setErrors({ vacioindi: true });\r\n return { vacioindi: true };\r\n }\r\n\r\n formGroup.get(numero)!.setErrors(null);\r\n return null;\r\n };\r\n }\r\n\r\n /*validacion de objetos servicio*/\r\n\r\n comparacion(usu: any, datos: any) {\r\n const shallowComparison =\r\n Object.keys(usu).length === Object.keys(datos).length &&\r\n (Object.keys(usu) as (keyof typeof usu)[]).every((key) => {\r\n return (\r\n Object.prototype.hasOwnProperty.call(datos, key) &&\r\n usu[key] === datos[key]\r\n );\r\n });\r\n\r\n return shallowComparison;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\n\r\nexport class LogService {\r\n log(title: any, msg: any) {\r\n if (environment.logs)\r\n console.log(title, msg);\r\n }\r\n error(title: any, msg: any) {\r\n if (environment.logs)\r\n console.error(title, msg);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Empresa } from '../interfaces/empresa.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ObjetosService {\r\n\r\n contacto = {\r\n nombres: '',\r\n apellidos: '',\r\n cargoEmpresa: '',\r\n correo: '',\r\n celular: '',\r\n indicativo: '',\r\n telefono: '',\r\n extension: ''\r\n\r\n }\r\n\r\n entrega = {\r\n direccionCompleta: '',\r\n departamento: '',\r\n municipio: '',\r\n celular: '',\r\n indicativo: '',\r\n telefono: '',\r\n extension: '',\r\n correo: '',\r\n tipo: ''\r\n }\r\n\r\n facturacion = {\r\n tipo: '',\r\n numero: '',\r\n nombres: '',\r\n apellidos: '',\r\n razon: '',\r\n direccion: '',\r\n indicativo: '',\r\n telefono: '',\r\n extension: '',\r\n celular: '',\r\n correo: '',\r\n tipoCapital: '',\r\n regimenTributario: '',\r\n actividadEconomica: ''\r\n }\r\n\r\n empresa: Empresa = {\r\n razon: '',\r\n direccionp: '',\r\n indicativo: '',\r\n code: '',\r\n telefono: '',\r\n celular: '',\r\n extension: '',\r\n correo: '',\r\n departamento: '',\r\n municipio: ''\r\n }\r\n\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreInvoiceAdapterService } from 'src/app/infraestucture/driven-adapter/pre-invoice-adapter.service';\r\nimport { Observable } from 'rxjs';\r\nimport { SuccessResponse } from '../../domain/interfaces/response-base.interface';\r\nimport { SspsService } from './ssps.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PreInvoiceService {\r\n constructor(private preInvoiceAdapter : PreInvoiceAdapterService\r\n ){}\r\n\r\n validarLinkPrefactura(preInvoice: any): Observable{\r\n return this.preInvoiceAdapter.validateLink(preInvoice);\r\n }\r\n\r\n aceptarPrefactura(data: any): Observable{\r\n return this.preInvoiceAdapter.acceptPreInvoice(data);\r\n }\r\n\r\n rechazarPrefactura(body: any): Observable{\r\n return this.preInvoiceAdapter.declinePreInvoice(body);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { SspsService } from './ssps.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class QuestionsService {\r\n\r\n public listadop: any[] = [];\r\n public directivaListado: any[] = [];\r\n public directiva: any[] = [];\r\n\r\n constructor(private ssps: SspsService) { }\r\n\r\n //TODO:validaciones de politicas\r\n questionsPolices(index: number, option: string, person: string) {\r\n console.log(\"questionsPolices\", index, option, person)\r\n this.listadop[index].respuesta = option\r\n if (person === 'natural') {\r\n if (index == 0 && option == 'si') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Profesional Titulado\");\r\n this.listadop[1].status = false;\r\n }\r\n\r\n if (index == 0 && option == 'no') {\r\n this.listadop[1].status = true;\r\n this.directiva = []\r\n } \r\n\r\n if (index == 1 && option == 'si') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Persona Natural PKCS10\");\r\n }\r\n\r\n if (index == 1 && option == 'no') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Persona Natural\");\r\n }\r\n }\r\n if (person === 'juridica') {\r\n if (index == 0) {\r\n // filter = 1;\r\n this.listadop[1].status = true;\r\n this.listadop[2].status = false;\r\n this.listadop[3].status = false;\r\n this.listadop[4].status = false;\r\n this.directiva = []\r\n this.ssps.saveLocalStorage(\"tipoEmpresa\", option === 'si' ? \"privado\": \"publico\")\r\n }\r\n\r\n if (index == 1 && option == 'no') {\r\n this.listadop[2].status = false;\r\n this.listadop[3].status = false;\r\n this.listadop[4].status = false;\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Profesional Titulado\");\r\n }\r\n\r\n if (index == 1 && option == 'si' && this.listadop[0].respuesta == \"si\") {\r\n this.listadop[2].status = true;\r\n this.listadop[3].status = false;\r\n this.directiva = []\r\n }\r\n\r\n if (index == 1 && option == 'si' && this.listadop[0].respuesta == \"no\") {\r\n this.listadop[2].status = false;\r\n this.listadop[3].status = true;\r\n this.directiva = []\r\n }\r\n\r\n if (index == 2 && option == 'si') {\r\n this.listadop[3].status = false;\r\n this.listadop[4].status = true;\r\n this.directiva = []\r\n }\r\n\r\n if (index == 3 && option == 'si') {\r\n this.listadop[4].status = true;\r\n this.directiva = []\r\n }\r\n\r\n if (index == 3 && option == 'no') {\r\n this.listadop[4].status = false;\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Pertenencia a Empresa\");\r\n }\r\n\r\n if (index == 2 && option == 'no') {\r\n this.listadop[3].status = false;\r\n this.listadop[4].status = false;\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Pertenencia a Empresa\");\r\n }\r\n\r\n if (index == 4 && option == 'no' && this.listadop[3].respuesta == 'no') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Pertenencia a Empresa\");\r\n }\r\n\r\n if (index == 4 && option == 'no' && this.listadop[3].respuesta == 'si') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Función Publica\");\r\n }\r\n\r\n if (index == 4 && option == 'si') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Persona Jurídica PKCS10\");\r\n }\r\n\r\n if (index == 4 && option == 'no' && this.listadop[2].respuesta == 'si') {\r\n this.directiva = this.directivaListado.filter(res => res.politica == \"Representante legal\");\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subject } from 'rxjs';\r\nimport { SspsAdapterService } from 'src/app/infraestucture/driven-adapter/ssps-adapter.service';\r\nimport { LogService } from './log.service'\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { AlertsService } from './alerts.service';\r\nconst crypto = require('crypto');\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SspsService {\r\n ip = \"\"\r\n reintentosIp = 0;\r\n // declaracion de sujeto para multiples observables Fuentes de cadenas observables\r\n private envios = new Subject();\r\n // Flujos de cadenas observables\r\n // Observable de tipo string \r\n eventos$ = this.envios.asObservable();\r\n // Comandos de mensajes de servicio\r\n public compras: any[] = [];\r\n public reposiciones: any[] = [];\r\n public typePerson: string = '';\r\n public person: any;\r\n public numero: string = '';\r\n private readonly channel = new BroadcastChannel(env.urlVentaDigital);\r\n constructor(private http: HttpClient,\r\n private ssps: SspsAdapterService,\r\n private componentesService: ComponentesService,\r\n private logger: LogService,\r\n private alert: AlertsService) {\r\n this.LocalStorage();\r\n this.setupCommunication()\r\n }\r\n\r\n /*emicion de eventos flujo de compra*/\r\n eventos(change: any) {\r\n this.envios.next(change);\r\n }\r\n\r\n encrypt(data: any): any {\r\n if (data !== null && data !== undefined) {\r\n var saltStr = this.generateSalt32Byte()\r\n const digest = 'sha256';\r\n const key = crypto.pbkdf2Sync(`${env.cipher}`, saltStr, 1000, 32, digest); //key len 32bytes i.e 256bits\r\n const iv = this.getRandomIV();\r\n const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);\r\n\r\n let encrypted = cipher.update(data, 'utf8', 'hex');\r\n encrypted += cipher.final('hex');\r\n\r\n const tag = cipher.getAuthTag();\r\n const output = Buffer.from(iv.toString('hex') + saltStr.toString('hex') + encrypted + tag.toString('hex'), 'hex').toString('base64');\r\n return output\r\n }\r\n }\r\n\r\n async sha256(message: string): Promise {\r\n return crypto\r\n .createHash('sha256')\r\n .update(message)\r\n .digest('hex');;\r\n }\r\n\r\n\r\n decryptUsingAES256(encryptedData: any) {\r\n if (encryptedData !== null && encryptedData !== undefined) {\r\n let ciphertextAndNonceAndSalt = Buffer.from(encryptedData, 'base64');\r\n let nonce = ciphertextAndNonceAndSalt.subarray(0, 12);\r\n let saltAndCipherText = ciphertextAndNonceAndSalt.slice(12);\r\n // Create buffers of salt and ciphertextAndNonce.\r\n let salt = saltAndCipherText.subarray(0, 16);\r\n // Derive the key using PBKDF2.\r\n const digest = 'sha256';\r\n const key = crypto.pbkdf2Sync(`${env.cipher}`, salt, 1000, 32, digest);\r\n\r\n // Create buffers of nonce, ciphertext and tag.\r\n\r\n let ciphertext = saltAndCipherText.subarray(16, saltAndCipherText.length - 16);\r\n\r\n // Create the cipher instance.\r\n let cipher = crypto.createDecipheriv('aes-256-gcm', key, nonce);\r\n let tag = saltAndCipherText.subarray(ciphertext.length + 16);\r\n\r\n // Decrypt and return result.\r\n cipher.setAuthTag(tag);\r\n let decrypted = Buffer.concat([cipher.update(ciphertext), cipher.final()]).toString()\r\n return decrypted;\r\n }\r\n\r\n return \"\"\r\n }\r\n\r\n getRandomIV() {\r\n return crypto.randomBytes(12);\r\n }\r\n\r\n generateSalt32Byte() {\r\n return crypto.randomBytes(16);\r\n }\r\n\r\n\r\n getpreguntas(person: string) {\r\n //return this.http.get(`${ this.url}/preguntas`);\r\n return this.ssps.EXshowTask(person);\r\n }\r\n\r\n saveLocalStorage(key: any, content: any) {\r\n localStorage.setItem(key, this.encrypt(content));\r\n }\r\n\r\n getLocalStorage(key: any) {\r\n return localStorage.getItem(key) !== null && localStorage.getItem(key) !== undefined ?\r\n this.decryptUsingAES256(localStorage.getItem(key)) : null\r\n }\r\n\r\n token() {\r\n return this.ssps.token();\r\n }\r\n\r\n politicas() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.politicaExt();\r\n }\r\n\r\n tiposDireccion() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.tiposDireccionExt();\r\n }\r\n\r\n tiposRegimenTributario() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.tiposRegimenTributarioExt();\r\n }\r\n\r\n cargarProfesiones() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.cargarProfesionesExt();\r\n }\r\n\r\n\r\n tiposCapital() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.tiposCapitalExt();\r\n }\r\n\r\n indicativos() {\r\n // return this.http.get(`${ this.url}/politicas`);\r\n return this.ssps.indicativosExt();\r\n }\r\n\r\n //TODO.valida si la persona esta reportada natural\r\n reportados(primerNombre: string, segundoNombre: string, primerApellido: string, segundoApellido: string, documento: string, tipo: string) {\r\n return this.ssps.reportadosEx(primerNombre, segundoNombre, primerApellido, segundoApellido, documento, tipo);\r\n }\r\n\r\n ReportPersonPJ(nit: string, codigo: string, razon: string) {\r\n return this.ssps.ExtReportPJ(nit, codigo, razon);\r\n }\r\n\r\n historial(tipoDocumento: string, numeroDocumento: string, nitEmpresa: string, tipoPersona: string) {\r\n return this.ssps.historialExt(tipoDocumento, numeroDocumento, nitEmpresa, tipoPersona);\r\n //return this.http.get(`${this.url}/historial?cedula=${numeroDocumento}`);\r\n }\r\n\r\n precios() {\r\n //return this.http.get(`${ this.url}/precios`);\r\n return this.ssps.preciosEx();\r\n }\r\n\r\n usos() {\r\n return this.ssps.usosEx();\r\n }\r\n\r\n preciosReposicion() {\r\n //return this.http.get(`${ this.url}/precios`);\r\n return this.ssps.preciosReposicionEx();\r\n }\r\n\r\n crearOrdenPedidoPN(body: any) {\r\n return this.ssps.crearOrdenPedidoPN(body);\r\n }\r\n\r\n consultarUltimaOrdenPedido(identificacion: any) {\r\n return this.ssps.consultarUltimaOrdenPedido(identificacion);\r\n }\r\n\r\n crearOrdenPedidoPJ(body: any) {\r\n return this.ssps.crearOrdenPedidoPJ(body);\r\n }\r\n\r\n actualizarOrdenPedidoPN(ordenPedidoId: any, body: any) {\r\n return this.ssps.actualizarOrdenPedidoPN(ordenPedidoId, body);\r\n }\r\n\r\n actualizarOrdenPedidoPJ(ordenPedidoId: any, body: any) {\r\n return this.ssps.actualizarOrdenPedidoPJ(ordenPedidoId, body);\r\n }\r\n\r\n generarRequestJuridico(body: any) {\r\n return this.ssps.generarRequestJuridico(body);\r\n }\r\n\r\n generarRequestLlave(body: any) {\r\n return this.ssps.generarRequestLlave(body);\r\n }\r\n\r\n solicitarOTP(body: any) {\r\n return this.ssps.solicitarOTP(body);\r\n }\r\n\r\n\r\n consultarOrdenPedido(ordenPedidoId: any) {\r\n return this.ssps.consultarOrdenPedido(ordenPedidoId);\r\n }\r\n\r\n consultarUrlPSE(body: any) {\r\n return this.ssps.consultarUrlPSE(body);\r\n }\r\n\r\n consultarEstadoPagoPSE(body: any) {\r\n return this.ssps.consultarEstadoPagoPSE(body);\r\n }\r\n\r\n descargarOrdenPago(solicitudId: any) {\r\n return this.ssps.descargarOrdenPago(solicitudId);\r\n }\r\n\r\n cargarComprobantePago(solicitudId: any, body: any) {\r\n return this.ssps.cargarComprobantePago(solicitudId, body);\r\n }\r\n\r\n aplicarCodigoDescuento(body: any) {\r\n return this.ssps.aplicarCodigoDescuento(body);\r\n }\r\n\r\n validarCodigoDescuento(body: any) {\r\n return this.ssps.validarCodigoDescuento(body);\r\n }\r\n\r\n eliminarCodigoDescuento(ordenPedidoId: any, cupon: any) {\r\n return this.ssps.eliminarCodigoDescuento(ordenPedidoId, cupon);\r\n }\r\n\r\n departamentos() {\r\n return this.ssps.departamentosEx();\r\n }\r\n\r\n //TODO:guarda terminos y condiciones\r\n AseptN(primerNombre: string, segundoNombre: string, primerApellido: string, segundoApellido: string, tipo: string, numero: string, terminost: boolean, terminosp: boolean, terminostpro: boolean) {\r\n return this.ssps.ExtAsepN(primerNombre, segundoNombre, primerApellido, segundoApellido, tipo, numero, terminost, terminosp, terminostpro)\r\n }\r\n\r\n //TODO:guarda terminos y condiciones\r\n AseptPJ(numero: string, codigo: string, razon: string, terminosp: boolean, terminost: boolean, terminostpro: boolean) {\r\n return this.ssps.ExtAsepJ(numero, codigo, razon, terminosp, terminost, terminostpro)\r\n }\r\n\r\n formularioContacto(request: any) {\r\n return this.ssps.formularioContacto(request)\r\n }\r\n\r\n obtenerCertificado(request: any) {\r\n return this.ssps.obtenerCertificado(request)\r\n }\r\n\r\n unirLlaves(request: any) {\r\n return this.ssps.unirLlaves(request)\r\n }\r\n\r\n obtenerIp() {\r\n return this.ssps.obtenerIp()\r\n }\r\n\r\n validatedCapcha(token: string) {\r\n return this.ssps.extCapcha(token)\r\n }\r\n\r\n echoTest(url: string) {\r\n this.ssps.echoTest(url)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta echoTest\", res)\r\n },\r\n error: (error) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.echoTest(url)\r\n }\r\n }\r\n })\r\n }\r\n\r\n //TODO:guarda terminos y condiciones\r\n preguntasValidacion(nombres: string, apellidos: string, tipo: string, numero: string, fechaExpedicion: string,\r\n municipio: string, departamento: string, ip: string, solicitudTitularId: number) {\r\n return this.ssps.preguntasValidacion(nombres, apellidos, tipo, numero, fechaExpedicion,\r\n municipio, departamento, ip, solicitudTitularId)\r\n }\r\n\r\n consultarIntentosValidacion(data: any) {\r\n return this.ssps.consultarIntentosValidacion(data)\r\n }\r\n\r\n guardarIntento(data: any) {\r\n return this.ssps.guardarIntento(data)\r\n }\r\n\r\n consultarEstadoEBiometrics(data: any) {\r\n return this.ssps.consultarEstadoEBiometrics(data)\r\n }\r\n\r\n consultarDatosSolicitanteRevocacion(data: any) {\r\n return this.ssps.consultarDatosSolicitanteRevocacion(data)\r\n }\r\n\r\n consultarMotivosRechazo() {\r\n return this.ssps.consultarMotivosRechazo()\r\n }\r\n\r\n consultarFactura(request: any) {\r\n return this.ssps.consultarFactura(request)\r\n }\r\n\r\n consultarSolicitudesEstadoTramite(request: any) {\r\n return this.ssps.consultarSolicitudesEstadoTramite(request)\r\n }\r\n\r\n consultarCertificadosRevocacion(identificacion: any) {\r\n return this.ssps.consultarCertificadosRevocacion(identificacion)\r\n }\r\n\r\n detalleCertificadoRevocacion(username: any) {\r\n return this.ssps.detalleCertificadoRevocacion(username)\r\n }\r\n\r\n revocarCertificado(body: any) {\r\n return this.ssps.revocarCertificado(body)\r\n }\r\n\r\n respuestasValidacion(body: any) {\r\n return this.ssps.respuestasValidacion(body)\r\n }\r\n\r\n //TODO:llamado de data \r\n LocalStorage() {\r\n if (!this.getLocalStorage('tipocliente')) return;\r\n this.typePerson = this.getLocalStorage('tipocliente')!;\r\n if (this.typePerson == \"\") return;\r\n\r\n if (!sessionStorage.getItem('usuario')) return;\r\n this.person = JSON.parse(this.getLocalStorage('usuario')!);\r\n if (JSON.stringify(this.person) == '{}') return;\r\n\r\n if (!this.getLocalStorage('identificacion')) return;\r\n this.numero = this.getLocalStorage('identificacion')!;\r\n if (this.numero == \"\") return;\r\n }\r\n\r\n saveBuyData(dataBuy: any, reposicion: boolean) {\r\n this.logger.log(\"saveBuyData-person\", this.person)\r\n this.logger.log(\"saveBuyData-dataBuy\", dataBuy)\r\n let solicitante = dataBuy.solicitantes[0]\r\n let vigencia = reposicion ? dataBuy.diasReposicion :\r\n solicitante.detallesCertificado.vigencia === \"\" || +solicitante.detallesCertificado.vigencia < 365 ? 365 :\r\n +solicitante.detallesCertificado.vigencia\r\n let aspectosContables = dataBuy.aspectosContables ?? {}\r\n let telefono = dataBuy.solicitantes[0].telefonos[0] ?? {}\r\n const data: any = {\r\n anos: reposicion ? vigencia : Math.floor(vigencia / 365),\r\n esVigenciaDias: reposicion,\r\n primerNombre: solicitante.primerNombre.toUpperCase().trim(),\r\n segundoNombre: solicitante.segundoNombre !== null &&\r\n solicitante.segundoNombre !== undefined &&\r\n solicitante.segundoNombre !== \"\" ? solicitante.segundoNombre.toUpperCase().trim() : \"\",\r\n primerApellido: solicitante.primerApellido.toUpperCase().trim(),\r\n segundoApellido: solicitante.segundoApellido !== null &&\r\n solicitante.segundoApellido !== undefined &&\r\n solicitante.segundoApellido !== \"\" ? solicitante.segundoApellido.toUpperCase().trim() : \"\",\r\n cantidad: solicitante.detallesCertificado.cantidad ?? null,\r\n cliente: this.typePerson,\r\n costo: 0,\r\n costoBase: 0,\r\n ica: 0,\r\n iva: 0,\r\n reteIva: 0,\r\n dispo: solicitante.detallesCertificado.mecanismoEntrega.replace(\"FISICO\", \"FÍSICO\").replace(\"Fisico\", \"Físico\").replace(\"fisico\", \"físico\").replace(\"REUSO\", \"reúso\").replace(\"Reuso\", \"Reúso\").replace(\"reuso\", \"reúso\"),\r\n idispo: \"\",\r\n idpoli: solicitante.detallesCertificado.idPolitica,\r\n numero: this.person.numero,\r\n politica: solicitante.detallesCertificado.nombrePolitica.replace(\"Juridica\", \"Jurídica\").replace(\"Funcion\", \"Función\"),\r\n terminosp: this.person.terminosp,\r\n terminost: this.person.terminost,\r\n terminostpro: this.person.terminostpro,\r\n tipo: this.person.tipo,\r\n uid: this.person.uid,\r\n correo: dataBuy.solicitantes[0].correoElectronico.toUpperCase(),\r\n correo1: \"\",\r\n profesion: dataBuy.solicitantes[0].profesion ?? '',\r\n tarjetaProfesional: dataBuy.solicitantes[0].tarjetaProfesional ?? '',\r\n institucionGrado: dataBuy.solicitantes[0].institucionGrado ?? '',\r\n fechaExpTarjetaProfesional: dataBuy.solicitantes[0].fechaExpTarjetaProfesional ?? '',\r\n celular: dataBuy.solicitantes[0].celular,\r\n indicativo: telefono.indicativo ?? \"\",\r\n extension: telefono.extension ?? \"\",\r\n telefono: telefono.telefono ?? \"\",\r\n tipoCapital: aspectosContables.tipoCapital ?? '',\r\n regimenTributario: aspectosContables.regimenTributario ?? '',\r\n actividadEconomica: aspectosContables.ciuu ?? '',\r\n departamento: +dataBuy.solicitantes[0].departamento,\r\n municipio: +dataBuy.solicitantes[0].ciudad\r\n }\r\n\r\n let datosBasicoDireccion = dataBuy.solicitantes[0].direccion\r\n\r\n let barrio = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7,\r\n datosBasicoDireccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosBasicoDireccion.includes(\"#\") &&\r\n datosBasicoDireccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"#\") + 1, datosBasicoDireccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"BARRIO\")) :\r\n datosBasicoDireccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n if (solicitante.detallesCertificado.descripcionUso !== undefined && solicitante.detallesCertificado.descripcionUso !== null\r\n && solicitante.detallesCertificado.descripcionUso !== \"\") {\r\n data.uso = {\r\n id: solicitante.detallesCertificado.usoId,\r\n descripcion: solicitante.detallesCertificado.descripcionUso,\r\n otro: solicitante.detallesCertificado.usoId === \"12\" ? solicitante.detallesCertificado.descripcionUso : \"\"\r\n }\r\n }\r\n\r\n this.person = data;\r\n this.logger.log(\"saveBuyData-save\", data)\r\n this.saveLocalStorage('usuario', JSON.stringify(data));\r\n }\r\n\r\n saveBuyDataPJ(dataBuy: any, reposicion: boolean) {\r\n this.logger.log(\"saveBuyDataPJ-person\", this.person)\r\n this.logger.log(\"saveBuyDataPJ-dataBuy\", dataBuy)\r\n let solicitante = dataBuy.solicitantes[0]\r\n let empresa = dataBuy.empresa\r\n let vigencia = reposicion ? dataBuy.diasReposicion :\r\n solicitante.detallesCertificado.vigencia === \"\" || +solicitante.detallesCertificado.vigencia < 365 ? 365 :\r\n +solicitante.detallesCertificado.vigencia\r\n let telefono = solicitante.telefonos[0] ?? {}\r\n let aspectosContables = dataBuy.aspectosContables ?? {}\r\n const data: any = {\r\n anos: reposicion ? vigencia : Math.floor(vigencia / 365),\r\n esVigenciaDias: reposicion,\r\n cantidad: solicitante.detallesCertificado.cantidad ?? null,\r\n cliente: this.typePerson,\r\n costo: 0,\r\n costoBase: 0,\r\n ica: 0,\r\n iva: 0,\r\n reteIva: 0,\r\n dispo: solicitante.detallesCertificado.mecanismoEntrega.replace(\"FISICO\", \"FÍSICO\").replace(\"Fisico\", \"Físico\").replace(\"fisico\", \"físico\").replace(\"REUSO\", \"reúso\").replace(\"Reuso\", \"Reúso\").replace(\"reuso\", \"reúso\"),\r\n idispo: \"\",\r\n idpoli: solicitante.detallesCertificado.idPolitica,\r\n politica: solicitante.detallesCertificado.nombrePolitica.replace(\"Juridica\", \"Jurídica\").replace(\"Funcion\", \"Función\"),\r\n correo: empresa.correoElectronico.toUpperCase(),\r\n correo1: \"\",\r\n municipio: +empresa.municipio,\r\n departamento: +empresa.departamento,\r\n celular: empresa.celular,\r\n indicativo: telefono.indicativo ?? \"\",\r\n extension: telefono.extension ?? \"\",\r\n telefono: telefono.telefono ?? \"\",\r\n tipoCapital: aspectosContables.tipoCapital ?? '',\r\n regimenTributario: aspectosContables.regimenTributario ?? '',\r\n actividadEconomica: aspectosContables.ciuu ?? '',\r\n razon: empresa.razonSocial.toUpperCase().trim()\r\n }\r\n\r\n let datosBasicoDireccion = empresa.direccion\r\n\r\n let barrio = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7,\r\n datosBasicoDireccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosBasicoDireccion.includes(\"#\") &&\r\n datosBasicoDireccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"#\") + 1, datosBasicoDireccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"BARRIO\")) :\r\n datosBasicoDireccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n\r\n if (solicitante.detallesCertificado.descripcionUso !== undefined && solicitante.detallesCertificado.descripcionUso !== null\r\n && solicitante.detallesCertificado.descripcionUso !== \"\") {\r\n data.uso = {\r\n id: solicitante.detallesCertificado.usoId,\r\n descripcion: solicitante.detallesCertificado.descripcionUso,\r\n otro: solicitante.detallesCertificado.usoId === \"12\" ? solicitante.detallesCertificado.descripcionUso : \"\"\r\n }\r\n }\r\n\r\n Object.assign(this.person, data)\r\n this.logger.log(\"saveBuyData-save\", this.person)\r\n this.saveLocalStorage('usuario', JSON.stringify(this.person));\r\n }\r\n\r\n saveSolicitanteDataPJ(dataBuy: any) {\r\n this.logger.log(\"saveSolicitanteDataPJ-dataBuy\", dataBuy)\r\n let solicitanteLocal = JSON.parse(this.getLocalStorage('solicitante')!);\r\n let solicitante = dataBuy.solicitantes[0]\r\n let telefono = solicitante.telefonos[0] ?? {}\r\n const data = {\r\n correo: solicitante.correoElectronico.toUpperCase(),\r\n correo1: \"\",\r\n profesion: solicitante.profesion ?? '',\r\n tarjetaProfesional: solicitante.tarjetaProfesional ?? '',\r\n institucionGrado: solicitante.institucionGrado ?? '',\r\n fechaExpTarjetaProfesional: solicitante.fechaExpTarjetaProfesional ?? '',\r\n cargoEmpresa: solicitante.cargo ?? '',\r\n fechaNombramiento: solicitante.fechaNombramiento ?? '',\r\n actaPosesion: solicitante.actaPosesion ?? '',\r\n municipio: solicitante.ciudad,\r\n departamento: solicitante.departamento,\r\n celular: solicitante.celular,\r\n direccion: solicitante.direccion,\r\n indicativo: telefono.indicativo ?? \"\",\r\n extension: telefono.extension ?? \"\",\r\n telefono: telefono.telefono ?? \"\",\r\n primerNombre: solicitante.primerNombre.toUpperCase().trim(),\r\n segundoNombre: solicitante.segundoNombre !== null &&\r\n solicitante.segundoNombre !== undefined &&\r\n solicitante.segundoNombre !== \"\" ? solicitante.segundoNombre.toUpperCase().trim() : \"\",\r\n primerApellido: solicitante.primerApellido.toUpperCase().trim(),\r\n segundoApellido: solicitante.segundoApellido !== null &&\r\n solicitante.segundoApellido !== undefined &&\r\n solicitante.segundoApellido !== \"\" ? solicitante.segundoApellido.toUpperCase().trim() : \"\",\r\n cantidad: solicitante.detallesCertificado.cantidad ?? null,\r\n }\r\n Object.assign(solicitanteLocal, data)\r\n this.logger.log(\"saveSolicitanteDataPJ-save\", solicitanteLocal)\r\n this.saveLocalStorage('solicitante', JSON.stringify(solicitanteLocal));\r\n }\r\n\r\n saveEntregaData(dataBuy: any) {\r\n this.logger.log(\"saveEntregaData-dataBuy\", dataBuy)\r\n let infoEnvio = dataBuy.solicitantes[0].informacionEnvio ?? {}\r\n let telefono = infoEnvio.telefonoEnvio[0] ?? {}\r\n let municipioData = infoEnvio.municipioEnvio ?? \"\";\r\n let codDepartamento = municipioData !== \"\" && municipioData.length > 1 ? +municipioData.substring(0, 2) : '';\r\n let codMunicipio = municipioData !== \"\" && municipioData.length > 2 ? +municipioData.substring(2) : '';\r\n const data: any = {\r\n departamento: codDepartamento,\r\n municipio: codMunicipio,\r\n indicativo: telefono.indicativo ?? \"\",\r\n extension: telefono.extension ?? \"\",\r\n telefono: telefono.telefono ?? \"\",\r\n celular: infoEnvio.celularEnvio ?? \"\",\r\n correo: dataBuy.solicitantes[0].correoElectronico.toUpperCase(),\r\n tipo: (infoEnvio.preferenciaEnvio ?? \"\").includes(\"OFCCER\") ? \"OFICINA\" : \"ENVIO\"\r\n }\r\n\r\n let datosBasicoDireccion = infoEnvio.direccionEnvio ?? \"\"\r\n\r\n let barrio = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7,\r\n datosBasicoDireccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosBasicoDireccion.includes(\"#\") &&\r\n datosBasicoDireccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"#\") + 1, datosBasicoDireccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"BARRIO\")) :\r\n datosBasicoDireccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n data.direccionCompleta = infoEnvio.direccionEnvio ?? \"\"\r\n\r\n this.logger.log(\"saveEntregaData-save\", data)\r\n this.saveLocalStorage('entrega', JSON.stringify(data));\r\n }\r\n\r\n saveFacturacionData(dataBuy: any) {\r\n this.logger.log(\"saveFacturacionData-dataBuy\", dataBuy)\r\n let aspectosContables = dataBuy.aspectosContables ?? {}\r\n let tipo = this.person.tipo\r\n let numeroIdentificacion = this.person.numero\r\n let responsablePago = aspectosContables.responsablePago ?? {}\r\n let telefono = responsablePago.telefonos ? responsablePago.telefonos[0] ?? {} : {}\r\n let nombres = responsablePago.nombresApellidos.split(\" \");\r\n const data: any = {\r\n tipo: responsablePago.tipoIdentificacion ?? tipo,\r\n numero: responsablePago.numeroIdentificacion ?? numeroIdentificacion,\r\n nombres: nombres.length > 2 ? nombres[0] + \" \" + nombres[1] : nombres[0],\r\n apellidos: nombres.length > 3 ? nombres[2] + \" \" + nombres[3] :\r\n nombres.length > 2 ? nombres[2] : nombres.length > 1 ? nombres[1] : \"\",\r\n razon: responsablePago.nombresApellidos,\r\n direccion: responsablePago.direccion ?? '',\r\n indicativo: telefono.indicativo ?? \"\",\r\n telefono: telefono.telefono ?? '',\r\n extension: telefono.extension ?? '',\r\n celular: responsablePago.celular ?? '',\r\n correo: (responsablePago.correoElectronico ?? '').toUpperCase(),\r\n municipio: responsablePago.municipio,\r\n departamento: responsablePago.departamento,\r\n regimenTributario: responsablePago.regimenTributario ?? '',\r\n tipoCapital: responsablePago.tipoCapital ?? ''\r\n }\r\n\r\n let datosBasicoDireccion = responsablePago.direccion ?? ''\r\n\r\n let barrio = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7,\r\n datosBasicoDireccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosBasicoDireccion.includes(\"ADICIONAL\") ?\r\n datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosBasicoDireccion.includes(\"#\") &&\r\n datosBasicoDireccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = datosBasicoDireccion.substring(datosBasicoDireccion.indexOf(\"#\") + 1, datosBasicoDireccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosBasicoDireccion.includes(\"BARRIO\") ?\r\n datosBasicoDireccion.substring(0, datosBasicoDireccion.indexOf(\"BARRIO\")) :\r\n datosBasicoDireccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n\r\n this.logger.log(\"saveFacturacionData-save\", data)\r\n this.saveLocalStorage('facturacion', JSON.stringify(data));\r\n }\r\n\r\n saveOrdenPedidoData(datosOrden: any) {\r\n this.logger.log(\"datosOrden\", datosOrden)\r\n //TODO Validar el tipoPersona, para cuando se implemente el flujo de Juridico\r\n var telefono = datosOrden.datosBasicos.telefono && datosOrden.datosBasicos.telefono.length > 0 ?\r\n datosOrden.datosBasicos.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n const data: any = {\r\n anos: datosOrden.detallesCertificado.vigencia,\r\n esReposicion: datosOrden.detallesCertificado.reposicion,\r\n esVigenciaDias: datosOrden.detallesCertificado.reposicion,\r\n primerNombre: datosOrden.datosBasicos.primerNombre,\r\n segundoNombre: datosOrden.datosBasicos.segundoNombre,\r\n primerApellido: datosOrden.datosBasicos.primerApellido,\r\n segundoApellido: datosOrden.datosBasicos.segundoApellido,\r\n cantidad: datosOrden.solicitantes.length,\r\n cliente: datosOrden.tipoPersona,\r\n costo: datosOrden.detallesCertificado.valorNeto,\r\n descuentoCupon: datosOrden.detallesCertificado.valorDescuentoCupon,\r\n costoBase: datosOrden.detallesCertificado.valorBaseLiquidacion,\r\n existeCSR: datosOrden.detallesCertificado.existeCSR,\r\n ica: datosOrden.detallesCertificado.porcentajeIca,\r\n iva: datosOrden.detallesCertificado.porcentajeIva,\r\n reteiva: datosOrden.detallesCertificado.porcentajeReteIva,\r\n estampillas: datosOrden.detallesCertificado.estampillas,\r\n dispo: datosOrden.detallesCertificado.mecanismoEntrega.replace(\"FISICO\", \"FÍSICO\").replace(\"Fisico\", \"Físico\").replace(\"fisico\", \"físico\").replace(\"REUSO\", \"reúso\").replace(\"Reuso\", \"Reúso\").replace(\"reuso\", \"reúso\"),\r\n idispo: \"\",\r\n idpoli: 0,\r\n numero: datosOrden.datosBasicos.numeroIdentificacion,\r\n politica: datosOrden.detallesCertificado.politica.replace(\"Juridica\", \"Jurídica\").replace(\"Funcion\", \"Función\"),\r\n terminosp: datosOrden.aceptoTerminosSn,\r\n terminost: datosOrden.aceptoTerminosSn,\r\n terminostpro: datosOrden.aceptoTerminosSn,\r\n tipo: datosOrden.datosBasicos.tipoIdentificacion,\r\n uid: uuidv4(),\r\n correo: datosOrden.datosBasicos.correoElectronico.toUpperCase(),\r\n correo1: datosOrden.datosBasicos.correoElectronico.toUpperCase(),\r\n profesion: \"\",\r\n tarjetaProfesional: \"\",\r\n institucionGrado: \"\",\r\n fechaExpTarjetaProfesional: \"\",\r\n idTitular: datosOrden.solicitantes[0].solicitudTitularId,\r\n identidadValidada: datosOrden.solicitantes[0].identidadValidada,\r\n ip: this.ip,\r\n fechaCreacion: datosOrden.datosBasicos.fechaCreacion,\r\n documentosCargados: [],\r\n proceso: datosOrden.datosBasicos.fechaPago !== \"\" && datosOrden.datosBasicos.realizoPago === \"S\" ?\r\n 1 : 0,\r\n celular: datosOrden.datosBasicos.celular,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n indicativo: telefono.indicativo,\r\n municipio: +datosOrden.datosBasicos.municipio,\r\n departamento: +datosOrden.datosBasicos.departamento,\r\n tipoCapital: '',\r\n actividadEconomica: '',\r\n faltantes: datosOrden.faltantes,\r\n solicitudFinalizada: datosOrden.solicitudFinalizada,\r\n regimenTributario: datosOrden.datosBasicos.regimenTributario ?? '',\r\n usoCertificado: datosOrden.detallesCertificado.usoCertificado ?? -1,\r\n otroUso: datosOrden.detallesCertificado.otroUso ?? '',\r\n uso: datosOrden.detallesCertificado.uso ?? ''\r\n }\r\n\r\n if (datosOrden.documentos) {\r\n datosOrden.documentos.forEach((element: any, index: any) => {\r\n data.documentosCargados.push({\r\n id: element.tipo,\r\n fondo: '#09CB34',\r\n colores: '#fff',\r\n title: 'Documento cargado con exito',\r\n subtitle: element.nombre\r\n })\r\n return \"\"\r\n });\r\n }\r\n\r\n let barrio = datosOrden.datosBasicos.direccion.includes(\"ADICIONAL\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\") + 7,\r\n datosOrden.datosBasicos.direccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosOrden.datosBasicos.direccion.includes(\"BARRIO\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosOrden.datosBasicos.direccion.includes(\"ADICIONAL\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosOrden.datosBasicos.direccion.includes(\"#\") &&\r\n datosOrden.datosBasicos.direccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosOrden.datosBasicos.direccion.substring(0, datosOrden.datosBasicos.direccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n\r\n let numeroIni = datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"#\") + 1, datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosOrden.datosBasicos.direccion.includes(\"BARRIO\") ?\r\n datosOrden.datosBasicos.direccion.substring(0, datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\")) :\r\n datosOrden.datosBasicos.direccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n\r\n if (datosOrden.profesionalTitulado) {\r\n data.profesion = datosOrden.profesionalTitulado.profesion\r\n data.fechaExpTarjetaProfesional = datosOrden.profesionalTitulado.fechaExpedicion\r\n data.institucionGrado = datosOrden.profesionalTitulado.institucionGrado\r\n data.tarjetaProfesional = datosOrden.profesionalTitulado.numTarjetaProfesional\r\n }\r\n this.person = data;\r\n this.logger.log(\"saveOrdenPedidoData\", data)\r\n this.saveLocalStorage(\"identificacion\", datosOrden.datosBasicos.numeroIdentificacion);\r\n this.saveLocalStorage(\"tipocliente\", datosOrden.tipoPersona);\r\n this.saveLocalStorage('usuario', JSON.stringify(data));\r\n this.saveOrdenPedidoFacturacionData(datosOrden)\r\n this.SavePagoOrdenPedidoData(datosOrden.detallesCertificado, datosOrden.datosBasicos)\r\n this.SaveEntregaOrdenPedidoData(datosOrden.informacionEnvio)\r\n if (datosOrden.datosContactoTecnico) {\r\n this.SaveContactoOrdenPedidoData(datosOrden.datosContactoTecnico)\r\n }\r\n }\r\n\r\n saveOrdenPedidoDataPJ(datosOrden: any) {\r\n this.logger.log(\"datosOrdenPJ\", datosOrden)\r\n //TODO Validar el tipoPersona, para cuando se implemente el flujo de Juridico\r\n var telefono = datosOrden.datosBasicos.telefono && datosOrden.datosBasicos.telefono.length > 0 ?\r\n datosOrden.datosBasicos.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n const data: any = {\r\n anos: datosOrden.detallesCertificado.vigencia,\r\n esReposicion: datosOrden.detallesCertificado.reposicion,\r\n esVigenciaDias: datosOrden.detallesCertificado.reposicion,\r\n existeCSR: datosOrden.detallesCertificado.existeCSR,\r\n cantidad: datosOrden.solicitantes.length,\r\n cliente: datosOrden.tipoPersona,\r\n costo: datosOrden.detallesCertificado.valorNeto,\r\n descuentoCupon: datosOrden.detallesCertificado.valorDescuentoCupon,\r\n costoBase: datosOrden.detallesCertificado.valorBaseLiquidacion,\r\n ica: datosOrden.detallesCertificado.porcentajeIca,\r\n iva: datosOrden.detallesCertificado.porcentajeIva,\r\n reteiva: datosOrden.detallesCertificado.porcentajeReteIva,\r\n estampillas: datosOrden.detallesCertificado.estampillas,\r\n dispo: datosOrden.detallesCertificado.mecanismoEntrega.replace(\"FISICO\", \"FÍSICO\").replace(\"Fisico\", \"Físico\").replace(\"fisico\", \"físico\").replace(\"REUSO\", \"reúso\").replace(\"Reuso\", \"Reúso\").replace(\"reuso\", \"reúso\"),\r\n idispo: \"\",\r\n idpoli: 0,\r\n razon: datosOrden.datosBasicos.razonSocial,\r\n numero: datosOrden.datosBasicos.numeroIdentificacion,\r\n politica: datosOrden.detallesCertificado.politica.replace(\"Juridica\", \"Jurídica\").replace(\"Funcion\", \"Función\"),\r\n terminosp: datosOrden.aceptoTerminosSn,\r\n terminost: datosOrden.aceptoTerminosSn,\r\n terminostpro: datosOrden.aceptoTerminosSn,\r\n tipo: datosOrden.datosBasicos.tipoIdentificacion,\r\n uid: uuidv4(),\r\n correo: datosOrden.datosBasicos.correoElectronico.toUpperCase(),\r\n correo1: datosOrden.datosBasicos.correoElectronico.toUpperCase(),\r\n idTitular: datosOrden.solicitantes[0].solicitudTitularId,\r\n identidadValidada: datosOrden.solicitantes[0].identidadValidada,\r\n ip: this.ip,\r\n fechaCreacion: datosOrden.datosBasicos.fechaCreacion,\r\n documentosCargados: [],\r\n proceso: datosOrden.datosBasicos.fechaPago !== \"\" && datosOrden.datosBasicos.realizoPago === \"S\" ?\r\n 1 : 0,\r\n celular: datosOrden.datosBasicos.celular,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n indicativo: telefono.indicativo,\r\n municipio: +datosOrden.datosBasicos.municipio,\r\n departamento: +datosOrden.datosBasicos.departamento,\r\n tipoCapital: datosOrden.datosBasicos.tipoCapital,\r\n regimenTributario: datosOrden.datosBasicos.regimenTributario,\r\n actividadEconomica: datosOrden.datosBasicos.actividadEconomica,\r\n faltantes: datosOrden.faltantes,\r\n solicitudFinalizada: datosOrden.solicitudFinalizada,\r\n usoCertificado: datosOrden.detallesCertificado.usoCertificado ?? -1,\r\n otroUso: datosOrden.detallesCertificado.otroUso ?? '',\r\n uso: datosOrden.detallesCertificado.uso ?? ''\r\n }\r\n\r\n let barrio = datosOrden.datosBasicos.direccion.includes(\"ADICIONAL\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\") + 7,\r\n datosOrden.datosBasicos.direccion.indexOf(\"ADICIONAL\") - 1) :\r\n datosOrden.datosBasicos.direccion.includes(\"BARRIO\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = datosOrden.datosBasicos.direccion.includes(\"ADICIONAL\") ?\r\n datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (datosOrden.datosBasicos.direccion.includes(\"#\") &&\r\n datosOrden.datosBasicos.direccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = datosOrden.datosBasicos.direccion.substring(0, datosOrden.datosBasicos.direccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = datosOrden.datosBasicos.direccion.substring(datosOrden.datosBasicos.direccion.indexOf(\"#\") + 1, datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: datosOrden.datosBasicos.direccion.includes(\"BARRIO\") ?\r\n datosOrden.datosBasicos.direccion.substring(0, datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\")) :\r\n datosOrden.datosBasicos.direccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n\r\n if (datosOrden.documentos) {\r\n datosOrden.documentos.filter((p: { tipo: string; }) => p.tipo === \"rut\" || p.tipo === \"pago\").forEach((element: any, index: any) => {\r\n data.documentosCargados.push({\r\n id: element.tipo,\r\n fondo: '#09CB34',\r\n colores: '#fff',\r\n title: 'Documento cargado con exito',\r\n subtitle: element.nombre\r\n })\r\n return \"\"\r\n });\r\n }\r\n this.person = data;\r\n this.logger.log(\"saveOrdenPedidoData\", data)\r\n this.saveLocalStorage(\"identificacion\", datosOrden.datosBasicos.numeroIdentificacion);\r\n this.saveLocalStorage(\"tipocliente\", datosOrden.tipoPersona);\r\n this.saveLocalStorage('usuario', JSON.stringify(data));\r\n this.saveSolicitanteOrdenPedidoData(datosOrden)\r\n this.saveOrdenPedidoFacturacionData(datosOrden)\r\n this.SavePagoOrdenPedidoData(datosOrden.detallesCertificado, datosOrden.datosBasicos)\r\n this.SaveEntregaOrdenPedidoData(datosOrden.informacionEnvio)\r\n if (datosOrden.datosContactoTecnico) {\r\n this.SaveContactoOrdenPedidoData(datosOrden.datosContactoTecnico)\r\n }\r\n }\r\n\r\n saveSolicitanteOrdenPedidoData(datosOrden: any) {\r\n this.logger.log(\"saveSolicitanteOrdenPedidoData\", datosOrden)\r\n var solicitante = datosOrden.solicitantes[0]\r\n //TODO Validar el tipoPersona, para cuando se implemente el flujo de Juridico\r\n var telefono = solicitante.telefono && solicitante.telefono.length > 0 ?\r\n solicitante.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n\r\n\r\n const data: any = {\r\n primerNombre: solicitante.primerNombre ?? '',\r\n segundoNombre: solicitante.segundoNombre ?? '',\r\n primerApellido: solicitante.primerApellido ?? '',\r\n segundoApellido: solicitante.segundoApellido ?? '',\r\n numero: solicitante.numeroIdentificacion,\r\n tipo: solicitante.tipoIdentificacion,\r\n correo: solicitante.correoElectronico.toUpperCase(),\r\n correo1: solicitante.correoElectronico.toUpperCase(),\r\n profesion: \"\",\r\n tarjetaProfesional: \"\",\r\n institucionGrado: \"\",\r\n fechaExpTarjetaProfesional: \"\",\r\n documentosCargados: [],\r\n celular: solicitante.celular,\r\n idTitular: solicitante.solicitudTitularId,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n indicativo: telefono.indicativo,\r\n municipio: +solicitante.municipio,\r\n departamento: +solicitante.departamento,\r\n cargoEmpresa: solicitante.cargoEmpresa,\r\n fechaNombramiento: solicitante.fechaNombramiento,\r\n actaPosesion: solicitante.actaPosesion,\r\n esRepresentanteLegal: solicitante.esRepresentanteLegal === \"S\",\r\n esFuncionarioPublico: solicitante.esFuncionarioPublico === \"S\",\r\n }\r\n\r\n if (datosOrden.documentos) {\r\n datosOrden.documentos.filter((p: { tipo: string; }) => p.tipo !== \"rut\").forEach((element: any, index: any) => {\r\n data.documentosCargados.push({\r\n id: element.tipo,\r\n fondo: '#09CB34',\r\n colores: '#fff',\r\n title: 'Documento cargado con exito',\r\n subtitle: element.nombre\r\n })\r\n return \"\"\r\n });\r\n }\r\n if (datosOrden.profesionalTitulado) {\r\n data.profesion = datosOrden.profesionalTitulado.profesion\r\n data.fechaExpTarjetaProfesional = datosOrden.profesionalTitulado.fechaExpedicion\r\n data.institucionGrado = datosOrden.profesionalTitulado.institucionGrado\r\n data.tarjetaProfesional = datosOrden.profesionalTitulado.numTarjetaProfesional\r\n }\r\n this.logger.log(\"saveSolicitanteOrdenPedidoData\", data)\r\n this.saveLocalStorage('solicitante', JSON.stringify(data));\r\n }\r\n\r\n saveOrdenPedidoFacturacionData(datosOrden: any) {\r\n var facturacionData = datosOrden.datosFacturacion\r\n var solicitante = datosOrden.solicitantes[0]\r\n this.logger.log(\"saveOrdenPedidoFacturacionData\", facturacionData)\r\n if (facturacionData.correoElectronico !== undefined && facturacionData.correoElectronico !== null\r\n && facturacionData.correoElectronico !== \"\"\r\n ) {\r\n var telefono = facturacionData.telefono && facturacionData.telefono.length > 0 ?\r\n facturacionData.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n const data: any = {\r\n tipo: facturacionData.tipoIdentificacion,\r\n numero: facturacionData.numeroIdentificacion,\r\n nombres: facturacionData.nombres,\r\n apellidos: facturacionData.apellidos,\r\n razon: facturacionData.nombres + (facturacionData.apellidos && facturacionData.apellidos !== \"\" ?\r\n (\" \" + facturacionData.apellidos) : \"\"),\r\n direccion: facturacionData.direccion,\r\n indicativo: telefono.indicativo,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n celular: facturacionData.celular ?? '',\r\n correo: (facturacionData.correoElectronico ?? '').toUpperCase(),\r\n agente: solicitante.codigoAgente ?? '',\r\n regimenTributario: facturacionData.regimenTributario,\r\n tipoCapital: facturacionData.tipoCapital,\r\n departamento: +(facturacionData.departamento ?? ''),\r\n municipio: +(facturacionData.municipio ?? ''),\r\n codigo: this.componentesService.calcularDigitoChequeo(facturacionData.numeroIdentificacion)\r\n }\r\n let barrio = facturacionData.direccion.includes(\"ADICIONAL\") ?\r\n facturacionData.direccion.substring(facturacionData.direccion.indexOf(\"BARRIO\") + 7,\r\n facturacionData.direccion.indexOf(\"ADICIONAL\") - 1) :\r\n facturacionData.direccion.includes(\"BARRIO\") ?\r\n facturacionData.direccion.substring(facturacionData.direccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = facturacionData.direccion.includes(\"ADICIONAL\") ?\r\n facturacionData.direccion.substring(facturacionData.direccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (facturacionData.direccion.includes(\"#\") &&\r\n facturacionData.direccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = facturacionData.direccion.substring(0, facturacionData.direccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n\r\n let numeroIni = facturacionData.direccion.substring(facturacionData.direccion.indexOf(\"#\") + 1, datosOrden.datosBasicos.direccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: facturacionData.direccion.includes(\"BARRIO\") ?\r\n facturacionData.direccion.substring(0, facturacionData.direccion.indexOf(\"BARRIO\")) :\r\n facturacionData.direccion\r\n }\r\n\r\n data.objetoDireccion = objetoDireccion\r\n data.direccion = objetoDireccion.tipoOtroNumero\r\n this.logger.log(\"saveOrdenPedidoFacturacionData\", data)\r\n this.saveLocalStorage('facturacion', JSON.stringify(data));\r\n }\r\n\r\n }\r\n\r\n SavePagoOrdenPedidoData(detallesCertificado: any, datosBasicos: any) {\r\n this.logger.log(\"SavePagoOrdenPedidoData-detallesCertificado\", detallesCertificado)\r\n this.logger.log(\"SavePagoOrdenPedidoData-datosBasicos\", datosBasicos)\r\n var pago = {\r\n ordenPedidoId: this.getLocalStorage(\"ordenPedidoId\")!,\r\n costoBase: detallesCertificado.valorBaseLiquidacion,\r\n impuestos: detallesCertificado.valorIva - detallesCertificado.valorReteIva,\r\n valorTotal: detallesCertificado.valorNeto,\r\n descuentoCupon: detallesCertificado.valorDescuentoCupon,\r\n mensaje: '',\r\n estado: 'PENDIENTE',\r\n url: '',\r\n iva: detallesCertificado.porcentajeIva,\r\n ica: detallesCertificado.porcentajeIca,\r\n reteiva: detallesCertificado.porcentajeReteIva,\r\n ivaValor: detallesCertificado.valorIva,\r\n icaValor: detallesCertificado.valorIca,\r\n reteIvaValor: detallesCertificado.valorReteIva,\r\n estampillas: detallesCertificado.estampillas,\r\n pagoPSE: datosBasicos.pagoPSE,\r\n realizoPago: datosBasicos.realizoPago,\r\n fechaPago: datosBasicos.fechaPago,\r\n referenciaPago: datosBasicos.referenciaPago ?? '',\r\n usuarioRegistraPago: datosBasicos.usuarioRegistraPago ?? 'N',\r\n documentos: [],\r\n esDescuentoCupon: detallesCertificado.esDescuentoCupon ?? false,\r\n cuponAplicado: detallesCertificado.cuponAplicado,\r\n cuponAplicadoExitosamente: detallesCertificado.cuponAplicadoExitosamente ?? false\r\n }\r\n this.logger.log(\"SavePagoOrdenPedidoData\", pago)\r\n this.saveLocalStorage(\"pago\", JSON.stringify(pago))\r\n }\r\n\r\n SaveEntregaOrdenPedidoData(informacionEnvio: any) {\r\n this.logger.log(\"SaveEntregaOrdenPedidoData\", informacionEnvio)\r\n var entrega: any = {\r\n tipo: informacionEnvio.tipo\r\n }\r\n if (informacionEnvio.tipo === \"CORREO\") {\r\n entrega.correo = informacionEnvio.envioViaCorreoElectronico.correoElectronico.toUpperCase()\r\n }\r\n else if (informacionEnvio.tipo === \"OFICINA\") {\r\n entrega.direccionCompleta = informacionEnvio.recogeCerti.direccion\r\n\r\n }\r\n else {\r\n var telefono = informacionEnvio.envioDomicilio.telefono && informacionEnvio.envioDomicilio.telefono.length > 0 ?\r\n informacionEnvio.envioDomicilio.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n\r\n let barrio = informacionEnvio.envioDomicilio.direccion.includes(\"ADICIONAL\") ?\r\n informacionEnvio.envioDomicilio.direccion.substring(informacionEnvio.envioDomicilio.direccion.indexOf(\"BARRIO\") + 7,\r\n informacionEnvio.envioDomicilio.direccion.indexOf(\"ADICIONAL\") - 1) :\r\n informacionEnvio.envioDomicilio.direccion.includes(\"BARRIO\") ?\r\n informacionEnvio.envioDomicilio.direccion.substring(informacionEnvio.envioDomicilio.direccion.indexOf(\"BARRIO\") + 7) : \"\"\r\n\r\n let adicional = informacionEnvio.envioDomicilio.direccion.includes(\"ADICIONAL\") ?\r\n informacionEnvio.envioDomicilio.direccion.substring(informacionEnvio.envioDomicilio.direccion.indexOf(\"ADICIONAL\") + 10) : \"\"\r\n\r\n let tipoDireccion = \"Otro\"\r\n let tipoNumero = \"\"\r\n let numero = \"\"\r\n let numero2 = \"\"\r\n if (informacionEnvio.envioDomicilio.direccion.includes(\"#\") &&\r\n informacionEnvio.envioDomicilio.direccion.includes(\"BARRIO\")) {\r\n let tipoDireccionIni = informacionEnvio.envioDomicilio.direccion.substring(0, informacionEnvio.envioDomicilio.direccion.indexOf(\"#\")).split(' ').filter((i: any) => i)\r\n if (tipoDireccionIni.length > 2) {\r\n tipoDireccion = tipoDireccionIni[0] + \" \" + tipoDireccionIni[1]\r\n tipoNumero = tipoDireccionIni[2]\r\n }\r\n else {\r\n tipoDireccion = tipoDireccionIni[0]\r\n tipoNumero = tipoDireccionIni[1]\r\n }\r\n if (tipoDireccion.length < 3) {\r\n tipoDireccion = \"Otro\"\r\n }\r\n let numeroIni = informacionEnvio.envioDomicilio.direccion.substring(informacionEnvio.envioDomicilio.direccion.indexOf(\"#\") + 1, informacionEnvio.envioDomicilio.direccion.indexOf(\"BARRIO\")).trim().split('-').filter((i: any) => i)\r\n numero = numeroIni[0]\r\n numero2 = numeroIni[1]\r\n }\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion.toLocaleLowerCase().replace(/\\b\\w/g, first => first.toLocaleUpperCase()),\r\n tipoNumero: tipoNumero,\r\n numero: numero,\r\n numero2: numero2,\r\n barrio: barrio,\r\n adicional: adicional,\r\n tipoOtroNumero: informacionEnvio.envioDomicilio.direccion.includes(\"BARRIO\") ?\r\n informacionEnvio.envioDomicilio.direccion.substring(0, informacionEnvio.envioDomicilio.direccion.indexOf(\"BARRIO\")) :\r\n informacionEnvio.envioDomicilio.direccion\r\n }\r\n\r\n entrega = {\r\n departamento: +informacionEnvio.envioDomicilio.departamento,\r\n municipio: +informacionEnvio.envioDomicilio.municipio,\r\n celular: informacionEnvio.envioDomicilio.celular,\r\n indicativo: telefono.indicativo,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n objetoDireccion: objetoDireccion,\r\n direccionCompleta: objetoDireccion.tipoOtroNumero,\r\n tipo: \"ENVIO\"\r\n }\r\n }\r\n\r\n this.saveLocalStorage(\"entrega\", JSON.stringify(entrega))\r\n this.logger.log(\"SaveEntregaOrdenPedidoData\", entrega)\r\n }\r\n\r\n SaveContactoOrdenPedidoData(contactoTecnico: any) {\r\n this.logger.log(\"SaveContactoOrdenPedidoData-contactoTecnico\", contactoTecnico)\r\n var telefono = contactoTecnico.telefono && contactoTecnico.telefono.length > 0 ?\r\n contactoTecnico.telefono[0] : {\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }\r\n let contacto = {\r\n tipo: contactoTecnico.tipoIdentificacion,\r\n numero: contactoTecnico.numeroIdentificacion ?? '',\r\n primerNombre: contactoTecnico.primerNombre ?? '',\r\n segundoNombre: contactoTecnico.segundoNombre ?? '',\r\n primerApellido: contactoTecnico.primerApellido ?? '',\r\n segundoApellido: contactoTecnico.segundoApellido ?? '',\r\n indicativo: telefono.indicativo,\r\n telefono: telefono.telefono,\r\n extension: telefono.extension,\r\n celular: contactoTecnico.celular,\r\n correo: contactoTecnico.correoElectronico.toUpperCase(),\r\n correo1: contactoTecnico.correoElectronico.toUpperCase(),\r\n contactoOtro: false\r\n }\r\n this.logger.log(\"SaveContactoOrdenPedidoData\", contacto)\r\n this.saveLocalStorage(\"contacto\", JSON.stringify(contacto))\r\n }\r\n\r\n getBrowserName() {\r\n const agent = window.navigator.userAgent.toLowerCase()\r\n switch (true) {\r\n case agent.indexOf('edge') > -1:\r\n return 'edge';\r\n case agent.indexOf('opr') > -1 && !!(window).opr:\r\n return 'opera';\r\n case agent.indexOf('chrome') > -1 && !!(window).chrome:\r\n return 'chrome';\r\n case agent.indexOf('trident') > -1:\r\n return 'ie';\r\n case agent.indexOf('firefox') > -1:\r\n return 'firefox';\r\n case agent.indexOf('safari') > -1:\r\n return 'safari';\r\n default:\r\n return 'other';\r\n }\r\n }\r\n\r\n obtenerIpValor() {\r\n this.obtenerIp()\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta obtenerIp\", res)\r\n this.ip = res.ip\r\n this.reintentosIp = 0;\r\n },\r\n error: (error: any) => {\r\n console.error('Error en subscriber obtenerIp', error)\r\n this.ip = \"0.0.0.0\"\r\n }\r\n });\r\n }\r\n\r\n obtenerParametros() {\r\n return this.ssps.parametros()\r\n }\r\n\r\n //TODO:implementacion de taps portal interno unica pestaña\r\n setupCommunication(): void {\r\n this.channel.onmessage = (event) => {\r\n if (event.data === 'new-tap?') {\r\n this.channel.postMessage(\"not-new-tap\");\r\n this.alert.showOpenTabs('Se acaba de abrir otra pestaña de este sitio');\r\n setTimeout(() => {\r\n this.alert.closeTabs()\r\n this.alert.showOpenTabs('Se acaba de abrir otra pestaña de este sitio');\r\n }, 100);\r\n }\r\n if (event.data === \"not-new-tap\") {\r\n //alert(\"An instance of this site is already running\");\r\n this.alert.showOpenTabs('Ya se está ejecutando una instancia de este sitio');\r\n }\r\n };\r\n }\r\n\r\n checkIfFirstTab(): void {\r\n this.channel.postMessage('new-tap?');\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LogService } from '../../domain/servicios/log.service'\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { Observable } from 'rxjs';\r\nimport { SuccessResponse } from '../../domain/interfaces/response-base.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PreInvoiceAdapterService {\r\n\r\n httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n urlRequest = urlRequest;\r\n\r\n constructor(private http: HttpClient, private logger: LogService) { }\r\n\r\n validateLink(url: string): Observable {\r\n this.logger.log(\"validar-link\", url);\r\n return this.http.get(this.urlRequest.VALIDARLINKPREFACTURA, this.httpOptions);\r\n }\r\n\r\n acceptPreInvoice(body: any): Observable {\r\n this.logger.log(\"aprobar\", body);\r\n return this.http.post(this.urlRequest.APROBARPREFACTURA, body, this.httpOptions);\r\n }\r\n\r\n declinePreInvoice(body: any): Observable {\r\n this.logger.log(\"rechazar\", body);\r\n return this.http.post(this.urlRequest.RECHAZARPREFACTURA, body, this.httpOptions);\r\n }\r\n}\r\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { urlRequest, tokenSolicitud } from 'src/assets/config/app.conf';\r\nimport { map, mergeMap } from 'rxjs';\r\nimport { LogService } from '../../domain/servicios/log.service'\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SspsAdapterService {\r\n constructor(private http: HttpClient, private logger: LogService) { }\r\n urlRequest = urlRequest\r\n\r\n historialExt(tipoDocumento: string, numeroDocumento: string, nitEmpresa: string, tipoPersona: string) {\r\n let data = {\r\n tipoDocumento: tipoDocumento,\r\n numeroDocumento: numeroDocumento.trim(),\r\n nitEmpresa,\r\n tipoPersona\r\n }\r\n\r\n this.logger.log(\"historialExt\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.HISTORICO, data, httpOptions);\r\n }\r\n\r\n token() {\r\n let body = new URLSearchParams();\r\n body.set('grant_type', tokenSolicitud.grant_type);\r\n body.set('client_id', tokenSolicitud.client_id);\r\n body.set('scope', tokenSolicitud.scope);\r\n body.set('client_secret', tokenSolicitud.client_secret);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }) };\r\n return this.http.post(this.urlRequest.TOKEN, body.toString(), httpOptions);\r\n }\r\n\r\n //TODO:valida si es persona natural esta reportado\r\n reportadosEx(primerNombre: string, segundoNombre: string, primerApellido: string, segundoApellido: string, documento: string, tipo: string) {\r\n let data = {\r\n nombre: primerNombre.trim() + (segundoNombre !== undefined && segundoNombre !== null && segundoNombre !== \"\" ? \" \" + segundoNombre : \"\").trim(),\r\n apellido: primerApellido.trim() + (segundoApellido !== undefined && segundoApellido !== null && segundoApellido !== \"\" ? \" \" + segundoApellido : \"\").trim(),\r\n tipoDocumento: tipo,\r\n numDocumento: documento.trim(),\r\n }\r\n\r\n this.logger.log(\"reportadosEx\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n //return this.http.post(this.urlRequest.LISTPN, data, httpOptions);\r\n return new Observable(obs => obs.next({\r\n result: false\r\n }));\r\n }\r\n\r\n //TODO:valida si la perona juridica esta reportada\r\n ExtReportPJ(nit: string, codigo: string, razon: string) {\r\n this.logger.log(\"ExtReportPJ\", nit + \"-\" + codigo + \"-\" + razon);\r\n const validation = {\r\n nit: nit.trim(),\r\n digitoVerificador: codigo,\r\n razonSocial: razon.trim()\r\n }\r\n this.logger.log(\"ExtReportPJ\", validation);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n //return this.http.post(this.urlRequest.LISTPJ, validation, httpOptions);\r\n return new Observable(obs => obs.next({\r\n result: false\r\n }));\r\n }\r\n\r\n //TODO:Aeoptacion persona natural\r\n ExtAsepN(primerNombre: string, segundoNombre: string, primerApellido: string, segundoApellido: string, tipo: string, numero: string, terminost: boolean, terminosp: boolean, terminostpro: boolean) {\r\n const validation = {\r\n \"nombre\": primerNombre.trim() + (segundoNombre !== undefined && segundoNombre !== null && segundoNombre !== \"\" ? \" \" + segundoNombre : \"\").trim(),\r\n \"apellido\": primerApellido.trim() + (segundoApellido !== undefined && segundoApellido !== null && segundoApellido !== \"\" ? \" \" + segundoApellido : \"\").trim(),\r\n \"tipoDocumento\": tipo,\r\n \"numDocumento\": numero.trim(),\r\n \"aceptaTerminosCondiciones\": terminosp,\r\n \"versionATC\": \"2.0.8\",\r\n \"polTratamientoDatos\": terminost,\r\n \"versionPTD\": \"2.0.8\",\r\n \"anexoSagrilaf\": terminostpro,\r\n \"versionAnexoSagrilaf\": \"2.0.8\"\r\n }\r\n this.logger.log(\"ExtAsepN\", validation)\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.ASEPTPN, validation, httpOptions);\r\n }\r\n\r\n //TODO:Aseptacion persona juridica\r\n ExtAsepJ(numero: string, codigo: string, razon: string, terminosp: boolean, terminost: boolean, terminostpro: boolean) {\r\n const validation = {\r\n \"nit\": numero.trim(),\r\n \"digitoVerificador\": codigo,\r\n \"razonSocial\": razon.trim(),\r\n \"aceptaTerminosCondiciones\": terminosp,\r\n \"versionATC\": \"2.0.8\",\r\n \"polTratamientoDatos\": terminost,\r\n \"versionPTD\": \"2.0.8\",\r\n \"anexoSagrilaf\": terminostpro,\r\n \"versionAnexoSagrilaf\": \"2.0.8\"\r\n }\r\n this.logger.log(\"ExtAsepJ\", validation);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.ASEPTPJ, validation, httpOptions);\r\n }\r\n\r\n //TODO:Aseptacion persona juridica\r\n preguntasValidacion(nombres: string, apellidos: string, tipo: string, numero: string, fechaExpedicion: string,\r\n municipio: string, departamento: string, ip: string, solicitudTitularId: number) {\r\n const validation = {\r\n \"solicitudTitularId\": solicitudTitularId,\r\n \"tipoDocumento\": tipo,\r\n \"numeroDocumento\": numero.trim(),\r\n \"nombres\": nombres.trim(),\r\n \"apellidos\": apellidos.trim(),\r\n \"codigoDepartamento\": departamento,\r\n \"codigoMunicipio\": municipio,\r\n \"fechaExpedicionDocumento\": fechaExpedicion,\r\n \"ip\": ip\r\n }\r\n this.logger.log(\"preguntasValidacion\", validation);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.VALIDACIONPREGUNTAS, validation, httpOptions);\r\n }\r\n\r\n consultarIntentosValidacion(data: any) {\r\n this.logger.log(\"consultarIntentosValidacion\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.INTENTOSVALIDACION, data, httpOptions);\r\n }\r\n\r\n guardarIntento(data: any) {\r\n this.logger.log(\"guardarIntento\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.GUARDARINTENTOVALIDACION, data, httpOptions);\r\n }\r\n\r\n consultarEstadoEBiometrics(id: any) {\r\n this.logger.log(\"consultarEstadoEBiometrics\", id);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json', 'X-Ebm-Token': environment.accountValidacionFacial }) };\r\n return this.http.get(this.urlRequest.URLEBIOMETRICS + id, httpOptions);\r\n }\r\n\r\n consultarDatosSolicitanteRevocacion(data: any) {\r\n this.logger.log(\"consultarDatosSolicitanteRevocacion\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CONSULTARSOLICITANTEREVOCACION, data, httpOptions);\r\n }\r\n\r\n consultarFactura(data: any) {\r\n this.logger.log(\"consultarFactura\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CONSULTARFACTURA, data, httpOptions);\r\n }\r\n\r\n consultarSolicitudesEstadoTramite(data: any) {\r\n this.logger.log(\"consultarSolicitudesEstadoTramite\", data);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CONSULTARSOLICITUDESESTADOTRAMITE, data, httpOptions);\r\n }\r\n\r\n respuestasValidacion(body: any) {\r\n this.logger.log(\"respuestasValidacion\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.VALIDACIONRESPUESTAS, body, httpOptions);\r\n }\r\n\r\n echoTest(url: string) {\r\n this.logger.log(\"echoTest\", url);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n consultarCertificadosRevocacion(identificacion: any) {\r\n this.logger.log(\"consultarCertificadosRevocacion\", identificacion);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CERTIFICADOSREVOCACION, identificacion, httpOptions);\r\n }\r\n\r\n detalleCertificadoRevocacion(username: any) {\r\n this.logger.log(\"detalleCertificadoRevocacion\", username);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.DETALLECERTIFICADOREVOCACION, username, httpOptions);\r\n }\r\n\r\n revocarCertificado(body: any) {\r\n this.logger.log(\"revocarCertificado\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.REVOCARCERTIFICADO, body, httpOptions);\r\n }\r\n\r\n consultarMotivosRechazo() {\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.get(this.urlRequest.MOTIVOSRECHAZOREVOCACION, httpOptions);\r\n }\r\n\r\n formularioContacto(request: any) {\r\n this.logger.log(\"formularioContacto\", request);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.FORMUARIOCONTACTO, request, httpOptions);\r\n }\r\n\r\n obtenerCertificado(request: any) {\r\n this.logger.log(\"obtenerCertificado\", request);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.OBTENERCERTIFICADO, request, httpOptions);\r\n }\r\n\r\n unirLlaves(request: any) {\r\n this.logger.log(\"unirLlaves\", request);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.UNIRLLAVES, request, httpOptions);\r\n }\r\n\r\n obtenerIp() {\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), mode: 'cors' };\r\n //return this.http.get(this.urlRequest.OBTENERIP, httpOptions);\r\n return new Observable(obs => obs.next({\r\n ip: \"0.0.0.0\"\r\n }));\r\n }\r\n\r\n crearOrdenPedidoPN(body: any) {\r\n this.logger.log(\"crearOrdenPedidoPN\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CREARORDENPN, body, httpOptions);\r\n }\r\n\r\n consultarUltimaOrdenPedido(identificacion: any) {\r\n this.logger.log(\"consultarUltimaOrdenPedido\", identificacion);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLCONSULTARULTIMAORDEN, identificacion, httpOptions);\r\n }\r\n\r\n crearOrdenPedidoPJ(body: any) {\r\n this.logger.log(\"crearOrdenPedidoPJ\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.CREARORDENPJ, body, httpOptions);\r\n }\r\n\r\n generarRequestJuridico(body: any) {\r\n this.logger.log(\"generarRequestJuridicoo\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.GENERARREQUESTJURIDICO, body, httpOptions);\r\n }\r\n\r\n generarRequestLlave(body: any) {\r\n this.logger.log(\"generarRequestLlave\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.GENERARREQUESTLLAVE, body, httpOptions);\r\n }\r\n\r\n solicitarOTP(body: any) {\r\n this.logger.log(\"solicitarOTP\", body);\r\n if (isDevMode()) {\r\n this.logger.log(\"solicitarOTP devMode\", isDevMode());\r\n return new Observable(obs => obs.next({\r\n \"OTPSha256\": \"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\",\r\n \"statusCode\": 200\r\n }));\r\n }\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'x-sckey-token': `${environment.tokenOtp}`\r\n })\r\n };\r\n return this.http.post(this.urlRequest.OTPREQUEST, body, httpOptions);\r\n }\r\n\r\n actualizarOrdenPedidoPN(solicitudId: any, body: any) {\r\n body.solicitudId = solicitudId\r\n this.logger.log(\"actualizarOrdenPedidoPN\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.put(this.urlRequest.ACTUALIZARORDENPN, body, httpOptions);\r\n }\r\n\r\n actualizarOrdenPedidoPJ(ordenPedidoId: any, body: any) {\r\n body.solicitudId = ordenPedidoId\r\n this.logger.log(\"actualizarOrdenPedidoPJ\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.put(this.urlRequest.ACTUALIZARORDENPJ, body, httpOptions);\r\n }\r\n\r\n consultarOrdenPedido(ordenPedidoId: any) {\r\n this.logger.log(\"consultarOrdenPedido\", ordenPedidoId);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLCONSULTARORDEN, ordenPedidoId, httpOptions);\r\n }\r\n\r\n consultarUrlPSE(body: any) {\r\n this.logger.log(\"consultarUrlPSE\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLPSE, body, httpOptions);\r\n }\r\n\r\n consultarEstadoPagoPSE(body: any) {\r\n this.logger.log(\"consultarEstadoPagoPSE\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLESTADOPSE, body, httpOptions);\r\n }\r\n\r\n descargarOrdenPago(solicitudId: any) {\r\n this.logger.log(\"descargarOrdenPago\", solicitudId);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.DESCARGARORDENPAGO, solicitudId, httpOptions);\r\n }\r\n\r\n cargarComprobantePago(solicitudId: any, body: any) {\r\n body.solicitudId = solicitudId\r\n this.logger.log(\"cargarComprobantePago\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLCARGARORDENPAGO, body, httpOptions);\r\n }\r\n\r\n aplicarCodigoDescuento(body: any) {\r\n this.logger.log(\"aplicarCodigoDescuento\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLAPLICARCODIGODESCUENTO, body, httpOptions);\r\n }\r\n\r\n validarCodigoDescuento(body: any) {\r\n this.logger.log(\"validarCodigoDescuento\", body);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLVALIDARCODIGODESCUENTO, body, httpOptions);\r\n }\r\n\r\n eliminarCodigoDescuento(ordenPedidoId: any, cupon: any) {\r\n let body = {\r\n ordenPedidoId,\r\n cupon\r\n }\r\n this.logger.log(\"eliminarCodigoDescuento\", ordenPedidoId + \"-\" + cupon);\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post(this.urlRequest.URLELIMINARCODIGODESCUENTO, body, httpOptions);\r\n }\r\n\r\n extCapcha(items: string) {\r\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n const token = { response: items }\r\n return this.http.post(this.urlRequest.CAPCHA, token, httpOptions)\r\n\r\n // return new Observable(obs => obs.next({\r\n // code: 200\r\n // }));\r\n }\r\n\r\n politicaExt() {\r\n return this.http.get(\"../../../assets/json/politicas.json\");\r\n }\r\n\r\n tiposDireccionExt() {\r\n return this.http.get(\"../../../assets/json/tiposDireccion.json\");\r\n }\r\n\r\n tiposRegimenTributarioExt() {\r\n return this.http.get(\"../../../assets/json/tiposRegimenTributario.json\");\r\n }\r\n\r\n cargarProfesionesExt() {\r\n return this.http.get(\"../../../assets/json/profesiones.json\");\r\n }\r\n\r\n tiposCapitalExt() {\r\n return this.http.get(\"../../../assets/json/tiposCapital.json\");\r\n }\r\n\r\n indicativosExt() {\r\n return this.http.get(\"../../../assets/json/indicativos.json\");\r\n }\r\n\r\n preciosEx() {\r\n //return this.http.get(`${ this.url}/precios`);\r\n return this.http.get(\"../../../assets/json/precios.json\");\r\n }\r\n usosEx() {\r\n //return this.http.get(`${ this.url}/precios`);\r\n return this.http.get(\"../../../assets/json/usos.json\");\r\n }\r\n\r\n preciosReposicionEx() {\r\n //return this.http.get(`${ this.url}/precios`);\r\n return this.http.get(\"../../../assets/json/preciosReposicion.json\");\r\n }\r\n\r\n departamentosEx() {\r\n return this.http.get(\"../../../assets/json/Tablas_Parametricas.json\");\r\n }\r\n\r\n parametros() {\r\n return this.http.get(\"../../../assets/json/parametros.json\");\r\n }\r\n\r\n //TODO:ver preguntas\r\n EXshowTask(person: string) {\r\n return this.http.get('../../../assets/json/preguntas.json')\r\n .pipe(\r\n map((res: any) => res.preguntas),\r\n mergeMap((preguntas: any[]) => preguntas.map((ele: any) => ele[person]))\r\n )\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from '../../../domain/servicios/componentes.service';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\ndeclare var window: any;\r\n\r\n@Component({\r\n selector: 'app-certimail-home',\r\n templateUrl: './certimail-home.component.html',\r\n styleUrls: ['./certimail-home.component.css']\r\n})\r\nexport class CertimailHomeComponent implements OnInit {\r\n\r\n constructor(private router:Router,\r\n private componentesService:ComponentesService,\r\n private alert:AlertsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.alert.showFiels();\r\n //this.alert.showSssps();\r\n }\r\n\r\n\r\n\r\n /*cerra Modal*/ \r\n abrirmodal() {\r\n \r\n this.alert.showFiels();\r\n // this.componentesService.abrirmodal(); \r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-descarga-certificado-pfx',\r\n templateUrl: './descarga-certificado-pfx.component.html',\r\n styleUrls: ['./descarga-certificado-pfx.component.css']\r\n})\r\nexport class DescargaCertificadoPfxComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService) { }\r\n\r\n ngOnInit(): void {\r\n this.alert.showFieldsDescargaPfx();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-descarga-certificado',\r\n templateUrl: './descarga-certificado.component.html',\r\n styleUrls: ['./descarga-certificado.component.css']\r\n})\r\nexport class DescargaCertificadoComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService,\r\n private ssps: SspsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.alert.showFieldsDescargaCertificado();\r\n }\r\n else {\r\n let mensaje = \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-descargar-factura',\r\n templateUrl: './descargar-factura.component.html',\r\n styleUrls: ['./descargar-factura.component.css']\r\n})\r\nexport class DescargarFacturaComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n this.alert.closesFiels()\r\n this.alert.showFieldsDescargarFactura();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-estado-tramite',\r\n templateUrl: './estado-tramite.component.html',\r\n styleUrls: ['./estado-tramite.component.css']\r\n})\r\nexport class EstadoTramiteComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n this.alert.closesFiels()\r\n this.alert.showFieldsEstadoTramite();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-prefactura',\r\n templateUrl: './prefactura.component.html',\r\n styleUrls: ['./prefactura.component.css']\r\n})\r\nexport class PrefacturaComponent implements OnInit {\r\n\r\n preInvoice: any = {\r\n idPrefactura: 0,\r\n periodo: ''\r\n };\r\n\r\n data: any;\r\n\r\n constructor(private alert: AlertsService,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParamMap.subscribe(params => {\r\n this.preInvoice.idPrefactura = params.get('id');\r\n this.preInvoice.periodo = params.get('periodo');\r\n });\r\n\r\n this.data = {\r\n mode: 'accept',\r\n title: 'Solicitud confirmación del contenido',\r\n content: `Gracias por revisar la prefactura correspondiente al periodo ${this.preInvoice.periodo}. Elige una opción para continuar:\r\n
Aceptar: Si estás de acuerdo y podemos proceder con la emisión de la factura.\r\n
Rechazar: Si necesitas hacer ajustes. Indícanos los cambios para realizar las modificaciones necesarias.\r\n
Nota: Tu decisión se registrará automáticamente y notificaremos al equipo correspondiente.`\r\n };\r\n\r\n this.alert.showAceptarPrefactura(this.preInvoice, this.data);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-revocar-certificado',\r\n templateUrl: './revocar-certificado.component.html',\r\n styleUrls: ['./revocar-certificado.component.css']\r\n})\r\nexport class RevocarCertificadoComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n this.alert.closesFiels()\r\n this.alert.showFieldsRevocarCertificado();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-validacion-identidad',\r\n templateUrl: './validacion-identidad.component.html',\r\n styleUrls: ['./validacion-identidad.component.css']\r\n})\r\nexport class ValidacionIdentidadComponent implements OnInit {\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService,\r\n private activateRoute: ActivatedRoute, private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n const origen = this.activateRoute.snapshot.queryParamMap.get('origen');\r\n const boton = this.activateRoute.snapshot.queryParamMap.get('boton');\r\n this.router.navigate([], {\r\n queryParams: {\r\n 'origen': null,\r\n 'boton': null\r\n },\r\n queryParamsHandling: 'merge'\r\n })\r\n if(origen && boton){\r\n this.alert.showFieldsValidacionIdentidad(origen, boton);\r\n }\r\n else{\r\n this.alert.showFieldsValidacionIdentidad(\"\", null);\r\n } \r\n }\r\n else {\r\n this.alert.showAlertaSalirMensajeValidarIdentidad(false, \"\")\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-alerta-salir-mensaje-valida-identidad',\r\n templateUrl: './alerta-salir-mensaje-valida-identidad.component.html',\r\n styleUrls: ['./alerta-salir-mensaje-valida-identidad.component.css']\r\n})\r\nexport class AlertaSalirMensajeValidaIdentidadComponent implements OnInit {\r\n @Input() public redirigirValida: any\r\n @Input() public urlRedireccionFlujoValida: any\r\n mensaje = \"Recuerda que realizar el proceso de validación de identidad, es un paso obligatorio para realizar la compra de tu certificado digital.\"\r\n constructor(private alert: AlertsService,\r\n private ssps: SspsService,\r\n private router: Router,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n if (this.urlRedireccionFlujoValida === \"revocar-certificado\") {\r\n this.mensaje = \"Recuerda que realizar el proceso de validación de identidad, es un paso obligatorio para realizar la revocación de tu certificado digital.\"\r\n }\r\n }\r\n cerrar() {\r\n this.alert.closesshowReporter()\r\n if (this.urlRedireccionFlujoValida !== \"\") {\r\n this.router.navigate([this.urlRedireccionFlujoValida]);\r\n }\r\n else {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\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 {{mensaje}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-alerta-salir-valida-identidad',\r\n templateUrl: './alerta-salir-valida-identidad.component.html',\r\n styleUrls: ['./alerta-salir-valida-identidad.component.css']\r\n})\r\nexport class AlertaSalirValidaIdentidadComponent implements OnInit {\r\n @Input() public mensajeSalir: any\r\n @Input() public cancelarValidacionFacial: any\r\n @Input() public usuarioValida: any\r\n @Input() public vista: any\r\n @Input() public urlRedireccionFlujoValida: any\r\n @Input() public botonFinalizaIdentidad: any\r\n constructor(private alert: AlertsService,\r\n private ssps: SspsService,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //TODO:cerrar modal\r\n enviarNotificacion() {\r\n this.activeModal.close(false);\r\n //Llamar servicio de notificación\r\n //Mostrar alerta de revisar correo\r\n if (this.cancelarValidacionFacial) {\r\n //Consumir servicio de intento\r\n if (this.usuarioValida !== null) {\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\")\r\n this.guardarIntentoFacial(\"Operación cancelada por usuario\", false)\r\n }\r\n }\r\n else {\r\n this.alert.showAlertaSalirMensajeValidarIdentidad(this.urlRedireccionFlujoValida !== null &&\r\n this.urlRedireccionFlujoValida !== \"\", this.urlRedireccionFlujoValida)\r\n }\r\n }\r\n\r\n volverValidaIdentidad() {\r\n this.activeModal.close(false);\r\n if (this.vista === \"form\") {\r\n this.alert.showFieldsValidacionIdentidad(this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad)\r\n }\r\n else {\r\n this.alert.showAlertaValidarIdentidad(false)\r\n }\r\n }\r\n\r\n guardarIntentoFacial(respuestaServicio: any, exitoso: boolean) {\r\n let data = {\r\n numeroDocumento: this.usuarioValida.numero,\r\n fuente: \"FACIAL\",\r\n solicitudTitularId: this.usuarioValida.idSolicitudTitular,\r\n exitoso: exitoso,\r\n respuesta: respuestaServicio\r\n }\r\n this.ssps.guardarIntento(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.alert.closesSpiner()\r\n this.alert.showAlertaSalirMensajeValidarIdentidad(true, this.urlRedireccionFlujoValida)\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber guardarIntento', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.guardarIntentoFacial(respuestaServicio, exitoso);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber preguntasValidacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\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

Salir

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

\r\n ¿Seguro que quieres salir?\r\n
\r\n {{mensajeSalir}}\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 { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { Router } from '@angular/router';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-alerta-valida-identidad',\r\n templateUrl: './alerta-valida-identidad.component.html',\r\n styleUrls: ['./alerta-valida-identidad.component.css']\r\n})\r\nexport class AlertaValidaIdentidadComponent implements OnInit {\r\n @Input() public redirigirValidaIdentidad: any\r\n constructor(private alert: AlertsService,\r\n private router: Router,\r\n private ssps: SspsService,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n if (this.redirigirValidaIdentidad) {\r\n this.validarIdentidad()\r\n }\r\n }\r\n\r\n //TODO:cerrar modal\r\n noValidar() {\r\n this.activeModal.close(false);\r\n this.alert.showAlertaSalirValidarIdentidad(\"\", false, null, \"alerta\", this.router.url, null)\r\n }\r\n validarIdentidad() {\r\n this.activeModal.close(false);\r\n this.router.navigate(['validacion-identidad'], {\r\n queryParams: {\r\n 'origen': \"/?id=\" + JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!),\r\n 'boton': \"Regresar\"\r\n },\r\n queryParamsHandling: 'merge'\r\n })\r\n \r\n //this.router.navigate(['validacion-identidad']);\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n

Validación de identidad

\r\n
\r\n

\r\n Apreciado usuario, por tu seguridad y la del proceso, queremos validar tu identidad.\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { LogService } from 'src/app/domain/servicios/log.service'\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-barra',\r\n templateUrl: './barra.component.html',\r\n styleUrls: ['./barra.component.css']\r\n})\r\nexport class BarraComponent implements OnInit {\r\n compras: any = {};\r\n pago: any = {};\r\n constructor(private componente: ComponentesService, private logger: LogService,\r\n private ssps: SspsService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.ssps.getLocalStorage('usuario')){\r\n this.compras = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n } \r\n if(this.ssps.getLocalStorage('pago')){\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!);\r\n } \r\n }\r\n\r\n documentos() {\r\n return this.compras.proceso >= 0 ? 'iconos2' : 'bordes';\r\n }\r\n\r\n pagos() {\r\n return this.compras.proceso >= 1 ? 'iconos2' : 'bordes';\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 { JsonpInterceptor } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-confirmacion-alerta',\r\n templateUrl: './confirmacion-alerta.component.html',\r\n styleUrls: ['./confirmacion-alerta.component.css']\r\n})\r\nexport class ConfirmacionAlertaComponent implements OnInit {\r\n @Input() public mensaje: any\r\n @Input() public titulo: any\r\n @Input() public tituloBoton: any\r\n @Input() public tituloBoton2: any\r\n\r\n constructor(private alert: AlertsService,\r\n private router: Router,\r\n private componets: ComponentesService,\r\n private ssps: SspsService,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.activeModal.close(false);\r\n }\r\n\r\n confirmar() {\r\n this.activeModal.close(true);\r\n }\r\n\r\n cancelar() {\r\n this.activeModal.close(false);\r\n }\r\n}\r\n","
\r\n

{{titulo}}

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

{{mensaje}}\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 { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.css']\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n @Input() public redirigirWeb: any\r\n constructor(private alert:AlertsService,\r\n private router:Router,\r\n private componets:ComponentesService,\r\n private ssps: SspsService,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n //TODO:cerrar modal\r\n close(){\r\n this.activeModal.close(false);\r\n if(this.redirigirWeb){\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n } \r\n }\r\n \r\n //TODO:se reliza configuracion de permisos\r\n naviGation(){\r\n this.activeModal.close(false);\r\n this.alert.closesFiels();\r\n // this.router.navigate(['/contacto']);\r\n //this.componets.emitircambio(\"showmenu\");\r\n this.alert.showContact(this.redirigirWeb);\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n
\r\n

señor usuario

\r\n

En el momento presentamos fallas técnicas, lo invitamos a diligenciar el siguiente formulario para que un agente comercial pueda contactarlo, en el menor tiempo posible.\r\n

\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from '../../../domain/servicios/componentes.service';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\n\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'app-contactenos',\r\n templateUrl: './contactenos.component.html',\r\n styleUrls: ['./contactenos.component.css']\r\n})\r\nexport class ContactenosComponent implements OnInit {\r\n\r\n @ViewChild('inputRefNombres')\r\n inputRefNombres!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefApellidos')\r\n inputRefApellidos!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n @ViewChild('inputRefRazonSocial')\r\n inputRefRazonSocial!: { nativeElement: any; };\r\n @ViewChild('inputRefDisponibilidad')\r\n inputRefDisponibilidad!: { nativeElement: any; };\r\n\r\n @ViewChild('margen', { read: ElementRef, static: false }) margen!: ElementRef;\r\n @ViewChild('content', { read: ElementRef, static: false }) content!: any;\r\n formaForm!: FormGroup;\r\n contactos: any;\r\n tipoCliente: string = '';\r\n tamano!: number;\r\n comas: boolean = false;\r\n quitar: any;\r\n closeResult: string = '';\r\n @Input() public redirigir: any\r\n usuario: any\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private alert: AlertsService,\r\n private modalService: NgbModal,\r\n private changeDetector: ChangeDetectorRef,\r\n private ssps: SspsService,\r\n private logger: LogService, \r\n private el: ElementRef\r\n ) {\r\n\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required,\r\n // Validators.pattern('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*')\r\n ]],\r\n nombre: ['', [Validators.required,\r\n Validators.maxLength(60),\r\n Validators.pattern(\"[a-zA-Z ]{2,60}\")\r\n ]],\r\n apellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern(\"[a-zA-Z ]{2,60}\")\r\n ]],\r\n empresa: ['', [Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(60),\r\n Validators.pattern(\"[a-zA-Z ]{2,60}\")]],\r\n\r\n correo: ['', [Validators.required,\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n disponibilidad: ['', [\r\n Validators.required,\r\n Validators.minLength(5),\r\n ]],\r\n terminosp: [false, Validators.requiredTrue],\r\n terminost: [false, Validators.requiredTrue],\r\n terminostpro: [false, Validators.requiredTrue],\r\n }, {\r\n validators: [this.componentesService.codigonit('tipo', 'numero')\r\n ]\r\n });\r\n\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.tipoCliente = this.ssps.getLocalStorage('tipocliente')!;\r\n if (this.tipoCliente == \"juridica\") {\r\n // this.formaForm.get('nombre').clearValidators();\r\n // this.formaForm.get('apellido').clearValidators();\r\n this.formaForm.controls['nombre'].clearValidators();\r\n this.formaForm.controls['nombre'].updateValueAndValidity();\r\n\r\n this.formaForm.controls['apellido'].clearValidators();\r\n this.formaForm.controls['apellido'].updateValueAndValidity();\r\n\r\n this.formaForm.removeControl('nombre');\r\n this.formaForm.removeControl('apellido');\r\n } else if (this.tipoCliente == \"natural\") {\r\n this.formaForm.controls['empresa'].clearValidators();\r\n this.formaForm.controls['empresa'].updateValueAndValidity();\r\n\r\n this.formaForm.removeControl('empresa');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.setOnChangesInputs()\r\n }\r\n\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"nombre\")?.valueChanges.subscribe(val => {\r\n if (this.inputRefNombres) {\r\n const elRef = this.inputRefNombres.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"nombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"apellido\")?.valueChanges.subscribe(val => {\r\n if (this.inputRefApellidos) {\r\n const elRef = this.inputRefApellidos.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"apellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numero\")?.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero) {\r\n const elRef = this.inputRefNumero.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"empresa\")?.valueChanges.subscribe(val => {\r\n if (this.inputRefRazonSocial) {\r\n const elRef = this.inputRefRazonSocial?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"empresa\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"disponibilidad\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefDisponibilidad) {\r\n const elRef = this.inputRefDisponibilidad?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"disponibilidad\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n onResize(event: any) {\r\n this.tamano = event.target.innerWidth;\r\n\r\n if (this.tamano <= 984) {\r\n this.margen.nativeElement.classList.remove('row-margenes');\r\n } else {\r\n this.margen.nativeElement.classList.add('row-margenes');\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n //implementacion de validacion de comas\r\n noPuntoComa(event: any) {\r\n\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n this.usuario.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n //this.contactos.show();\r\n //Llamar servicio de formularioContacto\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n let { nombre, apellido, numero, tipo, terminosp, terminost, terminostpro, empresa, correo, celular, disponibilidad } = this.formaForm.value;\r\n let request = {\r\n nombresRazonSocial: this.tipoCliente === \"natural\" ? nombre + \" \" + apellido : empresa,\r\n tipoIdentificacion: tipo,\r\n numeroIdentificacion: numero,\r\n email: correo,\r\n contacto: celular,\r\n disponibilidadHoraria: disponibilidad,\r\n polTratamientoDatos: terminost,\r\n aceptaTerminosCondiciones: terminosp,\r\n anexoSagrilaf: terminostpro,\r\n codigoProducto: env.productoFormularioContacto\r\n }\r\n this.ssps.formularioContacto(request)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.alert.closesSpiner()\r\n this.logger.log(\"respuesta formularioContacto\", res)\r\n this.alert.closeContact();\r\n this.alert.showAlert(this.redirigir);\r\n },\r\n error: (error: any) => {\r\n this.alert.closesSpiner()\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n console.error('Error en subscriber formularioContacto', error)\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n })\r\n\r\n }\r\n\r\n /*abrir modal*/\r\n\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n if (this.redirigir) {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n else {\r\n this.alert.closeContact();\r\n this.alert.showFiels();\r\n }\r\n }\r\n\r\n //TODO:se reliza configuracion de permisos\r\n\r\n\r\n}\r\n","
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n

Estás a un clic de disfrutar los beneficios

\r\n

\r\n\r\n Queremos brindarte una solución que se ajuste perfectamente a los objetivos de tu empresa. Compártenos por favor\r\n tus datos personales para que uno de nuestros consultores especializados pueda contactarse contigo durante las\r\n próximas 24 horas.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un tipo de documento
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un tipo de documento
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Identificación no válido!
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
Nombres no son válidos, ingresar solo letras
\r\n
\r\n
\r\n \r\n \r\n
Apellidos no son válidos, ingresar solo letras
\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
Empresa no válida
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Correo no válida
\r\n\r\n
\r\n
\r\n \r\n \r\n
Celular no válido, ingresar número de 10 dígitos
\r\n
El campo\r\n no\r\n puede tener comas
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Disponibilidad no puede ser vacia y más de 5 carácteres
\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
","import { JsonpInterceptor } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-descarga-certificado-modal',\r\n templateUrl: './descarga-certificado-modal.component.html',\r\n styleUrls: ['./descarga-certificado-modal.component.css']\r\n})\r\nexport class DescargaCertificadoModalComponent implements OnInit {\r\n mensaje: any = \"\"\r\n @Input() public redirigir: any\r\n generarpfx = false\r\n titulo = \"¡Proceso exitoso!\"\r\n certificado: any = {}\r\n botonCerrar = false\r\n constructor(private alert: AlertsService,\r\n private router: Router,\r\n private componets: ComponentesService,\r\n private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage(\"certificado\")) {\r\n this.certificado = JSON.parse(this.ssps.getLocalStorage('certificado')!)\r\n this.mensaje = this.certificado.mensaje\r\n }\r\n if (this.ssps.getLocalStorage(\"redirigirError\")) {\r\n this.redirigir = JSON.parse(this.ssps.getLocalStorage(\"redirigirError\")!)\r\n }\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.alert.closesshowReporter();\r\n localStorage.clear()\r\n if (this.redirigir) {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n window.location.replace(externalUrl);\r\n }\r\n }\r\n\r\n descargarArchivo() {\r\n const linkSource =\r\n (this.certificado.tipo === \"PFX\" ? 'data:application/x-pkcs12;base64,' : \r\n 'data:application/pkix-cert;base64,'\r\n ) +\r\n this.certificado.certificadoB64;\r\n const linkDescarga = document.createElement('a');\r\n const archivo = this.certificado.nombreArchivo;\r\n\r\n linkDescarga.href = linkSource;\r\n linkDescarga.download = archivo;\r\n linkDescarga.click();\r\n linkDescarga.remove()\r\n this.generarpfx = this.certificado.tipo !== \"PFX\"\r\n this.botonCerrar = this.certificado.tipo === \"PFX\"\r\n this.redirigir = this.certificado.tipo === \"PFX\"\r\n }\r\n\r\n generarPfxModal() {\r\n this.alert.closesshowReporter();\r\n this.router.navigate(['descarga-pfx']);\r\n }\r\n}\r\n","
\r\n

{{titulo}}

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

{{mensaje}}\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
","import { Component, OnInit, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { environment as env, environment } from \"src/environments/environment\"\r\nimport { NgOtpInputComponent, NgOtpInputConfig } from 'ng-otp-input';\r\n\r\n@Component({\r\n selector: 'app-descarga-certificado',\r\n templateUrl: './descarga-certificado.component.html',\r\n styleUrls: ['./descarga-certificado.component.css']\r\n})\r\nexport class DescargaCertificadoComponent implements OnInit {\r\n @ViewChild('inputRefNombres')\r\n inputRefNombres!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefApellidos')\r\n inputRefApellidos!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n\r\n formaForm!: FormGroup;\r\n ordenPedidoId: any = \"\"\r\n usosCertificados: any[] = [];\r\n usuarioDescarga: any = {\r\n solicitudId: 0,\r\n tipo: '',\r\n numero: '',\r\n nombres: '',\r\n apellidos: '',\r\n mecanismo: '',\r\n existeCSR: false,\r\n usoCertificado: -1,\r\n otroUso: '',\r\n uso: ''\r\n };\r\n usoGuardado = false\r\n certificado: any = {\r\n }\r\n\r\n otpValidado = false\r\n correoTitularOfuscado = \"\"\r\n correoSolicitante = \"\"\r\n tituloBotonOTP = \"Enviar código\"\r\n otpEnviado = false\r\n reenviarOtp = false\r\n otpValidacion = \"\"\r\n otp: string = \"\";\r\n config: NgOtpInputConfig = {\r\n allowNumbersOnly: true,\r\n length: 4,\r\n isPasswordInput: false,\r\n disableAutoFocus: false,\r\n placeholder: ''\r\n };\r\n display: any;\r\n timer: any;\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n private logger: LogService,\r\n private el: ElementRef\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n contrasena: ['', [\r\n Validators.minLength(8),\r\n Validators.maxLength(12),\r\n Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[$@$!%*?&_-])[A-Za-zd$@$!%*?&_-].{8,15}')]],\r\n contrasenaConfirmacion: ['', [\r\n Validators.minLength(8),\r\n Validators.maxLength(12),\r\n Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[$@$!%*?&_-])[A-Za-zd$@$!%*?&_-].{8,15}')]]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.alert.closesSpiner()\r\n if (this.ssps.getLocalStorage(\"ordenPedidoId\")) {\r\n this.ordenPedidoId = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.usuarioDescarga.solicitudId = usuario.idTitular\r\n this.usuarioDescarga.tipo = usuario.tipo === 'NI' ? 'NIT/RUT' : usuario.tipo\r\n this.usuarioDescarga.numero = usuario.numero\r\n this.usuarioDescarga.mecanismo = usuario.dispo\r\n this.correoSolicitante = usuario.correo\r\n this.logger.log(\"ngOnInit descargarCertificado\", usuario)\r\n if (usuario.dispo === \"PKCS#10\") {\r\n this.usos();\r\n this.usuarioDescarga.nombreCompleto = usuario.razon !== undefined && usuario.razon !== null &&\r\n usuario.razon !== \"\" ? usuario.razon : ((usuario.primerNombre ?? '') + (usuario.segundoNombre !== null &&\r\n usuario.segundoNombre !== undefined && usuario.segundoNombre !== \"\" ?\r\n \" \" + usuario.segundoNombre : \"\") + (usuario.primerApellido ?? '') + (usuario.segundoApellido !== null &&\r\n usuario.segundoApellido !== undefined && usuario.segundoApellido !== \"\" ?\r\n \" \" + usuario.segundoApellido : \"\"))\r\n this.removeValidatorsContrasena()\r\n }\r\n else if (this.ssps.getLocalStorage('solicitante')! !== null &&\r\n this.ssps.getLocalStorage('solicitante')! !== undefined) {\r\n var solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n\r\n this.usuarioDescarga.tipo = solicitante.tipo\r\n this.usuarioDescarga.numero = solicitante.numero\r\n this.usuarioDescarga.nombreCompleto = (solicitante.primerNombre ?? '') + (solicitante.segundoNombre !== null &&\r\n solicitante.segundoNombre !== undefined && solicitante.segundoNombre !== \"\" ?\r\n \" \" + solicitante.segundoNombre : \"\") + (solicitante.primerApellido ?? '') + (solicitante.segundoApellido !== null &&\r\n solicitante.segundoApellido !== undefined && solicitante.segundoApellido !== \"\" ?\r\n \" \" + solicitante.segundoApellido : \"\")\r\n this.correoSolicitante = solicitante.correo\r\n }\r\n else {\r\n this.usuarioDescarga.nombreCompleto = (usuario.primerNombre ?? '') + (usuario.segundoNombre !== null &&\r\n usuario.segundoNombre !== undefined && usuario.segundoNombre !== \"\" ?\r\n \" \" + usuario.segundoNombre : \"\") + (usuario.primerApellido ?? '') + (usuario.segundoApellido !== null &&\r\n usuario.segundoApellido !== undefined && usuario.segundoApellido !== \"\" ?\r\n \" \" + usuario.segundoApellido : \"\")\r\n this.correoSolicitante = usuario.correo\r\n }\r\n\r\n if (this.ssps.getLocalStorage('solicitante')! !== null &&\r\n this.ssps.getLocalStorage('solicitante')! !== undefined) {\r\n var solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n this.correoSolicitante = solicitante.correo\r\n }\r\n\r\n this.usuarioDescarga.existeCSR = usuario.existeCSR\r\n this.usuarioDescarga.usoCertificado = usuario.usoCertificado ?? -1\r\n this.usoGuardado = usuario.usoCertificado !== null && usuario.usoCertificado !== undefined && usuario.usoCertificado !== -1\r\n this.usuarioDescarga.otroUso = usuario.otroUso ?? ''\r\n this.usuarioDescarga.uso = usuario.uso ?? ''\r\n this.correoTitularOfuscado = this.correoSolicitante.substring(0, 3) + \"******\" + this.correoSolicitante.substring(this.correoSolicitante.length - 7)\r\n }\r\n if (usuario.dispo !== 'PKCS#10' && usuario.dispo !== 'TOKEN VIRTUAL' && usuario.dispo !== 'REPOSICION') {\r\n let mensaje = \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"Estamos cargando tus solicitudes, este proceso puede tardar un momento\");\r\n let { contrasena } = this.formaForm.value;\r\n this.obtenerCertificado(contrasena);\r\n }\r\n }\r\n\r\n obtenerCertificado(contrasena: string) {\r\n let requestCertificado: any = {\r\n solicitudId: this.usuarioDescarga.solicitudId,\r\n contrasena: contrasena\r\n }\r\n this.ssps.obtenerCertificado(requestCertificado)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"obtenerCertificado\", res)\r\n this.certificado = res\r\n this.ssps.saveLocalStorage('certificado', JSON.stringify(res));\r\n this.alert.closesSpiner()\r\n //Si es Finalizado ó descarga, mostrar alerta con el mensaje\r\n if (res.estado === 'CONTRASENA') {\r\n this.agregarValidatorsContrasena()\r\n }\r\n if (res.estado === 'FINALIZADO' || res.estado === 'DESCARGA') {\r\n this.removeValidatorsContrasena()\r\n this.alert.closesFiels()\r\n this.alert.showDescargaCertificado(res.estado === 'FINALIZADO')\r\n }\r\n },\r\n error: (error: any) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.obtenerCertificado(contrasena);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber obtenerCertificado', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n removeValidatorsContrasena() {\r\n const controlesAEliminar = ['contrasena', 'contrasenaConfirmacion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n agregarValidatorsContrasena() {\r\n const controlesAEliminar = ['contrasena', 'contrasenaConfirmacion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(12),\r\n Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[$@$!%*?&_-])[A-Za-zd$@$!%*?&_-].{8,15}')\r\n ])\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n get contrasenaIguales() {\r\n const pass1 = this.formaForm.get('contrasena')!.value;\r\n const pass2 = this.formaForm.get('contrasenaConfirmacion')!.value;\r\n\r\n return pass1 === pass2;\r\n }\r\n\r\n generarLlave() {\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n let requestCertificado: any = {\r\n solicitudId: this.usuarioDescarga.solicitudId\r\n }\r\n this.ssps.generarRequestLlave(requestCertificado)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"generarRequestLlave\", res)\r\n this.alert.closesSpiner()\r\n this.usuarioDescarga.existeCSR = true\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n usuario.existeCSR = true\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(usuario));\r\n this.alert.showError(\"La llave privada fue generada exitosamente y enviada al correo registrado en la solicitud.\",\r\n false, \"Exitoso\", false, null, null, false)\r\n\r\n },\r\n error: (error: any) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.generarLlave();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber generarRequestLlave', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n enviarOTP() {\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n let requestOtp = {\r\n \"fromAddress\": env.mailOtp,\r\n \"toAddress\": this.correoSolicitante,\r\n \"fromName\": \"Operaciones\",\r\n \"subject\": \"Verificación de identidad vía OTP\",\r\n \"bodyContent\": \"Código de verificación

Código de verificación

Su código de verificación es: CODE

\",\r\n \"certification\": false,\r\n \"type\": \"EMAIL\"\r\n }\r\n this.ssps.solicitarOTP(requestOtp)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"solicitarOTP\", res)\r\n this.otpValidacion = res.OTPSha256\r\n this.alert.closesSpiner()\r\n if (res.statusCode === 200) {\r\n this.alert.showError(\"El código de verificación fue enviado exitosamente\",\r\n false, \"¡Exitoso!\", false, null, null, false)\r\n this.otpEnviado = true\r\n this.contadorReenvio(1)\r\n }\r\n else {\r\n this.alert.showError(res.responseText,\r\n false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error: any) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.enviarOTP();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber solicitarOTP', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n onOtpChange(otp: any) {\r\n this.otp = otp;\r\n this.logger.log(\"onOtpChange\", otp)\r\n if (otp.length === this.config.length) {\r\n this.validarOTP(otp)\r\n }\r\n }\r\n\r\n async validarOTP(otp: any) {\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n let otpSha256 = await this.ssps.sha256(otp)\r\n\r\n this.alert.closesSpiner()\r\n if (this.otpValidacion === otpSha256) {\r\n this.alert.showError(\"El código de verificación es correcto\",\r\n false, \"¡Exitoso!\", false, null, null, false)\r\n this.otpValidado = true\r\n this.otpEnviado = false\r\n clearInterval(this.timer);\r\n }\r\n else {\r\n this.alert.showError(\"El código de verificación no es correcto\",\r\n false, null, false, null, null, false)\r\n }\r\n }\r\n\r\n contadorReenvio(minute: any) {\r\n this.reenviarOtp = false;\r\n // let minute = 1;\r\n let seconds = minute * 60;\r\n let textSec: any = '0';\r\n let statSec = 60;\r\n\r\n const prefix = minute < 10 ? '0' : '';\r\n\r\n this.timer = setInterval(() => {\r\n seconds--;\r\n if (statSec != 0) statSec--;\r\n else statSec = 59;\r\n\r\n // if (statSec < 10) textSec = \"0\" + statSec;\r\n // textSec = statSec;\r\n\r\n if (statSec < 10) {\r\n textSec = '0' + statSec;\r\n } else {\r\n textSec = statSec;\r\n }\r\n\r\n // this.display = prefix + Math.floor(seconds / 60) + \":\" + textSec;\r\n this.display = `${prefix}${Math.floor(seconds / 60)}:${textSec}`;\r\n\r\n if (seconds == 0) {\r\n clearInterval(this.timer);\r\n this.reenviarOtp = true;\r\n }\r\n }, 1000);\r\n }\r\n\r\n get passwordFormField() {\r\n return this.formaForm.get('contrasena');\r\n }\r\n\r\n get passwordMinMaxLengthValid() {\r\n return !(this.formaForm.controls[\"contrasena\"].hasError(\"maxlength\") ||\r\n this.formaForm.controls[\"contrasena\"].hasError(\"minlength\")) && this.formaForm.controls[\"contrasena\"]?.value.length > 0;\r\n }\r\n\r\n closeModal() {\r\n let externalUrl = `${environment.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n\r\n usos() {\r\n this.ssps.usos()\r\n .subscribe((res: any) => {\r\n this.usosCertificados = res.usos;\r\n })\r\n }\r\n\r\n cambioUso(element: any) {\r\n this.logger.log(\"cambioUso\", element)\r\n if (+element.value > 0) {\r\n let usoCertificado = this.usosCertificados.find(f => +f.id === +element.value)\r\n this.usuarioDescarga.usoCertificado = usoCertificado.id\r\n this.usuarioDescarga.uso = usoCertificado.descripcion\r\n this.usuarioDescarga.otroUso = \"\"\r\n }\r\n }\r\n guardarUsoCertificado() {\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n let body: any = {\r\n solicitudId: this.usuarioDescarga.solicitudId,\r\n usoCertificado: this.usuarioDescarga.usoCertificado,\r\n uso: this.usuarioDescarga.uso,\r\n otroUso: this.usuarioDescarga.otroUso.toUpperCase()\r\n }\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n usuario.usoCertificado = this.usuarioDescarga.usoCertificado ?? -1\r\n usuario.otroUso = this.usuarioDescarga.otroUso ?? ''\r\n usuario.uso = this.usuarioDescarga.uso ?? ''\r\n this.ssps.generarRequestJuridico(body).subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta generarRequestJurido\", res)\r\n this.alert.closesSpiner()\r\n if (+res.codigo === 200) {\r\n this.usoGuardado = true\r\n this.ssps.saveLocalStorage('usuario', JSON.stringify(usuario));\r\n this.alert.showError(\"Uso del certificado guardado correctamente.\",\r\n false, \"¡Exitoso!\", false, null, null, false)\r\n }\r\n else {\r\n this.alert.showError(res.responseText,\r\n false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber generarRequestJurido descargar', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.guardarUsoCertificado();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber generarRequestJurido descarga certificado', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\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

CONTRASEÑA DE ACCESO A LOS CERTIFICADOS DIGITALES EMITIDOS EN TOKEN\r\n VIRTUAL

\r\n

Apreciado suscriptor, si ya has asignado tu contraseña anteriormente, esta te permitirá\r\n acceder a los certificados de firma digital vigentes, almacenados en Token virtual.\r\n

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

Ten en cuenta que el archivo a descargar\r\n corresponde a la llave pública del certificado emitido con extensión\r\n .cer, una vez descargado el certificado deberás utilizarlo en la\r\n aplicación/máquina donde fue generado el request para completar la\r\n instalación del certificado digital.

\r\n

\r\n La llave privada asociada a tu certificado fue generada y enviada al correo\r\n electrónico registrado en la solicitud.

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

Ten en cuenta que el archivo a generar\r\n corresponde a la llave privada del certificado emitido con extensión\r\n .key y será enviado al correo electrónico registrado en la solicitud, una vez\r\n realizado el proceso exitosamente, deberás generar y descargar el\r\n archivo .CER que corresponde a la llave pública del certificado

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

CONTRASEÑA DE ACCESO A LOS CERTIFICADOS DIGITALES EMITIDOS EN TOKEN\r\n VIRTUAL

\r\n

Apreciado suscriptor, la contraseña que ingreses a continuación te permitirá acceder a los\r\n certificados de firma digital vigentes, almacenados en Token virtual.

\r\n Importante: La contraseña debe contener:\r\n
    \r\n
  • \r\n Mínimo ocho (8) caracteres\r\n
  • \r\n
  • \r\n Máximo doce (12) caracteres\r\n
  • \r\n
  • \r\n Mezclar mayúsculas, minúsculas y números. NO EMPLEE CARACTERES\r\n ESPECIALES\r\n
  • \r\n
\r\n * Asegúrate de recordar tu contraseña solo así podrá firmar tus documentos y/o\r\n transacciones. \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Contraseña no cumple criterio de\r\n aceptación
\r\n
\r\n \r\n Mínimo una mayuscula.
\r\n \r\n Mínimo una minuscula.
\r\n \r\n Incluye mínimo un número.
\r\n 0, 'text-danger':passwordFormField?.value?.match('(?=.*[$@$!%*?&_-])') || passwordFormField?.value?.length === 0}\">\r\n No usar caracteres especiales
\r\n \r\n De 8 a 12 caracteres.\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n La confirmación de la contraseña no coincide
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

ASIGNACIÓN USO DEL CERTIFICADO

\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

Estimado usuario

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

\r\n Para poder continuar con el proceso de descarga de tu certificado digital, se debe realizar\r\n la\r\n verificación de titularidad mediante la confirmación de un código OTP que será enviado al\r\n correo\r\n electrónico {{correoTitularOfuscado}} que aparece registrado en la solicitud.

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

ingresar CÓDIGO

\r\n \r\n
\r\n
\r\n
Reenviar código OTP en {{ display }} segundos
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-descarga-pfx',\r\n templateUrl: './descarga-pfx.component.html',\r\n styleUrls: ['./descarga-pfx.component.css']\r\n})\r\nexport class DescargaPfxComponent implements OnInit {\r\n\r\n formaForm!: FormGroup;\r\n certificado: any = {}\r\n buttons: any = [] = [];\r\n totalCantidad: number = 2;\r\n validateformats: any[] = [];\r\n cantidad: number = 0;\r\n cambiologo: boolean = true;\r\n error: any = [];\r\n\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n private logger: LogService, \r\n private el: ElementRef\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n contrasena: ['', [\r\n Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(12),\r\n Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&_-])[A-Za-zd$@$!%*?&_-].{8,12}')]],\r\n contrasenaConfirmacion: ['', [\r\n Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(12),\r\n Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&_-])[A-Za-zd$@$!%*?&_-].{8,12}')]],\r\n documentos: this.fb.array([]),\r\n documentos2: this.fb.array([]),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.CreateDocument('Archivo de llave privada', 'keyfile')\r\n this.CreateDocument('Archivo de certificado', 'cerfile')\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n \r\n get passwordFormField() {\r\n return this.formaForm.get('contrasena');\r\n }\r\n\r\n get passwordMinMaxLengthValid() {\r\n return !(this.formaForm.controls[\"contrasena\"].hasError(\"maxlength\") || \r\n this.formaForm.controls[\"contrasena\"].hasError(\"minlength\")) && this.formaForm.controls[\"contrasena\"]?.value.length > 0;\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n let { contrasena } = this.formaForm.value;\r\n this.unirLlaves(contrasena);\r\n }\r\n }\r\n\r\n unirLlaves(contrasena: string) {\r\n let requestCertificado: any = {\r\n crt: this.buttons.filter((f: { id: string; }) => f.id === \"cerfile\")[0].file,\r\n key: this.buttons.filter((f: { id: string; }) => f.id === \"keyfile\")[0].file,\r\n password: contrasena\r\n }\r\n this.ssps.unirLlaves(requestCertificado)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"unirLlaves\", res)\r\n this.certificado = {\r\n estado: \"DESCARGA\",\r\n mensaje: \"Solicitud procesada exitosamente\",\r\n nombreArchivo: \"certificado_digital.pfx\",\r\n certificadoB64: res.pfx,\r\n tipo: \"PFX\"\r\n }\r\n this.ssps.saveLocalStorage('certificado', JSON.stringify(this.certificado));\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showDescargaCertificado(false)\r\n },\r\n error: (error: any) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.unirLlaves(contrasena);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber unirLlaves', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.listaErrores ? error.error.listaErrores.map((o: {\r\n campo: string; mensaje: any;\r\n }) => o.campo + \": \" + o.mensaje).join(\"\\n\") :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n get contrasenaIguales() {\r\n const pass1 = this.formaForm.get('contrasena')!.value;\r\n const pass2 = this.formaForm.get('contrasenaConfirmacion')!.value;\r\n\r\n return pass1 === pass2;\r\n }\r\n\r\n CreateDocument(documentName: string, id: String) {\r\n let indice = this.buttons.findIndex((f: { id: String; }) => f.id === id);\r\n this.logger.log(\"indicie\", indice)\r\n if (indice > -1) {\r\n this.buttons = this.buttons.filter((f: { id: String; }) => f.id !== id)\r\n this.documentsDocuments.removeAt(indice)\r\n }\r\n else {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: id === 'keyfile' ? 'Seleccionar archivo de llave privada' :\r\n 'Seleccionar archivo de certificado',\r\n subtitle: id === 'keyfile' ?\r\n 'El formato de archivo permitido para cargar es .key' :\r\n 'El formato de archivo permitido para cargar es .cer',\r\n name: documentName,\r\n id: id,\r\n accept: id === 'keyfile' ? \".key\" : \".cer\"\r\n }\r\n this.buttons.push(estilos)\r\n this.addControlDocument();\r\n }\r\n }\r\n\r\n get documentsDocuments() {\r\n return this.formaForm.get('documentos') as FormArray;\r\n }\r\n\r\n addControlDocument() {\r\n this.documentsDocuments.push(this.fb.control(null));\r\n }\r\n\r\n getFileDetails(file: any, index: number) {\r\n let fileToUpload = file[0];\r\n const botonActualizado = { ...this.buttons[index] };\r\n\r\n let tamañoEnBytes = fileToUpload.size;\r\n let tamañoEnMegabytes = tamañoEnBytes / (1024 * 1024);\r\n if ((fileToUpload.name.toLocaleLowerCase().endsWith(\".key\") && botonActualizado.id === \"keyfile\") ||\r\n (fileToUpload.name.toLocaleLowerCase().endsWith(\".cer\") && botonActualizado.id === \"cerfile\")) {\r\n if (tamañoEnMegabytes > 10) {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de archivo permitido para cargar es ' + (botonActualizado.id === \"keyfile\" ? \".key\" : \".cer\");\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n }\r\n if (tamañoEnMegabytes < 10) {\r\n const reader = new FileReader()\r\n reader.onload = () => {\r\n const b64 = reader.result as string\r\n botonActualizado.file = b64.split(\",\")[1]\r\n }\r\n\r\n if (fileToUpload) {\r\n reader.readAsDataURL(fileToUpload)\r\n }\r\n\r\n botonActualizado.fondo = '#09CB34';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Archivo cargado con exito';\r\n botonActualizado.subtitle = fileToUpload.name;\r\n\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = false;\r\n this.cantidad += 1;\r\n }\r\n }\r\n else {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = botonActualizado.id === 'keyfile' ? 'Seleccionar archivo de llave privada' :\r\n 'Seleccionar archivo de certificado';\r\n botonActualizado.subtitle = 'El formato de archivo permitido para cargar es ' + (botonActualizado.id === \"keyfile\" ? \".key\" : \".cer\");\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n this.error[index] = 'El formato de archivo permitido para cargar es ' + (botonActualizado.id === \"keyfile\" ? \".key\" : \".cer\")\r\n }\r\n\r\n }\r\n\r\n validar() {\r\n\r\n return (this.cambiologo = true) ? ' animate__animated animate__fadeIn animate__fast' : 'animate__animated animate__fadeOut animate__fast';\r\n }\r\n\r\n isValidFieldInArray(formArray: FormArray, index: number) {\r\n return formArray.controls[index].errors\r\n && formArray.controls[index].touched;\r\n }\r\n\r\n closeModal() {\r\n let externalUrl = `${environment.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n}","
\r\n
\r\n

DESCARGA DE CERTIFICADO DIGITAL

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

Ten en cuenta que el archivo a descargar\r\n corresponde al certificado digital con el cual podrás realizar la firma de tus\r\n documentos.

\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

{{buttons[i].title}}\r\n
\r\n {{buttons[i].subtitle}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{error[i]}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Mínimo una mayuscula.
\r\n \r\n Mínimo una minuscula.
\r\n \r\n Incluya mínimo un número.
\r\n \r\n Un carácter como $@$!%*?&_-.
\r\n \r\n De 8 a 12 caracteres.\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n La confirmación de la contraseña no coincide
\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, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { Router } from '@angular/router';\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from \"src/environments/environment\"\r\n\r\ndeclare const PDFObject: any;\r\n\r\n@Component({\r\n selector: 'app-descargar-factura',\r\n templateUrl: './descargar-factura.component.html',\r\n styleUrls: ['./descargar-factura.component.css']\r\n})\r\nexport class DescargarFacturaComponent implements OnInit {\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n @ViewChild('inputRefFactura')\r\n inputRefFactura!: { nativeElement: any; };\r\n formaForm!: FormGroup;\r\n usuarioFactura: any = {\r\n ip: '',\r\n tipo: '',\r\n numero: '',\r\n ordenPedidoId: '',\r\n factura: '',\r\n codigo: '',\r\n filtro: ''\r\n };\r\n comas = false\r\n consulta = false\r\n documento: any\r\n listadoFacturas: any = []\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n public datepipe: DatePipe,\r\n private logger: LogService,\r\n private el: ElementRef,\r\n private router: Router,\r\n private recaptchaV3Service: ReCaptchaV3Service,\r\n private sanitizer: DomSanitizer\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required]],\r\n codigo: ['', [\r\n Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n , Validators.pattern(\"^[0-9]*$\")\r\n ]\r\n ],\r\n filtro: ['', [Validators.required]],\r\n ordenPedidoId: ['', [Validators.required,\r\n Validators.minLength(7),\r\n Validators.maxLength(7),\r\n , Validators.pattern(\"^[0-9]*$\")\r\n ]],\r\n factura: ['', [Validators.required,\r\n Validators.minLength(6),\r\n Validators.pattern('[a-zA-Z0-9]{6,30}')]]\r\n }, {\r\n validators: [\r\n ]\r\n });\r\n this.setOnChangesInputs()\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.ssps.obtenerIpValor()\r\n if (this.ssps.getLocalStorage(\"usuarioFactura\")) {\r\n this.usuarioFactura = JSON.parse(this.ssps.getLocalStorage(\"usuarioFactura\")!)\r\n }\r\n this.formaForm.controls[\"codigo\"]?.disable({ onlySelf: true })\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero && val) {\r\n if (val.length > 6) {\r\n this.usuarioFactura.codigo = this.componentesService.calcularDigitoChequeo(val)\r\n }\r\n else{\r\n this.usuarioFactura.codigo = null\r\n }\r\n const elRef = this.inputRefNumero?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"factura\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefFactura) {\r\n const elRef = this.inputRefFactura?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"factura\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n this.logger.log(\"ngsubmit\", this.formaForm.controls[key].errors)\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"Estamos cargando tus solicitudes, este proceso puede tardar un momento\");\r\n this.logger.log(\"consultar\", this.usuarioFactura)\r\n this.validarCaptcha()\r\n }\r\n }\r\n\r\n validarCaptcha() {\r\n this.recaptchaV3Service.execute('importantAction')\r\n .subscribe((token: string) => {\r\n this.ssps.validatedCapcha(token)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta captcha\", res)\r\n if (res.code == 200) {\r\n this.consultarFactura()\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en la funcion de capcha', error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n });\r\n }\r\n\r\n consultarFactura() {\r\n let data = {\r\n numeroFactura: this.usuarioFactura.factura,\r\n ordenPedidoId: this.usuarioFactura.ordenPedidoId === \"\" ? 0 : this.usuarioFactura.ordenPedidoId,\r\n numeroIdentificacion: this.usuarioFactura.numero === \"\" ? null :\r\n (this.usuarioFactura.numero + (this.usuarioFactura.tipo === \"NIT\" ?\r\n this.usuarioFactura.codigo : \"\"))\r\n }\r\n this.ssps.consultarFactura(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"consultarFactura\", res)\r\n this.listadoFacturas = res.data.response\r\n this.alert.closesSpiner()\r\n if (res.data.response === null || res.data.response === undefined ||\r\n res.data.response.length === 0\r\n ) {\r\n this.alert.showError(\"No se encontraron facturas disponibles\", false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarFactura', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarFactura();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarFactura', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n cancelarSeleccion() {\r\n this.usuarioFactura.tipo = \"\"\r\n this.usuarioFactura.numero = \"\"\r\n this.usuarioFactura.codigo = \"\"\r\n this.usuarioFactura.ordenPedidoId = \"\"\r\n this.usuarioFactura.factura = \"\"\r\n this.usuarioFactura.filtro = ''\r\n this.consulta = false\r\n this.documento = null\r\n this.listadoFacturas = []\r\n }\r\n\r\n cancelarSeleccionDocumento() {\r\n this.consulta = false\r\n this.documento = null\r\n }\r\n\r\n changeFiltro($event: any) {\r\n let filtro = $event.target.value;\r\n this.usuarioFactura.tipo = \"\"\r\n this.usuarioFactura.numero = \"\"\r\n this.usuarioFactura.codigo = \"\"\r\n this.usuarioFactura.ordenPedidoId = \"\"\r\n this.usuarioFactura.factura = \"\"\r\n this.quitarValidaciones(filtro)\r\n }\r\n\r\n changeTipoDocumento($event: any) {\r\n this.usuarioFactura.numero = \"\"\r\n this.usuarioFactura.codigo = \"\"\r\n let tipoDocumento = $event.target.value;\r\n this.logger.log(\"changeTipoDocumento\", tipoDocumento)\r\n const control = this.formaForm.get('codigo');\r\n if (control) {\r\n this.formaForm.clearValidators()\r\n control.clearValidators();\r\n this.logger.log(\"changeTipoDocument-2o\", tipoDocumento)\r\n if (tipoDocumento !== \"NIT\") {\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n this.formaForm.addValidators([this.componentesService.codigonit('tipo', 'numero')])\r\n this.formaForm.updateValueAndValidity()\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n Validators.pattern(\"^[0-9]*$\")\r\n ])\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n this.formaForm.addValidators([this.componentesService.codigonit('tipo', 'numero'),\r\n this.componentesService.digitoChequeo('numero', 'codigo')])\r\n this.formaForm.updateValueAndValidity()\r\n }\r\n }\r\n }\r\n\r\n quitarValidaciones(tipoFiltro: any) {\r\n this.logger.log(\"quitarValidaciones\", tipoFiltro)\r\n const controles = ['tipo', 'numero',\r\n 'codigo', 'ordenPedidoId', 'factura'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controles) {\r\n this.formaForm.clearValidators()\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n if (tipoFiltro === \"DOCUMENTO\") {\r\n if (controlName === \"tipo\") {\r\n control.addValidators([\r\n Validators.required\r\n ])\r\n }\r\n else if (controlName === \"numero\") {\r\n control.addValidators([\r\n Validators.required\r\n ])\r\n }\r\n else if (controlName === \"codigo\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n Validators.pattern(\"^[0-9]*$\")\r\n ])\r\n }\r\n this.formaForm.addValidators([this.componentesService.codigonit('tipo', 'numero'),\r\n this.componentesService.digitoChequeo('numero', 'codigo')])\r\n }\r\n else if (tipoFiltro === \"ORDEN\" && controlName === \"ordenPedidoId\") {\r\n control.addValidators([Validators.required,\r\n Validators.minLength(7),\r\n Validators.maxLength(7), Validators.pattern(\"^[0-9]*$\")\r\n ])\r\n this.formaForm.clearValidators()\r\n }\r\n else if (tipoFiltro === \"FACTURA\" && controlName === \"factura\") {\r\n control.addValidators([Validators.required,\r\n Validators.minLength(6),\r\n Validators.pattern('[a-zA-Z0-9]{6,30}')])\r\n this.formaForm.clearValidators()\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n this.formaForm.updateValueAndValidity()\r\n }\r\n }\r\n }\r\n\r\n noPuntoComa(event: any) {\r\n\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n\r\n this.usuarioFactura.numero = numero.replace(/^0+/, '');\r\n }\r\n\r\n verFactura(documentoFactura: any) {\r\n this.alert.showSpiner(\"Cargando documento, por favor espera\");\r\n //this.documento = res.data.response.documento\r\n //this.documento = this.sanitizer.bypassSecurityTrustUrl(base64Source)\r\n this.consulta = true\r\n this.documento = 'data:application/pdf;base64,' + documentoFactura.documento\r\n setTimeout(() => {\r\n PDFObject.embed(this.documento, '#pdfContainer');\r\n this.alert.closesSpiner()\r\n }, 3000);\r\n }\r\n\r\n closeModal() {\r\n let externalUrl = `${environment.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n\r\n}","
\r\n
\r\n

DESCARGUE EN LINEA SU FACTURA DE\r\n COMPRA

\r\n

0 && !consulta\">LISTADO DE FACTURAS\r\n ELECTRÓNICAS

\r\n \r\n
\r\n
\r\n
\r\n Podrád realizar la consulta de tu factura de compra mediante alguo de los siguientes filtros:\r\n Número de orden pedido, número de identificación ó número de factura, podrás efectuar\r\n la descarga de tu factura de compra en formato PDF.\r\n
\r\n Nota: Se podrán visualizar las ultimas 5 facturas de compras realizadas de\r\n certificados digitales.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un filtro\r\n
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un tipo de\r\n documento\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Identificación no válido!
\r\n
El campo no puede tener comas
\r\n
\r\n
\r\n \r\n \r\n
Número de verificación no válido\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Número de orden pedido\r\n no válido!
\r\n
\r\n
\r\n \r\n \r\n
¡Número de factura no válido!\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
0\">\r\n
\r\n A continuación podrás encontrar el listado de facturas que tienes disponibles, para\r\n visualizar la representación gráfica de una factura puedes hacerlo dando click en\r\n el botón VER FACTURA de la cual deseas visualizar.\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 Orden pedido\r\n \r\n Factura\r\n
\r\n {{ item.ordenPedidoId }}\r\n \r\n {{ item.numeroFactura }}\r\n \r\n \r\n VER FACTURA\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 { JsonpInterceptor } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.css']\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n @Input() public mensaje: any\r\n @Input() public redirigir: any\r\n @Input() public titulo: any\r\n @Input() public identidadValidada: boolean | undefined\r\n @Input() public urlRedireccion: any\r\n @Input() public tituloBoton: any\r\n @Input() public redirigirExternal: any\r\n solicitud = \"\"\r\n constructor(private alert: AlertsService,\r\n private router: Router,\r\n private componets: ComponentesService,\r\n private ssps: SspsService,\r\n public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.solicitud = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n\r\n if (this.mensaje?.includes(\"Http failure response for\")) {\r\n this.mensaje = \"No fue posible conectar a los servicios, verifica tu conexión a internet.\"\r\n this.titulo = \"¡Sin conexión a internet!\"\r\n }\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.activeModal.close(false);\r\n if (this.redirigir) {\r\n if (this.urlRedireccion !== \"\" && this.redirigirExternal) {\r\n window.location.replace(this.urlRedireccion);\r\n }\r\n else if (this.urlRedireccion !== \"\" && !this.redirigirExternal) {\r\n this.router.navigate([this.urlRedireccion]);\r\n }\r\n else {\r\n localStorage.clear()\r\n let externalUrl = this.identidadValidada ? `${env.urlVentaDigital}?id=` + this.solicitud : `${env.urlWebCerti}`;\r\n window.location.replace(externalUrl);\r\n }\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{titulo}}

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

\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\nimport { environment } from \"src/environments/environment\"\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\n\r\ndeclare const PDFObject: any;\r\n\r\n@Component({\r\n selector: 'app-estado-tramite',\r\n templateUrl: './estado-tramite.component.html',\r\n styleUrls: ['./estado-tramite.component.css'],\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\nexport class EstadoTramiteComponent implements OnInit {\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n formaForm!: FormGroup;\r\n usuarioConsulta: any = {\r\n ip: '',\r\n tipo: '',\r\n numero: '',\r\n };\r\n comas = false\r\n listadoSolicitudes: any = []\r\n tituloConsulta = \"\"\r\n tiposDocumentos: any = {\r\n 'CC': 'Cédula de Ciudadanía',\r\n 'CE': 'Cédula de Extranjería',\r\n 'PP': 'Pasaporte'\r\n };\r\n completed = true\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n private logger: LogService,\r\n private el: ElementRef,\r\n private recaptchaV3Service: ReCaptchaV3Service\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required]]\r\n }, {\r\n validators: [\r\n ]\r\n });\r\n this.setOnChangesInputs()\r\n }\r\n\r\n columnsToDisplay = ['Orden Pedido No.', 'Nº Solicitud', 'Nombre del titular', 'Mecanismo', 'Politica'];\r\n columnsToDisplayValores = ['ordenPedidoId', 'solicitudId', 'nombreTitular', 'mecanismo', 'politica'];\r\n columnsToDisplayWithExpand = [...this.columnsToDisplay, 'expand'];\r\n expandedElement: any = null;\r\n\r\n async ngOnInit(): Promise {\r\n this.ssps.obtenerIpValor()\r\n if (this.ssps.getLocalStorage(\"usuarioConsulta\")) {\r\n this.usuarioConsulta = JSON.parse(this.ssps.getLocalStorage(\"usuarioConsulta\")!)\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero && val) {\r\n const elRef = this.inputRefNumero?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n this.logger.log(\"ngsubmit\", this.formaForm.controls[key].errors)\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"Estamos cargando tus solicitudes, este proceso puede tardar un momento\");\r\n this.logger.log(\"consultar\", this.usuarioConsulta)\r\n this.validarCaptcha()\r\n }\r\n }\r\n\r\n validarCaptcha() {\r\n this.recaptchaV3Service.execute('importantAction')\r\n .subscribe((token: string) => {\r\n this.ssps.validatedCapcha(token)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta captcha\", res)\r\n if (res.code == 200) {\r\n this.consultarSolicitudes()\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en la funcion de capcha', error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n });\r\n }\r\n\r\n consultarSolicitudes() {\r\n let data = {\r\n tipo: this.usuarioConsulta.tipo,\r\n identificacion: this.usuarioConsulta.numero\r\n }\r\n this.ssps.consultarSolicitudesEstadoTramite(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"consultarSolicitudesEstadoTramite\", res)\r\n this.listadoSolicitudes = res\r\n this.alert.closesSpiner()\r\n if (res === null || res === undefined ||\r\n res.length === 0\r\n ) {\r\n this.alert.showError(`No se encontraron tramites asociados a la identificación ${this.usuarioConsulta.numero}`, false, null, false, null, null, false)\r\n }\r\n else {\r\n this.tituloConsulta = `${this.tiposDocumentos[this.usuarioConsulta.tipo]}: ${this.usuarioConsulta.numero} - ${res[0].nombreTitular}`\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarSolicitudesEstadoTramite', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarSolicitudes();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarSolicitudesEstadoTramite', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n cancelarSeleccion() {\r\n this.usuarioConsulta.tipo = \"\"\r\n this.usuarioConsulta.numero = \"\"\r\n this.listadoSolicitudes = []\r\n this.tituloConsulta = \"\"\r\n }\r\n\r\n noPuntoComa(event: any) {\r\n\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n\r\n this.usuarioConsulta.numero = numero.replace(/^0+/, '');\r\n }\r\n\r\n closeModal() {\r\n let externalUrl = `${environment.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n\r\n validarEstadoClase(paso: any) {\r\n return paso.finalizado ? 'step ng-tns-c4-0 completed ng-star-inserted' : 'step ng-tns-c4-0 active ng-star-inserted';\r\n }\r\n\r\n mostrarComentarios(comentarios: any) {\r\n this.alert.showError(comentarios,\r\n false, \"¡Informativo!\", false, null, null, false)\r\n }\r\n\r\n}","
\r\n
\r\n

ESTADO DEL TRAMITE DE SU\r\n CERTIFICADO\r\n DE FIRMA DIGITAL

\r\n

0\">\r\n {{tituloConsulta}}\r\n

\r\n \r\n
\r\n
\r\n
\r\n Para conocer más información acerca del estado de tu solicitud, ingresar el tipo y número de\r\n identificación del solicitante y luego haga click en el botón Consultar. Allí podrás obtener\r\n información clave, acerca del proceso de emisión, entrega y vigencia de tu certificado de\r\n firma digital.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un tipo de\r\n documento\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Identificación no válido!
\r\n
El campo no puede tener comas
\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
0\">\r\n Nota: Para conocer más información del estado de tu solicitud, haga click en \r\n \r\n \r\n donde se presenta información clave, acerca del proceso de emisión, entrega\r\n y vigencia de tu certificado de firma digital.\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
{{column}} \r\n {{element[columnsToDisplayValores[i]]}}  \r\n \r\n \r\n
\r\n\r\n
\r\n
    \r\n
  1. \r\n
    \r\n {{i + 1}}
    \r\n
    \r\n {{paso.paso}}\r\n \r\n
    \r\n
  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
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\n\r\n@Component({\r\n selector: 'app-finalizado',\r\n templateUrl: './finalizado.component.html',\r\n styleUrls: ['./finalizado.component.css']\r\n})\r\nexport class FinalizadoComponent implements OnInit {\r\n @Input() public pagoComprobante: any\r\n validaIdentidad = false\r\n urlRequest = urlRequest\r\n constructor(private alert: AlertsService, private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage(\"cargarPago\")) {\r\n this.pagoComprobante = this.ssps.getLocalStorage(\"cargarPago\")!\r\n }\r\n if (this.ssps.getLocalStorage(\"usuario\")) {\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.validaIdentidad = usuario.identidadValidada\r\n }\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.alert.closeAlert();\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n\r\n validarIdentidad(){\r\n this.alert.closeAlert();\r\n this.alert.showAlertaValidarIdentidad(true)\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n

Señor usuario

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

\r\n ¡Atención! Tu proceso finalizará con éxito una vez Certicámara verifique el pago. \r\n Imprime tu orden de pedido y cancela en cualquier corresponsal bancario Pagatodo o Supergiros, \r\n indicando el código 2286 al momento de pagar. Gracias por confiar en Certicámara.\r\n

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

\r\n Estimado usuario, el proceso finaliza de manera exitosa, una vez Certicámara verifique el pago.\r\n

\r\n

\r\n Apreciado usuario, por tu seguridad y la del proceso, queremos validar tu identidad. Por favor ingresa para\r\n poder continuar\r\n

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

\r\n El pago de la compra fue realizado correctamente.\r\n

\r\n

\r\n Por tu seguridad y la del proceso, queremos validar tu identidad. Por favor ingresa para\r\n poder continuar\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ChangeDetectorRef, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-contacto',\r\n templateUrl: './contacto.component.html',\r\n styleUrls: ['./contacto.component.css']\r\n})\r\nexport class ContactoComponent implements OnInit {\r\n\r\n @ViewChild('inputRefPrimerNombre')\r\n inputRefPrimerNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoNombre')\r\n inputRefSegundoNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefPrimerApellido')\r\n inputRefPrimerApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoApellido')\r\n inputRefSegundoApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefCorreo1')\r\n inputRefCorreo1!: { nativeElement: any; };\r\n\r\n @Output() onMantenimiento: EventEmitter = new EventEmitter();\r\n formaForm!: FormGroup;\r\n indicativos: any;\r\n contacto: any;\r\n codindi: any;\r\n usuario: any;\r\n comas: boolean = false;\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n tipoCliente = \"\"\r\n contactoOtro = false\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private el: ElementRef) {\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required,\r\n // Validators.pattern('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*')\r\n ]],\r\n primerNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n segundoNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n primerApellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n segundoApellido: ['', [\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [0, [\r\n Validators.maxLength(5)\r\n ]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n correo: ['', [Validators.required,\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$'),\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n ]],\r\n correo1: ['', [Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]]\r\n }, {\r\n validators: [this.componentesService.validalist('indicativo'),\r\n this.componentesService.codigonit('tipo', 'numero')]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.indicativo();\r\n this.tipoCliente = this.ssps.getLocalStorage('tipocliente')!;\r\n if (this.tipoCliente === \"natural\") {\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n }\r\n else {\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n }\r\n this.precargaDatos()\r\n this.setOnChangesInputs()\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"primerNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerNombre) {\r\n const elRef = this.inputRefPrimerNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"segundoNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoNombre) {\r\n const elRef = this.inputRefSegundoNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"primerApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerApellido) {\r\n const elRef = this.inputRefPrimerApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"segundoApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoApellido) {\r\n const elRef = this.inputRefSegundoApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero) {\r\n const elRef = this.inputRefNumero.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo1\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo1) {\r\n const elRef = this.inputRefCorreo1.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo1\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /* implementa envio de datos */\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n this.ssps.saveLocalStorage(\"contacto\", JSON.stringify(this.contacto));\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.componentesService.emitircambio(\"actualizarOrden\");\r\n }\r\n this.componentesService.emitircambio(\"contacto\");\r\n this.router.navigate(['/flujo/entrega']);\r\n }\r\n\r\n /* funcion para los errores indicados*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n\r\n }\r\n\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n noPuntote(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel2 = res;\r\n })\r\n }\r\n\r\n noPuntoex(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastex = res;\r\n })\r\n }\r\n\r\n /*funcion que hace el filtro de los elementos selecionados del select*/\r\n verficacion(event: any) {\r\n this.codindi = this.indicativos.find((x: any) => x?.nomDepartamento === event.target.value);\r\n this.contacto.indicativo = this.codindi?.indicativo;\r\n }\r\n\r\n /*rediociona al usuario si se equivova*/\r\n redireciona() {\r\n if (this.tipoCliente == \"natural\") {\r\n this.router.navigate(['/flujo/infobasi']);\r\n this.componentesService.emitircambio(\"reveinfobasi\");\r\n }\r\n /*redireciona deacuerdo al tipo de roll*/\r\n else if (this.tipoCliente == \"juridica\") {\r\n this.router.navigate(['/flujo/solicitante']);\r\n this.componentesService.emitircambio(\"revesolicitante\");\r\n }\r\n }\r\n\r\n\r\n /*validacion de decimales input*/\r\n noPuntoComa(event: any) {\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n if (key === 110 || key === 190 || key === 188) {\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n this.contacto.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n this.contacto.telefono = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n this.contacto.extension = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros4(numero: string) {\r\n this.contacto.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n contactoOtroChange($event: any) {\r\n let isCheckeado = $event.target.checked;\r\n if (isCheckeado) {\r\n this.contacto = {\r\n tipo: '',\r\n numero: '',\r\n primerNombre: '',\r\n segundoNombre: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n indicativo: 0,\r\n telefono: '',\r\n extension: '',\r\n celular: '',\r\n correo: '',\r\n correo1: '',\r\n contactoOtro: true\r\n }\r\n }\r\n else {\r\n this.precargaDatos()\r\n }\r\n }\r\n\r\n precargaDatos() {\r\n if (this.ssps.getLocalStorage('contacto')!) {\r\n this.contacto = JSON.parse(this.ssps.getLocalStorage('contacto')!);\r\n }\r\n else {\r\n this.contacto = {\r\n tipo: this.usuario.tipo,\r\n numero: this.usuario.numero,\r\n primerNombre: this.usuario.primerNombre,\r\n segundoNombre: this.usuario.segundoNombre,\r\n primerApellido: this.usuario.primerApellido,\r\n segundoApellido: this.usuario.segundoApellido,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono,\r\n extension: this.usuario.extension,\r\n celular: this.usuario.celular,\r\n correo: this.usuario.correo,\r\n correo1: this.usuario.correo1,\r\n contactoOtro: false\r\n }\r\n }\r\n setTimeout(() => {\r\n this.deshabilitarCmaposFinalizados()\r\n }, 2000);\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && key !== \"correo1\" && (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n get correo2NoValido() {\r\n const pass1 = this.formaForm.get('correo')!.value;\r\n const pass2 = this.formaForm.get('correo1')!.value;\r\n\r\n return (pass1 === pass2) ? false : true;\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n\r\n
Datos de contacto
\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
Debe seleccionar un tipo de documento
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Identificación no válido!
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Primer nombre no es válido
\r\n
\r\n
\r\n \r\n \r\n
\r\n Segundo nombre no es válido
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Primer apellido no es válido
\r\n
\r\n
\r\n \r\n \r\n
Segundo apellido no es válido
\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
Indicativo no válido, selecciona una opción de la lista
\r\n
El campo\r\n no\r\n puede tener decimales
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n
Teléfono no válido, debe ser un número de 7 dígitos, debe ser un número\r\n de 6 dígitos
\r\n
El\r\n campo\r\n no puede tener comas
\r\n\r\n
\r\n
\r\n \r\n
Extension no válido
\r\n
El campo\r\n no puede tener comas
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
Celular no válido, ingresar número de 10 dígitos
\r\n\r\n
El campo no\r\n puede tener comas
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n
\r\n Los correos no son iguales
\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, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-datos-facturacion',\r\n templateUrl: './datos-facturacion.component.html',\r\n styleUrls: ['./datos-facturacion.component.css']\r\n})\r\nexport class DatosFacturacionComponent implements OnInit {\r\n\r\n @ViewChild('inputRefNombres')\r\n inputRefNombres!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefApellidos')\r\n inputRefApellidos!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefRazon')\r\n inputRefRazon!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefAgente')\r\n inputRefAgente!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefDireccion')\r\n inputRefDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefTipoNumeroDireccion')\r\n inputRefTipoNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion')\r\n inputRefNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion2')\r\n inputRefNumeroDireccion2!: { nativeElement: any; };\r\n @ViewChild('inputRefBarrioDireccion')\r\n inputRefBarrioDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefAdicionalDireccion')\r\n inputRefAdicionalDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroOtroDireccion')\r\n inputRefNumeroOtroDireccion!: { nativeElement: any; };\r\n\r\n formaForm!: FormGroup;\r\n usuario: any;\r\n comas: boolean = false;\r\n comasnit: boolean = false;\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n indicativos: any[] = [];\r\n codindi: any;\r\n codigo: any;\r\n facturacion: any;\r\n facturaOtro = false\r\n tipoCliente = \"\"\r\n facturaAEmpresa = false\r\n actualizacion = false\r\n direccion: any = {}\r\n tipoDireccion: any[] = [];\r\n ayudaAgente = false\r\n\r\n regimenTributarioListado: any[] = []\r\n regimenTributario: any[] = []\r\n tiposCapital: any[] = []\r\n\r\n depar: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private el: ElementRef) {\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', []],\r\n nombres: ['', [Validators.pattern(\"^[a-zA-Z ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n codigo: ['', [\r\n Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n Validators.pattern(\"^[0-9]*$\")\r\n ]\r\n ],\r\n razon: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n apellidos: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-Z ]{2,60}')]],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [0, [\r\n Validators.maxLength(5)\r\n ]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n correo: ['', [Validators.required,\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$'),\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n ]],\r\n agente: ['', [\r\n Validators.pattern('^[A-Z]{2}[0-9]{3}$'),\r\n Validators.minLength(5),\r\n Validators.maxLength(5)\r\n ]],\r\n tipoDireccion: ['', [\r\n Validators.required\r\n ]],\r\n tipoNumeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion2: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n barrioDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n adicionalDireccion: ['', [\r\n Validators.maxLength(200)\r\n ]],\r\n numeroOtroDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n ayudaAgente: [false, []],\r\n tipoCapital: ['', [Validators.required]],\r\n regimenTributario: ['', [Validators.required]],\r\n departamento: ['', [Validators.required]],\r\n municipio: ['', [Validators.required]]\r\n }, {\r\n validators: [this.componentesService.minimos('numero'),\r\n this.componentesService.validalist('indicativo'),\r\n this.componentesService.codigonit('tipo', 'numero'),\r\n this.componentesService.digitoChequeo('numero', 'codigo')\r\n ]\r\n }\r\n );\r\n this.setOnChangesInputs()\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n //implementacion de validacion de comas\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.ssps.obtenerIpValor()\r\n this.tiposRegimenTributario()\r\n this.indicativo();\r\n this.tiposDireccion()\r\n this.departamentos();\r\n this.tipoCliente = this.ssps.getLocalStorage('tipocliente')!;\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.actualizacion = this.ssps.getLocalStorage(\"actualizacion\") ?\r\n JSON.parse(this.ssps.getLocalStorage(\"actualizacion\")!) : false\r\n this.precargaDatos()\r\n if (this.tipoCliente === 'natural') {\r\n this.clearValidatorsEmpresa()\r\n }\r\n else {\r\n this.clearValidatorsNatural()\r\n }\r\n this.ayudaAgente = this.facturacion.agente !== undefined && this.facturacion.agente !== null &&\r\n this.facturacion.agente !== \"\"\r\n this.formaForm.controls[\"codigo\"]?.disable({ onlySelf: true })\r\n }\r\n\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n const valoresfi = this.formaForm.getRawValue();\r\n\r\n let objetoDireccion = {\r\n tipo: valoresfi.tipoDireccion,\r\n tipoNumero: valoresfi.tipoNumeroDireccion,\r\n numero: valoresfi.numeroDireccion,\r\n numero2: valoresfi.numeroDireccion2,\r\n barrio: valoresfi.barrioDireccion,\r\n adicional: valoresfi.adicionalDireccion ?? \"\",\r\n tipoOtroNumero: valoresfi.numeroOtroDireccion\r\n }\r\n\r\n if (valoresfi.tipo === \"NI\") {\r\n valoresfi.nombres = valoresfi.razon\r\n valoresfi.apellidos = \"\"\r\n }\r\n valoresfi.agente = valoresfi.agente ?? \"\"\r\n this.facturacion.facturaOtro = this.facturaOtro\r\n this.facturacion.facturaEmpresa = this.facturaAEmpresa\r\n this.facturacion.objetoDireccion = objetoDireccion\r\n this.facturacion.direccion = (objetoDireccion.tipo !== \"Otro\" ? (objetoDireccion.tipo + \" \" + objetoDireccion.tipoNumero + \" #\" + objetoDireccion.numero + \"-\" +\r\n objetoDireccion.numero2) : objetoDireccion.tipoOtroNumero) +\r\n \" BARRIO \" + objetoDireccion.barrio + (objetoDireccion.adicional !== \"\" ? \" ADICIONAL \" + objetoDireccion.adicional : \"\")\r\n Object.assign(this.facturacion, valoresfi);\r\n this.ssps.saveLocalStorage(\"facturacion\", JSON.stringify(this.facturacion));\r\n /*emite orden de cambio para alerta y cambios de precios*/\r\n this.componentesService.emitircambio(\"mostrarordencambio\");\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"nombres\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNombres) {\r\n const elRef = this.inputRefNombres.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"nombres\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"apellidos\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefApellidos) {\r\n const elRef = this.inputRefApellidos.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"apellidos\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero && val) {\r\n if (val.length > 6) {\r\n this.facturacion.codigo = this.componentesService.calcularDigitoChequeo(val)\r\n }\r\n else{\r\n this.facturacion.codigo = null\r\n }\r\n const elRef = this.inputRefNumero.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"razon\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefRazon) {\r\n const elRef = this.inputRefRazon?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"razon\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"agente\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefAgente) {\r\n const elRef = this.inputRefAgente?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"agente\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefTipoNumeroDireccion) {\r\n const elRef = this.inputRefTipoNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion) {\r\n const elRef = this.inputRefNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion2\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion2) {\r\n const elRef = this.inputRefNumeroDireccion2.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion2\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"barrioDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefBarrioDireccion) {\r\n const elRef = this.inputRefBarrioDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"barrioDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"adicionalDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefAdicionalDireccion) {\r\n const elRef = this.inputRefAdicionalDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"adicionalDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroOtroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroOtroDireccion) {\r\n const elRef = this.inputRefNumeroOtroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroOtroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n precargaDatos() {\r\n if (this.ssps.getLocalStorage('facturacion')!) {\r\n this.facturacion = JSON.parse(this.ssps.getLocalStorage('facturacion')!);\r\n if (this.facturacion.direccion === \"\" || this.facturacion.direccion !== this.usuario.direccion) {\r\n this.facturacion.direccion = this.usuario.direccion\r\n this.facturacion.objetoDireccion = this.usuario.objetoDireccion\r\n }\r\n\r\n if (this.facturacion.telefono === \"\") {\r\n this.facturacion.telefono = this.usuario.telefono\r\n this.facturacion.indicativo = this.usuario.indicativo\r\n this.facturacion.extension = this.usuario.extension\r\n }\r\n if (this.facturacion.tipo === null || this.facturacion.tipo === undefined ||\r\n this.facturacion.tipo === \"\" ||\r\n this.facturacion.numero === null || this.facturacion.numero === undefined\r\n || this.facturacion.numero === \"\"\r\n ) {\r\n this.facturacion.tipo = this.usuario.tipo\r\n if (this.tipoCliente === 'natural') {\r\n this.facturacion.numero = this.usuario.numero\r\n }\r\n else {\r\n this.facturacion.numero = this.usuario.numero.length > 9 ? this.usuario.numero.substring(0, this.usuario.numero.length - 1) : this.usuario.numero\r\n this.facturacion.codigo = this.componentesService.calcularDigitoChequeo(this.usuario.numero.length > 9 ? this.usuario.numero.substring(0, this.usuario.numero.length - 1) : this.usuario.numero)\r\n }\r\n }\r\n if (this.facturacion.tipoCapital === null || this.facturacion.tipoCapital === undefined) {\r\n this.facturacion.tipoCapital = this.usuario.tipoCapital\r\n }\r\n if (this.facturacion.regimenTributario === null || this.facturacion.regimenTributario === undefined) {\r\n this.facturacion.regimenTributario = this.usuario.regimenTributario\r\n }\r\n this.direccion = this.facturacion.objetoDireccion ?? this.usuario.objetoDireccion\r\n if (this.direccion.tipo === \"Otro\") {\r\n this.clearValidatorsDireccion()\r\n }\r\n this.facturacion.codigo = this.componentesService.calcularDigitoChequeo(this.facturacion.numero)\r\n if (this.facturacion.tipoCapital === undefined || this.facturacion.tipoCapital === null ||\r\n this.facturacion.tipoCapital === \"\"\r\n ) {\r\n this.facturacion.tipoCapital = this.usuario.tipoCapital ?? ''\r\n }\r\n\r\n if (this.facturacion.regimenTributario === undefined || this.facturacion.regimenTributario === null ||\r\n this.facturacion.regimenTributario === \"\"\r\n ) {\r\n this.facturacion.regimenTributario = this.usuario.regimenTributario ?? ''\r\n }\r\n this.direccion = this.usuario.objetoDireccion ?? { barrio: \"\", adicional: \"\" }\r\n if (this.facturacion.departamento === undefined || this.facturacion.departamento === null\r\n || this.facturacion.departamento === '' || this.facturacion.departamento === 0) {\r\n this.facturacion.departamento = +(this.usuario.departamento ?? '')\r\n }\r\n if (this.facturacion.municipio === undefined || this.facturacion.municipio === null ||\r\n this.facturacion.municipio === \"\" || this.facturacion.municipio === 0\r\n ) {\r\n this.facturacion.municipio = +(this.usuario.municipio ?? '')\r\n }\r\n setTimeout(() => {\r\n this.tiposCapitalListado()\r\n if (this.facturacion.tipoCapital !== undefined && this.facturacion.tipoCapital !== null) {\r\n this.filtrarTipoRegimen({\r\n target: {\r\n value: this.facturacion.tipoCapital\r\n }\r\n }, this.facturacion.regimenTributario === undefined || this.facturacion.regimenTributario === null)\r\n }\r\n }, 2000);\r\n\r\n if (this.facturacion.agente === undefined || this.facturacion.agente === null\r\n ) {\r\n this.facturacion.agente = ''\r\n }\r\n }\r\n else {\r\n this.facturacion = {\r\n tipo: this.usuario.tipo ?? '',\r\n numero: this.usuario.numero ?? '',\r\n nombres: (this.usuario.primerNombre ?? '') + (this.usuario.segundoNombre !== null &&\r\n this.usuario.segundoNombre !== undefined && this.usuario.segundoNombre !== \"\" ?\r\n \" \" + this.usuario.segundoNombre : \"\"),\r\n apellidos: (this.usuario.primerApellido ?? '') + (this.usuario.segundoApellido !== null &&\r\n this.usuario.segundoApellido !== undefined && this.usuario.segundoApellido !== \"\" ?\r\n \" \" + this.usuario.segundoApellido : \"\"),\r\n razon: this.usuario.razon ?? '',\r\n indicativo: this.usuario.indicativo ?? '',\r\n telefono: this.usuario.telefono ?? '',\r\n extension: this.usuario.extension ?? '',\r\n celular: this.usuario.celular ?? '',\r\n correo: this.usuario.correo,\r\n facturaOtro: false,\r\n tipoCapital: this.usuario.tipoCapital ?? '',\r\n regimenTributario: this.usuario.regimenTributario ?? '',\r\n agente: '',\r\n codigo: this.usuario.codigo,\r\n direccion: this.usuario.direccion ?? '',\r\n departamento: this.usuario.departamento ?? '',\r\n municipio: this.usuario.municipio ?? ''\r\n }\r\n this.facturacion.codigo = this.componentesService.calcularDigitoChequeo(this.usuario.numero ?? '')\r\n this.direccion = this.usuario.objetoDireccion ?? { barrio: \"\", adicional: \"\" }\r\n if (this.direccion.tipo === \"Otro\") {\r\n this.clearValidatorsDireccion()\r\n }\r\n setTimeout(() => {\r\n this.tiposCapitalListado()\r\n if (this.facturacion.tipoCapital !== undefined && this.facturacion.tipoCapital !== null) {\r\n this.filtrarTipoRegimen({\r\n target: {\r\n value: this.facturacion.tipoCapital\r\n }\r\n }, this.facturacion.regimenTributario === undefined || this.facturacion.regimenTributario === null)\r\n }\r\n }, 1500);\r\n }\r\n setTimeout(() => {\r\n this.deshabilitarCmaposFinalizados()\r\n }, 1500);\r\n\r\n setTimeout(() => {\r\n this.deshabilitarCamposEditable()\r\n }, 2000);\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n\r\n if ((key === \"agente\" || key === \"ayudaAgente\") && this.facturacion.agente !== undefined && this.facturacion.agente !== null &&\r\n this.facturacion.agente !== \"\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n deshabilitarCamposEditable() {\r\n const controles = ['tipoDireccion', 'numeroOtroDireccion', 'tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'departamento', 'municipio', 'tipoCapital', 'regimenTributario'];\r\n for (const controlName of controles) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n this.formaForm.controls[controlName]?.disable({ onlySelf: true })\r\n }\r\n }\r\n }\r\n\r\n clearValidatorsEmpresa() {\r\n const controlesAEliminar = ['razon', 'codigo', 'tipoCapital'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n\r\n this.formaForm.clearValidators()\r\n this.formaForm.updateValueAndValidity()\r\n\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n this.formaForm.addValidators([this.componentesService.validalist('indicativo'),\r\n this.componentesService.codigonit('tipo', 'numero')])\r\n this.formaForm.updateValueAndValidity()\r\n }\r\n\r\n clearValidatorsNatural() {\r\n const controlesAEliminar = ['nombres', 'apellidos'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n\r\n this.formaForm.clearValidators()\r\n this.formaForm.updateValueAndValidity()\r\n\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n this.formaForm.addValidators([this.componentesService.minimos('numero'),\r\n this.componentesService.validalist('indicativo'),\r\n this.componentesService.codigonit('tipo', 'numero'),\r\n this.componentesService.digitoChequeo('numero', 'codigo')])\r\n this.formaForm.updateValueAndValidity()\r\n }\r\n\r\n /*rediociona al usuario si se equivova*/\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n\r\n /*carga datos select*/\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n\r\n }\r\n\r\n /*validacion de decimales input*/\r\n noPuntoComa(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comasnit = res;\r\n\r\n })\r\n }\r\n\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n noPuntote(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel2 = res;\r\n })\r\n }\r\n\r\n noPuntoex(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastex = res;\r\n })\r\n }\r\n\r\n\r\n noPuntoComacod(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comas = res;\r\n })\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n\r\n this.facturacion.nit = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n\r\n this.facturacion.telefono = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n\r\n this.facturacion.extension = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros4(numero: string) {\r\n this.facturacion.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n facturaOtroChange($event: any) {\r\n let isCheckeado = $event.target.checked;\r\n if (isCheckeado) {\r\n // this.facturacion = {\r\n // tipo: '',\r\n // numero: '',\r\n // nombres: '',\r\n // apellidos: '',\r\n // razon: '',\r\n // direccion: '',\r\n // indicativo: '',\r\n // telefono: '',\r\n // extension: '',\r\n // celular: '',\r\n // correo: '',\r\n // agente: '',\r\n // codigo: ''\r\n // }\r\n // this.direccion = { barrio: \"\", adicional: \"\" }\r\n this.facturacion.tipo = ''\r\n this.facturacion.numero = ''\r\n this.facturacion.nombres = ''\r\n this.facturacion.apellidos = ''\r\n this.facturacion.razon = ''\r\n this.facturacion.indicativo = ''\r\n this.facturacion.telefono = ''\r\n this.facturacion.extension = ''\r\n this.facturacion.celular = ''\r\n this.facturacion.correo = ''\r\n this.facturacion.codigo = ''\r\n }\r\n else {\r\n this.precargaDatos()\r\n }\r\n setTimeout(() => {\r\n this.filtrarTipoRegimen({\r\n target: {\r\n value: this.facturacion.tipoCapital\r\n }\r\n }, this.facturacion.regimenTributario === undefined || this.facturacion.regimenTributario === null)\r\n }, 2000);\r\n\r\n }\r\n\r\n /*rediociona al usuario si se equivova*/\r\n redireciona() {\r\n this.router.navigate(['/flujo/entrega']);\r\n this.componentesService.emitircambio(\"reveentregan\");\r\n }\r\n\r\n tiposDireccion() {\r\n this.ssps.tiposDireccion()\r\n .subscribe((res: any) => {\r\n this.tipoDireccion = res;\r\n });\r\n }\r\n\r\n changeTipoDireccion($event: any) {\r\n let tipoDireccion = $event.target.value;\r\n if (tipoDireccion === \"Otro\") {\r\n this.direccion = {\r\n tipo: tipoDireccion\r\n }\r\n this.clearValidatorsDireccion()\r\n }\r\n else {\r\n this.addValidatorsDireccion()\r\n }\r\n }\r\n\r\n clearValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(200)])\r\n }\r\n else {\r\n control.clearValidators();\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsNatural() {\r\n const controlesAEliminar = ['nombres', 'apellidos'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-Z ]{2,60}')])\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsEmpresa() {\r\n const controlesAEliminar = ['razon', 'codigo', 'tipoCapital'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === 'codigo') {\r\n control.addValidators([Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n Validators.pattern(\"^[0-9]*$\")])\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)])\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.clearValidators();\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ])\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n mostrarCampoAgente($event: any) {\r\n this.ayudaAgente = $event.target.checked;\r\n const control = this.formaForm.get(\"agente\");\r\n if ($event.target.checked) {\r\n control?.addValidators([\r\n Validators.required,\r\n Validators.pattern('^[A-Z]{2}[0-9]{3}$'),\r\n Validators.minLength(5),\r\n Validators.maxLength(5)\r\n ])\r\n }\r\n else {\r\n control?.clearValidators();\r\n }\r\n control?.setValue(\"\")\r\n control?.updateValueAndValidity();\r\n }\r\n\r\n changeTipoIdentificacion($event: any) {\r\n let tipo = $event.target.value;\r\n this.tiposCapitalListado()\r\n if (tipo !== 'NI') {\r\n this.clearValidatorsEmpresa()\r\n this.addValidatorsNatural()\r\n this.facturacion.numero = this.usuario.numero\r\n this.facturacion.codigo = \"\"\r\n }\r\n else {\r\n this.facturacion.numero = \"\"\r\n this.facturacion.codigo = \"\"\r\n this.clearValidatorsNatural()\r\n this.addValidatorsEmpresa()\r\n }\r\n this.filtrarTipoRegimen({\r\n target: {\r\n value: this.facturacion.tipoCapital\r\n }\r\n }, this.facturacion.regimenTributario === undefined || this.facturacion.regimenTributario === null)\r\n }\r\n\r\n tiposCapitalListado() {\r\n this.ssps.tiposCapital()\r\n .subscribe((res: any) => {\r\n this.tiposCapital = res.filter((r: string) => this.facturacion.tipo !== 'NI' ? r === \"PRIVADO\" : r !== \"\");\r\n });\r\n }\r\n\r\n\r\n tiposRegimenTributario() {\r\n this.ssps.tiposRegimenTributario()\r\n .subscribe((res: any) => {\r\n this.regimenTributarioListado = res;\r\n this.regimenTributario = res\r\n });\r\n }\r\n\r\n filtrarTipoRegimen($event: any, limpiarRegimen: any) {\r\n let tipoCapital = $event.target.value;\r\n if (this.facturacion.tipo !== \"NI\") {\r\n this.regimenTributario = this.regimenTributarioListado.filter((r: string) => r === \"No Responsable de IVA\"\r\n || r === \"Régimen simple de tributación PN\")\r\n }\r\n else if (tipoCapital === \"PUBLICO\") {\r\n this.regimenTributario = this.regimenTributarioListado.filter((r: string) => r === \"Entidad del Estado\")\r\n }\r\n else {\r\n this.regimenTributario = this.regimenTributarioListado.filter((r: string) => r !== \"Entidad del Estado\" &&\r\n r !== \"No Responsable de IVA\" && r !== \"Régimen simple de tributación PN\")\r\n }\r\n if (limpiarRegimen) {\r\n const control = this.formaForm.get(\"regimenTributario\");\r\n if (control) {\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n let departamento = this.facturacion.departamento\r\n this.formaForm.get(\"departamento\")!.setValue(this.facturacion.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n }, 1000);\r\n });\r\n }\r\n changeDepartamento($event: any) {\r\n let departamento = $event.target.value;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.facturacion.municipio = undefined\r\n this.formaForm.get(\"municipio\")!.setValue(undefined, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n}\r\n","
\r\n\r\n
Facturación electrónica
\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
Debe seleccionar un tipo de documento
\r\n
\r\n
\r\n \r\n \r\n
Debe seleccionar un tipo de documento
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
¡Identificación no válido!
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Número de verificación no válido
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Nombres no son válidos
\r\n
\r\n
\r\n \r\n \r\n
Apellidos no son válidos
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n ¡La razón social no es válida!
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Tipo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Barrio no válido.
\r\n
\r\n
\r\n \r\n \r\n
Direccion inválida
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Departamento no válido, selecciona una opción del listado
\r\n
\r\n
\r\n \r\n \r\n
Municipio no válido, selecciona una opción del listado
\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
Indicativo no válido, selecciona una opción de la lista
\r\n
El campo\r\n no\r\n puede tener decimales
\r\n
\r\n\r\n
\r\n \r\n
Teléfono no válido, debe ser un número de 7 dígitos
\r\n
El campo\r\n no puede tener comas
\r\n\r\n
\r\n
\r\n \r\n
Extension no válido
\r\n
El campo\r\n no puede tener comas
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
Celular no válido, ingresar número de 10 dígitos
\r\n\r\n
El campo no\r\n puede tener comas
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Capital no válido
\r\n
\r\n
\r\n \r\n \r\n\r\n
Regimen tributario no válido
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
Código de agente no valido, formato debe ser XX000. Ejemplo AA000
\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, ChangeDetectorRef, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '../../../../domain/servicios/log.service'\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-datosempresa',\r\n templateUrl: './datosempresa.component.html',\r\n styleUrls: ['./datosempresa.component.css']\r\n})\r\nexport class DatosempresaComponent implements OnInit {\r\n\r\n @ViewChild('inputRefRazon')\r\n inputRefRazon!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo1')\r\n inputRefCorreo1!: { nativeElement: any; };\r\n @ViewChild('inputRefInstitucion')\r\n inputRefInstitucion!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesional')\r\n inputRefProfesional!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesion')\r\n inputRefProfesion!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefDireccion')\r\n inputRefDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefTipoNumeroDireccion')\r\n inputRefTipoNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion')\r\n inputRefNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion2')\r\n inputRefNumeroDireccion2!: { nativeElement: any; };\r\n @ViewChild('inputRefBarrioDireccion')\r\n inputRefBarrioDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefAdicionalDireccion')\r\n inputRefAdicionalDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroOtroDireccion')\r\n inputRefNumeroOtroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefDescripcionEstampilla')\r\n inputRefDescripcionEstampilla!: { nativeElement: any; };\r\n\r\n @Output() datosempres: EventEmitter = new EventEmitter();\r\n formaForm!: FormGroup;\r\n cambiologo2: boolean = false;\r\n cambiologo: boolean = true;\r\n profesional: boolean = false;\r\n documentob: boolean = false;\r\n cantidad: number = 0;\r\n totalCantidad: number = 0;\r\n usuario: any = {\r\n documentos: [],\r\n ip: ''\r\n };\r\n pago: any = {\r\n };\r\n archivos: boolean = false;\r\n tipos: boolean = false;\r\n mayor: boolean = false;\r\n files: boolean = false;\r\n showDocumentsB: boolean = false;\r\n buttons: any = [] = [];\r\n validateformats: any[] = [];\r\n error: string = 'Formato no válido';\r\n queryRuta: any = null\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n comas: boolean = false;\r\n indicativos: any[] = [];\r\n comasnit: boolean = false;\r\n comasecnomi: boolean = false;\r\n depar: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n realizoPago = \"N\"\r\n\r\n actualizacion = false\r\n direccion: any = {}\r\n tipoDireccion: any[] = [];\r\n regimenTributarioListado: any[] = []\r\n regimenTributario: any[] = []\r\n tiposCapital: any[] = []\r\n preciosd: any[] = [];\r\n\r\n nuevaEstampilla: any = {\r\n descripcion: \"\",\r\n tipo: \"\",\r\n valor: \"\"\r\n };\r\n\r\n estampillas: any[] = []\r\n\r\n agregarNuevaEstampilla = false\r\n totalDescuentos = 0;\r\n totalDescuentosValor = 0;\r\n departamentoExcluidoIva = \"\"\r\n tipoEmpresa = \"\"\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n public datepipe: DatePipe, private route: ActivatedRoute,\r\n private logger: LogService,\r\n private alert: AlertsService,\r\n private el: ElementRef) {\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n\r\n razon: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)]],\r\n correo: ['', [Validators.required,\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n correo1: ['', [Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n documentos: this.fb.array([]),\r\n tipo: [null],\r\n numero: [null],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [0, [\r\n Validators.maxLength(5)\r\n ]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n departamento: ['', [Validators.required]],\r\n municipio: ['', [Validators.required]],\r\n tipoCapital: ['', [Validators.required]],\r\n regimenTributario: ['', [Validators.required]],\r\n actividadEconomica: [0, []],\r\n tipoDireccion: ['', [\r\n Validators.required\r\n ]],\r\n tipoNumeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion2: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n barrioDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n adicionalDireccion: ['', [\r\n Validators.maxLength(200)\r\n ]],\r\n numeroOtroDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n aplicaEstampillas: ['', [\r\n Validators.required\r\n ]],\r\n descripcionEstampilla: ['', []],\r\n tipoEstampilla: ['', []],\r\n valorEstampilla: ['', []]\r\n }, {\r\n validators: [this.componentesService.economica('actividadEconomica')]\r\n //this.componentesService.soniguales('correo', 'correo1'),\r\n }\r\n );\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.setOnChangesInputs()\r\n this.totalCantidad = 1;\r\n this.ssps.obtenerIpValor()\r\n this.tiposDireccion()\r\n this.tiposRegimenTributario()\r\n this.indicativo();\r\n this.departamentos();\r\n this.precios()\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.actualizacion = this.ssps.getLocalStorage(\"actualizacion\") ?\r\n JSON.parse(this.ssps.getLocalStorage(\"actualizacion\")!) : false\r\n this.logger.log(\"Sin query datos\", \"TODO\")\r\n this.mapearDatos()\r\n this.componentesService.emitircambio(\"mostrarBarra\");\r\n if (this.ssps.getLocalStorage(\"pago\")) {\r\n this.pago = JSON.parse(this.ssps.getLocalStorage(\"pago\")!)\r\n this.realizoPago = this.pago.realizoPago\r\n if (this.pago.realizoPago === \"S\") {\r\n this.deshabilitarCamposRegimen()\r\n }\r\n }\r\n else {\r\n let valorIva: any = Math.trunc(this.usuario.costoBase * (this.usuario.iva / 100))\r\n let valorReteIva: any = Math.trunc(this.usuario.costoBase * ((this.usuario.reteiva ?? 0) / 100))\r\n this.pago = {\r\n ordenPedidoId: JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!),\r\n solicitudId: JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!),\r\n costoBase: Math.trunc(this.usuario.costoBase),\r\n impuestos: Math.trunc(valorIva - valorReteIva),\r\n valorTotal: Math.trunc(this.usuario.costo - (this.usuario.descuentoCupon ?? 0)),\r\n mensaje: '',\r\n estado: 'SIN_PAGO',\r\n url: '',\r\n iva: Math.trunc(this.usuario.iva),\r\n ica: this.usuario.ica ?? 0,\r\n reteiva: Math.trunc(this.usuario.reteiva ?? 0),\r\n ivaValor: valorIva,\r\n icaValor: Math.trunc(this.usuario.costoBase * (this.usuario.ica / 100)),\r\n documentos: [],\r\n pagoPSE: false,\r\n descuentoCupon: Math.trunc(this.usuario.descuentoCupon ?? 0),\r\n realizoPago: \"N\",\r\n fechaPago: \"\",\r\n referenciaPago: '',\r\n usuarioRegistraPago: 'N',\r\n estampillas: this.usuario.estampillas,\r\n reteIvaValor: Math.trunc(valorReteIva)\r\n }\r\n if (!this.pago.ordenPedidoId) {\r\n this.pago.ordenPedidoId = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n }\r\n if (!this.pago.solicitudId) {\r\n this.pago.solicitudId = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago))\r\n }\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"razon\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefRazon) {\r\n const elRef = this.inputRefRazon.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"razon\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n this.formaForm.get(\"correo1\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo1) {\r\n const elRef = this.inputRefCorreo1.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo1\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefTipoNumeroDireccion) {\r\n const elRef = this.inputRefTipoNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion) {\r\n const elRef = this.inputRefNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion2\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion2) {\r\n const elRef = this.inputRefNumeroDireccion2.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion2\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"barrioDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefBarrioDireccion) {\r\n const elRef = this.inputRefBarrioDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"barrioDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"adicionalDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefAdicionalDireccion) {\r\n const elRef = this.inputRefAdicionalDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"adicionalDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroOtroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroOtroDireccion) {\r\n const elRef = this.inputRefNumeroOtroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroOtroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"descripcionEstampilla\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefDescripcionEstampilla) {\r\n const elRef = this.inputRefDescripcionEstampilla.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"descripcionEstampilla\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get('tipo')?.disable();\r\n this.formaForm.get('numero')?.disable();\r\n }\r\n\r\n regresarResumen() {\r\n //this.alert.showSssps();\r\n this.ssps.saveLocalStorage(\"regresaFormulario\", \"true\")\r\n this.router.navigate(['/']);\r\n }\r\n\r\n //TODO:creacion de forms arrays\r\n get documentsDocuments() {\r\n return this.formaForm.get('documentos') as FormArray;\r\n }\r\n\r\n //TODO:crear botones\r\n crearButtons() {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo', subtitle: 'El formato de documento permitido para cargar es .PDF', accept: \".pdf\"\r\n }\r\n if (this.documentsDocuments.controls.length > 0) {\r\n for (let i = 0; i < this.documentsDocuments.controls.length; i++) {\r\n this.buttons[i] = estilos;\r\n this.validateformats[i] = false;\r\n }\r\n }\r\n }\r\n\r\n //TODO agrega controls con valor requerido\r\n addControlDocument() {\r\n this.documentsDocuments.push(this.fb.control(null));\r\n }\r\n\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario enviuo de los mismos localstorage*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n this.logger.log(\"ngSubmir field error \" + key, this.formaForm.controls[key].errors)\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n if (this.campoValidacionDireccion()) return;\r\n if (this.totalDescuentos > 10) {\r\n this.alert.showError(\"Las estampillas no pueden superar un 10% de descuento.\", false, \"¡Alerta!\", false, null, null, false)\r\n return;\r\n }\r\n\r\n if (this.realizoPago !== \"S\") {\r\n this.validarRegimenPrecios()\r\n }\r\n let { razon, correo1, correo, celular, telefono, extension, indicativo,\r\n departamento, municipio, tipoCapital, actividadEconomica, regimenTributario,\r\n tipoDireccion, tipoNumeroDireccion, numeroDireccion, numeroDireccion2,\r\n barrioDireccion, adicionalDireccion, numeroOtroDireccion } = this.formaForm.getRawValue();\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion,\r\n tipoNumero: tipoNumeroDireccion,\r\n numero: numeroDireccion,\r\n numero2: numeroDireccion2,\r\n barrio: barrioDireccion,\r\n adicional: adicionalDireccion ?? \"\",\r\n tipoOtroNumero: numeroOtroDireccion\r\n }\r\n\r\n let datos = {\r\n razon: razon,\r\n correo: correo,\r\n correo1: correo1,\r\n documentos: this.buttons.filter((f: { file: any; }) => f.file),\r\n ip: this.ssps.ip,\r\n telefono,\r\n extension,\r\n indicativo,\r\n celular,\r\n departamento,\r\n municipio,\r\n tipoCapital,\r\n actividadEconomica,\r\n regimenTributario,\r\n objetoDireccion: objetoDireccion,\r\n direccion: (objetoDireccion.tipo !== \"Otro\" ? (objetoDireccion.tipo + \" \" + objetoDireccion.tipoNumero + \" #\" + objetoDireccion.numero + \"-\" +\r\n objetoDireccion.numero2) : objetoDireccion.tipoOtroNumero) +\r\n \" BARRIO \" + objetoDireccion.barrio + (objetoDireccion.adicional !== \"\" ? \" ADICIONAL \" + objetoDireccion.adicional : \"\")\r\n }\r\n\r\n Object.assign(this.usuario, datos);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.componentesService.emitircambio(\"actualizarOrden\");\r\n }\r\n this.componentesService.emitircambio(\"datosempresa\");\r\n this.router.navigate(['/flujo/solicitante']);\r\n }\r\n\r\n\r\n /* estado de botones logos cambiantes*/\r\n estado(valor: string) {\r\n if (this.cantidad == 0) {\r\n // this.cambiologo2 = true;\r\n // this.cambiologo = false;\r\n this.cantidad = this.cantidad + 1;\r\n }\r\n\r\n }\r\n\r\n //cambio de estilos animacion boton archivos\r\n validar() {\r\n\r\n return (this.cambiologo = true) ? ' animate__animated animate__fadeIn animate__fast' : 'animate__animated animate__fadeOut animate__fast';\r\n }\r\n\r\n //TODO:implementacion de creacion de buttos\r\n CreateDocument(documentName: string, id: String) {\r\n let indice = this.buttons.findIndex((f: { id: String; }) => f.id === id);\r\n this.logger.log(\"indicie\", indice)\r\n if (indice > -1) {\r\n this.buttons = this.buttons.filter((f: { id: String; }) => f.id !== id)\r\n this.documentsDocuments.removeAt(indice)\r\n }\r\n else {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo',\r\n subtitle: 'El formato de documento permitido para cargar es .PDF',\r\n name: documentName,\r\n id: id, \r\n accept: \".pdf\"\r\n }\r\n this.buttons.push(estilos)\r\n this.addControlDocument();\r\n }\r\n }\r\n\r\n ExisteDocumento(id: String) {\r\n return this.usuario.documentos.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n ExisteDocumentoCargado(id: String) {\r\n return this.usuario.documentosCargados && this.usuario.documentosCargados.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n //TODO:vision de documents\r\n documentDocs(event: any) {\r\n this.showDocumentsB = true;\r\n }\r\n\r\n\r\n /*validacion de salerta campos iguales*/\r\n get correo2NoValido() {\r\n const pass1 = this.formaForm.get('correo')!.value;\r\n const pass2 = this.formaForm.get('correo1')!.value;\r\n\r\n return (pass1 === pass2) ? false : true;\r\n }\r\n\r\n\r\n\r\n /*validar tamaño de archivo*/\r\n getFileDetails(file: any, index: number) {\r\n\r\n let fileToUpload = file[0];\r\n\r\n const botonActualizado = { ...this.buttons[index] };\r\n\r\n let tamañoEnBytes = fileToUpload.size;\r\n let tamañoEnMegabytes = tamañoEnBytes / (1024 * 1024);\r\n\r\n if (fileToUpload.type == \"application/pdf\") {\r\n if (tamañoEnMegabytes > 10) {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n }\r\n if (tamañoEnMegabytes < 10) {\r\n const reader = new FileReader()\r\n reader.onload = () => {\r\n const b64 = reader.result as string\r\n botonActualizado.file = b64\r\n }\r\n\r\n if (fileToUpload) {\r\n reader.readAsDataURL(fileToUpload)\r\n }\r\n\r\n botonActualizado.fondo = '#09CB34';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Documento cargado con exito';\r\n botonActualizado.subtitle = fileToUpload.name;\r\n\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = false;\r\n this.cantidad += 1;\r\n }\r\n }\r\n else {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n\r\n }\r\n\r\n }\r\n\r\n //TODO:implementacion de datos\r\n isValidFieldInArray(formArray: FormArray, index: number) {\r\n return formArray.controls[index].errors\r\n && formArray.controls[index].touched;\r\n }\r\n\r\n mapearDatos() {\r\n if (this.ssps.getLocalStorage(\"tipoEmpresa\")) {\r\n this.tipoEmpresa = this.ssps.getLocalStorage('tipoEmpresa')!\r\n this.usuario.tipoCapital = this.ssps.getLocalStorage('tipoEmpresa')!.toUpperCase()\r\n }\r\n else {\r\n this.tipoEmpresa = this.usuario.tipoCapital\r\n }\r\n /*asignacion de valores desde el cervicio crm*/\r\n this.formaForm.get(\"departamento\")!.setValue(this.usuario.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n //Mapear documentos del localStorage\r\n if (this.usuario.documentos) {\r\n this.buttons = this.usuario.documentos\r\n this.cantidad = this.usuario.documentos.length\r\n this.usuario.documentos.forEach((element: any, index: any) => {\r\n this.validateformats[index] = false;\r\n this.addControlDocument();\r\n });\r\n }\r\n else {\r\n this.usuario.documentos = []\r\n }\r\n\r\n this.direccion = this.usuario.objetoDireccion ?? { barrio: \"\", adicional: \"\" }\r\n if (this.direccion.tipo === \"Otro\") {\r\n this.clearValidatorsDireccion()\r\n }\r\n this.estampillas = this.usuario.estampillas ?? []\r\n this.logger.log(\"this.usuario.regimenTributario\", this.usuario.regimenTributario)\r\n this.usuario.aplicaEstampillas = this.usuario.estampillas !== undefined && this.usuario.estampillas !== null && this.usuario.estampillas.length > 0 ? 'si' : 'no'\r\n setTimeout(() => {\r\n this.tiposCapitalListado()\r\n this.deshabilitarCmaposFinalizados()\r\n this.habilitarAplicaEstampillas({\r\n target: {\r\n value: this.usuario.aplicaEstampillas\r\n }\r\n })\r\n if (this.usuario.tipoCapital !== undefined && this.usuario.tipoCapital !== null && this.usuario.tipoCapital !== \"\") {\r\n this.filtrarTipoRegimen({\r\n target: {\r\n value: this.usuario.tipoCapital\r\n }\r\n }, this.usuario.regimenTributario === undefined || this.usuario.regimenTributario === null)\r\n }\r\n else {\r\n const controlEstampilla = this.formaForm.get(\"aplicaEstampillas\");\r\n if (controlEstampilla) {\r\n controlEstampilla.clearValidators();\r\n controlEstampilla.setValue(\"\")\r\n controlEstampilla.updateValueAndValidity();\r\n }\r\n }\r\n }, 1000);\r\n setTimeout(() => {\r\n this.habilitarNuevaEstampilla(false)\r\n if (this.estampillas.length > 0) {\r\n this.totalDescuentos = this.estampillas.map(a => +a.porcentaje).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.totalDescuentosValor = this.estampillas.map(a => +a.valor).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n }\r\n\r\n }, 2000);\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && key !== \"correo1\" && (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n deshabilitarCamposRegimen() {\r\n const controlesADesactivar = ['tipoCapital', 'regimenTributario', 'departamento', 'municipio', 'aplicaEstampillas'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesADesactivar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.disable({ onlySelf: true })\r\n }\r\n }\r\n }\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n noPuntote(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel2 = res;\r\n })\r\n }\r\n\r\n noPuntoex(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastex = res;\r\n })\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n\r\n this.usuario.telefono = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n\r\n this.usuario.extension = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros4(numero: string) {\r\n this.usuario.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n noPuntoComacod(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comas = res;\r\n })\r\n }\r\n /*carga datos select*/\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n\r\n }\r\n\r\n noPuntoComa(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comasnit = res;\r\n })\r\n }\r\n\r\n noPuntoComaeconomi(event: any) {\r\n\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n\r\n this.comasecnomi = res;\r\n\r\n })\r\n\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n let departamento = this.usuario.departamento\r\n this.formaForm.get(\"departamento\")!.setValue(this.usuario.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n }, 1000);\r\n });\r\n }\r\n\r\n tiposDireccion() {\r\n this.ssps.tiposDireccion()\r\n .subscribe((res: any) => {\r\n this.tipoDireccion = res;\r\n });\r\n }\r\n\r\n tiposRegimenTributario() {\r\n this.ssps.tiposRegimenTributario()\r\n .subscribe((res: any) => {\r\n this.regimenTributarioListado = res;\r\n this.regimenTributario = res\r\n });\r\n }\r\n\r\n tiposCapitalListado() {\r\n this.ssps.tiposCapital()\r\n .subscribe((res: any) => {\r\n this.tiposCapital = res.filter((r: string) => r === \"MIXTO\" || r === this.tipoEmpresa.toUpperCase());\r\n });\r\n }\r\n\r\n changeTipoDireccion($event: any) {\r\n let tipoDireccion = $event.target.value;\r\n if (tipoDireccion === \"Otro\") {\r\n this.direccion = {\r\n tipo: tipoDireccion\r\n }\r\n this.clearValidatorsDireccion()\r\n }\r\n else {\r\n this.addValidatorsDireccion()\r\n }\r\n }\r\n\r\n changeDepartamento($event: any) {\r\n let departamento = $event.target.value;\r\n if (+departamento === 88) {\r\n this.departamentoExcluidoIva = \"Con base al artículo ART. 423 del Estatuto tributario Exclusión del impuesto en el territorio intendencial de San Andrés y Providencia. En la Intendencia Especial de San Andrés y Providencia no se cobrará impuesto nacional a las ventas.\"\r\n }\r\n else if (+departamento === 91) {\r\n this.departamentoExcluidoIva = \"Conforme al artículo 270 de la Ley 223 de 1995 los servicios prestados en el departamento de Amazonas se encuentran excluidos de IVA.\"\r\n }\r\n else {\r\n this.departamentoExcluidoIva = \"\"\r\n }\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.usuario.municipio = undefined\r\n this.formaForm.get(\"municipio\")!.setValue(undefined, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n\r\n clearValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(200)])\r\n }\r\n else {\r\n control.clearValidators();\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.clearValidators();\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ])\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsEstampillas() {\r\n const controlesAEliminar = ['descripcionEstampilla', 'tipoEstampilla',\r\n 'valorEstampilla'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.addValidators([\r\n Validators.required\r\n ])\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n clearValidatorsEstampillas() {\r\n const controlesAEliminar = ['descripcionEstampilla', 'tipoEstampilla',\r\n 'valorEstampilla'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n filtrarTipoRegimen($event: any, limpiarRegimen: any) {\r\n let tipoCapital = $event.target.value;\r\n if (tipoCapital === \"PUBLICO\") {\r\n this.regimenTributario = this.regimenTributarioListado.filter((r: string) => r === \"Entidad del Estado\")\r\n const controlEstampilla = this.formaForm.get(\"aplicaEstampillas\");\r\n if (controlEstampilla) {\r\n controlEstampilla.addValidators([\r\n Validators.required\r\n ])\r\n if (limpiarRegimen) {\r\n controlEstampilla.setValue(\"\")\r\n }\r\n\r\n controlEstampilla.updateValueAndValidity();\r\n }\r\n }\r\n else {\r\n this.regimenTributario = this.regimenTributarioListado.filter((r: string) => r !== \"Entidad del Estado\" &&\r\n r !== \"No Responsable de IVA\" && r !== \"Régimen simple de tributación PN\")\r\n const controlEstampilla = this.formaForm.get(\"aplicaEstampillas\");\r\n if (controlEstampilla) {\r\n controlEstampilla.clearValidators();\r\n if (limpiarRegimen) {\r\n controlEstampilla.setValue(\"\")\r\n }\r\n controlEstampilla.updateValueAndValidity();\r\n }\r\n }\r\n if (limpiarRegimen) {\r\n const control = this.formaForm.get(\"regimenTributario\");\r\n if (control) {\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n validarRegimenPrecios() {\r\n this.logger.log(\"this.usuario.dispo.toLowerCase()\", this.usuario.dispo.toLowerCase())\r\n let objetoDispositivo: any = this.preciosd.filter((res) => { return res.nombre.toLowerCase() == this.usuario.dispo.toLowerCase() })[0]\r\n this.usuario.costoBase = Math.trunc(this.pago.costoBase ?? (this.usuario.costoBase ?? 0))\r\n let tipoRegimen = this.usuario.regimenTributario;\r\n let departamento = this.depar.filter(d => +d.codigo_dep === +this.usuario.departamento)[0].Departamento \r\n if ((tipoRegimen === \"Entidad del Estado\" || tipoRegimen === \"Gran Contribuyente DIAN\") && departamento === \"BOGOTA\") {\r\n let valorIca: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (objetoDispositivo.ica / 100));\r\n let valorIva: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (objetoDispositivo.iva / 100))\r\n let valorReteIva: any = Math.trunc(valorIva * (objetoDispositivo.reteiva / 100))\r\n this.usuario.iva = Math.trunc(objetoDispositivo.iva)\r\n this.usuario.ica = objetoDispositivo.ica\r\n this.usuario.reteiva = Math.trunc(objetoDispositivo.reteiva)\r\n\r\n if (tipoRegimen === \"Entidad del Estado\") {\r\n //Guardar los descuentos por estampillas\r\n this.usuario.estampillas = this.estampillas\r\n this.pago.estampillas = this.estampillas\r\n }\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n\r\n this.usuario.descuentos = Math.trunc(this.totalDescuentosValor)\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva - this.totalDescuentosValor)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n else if (departamento === \"ARCHIPIÉLAGO DE SAN ANDRÉS, PROVIDENCIA Y SANTA CATALINA\" || departamento === \"AMAZONAS\") {\r\n let valorIca = 0;\r\n let valorIva = 0\r\n let valorReteIva = 0\r\n this.usuario.iva = 0\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = 0\r\n if (tipoRegimen === \"Entidad del Estado\") {\r\n //Guardar los descuentos por estampillas\r\n this.usuario.estampillas = this.estampillas\r\n this.pago.estampillas = this.estampillas\r\n }\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n\r\n this.usuario.descuentos = Math.trunc(this.totalDescuentosValor)\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva - this.totalDescuentosValor)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n else if (tipoRegimen === \"Entidad del Estado\" || tipoRegimen === \"Gran Contribuyente DIAN\") {\r\n let valorIca = 0;\r\n let valorIva: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (objetoDispositivo.iva / 100))\r\n let valorReteIva: any = Math.trunc(valorIva * (objetoDispositivo.reteiva / 100))\r\n this.usuario.iva = Math.trunc(objetoDispositivo.iva)\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = Math.trunc(objetoDispositivo.reteiva)\r\n\r\n if (tipoRegimen === \"Entidad del Estado\") {\r\n //Guardar los descuentos por estampillas\r\n this.usuario.estampillas = this.estampillas\r\n this.pago.estampillas = this.estampillas\r\n }\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.usuario.descuentos = Math.trunc(this.totalDescuentosValor)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva - this.totalDescuentosValor)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n else {\r\n let valorIca = 0;\r\n let valorIva: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (objetoDispositivo.iva / 100))\r\n let valorReteIva: any = 0\r\n this.usuario.iva = Math.trunc(objetoDispositivo.iva)\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = 0 \r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva)\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n }\r\n\r\n precios() {\r\n this.ssps.precios()\r\n .subscribe((res: any) => {\r\n this.preciosd = res.precios;\r\n })\r\n }\r\n\r\n agregarEstampilla() {\r\n if (this.verificarCampoAndTouch(\"descripcionEstampilla\") || this.verificarCampoAndTouch(\"tipoEstampilla\") ||\r\n this.verificarCampoAndTouch(\"valorEstampilla\"))\r\n return;\r\n\r\n let nuevaEstampilla = {\r\n descripcion: this.nuevaEstampilla.descripcion,\r\n porcentaje: this.nuevaEstampilla.tipo === \"P\" ? Math.trunc(+this.nuevaEstampilla.valor) : Math.trunc((+this.nuevaEstampilla.valor / this.usuario.costoBase) * 100),\r\n valor: this.nuevaEstampilla.tipo === \"V\" ? Math.trunc(+this.nuevaEstampilla.valor) : Math.trunc(+this.nuevaEstampilla.valor * (this.usuario.costoBase / 100))\r\n }\r\n\r\n this.estampillas.push(nuevaEstampilla)\r\n\r\n this.nuevaEstampilla = {\r\n descripcion: \"\",\r\n tipo: \"\",\r\n valor: \"\"\r\n };\r\n this.agregarNuevaEstampilla = false\r\n this.clearValidatorsEstampillas()\r\n setTimeout(() => {\r\n if (this.estampillas.length > 0) {\r\n this.totalDescuentos = this.estampillas.map(a => +a.porcentaje).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.totalDescuentosValor = this.estampillas.map(a => +a.valor).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n }\r\n }, 1000);\r\n }\r\n\r\n verificarCampoAndTouch(campo: any) {\r\n this.formaForm.controls[campo].markAsTouched()\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched\r\n }\r\n\r\n habilitarAplicaEstampillas($event: any) {\r\n let aplica = $event.target.value;\r\n if (aplica === \"si\") {\r\n this.agregarNuevaEstampilla = false;\r\n this.formaForm.get(\"descripcionEstampilla\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefDescripcionEstampilla) {\r\n const elRef = this.inputRefDescripcionEstampilla.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"descripcionEstampilla\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this.clearValidatorsEstampillas()\r\n this.estampillas = []\r\n this.usuario.estampillas = []\r\n }\r\n }\r\n\r\n habilitarNuevaEstampilla(valor: any) {\r\n this.agregarNuevaEstampilla = valor\r\n if (valor) {\r\n this.addValidatorsEstampillas()\r\n }\r\n else {\r\n this.clearValidatorsEstampillas()\r\n }\r\n }\r\n\r\n eliminarEstampilla(index: any) {\r\n this.estampillas.splice(index, 1)\r\n setTimeout(() => {\r\n if (this.estampillas.length > 0) {\r\n this.totalDescuentos = this.estampillas.map(a => +a.porcentaje).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n this.totalDescuentosValor = this.estampillas.map(a => +a.valor).reduce(function (a, b) {\r\n return a + b;\r\n });\r\n }\r\n }, 1000);\r\n\r\n }\r\n\r\n campoValidacionDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'numeroOtroDireccion'];\r\n //Validar que si tiene el +, mostrar error y enfocar el campo\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n let valor = control.getRawValue();\r\n if (valor !== null && valor !== undefined && valor.includes(\"+\")) {\r\n console.log(\"valor elemento\", control.getRawValue())\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + controlName + '\"]');\r\n invalidControl?.focus();\r\n control.setErrors({\r\n formatoValido: false\r\n })\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n","
\r\n\r\n
\r\n
Información básica empresa
\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
Razón social no puede ser vacio, ni puede tener más de 60 caracteres
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n
\r\n Los correos no son iguales
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Tipo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Barrio no válido.
\r\n
\r\n
\r\n \r\n \r\n
Complemento dirección no válido
\r\n
\r\n
\r\n
\r\n
\r\n
La dirección no puede contener el carácter especial +
\r\n
\r\n
\r\n \r\n \r\n
Departamento no válido, selecciona una opción del listado
\r\n
\r\n
\r\n \r\n \r\n
Municipio no válido, selecciona una opción del listado
\r\n
\r\n
\r\n
\r\n
\r\n {{departamentoExcluidoIva}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
Indicativo no válido, selecciona una opción de la lista
\r\n
El campo\r\n no\r\n puede tener decimales
\r\n
\r\n\r\n
\r\n \r\n
Teléfono no válido, debe ser un número de 7 dígitos
\r\n
El\r\n campo\r\n no puede tener comas
\r\n\r\n
\r\n
\r\n \r\n
Extension no válido
\r\n
El campo\r\n no puede tener comas
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
Celular no válido, ingresar número de 10 dígitos
\r\n\r\n
El campo no\r\n puede tener comas
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Capital no válido
\r\n
\r\n
\r\n \r\n \r\n\r\n
Regimen tributario no válido
\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
Campo requerido
\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
Campo no válido
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Debe seleccionar una opción
\r\n
\r\n
\r\n \r\n
Campo no válido
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
0\" class=\"row\" style=\"text-align: center;\">\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 DESCRIPCIÓN\r\n \r\n PORCENTAJE\r\n \r\n VALOR\r\n \r\n
\r\n {{estampilla.descripcion}}\r\n \r\n {{estampilla.porcentaje}}%\r\n \r\n {{estampilla.valor | currency:'COP'}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Codigo actividad economica no válido
\r\n
El\r\n campo no puede tener decimales
\r\n
\r\n \r\n Ver listado de código actividad económica\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

{{buttons[i].title}}\r\n
\r\n {{buttons[i].subtitle}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{error}}
\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, OnChanges, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-entrega',\r\n templateUrl: './entrega.component.html',\r\n styleUrls: ['./entrega.component.css']\r\n})\r\nexport class EntregaComponent implements OnInit {\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n @ViewChild('inputRefDireccion')\r\n inputRefDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefTipoNumeroDireccion')\r\n inputRefTipoNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion')\r\n inputRefNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion2')\r\n inputRefNumeroDireccion2!: { nativeElement: any; };\r\n @ViewChild('inputRefBarrioDireccion')\r\n inputRefBarrioDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefAdicionalDireccion')\r\n inputRefAdicionalDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroOtroDireccion')\r\n inputRefNumeroOtroDireccion!: { nativeElement: any; };\r\n formaForm!: FormGroup;\r\n indicativos: any[] = [];\r\n codindi: any;\r\n codigo: any;\r\n depar: any[] = [];\r\n tipoDireccion: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n comas: boolean = false;\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n entrega: any = {};\r\n entregaCerti: boolean = false\r\n entregaCertiHistorico: boolean = false\r\n entregaVirtual: boolean = false\r\n usuario: any;\r\n direccion: any = {\r\n tipo: \"\",\r\n tipoNumero: \"\",\r\n numero: \"\",\r\n numero2: \"\",\r\n barrio: \"\",\r\n adicional: \"\",\r\n tipoOtroNumero: \"\"\r\n }\r\n actualizacion = false\r\n correoEntrega = \"\"\r\n preciosd: any[] = [];\r\n pago: any = {};\r\n validacionReusoToken = false\r\n constructor(private router: Router,\r\n private fb: FormBuilder,\r\n private componentesService: ComponentesService,\r\n private changeDetector: ChangeDetectorRef,\r\n private ssps: SspsService,\r\n private el: ElementRef\r\n ) {\r\n\r\n this.formaForm = this.fb.group({\r\n departamento: ['', [Validators.required]],\r\n municipio: ['', [Validators.required]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [\"\", [\r\n Validators.maxLength(5)\r\n ]],\r\n tipoDireccion: ['', [\r\n Validators.required\r\n ]],\r\n tipoNumeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion2: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n barrioDireccion: ['', [\r\n Validators.maxLength(200)\r\n ]],\r\n adicionalDireccion: ['', [\r\n Validators.maxLength(200)\r\n ]],\r\n numeroOtroDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n correo: ['', []]\r\n }, { validators: [this.componentesService.validalist('indicativo')] });\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.precios()\r\n this.indicativo();\r\n this.tiposDireccion();\r\n this.actualizacion = this.ssps.getLocalStorage(\"actualizacion\") ?\r\n JSON.parse(this.ssps.getLocalStorage(\"actualizacion\")!) : false\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n var solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n if (this.ssps.getLocalStorage('entrega')) {\r\n this.entrega = JSON.parse(this.ssps.getLocalStorage('entrega')!);\r\n this.mapearDatosEntrega()\r\n }\r\n else {\r\n this.entrega = {\r\n direccionCompleta: \"\",\r\n departamento: \"\",\r\n municipio: \"\",\r\n celular: \"\",\r\n indicativo: \"\",\r\n telefono: \"\",\r\n extension: \"\",\r\n correo: \"\",\r\n tipo: \"\",\r\n }\r\n this.entrega.objetoDireccion = {\r\n tipo: \"\",\r\n tipoNumero: \"\",\r\n numero: \"\",\r\n numero2: \"\",\r\n barrio: \"\",\r\n adicional: \"\",\r\n tipoOtroNumero: \"\"\r\n }\r\n }\r\n this.correoEntrega = this.usuario.cliente == \"natural\" ? this.usuario.correo : solicitante.correo\r\n if (!this.usuario.dispo.toLowerCase().includes(\"token físico\")) {\r\n this.entregaVirtual = true\r\n this.entregaCerti = false\r\n this.clearValidators()\r\n }\r\n this.departamentos();\r\n this.setOnChangesInputs()\r\n if (this.ssps.getLocalStorage('pago')) {\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!)\r\n }\r\n //this.validacionReusoToken = this.usuario.dispo.toLowerCase().includes('token físico')\r\n setTimeout(() => {\r\n if (this.usuario.dispo.toLowerCase() === \"reúso token físico\") {\r\n this.mecanisEntregaChange(null, 2)\r\n }\r\n else if (this.usuario.dispo.toLowerCase() === \"token físico\") {\r\n this.mecanisEntregaChange(null, 0)\r\n }\r\n setTimeout(() => {\r\n this.mapearDatosEntrega()\r\n }, 100);\r\n }, 500);\r\n\r\n }\r\n\r\n mapearDatosEntrega() { \r\n this.entregaCerti = this.entrega.tipo === \"OFICINA\"\r\n this.entregaCertiHistorico = !this.actualizacion && this.entrega.tipo === \"OFICINA\" && this.usuario.dispo.toLowerCase() !== 'pkcs#10'\r\n this.direccion = this.entrega.objetoDireccion !== undefined && this.entrega.objetoDireccion !== null ?\r\n this.entrega.objetoDireccion : {\r\n tipo: \"\",\r\n tipoNumero: \"\",\r\n numero: \"\",\r\n numero2: \"\",\r\n barrio: \"\",\r\n adicional: \"\",\r\n tipoOtroNumero: \"\"\r\n }\r\n if (this.entrega.tipo === \"OFICINA\") {\r\n this.clearValidators()\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.deshabilitarCmaposFinalizados()\r\n }, 1000);\r\n }\r\n if (this.direccion.tipo === \"Otro\") {\r\n this.clearValidatorsDireccion()\r\n }\r\n\r\n if (!this.usuario.dispo.toLowerCase().includes(\"token físico\")) {\r\n this.entregaVirtual = true\r\n this.entregaCerti = false\r\n this.clearValidators()\r\n }\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefTipoNumeroDireccion) {\r\n const elRef = this.inputRefTipoNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion) {\r\n const elRef = this.inputRefNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion2\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion2) {\r\n const elRef = this.inputRefNumeroDireccion2.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion2\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"barrioDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefBarrioDireccion) {\r\n const elRef = this.inputRefBarrioDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"barrioDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"adicionalDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefAdicionalDireccion) {\r\n const elRef = this.inputRefAdicionalDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"adicionalDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroOtroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroOtroDireccion) {\r\n const elRef = this.inputRefNumeroOtroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroOtroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n let departamento = this.entrega.departamento\r\n this.formaForm.get(\"departamento\")!.setValue(this.entrega.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n }, 1000);\r\n });\r\n }\r\n\r\n tiposDireccion() {\r\n this.ssps.tiposDireccion()\r\n .subscribe((res: any) => {\r\n this.tipoDireccion = res;\r\n });\r\n }\r\n\r\n changeDepartamento($event: any) {\r\n let departamento = $event.target.value;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.usuario.municipio = undefined\r\n this.formaForm.get(\"municipio\")!.setValue(undefined, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n\r\n\r\n redireciona() {\r\n if (this.usuario.cliente == \"natural\" && this.usuario.dispo.toUpperCase() !== \"PKCS#10\") {\r\n this.componentesService.emitircambio(\"reveinfobasi\");\r\n this.router.navigate(['/flujo/infobasi']);\r\n }\r\n else if (this.usuario.cliente == \"juridica\" && this.usuario.dispo.toUpperCase() !== \"PKCS#10\") {\r\n this.componentesService.emitircambio(\"revesolicitante\");\r\n this.router.navigate(['/flujo/solicitante']);\r\n }\r\n else {\r\n this.router.navigate(['/flujo/contacto']);\r\n this.componentesService.emitircambio(\"revecontacto\");\r\n }\r\n }\r\n\r\n /* funcion para los errores indicados*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n /*funcion que hace el filtro de los elementos selecionados del select*/\r\n verficacion(event: any) {\r\n this.codindi = this.indicativos.find(x => x?.indicativo === +event.target.value);\r\n this.entrega.indicativo = this.codindi?.indicativo;\r\n }\r\n\r\n /*Implementacion de validaciones de coma*/\r\n\r\n\r\n noPuntoComa(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comas = res;\r\n })\r\n }\r\n\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n this.entrega.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n this.entrega.extension = numero.replace(/^0+/, '');\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n this.entrega.telefono = numero.replace(/^0+/, '');\r\n }\r\n\r\n\r\n /*funcion para el envio de datos*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n console.log(\"Error \", key, this.formaForm.controls[key].errors)\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n if (this.campoValidacionDireccion()) return;\r\n if (!this.entregaCerti && !this.entregaVirtual) {\r\n let { departamento, municipio, celular, indicativo, telefono, extension,\r\n tipoDireccion, tipoNumeroDireccion, numeroDireccion, numeroDireccion2,\r\n barrioDireccion, adicionalDireccion, numeroOtroDireccion } = this.formaForm.getRawValue();\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion,\r\n tipoNumero: tipoNumeroDireccion,\r\n numero: numeroDireccion,\r\n numero2: numeroDireccion2,\r\n barrio: barrioDireccion,\r\n adicional: adicionalDireccion ?? \"\",\r\n tipoOtroNumero: numeroOtroDireccion\r\n }\r\n\r\n let valoresfi = {\r\n departamento,\r\n municipio,\r\n celular,\r\n indicativo,\r\n telefono,\r\n extension,\r\n objetoDireccion: objetoDireccion,\r\n direccionCompleta: (objetoDireccion.tipo !== \"Otro\" ? (objetoDireccion.tipo + \" \" + objetoDireccion.tipoNumero + \" #\" + objetoDireccion.numero + \"-\" +\r\n objetoDireccion.numero2) : objetoDireccion.tipoOtroNumero) +\r\n \" BARRIO \" + objetoDireccion.barrio + (objetoDireccion.adicional !== \"\" ? \" ADICIONAL \" + objetoDireccion.adicional : \"\"),\r\n tipo: \"ENVIO\"\r\n }\r\n Object.assign(this.entrega, valoresfi);\r\n if (this.ssps.getLocalStorage('facturacion')!) {\r\n let facturacion = JSON.parse(this.ssps.getLocalStorage('facturacion')!)\r\n facturacion.direccion = valoresfi.direccionCompleta\r\n this.ssps.saveLocalStorage(\"facturacion\", JSON.stringify(facturacion));\r\n }\r\n }\r\n else if (this.entregaVirtual) {\r\n let { correo } = this.formaForm.value;\r\n this.entrega.correo = correo\r\n this.entrega.tipo = \"VIRTUAL\"\r\n }\r\n else {\r\n this.entrega.tipo = \"OFICINA\"\r\n }\r\n this.ssps.saveLocalStorage(\"entrega\", JSON.stringify(this.entrega));\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.componentesService.emitircambio(\"actualizarOrden\");\r\n }\r\n this.router.navigateByUrl('/flujo/facturacion');\r\n this.componentesService.emitircambio(\"facturacionf\");\r\n }\r\n\r\n /*carga datos select*/\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n\r\n }\r\n\r\n instalaciones($event: any) {\r\n this.entregaCertiHistorico = false\r\n let isCheckeado = $event.target.checked;\r\n if (isCheckeado) {\r\n this.entrega.tipo = \"OFICINA\"\r\n this.entregaCerti = true\r\n //Quitar validaciones de los demas campos formularios\r\n this.clearValidators()\r\n setTimeout(() => {\r\n this.deshabilitarCmaposFinalizados()\r\n }, 2000);\r\n }\r\n else {\r\n this.entregaCerti = false\r\n this.entrega.tipo = \"ENVIO\"\r\n this.direccion = {\r\n tipo: \"\",\r\n tipoNumero: \"\",\r\n numero: \"\",\r\n numero2: \"\",\r\n barrio: \"\",\r\n adicional: \"\",\r\n tipoOtroNumero: \"\"\r\n }\r\n this.addValidators()\r\n setTimeout(() => {\r\n this.habilitarCmaposFinalizados()\r\n }, 2000);\r\n }\r\n }\r\n\r\n habilitarCmaposFinalizados() {\r\n if (this.usuario.solicitudFinalizada === \"PENDIENTE\") {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n this.formaForm.controls[key]?.enable()\r\n });\r\n }\r\n }\r\n changeTipoDireccion($event: any) {\r\n let tipoDireccion = $event.target.value;\r\n if (tipoDireccion === \"Otro\") {\r\n this.direccion = {\r\n tipo: tipoDireccion,\r\n tipoNumero: \"\",\r\n numero: \"\",\r\n numero2: \"\",\r\n barrio: \"\",\r\n adicional: \"\",\r\n tipoOtroNumero: \"\"\r\n }\r\n this.clearValidatorsDireccion()\r\n }\r\n else {\r\n this.addValidatorsDireccion()\r\n }\r\n }\r\n\r\n clearValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(200)])\r\n }\r\n else {\r\n control.clearValidators();\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.clearValidators();\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ])\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n clearValidators() {\r\n const controlesAEliminar = ['departamento', 'municipio', 'celular', 'indicativo',\r\n 'telefono', 'extension', 'tipoDireccion', 'tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n\r\n this.formaForm.clearValidators()\r\n this.formaForm.updateValueAndValidity()\r\n\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"correo\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')])\r\n }\r\n else {\r\n control.clearValidators();\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidators() {\r\n const controlesAEliminar = ['departamento', 'municipio', 'celular', 'indicativo',\r\n 'telefono', 'extension', 'tipoDireccion', 'tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n this.formaForm.addValidators([this.componentesService.validalist('indicativo')])\r\n this.formaForm.updateValueAndValidity()\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"direccion\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(5),\r\n Validators.maxLength(200),])\r\n }\r\n else if (controlName === \"departamento\" || controlName === \"municipio\") {\r\n control.addValidators([\r\n Validators.required])\r\n }\r\n else if (controlName === \"celular\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ])\r\n }\r\n else if (controlName === \"telefono\") {\r\n control.addValidators([\r\n Validators.minLength(7),\r\n Validators.maxLength(7)\r\n ])\r\n }\r\n else if (controlName === \"extension\") {\r\n control.addValidators([\r\n Validators.maxLength(5)\r\n ])\r\n }\r\n else if (controlName === \"adicionalDireccion\") {\r\n control.addValidators([\r\n Validators.maxLength(200)\r\n ])\r\n }\r\n else if (controlName === \"correo\") {\r\n control.clearValidators();\r\n }\r\n else if (controlName === \"barrioDireccion\") {\r\n control.addValidators([\r\n Validators.maxLength(200)\r\n ])\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(200)\r\n ])\r\n }\r\n //control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n prueba() {\r\n this.router.navigateByUrl('/flujo/instalaciones');\r\n }\r\n\r\n mecanisEntregaChange($event: any, id: number) {\r\n let tipodis = {\r\n idispo: this.preciosd[id].id,\r\n dispo: this.preciosd[id].nombre,\r\n iva: this.preciosd[id].iva\r\n }\r\n Object.assign(this.usuario, tipodis)\r\n let vigencias = this.preciosd[id].vigencia;\r\n // if (this.tipodis.dispo.toLowerCase() === \"reúso token físico\") {\r\n // this.desactiva = true;\r\n // }\r\n let [result] = vigencias.filter((res: { anos: any; }) => res.anos == this.usuario.anos);\r\n this.usuario.costoBase = result.precio\r\n let valorIca: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (this.usuario.ica / 100));\r\n let valorIva: any = Math.trunc((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (tipodis.iva / 100))\r\n let valorReteIva: any = Math.trunc(valorIva * (this.usuario.reteiva / 100))\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva - (this.usuario.descuentos ?? 0))\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n //this.validacionReusoToken = this.usuario.dispo.toLowerCase().includes('token físico')\r\n if (this.usuario.dispo.toLowerCase() === \"reúso token físico\") {\r\n this.instalaciones({\r\n target: {\r\n checked: true\r\n }\r\n })\r\n }\r\n else {\r\n this.instalaciones({\r\n target: {\r\n checked: this.entrega.tipo === \"OFICINA\"\r\n }\r\n })\r\n }\r\n }\r\n\r\n precios() {\r\n this.ssps.precios()\r\n .subscribe((res: any) => {\r\n this.preciosd = res.precios.filter((obj: any) => { return !(obj.nombre == 'PKCS#10'); });\r\n\r\n for (var i = 0; i < this.preciosd.length; i++) {\r\n this.preciosd[i].estados = false;\r\n if (this.preciosd[i].nombre == \"token virtual\") {\r\n this.preciosd[i].img = \"../../../assets/img/token-virtual.png\"\r\n }\r\n if (this.preciosd[i].nombre == \"token físico\") {\r\n this.preciosd[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n\r\n if (this.preciosd[i].nombre == \"reúso token físico\") {\r\n this.preciosd[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n\r\n if (this.preciosd[i].nombre == \"PKCS#10\") {\r\n this.preciosd[i].img = \"../../../assets/img/kpcs10.png\"\r\n }\r\n }\r\n })\r\n }\r\n\r\n campoValidacionDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'numeroOtroDireccion'];\r\n //Validar que si tiene el +, mostrar error y enfocar el campo\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n let valor = control.getRawValue();\r\n if (valor !== null && valor !== undefined && valor.includes(\"+\")) {\r\n console.log(\"valor elemento\", control.getRawValue())\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + controlName + '\"]');\r\n invalidControl?.focus();\r\n control.setErrors({\r\n formatoValido: false\r\n })\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","
\r\n
Datos de Entrega
\r\n
Datos de Envío
\r\n
\r\n
\r\n

\r\n Estimado suscriptor, te recordamos que te encuentras en el proceso de compra mediante el reúso de token físico.\r\n Esto significa que continuarás utilizando el token que ya posees y no se realizará la entrega de un nuevo\r\n dispositivo físico.\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 Acercate a las instalaciones de Certicámara: Dirección: Carrera 7 # 26-20 Piso 18 - 19, Edificio Seguros\r\n Tequendama. \r\n Horario de atención 8:00 a.m. a 5:00 p.m. de lunes a viernes.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n
\r\n
\r\n

\r\n *Al registrar tu correo electrónico, confirmas que es de tu propiedad y comprendes que este se usará para todas\r\n las\r\n notificaciones y fines relacionados con la emisión de tu firma digital. Por favor, asegúrate de que sea válido y\r\n accesible, pues modificar tu cuenta de correo en nuestros sistemas implicará costos adicionales. ¡Gracias por tu\r\n colaboración!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Tipo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Barrio no válido.
\r\n
\r\n
\r\n \r\n \r\n
Complemento dirección no válido
\r\n
\r\n
\r\n
\r\n
\r\n
La dirección no puede contener el carácter especial +
\r\n
\r\n
\r\n \r\n \r\n
Departamento no válido, selecciona una opción del listado
\r\n
\r\n
\r\n \r\n \r\n
Municipio no válido, selecciona una opción del listado
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
Indicativo no válido, selecciona una opción de la lista
\r\n
El campo\r\n no\r\n puede tener decimales
\r\n
\r\n
\r\n\r\n \r\n
Teléfono no válido, debe ser un número de 7 dígitos
\r\n
El\r\n campo no puede tener comas
\r\n\r\n
\r\n
\r\n \r\n
Extension no válido
\r\n
El\r\n campo\r\n no puede tener comas
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
Celular no válido, debe ser número de 10 dígitos
\r\n\r\n
El campo\r\n no\r\n puede tener comas
\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

Forma de entrega

\r\n

En tu última solicitud seleccionaste entrega en las instalaciones de Certicámara. ¿Deseas cambiar la forma de\r\n entrega y que la enviemos a\r\n tu domicilio?

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { Router } from '@angular/router';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-flujocomprassps',\r\n templateUrl: './flujocomprassps.component.html',\r\n styleUrls: ['./flujocomprassps.component.css']\r\n})\r\nexport class FlujocomprasspsComponent implements OnInit {\r\n\r\n @ViewChild('margen', { read: ElementRef, static: false }) margen!: ElementRef;\r\n @ViewChild('basica', { read: ElementRef, static: false }) basica!: ElementRef;\r\n @ViewChild('contacto', { read: ElementRef, static: false }) contacto!: ElementRef;\r\n @ViewChild('entregan', { read: ElementRef, static: false }) entregan!: ElementRef;\r\n @ViewChild('facturacionn', { read: ElementRef, static: false }) facturacionn!: ElementRef;\r\n @ViewChild('pago', { read: ElementRef, static: false }) pago!: ElementRef;\r\n @ViewChild('solicitante', { read: ElementRef, static: false }) solicitanteElement!: ElementRef;\r\n\r\n tamano!: number;\r\n compras: any = { dispo: \"\" };\r\n respuesta: string = \"\";\r\n filtra: boolean = false;\r\n nopedido: boolean = false;\r\n p10Mecanismo: boolean = false;\r\n nopedidoActualizar: boolean = false;\r\n mostrarOpcionesPago: boolean = true\r\n mostrarOpcionesValidacionIdentidad: boolean = false\r\n noradicadopedi: any = null;\r\n noradicadosolicitud: any = null;\r\n costos!: number;\r\n usuario: any\r\n solicitante: any\r\n facturacion: any\r\n contactoTecnico: any\r\n entrega: any\r\n mostrarBack = true\r\n mostrarBarra = false\r\n reintentos = 1\r\n actualizaOrden = false\r\n errorOrden = false\r\n\r\n constructor(private componentesService: ComponentesService,\r\n private ssps: SspsService, private logger: LogService,\r\n private alert: AlertsService, public datepipe: DatePipe,\r\n private router: Router,\r\n private changeDetector: ChangeDetectorRef,\r\n ) {\r\n this.componentesService.eventos$.subscribe(res => {\r\n this.respuesta = res;\r\n this.logger.log(\"flujoCompra-service\", res)\r\n if (this.ssps.getLocalStorage('pago')) {\r\n let pago = JSON.parse(this.ssps.getLocalStorage('pago')!)\r\n if (pago.pagoPSE === true || pago.realizoPago === \"S\" ||\r\n (pago.fechaPago !== \"\" && pago.fechaPago !== undefined && pago.fechaPago !== null)) {\r\n this.mostrarOpcionesPago = false\r\n if (this.ssps.getLocalStorage('usuario')) {\r\n let usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.mostrarOpcionesValidacionIdentidad = !usuario.identidadValidada\r\n }\r\n }\r\n }\r\n if (this.respuesta == \"mostrarordencambio\" || this.respuesta == \"actualizarOrden\") {\r\n this.p10Mecanismo = false\r\n this.reintentos = 1\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.actualizaOrden = this.respuesta === \"actualizarOrden\"\r\n this.mostrarBack = this.respuesta === \"actualizarOrden\"\r\n //Llamar servicio de CrearOrdenPedido\r\n //Validar que si es una retoma, no se debe crear, sino actualizar\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.facturacion = JSON.parse(this.ssps.getLocalStorage('facturacion')!);\r\n this.entrega = JSON.parse(this.ssps.getLocalStorage('entrega')!);\r\n if (this.ssps.getLocalStorage('contacto')) {\r\n this.contactoTecnico = JSON.parse(this.ssps.getLocalStorage('contacto')!);\r\n }\r\n if (this.ssps.getLocalStorage('solicitante')) {\r\n this.solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n }\r\n\r\n if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.alert.closesSpiner();\r\n if (this.respuesta == \"mostrarordencambio\") {\r\n this.logger.log(\"Solicitud ASIGNADO\", \"true\")\r\n this.alert.showSolicitudFinalizada(true)\r\n }\r\n }\r\n else if (!this.ssps.getLocalStorage(\"solicitudId\")) {\r\n //Validar el tipo de persona\r\n this.crearOrdenPedido()\r\n }\r\n else {\r\n //Actualización, consumir servicio de actualizar ordenPedido\r\n if (this.ssps.getLocalStorage('tipocliente')! === \"natural\") {\r\n this.logger.log(\"actualizarOrdenPedidoPN\", \"TODO\")\r\n this.actualizarOrdenPedidoPN()\r\n //this.nopedidoActualizar = true;\r\n }\r\n else {\r\n this.logger.log(\"actualizarPedidoPJ\", \"TODO\")\r\n this.actualizarOrdenPedidoPJ()\r\n }\r\n }\r\n } else {\r\n this.nopedido = false;\r\n this.slidersinfomativos(res);\r\n if (this.respuesta == \"cargarDatosHeader\") {\r\n if (this.ssps.getLocalStorage('usuario')) {\r\n this.compras = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.costos = Math.trunc(+this.compras.costo);\r\n if (this.compras.cantidad == null && this.compras.cliente == \"natural\") {\r\n this.compras.cantidad = 1;\r\n }\r\n this.reintentos = 1\r\n this.noradicadopedi = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n this.noradicadosolicitud = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }\r\n }\r\n if (this.respuesta == \"ocultarBarra\") {\r\n this.mostrarBarra = false\r\n }\r\n if (this.respuesta == \"mostrarBarra\") {\r\n this.mostrarBarra = true\r\n }\r\n }\r\n });\r\n this.ssps.eventos$.subscribe(res => {\r\n this.costos = res;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.logger.log(\"Validacion flussps\", \"1\")\r\n if (this.respuesta === \"\")\r\n this.componentesService.emitircambio(\"infoperso\")\r\n if (this.ssps.getLocalStorage('usuario')) {\r\n this.compras = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.costos = Math.trunc(+this.compras.costo);\r\n this.logger.log(\"flujoCompras-onInit\", this.compras)\r\n if (this.compras.cantidad == null && this.compras.cliente == \"natural\") {\r\n this.compras.cantidad = 1;\r\n }\r\n this.reintentos = 1\r\n this.noradicadopedi = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n this.noradicadosolicitud = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n onResize(event: any) {\r\n this.tamano = event.target.innerWidth;\r\n if (this.tamano <= 988) {\r\n this.margen.nativeElement.classList.remove('row-margenes');\r\n } else {\r\n this.margen.nativeElement.classList.add('row-margenes');\r\n }\r\n }\r\n\r\n slidersinfomativos(res: any) {\r\n if (res == \"datosempresa\") {\r\n this.solicitanteElement?.nativeElement.classList.remove('flujosin');\r\n this.solicitanteElement?.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"solicitante\" && this.contacto !== undefined) {\r\n this.contacto?.nativeElement.classList.remove('flujosin');\r\n this.contacto?.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"infoperso\" && this.contacto !== undefined) {\r\n this.contacto.nativeElement.classList.remove('flujosin');\r\n this.contacto.nativeElement.classList.add('flujos');\r\n\r\n } else if (res == \"contacto\") {\r\n this.entregan.nativeElement.classList.remove('flujosin');\r\n this.entregan.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"facturacionn\") {\r\n this.facturacionn.nativeElement.classList.remove('flujosin');\r\n this.facturacionn.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"pagos\") {\r\n this.logger.log(\"validacion\", res)\r\n this.pago?.nativeElement.classList.remove('flujosin');\r\n this.pago?.nativeElement.classList.add('flujos');\r\n this.nopedido = false;\r\n }\r\n\r\n else if (res == \"entrega\") {\r\n this.contacto.nativeElement.classList.remove('flujosin');\r\n this.contacto.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"pago\") {\r\n this.pago.nativeElement.classList.remove('flujosin');\r\n this.pago.nativeElement.classList.add('flujos');\r\n this.nopedido = false;\r\n }\r\n else if (res == \"pagosFull\") {\r\n setTimeout(() => {\r\n this.slidersinfomativos(\"infoperso\");\r\n this.slidersinfomativos(\"datosempresa\");\r\n this.slidersinfomativos(\"solicitante\");\r\n this.slidersinfomativos(\"contacto\");\r\n this.slidersinfomativos(\"facturacionn\");\r\n this.slidersinfomativos(\"pagos\");\r\n }, 300);\r\n this.nopedido = false;\r\n }\r\n\r\n //implementacion de rutas token fisico\r\n if (res == \"facturacionf\") {\r\n this.facturacionn.nativeElement.classList.remove('flujosin');\r\n this.facturacionn.nativeElement.classList.add('flujos');\r\n }\r\n\r\n if (res == \"instalaciones\") {\r\n this.facturacionn.nativeElement.classList.remove('flujosin');\r\n this.facturacionn.nativeElement.classList.add('flujos');\r\n }\r\n\r\n /* regreso de flujo*/\r\n else if (res == \"reverfactu\") {\r\n this.pago.nativeElement.classList.remove('flujos');\r\n this.pago.nativeElement.classList.add('flujosin');\r\n this.facturacionn.nativeElement.classList.remove('flujosin');\r\n this.facturacionn.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"reveentregan\") {\r\n this.facturacionn.nativeElement.classList.remove('flujos');\r\n this.facturacionn.nativeElement.classList.add('flujosin');\r\n this.entregan.nativeElement.classList.remove('flujosin');\r\n this.entregan.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"revesolicitante\") {\r\n this.entregan.nativeElement.classList.remove('flujos');\r\n this.entregan.nativeElement.classList.add('flujosin');\r\n this.solicitanteElement.nativeElement.classList.remove('flujosin');\r\n this.solicitanteElement.nativeElement.classList.add('flujos');\r\n this.contacto?.nativeElement.classList.remove('flujos');\r\n this.contacto?.nativeElement.classList.add('flujosin');\r\n }\r\n else if (res == \"revecontacto\") {\r\n this.entregan.nativeElement.classList.remove('flujos');\r\n this.entregan.nativeElement.classList.add('flujosin');\r\n this.contacto.nativeElement.classList.remove('flujosin');\r\n this.contacto.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"reveinfobasi\") {\r\n this.contacto?.nativeElement.classList.remove('flujos');\r\n this.contacto?.nativeElement.classList.add('flujosin');\r\n this.solicitanteElement?.nativeElement.classList.remove('flujos');\r\n this.solicitanteElement?.nativeElement.classList.add('flujosin');\r\n this.basica.nativeElement.classList.remove('flujosin');\r\n this.basica.nativeElement.classList.add('flujos');\r\n this.entregan.nativeElement.classList.remove('flujos');\r\n this.entregan.nativeElement.classList.add('flujosin');\r\n }\r\n else if (res == \"entregarf\") {\r\n this.entregan.nativeElement.classList.remove('flujosin');\r\n this.entregan.nativeElement.classList.add('flujos');\r\n }\r\n else if (res == \"infobasir\") {\r\n this.basica.nativeElement.classList.remove('flujosin');\r\n this.basica.nativeElement.classList.add('flujos');\r\n }\r\n }\r\n\r\n irAPago() {\r\n this.logger.log(\"CEERRR4\", \"\")\r\n this.alert.closesSpiner()\r\n //Validar el modal de identidad\r\n //if (this.usuario.identidadValidada && this.usuario.identidadValidada === true) { \r\n this.mostrarBack = true\r\n this.nopedido = false\r\n this.nopedidoActualizar = false\r\n this.slidersinfomativos(\"pagosFull\")\r\n this.router.navigate(['/flujo/pago']);\r\n this.componentesService.emitircambio(\"pagos\");\r\n }\r\n\r\n ContinuarSinPago(titulo: any) {\r\n this.nopedido = false;\r\n this.nopedidoActualizar = false\r\n this.logger.log(\"CEERRR3\", \"\")\r\n this.alert.closesSpiner()\r\n this.alert.showSinPago(titulo, \"Te invitamos a continuar el trámite en el enlace enviado a tu correo electrónico.\");\r\n }\r\n\r\n validarIdentidad() {\r\n this.logger.log(\"CEERRR4\", \"\")\r\n this.alert.closesSpiner()\r\n //Validar el modal de identidad\r\n //if (this.usuario.identidadValidada && this.usuario.identidadValidada === true) { \r\n this.mostrarBack = true\r\n this.nopedido = false\r\n this.nopedidoActualizar = false\r\n this.alert.showAlertaValidarIdentidad(false)\r\n }\r\n\r\n crearOrdenPedido() {\r\n if (this.errorOrden === true) {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n }\r\n\r\n this.errorOrden = false\r\n if (this.ssps.getLocalStorage('tipocliente')! === \"natural\") {\r\n this.crearOrdenPedidoPN()\r\n }\r\n else {\r\n this.logger.log(\"crearOrdenPedidoPJ\", \"TODO\")\r\n this.crearOrdenPedidoPJ()\r\n }\r\n }\r\n\r\n crearOrdenPedidoPN() {\r\n let telefono = [{\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }]\r\n let datosBasicos: any = {\r\n aceptoTerminosSn: \"S\",\r\n primerNombre: this.usuario.primerNombre.trim(),\r\n primerApellido: this.usuario.primerApellido.trim(),\r\n segundoNombre: this.usuario.segundoNombre !== null && this.usuario.segundoNombre !== undefined ?\r\n this.usuario.segundoNombre.trim() : \"\",\r\n segundoApellido: this.usuario.segundoApellido !== null && this.usuario.segundoApellido !== undefined ?\r\n this.usuario.segundoApellido.trim() : \"\",\r\n correoElectronico: this.usuario.correo.trim(),\r\n numeroIdentificacion: this.usuario.numero,\r\n tipoIdentificacion: this.usuario.tipo,\r\n celular: this.usuario.celular,\r\n ip: this.ssps.ip,\r\n telefono: telefono,\r\n }\r\n\r\n //Datos a validar en el formulario InfoBasica\r\n datosBasicos.departamento = this.usuario.departamento\r\n datosBasicos.direccion = this.usuario.direccion.trim()\r\n datosBasicos.municipio = this.usuario.municipio\r\n datosBasicos.regimenTributario = this.usuario.regimenTributario\r\n\r\n if (this.usuario.telefono != \"\") {\r\n datosBasicos.telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n\r\n let informacionEnvio: any = {}\r\n\r\n if (this.entrega.tipo === \"OFICINA\") {\r\n informacionEnvio.recogeCerti = {\r\n direccion: `${env.direccionCerti}`\r\n }\r\n }\r\n else if (this.entrega.tipo === \"ENVIO\") {\r\n informacionEnvio.envioDomicilio = {\r\n celular: this.entrega.celular,\r\n departamento: this.entrega.departamento,\r\n direccion: this.entrega.direccionCompleta.trim(),\r\n municipio: this.entrega.municipio,\r\n telefono: telefono\r\n }\r\n if (this.entrega.telefono != \"\") {\r\n informacionEnvio.envioDomicilio.telefono = [\r\n {\r\n extension: this.entrega.extension,\r\n indicativo: this.entrega.indicativo,\r\n telefono: this.entrega.telefono\r\n }\r\n ]\r\n }\r\n }\r\n else if (this.entrega.tipo === \"CORREO\" || this.entrega.tipo === \"VIRTUAL\") {\r\n informacionEnvio.envioViaCorreoElectronico = {\r\n correoElectronico: this.entrega.correo.trim()\r\n }\r\n }\r\n\r\n let datosFacturacion: any = {\r\n apellidos: this.facturacion.apellidos.trim(),\r\n celular: this.facturacion.celular,\r\n correoElectronico: this.facturacion.correo.trim(),\r\n direccion: this.facturacion.direccion.trim(),\r\n nombres: this.facturacion.nombres.trim(),\r\n numeroIdentificacion: this.facturacion.tipo === 'NI' ? this.facturacion.numero + this.facturacion.codigo : this.facturacion.numero,\r\n tipoIdentificacion: this.facturacion.tipo,\r\n telefono: telefono,\r\n regimenTributario: this.facturacion.regimenTributario,\r\n tipoCapital: this.facturacion.tipoCapital\r\n }\r\n if (this.facturacion.telefono != \"\") {\r\n datosFacturacion.telefono = [\r\n {\r\n extension: this.facturacion.extension,\r\n indicativo: this.facturacion.indicativo,\r\n telefono: this.facturacion.telefono\r\n }\r\n ]\r\n }\r\n\r\n datosFacturacion.departamento = this.facturacion.departamento\r\n datosFacturacion.municipio = this.facturacion.municipio\r\n\r\n let detallesCertificado: any = {\r\n mecanismoEntrega: this.usuario.dispo,\r\n politica: this.usuario.politica,\r\n porcentajeIca: this.usuario.ica ?? 0,\r\n porcentajeIva: Math.trunc(this.usuario.iva ?? 0),\r\n valorBaseLiquidacion: Math.trunc(this.usuario.costoBase),\r\n valorIca: Math.trunc(this.usuario.costoBase * ((this.usuario.ica ?? 0) / 100)),\r\n valorIva: Math.trunc(this.usuario.costoBase * (this.usuario.iva / 100)),\r\n porcentajeReteIva: Math.trunc(this.usuario.reteiva ?? 0),\r\n valorReteIva: Math.trunc((this.usuario.costoBase * (this.usuario.iva / 100)) * ((this.usuario.reteiva ?? 0) / 100)),\r\n valorNeto: Math.trunc(this.usuario.costo),\r\n vigencia: this.usuario.esVigenciaDias ? this.usuario.anos : (this.usuario.anos * 365),\r\n reposicion: this.usuario.esReposicion\r\n }\r\n\r\n let profesionalTitulado: any = null\r\n if (this.usuario.politica.toLowerCase() === 'profesional titulado') {\r\n profesionalTitulado = {\r\n fechaExpedicion: null,\r\n institucionGrado: this.usuario.institucionGrado?.trim(),\r\n numTarjetaProfesional: this.usuario.tarjetaProfesional?.trim(),\r\n profesion: this.usuario.profesion?.trim()\r\n }\r\n if (this.usuario.fechaExpTarjetaProfesional !== null\r\n && this.usuario.fechaExpTarjetaProfesional !== undefined) {\r\n var fechaTarjeta = this.usuario.fechaExpTarjetaProfesional.split(\"/\", 3);\r\n let date = new Date(fechaTarjeta[2], +fechaTarjeta[1] - 1, fechaTarjeta[0]);\r\n profesionalTitulado.fechaExpedicion = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n }\r\n\r\n let solicitantes: any = [{\r\n primerNombre: this.usuario.primerNombre.trim(),\r\n primerApellido: this.usuario.primerApellido.trim(),\r\n segundoNombre: this.usuario.segundoNombre !== null && this.usuario.segundoNombre !== undefined ?\r\n this.usuario.segundoNombre.trim() : \"\",\r\n segundoApellido: this.usuario.segundoApellido !== null && this.usuario.segundoApellido !== undefined ?\r\n this.usuario.segundoApellido.trim() : \"\",\r\n correoElectronico: this.usuario.correo.trim(),\r\n numeroIdentificacion: this.usuario.numero,\r\n tipoIdentificacion: this.usuario.tipo,\r\n celular: this.usuario.celular,\r\n telefono: telefono\r\n }]\r\n\r\n if (this.usuario.telefono != \"\") {\r\n solicitantes[0].telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n if (this.usuario.documentos !== undefined && this.usuario.documentos !== null &&\r\n this.usuario.documentos.length > 0) {\r\n let documentos: { tipo: any; contenido: any; }[] = []\r\n this.usuario.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n solicitantes[0].documentos = documentos\r\n }\r\n\r\n solicitantes[0].departamento = this.usuario.departamento\r\n solicitantes[0].direccion = this.usuario.direccion.trim()\r\n solicitantes[0].municipio = this.usuario.municipio\r\n solicitantes[0].codigoAgente = this.facturacion.agente\r\n\r\n var datosContactoTecnico: any = null\r\n if (this.contactoTecnico && this.contactoTecnico !== null) {\r\n datosContactoTecnico = {\r\n primerNombre: this.contactoTecnico.primerNombre.trim(),\r\n primerApellido: this.contactoTecnico.primerApellido.trim(),\r\n segundoNombre: this.contactoTecnico.segundoNombre !== null && this.contactoTecnico.segundoNombre !== undefined ?\r\n this.contactoTecnico.segundoNombre.trim() : \"\",\r\n segundoApellido: this.contactoTecnico.segundoApellido !== null && this.contactoTecnico.segundoApellido !== undefined ?\r\n this.contactoTecnico.segundoApellido.trim() : \"\",\r\n celular: this.contactoTecnico.celular,\r\n correoElectronico: this.contactoTecnico.correo.trim(),\r\n numeroIdentificacion: this.contactoTecnico.numero,\r\n tipoIdentificacion: this.contactoTecnico.tipo,\r\n telefono: telefono\r\n }\r\n if (this.contactoTecnico.telefono != \"\") {\r\n datosContactoTecnico.telefono = [\r\n {\r\n extension: this.contactoTecnico.extension,\r\n indicativo: this.contactoTecnico.indicativo,\r\n telefono: this.contactoTecnico.telefono\r\n }\r\n ]\r\n }\r\n }\r\n\r\n let body: any = {\r\n datosBasicos,\r\n datosFacturacion,\r\n detallesCertificado,\r\n datosContactoTecnico,\r\n informacionEnvio,\r\n profesionalTitulado,\r\n solicitantes,\r\n origen: env.origen\r\n }\r\n this.llamarApiCreacionOrdenPN(body)\r\n }\r\n\r\n llamarApiCreacionOrdenPN(body: any) {\r\n this.ssps.crearOrdenPedidoPN(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta crearOrdenPedidoPN\", res)\r\n if (res !== null && res.ordenPedidoId) {\r\n if (res.codigo !== undefined && res.codigo !== null &&\r\n res.codigo !== 200) {\r\n let urlRedireccion = `${env.urlVentaDigital}?id=` + res.solicitudId\r\n this.alert.closesSpiner()\r\n //Mostrar alerta y redireccionar a la consulta del id\r\n this.alert.showError(res.mensaje, true, \"¡Importante!\", false, urlRedireccion, \"Retomar solicitud\", true)\r\n }\r\n else {\r\n this.ssps.saveLocalStorage(\"ordenPedidoId\", JSON.stringify(res.ordenPedidoId));\r\n this.ssps.saveLocalStorage(\"solicitudId\", JSON.stringify(res.solicitudId));\r\n //Llamar servicio de generar llaves, que envie notificación si el dispo == pkcs#10\r\n if (this.usuario.dispo.toLowerCase() === \"pkcs#10\") {\r\n this.p10Mecanismo = true;\r\n (async () => {\r\n this.llamarGenerarRequestJuridico(res.solicitudId)\r\n })()\r\n\r\n }\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n this.noradicadopedi = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!);\r\n this.nopedido = true;\r\n }, 3000);\r\n }\r\n //this.usuario.identidadValidada = true\r\n }\r\n else {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n //Respuesta error del servicio, mostrar modal\r\n console.error('Error en servicio crearordenPedido', res)\r\n this.errorOrden = true\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error) => {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n console.error('Error en subscriber crearordenPedido', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.reintentos = 0;\r\n this.logger.log(\"Error\", \"time out\")\r\n this.llamarApiConsultaUltimaOrden(body)\r\n }\r\n else {\r\n this.errorOrden = true\r\n this.alert.closesSpiner()\r\n }\r\n }\r\n });\r\n }\r\n\r\n llamarApiConsultaUltimaOrden(body: any) {\r\n this.ssps.consultarUltimaOrdenPedido(body.datosBasicos.numeroIdentificacion)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarUltimaOrdenPedido\", res)\r\n if (res !== null && res !== \"\") {\r\n this.ssps.saveLocalStorage(\"ordenPedidoId\", JSON.stringify(res.ordenPedidoId));\r\n this.ssps.saveLocalStorage(\"solicitudId\", JSON.stringify(res.solicitudId));\r\n if (this.usuario.dispo.toLowerCase() === \"pkcs#10\") {\r\n this.p10Mecanismo = true;\r\n (async () => {\r\n this.llamarGenerarRequestJuridico(res.solicitudId)\r\n })()\r\n }\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n this.noradicadopedi = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!);\r\n this.noradicadosolicitud = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n this.nopedido = true;\r\n }, 3000);\r\n }\r\n else {\r\n if (this.ssps.getLocalStorage('tipocliente')! === \"natural\") {\r\n this.llamarApiCreacionOrdenPN(body)\r\n }\r\n else {\r\n this.llamarApiCreacionOrdenPJ(body)\r\n }\r\n }\r\n },\r\n error: (error) => {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n console.error('Error en subscriber consultarUltimaOrdenPedido', error)\r\n if (this.reintentos < 2) {\r\n this.reintentos += 1\r\n this.llamarApiConsultaUltimaOrden(body)\r\n }\r\n else {\r\n this.reintentos = 0;\r\n if (this.ssps.getLocalStorage('tipocliente')! === \"natural\") {\r\n this.llamarApiCreacionOrdenPN(body)\r\n }\r\n else {\r\n this.llamarApiCreacionOrdenPJ(body)\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n actualizarOrdenPedidoPN() {\r\n let telefono = [{\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }]\r\n let datosBasicos: any = {\r\n aceptoTerminosSn: \"S\",\r\n primerNombre: this.usuario.primerNombre.trim(),\r\n primerApellido: this.usuario.primerApellido.trim(),\r\n segundoNombre: this.usuario.segundoNombre !== null && this.usuario.segundoNombre !== undefined ?\r\n this.usuario.segundoNombre.trim() : \"\",\r\n segundoApellido: this.usuario.segundoApellido !== null && this.usuario.segundoApellido !== undefined ?\r\n this.usuario.segundoApellido.trim() : \"\",\r\n correoElectronico: this.usuario.correo.trim(),\r\n celular: this.usuario.celular,\r\n ip: this.ssps.ip,\r\n telefono: telefono\r\n }\r\n\r\n //Datos a validar en el formulario InfoBasica\r\n datosBasicos.departamento = this.usuario.departamento\r\n datosBasicos.direccion = this.usuario.direccion.trim()\r\n datosBasicos.municipio = this.usuario.municipio\r\n datosBasicos.regimenTributario = this.usuario.regimenTributario\r\n\r\n if (this.usuario.telefono != \"\") {\r\n datosBasicos.telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n\r\n let informacionEnvio: any = {}\r\n\r\n if (this.entrega.tipo === \"OFICINA\") {\r\n informacionEnvio.recogeCerti = {\r\n direccion: `${env.direccionCerti}`\r\n }\r\n }\r\n else if (this.entrega.tipo === \"ENVIO\") {\r\n informacionEnvio.envioDomicilio = {\r\n celular: this.entrega.celular,\r\n departamento: this.entrega.departamento,\r\n direccion: this.entrega.direccionCompleta.trim(),\r\n municipio: this.entrega.municipio,\r\n telefono: telefono\r\n }\r\n if (this.entrega.telefono != \"\") {\r\n informacionEnvio.envioDomicilio.telefono = [\r\n {\r\n extension: this.entrega.extension,\r\n indicativo: this.entrega.indicativo,\r\n telefono: this.entrega.telefono\r\n }\r\n ]\r\n }\r\n }\r\n else if (this.entrega.tipo === \"CORREO\" || this.entrega.tipo === \"VIRTUAL\") {\r\n informacionEnvio.envioViaCorreoElectronico = {\r\n correoElectronico: this.entrega.correo.trim()\r\n }\r\n }\r\n\r\n let datosFacturacion: any = null\r\n if (this.facturacion !== undefined && this.facturacion !== null) {\r\n datosFacturacion = {\r\n apellidos: this.facturacion.apellidos.trim(),\r\n celular: this.facturacion.celular,\r\n correoElectronico: this.facturacion.correo.trim(),\r\n direccion: this.facturacion.direccion.trim(),\r\n nombres: this.facturacion.nombres.trim(),\r\n numeroIdentificacion: this.facturacion.tipo === 'NI' ? this.facturacion.numero + this.facturacion.codigo : this.facturacion.numero,\r\n tipoIdentificacion: this.facturacion.tipo,\r\n telefono: telefono,\r\n regimenTributario: this.facturacion.regimenTributario,\r\n tipoCapital: this.facturacion.tipoCapital\r\n }\r\n if (this.facturacion.telefono != \"\") {\r\n datosFacturacion.telefono = [\r\n {\r\n extension: this.facturacion.extension,\r\n indicativo: this.facturacion.indicativo,\r\n telefono: this.facturacion.telefono\r\n }\r\n ]\r\n }\r\n\r\n datosFacturacion.departamento = this.facturacion.departamento\r\n datosFacturacion.municipio = this.facturacion.municipio\r\n }\r\n else {\r\n datosFacturacion = {\r\n apellidos: \"\",\r\n celular: \"\",\r\n correoElectronico: \"\",\r\n direccion: \"\",\r\n nombres: \"\",\r\n numeroIdentificacion: \"\",\r\n tipoIdentificacion: \"\",\r\n telefono: telefono,\r\n regimenTributario: \"\",\r\n tipoCapital: \"\"\r\n }\r\n }\r\n\r\n let detallesCertificado: any = {\r\n mecanismoEntrega: this.usuario.dispo,\r\n politica: this.usuario.politica,\r\n porcentajeIca: this.usuario.ica ?? 0,\r\n porcentajeIva: Math.trunc(this.usuario.iva),\r\n valorBaseLiquidacion: Math.trunc(this.usuario.costoBase),\r\n valorIca: Math.trunc(this.usuario.costoBase * ((this.usuario.ica ?? 0) / 100)),\r\n valorIva: Math.trunc(this.usuario.costoBase * (this.usuario.iva / 100)),\r\n porcentajeReteIva: Math.trunc(this.usuario.reteiva ?? 0),\r\n valorReteIva: Math.trunc((this.usuario.costoBase * (this.usuario.iva / 100)) * ((this.usuario.reteiva ?? 0) / 100)),\r\n valorNeto: Math.trunc(this.usuario.costo),\r\n vigencia: this.usuario.esVigenciaDias ? this.usuario.anos : (this.usuario.anos * 365),\r\n reposicion: this.usuario.esReposicion\r\n }\r\n\r\n let profesionalTitulado: any = null\r\n if (this.usuario.politica.toLowerCase() === 'profesional titulado') {\r\n profesionalTitulado = {\r\n fechaExpedicion: null,\r\n institucionGrado: this.usuario.institucionGrado?.trim(),\r\n numTarjetaProfesional: this.usuario.tarjetaProfesional?.trim(),\r\n profesion: this.usuario.profesion?.trim()\r\n }\r\n if (this.usuario.fechaExpTarjetaProfesional !== null\r\n && this.usuario.fechaExpTarjetaProfesional !== undefined) {\r\n var fechaTarjeta = this.usuario.fechaExpTarjetaProfesional.split(\"/\", 3);\r\n let date = new Date(fechaTarjeta[2], +fechaTarjeta[1] - 1, fechaTarjeta[0]);\r\n profesionalTitulado.fechaExpedicion = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n }\r\n\r\n let solicitantes: any = [{\r\n primerNombre: this.usuario.primerNombre.trim(),\r\n primerApellido: this.usuario.primerApellido.trim(),\r\n segundoNombre: this.usuario.segundoNombre !== null && this.usuario.segundoNombre !== undefined ?\r\n this.usuario.segundoNombre.trim() : \"\",\r\n segundoApellido: this.usuario.segundoApellido !== null && this.usuario.segundoApellido !== undefined ?\r\n this.usuario.segundoApellido.trim() : \"\",\r\n correoElectronico: this.usuario.correo.trim(),\r\n celular: this.usuario.celular,\r\n telefono: telefono,\r\n solicitudTitularId: JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }]\r\n\r\n if (this.usuario.telefono != \"\") {\r\n solicitantes[0].telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n if (this.usuario.documentos !== undefined && this.usuario.documentos !== null &&\r\n this.usuario.documentos.length > 0) {\r\n let documentos: { tipo: any; contenido: any; }[] = []\r\n this.usuario.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n solicitantes[0].documentos = documentos\r\n }\r\n\r\n solicitantes[0].departamento = this.usuario.departamento\r\n solicitantes[0].direccion = this.usuario.direccion.trim()\r\n solicitantes[0].municipio = this.usuario.municipio\r\n solicitantes[0].codigoAgente = this.facturacion !== undefined && this.facturacion !== null ?\r\n this.facturacion.agente : \"\"\r\n\r\n var datosContactoTecnico: any = null\r\n if (this.contactoTecnico && this.contactoTecnico !== null) {\r\n datosContactoTecnico = {\r\n primerNombre: this.contactoTecnico.primerNombre.trim(),\r\n primerApellido: this.contactoTecnico.primerApellido.trim(),\r\n segundoNombre: this.contactoTecnico.segundoNombre !== null && this.contactoTecnico.segundoNombre !== undefined ?\r\n this.contactoTecnico.segundoNombre.trim() : \"\",\r\n segundoApellido: this.contactoTecnico.segundoApellido !== null && this.contactoTecnico.segundoApellido !== undefined ?\r\n this.contactoTecnico.segundoApellido.trim() : \"\",\r\n celular: this.contactoTecnico.celular,\r\n correoElectronico: this.contactoTecnico.correo.trim(),\r\n numeroIdentificacion: this.contactoTecnico.numero,\r\n tipoIdentificacion: this.contactoTecnico.tipo,\r\n telefono: telefono\r\n }\r\n if (this.contactoTecnico.telefono != \"\") {\r\n datosContactoTecnico.telefono = [\r\n {\r\n extension: this.contactoTecnico.extension,\r\n indicativo: this.contactoTecnico.indicativo,\r\n telefono: this.contactoTecnico.telefono\r\n }\r\n ]\r\n }\r\n }\r\n\r\n let body: any = {\r\n datosBasicos,\r\n datosFacturacion,\r\n detallesCertificado,\r\n informacionEnvio,\r\n profesionalTitulado,\r\n solicitantes,\r\n datosContactoTecnico\r\n }\r\n this.reintentos = 0;\r\n this.llamarApiActualizarOrdenPN(body)\r\n }\r\n\r\n llamarApiActualizarOrdenPN(body: any) {\r\n this.ssps.actualizarOrdenPedidoPN(this.noradicadosolicitud, body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta actualizarOrdenPedidoPN\", res)\r\n this.logger.log(\"respuesta actualizarOrdenPedidoPN2\", this.actualizaOrden)\r\n if (res !== null && res.ordenPedidoId) {\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n if (res.solicitudFinalizada !== \"PENDIENTE\" && this.respuesta == \"mostrarordencambio\") {\r\n this.logger.log(\"Solicitud finalizada\", \"true\")\r\n this.alert.closesSpiner();\r\n this.alert.showSolicitudFinalizada(true)\r\n }\r\n else {\r\n this.nopedidoActualizar = !this.actualizaOrden;\r\n }\r\n }, 500);\r\n //this.usuario.identidadValidada = true\r\n }\r\n else {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n //Respuesta error del servicio, mostrar modal\r\n this.alert.closesSpiner()\r\n console.error('Error en servicio actualizarOrdenPedidoPN', res)\r\n let mensaje = res.mensaje ? res.mensaje : \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber llamarApiActualizarOrdenPN', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n crearOrdenPedidoPJ() {\r\n let telefono = [{\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }]\r\n let datosBasicos: any = {\r\n aceptoTerminosSn: \"S\",\r\n razonSocial: this.usuario.razon.trim(),\r\n correoElectronico: this.usuario.correo.trim(),\r\n numeroIdentificacion: this.usuario.numero + this.usuario.codigo,\r\n tipoIdentificacion: this.usuario.tipo,\r\n celular: this.usuario.celular,\r\n ip: this.ssps.ip,\r\n telefono: telefono,\r\n }\r\n\r\n //Datos a validar en el formulario InfoBasica\r\n datosBasicos.departamento = this.usuario.departamento\r\n datosBasicos.direccion = this.usuario.direccion.trim()\r\n datosBasicos.municipio = this.usuario.municipio\r\n datosBasicos.regimenTributario = this.usuario.regimenTributario\r\n datosBasicos.tipoCapital = this.usuario.tipoCapital\r\n datosBasicos.actividadEconomica = this.usuario.actividadEconomica\r\n\r\n if (this.usuario.telefono != \"\") {\r\n datosBasicos.telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n\r\n let informacionEnvio: any = {}\r\n\r\n if (this.entrega.tipo === \"OFICINA\") {\r\n informacionEnvio.recogeCerti = {\r\n direccion: `${env.direccionCerti}`\r\n }\r\n }\r\n else if (this.entrega.tipo === \"ENVIO\") {\r\n informacionEnvio.envioDomicilio = {\r\n celular: this.entrega.celular,\r\n departamento: this.entrega.departamento,\r\n direccion: this.entrega.direccionCompleta.trim(),\r\n municipio: this.entrega.municipio,\r\n telefono: telefono\r\n }\r\n if (this.entrega.telefono != \"\") {\r\n informacionEnvio.envioDomicilio.telefono = [\r\n {\r\n extension: this.entrega.extension,\r\n indicativo: this.entrega.indicativo,\r\n telefono: this.entrega.telefono\r\n }\r\n ]\r\n }\r\n }\r\n else if (this.entrega.tipo === \"CORREO\" || this.entrega.tipo === \"VIRTUAL\") {\r\n informacionEnvio.envioViaCorreoElectronico = {\r\n correoElectronico: this.entrega.correo.trim()\r\n }\r\n }\r\n\r\n let datosFacturacion: any = {\r\n apellidos: this.facturacion.apellidos.trim(),\r\n celular: this.facturacion.celular,\r\n correoElectronico: this.facturacion.correo.trim(),\r\n direccion: this.facturacion.direccion.trim(),\r\n nombres: this.facturacion.nombres.trim(),\r\n numeroIdentificacion: this.facturacion.tipo === 'NI' ? this.facturacion.numero + this.facturacion.codigo : this.facturacion.numero,\r\n tipoIdentificacion: this.facturacion.tipo,\r\n telefono: telefono,\r\n regimenTributario: this.facturacion.regimenTributario,\r\n tipoCapital: this.facturacion.tipoCapital\r\n }\r\n if (this.facturacion.telefono != \"\") {\r\n datosFacturacion.telefono = [\r\n {\r\n extension: this.facturacion.extension,\r\n indicativo: this.facturacion.indicativo,\r\n telefono: this.facturacion.telefono\r\n }\r\n ]\r\n }\r\n\r\n datosFacturacion.departamento = this.facturacion.departamento\r\n datosFacturacion.municipio = this.facturacion.municipio\r\n\r\n let detallesCertificado: any = {\r\n mecanismoEntrega: this.usuario.dispo,\r\n politica: this.usuario.politica,\r\n porcentajeIca: this.usuario.ica ?? 0,\r\n porcentajeIva: Math.trunc(this.usuario.iva),\r\n valorBaseLiquidacion: Math.trunc(this.usuario.costoBase),\r\n valorIca: Math.trunc(this.usuario.costoBase * ((this.usuario.ica ?? 0) / 100)),\r\n valorIva: Math.trunc(this.usuario.costoBase * (this.usuario.iva / 100)),\r\n porcentajeReteIva: Math.trunc(this.usuario.reteiva ?? 0),\r\n valorReteIva: Math.trunc((this.usuario.costoBase * (this.usuario.iva / 100)) * ((this.usuario.reteiva ?? 0) / 100)),\r\n valorNeto: Math.trunc(this.usuario.costo),\r\n vigencia: this.usuario.esVigenciaDias ? this.usuario.anos : (this.usuario.anos * 365),\r\n reposicion: this.usuario.esReposicion,\r\n estampillas: this.usuario.estampillas\r\n }\r\n\r\n let profesionalTitulado: any = null\r\n if (this.usuario.politica.toLowerCase() === 'profesional titulado') {\r\n profesionalTitulado = {\r\n fechaExpedicion: null,\r\n institucionGrado: this.solicitante.institucionGrado?.trim(),\r\n numTarjetaProfesional: this.solicitante.tarjetaProfesional?.trim(),\r\n profesion: this.solicitante.profesion?.trim()\r\n }\r\n if (this.solicitante.fechaExpTarjetaProfesional !== null\r\n && this.solicitante.fechaExpTarjetaProfesional !== undefined) {\r\n var fechaTarjeta = this.solicitante.fechaExpTarjetaProfesional.split(\"/\", 3);\r\n let date = new Date(fechaTarjeta[2], +fechaTarjeta[1] - 1, fechaTarjeta[0]);\r\n profesionalTitulado.fechaExpedicion = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n }\r\n\r\n let solicitantes: any = [{\r\n primerNombre: this.solicitante.primerNombre.trim(),\r\n primerApellido: this.solicitante.primerApellido.trim(),\r\n segundoNombre: this.solicitante.segundoNombre !== null && this.solicitante.segundoNombre !== undefined ?\r\n this.solicitante.segundoNombre.trim() : \"\",\r\n segundoApellido: this.solicitante.segundoApellido !== null && this.solicitante.segundoApellido !== undefined ?\r\n this.solicitante.segundoApellido.trim() : \"\",\r\n correoElectronico: this.solicitante.correo.trim(),\r\n numeroIdentificacion: this.solicitante.numero,\r\n tipoIdentificacion: this.solicitante.tipo,\r\n celular: this.solicitante.celular,\r\n telefono: telefono,\r\n cargoEmpresa: this.solicitante.cargoEmpresa,\r\n actaPosesion: this.solicitante.actaPosesion,\r\n esRepresentanteLegal: this.solicitante.representanteLegal === true ? \"S\" : \"N\",\r\n esFuncionarioPublico: this.usuario.politica === \"Función Publica\" ? \"S\" : \"N\"\r\n }]\r\n\r\n if (this.solicitante.fechaNombramiento && this.solicitante.fechaNombramiento !== \"\" &&\r\n this.solicitante.fechaNombramiento !== null) {\r\n var fechaNombramiento = this.solicitante.fechaNombramiento.split(\"/\", 3);\r\n let date = new Date(fechaNombramiento[2], +fechaNombramiento[1] - 1, fechaNombramiento[0]);\r\n solicitantes[0].fechaNombramiento = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n\r\n if (this.solicitante.telefono != \"\") {\r\n solicitantes[0].telefono = [\r\n {\r\n extension: this.solicitante.extension,\r\n indicativo: this.solicitante.indicativo,\r\n telefono: this.solicitante.telefono\r\n }\r\n ]\r\n }\r\n let documentos: { tipo: any; contenido: any; }[] = []\r\n\r\n if (this.usuario.documentos !== undefined && this.usuario.documentos !== null &&\r\n this.usuario.documentos.length > 0) {\r\n this.usuario.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n }\r\n\r\n if (this.solicitante.documentos !== undefined && this.solicitante.documentos !== null &&\r\n this.solicitante.documentos.length > 0) {\r\n this.solicitante.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n }\r\n\r\n solicitantes[0].documentos = documentos\r\n solicitantes[0].departamento = this.solicitante.departamento\r\n solicitantes[0].municipio = this.solicitante.municipio\r\n solicitantes[0].codigoAgente = this.facturacion.agente\r\n\r\n var datosContactoTecnico: any = null\r\n if (this.contactoTecnico && this.contactoTecnico !== null) {\r\n datosContactoTecnico = {\r\n primerNombre: this.contactoTecnico.primerNombre.trim(),\r\n primerApellido: this.contactoTecnico.primerApellido.trim(),\r\n segundoNombre: this.contactoTecnico.segundoNombre !== null && this.contactoTecnico.segundoNombre !== undefined ?\r\n this.contactoTecnico.segundoNombre.trim() : \"\",\r\n segundoApellido: this.contactoTecnico.segundoApellido !== null && this.contactoTecnico.segundoApellido !== undefined ?\r\n this.contactoTecnico.segundoApellido.trim() : \"\",\r\n celular: this.contactoTecnico.celular,\r\n correoElectronico: this.contactoTecnico.correo.trim(),\r\n numeroIdentificacion: this.contactoTecnico.numero,\r\n tipoIdentificacion: this.contactoTecnico.tipo,\r\n telefono: telefono\r\n }\r\n if (this.contactoTecnico.telefono != \"\") {\r\n datosContactoTecnico.telefono = [\r\n {\r\n extension: this.contactoTecnico.extension,\r\n indicativo: this.contactoTecnico.indicativo,\r\n telefono: this.contactoTecnico.telefono\r\n }\r\n ]\r\n }\r\n }\r\n\r\n let body: any = {\r\n datosBasicos,\r\n datosFacturacion,\r\n detallesCertificado,\r\n datosContactoTecnico,\r\n informacionEnvio,\r\n profesionalTitulado,\r\n solicitantes,\r\n origen: env.origen\r\n }\r\n this.llamarApiCreacionOrdenPJ(body)\r\n }\r\n\r\n llamarApiCreacionOrdenPJ(body: any) {\r\n this.ssps.crearOrdenPedidoPJ(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta crearOrdenPedidoPJ\", res)\r\n if (res !== null && res.ordenPedidoId) {\r\n if (res.codigo !== undefined && res.codigo !== null &&\r\n res.codigo !== 200) {\r\n let urlRedireccion = `${env.urlVentaDigital}?id=` + res.solicitudId\r\n this.alert.closesSpiner()\r\n //Mostrar alerta y redireccionar a la consulta del id\r\n this.alert.showError(res.mensaje, true, \"¡Importante!\", false, urlRedireccion, \"Retomar solicitud\", true)\r\n }\r\n else {\r\n this.ssps.saveLocalStorage(\"ordenPedidoId\", JSON.stringify(res.ordenPedidoId));\r\n this.ssps.saveLocalStorage(\"solicitudId\", JSON.stringify(res.solicitudId));\r\n //Llamar servicio de generar llaves, que envie notificación si el dispo == pkcs#10\r\n if (this.usuario.dispo.toLowerCase() === \"pkcs#10\") {\r\n this.p10Mecanismo = true;\r\n (async () => {\r\n this.llamarGenerarRequestJuridico(res.solicitudId)\r\n })()\r\n }\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n this.noradicadopedi = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!);\r\n this.noradicadosolicitud = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n this.nopedido = true;\r\n }, 3000);\r\n }\r\n //this.usuario.identidadValidada = true\r\n }\r\n else {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n //Respuesta error del servicio, mostrar modal\r\n console.error('Error en servicio crearordenPedido', res)\r\n this.errorOrden = true\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error) => {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n console.error('Error en subscriber crearordenPedidoPJ', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.reintentos = 0;\r\n this.logger.log(\"Error\", \"time out\")\r\n this.llamarApiConsultaUltimaOrden(body)\r\n }\r\n else {\r\n this.errorOrden = true\r\n this.alert.closesSpiner()\r\n }\r\n }\r\n });\r\n }\r\n\r\n actualizarOrdenPedidoPJ() {\r\n let telefono = [{\r\n extension: \"\",\r\n indicativo: \"\",\r\n telefono: \"\"\r\n }]\r\n let datosBasicos: any = {\r\n aceptoTerminosSn: \"S\",\r\n razonSocial: this.usuario.razon.trim(),\r\n correoElectronico: this.usuario.correo.trim(),\r\n celular: this.usuario.celular,\r\n ip: this.ssps.ip,\r\n telefono: telefono\r\n }\r\n\r\n //Datos a validar en el formulario InfoBasica\r\n datosBasicos.departamento = this.usuario.departamento\r\n datosBasicos.direccion = this.usuario.direccion.trim()\r\n datosBasicos.municipio = this.usuario.municipio\r\n datosBasicos.regimenTributario = this.usuario.regimenTributario\r\n datosBasicos.tipoCapital = this.usuario.tipoCapital\r\n datosBasicos.actividadEconomica = this.usuario.actividadEconomica\r\n\r\n if (this.usuario.telefono != \"\") {\r\n datosBasicos.telefono = [\r\n {\r\n extension: this.usuario.extension,\r\n indicativo: this.usuario.indicativo,\r\n telefono: this.usuario.telefono\r\n }\r\n ]\r\n }\r\n\r\n let informacionEnvio: any = {}\r\n\r\n if (this.entrega.tipo === \"OFICINA\") {\r\n informacionEnvio.recogeCerti = {\r\n direccion: `${env.direccionCerti}`\r\n }\r\n }\r\n else if (this.entrega.tipo === \"ENVIO\") {\r\n informacionEnvio.envioDomicilio = {\r\n celular: this.entrega.celular,\r\n departamento: this.entrega.departamento,\r\n direccion: this.entrega.direccionCompleta.trim(),\r\n municipio: this.entrega.municipio,\r\n telefono: telefono\r\n }\r\n if (this.entrega.telefono != \"\") {\r\n informacionEnvio.envioDomicilio.telefono = [\r\n {\r\n extension: this.entrega.extension,\r\n indicativo: this.entrega.indicativo,\r\n telefono: this.entrega.telefono\r\n }\r\n ]\r\n }\r\n }\r\n else if (this.entrega.tipo === \"CORREO\" || this.entrega.tipo === \"VIRTUAL\") {\r\n informacionEnvio.envioViaCorreoElectronico = {\r\n correoElectronico: this.entrega.correo.trim()\r\n }\r\n }\r\n let datosFacturacion: any = null\r\n if (this.facturacion !== undefined && this.facturacion !== null) {\r\n datosFacturacion = {\r\n apellidos: this.facturacion.apellidos.trim(),\r\n celular: this.facturacion.celular,\r\n correoElectronico: this.facturacion.correo.trim(),\r\n direccion: this.facturacion.direccion.trim(),\r\n nombres: this.facturacion.nombres.trim(),\r\n numeroIdentificacion: this.facturacion.tipo === 'NI' ? this.facturacion.numero + this.facturacion.codigo : this.facturacion.numero,\r\n tipoIdentificacion: this.facturacion.tipo,\r\n telefono: telefono,\r\n regimenTributario: this.facturacion.regimenTributario,\r\n tipoCapital: this.facturacion.tipoCapital\r\n }\r\n if (this.facturacion.telefono != \"\") {\r\n datosFacturacion.telefono = [\r\n {\r\n extension: this.facturacion.extension,\r\n indicativo: this.facturacion.indicativo,\r\n telefono: this.facturacion.telefono\r\n }\r\n ]\r\n }\r\n\r\n datosFacturacion.departamento = this.facturacion.departamento\r\n datosFacturacion.municipio = this.facturacion.municipio\r\n }\r\n else {\r\n datosFacturacion = {\r\n apellidos: \"\",\r\n celular: \"\",\r\n correoElectronico: \"\",\r\n direccion: \"\",\r\n nombres: \"\",\r\n numeroIdentificacion: \"\",\r\n tipoIdentificacion: \"\",\r\n telefono: telefono,\r\n regimenTributario: \"\",\r\n tipoCapital: \"\"\r\n }\r\n }\r\n\r\n let detallesCertificado: any = {\r\n mecanismoEntrega: this.usuario.dispo,\r\n politica: this.usuario.politica,\r\n porcentajeIca: this.usuario.ica ?? 0,\r\n porcentajeIva: Math.trunc(this.usuario.iva),\r\n valorBaseLiquidacion: Math.trunc(this.usuario.costoBase),\r\n valorIca: Math.trunc(this.usuario.costoBase * ((this.usuario.ica ?? 0) / 100)),\r\n valorIva: Math.trunc(this.usuario.costoBase * (this.usuario.iva / 100)),\r\n porcentajeReteIva: Math.trunc(this.usuario.reteiva ?? 0),\r\n valorReteIva: Math.trunc((this.usuario.costoBase * (this.usuario.iva / 100)) * ((this.usuario.reteiva ?? 0) / 100)),\r\n valorNeto: Math.trunc(this.usuario.costo),\r\n vigencia: this.usuario.esVigenciaDias ? this.usuario.anos : (this.usuario.anos * 365),\r\n reposicion: this.usuario.esReposicion,\r\n estampillas: this.usuario.estampillas\r\n }\r\n\r\n let profesionalTitulado: any = null\r\n if (this.usuario.politica.toLowerCase() === 'profesional titulado') {\r\n profesionalTitulado = {\r\n fechaExpedicion: null,\r\n institucionGrado: this.solicitante.institucionGrado?.trim(),\r\n numTarjetaProfesional: this.solicitante.tarjetaProfesional?.trim(),\r\n profesion: this.solicitante.profesion?.trim()\r\n }\r\n if (this.solicitante.fechaExpTarjetaProfesional !== null\r\n && this.solicitante.fechaExpTarjetaProfesional !== undefined) {\r\n var fechaTarjeta = this.solicitante.fechaExpTarjetaProfesional.split(\"/\", 3);\r\n let date = new Date(fechaTarjeta[2], +fechaTarjeta[1] - 1, fechaTarjeta[0]);\r\n profesionalTitulado.fechaExpedicion = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n }\r\n\r\n let solicitantes: any = [{\r\n primerNombre: this.solicitante.primerNombre.trim(),\r\n primerApellido: this.solicitante.primerApellido.trim(),\r\n segundoNombre: this.solicitante.segundoNombre !== null && this.solicitante.segundoNombre !== undefined ?\r\n this.solicitante.segundoNombre.trim() : \"\",\r\n segundoApellido: this.solicitante.segundoApellido !== null && this.solicitante.segundoApellido !== undefined ?\r\n this.solicitante.segundoApellido.trim() : \"\",\r\n correoElectronico: this.solicitante.correo.trim(),\r\n celular: this.solicitante.celular,\r\n telefono: telefono,\r\n solicitudTitularId: JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!),\r\n cargoEmpresa: this.solicitante.cargoEmpresa,\r\n actaPosesion: this.solicitante.actaPosesion,\r\n esRepresentanteLegal: this.solicitante.representanteLegal === true ? \"S\" : \"N\",\r\n esFuncionarioPublico: this.usuario.politica === \"Función Publica\" ? \"S\" : \"N\"\r\n }]\r\n\r\n if (this.solicitante.telefono != \"\") {\r\n solicitantes[0].telefono = [\r\n {\r\n extension: this.solicitante.extension,\r\n indicativo: this.solicitante.indicativo,\r\n telefono: this.solicitante.telefono\r\n }\r\n ]\r\n }\r\n\r\n if (this.solicitante.fechaNombramiento && this.solicitante.fechaNombramiento !== \"\" &&\r\n this.solicitante.fechaNombramiento !== null) {\r\n var fechaNombramiento = this.solicitante.fechaNombramiento.split(\"/\", 3);\r\n let date = new Date(fechaNombramiento[2], +fechaNombramiento[1] - 1, fechaNombramiento[0]);\r\n solicitantes[0].fechaNombramiento = this.datepipe.transform(date, \"yyyy-MM-dd'T'HH:mm:ss\")!\r\n }\r\n\r\n let documentos: { tipo: any; contenido: any; }[] = []\r\n\r\n if (this.usuario.documentos !== undefined && this.usuario.documentos !== null &&\r\n this.usuario.documentos.length > 0) {\r\n this.usuario.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n }\r\n\r\n if (this.solicitante.documentos !== undefined && this.solicitante.documentos !== null &&\r\n this.solicitante.documentos.length > 0) {\r\n this.solicitante.documentos.filter((ff: any) => ff.file !== null && ff.file !== undefined).forEach(function (documento: any) {\r\n documentos.push({\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n })\r\n })\r\n }\r\n\r\n solicitantes[0].documentos = documentos\r\n solicitantes[0].departamento = this.solicitante.departamento\r\n solicitantes[0].municipio = this.solicitante.municipio\r\n solicitantes[0].codigoAgente = this.facturacion !== undefined && this.facturacion !== null ?\r\n this.facturacion.agente : \"\"\r\n\r\n var datosContactoTecnico: any = null\r\n if (this.contactoTecnico && this.contactoTecnico !== null) {\r\n datosContactoTecnico = {\r\n primerNombre: this.contactoTecnico.primerNombre.trim(),\r\n primerApellido: this.contactoTecnico.primerApellido.trim(),\r\n segundoNombre: this.contactoTecnico.segundoNombre !== null && this.contactoTecnico.segundoNombre !== undefined ?\r\n this.contactoTecnico.segundoNombre.trim() : \"\",\r\n segundoApellido: this.contactoTecnico.segundoApellido !== null && this.contactoTecnico.segundoApellido !== undefined ?\r\n this.contactoTecnico.segundoApellido.trim() : \"\",\r\n celular: this.contactoTecnico.celular,\r\n correoElectronico: this.contactoTecnico.correo.trim(),\r\n numeroIdentificacion: this.contactoTecnico.numero,\r\n tipoIdentificacion: this.contactoTecnico.tipo,\r\n telefono: telefono\r\n }\r\n if (this.contactoTecnico.telefono != \"\") {\r\n datosContactoTecnico.telefono = [\r\n {\r\n extension: this.contactoTecnico.extension,\r\n indicativo: this.contactoTecnico.indicativo,\r\n telefono: this.contactoTecnico.telefono\r\n }\r\n ]\r\n }\r\n }\r\n\r\n let body: any = {\r\n datosBasicos,\r\n datosFacturacion,\r\n detallesCertificado,\r\n informacionEnvio,\r\n profesionalTitulado,\r\n solicitantes,\r\n datosContactoTecnico\r\n }\r\n this.reintentos = 0;\r\n this.llamarApiActualizarOrdenPJ(body)\r\n }\r\n\r\n llamarApiActualizarOrdenPJ(body: any) {\r\n this.ssps.actualizarOrdenPedidoPJ(this.noradicadosolicitud, body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta actualizarOrdenPedidoPJ\", res)\r\n this.logger.log(\"respuesta actualizarOrdenPedidoPJ2\", this.actualizaOrden)\r\n if (res !== null && res.ordenPedidoId) {\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n if (res.solicitudFinalizada !== \"PENDIENTE\" && this.respuesta == \"mostrarordencambio\") {\r\n this.logger.log(\"Solicitud finalizada\", \"true\")\r\n this.alert.closesSpiner();\r\n this.alert.showSolicitudFinalizada(true)\r\n }\r\n else {\r\n this.nopedidoActualizar = !this.actualizaOrden;\r\n }\r\n }, 500);\r\n //this.usuario.identidadValidada = true\r\n }\r\n else {\r\n //Reintentar ciertas veces, sino mostrar modal de fallas tecnicas, que muestra formulario de contacto\r\n //Consumir servicio de formularioContactenos\r\n //Respuesta error del servicio, mostrar modal\r\n this.alert.closesSpiner()\r\n console.error('Error en servicio actualizarOrdenPedidoPJ', res)\r\n let mensaje = res.mensaje ? res.mensaje : \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber llamarApiActualizarOrdenPJ', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n async llamarGenerarRequestJuridico(solicitudId: any) {\r\n let body: any = {\r\n solicitudId: solicitudId,\r\n usoCertificado: this.usuario.uso.id,\r\n uso: this.usuario.uso.descripcion,\r\n otroUso: this.usuario.uso.otro ?? \"\"\r\n }\r\n\r\n this.ssps.generarRequestJuridico(body).subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta generarRequestJurido\", res)\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber generarRequestJurido', error)\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
Política: {{compras.politica}}\r\n
\r\n
\r\n
\r\n
Certificado:\r\n {{compras.dispo | uppercase}}\r\n {{compras.dispo | titlecase}}\r\n
 \r\n
Vigencia:\r\n {{compras.anos}}\r\n
 \r\n
Costo: {{costos |\r\n currency:'COP':\r\n 'symbol' : '1.0-0' }} \r\n
\r\n
\r\n
\r\n
Solicitantes: \r\n {{'1'}} \r\n
\r\n
\r\n
\r\n
Orden pedido: \r\n {{noradicadopedi}} \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

Datos del solicitante

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

Datos de empresa

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

Datos del solicitante

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

Datos persona vinculada

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

Datos de entrega

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

Facturación electrónica

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

Pagar

\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

Se creó la Orden de Pedido N° {{noradicadopedi}}

\r\n

Tu orden de compra de certificado ha sido creada

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

Se ha actualizado la orden de pedido N° {{noradicadopedi}}

\r\n

Tu orden de compra de certificado ha sido\r\n actualizada
\r\n
\r\n Por tu seguridad y la del proceso, queremos validar tu\r\n identidad.\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

Error al crear la orden pedido

\r\n

Ocurrió un error al procesar la solicitud, por favor intenta nuevamente.

\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ChangeDetectorRef, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, FormArray, FormControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '../../../../domain/servicios/log.service'\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-info-basica',\r\n templateUrl: './info-basica.component.html',\r\n styleUrls: ['./info-basica.component.css']\r\n})\r\nexport class InfoBasicaComponent implements OnInit {\r\n\r\n @ViewChild('inputRefPrimerNombre')\r\n inputRefPrimerNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoNombre')\r\n inputRefSegundoNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefPrimerApellido')\r\n inputRefPrimerApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoApellido')\r\n inputRefSegundoApellido!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo1')\r\n inputRefCorreo1!: { nativeElement: any; };\r\n @ViewChild('inputRefInstitucion')\r\n inputRefInstitucion!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesional')\r\n inputRefProfesional!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesion')\r\n inputRefProfesion!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefDireccion')\r\n inputRefDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefTipoNumeroDireccion')\r\n inputRefTipoNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion')\r\n inputRefNumeroDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroDireccion2')\r\n inputRefNumeroDireccion2!: { nativeElement: any; };\r\n @ViewChild('inputRefBarrioDireccion')\r\n inputRefBarrioDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefAdicionalDireccion')\r\n inputRefAdicionalDireccion!: { nativeElement: any; };\r\n @ViewChild('inputRefNumeroOtroDireccion')\r\n inputRefNumeroOtroDireccion!: { nativeElement: any; };\r\n\r\n @Output() infobasica: EventEmitter = new EventEmitter();\r\n urlRequest = urlRequest\r\n formaForm!: FormGroup;\r\n cambiologo2: boolean = false;\r\n cambiologo: boolean = true;\r\n profesional: boolean = false;\r\n documentob: boolean = false;\r\n cantidad: number = 0;\r\n totalCantidad: number = 0;\r\n usuario: any = {\r\n documentos: [],\r\n ip: ''\r\n };\r\n pago: any = {};\r\n archivos: boolean = false;\r\n tipos: boolean = false;\r\n mayor: boolean = false;\r\n files: boolean = false;\r\n fechaExpTarjeta!: any;\r\n statusFechaExpTarjeta: boolean = false;\r\n fechaExpDocumento!: any;\r\n statusFechaExpDocumento: boolean = false;\r\n showDocumentsB: boolean = false;\r\n buttons: any = [] = [];\r\n validateformats: any[] = [];\r\n error: string = 'Formato no válido';\r\n queryRuta: any = null\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n comas: boolean = false;\r\n indicativos: any[] = [];\r\n comasnit: boolean = false;\r\n\r\n depar: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n\r\n actualizacion = false\r\n\r\n maxDate: NgbDateStruct\r\n minDate: NgbDateStruct\r\n direccion: any = {}\r\n tipoDireccion: any[] = [];\r\n regimenTributario: any[] = []\r\n otraProfesion = false\r\n profesiones: any[] = []\r\n profesionLista = \"\"\r\n realizoPago = \"N\"\r\n preciosd: any[] = [];\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n public datepipe: DatePipe, private route: ActivatedRoute,\r\n private logger: LogService,\r\n private alert: AlertsService,\r\n private el: ElementRef) {\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n primerNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n segundoNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n primerApellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n segundoApellido: ['', [\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n correo: ['', [Validators.required,\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n correo1: ['', [Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n documentos: this.fb.array([]),\r\n fechaExpTarjeta: [null, []],\r\n fechaExpDocumento: [null],\r\n tipo: [null],\r\n numero: [null],\r\n institucion: ['', [\r\n Validators.required,\r\n Validators.maxLength(60),\r\n ]],\r\n profesion: ['', [\r\n Validators.required,\r\n Validators.maxLength(60),\r\n ]],\r\n profesionLista: ['',\r\n Validators.required\r\n ],\r\n profesional: ['', [\r\n Validators.maxLength(20),\r\n ]],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [0, [\r\n Validators.maxLength(5)\r\n ]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n departamento: ['', [Validators.required]],\r\n municipio: ['', [Validators.required]],\r\n tipoDireccion: ['', [\r\n Validators.required\r\n ]],\r\n tipoNumeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n numeroDireccion2: ['', [\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ]],\r\n barrioDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n adicionalDireccion: ['', [\r\n Validators.maxLength(200)\r\n ]],\r\n numeroOtroDireccion: ['', [\r\n Validators.minLength(4),\r\n Validators.maxLength(200)\r\n ]],\r\n regimenTributario: ['', [Validators.required]]\r\n }, {\r\n //validators: this.componentesService.soniguales('correo', 'correo1')\r\n }\r\n );\r\n var actualFecha = new Date();\r\n this.maxDate = { year: actualFecha.getFullYear(), month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n this.minDate = { year: actualFecha.getFullYear() - 100, month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.setOnChangesInputs()\r\n this.totalCantidad = 2;\r\n this.ssps.obtenerIpValor()\r\n this.tiposDireccion()\r\n this.cargarProfesiones()\r\n this.tiposRegimenTributario()\r\n this.indicativo();\r\n this.departamentos();\r\n this.precios()\r\n this.actualizacion = this.ssps.getLocalStorage(\"actualizacion\") ?\r\n JSON.parse(this.ssps.getLocalStorage(\"actualizacion\")!) : false\r\n //Validr los queryParams, para así ir a consultar los datos de la ordenPedido\r\n //Si el redirect != null, entonces redirige al path\r\n const querySolicitud = this.route.snapshot.queryParamMap.get('id');\r\n this.queryRuta = this.route.snapshot.queryParamMap.get('redirect');\r\n this.logger.log(\"querySolicitud\", querySolicitud)\r\n this.logger.log(\"queryRuta\", this.queryRuta)\r\n if (querySolicitud) {\r\n this.logger.log(\"Consultar datos de OP y mapear datos al localstorage\", \"TODO\")\r\n this.consultarDatosOrdenPedido(querySolicitud)\r\n }\r\n else {\r\n this.logger.log(\"Sin query datos\", \"TODO\")\r\n this.mapearDatos()\r\n this.componentesService.emitircambio(\"mostrarBarra\");\r\n }\r\n }\r\n\r\n consultarDatosOrdenPedido(solicitudId: string) {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n this.ssps.consultarOrdenPedido(solicitudId)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarOrdenPedido\", res)\r\n if (res !== null) {\r\n if (res.codigo && res.codigo !== 200) {\r\n this.alert.closesSpiner()\r\n let mensaje = res.mensaje ? res.mensaje : \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n else {\r\n this.ssps.saveLocalStorage(\"ordenPedidoId\", JSON.stringify(res.ordenPedidoId));\r\n this.ssps.saveLocalStorage(\"solicitudId\", JSON.stringify(solicitudId));\r\n this.ssps.saveLocalStorage(\"tipocliente\", res.tipoPersona);\r\n this.ssps.saveLocalStorage(\"actualizacion\", \"true\");\r\n this.actualizacion = true\r\n if (res.tipoPersona === \"natural\") {\r\n this.ssps.saveOrdenPedidoData(res)\r\n this.mapearDatos()\r\n this.componentesService.emitircambio(\"mostrarBarra\");\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n\r\n if (this.queryRuta && this.queryRuta !== null) {\r\n setTimeout(() => {\r\n //this.alert.closesSpiner();\r\n this.logger.log(\"fin load\", \"true\")\r\n if (this.queryRuta === \"pago\" || this.queryRuta === \"cargar-pago\") {\r\n if (this.queryRuta === \"cargar-pago\") {\r\n this.ssps.saveLocalStorage(\"cargarSoloPago\", \"true\")\r\n }\r\n this.componentesService.emitircambio(\"pagosFull\");\r\n this.router.navigate(['/flujo/pago']);\r\n }\r\n else {\r\n this.router.navigate([this.queryRuta]);\r\n }\r\n }, 500);\r\n }\r\n else {\r\n this.router.navigate([], {\r\n queryParams: {\r\n 'id': null\r\n },\r\n queryParamsHandling: 'merge'\r\n })\r\n this.validacionIdentidadFaltantes()\r\n }\r\n }\r\n else {\r\n this.ssps.saveOrdenPedidoDataPJ(res)\r\n this.mapearDatos()\r\n this.componentesService.emitircambio(\"mostrarBarra\");\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n if (this.queryRuta && this.queryRuta !== null) {\r\n setTimeout(() => {\r\n //this.alert.closesSpiner();\r\n this.logger.log(\"fin load\", \"true\")\r\n if (this.queryRuta === \"pago\" || this.queryRuta === \"cargar-pago\") {\r\n if (this.queryRuta === \"cargar-pago\") {\r\n this.ssps.saveLocalStorage(\"cargarSoloPago\", \"true\")\r\n }\r\n this.componentesService.emitircambio(\"pagosFull\");\r\n this.router.navigate(['/flujo/pago']);\r\n }\r\n else {\r\n this.router.navigate([this.queryRuta]);\r\n }\r\n }, 500);\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.router.navigate(['/flujo/empresa'], {\r\n queryParams: {\r\n 'id': null\r\n },\r\n queryParamsHandling: 'merge'\r\n })\r\n this.validacionIdentidadFaltantes()\r\n }, 2500);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n let mensaje = \"No fue posible realizar la petición\"\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n },\r\n error: (error: any) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarOrdenPedido', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, true, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n validacionIdentidadFaltantes() {\r\n if (this.usuario.solicitudFinalizada !== undefined && this.usuario.solicitudFinalizada !== null &&\r\n this.usuario.solicitudFinalizada !== \"\" && this.usuario.solicitudFinalizada !== \"PENDIENTE\") {\r\n this.logger.log(\"Solicitud finalizada\", \"true\")\r\n this.logger.log(\"Solicitud finalizada\", this.usuario.solicitudFinalizada)\r\n this.alert.closesSpiner();\r\n this.alert.showSolicitudFinalizada(false)\r\n }\r\n else {\r\n //Mostrar alerta con los faltantes\r\n this.alert.closesSpiner();\r\n this.alert.showSolicitudFaltantes()\r\n }\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"primerNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerNombre) {\r\n const elRef = this.inputRefPrimerNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerNombre\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"segundoNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoNombre) {\r\n const elRef = this.inputRefSegundoNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoNombre\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"primerApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerApellido) {\r\n const elRef = this.inputRefPrimerApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerApellido\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"segundoApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoApellido) {\r\n const elRef = this.inputRefSegundoApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoApellido\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n this.formaForm.get(\"correo1\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo1) {\r\n const elRef = this.inputRefCorreo1.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo1\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"institucion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefInstitucion) {\r\n const elRef = this.inputRefInstitucion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"institucion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"profesional\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefProfesional) {\r\n const elRef = this.inputRefProfesional.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"profesional\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"profesion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefProfesion) {\r\n const elRef = this.inputRefProfesion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"profesion\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefTipoNumeroDireccion) {\r\n const elRef = this.inputRefTipoNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"tipoNumeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion) {\r\n const elRef = this.inputRefNumeroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroDireccion2\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroDireccion2) {\r\n const elRef = this.inputRefNumeroDireccion2.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroDireccion2\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"barrioDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefBarrioDireccion) {\r\n const elRef = this.inputRefBarrioDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"barrioDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"adicionalDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefAdicionalDireccion) {\r\n const elRef = this.inputRefAdicionalDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"adicionalDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numeroOtroDireccion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumeroOtroDireccion) {\r\n const elRef = this.inputRefNumeroOtroDireccion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numeroOtroDireccion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get('tipo')?.disable();\r\n this.formaForm.get('numero')?.disable();\r\n }\r\n\r\n //TODO:borrar validators\r\n clearValidators() {\r\n const controlesAEliminar = ['fechaExpTarjeta', 'institucion', 'profesional', 'profesion', 'profesionLista'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n regresarResumen() {\r\n //this.alert.showSssps();\r\n this.ssps.saveLocalStorage(\"regresaFormulario\", \"true\")\r\n this.router.navigate(['/']);\r\n }\r\n\r\n //TODO:creacion de forms arrays\r\n get documentsDocuments() {\r\n return this.formaForm.get('documentos') as FormArray;\r\n }\r\n\r\n //TODO:crear botones\r\n crearButtons() {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo', subtitle: 'El formato de documento permitido para cargar es .PDF', accept: \".pdf\"\r\n }\r\n if (this.documentsDocuments.controls.length > 0) {\r\n for (let i = 0; i < this.documentsDocuments.controls.length; i++) {\r\n this.buttons[i] = estilos;\r\n this.validateformats[i] = false;\r\n }\r\n }\r\n }\r\n\r\n //TODO agrega controls con valor requerido\r\n addControlDocument() {\r\n this.documentsDocuments.push(this.fb.control(null));\r\n }\r\n\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario enviuo de los mismos localstorage*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n this.logger.log(\"error\", key)\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n if (this.campoValidacionDireccion()) return;\r\n if (this.realizoPago !== \"S\") {\r\n this.validarRegimenPrecios()\r\n }\r\n\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, correo1, correo, profesional, institucion, fechaExpTarjeta,\r\n profesion, fechaExpDocumento, celular, telefono, extension, indicativo,\r\n departamento, municipio, tipoDireccion, tipoNumeroDireccion, numeroDireccion, numeroDireccion2,\r\n barrioDireccion, adicionalDireccion, numeroOtroDireccion, regimenTributario, profesionLista } = this.formaForm.getRawValue();\r\n\r\n let objetoDireccion = {\r\n tipo: tipoDireccion,\r\n tipoNumero: tipoNumeroDireccion,\r\n numero: numeroDireccion,\r\n numero2: numeroDireccion2,\r\n barrio: barrioDireccion,\r\n adicional: adicionalDireccion ?? \"\",\r\n tipoOtroNumero: numeroOtroDireccion\r\n }\r\n\r\n let datos = {\r\n primerNombre,\r\n segundoNombre,\r\n primerApellido,\r\n segundoApellido,\r\n correo: correo,\r\n correo1: correo1,\r\n documentos: this.buttons.filter((f: { file: any; }) => f.file),\r\n tarjetaProfesional: profesional,\r\n institucionGrado: institucion,\r\n fechaExpTarjetaProfesional: fechaExpTarjeta,\r\n fechaExpDocumento,\r\n profesion: this.otraProfesion ? profesion : profesionLista,\r\n ip: this.ssps.ip,\r\n telefono,\r\n extension,\r\n indicativo,\r\n celular,\r\n departamento,\r\n municipio,\r\n regimenTributario,\r\n objetoDireccion: objetoDireccion,\r\n direccion: (objetoDireccion.tipo !== \"Otro\" ? (objetoDireccion.tipo + \" \" + objetoDireccion.tipoNumero + \" #\" + objetoDireccion.numero + \"-\" +\r\n objetoDireccion.numero2) : objetoDireccion.tipoOtroNumero) +\r\n \" BARRIO \" + objetoDireccion.barrio + (objetoDireccion.adicional !== \"\" ? \" ADICIONAL \" + objetoDireccion.adicional : \"\")\r\n }\r\n\r\n Object.assign(this.usuario, datos);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.componentesService.emitircambio(\"actualizarOrden\");\r\n }\r\n if (this.usuario.cliente === \"natural\" && this.usuario.dispo.toUpperCase() !== \"PKCS#10\") {\r\n this.componentesService.emitircambio(\"contacto\");\r\n this.router.navigate(['/flujo/entrega']);\r\n }\r\n else {\r\n this.componentesService.emitircambio(\"infoperso\");\r\n this.router.navigate(['/flujo/contacto']);\r\n }\r\n }\r\n\r\n //TODO:validaciones de fechas\r\n fechas(dato: any, campo: any) {\r\n if (dato === undefined || dato === null) return;\r\n let valida = /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/-](?:0?[1-9]|1[0-2])|(?:29|30)[/-](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/-](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/-]0?2[/-](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n let errores: boolean = false;\r\n\r\n if (campo === \"fechaExpTarjeta\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpTarjeta = true;\r\n } else {\r\n this.statusFechaExpTarjeta = false;\r\n\r\n }\r\n }\r\n if (campo === \"fechaExpDocumento\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpDocumento = true;\r\n } else {\r\n this.statusFechaExpDocumento = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n /* estado de botones logos cambiantes*/\r\n estado(valor: string) {\r\n if (this.cantidad == 0) {\r\n // this.cambiologo2 = true;\r\n // this.cambiologo = false;\r\n this.cantidad = this.cantidad + 1;\r\n }\r\n\r\n }\r\n\r\n //cambio de estilos animacion boton archivos\r\n validar() {\r\n\r\n return (this.cambiologo = true) ? ' animate__animated animate__fadeIn animate__fast' : 'animate__animated animate__fadeOut animate__fast';\r\n }\r\n\r\n //TODO:implementacion de creacion de buttos\r\n CreateDocument(documentName: string, id: String) {\r\n let indice = this.buttons.findIndex((f: { id: String; }) => f.id === id);\r\n this.logger.log(\"indicie\", indice)\r\n if (indice > -1) {\r\n this.buttons = this.buttons.filter((f: { id: String; }) => f.id !== id)\r\n this.documentsDocuments.removeAt(indice)\r\n }\r\n else {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo',\r\n subtitle: 'El formato de documento permitido para cargar es .PDF',\r\n name: documentName,\r\n id: id,\r\n accept: \".pdf\"\r\n }\r\n this.buttons.push(estilos)\r\n this.addControlDocument();\r\n }\r\n }\r\n\r\n ExisteDocumento(id: String) {\r\n return this.usuario.documentos.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n ExisteDocumentoCargado(id: String) {\r\n return this.usuario.documentosCargados && this.usuario.documentosCargados.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n //TODO:vision de documents\r\n documentDocs(event: any) {\r\n this.showDocumentsB = true;\r\n }\r\n\r\n\r\n /*validacion de salerta campos iguales*/\r\n get correo2NoValido() {\r\n const pass1 = this.formaForm.get('correo')!.value;\r\n const pass2 = this.formaForm.get('correo1')!.value;\r\n\r\n return (pass1 === pass2) ? false : true;\r\n }\r\n\r\n\r\n\r\n /*validar tamaño de archivo*/\r\n getFileDetails(file: any, index: number) {\r\n\r\n let fileToUpload = file[0];\r\n\r\n const botonActualizado = { ...this.buttons[index] };\r\n\r\n let tamañoEnBytes = fileToUpload.size;\r\n let tamañoEnMegabytes = tamañoEnBytes / (1024 * 1024);\r\n\r\n if (fileToUpload.type == \"application/pdf\") {\r\n if (tamañoEnMegabytes > 10) {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n }\r\n if (tamañoEnMegabytes < 10) {\r\n const reader = new FileReader()\r\n reader.onload = () => {\r\n const b64 = reader.result as string\r\n botonActualizado.file = b64\r\n }\r\n\r\n if (fileToUpload) {\r\n reader.readAsDataURL(fileToUpload)\r\n }\r\n\r\n botonActualizado.fondo = '#09CB34';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Documento cargado con exito';\r\n botonActualizado.subtitle = fileToUpload.name;\r\n\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = false;\r\n this.cantidad += 1;\r\n }\r\n }\r\n else {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n\r\n }\r\n\r\n }\r\n\r\n //TODO:implementacion de datos\r\n isValidFieldInArray(formArray: FormArray, index: number) {\r\n return formArray.controls[index].errors\r\n && formArray.controls[index].touched;\r\n }\r\n\r\n mapearDatos() {\r\n /*asignacion de valores desde el cervicio crm*/\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n if (this.ssps.getLocalStorage('pago')) {\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!)\r\n this.realizoPago = this.pago.realizoPago\r\n }\r\n this.formaForm.get(\"departamento\")!.setValue(this.usuario.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n //Mapear documentos del localStorage\r\n if (this.usuario.documentos) {\r\n this.buttons = this.usuario.documentos\r\n this.cantidad = this.usuario.documentos.length\r\n this.usuario.documentos.forEach((element: any, index: any) => {\r\n this.validateformats[index] = false;\r\n this.addControlDocument();\r\n });\r\n }\r\n else {\r\n this.usuario.documentos = []\r\n }\r\n if (this.usuario.politica == \"Profesional Titulado\") {\r\n this.totalCantidad = 3;\r\n this.profesional = true;\r\n this.logger.log(\"fecha ExpTarjeta\", this.usuario.fechaExpTarjetaProfesional)\r\n if (this.usuario.fechaExpTarjetaProfesional && this.usuario.fechaExpTarjetaProfesional !== '' &&\r\n !this.usuario.fechaExpTarjetaProfesional.includes(\"/\")) {\r\n this.fechaExpTarjeta = this.datepipe.transform(new Date(this.usuario.fechaExpTarjetaProfesional), \"dd/MM/yyyy\")!\r\n }\r\n else if (this.usuario.fechaExpTarjetaProfesional && this.usuario.fechaExpTarjetaProfesional.includes(\"/\")) {\r\n this.fechaExpTarjeta = this.usuario.fechaExpTarjetaProfesional\r\n }\r\n //Format la fecha\r\n }\r\n if (this.usuario.fechaExpDocumento && this.usuario.fechaExpDocumento !== '' &&\r\n !this.usuario.fechaExpDocumento.includes(\"/\")) {\r\n this.fechaExpDocumento = this.datepipe.transform(new Date(this.usuario.fechaExpDocumento), \"dd/MM/yyyy\")!\r\n }\r\n else if (this.usuario.fechaExpDocumento && this.usuario.fechaExpDocumento.includes(\"/\")) {\r\n this.fechaExpDocumento = this.usuario.fechaExpDocumento\r\n }\r\n if (this.usuario.politica !== \"Profesional Titulado\") {\r\n this.clearValidators();\r\n }\r\n\r\n this.direccion = this.usuario.objetoDireccion ?? {}\r\n console.log(\"objeto direccion: \", this.usuario.objetoDireccion);\r\n if (this.direccion.tipo === \"Otro\") {\r\n console.log(\"objeto direccion: \", this.usuario.objetoDireccion);\r\n this.clearValidatorsDireccion()\r\n }\r\n this.profesionLista = this.usuario.profesion\r\n setTimeout(() => {\r\n var existeProfesion = this.profesiones.filter(s => s === this.usuario.profesion)\r\n this.deshabilitarCmaposFinalizados()\r\n if (existeProfesion.length === 0 && this.usuario.politica === \"Profesional Titulado\") {\r\n this.otraProfesion = true\r\n const profesionForm = this.formaForm.get(\"profesion\");\r\n if (profesionForm) {\r\n this.profesionLista = \"OTRA\"\r\n profesionForm.patchValue(\"OTRA\")\r\n profesionForm.updateValueAndValidity();\r\n }\r\n this.addValidatorsProfesion()\r\n }\r\n else {\r\n this.clearValidatorsProfesion()\r\n }\r\n }, 2000);\r\n\r\n if (this.usuario.municipio !== undefined && this.usuario.municipio !== null &&\r\n this.usuario.departamento !== null && this.usuario.departamento !== undefined\r\n ) {\r\n let departamento = this.usuario.departamento;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.formaForm.get(\"municipio\")!.setValue(this.usuario.municipio, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && key !== \"correo1\" &&\r\n (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n noPuntote(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel2 = res;\r\n })\r\n }\r\n\r\n noPuntoex(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastex = res;\r\n })\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n\r\n this.usuario.telefono = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n\r\n this.usuario.extension = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros4(numero: string) {\r\n this.usuario.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n noPuntoComacod(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comas = res;\r\n })\r\n }\r\n /*carga datos select*/\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n }\r\n\r\n tiposRegimenTributario() {\r\n this.ssps.tiposRegimenTributario()\r\n .subscribe((res: any) => {\r\n this.regimenTributario = res.filter((r: string) => r === \"No Responsable de IVA\" ||\r\n r === \"Régimen simple de tributación PN\")\r\n });\r\n }\r\n\r\n cargarProfesiones() {\r\n this.ssps.cargarProfesiones()\r\n .subscribe((res: any) => {\r\n this.profesiones = res\r\n });\r\n }\r\n\r\n noPuntoComa(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comasnit = res;\r\n })\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n let departamento = this.usuario.departamento\r\n this.formaForm.get(\"departamento\")!.setValue(this.usuario.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n }, 1000);\r\n });\r\n }\r\n changeDepartamento($event: any) {\r\n let departamento = $event.target.value;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.usuario.municipio = undefined\r\n this.formaForm.get(\"municipio\")!.setValue(undefined, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n\r\n tiposDireccion() {\r\n this.ssps.tiposDireccion()\r\n .subscribe((res: any) => {\r\n this.tipoDireccion = res;\r\n });\r\n }\r\n\r\n changeTipoDireccion($event: any) {\r\n let tipoDireccion = $event.target.value;\r\n if (tipoDireccion === \"Otro\") {\r\n this.direccion = {\r\n tipo: tipoDireccion,\r\n barrio: \"\",\r\n adicional:\"\"\r\n }\r\n this.clearValidatorsDireccion()\r\n }\r\n else {\r\n this.addValidatorsDireccion()\r\n }\r\n }\r\n\r\n clearValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(200)])\r\n }\r\n else {\r\n control.clearValidators();\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n clearValidatorsProfesion() {\r\n const controlesAEliminar = ['profesion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsProfesion() {\r\n const controlesAEliminar = ['profesion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.maxLength(60)\r\n ])\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'numeroOtroDireccion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n if (controlName === \"numeroOtroDireccion\") {\r\n control.clearValidators();\r\n }\r\n else {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.minLength(1),\r\n Validators.maxLength(10)\r\n ])\r\n }\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n validarProfesion($event: any) {\r\n let profesionSeleccionada = $event.target.value;\r\n if (profesionSeleccionada === \"OTRA\") {\r\n this.addValidatorsProfesion()\r\n this.otraProfesion = true\r\n this.usuario.profesion = \"\"\r\n }\r\n else {\r\n this.clearValidatorsProfesion()\r\n this.otraProfesion = false\r\n }\r\n }\r\n\r\n precios() {\r\n this.ssps.precios()\r\n .subscribe((res: any) => {\r\n this.preciosd = res.precios;\r\n })\r\n }\r\n\r\n validarRegimenPrecios() {\r\n this.usuario.costoBase = this.pago.costoBase ?? (this.usuario.costoBase ?? 0)\r\n let departamento = this.depar.filter(d => +d.codigo_dep === +this.usuario.departamento)[0].Departamento\r\n let objetoDispositivo: any = this.preciosd.filter((res) => { return res.nombre.toLowerCase() == this.usuario.dispo.toLowerCase(); })[0]\r\n if (departamento === \"ARCHIPIÉLAGO DE SAN ANDRÉS, PROVIDENCIA Y SANTA CATALINA\" || departamento === \"AMAZONAS\") {\r\n let valorIca = 0;\r\n let valorIva = 0\r\n let valorReteIva = 0\r\n this.usuario.iva = 0\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = 0\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n this.usuario.descuentos = 0\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n else {\r\n let valorIca = 0;\r\n let valorIva: any = ((this.usuario.costoBase - (this.pago.descuentoCupon ?? 0)) * (objetoDispositivo.iva / 100))\r\n let valorReteIva = 0\r\n this.usuario.iva = Math.trunc(objetoDispositivo.iva)\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = 0\r\n this.pago.costoBase = Math.trunc(this.usuario.costoBase)\r\n this.pago.ica = this.usuario.ica ?? 0\r\n this.pago.icaValor = Math.trunc(valorIca)\r\n this.pago.iva = Math.trunc(this.usuario.iva)\r\n this.pago.ivaValor = Math.trunc(valorIva)\r\n this.pago.reteIvaValor = Math.trunc(valorReteIva)\r\n this.usuario.costoBase = Math.trunc(this.usuario.costoBase - (this.pago.descuentoCupon ?? 0))\r\n this.pago.reteiva = Math.trunc(this.usuario.reteiva)\r\n this.pago.descuentoCupon = Math.trunc(this.pago.descuentoCupon ?? 0)\r\n this.usuario.costo = Math.trunc(this.usuario.costoBase + valorIva - valorIca - valorReteIva)\r\n this.usuario.descuentoCupon = Math.trunc(this.usuario.descuentoCupon ?? 0)\r\n this.pago.valorTotal = Math.trunc(this.usuario.costo)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.componentesService.emitircambio(\"cargarDatosHeader\");\r\n }\r\n }\r\n campoValidacionDireccion() {\r\n const controlesAEliminar = ['tipoNumeroDireccion', 'numeroDireccion',\r\n 'numeroDireccion2', 'barrioDireccion', 'adicionalDireccion', 'numeroOtroDireccion'];\r\n //Validar que si tiene el +, mostrar error y enfocar el campo\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n let valor = control.getRawValue();\r\n if (valor !== null && valor !== undefined && valor.includes(\"+\")) {\r\n console.log(\"valor elemento\", control.getRawValue())\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + controlName + '\"]');\r\n invalidControl?.focus();\r\n control.setErrors({\r\n formatoValido: false\r\n })\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n","
\r\n\r\n
\r\n
Información básica
\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
Primer nombre no es válido
\r\n
\r\n
\r\n \r\n \r\n
Segundo nombre no es válido
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Primer apellido no es válido
\r\n
\r\n
\r\n \r\n \r\n
Segundo apellido no es válido
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
\r\n
\r\n Los correos no son iguales
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Tipo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Campo no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n \r\n \r\n
Número no válido
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Barrio no válido.
\r\n
\r\n
\r\n \r\n \r\n
Direccion inválida
\r\n
\r\n
\r\n
\r\n
\r\n
La dirección no puede contener el carácter especial +
\r\n
\r\n
\r\n \r\n \r\n
Departamento no válido, selecciona una opción del listado
\r\n
\r\n
\r\n \r\n \r\n
Municipio no válido, selecciona una opción del listado
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
Indicativo no válido, selecciona una opción de la lista
\r\n
El campo\r\n no\r\n puede tener decimales
\r\n
\r\n\r\n
\r\n \r\n
Teléfono no válido, debe ser un número de 7 dígitos
\r\n
El\r\n campo\r\n no puede tener comas
\r\n\r\n
\r\n
\r\n \r\n
Extension no válido
\r\n
El campo\r\n no puede tener comas
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
Celular no válido, ingresar número de 10 dígitos
\r\n\r\n
El campo\r\n no\r\n puede tener comas
\r\n
\r\n
\r\n \r\n \r\n\r\n
Regimen tributario no válido
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Institución no válida
\r\n
\r\n
\r\n \r\n \r\n
Profesion no válido
\r\n
\r\n
\r\n \r\n \r\n
Profesion no válido
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
Institución no válida
\r\n
\r\n
\r\n \r\n \r\n
Número de tarjeta profesional no válido
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
Fecha de expedición de tarjeta profesional\r\n no válida
\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

{{buttons[i].title}}\r\n
\r\n {{buttons[i].subtitle}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{error}}
\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, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroup, Validators, FormBuilder, FormArray, FormControl } from '@angular/forms';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { LogService } from '../../../../domain/servicios/log.service'\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { datosPasarela } from 'src/assets/config/app.conf';\r\n\r\n@Component({\r\n selector: 'app-pago',\r\n templateUrl: './pago.component.html',\r\n styleUrls: ['./pago.component.css']\r\n})\r\nexport class PagoComponent implements OnInit {\r\n usuario: any = null;\r\n facturacion: any = null;\r\n pago: any = {};\r\n codigoDescuento: any = false;\r\n validacionCupon: boolean = false;\r\n descarga: boolean = false;\r\n carga: boolean = false;\r\n formaForm!: FormGroup;\r\n buttons: any = [] = [];\r\n validateformats: any[] = [];\r\n cambiologo: boolean = true;\r\n error: string = 'Formato no válido';\r\n cargarSoloPago = false\r\n documentoCargado = false;\r\n @ViewChild('codigo')\r\n codigo!: { nativeElement: any; };\r\n\r\n constructor(private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService, private logger: LogService,\r\n private changeDetector: ChangeDetectorRef,\r\n private alert: AlertsService, private fb: FormBuilder) {\r\n this.formaForm = this.fb.group({\r\n documentos: this.fb.array([])\r\n }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.ssps.obtenerIpValor()\r\n //Consultar storage pago, si el estado es aprobado y la etapa es finalizado, habilitar boton para ir \r\n // a aprobación solicitud\r\n //Si la etapa es iniciado, se debe redirigir a la pagina place to play para que realice el pago\r\n this.componentesService.emitircambio(\"pagosFull\");\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.facturacion = JSON.parse(this.ssps.getLocalStorage('facturacion')!);\r\n\r\n if (this.ssps.getLocalStorage('cargarSoloPago')) {\r\n this.cargarSoloPago = JSON.parse(this.ssps.getLocalStorage('cargarSoloPago')!);\r\n }\r\n this.logger.log(\"documentosCargados usuario\", this.usuario.documentosCargados)\r\n if (this.ssps.getLocalStorage('pago')) {\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!);\r\n if (!this.pago.ordenPedidoId) {\r\n this.pago.ordenPedidoId = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n }\r\n if (!this.pago.solicitudId) {\r\n this.pago.solicitudId = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago))\r\n }\r\n else {\r\n let valorIva = (this.usuario.costoBase * (this.usuario.iva / 100))\r\n let valorReteIva = (this.usuario.costoBase * ((this.usuario.reteiva ?? 0) / 100))\r\n this.pago = {\r\n ordenPedidoId: JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!),\r\n solicitudId: JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!),\r\n costoBase: this.usuario.costoBase,\r\n impuestos: valorIva - valorReteIva,\r\n valorTotal: this.usuario.costo - (this.usuario.descuentoCupon ?? 0),\r\n mensaje: '',\r\n estado: 'SIN_PAGO',\r\n url: '',\r\n iva: this.usuario.iva,\r\n ica: this.usuario.ica,\r\n reteiva: this.usuario.reteiva ?? 0,\r\n ivaValor: valorIva,\r\n icaValor: this.usuario.costoBase * (this.usuario.ica / 100),\r\n documentos: [],\r\n pagoPSE: false,\r\n descuentoCupon: this.usuario.descuentoCupon ?? 0,\r\n realizoPago: \"N\",\r\n fechaPago: \"\",\r\n referenciaPago: '',\r\n usuarioRegistraPago: 'N',\r\n estampillas: this.usuario.estampillas,\r\n reteIvaValor: valorReteIva,\r\n esDescuentoCupon: false\r\n }\r\n if (!this.pago.ordenPedidoId) {\r\n this.pago.ordenPedidoId = JSON.parse(this.ssps.getLocalStorage(\"ordenPedidoId\")!)\r\n }\r\n if (!this.pago.solicitudId) {\r\n this.pago.solicitudId = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n }\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago))\r\n }\r\n\r\n //Mapear para mostrar si ya tiene un cupon aplicado, \r\n //campo esDescuentoCupon va en true, mostrar cupon y habilitar boton eliminar cupon\r\n\r\n if (this.pago !== null && this.pago.realizoPago === \"S\" &&\r\n this.pago.fechaPago !== \"\" && this.pago.fechaPago !== undefined) {\r\n this.alert.closesSpiner();\r\n this.alert.showFinalizado(\"pagado\")\r\n }\r\n else if (this.pago !== null && this.pago.pagoPSE === true && !this.cargarSoloPago) {\r\n this.consultarPago()\r\n }\r\n else {\r\n if (this.cargarSoloPago) {\r\n this.fisicos()\r\n }\r\n this.alert.closesSpiner();\r\n this.pago.estado = \"SIN_PAGO\"\r\n }\r\n // if (this.pago.realizoPago !== \"S\") {\r\n // this.habilitarCarguePago()\r\n // }\r\n\r\n if (this.pago.cuponAplicado !== undefined && this.pago.cuponAplicado !== null &&\r\n this.pago.cuponAplicado !== \"\") {\r\n this.codigoDescuento = true\r\n this.pago.cuponAplicadoExitosamente = true\r\n }\r\n }\r\n\r\n consultarPago() {\r\n //this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.logger.log(\"servicioConsultarPago\", \"Llamar servicio\")\r\n let datosPse = datosPasarela\r\n datosPse.ipUsuario = this.ssps.ip\r\n datosPse.urlRetorno = `${location.origin}?id=${JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)}&redirect=pago`\r\n datosPse.navegador = this.ssps.getBrowserName()\r\n //Si el estado es aprobado, mostrar alerta de transacción exitosa y ya terminar proceso\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: this.pago.cuponAplicado ?? '',\r\n datosPasarela: datosPse\r\n }\r\n this.ssps.consultarEstadoPagoPSE(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarEstadoPago\", res)\r\n if (res !== null) {\r\n this.pago.estado = res.estado\r\n this.pago.mensaje = res.mensaje\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n if (this.pago.estado === \"APROBADO\") {\r\n this.logger.log(\"Estado Pago\", \"APROBADO\")\r\n //Mostrar alerta de aprobado\r\n //Termina flujo borrando cache\r\n this.alert.showFinalizado(\"pagado\")\r\n }\r\n this.alert.closesSpiner()\r\n // else {\r\n // //Redirige a PSE y allá muestra el estado de la transacción\r\n // this.router.navigate(['/flujo/pasarela']);\r\n // }\r\n }\r\n else {\r\n this.pago.estado = \"PENDIENTE\"\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n //this.router.navigate(['/flujo/pasarela']);\r\n }\r\n },\r\n error: (error: any) => {\r\n this.logger.log(\"error suscriber consultarEstadoPago\", error)\r\n this.pago.estado = \"PENDIENTE\"\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n //this.router.navigate(['/flujo/pasarela']);\r\n }\r\n });\r\n }\r\n\r\n /*rediociona al usuario si se equivova*/\r\n redireciona() {\r\n this.router.navigate(['/flujo/facturacion']);\r\n this.componentesService.emitircambio(\"reverfactu\");\r\n }\r\n\r\n descargarPagoFisico() {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.logger.log(\"Descarga pdf fisico\", \"llamar metodo\")\r\n this.ssps.descargarOrdenPago(this.pago.solicitudId)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta descargarOrdenPago\", res)\r\n if (res !== null) {\r\n this.alert.closesSpiner()\r\n this.descargarArchivo(res.archivoBase64, res.nombre, res.tipo)\r\n this.alert.showFinalizado(\"sin_comprobante\")\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n this.logger.error('Error en servicio descargarOrdenPago', res)\r\n this.alert.showError(this.pago.mensaje, false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error: any) => {\r\n this.alert.closesSpiner()\r\n this.logger.error('Error en subscriber descargarOrdenPago', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n descargarArchivo(base64: any, nombreArchivo: any, contentType: any) {\r\n const src = `data:${contentType};base64,${base64}`;\r\n const link = document.createElement(\"a\")\r\n link.href = src\r\n link.download = nombreArchivo\r\n link.click()\r\n link.remove()\r\n }\r\n\r\n tengoCodigoDescuento(event: any) {\r\n this.codigoDescuento = true;\r\n\r\n //Si es false, debe eliminar el cupon si ya lo había aplicado\r\n }\r\n\r\n /* busca el dodigo selecionado de la persona*/\r\n buscarcodigo(codigo: string) {\r\n this.logger.log(\"aplicar codigo descuento\", codigo)\r\n //Validar el codigo ingresado\r\n //Consumir servicio de aplicar codigo\r\n //Mapear respuesta, recalculando valores de pago y usuario con lo que llega del servicio y mostrar alerta con el mensaje\r\n //Mostrar moensaje de respuesta\r\n if (codigo === undefined || codigo === null || codigo === \"\" || codigo.length < 9) {\r\n this.validacionCupon = true\r\n return\r\n }\r\n this.validacionCupon = false\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: codigo\r\n }\r\n this.ssps.aplicarCodigoDescuento(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta aplicarCodigoDescuento\", res)\r\n this.pago.estado = \"SIN_PAGO\"\r\n let tituloModal = null\r\n if (res !== null && +res.codigo === 200) {\r\n tituloModal = \"¡Exitoso!\"\r\n this.pago.cuponAplicado = codigo + \" \"\r\n this.pago.esDescuentoCupon = true\r\n this.pago.cuponAplicadoExitosamente = true\r\n\r\n setTimeout(() => {\r\n this.pago.cuponAplicado = codigo\r\n }, 1000);\r\n }\r\n else {\r\n this.pago.cuponAplicado = \"\"\r\n }\r\n this.recalcularValores(res.valoresOrdenDescuento)\r\n this.alert.closesSpiner()\r\n this.alert.showError(res.mensaje, false, tituloModal, false, null, null, false);\r\n this.changeDetector.detectChanges();\r\n },\r\n error: (error: any) => {\r\n this.pago.cuponAplicado = \"\"\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber aplicarCodigoDescuento', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n\r\n }\r\n\r\n eliminarCodigo() {\r\n this.logger.log(\"eliminarCodigo codigo descuento\", \"\")\r\n this.validacionCupon = false\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.ssps.eliminarCodigoDescuento(this.pago.ordenPedidoId, this.pago.cuponAplicado)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta eliminarCodigoDescuento\", res)\r\n this.pago.estado = \"SIN_PAGO\"\r\n let tituloModal = null\r\n if (res !== null && +res.codigo === 200) {\r\n tituloModal = \"¡Exitoso!\"\r\n this.pago.cuponAplicado = \"\"\r\n this.pago.esDescuentoCupon = false\r\n this.pago.cuponAplicadoExitosamente = false\r\n }\r\n this.recalcularValores(res.valoresOrdenDescuento)\r\n this.alert.closesSpiner()\r\n this.alert.showError(res.mensaje, false, tituloModal, false, null, null, false)\r\n this.changeDetector.detectChanges();\r\n },\r\n error: (error: any) => {\r\n this.pago.cuponAplicado = \"\"\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber eliminarCodigoDescuento', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n pagoVirtual() {\r\n if (this.pago.cuponAplicado !== undefined && this.pago.cuponAplicado !== null &&\r\n this.pago.cuponAplicado !== \"\") {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: this.pago.cuponAplicado\r\n }\r\n this.ssps.validarCodigoDescuento(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta pagoVirtual\", res)\r\n if (res !== null && +res.codigo === 200) {\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago))\r\n this.alert.closesSpiner()\r\n this.router.navigate(['/flujo/pasarela']);\r\n }\r\n else {\r\n this.pago.cuponAplicado = \"\"\r\n this.pago.esDescuentoCupon = false\r\n this.pago.cuponAplicadoExitosamente = false\r\n this.recalcularValores(res.valoresOrdenDescuento)\r\n this.alert.closesSpiner()\r\n this.alert.showError(res.mensaje, false, null, false, null, null, false);\r\n this.changeDetector.detectChanges();\r\n }\r\n },\r\n error: (error: any) => {\r\n this.pago.cuponAplicado = \"\"\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber validarCodigoDescuento', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n else {\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago))\r\n this.router.navigate(['/flujo/pasarela']);\r\n }\r\n }\r\n\r\n fisicos() {\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago)) \r\n this.descarga = true;\r\n if (!this.carga) {\r\n this.documentoCargado = this.ExisteDocumentoCargado(\"pago\")\r\n this.habilitarCarguePago()\r\n }\r\n }\r\n\r\n habilitarCarguePago() {\r\n this.carga = true;\r\n this.CreateDocument('Comprobante pago', 'pago')\r\n }\r\n\r\n get documentsDocuments() {\r\n return this.formaForm.get('documentos') as FormArray;\r\n }\r\n\r\n CreateDocument(documentName: string, id: String) {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo',\r\n subtitle: 'El formato de documento permitido para cargar es .PDF',\r\n name: documentName,\r\n id: id,\r\n accept: \".pdf\"\r\n }\r\n this.buttons.push(estilos)\r\n this.addControlDocument();\r\n }\r\n\r\n addControlDocument() {\r\n this.documentsDocuments.push(this.fb.control(null));\r\n }\r\n\r\n ExisteDocumento(id: String) {\r\n return this.pago.documentos.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n getFileDetails(file: any, index: number) {\r\n let fileToUpload = file[0];\r\n const botonActualizado = { ...this.buttons[index] };\r\n let tamañoEnBytes = fileToUpload.size;\r\n let tamañoEnMegabytes = tamañoEnBytes / (1024 * 1024);\r\n\r\n if (fileToUpload.type == \"application/pdf\") {\r\n if (tamañoEnMegabytes > 10) {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'Formato de archivo no válido';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n }\r\n if (tamañoEnMegabytes < 10) {\r\n const reader = new FileReader()\r\n reader.onload = () => {\r\n const b64 = reader.result as string\r\n botonActualizado.file = b64\r\n }\r\n\r\n if (fileToUpload) {\r\n reader.readAsDataURL(fileToUpload)\r\n }\r\n\r\n botonActualizado.fondo = '#09CB34';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Documento cargado con éxito';\r\n botonActualizado.subtitle = fileToUpload.name;\r\n\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = false;\r\n }\r\n }\r\n else {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n\r\n }\r\n }\r\n\r\n isValidFieldInArray(formArray: FormArray, index: number) {\r\n return formArray.controls[index].errors\r\n && formArray.controls[index].touched;\r\n }\r\n validar() {\r\n return (this.cambiologo = true) ? ' animate__animated animate__fadeIn animate__fast' : 'animate__animated animate__fadeOut animate__fast';\r\n }\r\n\r\n cargarPago() {\r\n if (this.validateformats.length === 0 || this.validateformats.filter(f => f === false).length === 0) {\r\n this.formaForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n let documento = this.buttons.filter((f: { file: any; }) => f.file)[0]\r\n this.logger.log(\"documento pago\", documento)\r\n let body = {\r\n tipo: documento.id,\r\n contenido: documento.file.split(\",\", 2)[1]\r\n }\r\n\r\n this.logger.log(\"documento pago\", body)\r\n\r\n\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.logger.log(\"Descarga pdf fisico\", \"llamar metodo\")\r\n this.ssps.cargarComprobantePago(this.pago.solicitudId, body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta cargarComprobantePago\", res)\r\n if (res !== null) {\r\n this.alert.closesSpiner()\r\n //Llamar al servicio\r\n this.alert.showFinalizado(\"comprobante\")\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en servicio cargarComprobantePago', res)\r\n this.alert.showError(res.mensaje, false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error: any) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber cargarComprobantePago', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n recalcularValores(valoresOrdenDescuento: any) {\r\n this.pago.costoBase = valoresOrdenDescuento.valorBaseLiquidacion\r\n this.pago.icaValor = valoresOrdenDescuento.valorIca\r\n this.pago.ivaValor = valoresOrdenDescuento.valorIva\r\n this.pago.reteIvaValor = valoresOrdenDescuento.valorReteIva\r\n this.usuario.costoBase = valoresOrdenDescuento.valorBaseLiquidacion\r\n this.pago.descuentoCupon = valoresOrdenDescuento.valorDescuentoCupon\r\n this.usuario.costo = valoresOrdenDescuento.valorNeto\r\n this.usuario.descuentoCupon = valoresOrdenDescuento.valorDescuentoCupon\r\n this.pago.valorTotal = valoresOrdenDescuento.valorNeto\r\n this.pago.estampillas = valoresOrdenDescuento.estampillas\r\n this.usuario.estampillas = valoresOrdenDescuento.estampillas\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n }\r\n\r\n ExisteDocumentoCargado(id: String) {\r\n return this.usuario.documentosCargados && this.usuario.documentosCargados.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n habilitarDocumentoPagoCargue() {\r\n this.carga = true\r\n this.documentoCargado = false\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
Selecciona un medio de pago
\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 Cupón de descuento no válido\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{pago.valorTotal |\r\n currency:'COP': 'symbol' : '1.0-0'}}
\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
{{pago.valorTotal |\r\n currency:'COP': 'symbol' : '1.0-0'}}
\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 Cargar soporte de pago\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n

{{buttons[i].title}}\r\n
\r\n {{buttons[i].subtitle}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{error}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { LogService } from '../../../../domain/servicios/log.service'\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { datosPasarela } from 'src/assets/config/app.conf';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-pse',\r\n templateUrl: './pse.component.html',\r\n styleUrls: ['./pse.component.css']\r\n})\r\nexport class PSEComponent implements OnInit {\r\n formaForm!: FormGroup;\r\n noradicado: string = '';\r\n mostrarModal: boolean = false;\r\n pago: any;\r\n mensajeEstado = ''\r\n usuario: any\r\n facturacion: any\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService, private logger: LogService,\r\n private alert: AlertsService,\r\n private el: ElementRef\r\n ) {\r\n\r\n this.formaForm = this.fb.group({\r\n\r\n referencia: ['', [\r\n Validators.max(9999999)]],\r\n valorTotal: [],\r\n valorNeto: [],\r\n impuestos: [],\r\n basedevolucion: [],\r\n nombreComprador: [],\r\n correoComprador: [],\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n //Colocar validacion de que si ya tiene estadoCompra en cache, vaya y valide la etapa(Iniciado)\r\n //* Debo ir a validar el estado con los servicios de P2P(Consumir lambda), si la respuesta no es aprobado, mostrar boton de reintento\r\n //* Si la etapa no es ABIERTO y estado != aprobado, Mostrar boton de reintentar pago, ya teniendo la url(Solo se actualiza el objeto a etapa iniciado)\r\n //Luego de validar el estado aprobado, se debe retornar a la pagina de pago donde se valide el estado de compra y habilite\r\n //boton de continuar a aprobación solicitud\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.facturacion = JSON.parse(this.ssps.getLocalStorage('facturacion')!);\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!);\r\n this.ssps.obtenerIpValor()\r\n }\r\n\r\n\r\n /* funcion para los errores indicados*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n\r\n /*funcion para el envio de datos*/\r\n ngsubmit() {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n //Ir y consumir servicio para armar url, enviando ordenId(Referencia), url de retorno, login p2p. valor total, impuestos, base devolucion\r\n //Guardar los datos de respuesta para futura consulta de estado\r\n //Consumir lambda de guarda PagosenlineaPSE\r\n //Redireccionar a url\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n this.alert.closesSpiner()\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (this.pago.cuponAplicado !== undefined && this.pago.cuponAplicado !== null &&\r\n this.pago.cuponAplicado !== \"\") {\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: this.pago.cuponAplicado\r\n }\r\n this.ssps.validarCodigoDescuento(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta PSE pagoVirtual\", res)\r\n if (res !== null && +res.codigo === 200) {\r\n this.crearUrlPago()\r\n }\r\n else {\r\n this.pago.cuponAplicado = \"\"\r\n this.pago.esDescuentoCupon = false\r\n this.pago.cuponAplicadoExitosamente = false\r\n this.recalcularValores(res.valoresOrdenDescuento)\r\n this.alert.closesSpiner()\r\n this.alert.showError(res.mensaje, false, null, false, null, null, false);\r\n }\r\n },\r\n error: (error: any) => {\r\n this.pago.cuponAplicado = \"\"\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber PSE validarCodigoDescuento', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n else {\r\n this.crearUrlPago()\r\n }\r\n }\r\n\r\n crearUrlPago() {\r\n let datosPse = datosPasarela\r\n datosPse.ipUsuario = this.ssps.ip\r\n datosPse.navegador = this.ssps.getBrowserName()\r\n datosPse.urlRetorno = `${location.origin}?id=${JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)}&redirect=pago`\r\n let body = {\r\n datosCompra: {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n valorCompra: this.pago.valorTotal,\r\n impuestos: this.pago.impuestos ?? 0,\r\n valorBase: this.pago.costoBase,\r\n compradorNombre: this.facturacion.nombres,\r\n compradorApellido: this.facturacion.apellidos === \"\" ? this.facturacion.nombres : this.facturacion.apellidos,\r\n compradorEmail: this.facturacion.correo\r\n },\r\n datosPasarela: datosPse\r\n }\r\n this.ssps.consultarUrlPSE(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarUrlPSE\", res)\r\n if (res !== null) {\r\n this.pago.url = res.urlRedireccion\r\n this.pago.estado = res.estado\r\n this.pago.mensaje = res.mensaje\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n //Redirigir a la url\r\n //localStorage.clear()\r\n window.location.replace(res.urlRedireccion);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n //Mostrar alerta error\r\n console.error('Error en servicio consultarUrlPSE', res)\r\n this.alert.showError(\"No fue posible realizar la petición\", false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error: any) => {\r\n //Mostrar alerta error\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarUrlPSE', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n });\r\n }\r\n\r\n consultarPago() {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n this.logger.log(\"servicioConsultarPago PSE\", \"Llamar servicio\")\r\n let datosPse = datosPasarela\r\n datosPse.ipUsuario = this.ssps.ip\r\n datosPse.urlRetorno = `${location.origin}?id=${JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)}&redirect=pago`\r\n datosPse.navegador = this.ssps.getBrowserName()\r\n //Si el estado es aprobado, mostrar alerta de transacción exitosa y ya terminar proceso\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: this.pago.cuponAplicado ?? '',\r\n datosPasarela: datosPse\r\n }\r\n this.ssps.consultarEstadoPagoPSE(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarEstadoPagoPSE\", res)\r\n if (res !== null) {\r\n this.alert.closesSpiner()\r\n this.pago.estado = res.estado\r\n this.pago.mensaje = res.mensaje\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n if (this.pago.estado === \"APROBADO\") {\r\n this.logger.log(\"Estado Pago\", \"PROBADO\")\r\n //Mostrar alerta de aprobado\r\n //Termina flujo borrando cache\r\n this.alert.showFinalizado(\"pagado\")\r\n }\r\n else {\r\n //Redirige a PSE y allá muestra el estado de la transacción\r\n console.error('Error en servicio consultarEstadoPagoPSE', res)\r\n this.alert.showError(this.pago.mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n //Mostrar alerta error\r\n console.error('Error en servicio consultarEstadoPagoPSE', res)\r\n this.alert.showError(\"No fue posible realizar la petición\", false, null, false, null, null, false)\r\n this.pago.estado = \"PENDIENTE\"\r\n }\r\n },\r\n error: (error: any) => {\r\n //Mostrar alerta error\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarEstadoPagoPSE', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n \r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n this.pago.estado = \"PENDIENTE\"\r\n }\r\n });\r\n }\r\n\r\n /*rediociona al usuario si se equivova*/\r\n redireciona() {\r\n this.router.navigate(['/flujo/pago']);\r\n }\r\n\r\n cerrar() {\r\n this.mostrarModal = false;\r\n //Ver si hay que redirigir\r\n }\r\n\r\n recalcularValores(valoresOrdenDescuento: any) {\r\n this.pago.costoBase = valoresOrdenDescuento.valorBaseLiquidacion\r\n this.pago.icaValor = valoresOrdenDescuento.valorIca\r\n this.pago.ivaValor = valoresOrdenDescuento.valorIva\r\n this.pago.reteIvaValor = valoresOrdenDescuento.valorReteIva\r\n this.usuario.costoBase = valoresOrdenDescuento.valorBaseLiquidacion\r\n this.pago.descuentoCupon = valoresOrdenDescuento.valorDescuentoCupon\r\n this.usuario.costo = valoresOrdenDescuento.valorNeto\r\n this.usuario.descuentoCupon = valoresOrdenDescuento.valorDescuentoCupon\r\n this.pago.valorTotal = valoresOrdenDescuento.valorNeto\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n }\r\n\r\n}\r\n\r\n\r\n","
\r\n\r\n
Información del pago a realizar
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\" style=\"height:15pt;\">\r\n \r\n \r\n \r\n \r\n 0\" style=\"height:15pt;\">\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 0\" style=\"height:15pt;\">\r\n \r\n \r\n \r\n \r\n 0\" style=\"height:15pt;\">\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

SUBTOTAL:\r\n

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

\r\n {{pago.costoBase | currency:'COP'}}

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

DESCUENTO COMERCIAL:\r\n

\r\n
\r\n

\r\n  

\r\n
\r\n

{{(pago.descuentoCupon * -1)| currency:'COP'}}

\r\n
\r\n

SUBTOTAL CON DESCUENTO COMERCIAL:\r\n

\r\n
\r\n

\r\n  

\r\n
\r\n

{{pago.costoBase - pago.descuentoCupon | currency:'COP'}}

\r\n
\r\n

IVA:

\r\n
\r\n

\r\n {{pago.iva}}%

\r\n
\r\n

{{pago.ivaValor | currency:'COP'}}

\r\n
\r\n

RETEIVA:\r\n

\r\n
\r\n

\r\n {{pago.reteiva}}%

\r\n
\r\n

{{(pago.reteIvaValor * -1) | currency:'COP'}}

\r\n
\r\n

RETEICA:\r\n

\r\n
\r\n

\r\n {{pago.ica}}%

\r\n
\r\n

{{(pago.icaValor * -1)| currency:'COP'}}

\r\n
\r\n

DESCUENTOS POR ESTAMPILLAS:\r\n

\r\n
\r\n

\r\n
\r\n

\r\n
\r\n

\r\n

  • {{estampilla.descripcion}}
  • \r\n

    \r\n
    \r\n

    \r\n {{estampilla.porcentaje}}%

    \r\n
    \r\n

    {{(estampilla.valor * -1) | currency:'COP'}}

    \r\n
    \r\n

    NETO A\r\n PAGAR:

    \r\n
    \r\n

    \r\n
    \r\n

    {{pago.valorTotal | currency:'COP'}}

    \r\n
    \r\n
    \r\n
    \r\n Anterior\r\n \r\n \r\n Consultar pago\r\n electrónico\r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n

    No de radicado {{noradicado}}

    \r\n

    mensajeEstado

    \r\n \r\n
    \r\n\r\n
    \r\n
    ","import { Component, OnInit, ChangeDetectorRef, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, FormArray, FormControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '../../../../domain/servicios/log.service'\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-solicitantes',\r\n templateUrl: './solicitantes.component.html',\r\n styleUrls: ['./solicitantes.component.css']\r\n})\r\nexport class SolicitantesComponent implements OnInit {\r\n\r\n @ViewChild('inputRefPrimerNombre')\r\n inputRefPrimerNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoNombre')\r\n inputRefSegundoNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefPrimerApellido')\r\n inputRefPrimerApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoApellido')\r\n inputRefSegundoApellido!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo')\r\n inputRefCorreo!: { nativeElement: any; };\r\n @ViewChild('inputRefCorreo1')\r\n inputRefCorreo1!: { nativeElement: any; };\r\n @ViewChild('inputRefInstitucion')\r\n inputRefInstitucion!: { nativeElement: any; };\r\n @ViewChild('inputRefCargo')\r\n inputRefCargo!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesional')\r\n inputRefProfesional!: { nativeElement: any; };\r\n @ViewChild('inputRefProfesion')\r\n inputRefProfesion!: { nativeElement: any; };\r\n @ViewChild('inputRefActaPosesion')\r\n inputRefActaPosesion!: { nativeElement: any; };\r\n\r\n @Output() solicitantes: EventEmitter = new EventEmitter();\r\n formaForm!: FormGroup;\r\n cambiologo2: boolean = false;\r\n cambiologo: boolean = true;\r\n profesional: boolean = false;\r\n funcionPublica: boolean = false;\r\n documentob: boolean = false;\r\n cantidad: number = 0;\r\n totalCantidad: number = 0;\r\n usuario: any = {\r\n documentos: [],\r\n ip: ''\r\n };\r\n solicitante: any = {\r\n documentos: [],\r\n ip: ''\r\n };\r\n pago: any = null;\r\n archivos: boolean = false;\r\n tipos: boolean = false;\r\n mayor: boolean = false;\r\n files: boolean = false;\r\n fechaExpTarjeta!: any;\r\n statusFechaExpTarjeta: boolean = false;\r\n fechaNombramiento!: any;\r\n statusFechaNombramiento: boolean = false;\r\n fechaExpDocumento!: any;\r\n statusFechaExpDocumento: boolean = false;\r\n showDocumentsB: boolean = false;\r\n buttons: any = [] = [];\r\n validateformats: any[] = [];\r\n error: string = 'Formato no válido';\r\n queryRuta: any = null\r\n comastel: boolean = false;\r\n comastel2: boolean = false;\r\n comastex: boolean = false;\r\n comas: boolean = false;\r\n indicativos: any[] = [];\r\n comasnit: boolean = false;\r\n depar: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n\r\n actualizacion = false\r\n\r\n maxDate: NgbDateStruct\r\n minDate: NgbDateStruct\r\n\r\n otraProfesion = false\r\n profesiones: any[] = []\r\n profesionLista = \"\"\r\n\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n public datepipe: DatePipe, private route: ActivatedRoute,\r\n private logger: LogService,\r\n private alert: AlertsService,\r\n private el: ElementRef) {\r\n\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n\r\n primerNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n segundoNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n primerApellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n segundoApellido: ['', [\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n correo: ['', [Validators.required,\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n correo1: ['', [Validators.required,\r\n Validators.minLength(8),\r\n Validators.maxLength(60),\r\n Validators.pattern('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,4}$')]],\r\n documentos: this.fb.array([]),\r\n fechaExpTarjeta: [null, []],\r\n fechaNombramiento: [null, [Validators.required]],\r\n fechaExpDocumento: [null],\r\n tipo: [null],\r\n numero: [null],\r\n institucion: ['', [\r\n Validators.required,\r\n Validators.maxLength(60),\r\n ]],\r\n profesion: ['', [\r\n Validators.required,\r\n Validators.maxLength(60),\r\n ]],\r\n profesionLista: ['',\r\n Validators.required\r\n ],\r\n profesional: ['', [\r\n Validators.maxLength(20),\r\n ]],\r\n indicativo: [],\r\n telefono: ['', [\r\n Validators.maxLength(7),\r\n Validators.minLength(7)\r\n ]],\r\n extension: [0, [\r\n Validators.maxLength(5)\r\n ]],\r\n celular: ['', [\r\n Validators.required,\r\n Validators.minLength(10),\r\n Validators.maxLength(10)\r\n ]],\r\n departamento: ['', [Validators.required]],\r\n municipio: ['', [Validators.required]],\r\n cargoEmpresa: ['', [\r\n Validators.required,\r\n Validators.maxLength(60),\r\n ]],\r\n actaPosesion: ['', [\r\n Validators.required,\r\n Validators.maxLength(50),\r\n ]]\r\n }, {\r\n //validators: this.componentesService.soniguales('correo', 'correo1')\r\n }\r\n );\r\n var actualFecha = new Date();\r\n this.maxDate = { year: actualFecha.getFullYear(), month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n this.minDate = { year: actualFecha.getFullYear() - 100, month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.setOnChangesInputs()\r\n this.totalCantidad = 2;\r\n this.cargarProfesiones()\r\n this.ssps.obtenerIpValor()\r\n this.indicativo();\r\n this.departamentos();\r\n this.actualizacion = this.ssps.getLocalStorage(\"actualizacion\") ?\r\n JSON.parse(this.ssps.getLocalStorage(\"actualizacion\")!) : false\r\n this.mapearDatos()\r\n this.componentesService.emitircambio(\"mostrarBarra\");\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"primerNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerNombre) {\r\n const elRef = this.inputRefPrimerNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"segundoNombre\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoNombre) {\r\n const elRef = this.inputRefSegundoNombre?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"primerApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefPrimerApellido) {\r\n const elRef = this.inputRefPrimerApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"primerApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n\r\n this.formaForm.get(\"segundoApellido\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefSegundoApellido) {\r\n const elRef = this.inputRefSegundoApellido?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"segundoApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"correo\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo) {\r\n const elRef = this.inputRefCorreo.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n this.formaForm.get(\"correo1\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCorreo1) {\r\n const elRef = this.inputRefCorreo1.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"correo1\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"institucion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefInstitucion) {\r\n const elRef = this.inputRefInstitucion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"institucion\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"cargoEmpresa\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefCargo) {\r\n const elRef = this.inputRefCargo.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"cargoEmpresa\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"profesional\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefProfesional) {\r\n const elRef = this.inputRefProfesional.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"profesional\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"profesion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefProfesion) {\r\n const elRef = this.inputRefProfesion.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"profesion\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"actaPosesion\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefActaPosesion) {\r\n const elRef = this.inputRefActaPosesion?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal?.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"actaPosesion\")!.setValue(val?.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get('tipo')?.disable();\r\n this.formaForm.get('numero')?.disable();\r\n }\r\n\r\n //TODO:borrar validators\r\n clearValidators() {\r\n const controlesAEliminar = ['fechaExpTarjeta', 'institucion', 'profesional', 'profesion', 'profesionLista'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n regresarResumen() {\r\n //this.alert.showSssps();\r\n this.ssps.saveLocalStorage(\"regresaFormulario\", \"true\")\r\n this.router.navigate(['/']);\r\n }\r\n\r\n //TODO:creacion de forms arrays\r\n get documentsDocuments() {\r\n return this.formaForm.get('documentos') as FormArray;\r\n }\r\n\r\n //TODO:crear botones\r\n crearButtons() {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo', subtitle: 'El formato de documento permitido para cargar es .PDF', accept: \".pdf\"\r\n }\r\n if (this.documentsDocuments.controls.length > 0) {\r\n for (let i = 0; i < this.documentsDocuments.controls.length; i++) {\r\n this.buttons[i] = estilos;\r\n this.validateformats[i] = false;\r\n }\r\n }\r\n }\r\n\r\n //TODO agrega controls con valor requerido\r\n addControlDocument() {\r\n this.documentsDocuments.push(this.fb.control(null));\r\n }\r\n\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario enviuo de los mismos localstorage*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n this.logger.log(\"error\", key)\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, correo1, correo, profesional, institucion, fechaExpTarjeta,\r\n profesion, fechaExpDocumento, celular, telefono, extension, indicativo,\r\n departamento, municipio, cargoEmpresa, fechaNombramiento, actaPosesion, profesionLista } = this.formaForm.getRawValue();\r\n\r\n let datos = {\r\n primerNombre,\r\n segundoNombre,\r\n primerApellido,\r\n segundoApellido,\r\n correo: correo,\r\n correo1: correo1,\r\n documentos: this.buttons.filter((f: { file: any; }) => f.file),\r\n tarjetaProfesional: profesional,\r\n institucionGrado: institucion,\r\n fechaExpTarjetaProfesional: fechaExpTarjeta,\r\n fechaNombramiento,\r\n fechaExpDocumento,\r\n profesion: this.otraProfesion ? profesion : profesionLista,\r\n ip: this.ssps.ip,\r\n telefono,\r\n extension,\r\n indicativo,\r\n celular,\r\n departamento,\r\n municipio,\r\n cargoEmpresa,\r\n representanteLegal: this.solicitante.representanteLegal,\r\n actaPosesion\r\n }\r\n\r\n Object.assign(this.solicitante, datos);\r\n this.ssps.saveLocalStorage(\"solicitante\", JSON.stringify(this.solicitante));\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.componentesService.emitircambio(\"actualizarOrden\");\r\n }\r\n if (this.usuario.dispo.toUpperCase() !== \"PKCS#10\") {\r\n this.componentesService.emitircambio(\"contacto\");\r\n this.router.navigate(['/flujo/entrega']);\r\n }\r\n else {\r\n this.componentesService.emitircambio(\"infoperso\");\r\n this.router.navigate(['/flujo/contacto']);\r\n }\r\n }\r\n\r\n //TODO:validaciones de fechas\r\n fechas(dato: any, campo: any) {\r\n if (dato === undefined || dato === null) return;\r\n let valida = /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/-](?:0?[1-9]|1[0-2])|(?:29|30)[/-](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/-](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/-]0?2[/-](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n let errores: boolean = false;\r\n\r\n if (campo === \"fechaExpTarjeta\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpTarjeta = true;\r\n } else {\r\n this.statusFechaExpTarjeta = false;\r\n\r\n }\r\n }\r\n if (campo === \"fechaNombramiento\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaNombramiento = true;\r\n } else {\r\n this.statusFechaNombramiento = false;\r\n\r\n }\r\n }\r\n if (campo === \"fechaExpDocumento\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpDocumento = true;\r\n } else {\r\n this.statusFechaExpDocumento = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n /* estado de botones logos cambiantes*/\r\n estado(valor: string) {\r\n if (this.cantidad == 0) {\r\n // this.cambiologo2 = true;\r\n // this.cambiologo = false;\r\n this.cantidad = this.cantidad + 1;\r\n }\r\n\r\n }\r\n\r\n //cambio de estilos animacion boton archivos\r\n validar() {\r\n\r\n return (this.cambiologo = true) ? ' animate__animated animate__fadeIn animate__fast' : 'animate__animated animate__fadeOut animate__fast';\r\n }\r\n\r\n //TODO:implementacion de creacion de buttos\r\n CreateDocument(documentName: string, id: String) {\r\n let indice = this.buttons.findIndex((f: { id: String; }) => f.id === id);\r\n this.logger.log(\"indicie\", indice)\r\n if (indice > -1) {\r\n this.buttons = this.buttons.filter((f: { id: String; }) => f.id !== id)\r\n this.documentsDocuments.removeAt(indice)\r\n }\r\n else {\r\n const estilos = {\r\n fondo: '#e86a05', colores: '#fff', title: 'Seleccionar archivo',\r\n subtitle: 'El formato de documento permitido para cargar es .PDF',\r\n name: documentName,\r\n id: id,\r\n accept: \".pdf\"\r\n }\r\n this.buttons.push(estilos)\r\n this.addControlDocument();\r\n }\r\n }\r\n\r\n ExisteDocumento(id: String) {\r\n return this.solicitante.documentos.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n ExisteDocumentoCargado(id: String) {\r\n return this.solicitante.documentosCargados && this.solicitante.documentosCargados.filter((f: { id: String; }) => f.id === id).length > 0\r\n }\r\n\r\n //TODO:vision de documents\r\n documentDocs(event: any) {\r\n this.showDocumentsB = true;\r\n }\r\n\r\n\r\n /*validacion de salerta campos iguales*/\r\n get correo2NoValido() {\r\n const pass1 = this.formaForm.get('correo')!.value;\r\n const pass2 = this.formaForm.get('correo1')!.value;\r\n\r\n return (pass1 === pass2) ? false : true;\r\n }\r\n\r\n\r\n\r\n /*validar tamaño de archivo*/\r\n getFileDetails(file: any, index: number) {\r\n\r\n let fileToUpload = file[0];\r\n\r\n const botonActualizado = { ...this.buttons[index] };\r\n\r\n let tamañoEnBytes = fileToUpload.size;\r\n let tamañoEnMegabytes = tamañoEnBytes / (1024 * 1024);\r\n\r\n if (fileToUpload.type == \"application/pdf\") {\r\n if (tamañoEnMegabytes > 10) {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n }\r\n if (tamañoEnMegabytes < 10) {\r\n const reader = new FileReader()\r\n reader.onload = () => {\r\n const b64 = reader.result as string\r\n botonActualizado.file = b64\r\n }\r\n\r\n if (fileToUpload) {\r\n reader.readAsDataURL(fileToUpload)\r\n }\r\n\r\n botonActualizado.fondo = '#09CB34';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Documento cargado con exito';\r\n botonActualizado.subtitle = fileToUpload.name;\r\n\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = false;\r\n this.cantidad += 1;\r\n }\r\n }\r\n else {\r\n botonActualizado.fondo = '#ff4d4d';\r\n botonActualizado.colores = '#fff';\r\n botonActualizado.title = 'Seleccionar archivo';\r\n botonActualizado.subtitle = 'El formato de documento permitido para cargar es .PDF';\r\n this.buttons[index] = botonActualizado;\r\n this.validateformats[index] = true;\r\n\r\n }\r\n\r\n }\r\n\r\n //TODO:implementacion de datos\r\n isValidFieldInArray(formArray: FormArray, index: number) {\r\n return formArray.controls[index].errors\r\n && formArray.controls[index].touched;\r\n }\r\n\r\n mapearDatos() {\r\n /*asignacion de valores desde el cervicio crm*/\r\n this.solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n // if (!this.actualizacion) {\r\n // let datosNuevos: any = {\r\n // celular: this.usuario.celular,\r\n // correo: this.usuario.correo,\r\n // correo1: this.usuario.correo1,\r\n // departamento: this.usuario.departamento,\r\n // municipio: this.usuario.municipio,\r\n // telefono: this.usuario.telefono,\r\n // extension: this.usuario.extension,\r\n // indicativo: this.usuario.indicativo,\r\n // }\r\n // Object.assign(this.solicitante, datosNuevos);\r\n // }\r\n if (this.ssps.getLocalStorage('pago')) {\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!)\r\n }\r\n this.formaForm.get(\"departamento\")!.setValue(this.solicitante.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.logger.log(\"solicitante page\", this.solicitante)\r\n //Mapear documentos del localStorage\r\n if (this.solicitante.documentos) {\r\n this.buttons = this.solicitante.documentos\r\n this.cantidad = this.solicitante.documentos.length\r\n this.solicitante.documentos.forEach((element: any, index: any) => {\r\n this.validateformats[index] = false;\r\n this.addControlDocument();\r\n });\r\n }\r\n else {\r\n this.solicitante.documentos = []\r\n }\r\n if (this.usuario.politica == \"Profesional Titulado\") {\r\n this.totalCantidad = 2;\r\n this.profesional = true;\r\n this.logger.log(\"fecha ExpTarjeta\", this.solicitante.fechaExpTarjetaProfesional)\r\n if (this.solicitante.fechaExpTarjetaProfesional && this.solicitante.fechaExpTarjetaProfesional !== '' &&\r\n !this.solicitante.fechaExpTarjetaProfesional.includes(\"/\")) {\r\n this.fechaExpTarjeta = this.datepipe.transform(new Date(this.solicitante.fechaExpTarjetaProfesional), \"dd/MM/yyyy\")!\r\n }\r\n else if (this.solicitante.fechaExpTarjetaProfesional && this.solicitante.fechaExpTarjetaProfesional.includes(\"/\")) {\r\n this.fechaExpTarjeta = this.solicitante.fechaExpTarjetaProfesional\r\n }\r\n\r\n const control = this.formaForm.get(\"cargoEmpresa\");\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n if (this.usuario.politica == \"Función Publica\") {\r\n this.totalCantidad = 2;\r\n this.funcionPublica = true;\r\n this.logger.log(\"fecha posesion\", this.solicitante.fechaNombramiento)\r\n if (this.solicitante.fechaNombramiento && this.solicitante.fechaNombramiento !== '' &&\r\n !this.solicitante.fechaNombramiento.includes(\"/\")) {\r\n this.fechaNombramiento = this.datepipe.transform(new Date(this.solicitante.fechaNombramiento), \"dd/MM/yyyy\")!\r\n }\r\n else if (this.solicitante.fechaNombramiento && this.solicitante.fechaNombramiento.includes(\"/\")) {\r\n this.fechaNombramiento = this.solicitante.fechaNombramiento\r\n }\r\n }\r\n if (this.solicitante.fechaExpDocumento && this.solicitante.fechaExpDocumento !== '' &&\r\n !this.solicitante.fechaExpDocumento.includes(\"/\")) {\r\n this.fechaExpDocumento = this.datepipe.transform(new Date(this.solicitante.fechaExpDocumento), \"dd/MM/yyyy\")!\r\n }\r\n else if (this.solicitante.fechaExpDocumento && this.solicitante.fechaExpDocumento.includes(\"/\")) {\r\n this.fechaExpDocumento = this.solicitante.fechaExpDocumento\r\n }\r\n if (this.usuario.politica != \"Profesional Titulado\") {\r\n this.clearValidators();\r\n }\r\n if (this.usuario.politica != \"Función Publica\") {\r\n const control = this.formaForm.get(\"fechaNombramiento\");\r\n if (control) {\r\n control.clearValidators();\r\n control.updateValueAndValidity();\r\n }\r\n\r\n const controlPosesion = this.formaForm.get(\"actaPosesion\");\r\n if (controlPosesion) {\r\n controlPosesion.clearValidators();\r\n controlPosesion.updateValueAndValidity();\r\n }\r\n }\r\n this.OnChanges();\r\n this.profesionLista = this.solicitante.profesion\r\n setTimeout(() => {\r\n var existeProfesion = this.profesiones.filter(s => s === this.solicitante.profesion)\r\n this.deshabilitarCmaposFinalizados()\r\n if (existeProfesion.length === 0 && this.usuario.politica === \"Profesional Titulado\") {\r\n this.otraProfesion = true\r\n const profesionForm = this.formaForm.get(\"profesion\");\r\n if (profesionForm) {\r\n this.profesionLista = \"OTRA\"\r\n profesionForm.patchValue(\"OTRA\")\r\n profesionForm.updateValueAndValidity();\r\n }\r\n this.addValidatorsProfesion()\r\n }\r\n else {\r\n this.clearValidatorsProfesion()\r\n }\r\n }, 2000);\r\n }\r\n\r\n deshabilitarCmaposFinalizados() {\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (key !== \"correo\" && key !== \"correo1\" && (this.usuario.solicitudFinalizada === \"APROBADO\" || this.usuario.solicitudFinalizada === \"FINALIZADO\")) {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n else if (this.usuario.solicitudFinalizada === \"ASIGNADO\") {\r\n this.formaForm.controls[key]?.disable({ onlySelf: true })\r\n }\r\n });\r\n }\r\n\r\n noPuntotel(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel = res;\r\n })\r\n }\r\n\r\n\r\n noPuntote(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastel2 = res;\r\n })\r\n }\r\n\r\n noPuntoex(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comastex = res;\r\n })\r\n }\r\n\r\n quitarceros2(numero: string) {\r\n\r\n this.solicitante.telefono = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros3(numero: string) {\r\n\r\n this.solicitante.extension = numero.replace(/^0+/, '');\r\n\r\n }\r\n\r\n quitarceros4(numero: string) {\r\n this.solicitante.celular = numero.replace(/^0+/, '');\r\n }\r\n\r\n noPuntoComacod(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comas = res;\r\n })\r\n }\r\n /*carga datos select*/\r\n indicativo() {\r\n this.ssps.indicativos()\r\n .subscribe((res: any) => {\r\n this.indicativos = res;\r\n });\r\n\r\n }\r\n\r\n noPuntoComa(event: any) {\r\n this.componentesService.commas(event)\r\n .subscribe((res: any) => {\r\n this.comasnit = res;\r\n })\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n let departamento = this.solicitante.departamento\r\n this.formaForm.get(\"departamento\")!.setValue(this.solicitante.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a: any, b: any) => (a.Municipio < b.Municipio ? -1 : 1))\r\n }, 1000);\r\n });\r\n }\r\n OnChanges() {\r\n this.formaForm.valueChanges.subscribe(valores => {\r\n let valor: number = valores.departamento;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == valor;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n });\r\n }\r\n\r\n redireciona() {\r\n this.router.navigate(['/flujo/empresa']);\r\n this.componentesService.emitircambio(\"reveinfobasi\");\r\n }\r\n\r\n changeDepartamento($event: any) {\r\n let departamento = $event.target.value;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == +departamento;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n setTimeout(() => {\r\n this.usuario.municipio = undefined\r\n this.formaForm.get(\"municipio\")!.setValue(undefined, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 500);\r\n }\r\n\r\n cargarProfesiones() {\r\n this.ssps.cargarProfesiones()\r\n .subscribe((res: any) => {\r\n this.profesiones = res\r\n });\r\n }\r\n\r\n clearValidatorsProfesion() {\r\n const controlesAEliminar = ['profesion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.clearValidators();\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n addValidatorsProfesion() {\r\n const controlesAEliminar = ['profesion'];\r\n // Iterar sobre los nombres de los controles y eliminar los validadores\r\n for (const controlName of controlesAEliminar) {\r\n const control = this.formaForm.get(controlName);\r\n if (control) {\r\n control.addValidators([\r\n Validators.required,\r\n Validators.maxLength(60)\r\n ])\r\n control.setValue(\"\")\r\n control.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n validarProfesion($event: any) {\r\n let profesionSeleccionada = $event.target.value;\r\n if (profesionSeleccionada === \"OTRA\") {\r\n this.addValidatorsProfesion()\r\n this.otraProfesion = true\r\n this.solicitante.profesion = \"\"\r\n }\r\n else {\r\n this.clearValidatorsProfesion()\r\n this.otraProfesion = false\r\n }\r\n }\r\n}\r\n\r\n","
    \r\n\r\n
    \r\n
    Información básica solicitante
    \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 Primer nombre no es válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Segundo nombre no es válido
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Primer apellido no es válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    Segundo apellido no es válido
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    Correo no válido, debe tener la estructura correo@dominio.com(.co,.es..)\r\n
    \r\n
    \r\n Los correos no son iguales
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    Departamento no válido, selecciona una opción del listado
    \r\n
    \r\n
    \r\n \r\n \r\n
    Municipio no válido, selecciona una opción del listado
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    Indicativo no válido, selecciona una opción de la lista
    \r\n
    El campo\r\n no\r\n puede tener decimales
    \r\n
    \r\n\r\n
    \r\n \r\n
    Teléfono no válido, debe ser un número de 7 dígitos
    \r\n
    El\r\n campo\r\n no puede tener comas
    \r\n\r\n
    \r\n
    \r\n \r\n
    Extension no válido
    \r\n
    El campo\r\n no puede tener comas
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Celular no válido, ingresar número de 10 dígitos
    \r\n\r\n
    El campo\r\n no\r\n puede tener comas
    \r\n
    \r\n
    \r\n \r\n \r\n
    Cargo no válido
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Acta de posesión no válido
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    Fecha de posesión\r\n no válida
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    Institución no válida
    \r\n
    \r\n
    \r\n \r\n \r\n
    Profesion no válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    Profesion no válido
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    Institución no válida
    \r\n
    \r\n
    \r\n \r\n \r\n
    Número de tarjeta profesional no válido
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    Fecha de expedición de tarjeta profesional\r\n no válida
    \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

    {{buttons[i].title}}\r\n
    \r\n {{buttons[i].subtitle}}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    {{error}}
    \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, OnDestroy, Input } from '@angular/core';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: 'app-loading',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.css']\r\n})\r\nexport class LoadingComponent implements OnInit, OnDestroy {\r\n @Input() public mensaje: any\r\n constructor(private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show()\r\n }\r\n\r\n ngOnDestroy(): void{\r\n this.spinner.hide()\r\n }\r\n\r\n}\r\n","
    \r\n \r\n
    \r\n

    {{mensaje}}

    \r\n
    \r\n
    ","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-message',\r\n templateUrl: './message.component.html',\r\n styleUrls: ['./message.component.css']\r\n})\r\nexport class MessageComponent implements OnInit {\r\n @Input() public redirigir: any\r\n constructor(private alert:AlertsService,\r\n private ssps: SspsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage(\"redirigirError\")) {\r\n this.redirigir = JSON.parse(this.ssps.getLocalStorage(\"redirigirError\")!)\r\n }\r\n }\r\n \r\n //TODO:cerrar modal\r\n close(){\r\n if (this.redirigir) {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n else{\r\n this.alert.closeAlert();\r\n this.alert.showFiels();\r\n }\r\n }\r\n}\r\n","
    \r\n
    ¡Tus datos han sido enviados satisfactoriamente!
    \r\n\t\t\r\n\t
    \r\n
    \r\n \r\n

    \r\n Recuerda estar atento a tu teléfono para que uno de nuestros consultores especializados pueda comunicarse contigo en el horario que tienes disponible.\r\n\r\n Si tienes Dudas adicionales, puedes enviarnos un correo a preguntascerti@certicamara.com\r\n

    \r\n
    \r\n\t
    \r\n\t\t\r\n\t
    ","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { AppRoutingModule } from 'src/app/app-routing.module';\r\nimport { PersonaNComponent } from './validaciones/persona-n/persona-n.component';\r\nimport { ValidacionIdentidadComponent } from './validacion-identidad/validacion-identidad.component';\r\nimport { PersonaJComponent } from './validaciones/persona-j/persona-j.component';\r\nimport { ContactenosComponent } from './contactenos/contactenos.component';\r\nimport { FlujocomprasspsComponent } from './flujocomprassps/flujocomprassps.component';\r\nimport { InfoBasicaComponent } from './flujocomprassps/info-basica/info-basica.component';\r\nimport { EntregaComponent } from './flujocomprassps/entrega/entrega.component';\r\nimport { DatosFacturacionComponent } from './flujocomprassps/datos-facturacion/datos-facturacion.component';\r\nimport { DatosempresaComponent } from './flujocomprassps/datosempresa/datosempresa.component';\r\nimport { SolicitantesComponent } from './flujocomprassps/solicitantes/solicitantes.component';\r\nimport { ValidacionesComponent } from './validaciones/validaciones.component';\r\nimport { PersonaSolicitanteComponent } from './validaciones/persona-solicitante/persona-solicitante.component';\r\nimport { ContactoComponent } from './flujocomprassps/contacto/contacto.component';\r\nimport { NocopiadoDirective } from '../directivas/nocopiado.directive';\r\nimport { InputMaskDirective } from '../directivas/input-mask.directive';\r\nimport { UppercaseDirective } from '../directivas/uppercase.directive';\r\nimport { LoadingComponent } from './loading/loading.component';\r\nimport { ConfirmationComponent } from './confirmation/confirmation.component';\r\nimport { MessageComponent } from './message/message.component';\r\nimport { CertimailHomeComponent } from 'src/app/modulos/certimail/certimail-home/certimail-home.component';\r\nimport { SspsComponent } from './ssps/ssps.component';\r\nimport { BarraComponent } from './barra/barra.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PSEComponent } from './flujocomprassps/pse/pse.component';\r\nimport { PagoComponent } from './flujocomprassps/pago/pago.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FinalizadoComponent } from 'src/app/ui/components/finalizado/finalizado.component';\r\nimport { SolicitudFinalizadaComponent } from 'src/app/ui/components/solicitudfinalizada/solicitudfinalizada.component';\r\nimport { AlertaSalirValidaIdentidadComponent } from 'src/app/ui/components/alerta-salir-valida-identidad/alerta-salir-valida-identidad.component';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\n// Import library module\r\nimport { NgxSpinnerModule } from \"ngx-spinner\";\r\nimport { SolicitudFaltantesComponent } from '../../ui/components/solicitudfaltantes/solicitudfaltantes.component';\r\nimport { DescargaCertificadoComponent } from './descarga-certificado/descarga-certificado.component';\r\nimport { DescargaCertificadoModalComponent } from 'src/app/ui/components/descarga-certificado-modal/descarga-certificado-modal.component';\r\nimport { DescargaPfxComponent } from 'src/app/ui/components/descarga-pfx/descarga-pfx.component';\r\nimport { AceptarPrefacturaComponent } from './prefactura/aceptar-prefactura/aceptar-prefactura.component';\r\nimport { RechazarPrefacturaComponent } from './prefactura/rechazar-prefactura/rechazar-prefactura.component';\r\n\r\nimport { RevocarCertificadoComponent } from './revocar-certificado/revocar-certificado.component';\r\nimport { NgOtpInputModule } from 'ng-otp-input';\r\nimport { DescargarFacturaComponent } from './descargar-factura/descargar-factura.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { ShowOpenTabsComponent } from './showopentabs/show-open-tabs.component';\r\nimport { EstadoTramiteComponent } from './estado-tramite/estado-tramite.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { NgStepperModule } from 'angular-ng-stepper';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\n\r\n@NgModule({\r\n declarations:[\r\n NocopiadoDirective,\r\n UppercaseDirective,\r\n InputMaskDirective,\r\n LoadingComponent,\r\n ConfirmationComponent,\r\n MessageComponent,\r\n CertimailHomeComponent,\r\n SspsComponent,\r\n SolicitudFaltantesComponent,\r\n PersonaNComponent,\r\n ValidacionIdentidadComponent,\r\n PersonaJComponent,\r\n ContactenosComponent,\r\n FlujocomprasspsComponent,\r\n InfoBasicaComponent,\r\n EntregaComponent,\r\n DatosFacturacionComponent,\r\n DatosempresaComponent,\r\n SolicitantesComponent,\r\n ValidacionesComponent,\r\n PersonaSolicitanteComponent,\r\n ContactoComponent,\r\n BarraComponent,\r\n PSEComponent,\r\n PagoComponent,\r\n FinalizadoComponent,\r\n SolicitudFinalizadaComponent,\r\n AlertaSalirValidaIdentidadComponent,\r\n DescargaCertificadoComponent,\r\n DescargaCertificadoModalComponent,\r\n DescargaPfxComponent,\r\n AceptarPrefacturaComponent,\r\n RechazarPrefacturaComponent,\r\n RevocarCertificadoComponent,\r\n DescargarFacturaComponent,\r\n ShowOpenTabsComponent,\r\n EstadoTramiteComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule, \r\n AppRoutingModule,\r\n NgbModule,\r\n BrowserAnimationsModule,\r\n NgxSpinnerModule,\r\n NgOtpInputModule,\r\n PdfViewerModule,\r\n MatTableModule, MatButtonModule, MatIconModule, NgStepperModule, CdkStepperModule\r\n ]\r\n ,exports:[\r\n ValidacionesComponent,\r\n BrowserAnimationsModule,\r\n NgxSpinnerModule,\r\n InputMaskDirective,\r\n ShowOpenTabsComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ModulosModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SuccessResponse } from 'src/app/domain/interfaces/response-base.interface';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { PreInvoiceService } from 'src/app/domain/servicios/pre-invoice.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-aceptar-prefactura',\r\n templateUrl: './aceptar-prefactura.component.html',\r\n styleUrls: ['./aceptar-prefactura.component.css']\r\n})\r\nexport class AceptarPrefacturaComponent implements OnInit {\r\n\r\n @Input() loadData: any;\r\n title:string = '';\r\n content:string = '';\r\n data:any;\r\n rechazar: boolean = false;\r\n preInvoice: any;\r\n\r\n constructor(private alert: AlertsService,\r\n private preInvoiceService : PreInvoiceService ) { }\r\n\r\n ngOnInit(): void {\r\n this.title = this.loadData.title;\r\n this.content = this.loadData.content;\r\n this.rechazar = this.loadData.mode === 'accept';\r\n }\r\n\r\n validateLink(){\r\n this.preInvoiceService.validarLinkPrefactura(this.preInvoice);\r\n }\r\n\r\n acceptPreInvoice(){\r\n\r\n if(this.loadData.mode === 'confirm'){\r\n let externalUrl = `${env.urlWebCerti}`;\r\n window.location.replace(externalUrl);\r\n this.closeModal();\r\n }\r\n\r\n if(this.loadData.mode === 'accept'){\r\n\r\n this.data = {\r\n mode: 'confirm',\r\n title: 'Confirmación de Aceptación',\r\n content: `¡Gracias por su confirmación! \r\n
    Hemos registrado su aceptación de la prefactura enviada. \r\n
    Procederemos con la generación de la factura correspondiente, la cual se enviará por el mismo mecanismo\r\n
    Gracias por confiar y preferirnos.`\r\n };\r\n\r\n this.alert.showAceptarPrefactura(null, this.data);\r\n }\r\n\r\n console.log(this.preInvoice);\r\n\r\n this.preInvoiceService.aceptarPrefactura({idPrefactura:this.preInvoice.idPrefactura})\r\n .subscribe({\r\n next: (res: SuccessResponse) => {\r\n //this.loading = false;\r\n //this.alert.closeLoading();\r\n //this.message = 'Archivo cargado exitosamente';\r\n //this.alert.ShowToats(res.message,'success','bottom-right'); \r\n },\r\n error:(error) => {\r\n //this.loading = false;\r\n //this.alert.closeLoading(),\r\n //this.message = 'Error al cargar el archivo';\r\n console.log('error subscriber de setRecord');\r\n console.log(error);\r\n //this.alert. ShowToats('Error insertando o actualizando : ' + error?.error?.message, 'error', 'bottom-right')\r\n }\r\n });\r\n\r\n }\r\n\r\n declinePreInvoice(){\r\n this.alert.showRechazarPrefactura(this.preInvoice);\r\n }\r\n\r\n closeModal(){\r\n this.alert.closeAceptarPrefactura();\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n

    {{title}}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    ","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { PreInvoiceService } from 'src/app/domain/servicios/pre-invoice.service';\r\nimport { LogService } from '../../../../domain/servicios/log.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\n\r\n@Component({\r\n selector: 'app-rechazar-prefactura',\r\n templateUrl: './rechazar-prefactura.component.html',\r\n styleUrls: ['./rechazar-prefactura.component.css']\r\n})\r\nexport class RechazarPrefacturaComponent implements OnInit {\r\n\r\n declineForm!: FormGroup;\r\n usuario: any;\r\n preInvoice: any;\r\n\r\n constructor(private fb: FormBuilder,\r\n private preInvoiceService: PreInvoiceService,\r\n private ssps: SspsService,\r\n private logger: LogService,\r\n private alert: AlertsService,\r\n private el: ElementRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.declineForm = this.fb.group({\r\n nombre: ['', Validators.required],\r\n tipo: ['', Validators.required],\r\n numero: ['', Validators.required],\r\n motivoRechazo: ['', Validators.required]\r\n });\r\n\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n /*if (this.declineForm.invalid) {\r\n this.declineForm.markAllAsTouched();\r\n Object.keys(this.declineForm.controls).forEach(key => {\r\n if (this.declineForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n //Llamar servicio de formularioContacto\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\");\r\n let { nombre, tipo, numero, motivoRechazo } = this.declineForm.value;\r\n let request = {\r\n nombreCompleto: nombre,\r\n tipoIdentificacion: tipo,\r\n numeroIdentificacion: numero,\r\n motivoRechazo: motivoRechazo\r\n }\r\n this.preInvoiceService.rechazarPrefactura(request)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.alert.closesSpiner()\r\n this.logger.log(\"respuesta formularioRechazo\", res)\r\n this.alert.closeContact();\r\n this.alert.showAlert(false);\r\n },\r\n error: (error: any) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber formularioRechazo', error)\r\n this.alert.showError(error.mensaje, true, null, false, null, null, false)\r\n }\r\n })*/\r\n\r\n this.alert.showAlert(true);\r\n }\r\n\r\n camposvalidos(campo: any) {\r\n return this.declineForm.controls[campo].errors && this.declineForm.controls[campo].touched;\r\n }\r\n\r\n close(){\r\n this.alert.closesFiels();\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    Formulario de rechazo

    \r\n

    \r\n Has seleccionado Rechazar la prefactura del periodo [periodo]. \r\n Para poder realizar los ajustes necesarios y generar una nueva prefactura, por favor completa la siguiente información:\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    Nombres no son válidos, ingresar solo letras\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Identificación no válida!\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Nombres no son válidos, ingresar solo letras\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Debe escribir un motivo de rechazo por lo menos de 8 caracteres\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, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'app-revocar-certificado',\r\n templateUrl: './revocar-certificado.component.html',\r\n styleUrls: ['./revocar-certificado.component.css']\r\n})\r\nexport class RevocarCertificadoComponent implements OnInit {\r\n @ViewChild('inputRefNombres')\r\n inputRefNombres!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefApellidos')\r\n inputRefApellidos!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n urlRequest = urlRequest\r\n formaForm!: FormGroup;\r\n solicitudId: any = \"\"\r\n fechaExpDocumento!: any;\r\n statusFechaExpDocumento: boolean = false;\r\n usuarioValida: any = {\r\n ip: '',\r\n idTitular: 0,\r\n tipo: '',\r\n numero: '',\r\n fechaExpDocumento: null\r\n };\r\n maxDate: NgbDateStruct\r\n minDate: NgbDateStruct\r\n identidadValidada = false\r\n motivosRechazo: any = []\r\n certificados: any = []\r\n listadoHeaders = [\r\n { title: \"Empresa\", code: \"organizacion\" },\r\n { title: \"Nombre\", code: \"nombreSolicitante\" },\r\n { title: \"Username\", code: \"username\" },\r\n { title: \"Estado\", code: \"status\" },\r\n { title: \"Fecha emisión\", code: \"fechaEmision\" },\r\n { title: \"Fecha Vencimiento\", code: \"fechaVencimiento\" }]\r\n listadoDetalle = [\r\n { title: \"Username\", code: \"username\" },\r\n { title: \"Solicitud\", code: \"serialDispositivo\" },\r\n { title: \"Política del Certificado\", code: \"politicaCertificado\" },\r\n { title: \"Nombre Solicitante\", code: \"nombreSolicitante\" },\r\n { title: \"Cédula\", code: \"cedula\" },\r\n { title: \"Correo Electrónico\", code: \"correoElectronicoSolicitante\" },\r\n { title: \"Fecha emisión\", code: \"fechaEmision\" },\r\n { title: \"Fecha Vencimiento\", code: \"fechaVencimiento\" },\r\n { title: \"Organización\", code: \"organizacion\" },\r\n { title: \"Nit\", code: \"nit\" },\r\n { title: \"Dirección\", code: \"direccionFisica\" },\r\n { title: \"Ciudad\", code: \"localidad\" }]\r\n\r\n certificadoSeleccionado: any = null\r\n motivoSeleccionadoId: any = null\r\n motivoSeleccionado: any = null\r\n urlManualRevocacion = \"\"\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n public datepipe: DatePipe,\r\n private logger: LogService,\r\n private el: ElementRef,\r\n private router: Router,\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required\r\n ]],\r\n fechaExpDocumento: ['', [Validators.required]]\r\n }, { validators: [this.componentesService.codigonit('tipo', 'numero')] });\r\n this.setOnChangesInputs()\r\n var actualFecha = new Date();\r\n this.maxDate = { year: actualFecha.getFullYear(), month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n this.minDate = { year: actualFecha.getFullYear() - 100, month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.obtenerParametros()\r\n this.ssps.obtenerIpValor()\r\n if (this.ssps.getLocalStorage(\"usuarioValida\")) {\r\n this.usuarioValida = JSON.parse(this.ssps.getLocalStorage(\"usuarioValida\")!)\r\n this.fechaExpDocumento = this.usuarioValida.fechaExpDocumento\r\n this.consultarMotivosRechazo()\r\n }\r\n\r\n if (this.ssps.getLocalStorage(\"validaIdentidad\")) {\r\n this.identidadValidada = JSON.parse(this.ssps.getLocalStorage(\"validaIdentidad\")!)\r\n localStorage.removeItem(\"validaIdentidad\")\r\n if (this.identidadValidada) {\r\n this.consultarCertificadosRevocacion()\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero) {\r\n const elRef = this.inputRefNumero?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n let { fechaExpDocumento } = this.formaForm.value;\r\n this.usuarioValida.fechaExpDocumento = fechaExpDocumento\r\n this.consultarDatsSolicitante()\r\n //Llamar servicio para consultar datos\r\n }\r\n }\r\n\r\n fechas(dato: any, campo: any) {\r\n if (dato === undefined || dato === null) return;\r\n let valida = /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/-](?:0?[1-9]|1[0-2])|(?:29|30)[/-](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/-](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/-]0?2[/-](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n if (campo === \"fechaExpDocumento\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpDocumento = true;\r\n } else {\r\n this.statusFechaExpDocumento = false;\r\n }\r\n }\r\n }\r\n\r\n consultarDatsSolicitante() {\r\n let data = {\r\n tipo: this.usuarioValida.tipo,\r\n numero: this.usuarioValida.numero\r\n }\r\n this.ssps.consultarDatosSolicitanteRevocacion(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"consultarDatosSolicitanteRevocacion\", res)\r\n this.usuarioValida.ip = this.ssps.ip\r\n this.usuarioValida.nombres = (res.primerNombre ?? '') + (res.segundoNombre !== null &&\r\n res.segundoNombre !== undefined && res.segundoNombre !== \"\" ?\r\n \" \" + res.segundoNombre : \"\")\r\n this.usuarioValida.apellidos = (res.primerApellido ?? '') + (res.segundoApellido !== null &&\r\n res.segundoApellido !== undefined && res.segundoApellido !== \"\" ?\r\n \" \" + res.segundoApellido : \"\")\r\n this.usuarioValida.idTitular = res.solicitudId\r\n this.usuarioValida.correo = res.correo\r\n this.usuarioValida.celular = res.celular\r\n this.usuarioValida.primerNombre = res.primerNombre\r\n this.usuarioValida.segundoNombre = res.segundoNombre\r\n this.usuarioValida.primerApellido = res.primerApellido\r\n this.usuarioValida.segundoApellido = res.segundoApellido\r\n this.logger.log(\"this.usuarioValida\", this.usuarioValida)\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuarioValida))\r\n this.ssps.saveLocalStorage(\"usuarioValida\", JSON.stringify(this.usuarioValida))\r\n this.ssps.saveLocalStorage(\"solicitudId\", JSON.stringify(res.solicitudId.toString()))\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.router.navigate(['validacion-identidad'], {\r\n queryParams: {\r\n 'origen': \"revocar-certificado\",\r\n 'boton': \"Volver a revocaciones\"\r\n },\r\n queryParamsHandling: 'merge'\r\n })\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarDatosSolicitanteRevocacion', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarDatsSolicitante();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarDatosSolicitanteRevocacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n consultarMotivosRechazo() {\r\n this.ssps.consultarMotivosRechazo()\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"consultarMotivosRechazo\", res)\r\n this.motivosRechazo = res\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarMotivosRechazo', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarMotivosRechazo();\r\n }\r\n else {\r\n console.error('Error en subscriber consultarMotivosRechazo', error)\r\n }\r\n }\r\n })\r\n }\r\n\r\n obtenerParametros() {\r\n this.ssps.obtenerParametros()\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"obtenerParametros\", res)\r\n this.urlManualRevocacion = res.manualRevocacion\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber obtenerParametros', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.obtenerParametros();\r\n }\r\n else {\r\n console.error('Error en subscriber obtenerParametros', error)\r\n }\r\n }\r\n })\r\n }\r\n\r\n consultarCertificadosRevocacion() {\r\n this.alert.showSpiner(\"Estamos cargando tus solicitudes, este proceso puede tardar un momento\");\r\n this.ssps.consultarCertificadosRevocacion(this.usuarioValida.numero)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"consultarCertificadosRevocacion\", res)\r\n this.certificados = res\r\n this.alert.closesSpiner()\r\n if (this.certificados.length === 0) {\r\n this.alert.showError(\"No se encontraron certificados vigentes asociados a tu número de identificacion\",\r\n false, null, false, null, null, false)\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarCertificadosRevocacion', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarCertificadosRevocacion();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber consultarCertificadosRevocacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n detalleCertificado(certificado: any) {\r\n this.logger.log(\"detalleCertificado\", certificado)\r\n this.certificadoSeleccionado = certificado\r\n }\r\n\r\n //TODO:redireciona al home de certicamara\r\n homeNavigate() {\r\n this.alert.closesFiels();\r\n this.alert.closesFiels()\r\n }\r\n\r\n cancelarSeleccion() {\r\n this.certificadoSeleccionado = null\r\n this.motivoSeleccionado = null\r\n this.motivoSeleccionadoId = null\r\n localStorage.removeItem(\"tituloBoton\")\r\n }\r\n\r\n revocarCertificado() {\r\n this.logger.log(\"motivoSeleccionado\", this.motivoSeleccionado)\r\n if (this.motivoSeleccionado === null) {\r\n this.alert.closesSpiner()\r\n this.alert.showError(\"El motivo de revocación es obligatorio para continuar\",\r\n false, null, false, null, null, false)\r\n return;\r\n }\r\n\r\n this.certificadoSeleccionado.status = \"REVOCADO\"\r\n this.certificadoSeleccionado.motivoRevocacionId = this.motivoSeleccionado.motivoRevocacionId\r\n this.certificadoSeleccionado.motivoRevocacion = this.motivoSeleccionado.descCortaMotivo\r\n let alertaConfirmacion = this.alert.showConfirmacion(`¿Está seguro de que deseas revocar el certificado ${this.certificadoSeleccionado.username}?`,\r\n 'Confirmar revocación certificado', 'SI', 'NO')\r\n alertaConfirmacion.result.then((confirmacion: any) => {\r\n this.logger.log(\"alertaConfirmacion\", confirmacion);\r\n if (confirmacion) {\r\n this.alert.showSpiner(\"Procesando petición, por favor espera un momento\");\r\n this.revocarCertificadoServicio()\r\n }\r\n });\r\n }\r\n\r\n revocarCertificadoServicio() {\r\n this.ssps.revocarCertificado(this.certificadoSeleccionado)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.alert.closesSpiner()\r\n this.logger.log(\"revocarCertificado\", res)\r\n let alerta = this.alert.showError(res.mensaje, false, \"Revocación exitosa\", false, null, null, false)\r\n this.cancelarSeleccion()\r\n alerta.result.then((confirmacion: any) => {\r\n this.logger.log(\"revocarCertificado errorAlert result\", confirmacion);\r\n this.consultarCertificadosRevocacion()\r\n });\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber revocarCertificado', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.revocarCertificadoServicio();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber revocarCertificado', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n changeMotivo($event: any) {\r\n let motivo = $event.target.value;\r\n this.motivoSeleccionado = this.motivosRechazo.filter((i: any) => i.motivoRevocacionId === +motivo)[0]\r\n }\r\n\r\n volverFormulario() {\r\n this.certificadoSeleccionado = null\r\n this.certificados = []\r\n this.identidadValidada = false\r\n this.formaForm.reset()\r\n this.usuarioValida = {\r\n ip: '',\r\n idTitular: 0,\r\n tipo: '',\r\n numero: '',\r\n fechaExpDocumento: null\r\n };\r\n }\r\n\r\n closeModal() {\r\n let externalUrl = `${environment.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n}","
    \r\n
    \r\n

    REVOCACIÓN EN LINEA

    \r\n \r\n
    \r\n
    \r\n
    \r\n La revocación es el medio por el cual se cancelará e inhabilitará el Certificado\r\n Digital y se dará por terminado tu periodo de confiabilidad, al presentarse alguna de\r\n las causas establecidas en la Declaración de Prácticas de Certificación. \r\n
    \r\n
    \r\n Conozca como generar el proceso de revocación en línea  \r\n \r\n \r\n \r\n Descargar manual\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Recuerda que el proceso de revocación en línea lo debe realizar única y exclusivamente el\r\n titular del certificado de firma digital.\r\n
    \r\n
    \r\n \r\n Revoca tu certificado en línea así:\r\n \r\n
      \r\n
    1. \r\n ingresa tu tipo de identificación, número de identificación y fecha de\r\n expedición.\r\n
    2. \r\n
    3. Oprime el botón, \"Validar identidad\"
    4. \r\n
    5. Selecciona como deseas validar tu identidad, mediante preguntas de historial\r\n crediticio o verificación facial
    6. \r\n
    7. Contesta las preguntas del cuestionario de historial crediticio y/o verifica tu\r\n identidad mediante reconocimiento facial.\r\n
    8. \r\n
    9. Selecciona el certificado que deseas revocar y luego clic en el botón Revocar.\r\n
    10. \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Debes seleccionar un tipo de documento\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Identificación no válido!
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n Fecha de expedición documento no\r\n válida
    \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

    LISTADO CERTIFICADOS

    \r\n

    DATOS DEL CERTIFICADO\r\n {{certificadoSeleccionado.username | uppercase }}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n 0 && certificadoSeleccionado === null\">\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.title | uppercase }}\r\n
    \r\n {{ item[header.code] }}\r\n \r\n \r\n REVOCAR\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 {{ item.title }}\r\n \r\n {{ certificadoSeleccionado[item.code] }}\r\n
    \r\n Motivo revocación\r\n \r\n \r\n\r\n
    \r\n Descripción motivo revocación\r\n \r\n {{ motivoSeleccionado.descripcionMotivo }}\r\n
    \r\n
    \r\n
    0 && certificadoSeleccionado === null \">\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    ","import { Component, OnInit, OnChanges, DoCheck, AfterContentChecked, AfterViewChecked } from '@angular/core';\r\nimport packageJson from '../../../../../../package-lock.json';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n tamano!: number;\r\n version = \"\"\r\n constructor() { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.version = packageJson.version;\r\n }\r\n //calculo de resolucion de pantalla\r\n onResize(event: any) {\r\n this.tamano = event.target.innerWidth;\r\n }\r\n\r\n //apliacion de de estilo deacuerdo a resolucion\r\n validar() {\r\n\r\n return (this.tamano <= 867) ? 'col-lg-2 col-md-3 col-sm-6 col-xs-6' : 'margen';\r\n }\r\n\r\n\r\n}","
    \r\n
    \r\n Versión {{version}}
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \"facebook\"

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

    \"facebook\"

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

    \"facebook\"\r\n

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

    \"instagram\"\r\n

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

    \"facebook\"

    \r\n
    \r\n
    \r\n
    \r\n
    ","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\n\r\n@Component({\r\n selector: 'app-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.css']\r\n})\r\nexport class NavbarComponent implements OnInit {\r\n\r\n // @ViewChild('margen', { read: ElementRef, static:false }) margen: ElementRef;\r\n\r\n constructor(private compoente:ComponentesService,\r\n private alert:AlertsService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n \r\n }\r\n\r\n /*mostrar modal manualmente desde servicio*/ \r\nmostrar(){\r\nthis.compoente.estados = true;\r\n\r\n}\r\n\r\n//TODO:muestra activo Digital\r\nshowActive(){\r\nthis.alert.showFiels();\r\n}\r\n\r\n}\r\n","
    \r\n \r\n \r\n \r\n
    ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavbarComponent } from './navbar/navbar.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { AppRoutingModule } from 'src/app/app-routing.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NavbarComponent,\r\n FooterComponent\r\n ],exports:[\r\n NavbarComponent,\r\n FooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n AppRoutingModule\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-show-open-tabs',\r\n templateUrl: './show-open-tabs.component.html',\r\n styleUrls: ['./show-open-tabs.component.scss']\r\n})\r\nexport class ShowOpenTabsComponent implements OnInit {\r\n\r\n @Input() data: any;\r\n menssage: string = '';\r\n closemodal: boolean = false;\r\n closetap: boolean = false;\r\n\r\n constructor(private alert: AlertsService) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.menssage = this.data;\r\n\r\n if (this.menssage == \"Se acaba de abrir otra pestaña de este sitio\") {\r\n this.closemodal = true;\r\n }\r\n\r\n if (this.menssage == \"Ya se está ejecutando una instancia de este sitio\") {\r\n this.closetap = true;\r\n }\r\n }\r\n\r\n\r\n //TODO:se cierra modal deacuerdo a acciones\r\n cloSeptaps() {\r\n this.alert.closeTabs();\r\n }\r\n\r\n\r\n closedExplorer() {\r\n this.alert.closeTabs();\r\n let externalUrl = environment.urlWebCerti;\r\n window.location.replace(externalUrl);\r\n\r\n }\r\n\r\n\r\n}\r\n","
    \r\n \r\n
    Error
    \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

    {{menssage}}

    \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 { Router } from '@angular/router';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\n\r\n@Component({\r\n selector: 'app-sinpago',\r\n templateUrl: './sinpago.component.html',\r\n styleUrls: ['./sinpago.component.css']\r\n})\r\nexport class SinPagoComponent implements OnInit {\r\n @Input() public mensaje: any\r\n @Input() public titulo: any\r\n constructor(private alert:AlertsService,\r\n private router:Router,\r\n private componets:ComponentesService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n //TODO:cerrar modal\r\n close(){\r\n this.alert.closesshowReporter();\r\n let externalUrl = `${ env.urlWebCerti }`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl); \r\n }\r\n}\r\n","\r\n
    \r\n

    {{titulo}}

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

    {{mensaje}}\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n
    ","import { Component, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { datosPasarela } from 'src/assets/config/app.conf';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { Router } from '@angular/router';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\n\r\n@Component({\r\n selector: 'app-solicitudfaltantes',\r\n templateUrl: './solicitudfaltantes.component.html',\r\n styleUrls: ['./solicitudfaltantes.component.css']\r\n})\r\nexport class SolicitudFaltantesComponent implements OnInit {\r\n pago: any = {}\r\n usuario: any = {}\r\n urlRequest = urlRequest\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService, private logger: LogService,\r\n private router: Router, private componentesService: ComponentesService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.pago = JSON.parse(this.ssps.getLocalStorage('pago')!);\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.alert.closeAlert();\r\n if (this.usuario.faltantes && this.usuario.faltantes.length > 0 && this.usuario.faltantes[0] === \"Realizar pago\") {\r\n this.router.navigate(['/flujo/pago']);\r\n this.componentesService.emitircambio(\"pagosFull\");\r\n }\r\n else if (this.pago !== null && this.pago.realizoPago === \"S\" &&\r\n this.pago.fechaPago !== \"\" && this.pago.fechaPago !== undefined &&\r\n this.usuario.faltantes && this.usuario.faltantes.length > 0 &&\r\n this.usuario.faltantes[0].includes(\"validación de identidad\")) {\r\n this.alert.showAlertaValidarIdentidad(false)\r\n }\r\n else if (this.pago !== null && this.pago.pagoPSE === true &&\r\n (this.pago.fechaPago === \"\" || this.pago.fechaPago === undefined)) {\r\n this.consultarPago()\r\n }\r\n }\r\n\r\n consultarPago() {\r\n this.alert.showSpiner(\"Ten en cuenta...Para terminar el proceso debes realizar la validación de tu identidad.\")\r\n this.logger.log(\"servicioConsultarPago\", \"Info-basica\")\r\n let datosPse = datosPasarela\r\n datosPse.ipUsuario = this.ssps.ip\r\n datosPse.urlRetorno = `${location.origin}?id=${JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)}&redirect=pago`\r\n datosPse.navegador = this.ssps.getBrowserName()\r\n //Si el estado es aprobado, mostrar alerta de transacción exitosa y ya terminar proceso\r\n let body = {\r\n ordenPedidoId: this.pago.ordenPedidoId,\r\n cupon: this.pago.cuponAplicado ?? '',\r\n datosPasarela: datosPse\r\n }\r\n this.ssps.consultarEstadoPagoPSE(body)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarEstadoPago Info-basica\", res)\r\n if (res !== null) {\r\n this.alert.closesSpiner()\r\n this.pago.estado = res.estado\r\n this.pago.mensaje = res.mensaje\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n if (this.pago.estado === \"APROBADO\") {\r\n this.logger.log(\"Estado Pago info-Basica\", \"APROBADO\")\r\n if (this.usuario.identidadValidada === false) {\r\n this.logger.log(\"consulta orden, identidad validada consultarEstadoPagoPSE\", \"false\")\r\n this.alert.showAlertaValidarIdentidad(false)\r\n }\r\n }\r\n }\r\n else {\r\n this.pago.estado = \"PENDIENTE\"\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error: any) => {\r\n this.logger.log(\"error suscriber consultarEstadoPago Info-basica\", error)\r\n this.pago.estado = \"PENDIENTE\"\r\n this.ssps.saveLocalStorage(\"pago\", JSON.stringify(this.pago));\r\n this.alert.closesSpiner()\r\n //this.router.navigate(['/flujo/pasarela']);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
    \r\n

    Señor usuario

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

    \r\n El proceso finalizará exitosamente una vez haya completado todos los requisitos, actualmente tiene pendiente:\r\n

    \r\n

    \r\n   {{faltante}}\r\n

    \r\n
    \r\n
    \r\n \r\n
    ","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-solicitudfinalizada',\r\n templateUrl: './solicitudfinalizada.component.html',\r\n styleUrls: ['./solicitudfinalizada.component.css']\r\n})\r\nexport class SolicitudFinalizadaComponent implements OnInit {\r\n @Input() public redirigir: any\r\n usuario: any = {};\r\n urlRequest = urlRequest\r\n\r\n constructor(private alert: AlertsService, private ssps: SspsService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.ssps.getLocalStorage('usuario')) {\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n }\r\n }\r\n\r\n //TODO:cerrar modal\r\n close() {\r\n this.alert.closeAlert();\r\n if (this.redirigir) {\r\n localStorage.clear()\r\n let externalUrl = `${env.urlWebCerti}`;\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
    \r\n

    Señor usuario

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

    \r\n El registro de datos finalizó exitosamente y está en proceso de revisión por parte de Certicámara.\r\n

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

    \r\n El registro de datos finalizó exitosamente y está en proceso de aprobación por parte de Certicámara.\r\n

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

    \r\n El registro de datos finalizó exitosamente y está pendiente por descargar.\r\n

    \r\n
    \r\n
    \r\n \r\n
    ","import { ChangeDetectorRef, Component, OnInit, OnChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport { NgForm, FormGroup, ValidatorFn, AbstractControl, FormArray, FormBuilder, FormControl, Validators, ValidationErrors } from '@angular/forms';\r\nimport { SspsService } from '../../../domain/servicios/ssps.service';\r\nimport { ComponentesService } from '../../../domain/servicios/componentes.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ObjetosService } from '../../../domain/servicios/objetos.service';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { QuestionsService } from 'src/app/domain/servicios/questions.service';\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { DatePipe } from '@angular/common'\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\ndeclare var window: any;\r\ndeclare var bootstrap: any;\r\n\r\n@Component({\r\n selector: 'app-ssps',\r\n templateUrl: './ssps.component.html',\r\n styleUrls: ['./ssps.component.css']\r\n})\r\nexport class SspsComponent implements OnInit {\r\n @ViewChild('inputRefOtroUso')\r\n inputRefOtroUso!: { nativeElement: any; };\r\n\r\n sspsh: any;\r\n valores: string = '';\r\n showresumeA: boolean = false;\r\n showresumeB: boolean = false;\r\n formaForm: FormGroup;\r\n formaForm2: FormGroup;\r\n cantidad: boolean = false;\r\n elementofi: any;\r\n desactiva = true;\r\n anterior: boolean = false;\r\n elementose: any;\r\n //muestreo de campos \r\n muestreo: boolean = false;\r\n tipodis: any = { dispo: \"\" };\r\n check: boolean = false;\r\n resultado!: number;\r\n usuario: any = {\r\n idpoli: \"\"\r\n };\r\n show: boolean = false;\r\n preciosd: any[] = [];\r\n usosCertificados: any[] = [];\r\n preciosReposicion: any[] = [];\r\n redirecion: boolean = false;\r\n contador: number = 0;\r\n vista: boolean = true;\r\n vigencias: any[] = [];\r\n comas: boolean = false;\r\n quitar: any;\r\n tiempo: string = 'años';\r\n errorcantidad: boolean = false;\r\n carousel: any;\r\n newstatus: boolean = false;\r\n compras: any[] = []\r\n saveEmptyDataStorage: boolean = true\r\n tipoClienteSugerido = ''\r\n tipoCliente = ''\r\n aplicaReposicion = false\r\n mostrarReposiciones = false\r\n usoCertificado: any = { id: 0, descripcion: \"\", otro: \"\" }\r\n mostrarBotones = true\r\n idCarrouselSeleccionado = 0\r\n anosReusoSeleccion = 0\r\n validarReuso = false\r\n urlVideoReuso: SafeResourceUrl\r\n vistaVideo: boolean = false;\r\n\r\n constructor(public ssps: SspsService,\r\n private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activateRoute: ActivatedRoute,\r\n private objetosService: ObjetosService,\r\n private alert: AlertsService,\r\n private componentService: ComponentesService,\r\n private el: ElementRef,\r\n private questions: QuestionsService,\r\n private logger: LogService,\r\n public datepipe: DatePipe,\r\n public sanitizer: DomSanitizer\r\n ) {\r\n /*form array formulario1*/\r\n this.formaForm = this.fb.group({\r\n checks: ['', [Validators.required]],\r\n });\r\n\r\n /*form array formulario2*/\r\n this.formaForm2 = this.fb.group({\r\n checks2: ['', [\r\n //Validators.required\r\n ]],\r\n dispositivo: ['', [Validators.required]],\r\n cantidad: ['1', [Validators.min(1),\r\n Validators.max(99)\r\n ]],\r\n anos: [undefined, [Validators.required]],\r\n uso: [\"\", []],\r\n otroUso: [\"\", []],\r\n terminosReuso: [false, Validators.requiredTrue],\r\n });\r\n this.urlVideoReuso = this.sanitizer.bypassSecurityTrustResourceUrl(env.urlVideoReuso);\r\n }\r\n\r\n /*implementacion de modal listas */\r\n ngOnInit(): void {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n this.tipoCliente = this.ssps.getLocalStorage('tipocliente')!;\r\n this.ssps.typePerson = this.ssps.getLocalStorage(\"tipocliente\")!\r\n let copiaCompras = this.ssps.compras\r\n this.historySummary()\r\n /*metodos de consultas servicios*/\r\n this.preguntas();\r\n // this.gethistorial();\r\n this.getpoliticas();\r\n this.codigov();\r\n this.OnChanges();\r\n this.precios();\r\n this.usos();\r\n this.setOnChangesInputs()\r\n this.cargarPreciosReposicion();\r\n\r\n if (this.ssps.getLocalStorage(\"regresaFormulario\") === \"true\") {\r\n setTimeout(() => {\r\n this.usuario = JSON.parse(this.ssps.getLocalStorage(\"usuario\")!)\r\n this.contador = 2\r\n this.ssps.person = this.usuario\r\n this.resultado = Math.trunc(this.usuario.costo)\r\n if (this.usuario.politica == \"Persona Natural PKCS10\" ||\r\n this.elementose?.politica == \"Persona Jurídica PKCS10\") {\r\n this.preciosd = this.preciosd.filter((res) => res.nombre === 'PKCS#10');\r\n }\r\n else {\r\n this.preciosd = this.preciosd.filter((res) => { return !(res.nombre == 'PKCS#10'); })\r\n }\r\n\r\n this.logger.log(\"precios\", this.preciosd)\r\n let [mecEntrega] = this.preciosd.filter((res) => { return res.nombre.toLowerCase() == this.usuario.dispo.toLowerCase(); })\r\n this.vigencias = mecEntrega.vigencia;\r\n this.logger.log(\"regreso\", mecEntrega)\r\n this.changePrices({ target: { value: this.preciosd.length === 1 ? 0 : mecEntrega.id } })\r\n this.alert.closesSpiner()\r\n this.carousel = new bootstrap.Carousel(this.el.nativeElement.querySelector('#carouselExampleControlsNoTouching'));\r\n this.showresumeA = false\r\n this.showResume()\r\n localStorage.removeItem(\"regresaFormulario\")\r\n }, 3500);\r\n }\r\n else {\r\n this.carousel = new bootstrap.Carousel(this.el.nativeElement.querySelector('#carouselExampleControlsNoTouching'));\r\n this.alert.closesSpiner()\r\n if (this.ssps.compras.length > 0) {\r\n this.logger.log(\"compras más de 0\", this.ssps.compras.length)\r\n this.newstatus = false;\r\n this.carousel.to(1);\r\n this.contador = this.contador + 1;\r\n this.mostrarBotones = false\r\n }\r\n this.logger.log(\"copia compras\", copiaCompras.length)\r\n if (this.ssps.compras.length === 0 || copiaCompras.length === 0) {\r\n this.newstatus = true;\r\n }\r\n //Para cuando se le muestra el mensaje de sugerencia cambio tipo cliente\r\n // else {\r\n // this.carousel.to(1);\r\n // }\r\n }\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm2.get(\"otroUso\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefOtroUso) {\r\n const elRef = this.inputRefOtroUso.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm2.get(\"otroUso\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n /* validacion de persona natutal para check pks*/\r\n codigov() {\r\n\r\n let { cliente } = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n\r\n if (cliente == \"juridica\") {\r\n this.muestreo = true;\r\n }\r\n\r\n }\r\n\r\n //TODO:retoma los datos del historico \r\n historySummary() {\r\n this.changeDetector.detach();\r\n if (this.tipoCliente === 'natural') {\r\n this.tipoClienteSugerido = \"Entidad/Empresa\"\r\n this.ssps.compras = this.ssps.compras.filter(historico => historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'profesional titulado' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'persona natural' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'persona natural pkcs10')\r\n\r\n this.ssps.reposiciones = this.ssps.compras.slice().filter(h => h.aplicaReposicion)\r\n }\r\n else {\r\n this.tipoClienteSugerido = \"Natural\"\r\n this.ssps.compras = this.ssps.compras.filter(historico => historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'profesional titulado' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'representante legal' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'pertenencia a empresa' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'función publica' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'funcion publica' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'persona jurídica pkcs10' ||\r\n historico.solicitantes[0].detallesCertificado.nombrePolitica.toLowerCase() === 'persona juridica pkcs10')\r\n\r\n this.ssps.reposiciones = this.ssps.compras.filter(h => h.aplicaReposicion)\r\n }\r\n this.compras = this.ssps.compras.map((historico: any) => ({\r\n fecha: historico.ordenPedidoInfo.fechaEntrega,\r\n proyecto: historico.ordenPedidoInfo.nombreProyecto,\r\n tipo: historico.solicitantes[0].detallesCertificado.mecanismoEntrega,\r\n politica: historico.solicitantes[0].detallesCertificado.nombrePolitica,\r\n uso: historico.solicitantes[0].detallesCertificado.descripcionUso\r\n })).slice(0, 5);\r\n\r\n this.aplicaReposicion = this.ssps.reposiciones.length > 0\r\n this.changeDetector.detach();\r\n this.logger.log(\"historico\", this.ssps.compras)\r\n this.logger.log(\"reposicion\", this.ssps.reposiciones)\r\n this.logger.log(\"this.compras\", this.compras)\r\n }\r\n //TODO:listado de preguntas manteniedo el objeto original\r\n get questionsPolices() {\r\n return this.questions.listadop;\r\n }\r\n\r\n //TODO:listado de preguntas manteniedo el objeto original\r\n get directivesActive() {\r\n return this.questions.directiva;\r\n }\r\n\r\n politica(valor: any) {\r\n this.elementose = valor;\r\n this.vista = true;\r\n //debugger;\r\n\r\n if (this.elementose?.politica == \"Persona Natural PKCS10\" ||\r\n this.elementose?.politica == \"Persona Jurídica PKCS10\") {\r\n this.preciosd = this.preciosd.filter((res) => res.nombre === 'PKCS#10');\r\n }\r\n else {\r\n this.preciosd = this.preciosd.filter((res) => { return !(res.nombre == 'PKCS#10'); })\r\n }\r\n\r\n let datos = {\r\n idpoli: this.elementose.id,\r\n politica: this.elementose.politica,\r\n dispo: undefined,\r\n idispo: undefined,\r\n anos: 0\r\n }\r\n this.resultado = 0\r\n\r\n this.usuario = this.ssps.person;\r\n Object.assign(this.usuario, datos);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n //vaciameintos de campos de formulario seleccion de dispositivo\r\n if (this.resultado !== undefined) {\r\n this.formaForm2.get('cantidad')!.setValue(undefined);\r\n this.formaForm2.get('anos')!.setValue(undefined);\r\n this.resultado != null;\r\n }\r\n\r\n this.desactiva = false;\r\n }\r\n\r\n /*muestro de campos cantidad*/\r\n mecanisEntregaChange($event: any, id: number) {\r\n this.logger.log(\"validacion mecanisEntregaChange\", id)\r\n this.logger.log(\"validacion mecanisEntregaChange-precios\", this.preciosd)\r\n let { cliente } = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.resultado = 0;\r\n this.formaForm2.get('anos')!.setValue(1);\r\n this.formaForm2.get('anos')!.updateValueAndValidity()\r\n this.vigencias = this.preciosd[id].vigencia;\r\n // debugger\r\n let isCheckeado2 = $event.target.checked;\r\n this.tipodis = {\r\n idispo: this.preciosd[id].id,\r\n dispo: this.preciosd[id].nombre,\r\n iva: this.preciosd[id].iva,\r\n ica: 0\r\n }\r\n this.logger.log(\"validacion mecanisEntregaChange\", this.vigencias)\r\n this.usuario.terminosReuso = false\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n for (var i = 0; i < this.preciosd.length; i++) {\r\n /*cambio de estado input*/\r\n if (this.preciosd[i].id == id && isCheckeado2 == true && cliente == 'juridica') {\r\n this.preciosd[id].estados = true;\r\n } else {\r\n this.preciosd[i].estados = false;\r\n }\r\n if (this.preciosd[i].id == id && isCheckeado2 == true && cliente == 'juridica' && this.preciosd[i].nombre == 'PKCS#10') {\r\n this.preciosd[i].estados = false;\r\n }\r\n }\r\n if (this.formaForm2.get('anos')!.value !== null && this.formaForm2.get('anos')!.value !== undefined) {\r\n this.ChagePrice(this.formaForm2.get('anos')!.value)\r\n }\r\n\r\n this.formaForm2.get('uso')!.setValue(\"\")\r\n this.usoCertificado = { id: 0, descripcion: \"\", otro: \"\" }\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10') {\r\n this.formaForm2.get('uso')!.setValidators([Validators.required]);\r\n }\r\n else {\r\n this.formaForm2.get('uso')!.clearValidators()\r\n this.formaForm2.get('otroUso')!.clearValidators();\r\n }\r\n this.logger.log(\"validacion mecanisEntregaChange2\", this.formaForm2.get('anos')!.value)\r\n this.logger.log(\"validacion mecanisEntregaChange2 dispo\", this.tipodis)\r\n if (this.tipodis.dispo.toLowerCase() === \"reúso token físico\") {\r\n this.desactiva = true;\r\n }\r\n }\r\n\r\n /*lista de precios*/\r\n precios() {\r\n this.ssps.precios()\r\n .subscribe((res: any) => {\r\n this.preciosd = res.precios;\r\n\r\n for (var i = 0; i < this.preciosd.length; i++) {\r\n this.preciosd[i].estados = false;\r\n if (this.preciosd[i].nombre == \"token virtual\") {\r\n this.preciosd[i].img = \"../../../assets/img/token-virtual.png\"\r\n }\r\n if (this.preciosd[i].nombre == \"token físico\") {\r\n this.preciosd[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n\r\n if (this.preciosd[i].nombre == \"reúso token físico\") {\r\n this.preciosd[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n\r\n if (this.preciosd[i].nombre == \"PKCS#10\") {\r\n this.preciosd[i].img = \"../../../assets/img/kpcs10.png\"\r\n }\r\n }\r\n })\r\n }\r\n\r\n usos() {\r\n this.ssps.usos()\r\n .subscribe((res: any) => {\r\n this.usosCertificados = res.usos;\r\n })\r\n }\r\n\r\n cargarPreciosReposicion() {\r\n this.ssps.preciosReposicion()\r\n .subscribe((res: any) => {\r\n this.preciosReposicion = res.precios;\r\n\r\n for (var i = 0; i < this.preciosd.length; i++) {\r\n this.preciosReposicion[i].estados = false;\r\n if (this.preciosReposicion[i].nombre == \"token virtual\") {\r\n this.preciosReposicion[i].img = \"../../../assets/img/token-virtual.png\"\r\n }\r\n if (this.preciosReposicion[i].nombre == \"token físico\") {\r\n this.preciosReposicion[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n if (this.preciosReposicion[i].nombre == \"reúso token físico\") {\r\n this.preciosReposicion[i].img = \"../../../assets/img/usb.png\"\r\n }\r\n\r\n if (this.preciosReposicion[i].nombre == \"PKCS#10\") {\r\n this.preciosReposicion[i].img = \"../../../assets/img/kpcs10.png\"\r\n }\r\n }\r\n })\r\n }\r\n\r\n //TODO:Calculos de precios en base al tipo de persona \r\n ChagePrice(cost: string) {\r\n this.logger.log(\"validacion ChagePrice\", this.formaForm2.get('anos')!)\r\n this.logger.log(\"validacion ChagePrice valor select\", cost)\r\n let cantidad = 1;\r\n let anos: number = parseInt(cost);\r\n this.anosReusoSeleccion = anos\r\n //si es natural\r\n this.formaForm2.get('anos')!.setValue(parseInt(cost));\r\n if (this.ssps.typePerson == 'natural') {\r\n let [result] = this.vigencias.filter(res => res.id == anos);\r\n this.resultado = Math.trunc(result.precio + (result.precio * (this.tipodis.iva / 100)));\r\n\r\n this.logger.log(\"result\", result)\r\n this.logger.log(\"resultado\", this.resultado)\r\n\r\n if (this.formaForm2.get('anos')!.value > 0) {\r\n this.desactiva = false;\r\n }\r\n this.tipodis = Object.assign(this.tipodis, {\r\n anos: anos,\r\n costo: this.resultado,\r\n costoBase: Math.trunc(result.precio)\r\n })\r\n let usuario = this.ssps.person;\r\n Object.assign(usuario, this.tipodis);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(usuario));\r\n this.formaForm2.get('anos')!.updateValueAndValidity()\r\n }\r\n //si es juridico\r\n if (this.ssps.typePerson == 'juridica') {\r\n let [result] = this.vigencias.filter(res => res.id == anos);\r\n let valorxcantidad: any = result.precio * cantidad\r\n this.resultado = Math.trunc(valorxcantidad + (valorxcantidad * (this.tipodis.iva / 100)));\r\n this.tipodis = Object.assign(this.tipodis, {\r\n anos: anos,\r\n costo: this.resultado,\r\n costoBase: Math.trunc(result.precio * cantidad)\r\n })\r\n if (this.formaForm2.get('anos')!.value > 0) {\r\n this.desactiva = false;\r\n }\r\n let usuario = this.ssps.person;\r\n Object.assign(usuario, this.tipodis);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(usuario));\r\n this.formaForm2.get('anos')!.updateValueAndValidity()\r\n }\r\n if (this.show)\r\n this.showresumB()\r\n\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10' && this.usoCertificado.descripcion === \"\") {\r\n this.desactiva = true;\r\n }\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10' && this.usoCertificado.descripcion.toLowerCase() === \"otros\"\r\n && this.usoCertificado.otro === \"\") {\r\n this.desactiva = true;\r\n }\r\n if (this.tipodis.dispo.toLowerCase() === \"reúso token físico\") {\r\n this.desactiva = true;\r\n }\r\n }\r\n\r\n //TODO:implementacion cambio de precios\r\n changePrices(data: any) {\r\n this.logger.log(\"changePrices value\", data.target.value)\r\n this.logger.log(\"changePrices selectedIndex\", data.target.selectedIndex)\r\n let result = data.target.selectedIndex;\r\n this.usuario.dispo = this.preciosd[result].nombre;\r\n this.usuario.idispo = this.preciosd[result].id;\r\n this.usuario.iva = this.preciosd[result].iva\r\n this.usuario.ica = 0\r\n this.vigencias = this.preciosd[result].vigencia;\r\n this.usuario.terminosReuso = false\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n let [resultPrecio] = this.vigencias.filter(res => res.anos == this.usuario.anos);\r\n this.tipodis = {\r\n idispo: this.preciosd[result].id,\r\n dispo: this.preciosd[result].nombre,\r\n iva: this.preciosd[result].iva,\r\n ica: 0,\r\n costo: resultPrecio.precio + (resultPrecio.precio * (this.preciosd[result].iva / 100)),\r\n costoBase: resultPrecio.precio\r\n }\r\n let usuario = this.ssps.person;\r\n Object.assign(usuario, this.tipodis);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(usuario));\r\n this.resumePrices(this.usuario.anos)\r\n this.showresum()\r\n if (this.tipodis.dispo.toLowerCase() === \"reúso token físico\") {\r\n this.desactiva = true;\r\n }\r\n else {\r\n this.desactiva = false;\r\n }\r\n }\r\n\r\n //TODO:vlidaciones de compras\r\n resumePrices(cost: any) {\r\n let anos: number = parseInt(cost);\r\n let [result] = this.vigencias.filter(res => res.id == anos);\r\n this.resultado = Math.trunc(result.precio + (result.precio * (this.tipodis.iva / 100)))\r\n this.usuario.costo = Math.trunc(this.resultado)\r\n this.usuario.costoBase = Math.trunc(result.precio)\r\n this.usuario.ica = 0\r\n this.usuario.reteiva = 0\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n }\r\n\r\n OnChanges() {\r\n this.formaForm2.valueChanges.subscribe(valores => {\r\n /*las validaciones de persona juridica*/\r\n this.formaForm2.get('cantidad')!.setValidators([Validators.required,\r\n Validators.min(1),\r\n Validators.max(99)]);\r\n let anos = valores.anos;\r\n /*implementacion de validaciones numeros campo numero*/\r\n if (this.formaForm2.get('cantidad')!.value > 99 || this.formaForm2.get('cantidad')!.value === null) {\r\n this.desactiva = true;\r\n this.errorcantidad = true;\r\n\r\n } else { this.errorcantidad = false; }\r\n if (!anos || (typeof anos === 'number' && anos == 0)) {\r\n this.formaForm2.patchValue(\r\n {\r\n filtros: null,\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n /*cambio de estado de boton siguiente*/\r\n if (this.formaForm2.valid) { this.desactiva = false; }\r\n\r\n if (anos > 1) {\r\n\r\n this.tiempo = 'años';\r\n\r\n } else if (anos == 1) {\r\n this.tiempo = 'año';\r\n }\r\n let otroUso = valores.otroUso\r\n if (this.usoCertificado.descripcion.toLowerCase() === \"otros\") {\r\n this.usoCertificado.otro = otroUso\r\n if (this.formaForm2.get('otroUso')!.invalid) {\r\n this.formaForm2.get('otroUso')!.markAllAsTouched();\r\n this.desactiva = true\r\n }\r\n else {\r\n this.desactiva = false\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n *asignacion de valores vista compra \r\n */\r\n verifica() {\r\n this.logger.log(\"logger resultado\", this.resultado)\r\n this.logger.log(\"elementose resultado\", this.elementose)\r\n if (this.resultado > 0) {\r\n let { cantidad, anos } = this.formaForm2.value;\r\n let datos = {\r\n cantidad: cantidad,\r\n anos: this.usuario.esReposicion ? this.usuario.anos : anos,\r\n politica: this.elementose ? this.elementose.politica : this.usuario.politica,\r\n costo: this.resultado,\r\n proceso: 0,\r\n fechaCreacion: this.datepipe.transform(new Date(), \"dd/MM/yyyy\")!,\r\n uso: this.usoCertificado\r\n }\r\n this.usuario = this.ssps.person;\r\n Object.assign(this.usuario, datos);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.desactiva = false;\r\n\r\n if (this.usoCertificado.descripcion.toLowerCase() === \"otros\" &&\r\n (this.usoCertificado.otro === \"\" || this.usoCertificado.otro === undefined)) {\r\n this.desactiva = true\r\n }\r\n\r\n if (this.usoCertificado.descripcion.toLowerCase() === \"otros\" &&\r\n (this.usoCertificado.otro === \"\" || this.usoCertificado.otro === undefined)) {\r\n this.desactiva = true\r\n }\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10') {\r\n if (this.usoCertificado === null || this.usoCertificado === undefined ||\r\n this.usoCertificado.id === 0 || this.usoCertificado.id === null ||\r\n this.usoCertificado.id === undefined) {\r\n this.desactiva = true\r\n }\r\n }\r\n }\r\n }\r\n\r\n /*deshabilita botton siguiente*/\r\n estados() {\r\n this.logger.log(\"estados\", this.contador)\r\n if ((this.contador === 2 && !this.show) || this.contador == 4) {\r\n this.showResume()\r\n }\r\n else {\r\n this.desactiva = true;\r\n this.logger.log(\"this.directivesActive\", this.directivesActive.length)\r\n if (this.contador === 0 && this.directivesActive.length === 0) {\r\n return;\r\n }\r\n if (this.contador === 0) {\r\n this.precios()\r\n }\r\n if (this.contador >= 0) {\r\n this.anterior = false;\r\n }\r\n this.contador = this.contador + 1;\r\n if (this.contador == 4) {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n this.closeFinal();\r\n this.componentService.emitircambio(\"showmenu\");\r\n this.componentService.emitircambio(\"infoperso\");\r\n this.componentService.emitircambio(\"mostrarBarra\");\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n /*ruteo deacuerdo al tipo de persona*/\r\n if (this.usuario.cliente == \"natural\") {\r\n this.router.navigate(['/flujo/infobasi']);\r\n } else if (this.usuario.cliente == \"juridica\") {\r\n this.router.navigate(['/flujo/empresa']);\r\n }\r\n }, 3000);\r\n }\r\n if (this.contador === 3) {\r\n this.formaForm2.get('dispositivo')!.setValue(null);\r\n }\r\n if (this.contador === 2) {\r\n this.bindFieldsTyped()\r\n }\r\n if (this.contador === 1 && this.usuario !== undefined &&\r\n this.formaForm.get('checks')!.value !== '') {\r\n var existPol = this.directivesActive.filter(d => d.id === this.usuario.idpoli)\r\n if (existPol.length > 0) {\r\n this.desactiva = false\r\n }\r\n else {\r\n this.formaForm.get('checks')!.setValue(\"\")\r\n }\r\n }\r\n this.carousel.to(this.contador);\r\n }\r\n if (this.usoCertificado.descripcion.toLowerCase() === \"otros\" &&\r\n (this.usoCertificado.otro === \"\" || this.usoCertificado.otro === undefined)) {\r\n this.desactiva = true\r\n }\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10') {\r\n if (this.usoCertificado === null || this.usoCertificado === undefined ||\r\n this.usoCertificado.id === 0 || this.usoCertificado.id === null ||\r\n this.usoCertificado.id === undefined) {\r\n this.desactiva = true\r\n }\r\n }\r\n }\r\n\r\n /*valida estados del boton anterior*/\r\n anteriorFlujo() {\r\n this.logger.log(\"anteriorFlujo\", this.contador)\r\n this.desactiva = true;\r\n this.contador = this.contador - 1;\r\n this.usoCertificado = { id: 0, descripcion: \"\", otro: \"\" }\r\n if (this.validarReuso && this.contador == 2) {\r\n this.contador = 4;\r\n this.carousel.to(4);\r\n this.desactiva = false;\r\n }\r\n else if (this.contador > 1 && this.ssps.compras.length > 0 && !this.newstatus) {\r\n this.newstatus = false;\r\n this.carousel.to(1);\r\n this.contador = 1;\r\n this.mostrarBotones = false\r\n }\r\n else {\r\n this.mostrarBotones = true\r\n if (this.contador == -1) {\r\n this.alert.closesSsps();\r\n if (this.tipoCliente === \"natural\") {\r\n this.alert.showFiels()\r\n }\r\n else {\r\n this.alert.showSolicitante();\r\n }\r\n }\r\n else if (this.contador == 0 && this.ssps.compras.length > 0 && !this.newstatus) {\r\n this.alert.closesSsps();\r\n if (this.tipoCliente === \"natural\") {\r\n this.alert.showFiels()\r\n }\r\n else {\r\n this.alert.showSolicitante();\r\n }\r\n }\r\n else if (this.contador == 0) {\r\n this.getpoliticas();\r\n this.desactiva = this.directivesActive.length === 0\r\n }\r\n this.bindFieldsTyped()\r\n this.carousel.to(this.contador);\r\n }\r\n }\r\n\r\n bindFieldsTyped() {\r\n if (this.usuario !== undefined && this.usuario.idispo !== undefined) {\r\n this.desactiva = false;\r\n if (this.usuario.idispo > this.preciosd.length) {\r\n this.desactiva = true;\r\n this.formaForm2.get('dispositivo')!.setValue(undefined);\r\n this.formaForm2.get('anos')!.setValue(undefined);\r\n }\r\n else {\r\n this.logger.log(\"set dispositivo\", this.usuario.idispo.toString())\r\n this.formaForm2.get('dispositivo')!.setValue(this.usuario.idispo.toString());\r\n //this.formaForm2.get('anos')!.setValue(this.usuario.anos);\r\n }\r\n\r\n if (this.elementose === undefined || !this.elementose) {\r\n this.elementose = {\r\n id: -1,\r\n politica: ''\r\n }\r\n }\r\n this.elementose.id = this.usuario.idpoli\r\n this.elementose.politica = this.usuario.politica\r\n this.usuario.idispo = this.usuario.idispo\r\n this.show = false\r\n this.changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n /*muestra alerta minimo dispositivo*/\r\n dispositivo() {\r\n if (this.formaForm2.get('dispositivo')!.value == \"\" && this.formaForm2.invalid) {\r\n this.check = true;\r\n } else {\r\n this.check = false;\r\n }\r\n }\r\n\r\n\r\n ngsubmit() {\r\n this.dispositivo();\r\n }\r\n\r\n preguntas() {\r\n /* trae datos de consulta de json de pruebas en un metodo get*/\r\n this.ssps.getpreguntas(this.ssps.typePerson)\r\n .subscribe((res: any) => {\r\n this.logger.log(\"preguntas\", res)\r\n this.questions.listadop = res;\r\n });\r\n\r\n /*implementacion de desafce de tiempo para carga de alertas*/\r\n setTimeout(() => {\r\n var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"tooltip\"]'))\r\n var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {\r\n return new bootstrap.Tooltip(tooltipTriggerEl)\r\n })\r\n\r\n }, 500);\r\n }\r\n\r\n /*consultas preguntas historial*/\r\n\r\n\r\n /*consultas preguntas historial*/\r\n getpoliticas() {\r\n this.ssps.politicas()\r\n .subscribe((res: any) => {\r\n this.questions.directivaListado = res;\r\n });\r\n\r\n }\r\n\r\n /*validacioned de los primeros radios*/\r\n radios($event: any, index: number) {\r\n this.logger.log(\"radios\", $event.target.value)\r\n this.logger.log(\"radios-1\", index)\r\n let option = $event.target.value;\r\n if (index === 0) {\r\n this.questions.listadop.map(m => m.respuesta = '')\r\n }\r\n this.questions.questionsPolices(index, option, this.ssps.typePerson)\r\n\r\n this.desactiva = this.directivesActive.length === 0\r\n }\r\n\r\n\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n camposvalidos2(campo: any) {\r\n return this.formaForm2.controls[campo].errors && this.formaForm2.controls[campo].touched;\r\n }\r\n\r\n //implementacion de validacion de comas\r\n noPuntoComa(event: any) {\r\n\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: any) {\r\n\r\n this.quitar = numero.replace(/^0+/, '');\r\n }\r\n\r\n\r\n /*implementacion de modal ssps*/\r\n close() {\r\n if (this.vistaVideo) {\r\n this.cancelarVideoReuso()\r\n }\r\n else {\r\n this.alert.closesSsps();\r\n let externalUrl = `${env.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n }\r\n\r\n //TODO:cierra modal en la parte final de la compra\r\n closeFinal() {\r\n this.alert.closesSsps();\r\n }\r\n\r\n //TODO:cambiar a la ultima pestaña del corrito de compra\r\n showCart(index: number) {\r\n this.mostrarBotones = true\r\n //Guardar datos de usuario, certificado, contacto tecnico\r\n if (this.tipoCliente === \"natural\") {\r\n this.ssps.saveBuyData(this.ssps.compras[index], false);\r\n }\r\n else {\r\n this.ssps.saveBuyDataPJ(this.ssps.compras[index], false);\r\n this.ssps.saveSolicitanteDataPJ(this.ssps.compras[index]);\r\n }\r\n\r\n this.ssps.saveEntregaData(this.ssps.compras[index]);\r\n this.ssps.saveFacturacionData(this.ssps.compras[index]);\r\n this.usuario = this.ssps.person;\r\n this.usuario.esReposicion = false;\r\n let [mecEntrega] = this.preciosd.filter((res) => { return res.nombre.toLowerCase() == this.usuario.dispo.toLowerCase(); })\r\n this.vigencias = this.preciosd[mecEntrega.id].vigencia;\r\n let [result] = this.vigencias.filter(res => res.anos == this.usuario.anos);\r\n this.tipodis = {\r\n idispo: mecEntrega.id,\r\n dispo: mecEntrega.nombre,\r\n iva: Math.trunc(mecEntrega.iva),\r\n ica: 0,\r\n costo: Math.trunc(result.precio + (result.precio * (mecEntrega.iva / 100))),\r\n costoBase: Math.trunc(result.precio)\r\n }\r\n Object.assign(this.usuario, this.tipodis);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.resultado = Math.trunc(this.ssps.person.costo);\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10') {\r\n this.logger.log(\"validacion uso \" + this.tipodis.dispo, this.usuario.uso)\r\n this.preciosd = this.preciosd.filter((res) => res.nombre === 'PKCS#10');\r\n if (this.usuario.uso === null || this.usuario.uso === undefined ||\r\n this.usuario.uso.id === 0 || this.usuario.uso.id === null || this.usuario.uso.id === undefined) {\r\n this.logger.log(\"validacion uso no valido \" + this.tipodis.dispo, this.usuario.uso)\r\n this.formaForm2.get('uso')!.setValue(\"\")\r\n this.formaForm2.get('uso')!.setValidators([Validators.required]);\r\n this.formaForm2.get('uso')!.updateValueAndValidity()\r\n this.carousel.to(2);\r\n this.show = false;\r\n this.desactiva = true;\r\n this.contador = 2;\r\n this.newstatus = false;\r\n }\r\n else {\r\n this.carousel.to(3);\r\n this.show = true;\r\n this.desactiva = false;\r\n this.usoCertificado = this.usuario.uso\r\n this.contador = this.contador + 2;\r\n }\r\n }\r\n else {\r\n this.preciosd = this.preciosd.filter((res) => { return !(res.nombre == 'PKCS#10'); })\r\n // if (this.tipodis.dispo.toLowerCase().includes(\"token físico\")) {\r\n // this.carousel.to(4);\r\n // this.idCarrouselSeleccionado = 4\r\n // this.contador = 4;\r\n // this.resultado = 0;\r\n // this.validarReuso = true\r\n // this.anosReusoSeleccion = 0\r\n // }\r\n // else {\r\n this.carousel.to(3);\r\n this.show = true;\r\n this.desactiva = false;\r\n this.contador = this.contador + 2;\r\n //}\r\n }\r\n\r\n this.newstatus = false;\r\n this.saveEmptyDataStorage = false\r\n this.elementose = {\r\n id: this.usuario.idpoli,\r\n politica: this.usuario.politica\r\n }\r\n\r\n this.formaForm2.get('cantidad')!.setValue(this.usuario.cantidad ?? '1');\r\n this.formaForm2.get('anos')!.setValue(this.usuario.anos);\r\n }\r\n\r\n\r\n showCartReposicion(index: number) {\r\n this.mostrarBotones = true\r\n //Guardar datos de usuario, certificado, contacto tecnico\r\n if (this.tipoCliente === \"natural\") {\r\n this.ssps.saveBuyData(this.ssps.compras[index], true);\r\n }\r\n else {\r\n this.ssps.saveBuyDataPJ(this.ssps.compras[index], true);\r\n this.ssps.saveSolicitanteDataPJ(this.ssps.compras[index]);\r\n }\r\n this.ssps.saveEntregaData(this.ssps.reposiciones[index]);\r\n this.ssps.saveFacturacionData(this.ssps.reposiciones[index]);\r\n this.usuario = this.ssps.person;\r\n this.usuario.esReposicion = true;\r\n let [mecEntrega] = this.preciosReposicion.filter((res) => { return res.nombre.toLowerCase() == this.usuario.dispo.toLowerCase(); })\r\n this.vigencias = this.preciosReposicion[mecEntrega.id].vigencia;\r\n let anosAprox = +this.usuario.anos <= 365 ? 1 : 2\r\n let [result] = this.vigencias.filter(res => res.anos == anosAprox);\r\n //Validar lo de los precios\r\n this.tipodis = {\r\n idispo: mecEntrega.id,\r\n dispo: mecEntrega.nombre,\r\n iva: mecEntrega.iva,\r\n ica: 0,\r\n costo: result.precio + (result.precio * (mecEntrega.iva / 100)),\r\n costoBase: result.precio\r\n }\r\n Object.assign(this.usuario, this.tipodis);\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\r\n this.formaForm2.get('cantidad')!.setValue(this.usuario.cantidad ?? '1');\r\n this.formaForm2.get('anos')!.setValue(anosAprox);\r\n this.resultado = Math.trunc(this.usuario.costo);\r\n\r\n if (this.tipodis.dispo.toLowerCase() === 'pkcs#10') {\r\n this.logger.log(\"validacion uso \" + this.tipodis.dispo, this.usuario.uso)\r\n if (this.usuario.uso === null || this.usuario.uso === undefined ||\r\n this.usuario.uso.id === 0 || this.usuario.uso.id === null || this.usuario.uso.id === undefined) {\r\n this.logger.log(\"validacion uso no valido \" + this.tipodis.dispo, this.usuario.uso)\r\n this.preciosd = this.preciosd.filter((res) => res.nombre === 'PKCS#10');\r\n this.formaForm2.get('uso')!.setValue(\"\")\r\n this.formaForm2.get('uso')!.setValidators([Validators.required]);\r\n this.formaForm2.get('uso')!.updateValueAndValidity()\r\n this.carousel.to(2);\r\n this.show = false;\r\n this.desactiva = true;\r\n this.contador = 2;\r\n this.newstatus = false;\r\n }\r\n else {\r\n this.carousel.to(3);\r\n this.show = true;\r\n this.desactiva = false;\r\n this.usoCertificado = this.usuario.uso\r\n this.contador = this.contador + 2;\r\n }\r\n }\r\n else {\r\n this.preciosd = this.preciosd.filter((res) => { return !(res.nombre == 'PKCS#10'); })\r\n // if (this.tipodis.dispo.toLowerCase().includes(\"token físico\")) {\r\n // this.carousel.to(4);\r\n // this.idCarrouselSeleccionado = 4\r\n // this.contador = 2;\r\n // this.resultado = 0;\r\n // this.anosReusoSeleccion = 0\r\n // }\r\n // else {\r\n this.carousel.to(3);\r\n this.show = true;\r\n this.desactiva = false;\r\n this.contador = this.contador + 2;\r\n //}\r\n }\r\n\r\n this.newstatus = false;\r\n this.saveEmptyDataStorage = false\r\n this.elementose = {\r\n id: this.usuario.idpoli,\r\n politica: this.usuario.politica\r\n }\r\n this.usoCertificado = this.usuario.uso\r\n setTimeout(() => {\r\n this.tiempo = \"días\"\r\n }, 500);\r\n\r\n }\r\n\r\n showReposiciones() {\r\n if (this.mostrarReposiciones) {\r\n this.compras = this.ssps.compras.map((historico: any) => ({\r\n fecha: historico.ordenPedidoInfo.fechaEntrega,\r\n proyecto: historico.ordenPedidoInfo.nombreProyecto,\r\n tipo: historico.solicitantes[0].detallesCertificado.mecanismoEntrega,\r\n politica: historico.solicitantes[0].detallesCertificado.nombrePolitica\r\n })).slice(0, 5);\r\n this.mostrarReposiciones = false\r\n }\r\n else {\r\n this.compras = this.ssps.reposiciones.map((historico: any) => ({\r\n fecha: historico.ordenPedidoInfo.fechaEntrega,\r\n proyecto: historico.ordenPedidoInfo.nombreProyecto,\r\n tipo: historico.solicitantes[0].detallesCertificado.mecanismoEntrega,\r\n politica: historico.solicitantes[0].detallesCertificado.nombrePolitica\r\n })).slice(0, 5);\r\n this.mostrarReposiciones = true\r\n }\r\n }\r\n\r\n showResume() {\r\n this.carousel.to(3);\r\n this.show = true;\r\n this.desactiva = false;\r\n this.contador = 3;\r\n }\r\n\r\n //TODO:reversa al tap 0 cuendo quiere volver a las preguntas si quiere otro producto\r\n showNewProccess() {\r\n this.mostrarBotones = true\r\n this.carousel.to(0);\r\n this.newstatus = true;\r\n this.resultado = 0\r\n this.contador = 0;\r\n this.show = false;\r\n this.vigencias = []\r\n }\r\n\r\n\r\n //TODO:muestra elementosA\r\n showresum() {\r\n this.showresumeA = !this.showresumeA;\r\n }\r\n\r\n //TODO:muestra elementosB\r\n showresumB() {\r\n this.showresumeB = !this.showresumeB;\r\n }\r\n\r\n intentarPersonaSugerida() {\r\n this.anteriorFlujo()\r\n this.ssps.saveLocalStorage('tipoClienteSugerido', this.tipoClienteSugerido);\r\n }\r\n\r\n cambioUso(element: any) {\r\n this.logger.log(\"cambioUso\", element)\r\n if (+element.value > 0) {\r\n this.usoCertificado = this.usosCertificados.find(f => +f.id === +element.value)\r\n const control = this.formaForm2.get('otroUso');\r\n this.logger.log(\"cambioUso1\", this.usoCertificado)\r\n if (this.usoCertificado.descripcion.toLowerCase() === \"otros\") {\r\n control!.addValidators([Validators.required, Validators.min(5),\r\n Validators.max(100)]);\r\n control!.updateValueAndValidity();\r\n this.desactiva = true\r\n control!.markAsUntouched()\r\n this.logger.log(\"cambioUso2\", this.usoCertificado)\r\n }\r\n else {\r\n control!.clearValidators();\r\n control!.updateValueAndValidity();\r\n this.desactiva = false\r\n this.logger.log(\"cambioUso3\", this.usoCertificado)\r\n }\r\n }\r\n }\r\n\r\n habilitarVideoReuso(id: any) {\r\n this.vistaVideo = true\r\n this.carousel.to(5);\r\n this.mostrarBotones = false\r\n this.idCarrouselSeleccionado = id\r\n }\r\n\r\n cancelarVideoReuso() {\r\n this.vistaVideo = false\r\n this.carousel.to(this.idCarrouselSeleccionado);\r\n this.mostrarBotones = true\r\n }\r\n\r\n aceptaTerminosReuso($event: any) {\r\n this.desactiva = !$event.target.checked\r\n this.usuario.terminosReuso = $event.target.checked\r\n this.ssps.saveLocalStorage(\"usuario\", JSON.stringify(this.usuario));\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 Te ayudamos a elegir, selecciona la mejor opción para ti.\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
    SINO
    \r\n \r\n {{ pre.pregunta }}\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

    0\">¡A\r\n continuación encuentras los\r\n productos que has comprado\r\n en CERTI!

    \r\n

    0\">¡A continuación\r\n encuentras los\r\n productos que puedes solicitar reposición!

    \r\n

    \r\n Historial de compra\r\n

    \r\n

    \r\n Reposición de certificados\r\n

    \r\n 0 && !newstatus\">\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
    Fecha de entregaPolíticaMecanismo de entrega
    {{ history.fecha }}{{(history.politica | titlecase).replace(\"Pkcs10\", \"PKCS10\") }}{{ history.tipo.replace(\"FISICO\", \"FÍSICO\").replace(\"Fisico\", \"Físico\").replace(\"fisico\",\r\n \"físico\").replace(\"REUSO\", \"reúso\").replace(\"Reuso\", \"Reúso\").replace(\"reuso\", \"reúso\") | uppercase\r\n }}{{ history.tipo.toUpperCase() === \"PKCS#10\" &&\r\n history.uso !== undefined && history.uso !== \"\" ? ' (' + history.uso +')' : ''}}\r\n \r\n Volver\r\n a\r\n adquirir\r\n Pedir reposició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
    No se encontraron compras prevías como {{tipoCliente.toLowerCase() === 'natural' ? 'Persona ' +\r\n tipoCliente : tipoCliente }},\r\n puedes verificar realizando el proceso como {{tipoClienteSugerido.toLowerCase() === 'natural' ?\r\n 'Persona ' + tipoClienteSugerido : tipoClienteSugerido }}\r\n Reintentar\r\n
    \r\n\r\n
    \r\n Quiero pedir reposición de un certificado digital\r\n Quiero volver a adquirir un certificado digital\r\n
    \r\n\r\n
    0 && !newstatus\">\r\n Quiero adquirir otro\r\n tipo de certificado digital\r\n
    \r\n\r\n

    \r\n Políticas sugeridas\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {{poli.politica}}  \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    seleciona un solo elemento

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

    \r\n La opción de persona natural permite solicitar Certificados de\r\n Firma Digital a título personal, aquí podrás solicitar\r\n certificados para personas natural o solicitar el certificado\r\n profesional para solicitantes.\r\n \r\n

    \r\n\r\n

    \r\n Mecanismo de Entrega\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 0\">\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n {{ pre.nombre | titlecase }}\r\n

    \r\n

    \r\n {{ pre.nombre | titlecase }}\r\n

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

    \r\n Vigencia\r\n

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

    \r\n Uso\r\n

    \r\n
    \r\n \r\n \r\n \r\n
    Campo no válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n El campo no puede tener comas\r\n
    \r\n
    \r\n

    Solo se puede ingresar dos dígitos

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

    \r\n

    \r\n Políticas sugeridas:\r\n   {{ elementose?.politica }}\r\n

    \r\n

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

    \r\n

    \r\n Valor subtotal más IVA\r\n   ${{ resultado | currency: 'COP': '' : '1.0-0' }}\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 La opción de persona natural permite solicitar Certificados de\r\n Firma Digital a título personal , aquí podrás solicitar\r\n certificados para personas natural o solicitar el certificado\r\n profesional para solicitantes.\r\n \r\n

    \r\n

    \r\n Detalles de la solicitud\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
    Mecanismo de Entrega{{ usuario.dispo |\r\n titlecase }}{{ usuario.dispo |\r\n uppercase }}\r\n \r\n
    Política{{ usuario.politica | titlecase }}
    Vigencia{{ usuario.anos }} {{ tiempo }}\r\n \r\n
    \r\n \r\n

    \r\n Valor\r\n subtotal más IVA\r\n

    \r\n
    \r\n
    ${{ resultado | currency: 'COP': '' : '1.0-0' }}  \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 ¿Deseas reusar el token físico?\r\n

    \r\n

    \r\n Si aún conservas el dispositivo Token de tu última compra, te ofrecemos el servicio de\r\n reutilización del token físico. De esta manera, podrás continuar utilizando el mismo dispositivo, lo que\r\n agiliza los tiempos de entrega, reducirá el valor del certificado y lo más importante, contribuye al\r\n cuidado del medio ambiente.\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 Valor subtotal más IVA\r\n   ${{ resultado | currency: 'COP': '' : '1.0-0' }}\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 Reúso token físico\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, OnInit, ViewChild, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { LogService } from '../../../domain/servicios/log.service'\r\nimport { urlRequest } from 'src/assets/config/app.conf';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { environment } from 'src/environments/environment';\r\nimport { EBiometricsEnvironment, startFlow } from '@softcol/biometrics';\r\n\r\ndeclare var bootstrap: any;\r\n\r\n@Component({\r\n selector: 'app-validacion-identidad',\r\n templateUrl: './validacion-identidad.component.html',\r\n styleUrls: ['./validacion-identidad.component.css']\r\n})\r\nexport class ValidacionIdentidadComponent implements OnInit {\r\n @ViewChild('inputRefNombres')\r\n inputRefNombres!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefApellidos')\r\n inputRefApellidos!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n @Input() public urlRedireccionFlujoValida: any\r\n @Input() public botonFinalizaIdentidad: any\r\n urlRequest = urlRequest\r\n formaForm!: FormGroup;\r\n solicitudId: any = \"\"\r\n fechaExpDocumento!: any;\r\n statusFechaExpDocumento: boolean = false;\r\n depar: any[] = [];\r\n muni: any[] = [];\r\n munifi: any[] = [];\r\n usuarioValida: any = {\r\n ip: '',\r\n idSolicitudTitular: 0,\r\n tipo: '',\r\n numero: '',\r\n departamento: '',\r\n municipio: '',\r\n nombres: '',\r\n apellidos: '',\r\n correo: '',\r\n celular: '',\r\n fechaExpDocumento: null\r\n };\r\n preguntas: any[] = [];\r\n carousel: any;\r\n ultimaRespuesta = -1\r\n disableSiguiente = true;\r\n respuesta: any = null\r\n actual = 0\r\n maxDate: NgbDateStruct\r\n minDate: NgbDateStruct\r\n tipoValidacion = \"\"\r\n inicioFacial = false\r\n fechaExpDocumentoFormato = \"\"\r\n applicationId: any;\r\n timer: any\r\n facialId = \"\"\r\n callbackEbiometrics = false\r\n\r\n constructor(private fb: FormBuilder,\r\n private changeDetector: ChangeDetectorRef,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n public datepipe: DatePipe,\r\n private logger: LogService,\r\n private el: ElementRef\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required,\r\n // Validators.pattern('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*')\r\n ]],\r\n nombres: ['', [Validators.pattern(\"^[a-zA-Z ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n fechaExpDocumento: ['', [Validators.required]],\r\n apellidos: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-Z ]{2,60}')]],\r\n departamento: [''],\r\n municipio: [''],\r\n }, { validators: [this.componentesService.codigonit('tipo', 'numero')] });\r\n this.setOnChangesInputs()\r\n var actualFecha = new Date();\r\n this.maxDate = { year: actualFecha.getFullYear(), month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n this.minDate = { year: actualFecha.getFullYear() - 100, month: actualFecha.getMonth() + 1, day: actualFecha.getDate() }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.logger.log(\"tipoValidacion\", this.tipoValidacion)\r\n this.alert.closesSpiner()\r\n this.ssps.obtenerIpValor()\r\n this.logger.log(\"validacionIdentidad-redireccion\", this.urlRedireccionFlujoValida)\r\n //this.departamentos()\r\n if (this.ssps.getLocalStorage(\"solicitudId\")) {\r\n this.solicitudId = JSON.parse(this.ssps.getLocalStorage(\"solicitudId\")!)\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n this.usuarioValida.ip = usuario.ip\r\n this.usuarioValida.idSolicitudTitular = usuario.idTitular\r\n this.fechaExpDocumento = usuario.fechaExpDocumento !== undefined &&\r\n usuario.fechaExpDocumento !== null ? usuario.fechaExpDocumento : \"\"\r\n this.usuarioValida.correo = usuario.correo\r\n this.usuarioValida.celular = usuario.celular\r\n this.usuarioValida.tipo = usuario.tipo\r\n this.usuarioValida.numero = usuario.numero\r\n this.usuarioValida.nombres = (usuario.primerNombre ?? '') + (usuario.segundoNombre !== null &&\r\n usuario.segundoNombre !== undefined && usuario.segundoNombre !== \"\" ?\r\n \" \" + usuario.segundoNombre : \"\")\r\n this.usuarioValida.apellidos = (usuario.primerApellido ?? '') + (usuario.segundoApellido !== null &&\r\n usuario.segundoApellido !== undefined && usuario.segundoApellido !== \"\" ?\r\n \" \" + usuario.segundoApellido : \"\")\r\n\r\n if (usuario.identidadValidada === true) {\r\n this.ssps.saveLocalStorage(\"validaIdentidad\", \"true\")\r\n this.alert.showError(\"Validación de identidad realizada exitosamente.\", true, \"¡Validación de identidad exitosa!\",\r\n true, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n }\r\n if (this.ssps.getLocalStorage(\"tipocliente\") === \"natural\") {\r\n this.usuarioValida.tipo = usuario.tipo\r\n this.usuarioValida.nombres = (usuario.primerNombre ?? '') + (usuario.segundoNombre !== null &&\r\n usuario.segundoNombre !== undefined && usuario.segundoNombre !== \"\" ?\r\n \" \" + usuario.segundoNombre : \"\")\r\n this.usuarioValida.apellidos = (usuario.primerApellido ?? '') + (usuario.segundoApellido !== null &&\r\n usuario.segundoApellido !== undefined && usuario.segundoApellido !== \"\" ?\r\n \" \" + usuario.segundoApellido : \"\")\r\n\r\n\r\n this.fechaExpDocumento = usuario.fechaExpDocumento !== undefined &&\r\n usuario.fechaExpDocumento !== null ? usuario.fechaExpDocumento : \"\"\r\n }\r\n else if (this.ssps.getLocalStorage(\"tipocliente\") === \"juridica\") {\r\n var solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n this.usuarioValida.tipo = solicitante.tipo\r\n this.usuarioValida.numero = solicitante.numero\r\n this.usuarioValida.nombres = (solicitante.primerNombre ?? '') + (solicitante.segundoNombre !== null &&\r\n solicitante.segundoNombre !== undefined && solicitante.segundoNombre !== \"\" ?\r\n \" \" + solicitante.segundoNombre : \"\")\r\n this.usuarioValida.apellidos = (solicitante.primerApellido ?? '') + (solicitante.segundoApellido !== null &&\r\n solicitante.segundoApellido !== undefined && solicitante.segundoApellido !== \"\" ?\r\n \" \" + solicitante.segundoApellido : \"\")\r\n this.fechaExpDocumento = solicitante.fechaExpDocumento !== undefined &&\r\n solicitante.fechaExpDocumento !== null ? solicitante.fechaExpDocumento : \"\"\r\n }\r\n this.mapearDatosForm()\r\n this.logger.log(\"tipoValidacion\", this.tipoValidacion)\r\n }\r\n else {\r\n this.alert.showError(\"Datos de validación incorrectos\", true, null, false, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n }\r\n //this.OnChanges()\r\n }\r\n\r\n mapearDatosForm() {\r\n this.formaForm.controls['tipo'].disable({ onlySelf: true });\r\n this.formaForm.controls['numero'].disable({ onlySelf: true });\r\n this.formaForm.controls['nombres'].disable({ onlySelf: true });\r\n this.formaForm.controls['apellidos'].disable({ onlySelf: true });\r\n }\r\n\r\n mapearAllDatosForm() {\r\n this.formaForm.controls['tipo'].disable({ onlySelf: true });\r\n this.formaForm.controls['numero'].disable({ onlySelf: true });\r\n this.formaForm.controls['nombres'].disable({ onlySelf: true });\r\n this.formaForm.controls['apellidos'].disable({ onlySelf: true });\r\n this.formaForm.controls['fechaExpDocumento'].disable({ onlySelf: true });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"nombres\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNombres) {\r\n const elRef = this.inputRefNombres?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"nombres\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"apellidos\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefApellidos) {\r\n const elRef = this.inputRefApellidos?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"apellidos\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero) {\r\n const elRef = this.inputRefNumero?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n this.logger.log(key, this.formaForm.controls[key].errors)\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n //this.estados= true;\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n this.consultarPreguntas(this.usuarioValida.nombres, this.usuarioValida.apellidos, this.usuarioValida.tipo,\r\n this.usuarioValida.numero, this.fechaExpDocumento, this.usuarioValida.municipio,\r\n this.usuarioValida.departamento, this.usuarioValida.ip, this.usuarioValida.idSolicitudTitular);\r\n }\r\n }\r\n\r\n ngsubmitFacial() {\r\n this.logger.log(\"ngsubmitFacial\", this.fechaExpDocumento)\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n return;\r\n }\r\n else {\r\n let { fechaExpDocumento } = this.formaForm.value;\r\n this.usuarioValida.fechaExpDocumento = fechaExpDocumento\r\n var arrayFechaExp = fechaExpDocumento.split(\"/\")\r\n this.fechaExpDocumentoFormato = arrayFechaExp[2] + \"-\" + arrayFechaExp[1] + \"-\" + arrayFechaExp[0]\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n //Validar intentos primero\r\n this.consultarIntentos(true)\r\n }\r\n }\r\n\r\n iniciarFlujoValidacionFacial() {\r\n this.inicioFacial = true\r\n startFlow({\r\n target: 'ebm',\r\n account: environment.accountValidacionFacial,\r\n environment: environment.production ? EBiometricsEnvironment.production :\r\n EBiometricsEnvironment.development,\r\n params: {\r\n name: this.usuarioValida.nombres,\r\n lastName: this.usuarioValida.apellidos,\r\n documentType: this.usuarioValida.tipo,\r\n documentNumber: +this.usuarioValida.numero,\r\n documentDateOfIssue: this.fechaExpDocumentoFormato,\r\n countryCode: '+57',\r\n phone: +this.usuarioValida.celular,\r\n email: this.usuarioValida.correo,\r\n },\r\n onError: (err) => {\r\n clearInterval(this.timer);\r\n this.callbackEbiometrics = true\r\n this.logger.error(\"onError startFlow\", err)\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n this.guardarIntentoFacial(JSON.stringify(err.message), false)\r\n let errMessage = JSON.parse(JSON.stringify(err.message))\r\n var message = err.message\r\n if (errMessage.code !== undefined && errMessage.code !== null) {\r\n message = errMessage.code\r\n }\r\n this.alert.showError(message, true, \"¡Error validación de identidad!\", false,\r\n this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n this.inicioFacial = false\r\n },\r\n onSuccess: (data) => {\r\n clearInterval(this.timer);\r\n this.callbackEbiometrics = true\r\n this.logger.error(\"onSuccess startFlow\", data)\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n this.guardarIntentoFacial(data.id, true)\r\n },\r\n onRetry: () => {\r\n this.logger.error(\"onRetry\", \"startFlow\")\r\n },\r\n });\r\n }\r\n\r\n consultarPreguntas(nombres: string, apellidos: string, tipo: string, numero: string, fechaExpedicion: string,\r\n municipio: string, departamento: string, ip: string, solicitudTitularId: number) {\r\n this.ssps.preguntasValidacion(nombres, apellidos, tipo, numero, fechaExpedicion,\r\n municipio, departamento, ip, solicitudTitularId)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta preguntas\", res)\r\n this.preguntas = res.preguntas\r\n this.applicationId = res.applicationId\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n this.carousel = new bootstrap.Carousel(this.el.nativeElement.querySelector('#carouselExampleControlsNoTouching'));\r\n this.carousel.to(this.actual);\r\n }, 500);\r\n if (this.ssps.getLocalStorage(\"tipocliente\") === \"natural\") {\r\n var usuario = JSON.parse(this.ssps.getLocalStorage('usuario')!);\r\n usuario.fechaExpDocumento = fechaExpedicion\r\n this.ssps.saveLocalStorage('usuario', JSON.stringify(usuario));\r\n }\r\n else if (this.ssps.getLocalStorage(\"tipocliente\") === \"juridica\") {\r\n var solicitante = JSON.parse(this.ssps.getLocalStorage('solicitante')!);\r\n solicitante.fechaExpDocumento = fechaExpedicion\r\n this.ssps.saveLocalStorage('solicitante', JSON.stringify(solicitante));\r\n }\r\n },\r\n error: (error) => {\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarPreguntas(nombres, apellidos, tipo, numero, fechaExpedicion,\r\n municipio, departamento, ip, solicitudTitularId);\r\n }\r\n else if (error.status === 429 && this.tipoValidacion === \"PREGUNTAS\") {\r\n this.tipoValidacion = \"FACIAL\";\r\n this.inicioFacial = false;\r\n this.alert.closesSpiner()\r\n this.alert.showError(\"No fue posible validar tu identidad por medio de preguntas de seguridad, realiza tu validación de identidad mediante reconocimiento facial.\",\r\n false, \"¡Validación de identidad no exitosa!\", false, this.urlRedireccionFlujoValida,\r\n this.botonFinalizaIdentidad !== null ? this.botonFinalizaIdentidad : \"Aceptar\", false)\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber preguntasValidacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, this.urlRedireccionFlujoValida !== \"\" && this.urlRedireccionFlujoValida !== null, null, false, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n consultarIntentos(iniciarFacial: boolean) {\r\n let data = {\r\n numeroDocumento: this.usuarioValida.numero,\r\n fuente: this.tipoValidacion,\r\n solicitudTitularId: this.usuarioValida.idSolicitudTitular\r\n }\r\n this.ssps.consultarIntentosValidacion(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarIntentosValidacion\", res)\r\n if (iniciarFacial) {\r\n this.iniciarFlujoValidacionFacial()\r\n //Inciar flujo de validación de texto\r\n clearInterval(this.timer);\r\n this.timer = setInterval(() => {\r\n this.validarTagExitosoFacial()\r\n }, 10000);\r\n setTimeout(() => {\r\n this.alert.closesSpiner()\r\n }, 2500);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error) => {\r\n //Si da un codigo de error 429, mostrar alerta y validar si puede pasar al siguiente metodo o no\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.consultarIntentos(iniciarFacial);\r\n }\r\n else if (error.status === 429 && this.tipoValidacion === \"FACIAL\") {\r\n this.tipoValidacion = this.tipoValidacion === \"FACIAL\" ? \"PREGUNTAS\" : \"FACIAL\";\r\n this.inicioFacial = false;\r\n this.alert.closesSpiner()\r\n this.alert.showError(\"No fue posible validar tu identidad por medio de reconocimiento facial, realiza tu validación de identidad mediante preguntas de seguridad.\",\r\n false, \"¡Validación de identidad no exitosa!\", false, this.urlRedireccionFlujoValida, \"Aceptar\", false)\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber preguntasValidacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, this.urlRedireccionFlujoValida !== \"\" && this.urlRedireccionFlujoValida !== null, null, false, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n validarTagExitosoFacial() {\r\n const divebm = document.getElementById(\"ebm\");\r\n var iFrameBody = divebm?.getElementsByTagName(\"iframe\")[0];\r\n if (divebm && iFrameBody) {\r\n if (this.facialId === \"\") {\r\n this.facialId = iFrameBody?.src.substring(iFrameBody?.src.indexOf(\"id=\") + 3)\r\n }\r\n else {\r\n this.consultarEstadoEBiometrics()\r\n }\r\n }\r\n }\r\n\r\n consultarEstadoEBiometrics() {\r\n this.ssps.consultarEstadoEBiometrics(this.facialId)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta consultarEstadoEBiometrics\", res)\r\n if (res.status.value.toLowerCase() === \"complete\" && !this.callbackEbiometrics) {\r\n clearInterval(this.timer)\r\n //Si no ha sido guardado aún la respuesta, entonces guardar la respuesta\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n this.guardarIntentoFacial(this.facialId, true)\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber consultarEstadoEBiometrics', error)\r\n }\r\n })\r\n }\r\n\r\n guardarIntentoFacial(respuestaServicio: any, exitoso: boolean) {\r\n let data = {\r\n numeroDocumento: this.usuarioValida.numero,\r\n fuente: this.tipoValidacion,\r\n solicitudTitularId: this.usuarioValida.idSolicitudTitular,\r\n exitoso: exitoso,\r\n respuesta: respuestaServicio\r\n }\r\n this.ssps.guardarIntento(data)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.callbackEbiometrics = false\r\n this.facialId = \"\"\r\n this.logger.log(\"respuesta guardarIntento\", res)\r\n this.alert.closesSpiner()\r\n if (exitoso) {\r\n this.ssps.saveLocalStorage(\"validaIdentidad\", \"true\")\r\n this.alert.showError(\"¡Validación de identidad exitosa!\", false, \"Proceso exitoso\", true, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n this.inicioFacial = false\r\n }\r\n },\r\n error: (error) => {\r\n this.callbackEbiometrics = false\r\n console.error('Error en subscriber guardarIntento', error)\r\n if ((error.error && error.error.message\r\n && error.error.message.includes(\"timed out\")) ||\r\n (error.message && error.message.includes(\"timed out\"))) {\r\n this.logger.log(\"Error\", \"time out\")\r\n this.guardarIntentoFacial(respuestaServicio, exitoso);\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, true, null, false, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n }\r\n }\r\n })\r\n }\r\n\r\n //TODO:redireciona al home de certicamara\r\n homeNavigate() {\r\n this.alert.closesFiels();\r\n this.alert.showAlertaSalirValidarIdentidad(\"\", false, null, \"form\", this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad)\r\n }\r\n\r\n cerrarModalFacial() {\r\n clearInterval(this.timer)\r\n this.facialId = \"\"\r\n this.alert.closesFiels();\r\n this.alert.showAlertaSalirValidarIdentidad(\"Podrá realizar otro intento de validación de identidad, el día de mañana.\",\r\n true, this.usuarioValida, \"form\", this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad)\r\n }\r\n\r\n fechas(dato: any, campo: any) {\r\n if (dato === undefined || dato === null) return;\r\n let valida = /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/-](?:0?[1-9]|1[0-2])|(?:29|30)[/-](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/-](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/-]0?2[/-](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n let errores: boolean = false;\r\n if (campo === \"fechaExpDocumento\") {\r\n if (valida.test(dato) == false) {\r\n this.statusFechaExpDocumento = true;\r\n } else {\r\n this.statusFechaExpDocumento = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n departamentos() {\r\n this.ssps.departamentos()\r\n .subscribe((res: any) => {\r\n this.muni = res.sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n this.depar = [...new Map(res.map((item: { [x: string]: any; }) => [item['Departamento'], item])).values()].sort((a: any, b: any) => (a.Departamento < b.Departamento ? -1 : 1));\r\n setTimeout(() => {\r\n this.formaForm.get(\"departamento\")!.setValue(this.usuarioValida.departamento, {\r\n emitEvent: true,\r\n emitModelToViewChange: true\r\n });\r\n }, 1000);\r\n });\r\n }\r\n OnChanges() {\r\n this.formaForm.valueChanges.subscribe(valores => {\r\n let valor: number = valores.departamento;\r\n this.munifi = this.muni.filter(function (obj: any, index) {\r\n return obj.codigo_dep == valor;\r\n }).sort((a, b) => (a.Municipio < b.Municipio ? -1 : 1))\r\n });\r\n }\r\n\r\n anteriorPregunta() {\r\n this.logger.log(\"anterior pregunta\", this.preguntas)\r\n this.actual -= 1\r\n this.respuesta = this.preguntas[this.actual].respuestas.filter((f: { seleccionada: any; }) => f.seleccionada)\r\n this.carousel.to(this.actual);\r\n this.preguntas[this.actual].respuestas.map((resp: any, i: any) => {\r\n if (resp.seleccionada === true) {\r\n this.ultimaRespuesta = i\r\n }\r\n return null\r\n });\r\n this.disableSiguiente = false\r\n }\r\n siguientePregunta() {\r\n this.logger.log(\"Siguiente pregunta\", this.respuesta)\r\n if (this.respuesta === null) {\r\n this.logger.log(\"Siguiente pregunta respuesta\", \"Sin responder\")\r\n }\r\n else {\r\n //Colocar todas las respuestas campo seleccionada en false y luego en true la seleccionada\r\n this.respuesta = null\r\n this.actual += 1\r\n this.disableSiguiente = true\r\n this.carousel.to(this.actual);\r\n this.ultimaRespuesta = -1\r\n }\r\n }\r\n\r\n radiosRespuesta($event: any, index: number) {\r\n this.logger.log(\"radiosRespuesta event\", $event.target.value)\r\n this.logger.log(\"radiosRespuesta index\", index)\r\n this.logger.log(\"radiosRespuesta ultimaRespuesta\", this.ultimaRespuesta)\r\n if (this.ultimaRespuesta !== -1) {\r\n this.preguntas[this.actual].respuestas[this.ultimaRespuesta].seleccionada = false\r\n }\r\n this.preguntas[this.actual].respuestas[index].seleccionada = true\r\n this.ultimaRespuesta = index\r\n this.respuesta = this.preguntas[this.actual].respuestas[index]\r\n this.respuesta.seleccionada = true\r\n this.disableSiguiente = false\r\n }\r\n\r\n enviarRespuestas() {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n this.logger.log(\"enviarRespuestas\", this.preguntas)\r\n var respuestaServicio = {\r\n \"preguntas\": this.preguntas,\r\n \"ip\": this.usuarioValida.ip,\r\n \"solicitudTitularId\": this.usuarioValida.idSolicitudTitular,\r\n \"applicationId\": this.applicationId\r\n }\r\n this.ssps.respuestasValidacion(respuestaServicio)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.logger.log(\"respuesta preguntas\", res)\r\n this.alert.closesSpiner()\r\n this.logger.log(\"respuesta this.urlRedireccionFlujoValida\", this.urlRedireccionFlujoValida)\r\n this.logger.log(\"respuesta this.botonFinalizaIdentidad\", this.botonFinalizaIdentidad)\r\n this.ssps.saveLocalStorage(\"validaIdentidad\", \"true\")\r\n this.alert.showError(res.mensaje, true, \"Proceso exitoso\", true, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n this.preguntas = []\r\n this.ultimaRespuesta = -1\r\n this.actual = 0\r\n this.disableSiguiente = true\r\n this.respuesta = null\r\n },\r\n error: (error) => {\r\n console.error('Error en subscriber respuestasValidacion', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.closesSpiner()\r\n this.alert.showError(mensaje, true, \"¡Validación de identidad fallida!\", false, this.urlRedireccionFlujoValida, this.botonFinalizaIdentidad, false)\r\n this.preguntas = []\r\n this.ultimaRespuesta = -1\r\n this.actual = 0\r\n this.disableSiguiente = true\r\n this.respuesta = null\r\n\r\n //Validar si el codigo de error es 429, entonces validar si el tipoValidacion es igual\r\n //al del env mostrar mensaje de error de que no fue posible la validacion\r\n //Sino pasar a validacion facial\r\n }\r\n })\r\n }\r\n\r\n seleccionarTipoValidacion(tipoValidacion: string) {\r\n this.tipoValidacion = tipoValidacion\r\n this.logger.log(\"seleccionarTipoValidacion\", this.usuarioValida)\r\n //Si la fecha de expedidición ya está diligenciada, llamar al ngSubmit correspondiente\r\n if (this.fechaExpDocumento !== \"\" &&\r\n this.fechaExpDocumento !== undefined && this.fechaExpDocumento !== null\r\n ) {\r\n setTimeout(() => {\r\n this.mapearAllDatosForm()\r\n if (tipoValidacion === \"PREGUNTAS\") {\r\n this.logger.log(\"preguntas\", \"ingresa\")\r\n this.ngsubmit()\r\n }\r\n else\r\n this.ngsubmitFacial()\r\n }, 1000);\r\n }\r\n }\r\n}","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n  Completa los siguientes campos\r\n con la\r\n información solicitada.\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Identificación no válido!
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n Fecha de expedición documento no\r\n válida
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Departamento no válido, selecciona una\r\n opción del listado
    \r\n
    \r\n
    \r\n \r\n \r\n
    Municipio no válido, selecciona una opción\r\n del listado
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n ¡Los nombres no son válidos!
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Los apellidos no son válidos!
    \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
    0 && tipoValidacion === 'PREGUNTAS'\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    = s ? '#6eb16e' : 'silver'\">
    \r\n
    \r\n Pregunta {{actual + 1}} de {{preguntas.length}}\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
    {{p+1}}. {{preg.texto}}
    \r\n {{ respuesta.respuesta }}
    \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  Completa los siguientes campos\r\n con la\r\n información solicitada.\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Identificación no válido!
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n Fecha de expedición documento no\r\n válida
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Departamento no válido, selecciona una\r\n opción del listado
    \r\n
    \r\n
    \r\n \r\n \r\n
    Municipio no válido, selecciona una opción\r\n del listado
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n ¡Los nombres no son válidos!
    \r\n
    \r\n
    \r\n \r\n \r\n
    ¡Los apellidos no son válidos!
    \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 X\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n

    Validación de identidad

    \r\n

    Para garantizar la seguridad de tus datos, es fundamental que elijas el\r\n método que prefieras para\r\n confirmar tu identidad. Esta verificación nos ayuda a proteger tu información personal y asegurar\r\n que solo tu tengas acceso a tu certificado de firma digital. Por favor, selecciona el método\r\n mediante el cual deseas realizar este proceso de validación de identidad

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    ","import { Component, Input, OnInit, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\n\r\n@Component({\r\n selector: 'app-persona-j',\r\n templateUrl: './persona-j.component.html',\r\n styleUrls: ['./persona-j.component.css']\r\n})\r\nexport class PersonaJComponent implements OnInit, AfterViewInit {\r\n @ViewChild('inputRefRazonSocial')\r\n inputRefRazonSocial!: { nativeElement: any; };\r\n cheksPolis: boolean = false;\r\n formaForm!: FormGroup;\r\n estados: boolean = false;\r\n estados2: boolean = false;\r\n listas: boolean = true;\r\n mostrar: boolean = false;\r\n rutasActivas: string = '';\r\n comas: boolean = false;\r\n quitar: any;\r\n digito: any = \"\"\r\n\r\n /*validacion de campos y validastors */\r\n constructor(private fb: FormBuilder,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private alert: AlertsService,\r\n private el: ElementRef,\r\n private recaptchaV3Service: ReCaptchaV3Service,\r\n //private googleAnalyticsService: GoogleAnalyticsService\r\n ) {\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [//Validators.required,\r\n // Validators.min(1),\r\n //Validators.max(9999999999),\r\n\r\n ]],\r\n codigo: ['', [\r\n Validators.required,\r\n Validators.min(0),\r\n Validators.max(9),\r\n , Validators.pattern(\"^[0-9]*$\")\r\n ]\r\n ],\r\n razon: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)]],\r\n terminosp: [false, Validators.requiredTrue],\r\n terminost: [false, Validators.requiredTrue],\r\n terminostpro: [false, Validators.requiredTrue],\r\n\r\n }, {\r\n validators: [this.componentesService.minimos('numero'),\r\n this.componentesService.digitoChequeoNumero('numero', 'codigo')]\r\n });\r\n this.setOnChangesInputs()\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.ssps.compras = [];\r\n this.ssps.typePerson = \"\";\r\n this.ssps.obtenerIpValor()\r\n this.formaForm.controls[\"codigo\"]?.disable({ onlySelf: true })\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"razon\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefRazonSocial.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"razon\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (val !== null && val !== undefined && val.length > 6) {\r\n this.digito = this.componentesService.calcularDigitoChequeo(val)\r\n }\r\n else{\r\n this.digito = null\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n /*funcion para validacion de campos formularios*/\r\n\r\n camposvalidos(campo: any) {\r\n return this.formaForm.controls[campo].errors && this.formaForm.controls[campo].touched;\r\n }\r\n\r\n //implementacion de validacion de comas\r\n noPuntoComa(event: any) {\r\n\r\n var e = event || window.event;\r\n var key = e.keyCode || e.which;\r\n\r\n\r\n if (key === 110 || key === 190 || key === 188) {\r\n\r\n this.comas = true;\r\n } else {\r\n this.comas = false;\r\n }\r\n }\r\n\r\n /*quitar numeros ceros a la izquierda*/\r\n quitarceros(numero: string) {\r\n\r\n this.quitar = numero.replace(/^0+/, '');\r\n }\r\n\r\n\r\n /*implementacion eventos modal */\r\n abrirmodal() {\r\n }\r\n\r\n\r\n /**envio de datos y validacion de boton */\r\n ngsubmit() {\r\n this.checks();\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n this.recaptchaV3Service.execute('importantAction')\r\n .subscribe((token: string) => {\r\n this.ssps.validatedCapcha(token)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.code == 200) {\r\n this.estados = true;\r\n let { numero, codigo, razon, terminosp, terminost, terminostpro } = this.formaForm.getRawValue();\r\n \r\n this.ssps.AseptPJ(numero, codigo, razon, terminosp, terminost, terminostpro)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res) {\r\n this.ShowReporterPJ()\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber aceptacion PN', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en la funion de capcha', error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n });\r\n }\r\n\r\n //TODO:\r\n ShowReporterPJ() {\r\n let { numero, razon, codigo } = this.formaForm.getRawValue();\r\n this.ssps.ReportPersonPJ(numero, codigo, razon)\r\n .subscribe({\r\n next: (res: any) => {\r\n let cliente: object = { cliente: 'juridica' };\r\n let valores = this.formaForm.getRawValue();\r\n let uid: object = { uid: this.componentesService.myGuid };\r\n let valoresfi = Object.assign(valores, cliente, uid);\r\n\r\n /*validaciones yredioreaciones a componentes*/\r\n if (res.result === false) {\r\n this.ssps.saveLocalStorage(\"identificacion\", numero);\r\n this.alert.closesFiels();\r\n this.ssps.typePerson = 'juridica';\r\n this.ssps.numero = numero;\r\n this.ssps.person = valoresfi;\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showSolicitante();\r\n //Pedir los datos del solicitante y validar en listas negras, ahí si consultar historico\r\n //this.gethistorial(tipo, numero);\r\n } else {\r\n this.ssps.typePerson = 'juridica';\r\n this.ssps.numero = numero;\r\n this.ssps.person = valoresfi;\r\n this.alert.closesSpiner();\r\n this.alert.showReporter(false);\r\n }\r\n this.ssps.saveLocalStorage('tipocliente', 'juridica');\r\n this.ssps.saveLocalStorage('identificacion', numero);\r\n this.ssps.saveLocalStorage('usuario', JSON.stringify(valoresfi));\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber aceptacion PJ', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n\r\n }\r\n\r\n //TODO:cierra modal;\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*alertas animaciones */\r\n validar() {\r\n return (this.estados) ? 'alert alert-light animate__animated animate__fadeIn animate__faster text-center ' : 'animate__animated animate__fadeOut';\r\n }\r\n\r\n checks() {\r\n let { terminosp, terminost, terminostpro } = this.formaForm.value;\r\n if (terminosp == false || terminost == false || terminostpro == false) {\r\n this.cheksPolis = true;\r\n }\r\n else {\r\n this.cheksPolis = false;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    Número no válido
    \r\n
    El campo no puede tener comas
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    Número de verificación no válido
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    Razón social no puede ser vacio, ni puede tener más de\r\n 60 caracteres
    \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
    ¡Debe aceptar las tres políticas
    \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, ViewChild, ElementRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { PersonPn } from 'src/app/domain/interfaces/personpn.interface';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\n\r\n@Component({\r\n selector: 'app-persona-n',\r\n templateUrl: './persona-n.component.html',\r\n styleUrls: ['./persona-n.component.css']\r\n})\r\nexport class PersonaNComponent implements OnInit {\r\n @ViewChild('inputRefPrimerNombre')\r\n inputRefPrimerNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoNombre')\r\n inputRefSegundoNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefPrimerApellido')\r\n inputRefPrimerApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoApellido')\r\n inputRefSegundoApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n\r\n formaForm!: FormGroup;\r\n estados: boolean = false;\r\n estados2: boolean = false;\r\n listas: boolean = true;\r\n rutasActivas: string = '';\r\n reportes: any;\r\n pasaportes: boolean = false;\r\n cedulas: boolean = true;\r\n cheksPolis: boolean = false;\r\n reCAPTCHAToken: string = \"\";\r\n\r\n constructor(private fb: FormBuilder,\r\n private componentesService: ComponentesService,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n private el: ElementRef,\r\n private recaptchaV3Service: ReCaptchaV3Service\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required,\r\n // Validators.pattern('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*')\r\n ]],\r\n primerNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n segundoNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n primerApellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n segundoApellido: ['', [\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n terminosp: [false, Validators.requiredTrue],\r\n terminost: [false, Validators.requiredTrue],\r\n terminostpro: [false, Validators.requiredTrue]\r\n }, { validators: [this.componentesService.codigonit('tipo', 'numero')] });\r\n this.setOnChangesInputs()\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.ssps.compras = [];\r\n this.ssps.typePerson = \"\";\r\n this.ssps.obtenerIpValor()\r\n //this.onchanges();) \r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"primerNombre\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefPrimerNombre.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"primerNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"segundoNombre\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefSegundoNombre.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"segundoNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"primerApellido\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefPrimerApellido.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"primerApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"segundoApellido\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefSegundoApellido.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"segundoApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefNumero.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:validiaciones de status de formualrio\r\n //Validar cuando el tipo de identificación cambie\r\n onchanges() {\r\n this.formaForm.valueChanges.subscribe({\r\n next: () => {\r\n this.formaForm.controls['numero'].clearValidators()\r\n },\r\n error: () => {\r\n console.error('error en el subscriber de formulario');\r\n },\r\n });\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n this.checks();\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n this.recaptchaV3Service.execute('importantAction')\r\n .subscribe((token: string) => {\r\n this.ssps.validatedCapcha(token)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.code == 200) {\r\n //this.estados= true;\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo, terminosp, terminost, terminostpro } = this.formaForm.value;\r\n this.ssps.AseptN(primerNombre, segundoNombre, primerApellido, segundoApellido, tipo, numero, terminosp, terminost, terminostpro)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res) {\r\n this.showReporter();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber aceptacion PN', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en la funion de capcha', error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n });\r\n }\r\n }\r\n\r\n //TODO:implementacion de listas negras \r\n showReporter() {\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo } = this.formaForm.value;\r\n this.ssps.reportados(primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo)\r\n .subscribe({\r\n next: (res: any) => {\r\n // this.palabra2 = res;\r\n let cliente: object = { cliente: 'natural' };\r\n let valores: PersonPn = this.formaForm.value;\r\n let uid: object = { uid: this.componentesService.myGuid };\r\n let valoresfi: PersonPn = Object.assign(valores, cliente, uid);\r\n valoresfi.primerNombre = valoresfi.primerNombre.toUpperCase();\r\n valoresfi.segundoNombre = valoresfi.segundoNombre.toUpperCase();\r\n valoresfi.primerApellido = valoresfi.primerApellido.toUpperCase();\r\n valoresfi.segundoApellido = valoresfi.segundoApellido.toUpperCase();\r\n let { tipo, numero } = this.formaForm.value;\r\n\r\n /*validaciones yredioreaciones a componentes*/\r\n if (res.result === false) {\r\n this.ssps.typePerson = 'natural';\r\n this.ssps.numero = numero;\r\n this.ssps.person = valoresfi;\r\n /*implementacion inyeccion de roll a objeto*/\r\n this.gethistorial(tipo, numero);\r\n } else {\r\n this.ssps.typePerson = 'natural';\r\n this.ssps.numero = numero;\r\n this.ssps.person = valoresfi;\r\n this.alert.closesSpiner();\r\n this.alert.showReporter(false);\r\n }\r\n this.ssps.saveLocalStorage('tipocliente', 'natural');\r\n this.ssps.saveLocalStorage('identificacion', numero);\r\n this.ssps.saveLocalStorage('usuario', JSON.stringify(valoresfi));\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error(\"reportados error\", error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n }\r\n\r\n /* estilos alertas */\r\n validar() {\r\n return (this.estados) ? 'alert alert-light animate__animated animate__fadeIn animate__faster text-center ' : 'animate__animated animate__fadeOut';\r\n }\r\n\r\n negras() {\r\n return (this.estados2) ? 'alert-malo animate__animated animate__fadeIn animate__faster text-center' : 'animate__animated animate__fadeOut';\r\n }\r\n\r\n //TODO:redireciona al home de certicamara\r\n homeNavigate() {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n\r\n }\r\n\r\n //TODO:implementacion de validaciones de checks\r\n checks() {\r\n let { terminosp, terminost, terminostpro } = this.formaForm.value;\r\n if (terminosp == false || terminost == false || terminostpro == false) {\r\n this.cheksPolis = true;\r\n }\r\n else {\r\n this.cheksPolis = false;\r\n }\r\n }\r\n\r\n //TODO:implementacion de historial\r\n gethistorial(tipoDocumento: string, numeroDocumento: string) {\r\n this.ssps.historial(tipoDocumento, numeroDocumento, \"\", this.ssps.typePerson)\r\n .subscribe({\r\n next: (res: any) => {\r\n // this.compras = res;\r\n this.ssps.compras = res.codigoEstado === 200 ? res.compras : [];\r\n this.alert.closesSpiner();\r\n this.alert.closesFiels();\r\n this.alert.showSssps();\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en subscriber historial PN', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n }\r\n}","
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    ¡Identificación no válido!
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Primer nombre no es válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Segundo nombre no es válido
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Primer apellido no es válido\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Segundo apellido no es válido\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
    ¡Debe aceptar las tres políticas
    \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 { UpperCasePipe } from '@angular/common';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { PersonPn } from 'src/app/domain/interfaces/personpn.interface';\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\n\r\n@Component({\r\n selector: 'app-persona-solicitante',\r\n templateUrl: './persona-solicitante.component.html',\r\n styleUrls: ['./persona-solicitante.component.css']\r\n})\r\nexport class PersonaSolicitanteComponent implements OnInit {\r\n @ViewChild('inputRefPrimerNombre')\r\n inputRefPrimerNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoNombre')\r\n inputRefSegundoNombre!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefPrimerApellido')\r\n inputRefPrimerApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefSegundoApellido')\r\n inputRefSegundoApellido!: { nativeElement: any; };\r\n\r\n @ViewChild('inputRefNumero')\r\n inputRefNumero!: { nativeElement: any; };\r\n\r\n formaForm!: FormGroup;\r\n estados: boolean = false;\r\n estados2: boolean = false;\r\n listas: boolean = true;\r\n rutasActivas: string = '';\r\n reportes: any;\r\n pasaportes: boolean = false;\r\n cedulas: boolean = true;\r\n cheksPolis: boolean = false;\r\n solicitante: any = {}\r\n reCAPTCHAToken: string = \"\";\r\n constructor(private fb: FormBuilder,\r\n private router: Router,\r\n private componentesService: ComponentesService,\r\n private activateRoute: ActivatedRoute,\r\n private ssps: SspsService,\r\n private alert: AlertsService,\r\n private el: ElementRef,\r\n private recaptchaV3Service: ReCaptchaV3Service\r\n ) {\r\n /*validacion de campos validators*/\r\n this.formaForm = this.fb.group({\r\n tipo: ['', [Validators.required]],\r\n numero: ['', [Validators.required,\r\n // Validators.pattern('([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*')\r\n ]],\r\n primerNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n segundoNombre: ['', [Validators.pattern(\"^[a-zA-ZÑ ]{2,60}$\"),\r\n Validators.minLength(2),\r\n Validators.maxLength(60)\r\n ]\r\n ],\r\n primerApellido: ['', [Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n segundoApellido: ['', [\r\n Validators.minLength(2),\r\n Validators.maxLength(60),\r\n Validators.pattern('[a-zA-ZÑ ]{2,60}')]],\r\n terminosp: [false, Validators.requiredTrue],\r\n terminost: [false, Validators.requiredTrue],\r\n terminostpro: [false, Validators.requiredTrue]\r\n }, { validators: [this.componentesService.codigonit('tipo', 'numero')] });\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({ top: 0 });\r\n this.ssps.compras = [];\r\n this.ssps.typePerson = this.ssps.getLocalStorage(\"tipocliente\")!\r\n this.ssps.obtenerIpValor()\r\n if (this.ssps.getLocalStorage(\"solicitante\")) {\r\n this.solicitante = JSON.parse(this.ssps.getLocalStorage(\"solicitante\")!)\r\n }\r\n this.setOnChangesInputs()\r\n }\r\n\r\n setOnChangesInputs() {\r\n this.formaForm.get(\"primerNombre\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefPrimerNombre.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"primerNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"segundoNombre\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefSegundoNombre.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"segundoNombre\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"primerApellido\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefPrimerApellido.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"primerApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"segundoApellido\")!.valueChanges.subscribe(val => {\r\n const elRef = this.inputRefSegundoApellido.nativeElement;\r\n const orVal = elRef.getAttribute('data-model-value') || '';\r\n val = val.replace(orVal.toUpperCase(), orVal);\r\n elRef.setAttribute('data-model-value', val);\r\n elRef.value = val.toUpperCase();\r\n this.formaForm.get(\"segundoApellido\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n });\r\n\r\n this.formaForm.get(\"numero\")!.valueChanges.subscribe(val => {\r\n if (this.inputRefNumero) {\r\n const elRef = this.inputRefNumero?.nativeElement;\r\n const orVal = elRef?.getAttribute('data-model-value') || '';\r\n val = val?.replace(orVal.toUpperCase(), orVal);\r\n elRef?.setAttribute('data-model-value', val);\r\n elRef.value = val?.toUpperCase();\r\n this.formaForm.get(\"numero\")!.setValue(val.toUpperCase(), {\r\n emitEvent: false,\r\n emitModelToViewChange: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* funcion para validacion de campos*/\r\n camposvalidos(campo: any) {\r\n return this.formaForm.get(campo)!.invalid &&\r\n (this.formaForm.get(campo)!.touched || this.formaForm.get(campo)!.dirty);\r\n }\r\n\r\n //TODO:validiaciones de status de formualrio\r\n //Validar cuando el tipo de identificación cambie\r\n onchanges() {\r\n this.formaForm.valueChanges.subscribe({\r\n next: (res: any) => {\r\n this.formaForm.controls['numero'].clearValidators()\r\n },\r\n error: (error) => {\r\n console.error('error en el subscriber de formulario');\r\n },\r\n });\r\n }\r\n\r\n //TODO:cerrar el modal de activo digital\r\n close() {\r\n this.alert.closesSpiner();\r\n }\r\n\r\n /*ingreso y validacion de datos de formulario*/\r\n ngsubmit() {\r\n this.checks();\r\n if (this.formaForm.invalid) {\r\n this.formaForm.markAllAsTouched();\r\n Object.keys(this.formaForm.controls).forEach(key => {\r\n if (this.formaForm.controls[key].errors) {\r\n const invalidControl = this.el.nativeElement.querySelector('[formcontrolname=\"' + key + '\"]');\r\n invalidControl?.focus();\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\");\r\n this.recaptchaV3Service.execute('importantAction')\r\n .subscribe((token: string) => {\r\n this.ssps.validatedCapcha(token)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.code == 200) {\r\n //this.estados= true;\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo, terminosp, terminost, terminostpro } = this.formaForm.value;\r\n this.ssps.AseptN(primerNombre, segundoNombre, primerApellido, segundoApellido, tipo, numero, terminosp, terminost, terminostpro)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res) {\r\n this.showReporter();\r\n }\r\n else {\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showFiels()\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showFiels()\r\n console.error('Error en subscriber aceptacion PN', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n console.error('Error en la funion de capcha', error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n });\r\n }\r\n }\r\n\r\n //TODO:implementacion de listas negras \r\n showReporter() {\r\n let { primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo } = this.formaForm.value;\r\n this.ssps.reportados(primerNombre, segundoNombre, primerApellido, segundoApellido, numero, tipo)\r\n .subscribe({\r\n next: (res: any) => {\r\n let valores: PersonPn = this.formaForm.value;\r\n valores.primerNombre = valores.primerNombre.toUpperCase();\r\n valores.segundoNombre = valores.segundoNombre.toUpperCase();\r\n valores.primerApellido = valores.primerApellido.toUpperCase();\r\n valores.segundoApellido = valores.segundoApellido.toUpperCase();\r\n\r\n /*validaciones yredioreaciones a componentes*/\r\n if (res.result === false) {\r\n this.ssps.saveLocalStorage(\"solicitante\", JSON.stringify(valores))\r\n /*implementacion inyeccion de roll a objeto*/\r\n this.gethistorial();\r\n } else {\r\n this.ssps.saveLocalStorage(\"solicitante\", JSON.stringify(valores))\r\n this.alert.closesSpiner();\r\n this.alert.closesFiels()\r\n this.alert.showFiels()\r\n this.alert.showReporter(false);\r\n }\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showFiels()\r\n console.error(\"reportados error solicitante\", error);\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n },\r\n })\r\n }\r\n\r\n /* estilos alertas */\r\n validar() {\r\n return (this.estados) ? 'alert alert-light animate__animated animate__fadeIn animate__faster text-center ' : 'animate__animated animate__fadeOut';\r\n }\r\n\r\n negras() {\r\n return (this.estados2) ? 'alert-malo animate__animated animate__fadeIn animate__faster text-center' : 'animate__animated animate__fadeOut';\r\n }\r\n\r\n //TODO:redireciona al home de certicamara\r\n cancelar() {\r\n this.alert.closesFiels();\r\n this.alert.showFiels()\r\n }\r\n\r\n //TODO:implementacion de validaciones de checks\r\n checks() {\r\n let { terminosp, terminost, terminostpro } = this.formaForm.value;\r\n if (terminosp == false || terminost == false || terminostpro == false) {\r\n this.cheksPolis = true;\r\n }\r\n else {\r\n this.cheksPolis = false;\r\n }\r\n }\r\n\r\n //TODO:implementacion de historial\r\n gethistorial() {\r\n this.ssps.historial(this.solicitante.tipo, this.solicitante.numero, this.ssps.person.numero + this.ssps.person.codigo, this.ssps.typePerson)\r\n .subscribe({\r\n next: (res: any) => {\r\n this.ssps.compras = res.codigoEstado === 200 ? res.compras : [];\r\n this.alert.closesSpiner();\r\n this.alert.closesFiels();\r\n this.alert.showSssps();\r\n },\r\n error: (error) => {\r\n this.alert.closesSpiner()\r\n this.alert.closesFiels()\r\n this.alert.showFiels()\r\n console.error('Error en subscriber historial PJ', error)\r\n let mensaje = error.error ? (error.error.mensaje ? error.error.mensaje :\r\n error.error.descripcionErrores ? error.error.descripcionErrores.join(\"\\n\") :\r\n error.error.message ? error.error.message :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")) :\r\n (error.message ? error.message : \"No fue posible realizar la petición\")\r\n this.alert.showError(mensaje, false, null, false, null, null, false)\r\n }\r\n })\r\n }\r\n}","
    \r\n
    \r\n
    \r\n ¡Empieza el camino hacia tu firma digital!\r\n
    \r\n
    \r\n
    \r\n  Completa los siguientes campos con la\r\n información del solicitante.\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    Debe seleccionar un tipo de documento
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    ¡Identificación no válido!
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Primer nombre no es válido
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Segundo nombre no es válido
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Primer apellido no es válido\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    Segundo apellido no es válido\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ¡Debe aceptar las tres políticas
    \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
    ¡Debe aceptar las tres políticas
    \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, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { environment as env } from \"src/environments/environment\"\r\nimport { AlertsService } from 'src/app/domain/servicios/alerts.service';\r\nimport { ComponentesService } from 'src/app/domain/servicios/componentes.service';\r\nimport { SspsService } from 'src/app/domain/servicios/ssps.service';\r\ndeclare var window: any;\r\n\r\n@Component({\r\n selector: 'app-validaciones',\r\n templateUrl: './validaciones.component.html',\r\n styleUrls: ['./validaciones.component.css']\r\n})\r\nexport class ValidacionesComponent implements OnInit {\r\n estados: boolean = false;\r\n rutas: any;\r\n personPj: boolean = false;\r\n personPn: boolean = true;\r\n\r\n constructor(private fb: FormBuilder,\r\n private componentesService: ComponentesService,\r\n private activateRoute: ActivatedRoute,\r\n private router: Router,\r\n private alert: AlertsService,\r\n private ssps: SspsService\r\n ) {\r\n\r\n /*captura de rutas activas*/\r\n this.activateRoute.queryParams\r\n .subscribe((res: any) => {\r\n if (res.route == undefined) {\r\n return;\r\n }\r\n });\r\n if (this.ssps.getLocalStorage(\"regresaFormulario\") !== \"true\" && this.ssps.getLocalStorage('tipoClienteSugerido') !== 'Entidad/Empresa') {\r\n localStorage.clear()\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.router.url !== null && this.router.url !== undefined &&\r\n this.router.url.toLocaleLowerCase().includes(\"%3fid%3d\")) {\r\n let idQuery = this.router.url.toLocaleLowerCase().substring(this.router.url.toLocaleLowerCase().lastIndexOf(\"%3fid%3d\") + 8)\r\n const queryParams: any = { id: idQuery }\r\n this.alert.closesFiels();\r\n this.alert.closesSpiner();\r\n setTimeout(() => {\r\n this.router.navigate(\r\n ['/flujo/infobasi'],\r\n {\r\n relativeTo: this.activateRoute,\r\n queryParams,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n }\r\n );\r\n }, 500);\r\n return;\r\n }\r\n if (this.ssps.getLocalStorage(\"regresaFormulario\") === \"true\") {\r\n this.alert.closesFiels();\r\n this.alert.showSssps();\r\n }\r\n else {\r\n this.alert.showSpiner(\"No olvides tener tu documento de identificación a la mano para poder continuar con el proceso\")\r\n const querySolicitud = this.activateRoute.snapshot.queryParamMap.get('id');\r\n const queryRuta = this.activateRoute.snapshot.queryParamMap.get('redirect');\r\n if (querySolicitud) {\r\n this.alert.closesFiels();\r\n this.alert.closesSpiner();\r\n setTimeout(() => {\r\n const queryParams: any = { id: querySolicitud }\r\n if (queryRuta) {\r\n queryParams.redirect = queryRuta\r\n }\r\n this.router.navigate(\r\n ['/flujo/infobasi'],\r\n {\r\n relativeTo: this.activateRoute,\r\n queryParams,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n }\r\n );\r\n }, 500);\r\n }\r\n else if (queryRuta !== undefined && queryRuta !== null && queryRuta !== \"\") {\r\n this.alert.closesFiels();\r\n this.alert.closesSpiner();\r\n this.router.navigate([queryRuta]);\r\n }\r\n else {\r\n if (this.ssps.getLocalStorage('tipoClienteSugerido')! === 'Entidad/Empresa') {\r\n this.statusPj()\r\n }\r\n else {\r\n this.statusPn()\r\n }\r\n this.alert.closesSpiner();\r\n }\r\n localStorage.removeItem('tipoClienteSugerido')\r\n }\r\n }\r\n\r\n /*implementacion eventos modal */\r\n abrirmodal() {\r\n this.componentesService.abrirmodal();\r\n }\r\n\r\n\r\n mostrarevento() {\r\n let evento = this.componentesService.estados;\r\n\r\n if (evento) {\r\n this.componentesService.abrirmodal();\r\n this.componentesService.estados = false;\r\n }\r\n }\r\n\r\n //TODO:Implementacion de cierre\r\n closeModal() {\r\n let externalUrl = `${env.urlWebCerti}`;\r\n this.alert.closesFiels();\r\n localStorage.clear()\r\n window.location.replace(externalUrl);\r\n }\r\n\r\n statusPj() {\r\n this.personPj = true;\r\n this.personPn = false;\r\n\r\n //this.personPj = false;\r\n //this.personPn = true;\r\n }\r\n\r\n statusPn() {\r\n this.personPj = false;\r\n this.personPn = true;\r\n }\r\n\r\n}\r\n","
    \r\n
    \r\n Estás a punto de entrar al mundo de las firmas digitales.\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 { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appInputMask]',\r\n})\r\nexport class InputMaskDirective {\r\n\r\n @HostListener('input', ['$event'])\r\n onKeyDown(event: any) {\r\n const input = event.target as HTMLInputElement;\r\n var isInsert = event.inputType !== \"deleteContentBackward\"\r\n const trimmed = input.value.replace(/\\s+/g, '');\r\n if (trimmed.length === 2 && isInsert) {\r\n return (input.value = `${trimmed.slice(0, 2)}/${trimmed.slice(2)}`);\r\n }\r\n\r\n if (trimmed.length === 5 && isInsert) {\r\n return (input.value = `${trimmed.slice(0, 2)}/${trimmed.slice(3)}/`);\r\n }\r\n\r\n if (trimmed.length > 5 && isInsert) {\r\n return (input.value = `${trimmed.slice(0, 5)}/${trimmed.slice(6)}`);\r\n }\r\n\r\n return input\r\n }\r\n \r\n}","import { Directive, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appNocopiado]'\r\n})\r\nexport class NocopiadoDirective {\r\n\r\n constructor(el: ElementRef, renderer: Renderer2) {\r\n \r\n var events = 'cut copy paste';\r\n events.split(' ').forEach(e => \r\n renderer.listen(el.nativeElement, e, (event) => {\r\n event.preventDefault();\r\n })\r\n );\r\n \r\n \r\n \r\n }\r\n\r\n}\r\n","import {\r\n A,\r\n Z,\r\n} from '@angular/cdk/keycodes';\r\nimport {\r\n Directive,\r\n ElementRef,\r\n forwardRef,\r\n HostListener,\r\n OnInit,\r\n Renderer2,\r\n Self,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appUppercase]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UppercaseDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class UppercaseDirective implements ControlValueAccessor {\r\n /** implements ControlValueAccessorInterface */\r\n _onChange!: (_: any) => void;\r\n\r\n /** implements ControlValueAccessorInterface */\r\n _touched!: () => void;\r\n\r\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) { }\r\n\r\n /** Trata as teclas */\r\n @HostListener('keyup', ['$event'])\r\n onKeyDown(evt: KeyboardEvent) {\r\n const keyCode = evt.keyCode;\r\n const key = evt.key;\r\n const value = this._el.nativeElement.value.toUpperCase();\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n this._onChange(value);\r\n evt.preventDefault();\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur() {\r\n this._touched();\r\n }\r\n\r\n /** Implementation for ControlValueAccessor interface */\r\n writeValue(value: any): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n }\r\n\r\n /** Implementation for ControlValueAccessor interface */\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /** Implementation for ControlValueAccessor interface */\r\n registerOnTouched(fn: () => void): void {\r\n this._touched = fn;\r\n }\r\n\r\n /** Implementation for ControlValueAccessor interface */\r\n setDisabledState(isDisabled: boolean): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { environment as env } from \"src/environments/environment\"\r\n\r\nexport const urlRequest = {\r\n //TODO:listas negras servicios\r\n //TODO:listas negras servicios\r\n TOKEN:`${ env.tokenUrlWS }/oauth2/token`,\r\n LISTPJ : `${ env.listasEC2 }/api/pj/listasnegras`,\r\n LISTPN : `${ env.listasEC2 }/api/pn/listasnegras`,\r\n ASEPTPN:`${ env.listasEC2 }/api/pn/aceptacion`,\r\n ASEPTPJ:`${ env.listasEC2 }/api/pj/aceptacion`,\r\n FORMUARIOCONTACTO:`${ env.gatewayAWS }/formularioContacto`, \r\n HISTORICO:`${ env.gatewayAWS }/historico/personas`,\r\n OBTENERIP: 'https://jsonip.com', \r\n URLPSE: `${ env.gatewayAWS }/pasarelaPago/url`,\r\n URLESTADOPSE: `${ env.gatewayAWS }/pasarelaPago/estadoTransaccion`,\r\n CREARORDENPN: `${ env.ordenPedidoServiceEC2 }/personaNatural`,\r\n ACTUALIZARORDENPN: `${ env.ordenPedidoServiceEC2 }/personaNatural/`,\r\n CREARORDENPJ: `${ env.ordenPedidoServiceEC2 }/personaJuridica`,\r\n ACTUALIZARORDENPJ: `${ env.ordenPedidoServiceEC2 }/personaJuridica/`,\r\n DESCARGARORDENPAGO: `${ env.ordenPedidoServiceEC2 }/ordenPedido/pdfPago/`,\r\n GENERARREQUESTJURIDICO: `${ env.ordenPedidoServiceEC2 }/generador/generarRequestCSR`,\r\n URLCARGARORDENPAGO: `${ env.ordenPedidoServiceEC2 }/ordenPedido/cargarPago/`,\r\n URLAPLICARCODIGODESCUENTO: `${ env.ordenPedidoServiceEC2 }/ordenPedido/aplicar-cupon`,\r\n URLVALIDARCODIGODESCUENTO: `${ env.ordenPedidoServiceEC2 }/ordenPedido/validar-cupon`,\r\n URLELIMINARCODIGODESCUENTO: `${ env.ordenPedidoServiceEC2 }/ordenPedido/eliminar-cupon/`,\r\n URLCONSULTARORDEN: `${ env.ordenPedidoServiceEC2 }/ordenPedido/consultar`,\r\n URLCONSULTARULTIMAORDEN: `${ env.ordenPedidoServiceEC2 }/ordenPedido/ultimaOrden/`,\r\n VALIDACIONPREGUNTAS: `${ env.validacionIdentidadServiceEC2 }/validacion-identidad/preguntas`,\r\n VALIDACIONRESPUESTAS: `${ env.validacionIdentidadServiceEC2 }/validacion-identidad/respuestas`,\r\n OBTENERCERTIFICADO:`${ env.certificadoServiceEC2 }/certificado/obtener`,\r\n UNIRLLAVES: `${ env.gatewayAWS }/APPGenerate/JoinKeys`,\r\n GENERARREQUESTLLAVE: `${ env.ordenPedidoServiceEC2 }/generador/generarLlavePrivada`,\r\n INTENTOSVALIDACION: `${ env.validacionIdentidadServiceEC2 }/validacion-identidad/consultar-intentos`,\r\n GUARDARINTENTOVALIDACION: `${ env.validacionIdentidadServiceEC2 }/validacion-identidad/intento`,\r\n VALIDARLINKPREFACTURA: `${ env.gatewayFact }/fact-automatizada/prefactura/validar`,\r\n APROBARPREFACTURA: `${ env.gatewayFact }/fact-automatizada/prefactura/aprobar`,\r\n RECHAZARPREFACTURA: `${ env.gatewayFact }/fact-automatizada/prefactura/rechazar`,\r\n CONSULTARSOLICITANTEREVOCACION: `${ env.certificadoServiceEC2 }/revocacion/solicitante`,\r\n MOTIVOSRECHAZOREVOCACION: `${ env.certificadoServiceEC2 }/revocacion/motivos`,\r\n CERTIFICADOSREVOCACION: `${ env.certificadoServiceEC2 }/revocacion/listar`,\r\n DETALLECERTIFICADOREVOCACION: `${ env.certificadoServiceEC2 }/revocacion/detalle`,\r\n REVOCARCERTIFICADO: `${ env.certificadoServiceEC2 }/revocacion/revocar`,\r\n CAPCHA: `${env.captchaEC2}/api/obtener-captcha`,\r\n OTPREQUEST: `${env.gatewayAWSOtp}/Stage/ws/rest/sendOTP`,\r\n CONSULTARFACTURA: `${ env.gatewayAWS }/descargaFactura`,\r\n CONSULTARSOLICITUDESESTADOTRAMITE: `${ env.estadoTramiteServiceEC2 }/estado-solicitud/listar`,\r\n URLEBIOMETRICS: `${ env.apiEBiometrics }/`\r\n};\r\n\r\nexport const tokenSolicitud = {\r\n grant_type: 'client_credentials',\r\n client_id: `${ env.tokenClientId }`,\r\n scope: `${ env.tokenScope }`,\r\n client_secret: `${ env.tokenSecret }`\r\n};\r\n\r\nexport const datosPasarela = {\r\n urlRetorno: \"\",\r\n ipUsuario: \"\",\r\n navegador: \"\",\r\n pasarela: `${ env.pasarela}`\r\n}","export const environment = {\r\n production: false,\r\n logs: true,\r\n gatewayAWS: 'https://w5gyxh8ayc.execute-api.us-east-2.amazonaws.com/dev',\r\n gatewayFact: 'https://r07cv85c6f.execute-api.us-east-2.amazonaws.com/dev',\r\n ordenPedidoServiceEC2: 'https://ventaservice.tst.certicamara.com:4040',\r\n certificadoServiceEC2: 'https://ventaservice.tst.certicamara.com:5051',\r\n validacionIdentidadServiceEC2: 'https://ventaservice.tst.certicamara.com:4041',\r\n listasEC2: 'https://conectorservice.tst.certicamara.com:9201',\r\n captchaEC2: 'https://conectorservice.tst.certicamara.com:8301',\r\n estadoTramiteServiceEC2: 'https://ventaservice.tst.certicamara.com:5055',\r\n tokenUrlWS: 'https://certiportaldesarrollo.auth.us-east-2.amazoncognito.com',\r\n tokenClientId: '3enknt0msqh6g62g5v06vhdqh0',\r\n tokenScope: 'CerCentral/cercentral',\r\n pasarela: 'P2P',\r\n tokenSecret: '1pf0f4timfnsr47keqergfmki7ngo76tnen53ed22oa2bl79pirp',\r\n direccionCerti: \"Cr 7 #26-20 Piso 18-19, Edificios Seguros Tequendama\",\r\n urlWebCerti: \"https://web.certicamara.com/servicios/firmas-digitales/certificados\",\r\n productoFormularioContacto: 2,\r\n urlVentaDigital: \"https://ventadigital.tst.certicamara.com\",\r\n accountValidacionFacial: '7b7dc00e-6f2c-4157-be7b-e46ca289d3f9',\r\n cipher: 'jnKk0Pz+QT91oryaFPJaryg3yNJ9GA3zbvegflf6H89X1eD/61xVEc4q2U/wlF09',\r\n recaptcha: {\r\n siteKey: '6LeMUeYpAAAAAG9aIjJSY__GV322KeizxvMpu5iM',\r\n },\r\n tokenOtp:'Xx6kndiJhIBi9NXuvOnq7doCWv6qC4WfKZc0oUM3tmWJpR38NFZlu3/78mLTP0IhM8TIHBmV/d91rgRcXY/lBbv14F2SQUm3tjGJGkjlnPI=',\r\n mailOtp:\"operacion@certicamara.com\",\r\n gatewayAWSOtp:'https://j942938lr5.execute-api.us-east-1.amazonaws.com',\r\n origen: \"CANAL_VENTAS\",\r\n apiEBiometrics: \"https://api.ebiometrics.dev/v1/business/transactions\",\r\n urlVideoReuso: \"https://www.youtube.com/embed/c0f8qt7kuYs\",\r\n gtmId: \"GTM-PXT4NW2J\"\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","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","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["Subject","v4","uuidv4","environment","env","crypto","require","SspsService","constructor","http","ssps","componentesService","logger","alert","ip","reintentosIp","envios","eventos$","asObservable","compras","reposiciones","typePerson","numero","channel","BroadcastChannel","urlVentaDigital","LocalStorage","setupCommunication","eventos","change","next","encrypt","data","undefined","saltStr","generateSalt32Byte","digest","key","pbkdf2Sync","cipher","iv","getRandomIV","createCipheriv","encrypted","update","final","tag","getAuthTag","output","Buffer","from","toString","sha256","message","_asyncToGenerator","createHash","decryptUsingAES256","encryptedData","ciphertextAndNonceAndSalt","nonce","subarray","saltAndCipherText","slice","salt","ciphertext","length","createDecipheriv","setAuthTag","decrypted","concat","randomBytes","getpreguntas","person","EXshowTask","saveLocalStorage","content","localStorage","setItem","getLocalStorage","getItem","token","politicas","politicaExt","tiposDireccion","tiposDireccionExt","tiposRegimenTributario","tiposRegimenTributarioExt","cargarProfesiones","cargarProfesionesExt","tiposCapital","tiposCapitalExt","indicativos","indicativosExt","reportados","primerNombre","segundoNombre","primerApellido","segundoApellido","documento","tipo","reportadosEx","ReportPersonPJ","nit","codigo","razon","ExtReportPJ","historial","tipoDocumento","numeroDocumento","nitEmpresa","tipoPersona","historialExt","precios","preciosEx","usos","usosEx","preciosReposicion","preciosReposicionEx","crearOrdenPedidoPN","body","consultarUltimaOrdenPedido","identificacion","crearOrdenPedidoPJ","actualizarOrdenPedidoPN","ordenPedidoId","actualizarOrdenPedidoPJ","generarRequestJuridico","generarRequestLlave","solicitarOTP","consultarOrdenPedido","consultarUrlPSE","consultarEstadoPagoPSE","descargarOrdenPago","solicitudId","cargarComprobantePago","aplicarCodigoDescuento","validarCodigoDescuento","eliminarCodigoDescuento","cupon","departamentos","departamentosEx","AseptN","terminost","terminosp","terminostpro","ExtAsepN","AseptPJ","ExtAsepJ","formularioContacto","request","obtenerCertificado","unirLlaves","obtenerIp","validatedCapcha","extCapcha","echoTest","url","subscribe","res","log","error","includes","preguntasValidacion","nombres","apellidos","fechaExpedicion","municipio","departamento","solicitudTitularId","consultarIntentosValidacion","guardarIntento","consultarEstadoEBiometrics","consultarDatosSolicitanteRevocacion","consultarMotivosRechazo","consultarFactura","consultarSolicitudesEstadoTramite","consultarCertificadosRevocacion","detalleCertificadoRevocacion","username","revocarCertificado","respuestasValidacion","sessionStorage","JSON","parse","stringify","saveBuyData","dataBuy","reposicion","solicitante","solicitantes","vigencia","diasReposicion","detallesCertificado","aspectosContables","telefono","telefonos","anos","Math","floor","esVigenciaDias","toUpperCase","trim","cantidad","cliente","costo","costoBase","ica","iva","reteIva","dispo","mecanismoEntrega","replace","idispo","idpoli","idPolitica","politica","nombrePolitica","uid","correo","correoElectronico","correo1","profesion","tarjetaProfesional","institucionGrado","fechaExpTarjetaProfesional","celular","indicativo","extension","tipoCapital","regimenTributario","actividadEconomica","ciuu","ciudad","datosBasicoDireccion","direccion","barrio","substring","indexOf","adicional","tipoDireccion","tipoNumero","numero2","tipoDireccionIni","split","filter","i","numeroIni","objetoDireccion","toLocaleLowerCase","first","toLocaleUpperCase","tipoOtroNumero","descripcionUso","uso","id","usoId","descripcion","otro","saveBuyDataPJ","empresa","razonSocial","Object","assign","saveSolicitanteDataPJ","solicitanteLocal","cargoEmpresa","cargo","fechaNombramiento","actaPosesion","saveEntregaData","infoEnvio","informacionEnvio","telefonoEnvio","municipioData","municipioEnvio","codDepartamento","codMunicipio","celularEnvio","preferenciaEnvio","direccionEnvio","direccionCompleta","saveFacturacionData","numeroIdentificacion","responsablePago","nombresApellidos","tipoIdentificacion","saveOrdenPedidoData","datosOrden","datosBasicos","esReposicion","valorNeto","descuentoCupon","valorDescuentoCupon","valorBaseLiquidacion","existeCSR","porcentajeIca","porcentajeIva","reteiva","porcentajeReteIva","estampillas","aceptoTerminosSn","idTitular","identidadValidada","fechaCreacion","documentosCargados","proceso","fechaPago","realizoPago","faltantes","solicitudFinalizada","usoCertificado","otroUso","documentos","forEach","element","index","push","fondo","colores","title","subtitle","nombre","profesionalTitulado","numTarjetaProfesional","saveOrdenPedidoFacturacionData","SavePagoOrdenPedidoData","SaveEntregaOrdenPedidoData","datosContactoTecnico","SaveContactoOrdenPedidoData","saveOrdenPedidoDataPJ","p","saveSolicitanteOrdenPedidoData","esRepresentanteLegal","esFuncionarioPublico","facturacionData","datosFacturacion","agente","codigoAgente","calcularDigitoChequeo","pago","impuestos","valorIva","valorReteIva","valorTotal","mensaje","estado","ivaValor","icaValor","valorIca","reteIvaValor","pagoPSE","referenciaPago","usuarioRegistraPago","esDescuentoCupon","cuponAplicado","cuponAplicadoExitosamente","entrega","envioViaCorreoElectronico","recogeCerti","envioDomicilio","contactoTecnico","contacto","contactoOtro","getBrowserName","agent","window","navigator","userAgent","toLowerCase","opr","chrome","obtenerIpValor","console","obtenerParametros","parametros","onmessage","event","postMessage","showOpenTabs","setTimeout","closeTabs","checkIfFirstTab","i0","ɵɵinject","i1","HttpClient","i2","SspsAdapterService","i3","ComponentesService","i4","LogService","i5","AlertsService","factory","ɵfac","providedIn","ChangeDetectorRef","ElementRef","Validators","NgOtpInputConfig","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","DescargaCertificadoComponent_div_0_div_33_span_6_Template","DescargaCertificadoComponent_div_0_div_33_ul_7_Template","ɵɵadvance","ɵɵproperty","ɵɵelement","DescargaCertificadoComponent_div_0_div_35_div_5_Template","DescargaCertificadoComponent_div_0_div_35_div_25_Template","ɵɵclassProp","ctx_r6","camposvalidos","ɵɵpureFunction2","_c3","passwordFormField","value","match","passwordMinMaxLengthValid","contrasenaIguales","ctx_r7","formaForm","invalid","ɵɵtextInterpolate","usuarioDescarga","mecanismo","uso_r17","ɵɵtextInterpolate1","ɵɵlistener","DescargaCertificadoComponent_div_0_div_37_div_1_td_12_Template_input_ngModelChange_1_listener","$event","ɵɵrestoreView","_r19","ctx_r18","ɵɵnextContext","ɵɵresetView","ctx_r16","DescargaCertificadoComponent_div_0_div_37_div_1_Template_select_change_10_listener","_r21","ctx_r20","cambioUso","target","DescargaCertificadoComponent_div_0_div_37_div_1_Template_select_ngModelChange_10_listener","ctx_r22","DescargaCertificadoComponent_div_0_div_37_div_1_option_11_Template","DescargaCertificadoComponent_div_0_div_37_div_1_td_12_Template","DescargaCertificadoComponent_div_0_div_37_div_1_Template_button_click_16_listener","ctx_r23","guardarUsoCertificado","ctx_r13","usosCertificados","DescargaCertificadoComponent_div_0_div_37_button_2_Template_button_click_0_listener","_r25","ctx_r24","generarLlave","DescargaCertificadoComponent_div_0_div_37_div_1_Template","DescargaCertificadoComponent_div_0_div_37_button_2_Template","ctx_r8","usoGuardado","DescargaCertificadoComponent_div_0_Template_form_ngSubmit_1_listener","_r27","ctx_r26","ngsubmit","DescargaCertificadoComponent_div_0_Template_button_click_7_listener","ctx_r28","closeModal","DescargaCertificadoComponent_div_0_div_30_Template","DescargaCertificadoComponent_div_0_div_31_Template","DescargaCertificadoComponent_div_0_div_32_Template","DescargaCertificadoComponent_div_0_div_33_Template","DescargaCertificadoComponent_div_0_div_35_Template","DescargaCertificadoComponent_div_0_div_36_Template","DescargaCertificadoComponent_div_0_div_37_Template","ctx_r0","nombreCompleto","certificado","ctx_r32","display","DescargaCertificadoComponent_div_1_div_12_Template_ng_otp_input_onInputChange_4_listener","_r34","ctx_r33","onOtpChange","DescargaCertificadoComponent_div_1_div_12_div_6_Template","ctx_r29","config","reenviarOtp","DescargaCertificadoComponent_div_1_div_13_Template_button_click_1_listener","_r36","ctx_r35","enviarOTP","DescargaCertificadoComponent_div_1_div_14_Template_button_click_1_listener","_r38","ctx_r37","DescargaCertificadoComponent_div_1_Template_button_click_4_listener","_r40","ctx_r39","DescargaCertificadoComponent_div_1_div_12_Template","DescargaCertificadoComponent_div_1_div_13_Template","DescargaCertificadoComponent_div_1_div_14_Template","ctx_r1","correoTitularOfuscado","otpEnviado","DescargaCertificadoComponent","fb","changeDetector","el","otpValidado","correoSolicitante","tituloBotonOTP","otpValidacion","otp","allowNumbersOnly","isPasswordInput","disableAutoFocus","placeholder","group","contrasena","minLength","maxLength","pattern","contrasenaConfirmacion","ngOnInit","closesSpiner","usuario","removeValidatorsContrasena","showError","ngAfterContentChecked","detectChanges","campo","get","touched","dirty","close","markAllAsTouched","keys","controls","errors","invalidControl","nativeElement","querySelector","focus","showSpiner","requestCertificado","agregarValidatorsContrasena","closesFiels","showDescargaCertificado","descripcionErrores","join","controlesAEliminar","controlName","control","clearValidators","updateValueAndValidity","addValidators","required","pass1","pass2","requestOtp","mailOtp","OTPSha256","statusCode","contadorReenvio","responseText","validarOTP","_this","otpSha256","clearInterval","timer","minute","seconds","textSec","statSec","prefix","setInterval","hasError","externalUrl","urlWebCerti","clear","location","find","f","ɵɵdirectiveInject","FormBuilder","selectors","viewQuery","DescargaCertificadoComponent_Query","rf","ctx","DescargaCertificadoComponent_div_0_Template","DescargaCertificadoComponent_div_1_Template","DescargarFacturaComponent_div_6_div_24_Template_select_change_3_listener","_r12","ctx_r11","changeTipoDocumento","DescargarFacturaComponent_div_6_div_24_Template_select_ngModelChange_3_listener","usuarioFactura","DescargarFacturaComponent_div_6_div_24_div_12_Template","ctx_r5","DescargarFacturaComponent_div_6_div_25_Template_input_ngModelChange_3_listener","_r18","ctx_r17","DescargarFacturaComponent_div_6_div_25_Template_input_keyup_3_listener","ctx_r19","noPuntoComa","_r14","ɵɵreference","quitarceros","DescargarFacturaComponent_div_6_div_25_div_5_Template","DescargarFacturaComponent_div_6_div_25_div_6_Template","comas","DescargarFacturaComponent_div_6_div_26_Template_input_ngModelChange_3_listener","_r23","DescargarFacturaComponent_div_6_div_26_div_4_Template","DescargarFacturaComponent_div_6_div_27_Template_input_ngModelChange_3_listener","_r26","ctx_r25","DescargarFacturaComponent_div_6_div_27_div_4_Template","DescargarFacturaComponent_div_6_div_28_Template_input_ngModelChange_3_listener","_r30","factura","DescargarFacturaComponent_div_6_div_28_div_5_Template","ctx_r9","DescargarFacturaComponent_div_6_Template_form_ngSubmit_10_listener","_r32","ctx_r31","DescargarFacturaComponent_div_6_Template_select_change_16_listener","changeFiltro","DescargarFacturaComponent_div_6_Template_select_ngModelChange_16_listener","ctx_r34","filtro","DescargarFacturaComponent_div_6_div_23_Template","DescargarFacturaComponent_div_6_div_24_Template","DescargarFacturaComponent_div_6_div_25_Template","DescargarFacturaComponent_div_6_div_26_Template","DescargarFacturaComponent_div_6_div_27_Template","DescargarFacturaComponent_div_6_div_28_Template","ctx_r2","DescargarFacturaComponent_div_7_div_1_table_8_tr_9_Template_span_click_8_listener","restoredCtx","_r41","item_r39","$implicit","ctx_r40","verFactura","numeroFactura","DescargarFacturaComponent_div_7_div_1_table_8_tr_9_Template","listadoFacturas","DescargarFacturaComponent_div_7_div_1_table_8_Template","DescargarFacturaComponent_div_7_div_1_Template_button_click_10_listener","_r43","ctx_r42","cancelarSeleccion","consulta","DescargarFacturaComponent_div_7_div_2_Template_button_click_3_listener","_r45","ctx_r44","cancelarSeleccionDocumento","DescargarFacturaComponent_div_7_div_1_Template","DescargarFacturaComponent_div_7_div_2_Template","ctx_r3","DescargarFacturaComponent","datepipe","router","recaptchaV3Service","sanitizer","min","max","validators","setOnChangesInputs","disable","onlySelf","valueChanges","val","inputRefNumero","elRef","orVal","getAttribute","setAttribute","setValue","emitEvent","emitModelToViewChange","inputRefFactura","validarCaptcha","execute","code","response","quitarValidaciones","codigonit","digitoChequeo","tipoFiltro","controles","e","keyCode","which","documentoFactura","PDFObject","embed","DatePipe","i6","i7","Router","i8","ReCaptchaV3Service","i9","DomSanitizer","DescargarFacturaComponent_Query","DescargarFacturaComponent_h4_2_Template","DescargarFacturaComponent_h4_3_Template","DescargarFacturaComponent_Template_button_click_4_listener","DescargarFacturaComponent_div_6_Template","DescargarFacturaComponent_div_7_Template","trigger","state","style","transition","animate","tituloConsulta","EstadoTramiteComponent_div_6_Template_form_ngSubmit_5_listener","_r9","EstadoTramiteComponent_div_6_Template_select_ngModelChange_11_listener","ctx_r10","usuarioConsulta","EstadoTramiteComponent_div_6_div_18_Template","EstadoTramiteComponent_div_6_Template_input_ngModelChange_22_listener","EstadoTramiteComponent_div_6_Template_input_keyup_22_listener","ctx_r12","_r5","EstadoTramiteComponent_div_6_div_24_Template","EstadoTramiteComponent_div_6_div_25_Template","column_r21","element_r26","columnsToDisplayValores","i_r22","ɵɵelementContainerStart","EstadoTramiteComponent_div_7_ng_container_11_th_1_Template","EstadoTramiteComponent_div_7_ng_container_11_td_2_Template","ɵɵelementContainerEnd","ɵɵpropertyInterpolate","ɵɵnamespaceSVG","EstadoTramiteComponent_div_7_td_14_Template_button_click_1_listener","element_r28","expandedElement","stopPropagation","EstadoTramiteComponent_div_7_td_14__svg_svg_2_Template","EstadoTramiteComponent_div_7_td_14__svg_svg_3_Template","EstadoTramiteComponent_div_7_td_16_li_4_Template_div_click_3_listener","_r39","paso_r35","ctx_r38","mostrarComentarios","comentarios","EstadoTramiteComponent_div_7_td_16_li_4_i_5_Template","ɵɵclassMap","validarEstadoClase","i_r36","ɵɵpureFunction1","_c1","paso","EstadoTramiteComponent_div_7_td_16_li_4_Template","ɵɵattribute","columnsToDisplayWithExpand","element_r33","pasos","EstadoTramiteComponent_div_7_tr_18_Template_tr_click_0_listener","_r42","element_r40","ctx_r41","ɵɵnamespaceHTML","EstadoTramiteComponent_div_7_ng_container_11_Template","EstadoTramiteComponent_div_7_th_13_Template","EstadoTramiteComponent_div_7_td_14_Template","EstadoTramiteComponent_div_7_td_16_Template","EstadoTramiteComponent_div_7_tr_17_Template","EstadoTramiteComponent_div_7_tr_18_Template","EstadoTramiteComponent_div_7_tr_19_Template","EstadoTramiteComponent_div_7_Template_button_click_21_listener","listadoSolicitudes","columnsToDisplay","ɵɵpureFunction0","_c2","EstadoTramiteComponent","tiposDocumentos","completed","consultarSolicitudes","nombreTitular","finalizado","EstadoTramiteComponent_Query","EstadoTramiteComponent_h4_2_Template","EstadoTramiteComponent_h4_3_Template","EstadoTramiteComponent_Template_button_click_4_listener","EstadoTramiteComponent_div_6_Template","EstadoTramiteComponent_div_7_Template","height","minHeight","ɵɵpipeBind1","noradicadopedi","FlujocomprasspsComponent_div_38_app_barra_1_Template","FlujocomprasspsComponent_div_38_ng_template_5_Template","FlujocomprasspsComponent_div_38_ng_template_6_Template","FlujocomprasspsComponent_div_38_div_7_Template","FlujocomprasspsComponent_div_38_Template_div_resize_27_listener","_r20","onResize","ɵɵresolveWindow","mostrarBarra","FlujocomprasspsComponent_ng_template_39_Template_button_click_7_listener","_r22","ctx_r21","ContinuarSinPago","FlujocomprasspsComponent_ng_template_39_Template_button_click_9_listener","irAPago","ctx_r4","FlujocomprasspsComponent_ng_template_40_div_9_Template_button_click_1_listener","_r29","FlujocomprasspsComponent_ng_template_40_div_9_Template_button_click_3_listener","ctx_r30","FlujocomprasspsComponent_ng_template_40_div_10_Template_button_click_1_listener","FlujocomprasspsComponent_ng_template_40_div_10_Template_button_click_3_listener","validarIdentidad","FlujocomprasspsComponent_ng_template_40_div_11_Template_button_click_1_listener","_r35","FlujocomprasspsComponent_ng_template_40_span_8_Template","FlujocomprasspsComponent_ng_template_40_div_9_Template","FlujocomprasspsComponent_ng_template_40_div_10_Template","FlujocomprasspsComponent_ng_template_40_div_11_Template","mostrarOpcionesValidacionIdentidad","mostrarOpcionesPago","FlujocomprasspsComponent_ng_template_41_Template_button_click_7_listener","_r37","ctx_r36","crearOrdenPedido","FlujocomprasspsComponent","respuesta","filtra","nopedido","p10Mecanismo","nopedidoActualizar","noradicadosolicitud","mostrarBack","reintentos","actualizaOrden","errorOrden","facturacion","showSolicitudFinalizada","slidersinfomativos","costos","trunc","emitircambio","tamano","innerWidth","margen","classList","remove","add","solicitanteElement","entregan","facturacionn","basica","navigate","titulo","showSinPago","showAlertaValidarIdentidad","direccionCerti","fechaTarjeta","date","Date","transform","ff","file","contenido","origen","llamarApiCreacionOrdenPN","urlRedireccion","llamarGenerarRequestJuridico","llamarApiConsultaUltimaOrden","_this2","llamarApiCreacionOrdenPJ","llamarApiActualizarOrdenPN","representanteLegal","_this3","llamarApiActualizarOrdenPJ","_this4","FlujocomprasspsComponent_Query","FlujocomprasspsComponent_strong_14_Template","FlujocomprasspsComponent_strong_15_Template","FlujocomprasspsComponent_div_35_Template","FlujocomprasspsComponent_div_38_Template","FlujocomprasspsComponent_ng_template_39_Template","FlujocomprasspsComponent_ng_template_40_Template","FlujocomprasspsComponent_ng_template_41_Template","ɵɵpipeBind4","urlRequest","urlManualRevocacion","ɵɵsanitizeUrl","RevocarCertificadoComponent_form_7_Template_form_ngSubmit_0_listener","_r11","RevocarCertificadoComponent_form_7_Template_select_ngModelChange_23_listener","usuarioValida","RevocarCertificadoComponent_form_7_div_30_Template","RevocarCertificadoComponent_form_7_Template_input_ngModelChange_34_listener","RevocarCertificadoComponent_form_7_div_36_Template","RevocarCertificadoComponent_form_7_Template_input_ngModelChange_41_listener","ctx_r14","fechaExpDocumento","RevocarCertificadoComponent_form_7_Template_input_keyup_41_listener","ctx_r15","fechas","RevocarCertificadoComponent_form_7_Template_button_click_43_listener","_r8","toggle","RevocarCertificadoComponent_form_7_div_45_Template","maxDate","minDate","statusFechaExpDocumento","certificadoSeleccionado","RevocarCertificadoComponent_div_8_div_3_Template_button_click_1_listener","item_r28","item_r29","header_r31","RevocarCertificadoComponent_div_8_table_5_tr_6_td_1_Template","RevocarCertificadoComponent_div_8_table_5_tr_6_Template_span_click_3_listener","detalleCertificado","ctx_r27","listadoHeaders","RevocarCertificadoComponent_div_8_table_5_th_3_Template","RevocarCertificadoComponent_div_8_table_5_tr_6_Template","certificados","item_r38","RevocarCertificadoComponent_div_8_table_6_tr_2_td_1_Template","RevocarCertificadoComponent_div_8_table_6_tr_2_td_2_Template","motivo_r43","motivoRevocacionId","descCortaMotivo","motivoSeleccionado","descripcionMotivo","RevocarCertificadoComponent_div_8_table_6_tr_2_Template","RevocarCertificadoComponent_div_8_table_6_Template_select_change_8_listener","changeMotivo","RevocarCertificadoComponent_div_8_table_6_Template_select_ngModelChange_8_listener","ctx_r46","motivoSeleccionadoId","RevocarCertificadoComponent_div_8_table_6_option_10_Template","RevocarCertificadoComponent_div_8_table_6_tr_11_Template","listadoDetalle","motivosRechazo","RevocarCertificadoComponent_div_8_div_7_Template_button_click_1_listener","_r48","ctx_r47","volverFormulario","RevocarCertificadoComponent_div_8_div_8_Template_button_click_1_listener","_r50","ctx_r49","RevocarCertificadoComponent_div_8_div_8_Template_button_click_3_listener","ctx_r51","RevocarCertificadoComponent_div_8_h4_1_Template","RevocarCertificadoComponent_div_8_h4_2_Template","RevocarCertificadoComponent_div_8_div_3_Template","RevocarCertificadoComponent_div_8_table_5_Template","RevocarCertificadoComponent_div_8_table_6_Template","RevocarCertificadoComponent_div_8_div_7_Template","RevocarCertificadoComponent_div_8_div_8_Template","RevocarCertificadoComponent","actualFecha","year","getFullYear","month","getMonth","day","getDate","removeItem","consultarDatsSolicitante","dato","valida","test","queryParams","queryParamsHandling","manualRevocacion","homeNavigate","status","motivoRevocacion","alertaConfirmacion","showConfirmacion","result","then","confirmacion","revocarCertificadoServicio","alerta","motivo","reset","RevocarCertificadoComponent_Query","RevocarCertificadoComponent_h4_2_Template","RevocarCertificadoComponent_Template_button_click_3_listener","RevocarCertificadoComponent_div_5_Template","RevocarCertificadoComponent_div_6_Template","RevocarCertificadoComponent_form_7_Template","RevocarCertificadoComponent_div_8_Template"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}