diff --git a/src/app/components/top/pipes/botones.pipe.ts b/src/app/components/top/pipes/botones.pipe.ts index a59f730583..8fea12aece 100644 --- a/src/app/components/top/pipes/botones.pipe.ts +++ b/src/app/components/top/pipes/botones.pipe.ts @@ -22,12 +22,19 @@ export class BotonesSolicitudPipe implements PipeTransform { if (this.esEfectorDestino(prestacion)) { if (prestacion.estadoActual.tipo === 'pendiente' && prestacion ?.paciente && !prestacion.solicitud.turno) { botones.darTurno = true; - botones.anular = true; } if (prestacion.estadoActual.tipo === 'auditoria' || prestacion.estadoActual.tipo === 'rechazada') { botones.auditar = true; } } + // Si es el mismo usuario que creó la solicitud + if (this.esUsuarioCreador(prestacion)) { + // Si está en estado pendiente o auditoria Y no tuvo movimientos después de crearse, se podrá anular + if ((prestacion.estadoActual.tipo === 'auditoria' || prestacion.estadoActual.tipo === 'pendiente') + && prestacion.solicitud.historial.length === 1) { + botones.anular = true; + } + } return botones; } @@ -40,4 +47,8 @@ export class BotonesSolicitudPipe implements PipeTransform { return prestacion.solicitud.profesional?.id === this.auth.profesional; } + esUsuarioCreador(prestacion) { + return this.auth.usuario.id === prestacion.createdBy.id; + } + } diff --git a/src/app/modules/rup/interfaces/prestacion.interface.ts b/src/app/modules/rup/interfaces/prestacion.interface.ts index 472fa8d348..fc86d8c330 100644 --- a/src/app/modules/rup/interfaces/prestacion.interface.ts +++ b/src/app/modules/rup/interfaces/prestacion.interface.ts @@ -48,7 +48,8 @@ export class IPrestacion { // Registros de la solicitud ... para los planes o prestaciones futuras registros: IPrestacionRegistro[], organizacionDestino: any, - profesionalesDestino: any[] + profesionalesDestino: any[], + historial: any[] }; // Datos de la ejecución (i.e. realización)