From 6a20a7fb3644d4dcbb890eba01b6f68acc5e0438 Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Fri, 20 Mar 2026 14:16:03 +0100 Subject: [PATCH] feat: enhance getCompatibileAnnunci query to include additional delivery month conditions --- .../server/controllers/servizio.controller.ts | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/apps/infoalloggi/src/server/controllers/servizio.controller.ts b/apps/infoalloggi/src/server/controllers/servizio.controller.ts index 617d3dd..d0fc572 100644 --- a/apps/infoalloggi/src/server/controllers/servizio.controller.ts +++ b/apps/infoalloggi/src/server/controllers/servizio.controller.ts @@ -1311,21 +1311,33 @@ export const getCompatibileAnnunci = async ({ } qry = qry.where("prezzo", "<=", servizio.budget * 1e2 * 1.2); // Allow 20% margin - + const { entromese } = servizio; const month = new Date().getMonth() + 1; // Months are 0-indexed in JS - if (servizio.entromese === month) { - qry = qry.where((eb) => - eb.or([ - eb("consegna", "=", 0), - eb("consegna", "=", servizio.entromese), - ]), - ); - } else if (servizio.entromese === 0) { - qry = qry.where((eb) => - eb.or([eb("consegna", "=", 0), eb("consegna", "=", month)]), - ); - } else { - qry = qry.where("consegna", "=", servizio.entromese); + if (entromese !== null) { + if (entromese === month) { + qry = qry.where((eb) => + eb.or([ + eb("consegna", "=", 0), + eb("consegna", "=", entromese), + eb("consegna", "=", entromese + 1), + ]), + ); + } else if (entromese === 0) { + qry = qry.where((eb) => + eb.or([ + eb("consegna", "=", 0), + eb("consegna", "=", month), + eb("consegna", "=", month + 1), + ]), + ); + } else { + qry = qry.where((eb) => + eb.or([ + eb("consegna", "=", entromese), + eb("consegna", "=", entromese + 1), + ]), + ); + } } return await qry.execute();