Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RUP - Guarda prestaciones modificadas y anuladas en nueva colección #2369

Merged
merged 2 commits into from
Jul 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -259,27 +259,18 @@ export class InternacionListadoComponent implements OnInit {
romperValidacion(selectedPrestacion: IPrestacion, fechaHasta: Date) {
this.plex.confirm('Esta acción puede traer consecuencias <br />¿Desea continuar?', 'Romper validación').then(validar => {
if (validar) {
// guardamos una copia de la prestacion antes de romper la validacion.
let prestacionCopia = JSON.parse(JSON.stringify(selectedPrestacion));
// Agregamos el estado de la prestacion copiada.
let estado = { tipo: 'modificada', idOrigenModifica: prestacionCopia.id };
// Guardamos la prestacion copia
this.prestacionService.clonar(prestacionCopia, estado).subscribe(prestacionClonada => {
let prestacionModificada = prestacionClonada;
// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion',
estado: { tipo: 'ejecucion', idOrigenModifica: prestacionModificada.id },
desdeInternacion: true
};
// Vamos a cambiar el estado de la prestación a ejecucion
this.prestacionService.patch(selectedPrestacion.id, cambioEstado).subscribe(prestacion => {
this.listadoInternacionService.setFechaHasta(fechaHasta);
this.mapaCamasService.selectPrestacion(prestacion);
this.verificarPrestacion(prestacion);
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
});
// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion',
desdeInternacion: true
};
// En api el estado de la prestación cambia a ejecucion
this.prestacionService.patch(selectedPrestacion.id, cambioEstado).subscribe(prestacion => {
this.listadoInternacionService.setFechaHasta(fechaHasta);
this.mapaCamasService.selectPrestacion(prestacion);
this.verificarPrestacion(prestacion);
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
});
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,43 +356,26 @@ export class PrestacionValidacionComponent implements OnInit, OnDestroy {
if (!validar) {
return false;
} else {
// guardamos una copia de la prestacion antes de romper la validacion.
// let prestacionCopia = JSON.parse(JSON.stringify(this.prestacion));
const prestacionCopia = this.prestacion;
// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion'
};

// Agregamos el estado de la prestacion copiada.
let estado = { tipo: 'modificada', idOrigenModifica: prestacionCopia._id };

// Guardamos la prestacion copia
this.servicioPrestacion.clonar(prestacionCopia, estado).subscribe(prestacionClonada => {

let prestacionModificada = prestacionClonada;

// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion',
estado: { tipo: 'ejecucion', idOrigenModifica: prestacionModificada.id }
};

this.route.params.subscribe(params => {
// Vamos a cambiar el estado de la prestación a ejecucion
this.servicioPrestacion.patch(this.prestacion._id || params['id'], cambioEstado).subscribe(prestacion => {

this.prestacion = prestacion;
// chequeamos si es no nominalizada si
if (!this.prestacion.solicitud.tipoPrestacion.noNominalizada) {
// actualizamos las prestaciones de la HUDS
this.servicioPrestacion.getByPaciente(this.paciente.id, true).subscribe(resultado => {
});
} else {
this.router.navigate(['rup/ejecucion', this.prestacion.id]);
}

this.router.navigate(['rup/ejecucion', this.prestacion.id]);
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
// En api el estado de la prestación cambia a ejecucion
this.servicioPrestacion.patch(this.prestacion._id, cambioEstado).subscribe(prestacion => {
this.prestacion = prestacion;
// chequeamos si es no nominalizada si
if (!this.prestacion.solicitud.tipoPrestacion.noNominalizada) {
// actualizamos las prestaciones de la HUDS
this.servicioPrestacion.getByPaciente(this.paciente.id, true).subscribe(resultado => {
});
});
} else {
this.router.navigate(['rup/ejecucion', this.prestacion.id]);
}

this.router.navigate(['rup/ejecucion', this.prestacion.id]);
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
});
}

Expand Down
51 changes: 13 additions & 38 deletions src/app/modules/rup/services/prestaciones.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -620,21 +620,6 @@ export class PrestacionesService {
return this.patch(prestacion.id, data);
}

/**
* Método clonar. Inserta una copia de una prestacion.
* @param {any} prestacionCopia Recibe una copia de una prestacion
*/
clonar(prestacionCopia: any, estado: any): Observable<any> {

// Agregamos el estado de la prestacion copiada.
prestacionCopia.estados.push(estado);

// Eliminamos los id de la prestacion
delete prestacionCopia.id;
delete prestacionCopia._id;

return this.server.post(this.prestacionesUrl, prestacionCopia);
}

/**
* Devuelve un listado de prestaciones planificadas desde una prestación origen
Expand Down Expand Up @@ -713,31 +698,21 @@ export class PrestacionesService {
observer.complete();
return false;
} else {
const prestacionCopia = JSON.parse(JSON.stringify(prestacion));
const estado = { tipo: 'modificada', idOrigenModifica: prestacionCopia._id };

// Guardamos la prestacion copia
this.clonar(prestacionCopia, estado).subscribe(prestacionClonada => {
const prestacionModificada = prestacionClonada;

// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion',
estado: { tipo: 'ejecucion', idOrigenModifica: prestacionModificada.id }
};

// Vamos a cambiar el estado de la prestación a ejecucion
this.patch(prestacion.id, cambioEstado).subscribe(() => {
observer.next();
observer.complete();
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
observer.error();
observer.complete();
});
// hacemos el patch y luego creamos los planes
let cambioEstado: any = {
op: 'romperValidacion'
};

// En api el estado de la prestación cambia a ejecucion
this.patch(prestacion.id, cambioEstado).subscribe(() => {
observer.next();
observer.complete();
}, (err) => {
this.plex.toast('danger', 'ERROR: No es posible romper la validación de la prestación');
observer.error();
observer.complete();
});
}

});

});
Expand Down