Skip to content
Open
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
2 changes: 1 addition & 1 deletion modules/obraSocial/controller/puco.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export async function pacientePuco(documento, sexo) {
const codigoPuco = await Constantes.findOne({ nombre: 'codigoPuco' });
resultOS[i].nombre = obraSocial.nombre;
resultOS[i].financiador = obraSocial.nombre;
if (obraSocial.codigoPuco === parseInt(codigoPuco.key, 10)) {
if (codigoPuco && obraSocial.codigoPuco === parseInt(codigoPuco.key, 10)) {
resultOS[i]['numeroAfiliado'] = osPuco[i].numeroAfiliado;
}
}
Expand Down
30 changes: 14 additions & 16 deletions modules/turnos/routes/turno.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,26 +201,24 @@ router.patch('/turno/:idTurno/bloque/:idBloque/agenda/:idAgenda/', async (req: a

let posTurno: number;

let esHoy = false;
const posBloque = agendaRes.bloques.findIndex(item => item._id.toString() === req.body.idBloque.toString());

const posBloque = (agendaRes as any).bloques.findIndex(item => item._id.toString() === req.body.idBloque.toString());
// Verificamos si el día de la agenda coincide con la fecha actual
const hoyHrInicio = moment(new Date()).startOf('day').toDate();
const hoyHrFin = moment(new Date()).endOf('day').toDate();
const esHoy = (agendaRes.horaInicio >= hoyHrInicio && agendaRes.horaInicio <= hoyHrFin);

// Ver si el día de la agenda coincide con el día de hoy
if ((agendaRes as any).horaInicio >= moment(new Date()).startOf('day').toDate() && (agendaRes as any).horaInicio <= moment(new Date()).endOf('day').toDate()) {
esHoy = true;
}

const contieneBloqueSoloGestion = agendaRes.bloques.some((bloque: any) => bloque.reservadoGestion > 0 && bloque.accesoDirectoDelDia === 0 && bloque.accesoDirectoProgramado === 0 && bloque.reservadoProfesional === 0);
const contieneBloqueSoloProfesional = agendaRes.bloques.some((bloque: any) => bloque.reservadoProfesional > 0 && bloque.accesoDirectoDelDia === 0 && bloque.accesoDirectoProgramado === 0 && bloque.reservadoGestion === 0);
// Contadores de "delDia" y "programado" varían según si es el día de hoy o no
// agenda creada con turnos de acceso directo
const contieneAccesoDirecto = agendaRes.bloques[posBloque].accesoDirectoDelDia > 0 || agendaRes.bloques[posBloque].accesoDirectoProgramado > 0;

const countBloques = {
delDia: esHoy && !contieneBloqueSoloGestion ? (
((agendaRes as any).bloques[posBloque].restantesDelDia as number) +
((agendaRes as any).bloques[posBloque].restantesProgramados as number)
) : (agendaRes as any).bloques[posBloque].restantesDelDia,
programado: esHoy ? 0 : (agendaRes as any).bloques[posBloque].restantesProgramados,
gestion: esHoy && !contieneBloqueSoloGestion ? 0 : (agendaRes as any).bloques[posBloque].restantesGestion,
profesional: esHoy && !contieneBloqueSoloProfesional ? 0 : (agendaRes as any).bloques[posBloque].restantesProfesional,
delDia: (esHoy && contieneAccesoDirecto) ?
((agendaRes.bloques[posBloque].restantesDelDia as number) + (agendaRes.bloques[posBloque].restantesProgramados as number))
: agendaRes.bloques[posBloque].restantesDelDia,
programado: (esHoy && contieneAccesoDirecto) ? 0 : agendaRes.bloques[posBloque].restantesProgramados,
gestion: (esHoy && contieneAccesoDirecto) ? 0 : agendaRes.bloques[posBloque].restantesGestion,
profesional: (esHoy && contieneAccesoDirecto) ? 0 : agendaRes.bloques[posBloque].restantesProfesional,
mobile: esHoy ? 0 : (agendaRes as any).bloques[posBloque].restantesMobile,
};
posTurno = (agendaRes as any).bloques[posBloque].turnos.findIndex(item => item._id.toString() === req.body.idTurno.toString());
Expand Down