Skip to content

Commit

Permalink
feat(rup): permisos especiales para validar (#2322)
Browse files Browse the repository at this point in the history
  • Loading branch information
liquid36 authored Jun 28, 2021
1 parent 1f27ffc commit e321fde
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
28 changes: 21 additions & 7 deletions src/app/modules/rup/components/ejecucion/puntoInicio.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ export class PuntoInicioComponent implements OnInit, OnDestroy {
public accesoHudsTurno = null;
public tieneAccesoHUDS: Boolean;
public matchPaciente: Boolean = true;
public prestacionesValidacion = this.auth.getPermissions('rup:validacion:?');

constructor(private router: Router,
private plex: Plex, public auth: Auth,
Expand Down Expand Up @@ -165,11 +166,16 @@ export class PuntoInicioComponent implements OnInit, OnDestroy {
this.agendasOriginales = JSON.parse(JSON.stringify(this.agendas));
// buscamos las que estan fuera de agenda para poder listarlas:
// son prestaciones sin turno creadas en la fecha seleccionada en el filtro
this.fueraDeAgenda = this.prestaciones.filter(p => (!p.solicitud.turno &&
(p.ejecucion.fecha >= moment(this.fecha).startOf('day').toDate() &&
p.ejecucion.fecha <= moment(this.fecha).endOf('day').toDate())
&& p.estados[p.estados.length - 1].createdBy.username === this.auth.usuario.username
&& (p.estados[p.estados.length - 1].tipo === 'ejecucion' || p.estados[p.estados.length - 1].tipo === 'validada')));
this.fueraDeAgenda = this.prestaciones.filter(p => {
const puedeValidar = this.prestacionesValidacion.some(tt => tt === p.solicitud.tipoPrestacion.id);
const estadoActual = p.estadoActual;
const creadaPorMi = estadoActual.createdBy.username === this.auth.usuario.username;
const esHoy = moment(p.ejecucion.fecha).isBetween(this.fecha, this.fecha, 'day', '[]');

return (!p.solicitud.turno && esHoy
&& (creadaPorMi || puedeValidar)
&& (estadoActual.tipo === 'ejecucion' || estadoActual.tipo === 'validada'));
});

// agregamos el original de las prestaciones que estan fuera
// de agenda para poder reestablecer los filtros
Expand Down Expand Up @@ -447,16 +453,24 @@ export class PuntoInicioComponent implements OnInit, OnDestroy {
* @memberof PuntoInicioComponent
*/
tienePermisos(turno) {
let existe = this.auth.getPermissions('rup:tipoPrestacion:?').find(permiso => (permiso === turno.tipoPrestacion._id));
const existe = this.auth.getPermissions('rup:tipoPrestacion:?').find(permiso => (permiso === turno.tipoPrestacion._id));
if (turno.prestacion) {
const permisoValidar = this.prestacionesValidacion.some(tt => tt === turno.prestacion.solicitud.tipoPrestacion.id);

const estado = turno.prestacion.estados[turno.prestacion.estados.length - 1];
if (estado.tipo !== 'pendiente' && estado.createdBy.username !== this.auth.usuario.username) {
if (estado.tipo !== 'pendiente' && !(estado.createdBy.username === this.auth.usuario.username || permisoValidar)) {
return false;
}
}
return existe;
}

checkPuedeValidar(prestacion) {
const miPrestacion = prestacion.estadoActual.createdBy.username === this.auth.usuario.username;
const permisoValidar = this.prestacionesValidacion.some(tt => tt === prestacion.solicitud.tipoPrestacion.id);
return miPrestacion || permisoValidar;
}

cargarTurnos(agenda) {
this.cancelarDinamica();
this.agendaSeleccionada = agenda ? agenda : 'fueraAgenda';
Expand Down
2 changes: 1 addition & 1 deletion src/app/modules/rup/components/ejecucion/puntoInicio.html
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@
</plex-button>

<plex-button size="block"
*ngIf="prestacion.estados[prestacion.estados.length - 1].tipo === 'ejecucion'"
*ngIf="prestacion.estados[prestacion.estados.length - 1].tipo === 'ejecucion' && checkPuedeValidar(prestacion)"
(click)="setRouteToParams(['ejecucion', prestacion.id]); prestacionNominalizada=prestacion.solicitud.tipoPrestacion.noNominalizada;accesoHudsPaciente = prestacion.paciente; accesoHudsTurno = null; accesoHudsPrestacion = prestacion.solicitud.tipoPrestacion.id; preAccesoHuds(motivoVerContinuarPrestacion)"
label="CONTINUAR REGISTRO" type="success btn-sm">
</plex-button>
Expand Down

0 comments on commit e321fde

Please sign in to comment.