From 9d368dbb4d57545cb4794294ecb0f1738607206b Mon Sep 17 00:00:00 2001 From: MarianoCampetella <65697028+MarianoCampetella@users.noreply.github.com> Date: Tue, 29 Mar 2022 08:54:23 -0300 Subject: [PATCH] fix(RUP-307): Error al eliminar registros vinculados (#2597) --- .../prestacionEjecucion.component.ts | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/app/modules/rup/components/ejecucion/prestacionEjecucion.component.ts b/src/app/modules/rup/components/ejecucion/prestacionEjecucion.component.ts index 31daca9549..07179a64ec 100644 --- a/src/app/modules/rup/components/ejecucion/prestacionEjecucion.component.ts +++ b/src/app/modules/rup/components/ejecucion/prestacionEjecucion.component.ts @@ -3,8 +3,9 @@ import { Plex } from '@andes/plex'; import { PlexHelpComponent } from '@andes/plex/src/lib/help/help.component'; import { Component, OnDestroy, OnInit, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +import { of } from 'rxjs'; import { Subject } from 'rxjs'; -import { filter, map, takeUntil } from 'rxjs/operators'; +import { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators'; import { HeaderPacienteComponent } from '../../../../components/paciente/headerPaciente.component'; import { SnomedBuscarService } from '../../../../components/snomed/snomed-buscar.service'; import { IPaciente } from '../../../../core/mpi/interfaces/IPaciente'; @@ -579,28 +580,32 @@ export class PrestacionEjecucionComponent implements OnInit, OnDestroy { this.plex.toast('danger', 'Revise los campos cargados'); return; } - - unPopulateRelaciones(this.prestacion); - const registros = JSON.parse(JSON.stringify(this.prestacion.ejecucion.registros)); + const backupRegistros = JSON.parse(JSON.stringify(this.prestacion)); + unPopulateRelaciones(backupRegistros); + const registros = JSON.parse(JSON.stringify(backupRegistros.ejecucion.registros)); const params: any = { op: 'registros', - solicitud: this.prestacion.solicitud, + solicitud: backupRegistros.solicitud, registros: registros }; - this.servicioPrestacion.patch(this.prestacion.id, params).subscribe(prestacionEjecutada => { - this.plex.toast('success', 'PrestaciĆ³n guardada correctamente', 'Prestacion guardada', 100); - if (!this.prestacion.solicitud.tipoPrestacion.noNominalizada) { - // Actualizamos las prestaciones de la HUDS - this.servicioPrestacion.getByPaciente(this.paciente.id, true).subscribe(resultado => { - this.servicioPrestacion.clearRefSetData(); - this.router.navigate(['rup/validacion', this.prestacion.id]); - }); - } else { - this.router.navigate(['rup/validacion', this.prestacion.id]); - } + this.servicioPrestacion.patch(this.prestacion.id, params).pipe( + switchMap(() => { + this.plex.toast('success', 'PrestaciĆ³n guardada correctamente', 'Prestacion guardada', 100); + if (!this.prestacion.solicitud.tipoPrestacion.noNominalizada) { + this.prestacion = backupRegistros; + // Actualizamos las prestaciones de la HUDS + return this.servicioPrestacion.getByPaciente(this.paciente.id, true).pipe( + tap(() => this.servicioPrestacion.clearRefSetData()), + ); + } + return of(null); + }) + ).subscribe(() => { + this.router.navigate(['rup/validacion', this.prestacion.id]); }); + } /** * Setea el boton volver, Segun la ruta que recibe y el