From 7a97e278a2f275615b74118468d72dcb4f158aa6 Mon Sep 17 00:00:00 2001 From: Horacio Daniel Ros Date: Mon, 19 Oct 2026 10:18:26 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20ajustar=20el=20manejo=20de=20meses=20en?= =?UTF-8?q?=20filtros=20y=20c=C3=A1lculos=20de=20balances=20para=20compati?= =?UTF-8?q?bilidad=200-indexada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/Models/CashFlow/CashFlow.Adapter.Mongoose.ts | 4 +++- .../CashFlowBalance/CashFlowBalance.Adapter.Mongoose.ts | 3 ++- server/src/Models/CashFlowBalance/CashFlowBalance.ts | 5 ++++- .../org/profile/[id]/cash/resume/page.tsx | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/server/src/Models/CashFlow/CashFlow.Adapter.Mongoose.ts b/server/src/Models/CashFlow/CashFlow.Adapter.Mongoose.ts index 9bce510..cf73881 100644 --- a/server/src/Models/CashFlow/CashFlow.Adapter.Mongoose.ts +++ b/server/src/Models/CashFlow/CashFlow.Adapter.Mongoose.ts @@ -99,7 +99,9 @@ export class CashFlowAdapterMongoose implements ICashFlowAdapter { searchCriteria.year = filters.year; } - if (filters.month) { + // month 0 = enero: no usar truthy check, si no se dropea el filtro y enero + // queda sin filtrar (devolvería todos los meses del año). + if (typeof filters.month === "number") { searchCriteria.month = filters.month; } diff --git a/server/src/Models/CashFlowBalance/CashFlowBalance.Adapter.Mongoose.ts b/server/src/Models/CashFlowBalance/CashFlowBalance.Adapter.Mongoose.ts index 746526a..dc7a035 100644 --- a/server/src/Models/CashFlowBalance/CashFlowBalance.Adapter.Mongoose.ts +++ b/server/src/Models/CashFlowBalance/CashFlowBalance.Adapter.Mongoose.ts @@ -45,7 +45,8 @@ export class CashFlowBalanceAdapterMongoose implements ICashFlowBalanceAdapter { searchCriteria.companyId = filters.companyId; } - if (filters.month) { + // month 0 = enero: no usar truthy check, si no se dropea el filtro. + if (typeof filters.month === "number") { searchCriteria.month = filters.month; } diff --git a/server/src/Models/CashFlowBalance/CashFlowBalance.ts b/server/src/Models/CashFlowBalance/CashFlowBalance.ts index 6a643fa..47e1cc7 100644 --- a/server/src/Models/CashFlowBalance/CashFlowBalance.ts +++ b/server/src/Models/CashFlowBalance/CashFlowBalance.ts @@ -231,7 +231,10 @@ class CashFlowBalanceManager implements ICashFlowBalanceManager { const userSession = await this.validateSessionUser(data.sessionUser); await this.validatePermissions(String(userSession.id), data.companyId); - const months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + // Los balances se guardan con month 0-indexado (0 = enero ... 11 = diciembre), + // igual que dayjs.month(). No iterar de 1 a 12: eso saltea enero (key 0) + // y consultaba un mes 12 inexistente que el cliente renderiza como enero del año siguiente. + const months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; const year = data.year; const companyId = data.companyId; diff --git a/txclient/src/app/admin/(organization-profile)/org/profile/[id]/cash/resume/page.tsx b/txclient/src/app/admin/(organization-profile)/org/profile/[id]/cash/resume/page.tsx index a44a27b..9f57f55 100644 --- a/txclient/src/app/admin/(organization-profile)/org/profile/[id]/cash/resume/page.tsx +++ b/txclient/src/app/admin/(organization-profile)/org/profile/[id]/cash/resume/page.tsx @@ -149,7 +149,9 @@ export default function OrganizationCashFlowResume() { cashFlowCalculateBalance({ companyId: id, year: year, - month: month, + // TextMonth maneja meses 1-indexados (1 = enero); el storage de balances es + // 0-indexado (dayjs.month()), así que convertimos antes de enviar. + month: month - 1, sessionUser: SessionInfo.userId, }) .then(() => {