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(() => {