From 6cfe51ca9666e78f8317b601bbb83ddef6d0a65a Mon Sep 17 00:00:00 2001 From: mcele Date: Wed, 22 Oct 2025 14:31:37 -0300 Subject: [PATCH 1/2] fix(Constantes): control por faltante de info obtenida de la BD --- modules/obraSocial/controller/puco.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/obraSocial/controller/puco.ts b/modules/obraSocial/controller/puco.ts index c7e7f41d1..c87d86d8a 100644 --- a/modules/obraSocial/controller/puco.ts +++ b/modules/obraSocial/controller/puco.ts @@ -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; } } From 40eaf7938e958e428041317b5fc0f954b52cd973 Mon Sep 17 00:00:00 2001 From: mcele Date: Wed, 22 Oct 2025 14:33:39 -0300 Subject: [PATCH 2/2] =?UTF-8?q?fix(citas):=20Cambia=20control=20de=20turno?= =?UTF-8?q?s=20restantes=20en=20la=20daci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/turnos/routes/turno.ts | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/modules/turnos/routes/turno.ts b/modules/turnos/routes/turno.ts index cd9a858a9..f38b1b6ee 100644 --- a/modules/turnos/routes/turno.ts +++ b/modules/turnos/routes/turno.ts @@ -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());