Skip to content

Commit

Permalink
feat(CIT): repara error al reasignar turnos asociados a TOP
Browse files Browse the repository at this point in the history
  • Loading branch information
ma7payne committed Jan 29, 2024
1 parent 8f08aa1 commit 6c193d7
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ export class DarTurnosComponent implements OnInit {
});
}
}

} else {
this.tipoTurno = 'programado';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { AgendaService } from '../../../../../services/turnos/agenda.service';
import { TurnoService } from '../../../../../services/turnos/turno.service';
import { SmsService } from './../../../../../services/turnos/sms.service';
import * as moment from 'moment';
import { PrestacionesService } from 'src/app/modules/rup/services/prestaciones.service';
import { map } from 'rxjs/operators';

@Component({
selector: 'reasignar-turno-agendas',
Expand Down Expand Up @@ -66,21 +68,23 @@ export class ReasignarTurnoAgendasComponent implements OnInit {
countBloques = [];

constructor(public plex: Plex, public auth: Auth, public serviceAgenda: AgendaService,
public serviceTurno: TurnoService, public smsService: SmsService) { }
public serviceTurno: TurnoService, public smsService: SmsService, public prestacionesService: PrestacionesService) { }

ngOnInit() {
this.hoy = new Date();
this.autorizado = this.auth.getPermissions('turnos:reasignarTurnos:?').length > 0;
this.agendasSimilares = [];
}

seleccionarCandidata(indiceTurno, indiceBloque, indiceAgenda) {
const turno = this.agendasSimilares[indiceAgenda].bloques[indiceBloque].turnos[indiceTurno];
const turnoSiguiente = this.agendasSimilares[indiceAgenda].bloques[indiceBloque].turnos[indiceTurno + 1];
const bloque = this.agendasSimilares[indiceAgenda].bloques[indiceBloque];
this.agendaSeleccionada = this.agendasSimilares[indiceAgenda];
asignarTipoTurno(bloque, turnoSuspendido) {
let tipoTurno;

if (turnoSuspendido && bloque.restantesGestion > 0) {
tipoTurno = 'gestion';

return tipoTurno;
}

// Si la agenda es del día
if (this.agendaSeleccionada.estado === 'publicada' && this.agendaSeleccionada.horaInicio >= moment().startOf('day').toDate() &&
this.agendaSeleccionada.horaInicio <= moment().endOf('day').toDate()) {
Expand All @@ -100,6 +104,10 @@ export class ReasignarTurnoAgendasComponent implements OnInit {
}
}

return tipoTurno;
}

asignarTurno(bloque, turno, turnoSiguiente, indiceBloque, indiceTurno, solicitud, tipoTurno) {
// Creo el Turno nuevo
const datosTurnoNuevo = {
idAgenda: this.agendaSeleccionada._id,
Expand All @@ -117,7 +125,7 @@ export class ReasignarTurnoAgendasComponent implements OnInit {
}
};

// ¿Ragnar Turno?
// ¿Reasignar Turno?
this.plex.confirm('Del ' + moment(this.turnoSeleccionado.horaInicio).format('DD/MM/YYYY [a las] HH:mm [hs]') + ' al ' + moment(turno.horaInicio).format('DD/MM/YYYY [a las] HH:mm [hs]'), '¿Reasignar Turno?').then((confirmado) => {

if (!confirmado) {
Expand Down Expand Up @@ -186,12 +194,56 @@ export class ReasignarTurnoAgendasComponent implements OnInit {
turno: turnoReasignado,
bloque: { id: this.datosAgenda.idBloque }
});
});

if (solicitud && tipoTurno !== 'gestion') {
const params = {
op: 'asignarTurno',
idTurno: turno.id
};

this.prestacionesService.patch(solicitud.id, params);
}
});
});
});
}

obtenerSupendido() {
const params = {
idPaciente: this.turnoSeleccionado?.paciente?.id,
prestacionDestino: this.turnoSeleccionado?.tipoPrestacion?.conceptId,
turnoSuspendido: this.turnoSeleccionado.id
};

let turnoSuspendido;

return this.prestacionesService.getSolicitudes(params).pipe(
map((prestaciones) => {
const solicitud = prestaciones.find((prestacion) => {
turnoSuspendido = prestacion.solicitud.historial.find(item => item.idTurnoSuspendido === this.turnoSeleccionado.id);

return !!turnoSuspendido;
});

return { solicitud, turnoSuspendido };
})
);
}

seleccionarCandidata(indiceTurno, indiceBloque, indiceAgenda) {
const turno = this.agendasSimilares[indiceAgenda].bloques[indiceBloque].turnos[indiceTurno];
const turnoSiguiente = this.agendasSimilares[indiceAgenda].bloques[indiceBloque].turnos[indiceTurno + 1];
const bloque = this.agendasSimilares[indiceAgenda].bloques[indiceBloque];

this.agendaSeleccionada = this.agendasSimilares[indiceAgenda];

if (this.turnoSeleccionado) {
this.obtenerSupendido().subscribe(({ solicitud, turnoSuspendido }) => {
const tipoTurno = this.asignarTipoTurno(bloque, turnoSuspendido);

this.asignarTurno(bloque, turno, turnoSiguiente, indiceBloque, indiceTurno, solicitud, tipoTurno);
});
}
}

// esta funcion se repite en suspender turno
Expand Down

0 comments on commit 6c193d7

Please sign in to comment.