From 3be73d240c7dda80061c301ec6b2603552dcbec8 Mon Sep 17 00:00:00 2001 From: aldoEMatamala Date: Fri, 8 Nov 2024 09:11:37 -0300 Subject: [PATCH] =?UTF-8?q?fix(MISC-368):=20Facturaci=C3=B3n=20no-nominali?= =?UTF-8?q?zadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estadistica/controller/procesarAgendas.ts | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/estadistica/controller/procesarAgendas.ts b/modules/estadistica/controller/procesarAgendas.ts index 8d415a6e2f..6390854104 100644 --- a/modules/estadistica/controller/procesarAgendas.ts +++ b/modules/estadistica/controller/procesarAgendas.ts @@ -1,5 +1,7 @@ +import { Prestacion } from '../../rup/schemas/prestacion'; import { Agenda } from '../../turnos/schemas/agenda'; import * as mongoose from 'mongoose'; +import { IPrestacionDoc } from '../../rup/prestaciones.interface'; /** * @export Devuelve los turnos con paciente asignado que cumplen con los filtros @@ -40,7 +42,7 @@ export async function procesar(parametros: any) { match['tipoPrestaciones.conceptId'] = parametros.prestacion; matchTurno['$expr'] = { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }, { $eq: ['$_bloques.turnos.tipoPrestacion.conceptId', parametros.prestacion] }] }; } else { - matchTurno['$expr'] = { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }] }; + matchTurno['$expr'] = parametros.noNominalizada ? { $and: [{ $eq: ['$_bloques.turnos.estado', 'disponible'] }] } : { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }] }; } if (parametros.profesional) { @@ -215,7 +217,22 @@ export async function procesar(parametros: any) { $match: matchOS } ]; + try { + const turnosAsignados = await Agenda.aggregate(pipelineBuscador); + for (const turno of turnosAsignados) { + const prestacion: IPrestacionDoc = await Prestacion.findById(turno.idPrestacion) as IPrestacionDoc; + if (prestacion) { + const registro = prestacion.ejecucion?.registros?.find(x => x.valor?.informe !== null); + turno.actividad = registro.valor?.informe?.tipoActividad?.term; + turno.tematica = registro.valor?.informe?.tematica; + turno.profesionales = turno.profesionales; + turno.estadoActual = prestacion.estadoActual; + } + } + return turnosAsignados; + } catch (error) { + return (error); + } + - const turnosAsignados = await Agenda.aggregate(pipelineBuscador); - return turnosAsignados; }