From 3e4713909bf7c7827a5d3408348c1d909c911953 Mon Sep 17 00:00:00 2001 From: ma7payne Date: Tue, 10 Feb 2026 16:35:50 -0300 Subject: [PATCH] feat(TOP): modifica filtros para listado de solicitudes --- modules/rup/routes/prestacion.ts | 40 +++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/modules/rup/routes/prestacion.ts b/modules/rup/routes/prestacion.ts index 0a9d5d490..febf89372 100755 --- a/modules/rup/routes/prestacion.ts +++ b/modules/rup/routes/prestacion.ts @@ -358,14 +358,38 @@ router.get('/prestaciones/solicitudes', async (req: any, res, next) => { const sort = {}; sort['esPrioritario'] = 1; - if (req.query.ordenFecha || req.query.ordenFechaAsc) { - sort['solicitud.fecha'] = -1; - } else if (req.query.solicitudDesde && req.query.solicitudHasta) { - sort['solicitud.fecha'] = 1; - } else if (req.query.ordenFechaEjecucion) { - sort['ejecucion.fecha'] = -1; - } else if (req.query.solicitudDesdeActualizacion && req.query.solicitudHastaActualizacion) { - sort['updatedAt'] = 1; + if (req.query.sortBy) { + const sortMap = { + fechaSolicitud: 'solicitud.fecha', + fechaRegistro: 'createdAt', + actualizacion: 'updatedAt' + }; + + let sortBy = req.query.sortBy; + let sortOrder = -1; + + if (sortBy.endsWith('Asc')) { + sortBy = sortBy.replace('Asc', ''); + sortOrder = 1; + } else if (sortBy.endsWith('Desc')) { + sortBy = sortBy.replace('Desc', ''); + sortOrder = -1; + } + + const field = sortMap[sortBy]; + if (field) { + sort[field] = sortOrder; + } + } else { + if (req.query.ordenFecha || req.query.ordenFechaAsc) { + sort['solicitud.fecha'] = -1; + } else if (req.query.solicitudDesde && req.query.solicitudHasta) { + sort['solicitud.fecha'] = 1; + } else if (req.query.ordenFechaEjecucion) { + sort['ejecucion.fecha'] = -1; + } else if (req.query.solicitudDesdeActualizacion && req.query.solicitudHastaActualizacion) { + sort['updatedAt'] = 1; + } } pipeline.push({ $sort: sort });