Skip to content

Commit

Permalink
feat(CIT): reasigna turnos en agenda suspendida desde TOP (#2927)
Browse files Browse the repository at this point in the history
  • Loading branch information
ma7payne authored Dec 15, 2023
1 parent 513b6c2 commit 9ffe7b8
Showing 1 changed file with 57 additions and 3 deletions.
60 changes: 57 additions & 3 deletions src/app/components/turnos/dar-turnos/dar-turnos.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Plex } from '@andes/plex';
import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';
import { Router } from '@angular/router';
import * as moment from 'moment';
import { Observable } from 'rxjs';
import { Observable, switchMap } from 'rxjs';
import { CarpetaPacienteService } from 'src/app/core/mpi/services/carpeta-paciente.service';
import { ITipoPrestacion } from 'src/app/interfaces/ITipoPrestacion';
import { PrestacionesService } from 'src/app/modules/rup/services/prestaciones.service';
Expand Down Expand Up @@ -91,7 +91,6 @@ export class DarTurnosComponent implements OnInit {
}
});
}

}

} else {
Expand Down Expand Up @@ -889,6 +888,56 @@ export class DarTurnosComponent implements OnInit {
}
}

hayTurnoSuspendido() {
if (this._solicitudPrestacion) {
const turno = this._solicitudPrestacion.solicitud.historial.reverse().find((turno) => !!turno.idTurnoSuspendido);

return turno?.idTurnoSuspendido;
}

return false;
}

reasignarTurno(turno_id, agenda_actual) {
this.serviceTurno.get({ id: turno_id }).pipe(
switchMap((result) => {
const { agenda_id, bloque_id, bloques } = result[0];

let turnoReasignado;

for (const key in bloques) {
turnoReasignado = bloques[key].turnos.find(turno => turno._id === turno_id);
}

const siguiente = {
idAgenda: agenda_id,
idBloque: bloque_id,
idTurno: turno_id
};

if (turnoReasignado?.reasignado) {
turnoReasignado.reasignado.siguiente = siguiente;
} else {
turnoReasignado.reasignado = {
siguiente: siguiente
};
}

// Datos del turno "nuevo", que se guardan en el turno "viejo" para poder referenciarlo
const datosTurnoReasignado = {
idAgenda: agenda_id,
idBloque: bloque_id,
idTurno: turno_id,
turno: turnoReasignado
};

return this.serviceTurno.put(datosTurnoReasignado);
})
).subscribe(() => {
this.guardarTurno(agenda_actual);
});
}

/**
* DAR TURNO
*/
Expand Down Expand Up @@ -921,7 +970,12 @@ export class DarTurnosComponent implements OnInit {
);

} else {
this.guardarTurno(agd);
const idTurnoSuspendido = this.hayTurnoSuspendido();

idTurnoSuspendido ?
this.reasignarTurno(idTurnoSuspendido, agd)
:
this.guardarTurno(agd);
}
}
});
Expand Down

0 comments on commit 9ffe7b8

Please sign in to comment.