diff --git a/fs-mcp/server/dist/modules/analytics/index.d.ts.map b/fs-mcp/server/dist/modules/analytics/index.d.ts.map index f2c46a8..29c84db 100644 --- a/fs-mcp/server/dist/modules/analytics/index.d.ts.map +++ b/fs-mcp/server/dist/modules/analytics/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAoH1D,eAAO,MAAM,cAAc,EAAE,IAAI,EAqQhC,CAAC;AAEF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAwuBlF"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAqH1D,eAAO,MAAM,cAAc,EAAE,IAAI,EAqQhC,CAAC;AAEF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAwuBlF"} \ No newline at end of file diff --git a/fs-mcp/server/dist/modules/analytics/index.js b/fs-mcp/server/dist/modules/analytics/index.js index 7dd0554..e46cb62 100644 --- a/fs-mcp/server/dist/modules/analytics/index.js +++ b/fs-mcp/server/dist/modules/analytics/index.js @@ -3,6 +3,7 @@ * Provides tools for analyzing customer behavior, product sales, billing trends, and business metrics */ import { fsClient } from '../../fs/client.js'; +import { parseFsDate } from '../../utils/fsDate.js'; import { fetchAllPaginated, idsFacturasPorEjercicio } from '../../utils/paginate.js'; import { extendedAnalyticsTools, handleExtendedAnalyticsTool } from './kpis-extended.js'; export const analyticsTools = [ @@ -296,7 +297,7 @@ export async function handleAnalyticsTool(name, args) { const now = new Date(); const recibosPorCliente = {}; for (const recibo of recibos) { - const vence = recibo.vencimiento ? new Date(recibo.vencimiento) : null; + const vence = recibo.vencimiento ? parseFsDate(recibo.vencimiento) : null; const estaVencido = recibo.vencido === true || (vence !== null && vence < now); if (!estaVencido) continue; @@ -341,7 +342,7 @@ export async function handleAnalyticsTool(name, args) { // Agrupar códigos de clientes que compraron en el período const clientesConCompras = new Set(); for (const factura of facturas) { - const fechaFactura = new Date(factura.fecha); + const fechaFactura = parseFsDate(factura.fecha); if (fechaFactura >= fechaLimite) { clientesConCompras.add(factura.codcliente); } @@ -355,14 +356,14 @@ export async function handleAnalyticsTool(name, args) { let diasSinCompras = Infinity; for (const factura of facturas) { if (factura.codcliente === cliente.codcliente) { - const fechaFactura = new Date(factura.fecha); - if (!ultimaCompra || new Date(ultimaCompra) < fechaFactura) { + const fechaFactura = parseFsDate(factura.fecha); + if (!ultimaCompra || parseFsDate(ultimaCompra) < fechaFactura) { ultimaCompra = factura.fecha; } } } if (ultimaCompra) { - const días = Math.floor((ahora.getTime() - new Date(ultimaCompra).getTime()) / (1000 * 60 * 60 * 24)); + const días = Math.floor((ahora.getTime() - parseFsDate(ultimaCompra).getTime()) / (1000 * 60 * 60 * 24)); diasSinCompras = días; } clientesPerdidos.push({ @@ -583,7 +584,7 @@ export async function handleAnalyticsTool(name, args) { // Identificar las facturas dentro del rango de fechas const facturasEnRango = new Set(); for (const factura of facturas) { - const fechaFactura = new Date(factura.fecha); + const fechaFactura = parseFsDate(factura.fecha); if (fechaFactura >= fechaLimite) { facturasEnRango.add(factura.idfactura); } @@ -695,7 +696,7 @@ export async function handleAnalyticsTool(name, args) { // Agrupar por mes (totaliva, totalcoste, totalbeneficio son nombres reales en factura_cliente) const mesesMap = {}; for (const factura of facturas) { - const fecha = new Date(factura.fecha); + const fecha = parseFsDate(factura.fecha); const mes = `${fecha.getFullYear()}-${String(fecha.getMonth() + 1).padStart(2, '0')}`; let agregado = mesesMap[mes]; if (!agregado) { @@ -741,7 +742,7 @@ export async function handleAnalyticsTool(name, args) { // Agrupar por mes (totaliva, totalcoste, totalbeneficio son nombres reales en factura_cliente) const mesesMap = {}; for (const factura of facturas) { - const fecha = new Date(factura.fecha); + const fecha = parseFsDate(factura.fecha); const mes = `${fecha.getFullYear()}-${String(fecha.getMonth() + 1).padStart(2, '0')}`; let agregado = mesesMap[mes]; if (!agregado) { diff --git a/fs-mcp/server/dist/modules/analytics/index.js.map b/fs-mcp/server/dist/modules/analytics/index.js.map index 8c321c9..bbf872d 100644 --- a/fs-mcp/server/dist/modules/analytics/index.js.map +++ b/fs-mcp/server/dist/modules/analytics/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/analytics/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/analytics/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/fs-mcp/server/dist/modules/analytics/kpis-extended.d.ts.map b/fs-mcp/server/dist/modules/analytics/kpis-extended.d.ts.map index e7b5985..69d9251 100644 --- a/fs-mcp/server/dist/modules/analytics/kpis-extended.d.ts.map +++ b/fs-mcp/server/dist/modules/analytics/kpis-extended.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"kpis-extended.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/kpis-extended.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAkE1D,eAAO,MAAM,sBAAsB,EAAE,IAAI,EAuXxC,CAAC;AAMF,wBAAsB,2BAA2B,CAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAutClF"} \ No newline at end of file +{"version":3,"file":"kpis-extended.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/kpis-extended.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAmE1D,eAAO,MAAM,sBAAsB,EAAE,IAAI,EAuXxC,CAAC;AAMF,wBAAsB,2BAA2B,CAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CA8tClF"} \ No newline at end of file diff --git a/fs-mcp/server/dist/modules/analytics/kpis-extended.js b/fs-mcp/server/dist/modules/analytics/kpis-extended.js index f12d58e..75c7caf 100644 --- a/fs-mcp/server/dist/modules/analytics/kpis-extended.js +++ b/fs-mcp/server/dist/modules/analytics/kpis-extended.js @@ -7,6 +7,7 @@ * * Las definiciones de negocio que aplican van comentadas en cada handler. */ +import { parseFsDate } from '../../utils/fsDate.js'; import { fetchAllPaginated, idsFacturasPorEjercicio } from '../../utils/paginate.js'; // ============================================================================ // Helpers comunes @@ -596,15 +597,15 @@ export async function handleExtendedAnalyticsTool(name, args) { } case 'get_comparativa_ventas_periodos': { // Definición: suma facturas en cada rango y calcula crecimiento % entre ambos. - const fia = new Date(input.fecha_inicio_actual); - const ffa = new Date(input.fecha_fin_actual); - const fian = new Date(input.fecha_inicio_anterior); - const ffan = new Date(input.fecha_fin_anterior); + const fia = parseFsDate(input.fecha_inicio_actual); + const ffa = parseFsDate(input.fecha_fin_actual); + const fian = parseFsDate(input.fecha_inicio_anterior); + const ffan = parseFsDate(input.fecha_fin_anterior); const facturas = await fetchAllPaginated('/facturaclientes', {}, connection); const actual = nuevoAgregadoMonetario(); const anterior = nuevoAgregadoMonetario(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha >= fia && fecha <= ffa) acumularFactura(actual, f); else if (fecha >= fian && fecha <= ffan) @@ -698,10 +699,10 @@ export async function handleExtendedAnalyticsTool(name, args) { // ---------------------------------------------------------------- case 'get_funnel_ventas': { // Definición: cuenta presupuestos, pedidos, albaranes y facturas en un rango y suma sus totales. - const fechaInicio = input.fecha_inicio ? new Date(input.fecha_inicio) : null; - const fechaFin = input.fecha_fin ? new Date(input.fecha_fin) : null; + const fechaInicio = input.fecha_inicio ? parseFsDate(input.fecha_inicio) : null; + const fechaFin = input.fecha_fin ? parseFsDate(input.fecha_fin) : null; const enRango = (f) => { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fechaInicio && fecha < fechaInicio) return false; if (fechaFin && fecha > fechaFin) @@ -744,7 +745,7 @@ export async function handleExtendedAnalyticsTool(name, args) { const presupuestos = await fetchAllPaginated('/presupuestoclientes', { editable: true }, connection); const now = new Date(); const result = presupuestos.map(p => { - const finoferta = p.finoferta ? new Date(p.finoferta) : null; + const finoferta = p.finoferta ? parseFsDate(p.finoferta) : null; const vencido = finoferta !== null && finoferta < now; return { idpresupuesto: p.idpresupuesto, @@ -791,7 +792,7 @@ export async function handleExtendedAnalyticsTool(name, args) { fecha: p.fecha, total: p.total, totalbeneficio: p.totalbeneficio, - diasDesdeFecha: diasEntre(new Date(p.fecha), now), + diasDesdeFecha: diasEntre(parseFsDate(p.fecha), now), })); detalle.sort((a, b) => b.diasDesdeFecha - a.diasDesdeFecha); return jsonResponse({ @@ -813,7 +814,7 @@ export async function handleExtendedAnalyticsTool(name, args) { codagente: a.codagente, fecha: a.fecha, total: a.total, - diasDesdeEntrega: diasEntre(new Date(a.fecha), now), + diasDesdeEntrega: diasEntre(parseFsDate(a.fecha), now), })); detalle.sort((a, b) => b.diasDesdeEntrega - a.diasDesdeEntrega); return jsonResponse({ @@ -885,7 +886,7 @@ export async function handleExtendedAnalyticsTool(name, args) { const now = new Date(); const map = {}; for (const recibo of recibos) { - const vence = recibo.vencimiento ? new Date(recibo.vencimiento) : null; + const vence = recibo.vencimiento ? parseFsDate(recibo.vencimiento) : null; const estaVencido = recibo.vencido === true || (vence !== null && vence < now); if (!estaVencido) continue; @@ -920,7 +921,7 @@ export async function handleExtendedAnalyticsTool(name, args) { const facturas = await fetchAllPaginated('/facturaproveedores', params, connection); const map = {}; for (const f of facturas) { - const mes = mesISO(new Date(f.fecha)); + const mes = mesISO(parseFsDate(f.fecha)); if (!map[mes]) map[mes] = { mes, neto: 0, iva: 0, total: 0, numeroFacturas: 0 }; map[mes].neto += f.neto || 0; @@ -948,7 +949,7 @@ export async function handleExtendedAnalyticsTool(name, args) { for (const r of recibos) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); const dias = diasEntre(vence, now); const importe = r.importe || 0; if (dias <= 0) { @@ -989,7 +990,7 @@ export async function handleExtendedAnalyticsTool(name, args) { for (const r of recibos) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); const dias = diasEntre(vence, now); const importe = r.importe || 0; if (dias <= 0) { @@ -1029,10 +1030,10 @@ export async function handleExtendedAnalyticsTool(name, args) { for (const r of recibos) { if (!r.fecha || !r.fechapago) continue; - const emit = new Date(r.fecha); + const emit = parseFsDate(r.fecha); if (emit < fechaCorte) continue; - const pago = new Date(r.fechapago); + const pago = parseFsDate(r.fechapago); const dias = diasEntre(emit, pago); if (dias < 0) continue; @@ -1077,7 +1078,7 @@ export async function handleExtendedAnalyticsTool(name, args) { for (const r of cobrosPendientes) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); if (vence < now || vence > horizonte) continue; const k = claveSemana(vence); @@ -1088,7 +1089,7 @@ export async function handleExtendedAnalyticsTool(name, args) { for (const r of pagosPendientes) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); if (vence < now || vence > horizonte) continue; const k = claveSemana(vence); @@ -1195,7 +1196,7 @@ export async function handleExtendedAnalyticsTool(name, args) { ]); const facturasEnRango = new Set(); for (const f of facturas) { - if (new Date(f.fecha) >= fechaLimite) + if (parseFsDate(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); } const ventasPorReferencia = new Map(); @@ -1247,7 +1248,7 @@ export async function handleExtendedAnalyticsTool(name, args) { ]); const facturasEnRango = new Set(); for (const f of facturas) { - if (new Date(f.fecha) >= fechaLimite) + if (parseFsDate(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); } const referenciasVendidas = new Set(); @@ -1316,17 +1317,22 @@ export async function handleExtendedAnalyticsTool(name, args) { agg.totalFacturado += f.total || 0; agg.totalBeneficio += f.totalbeneficio || 0; agg.numeroFacturas += 1; - if (!agg.primeraCompra || f.fecha < agg.primeraCompra) + // Las fechas llegan como d-m-Y: compararlas como cadenas ordena por DÍA, + // no cronológicamente (31-01-2023 saldría "posterior" a 01-02-2023). + const fFecha = parseFsDate(f.fecha); + if (!agg.primeraCompra || fFecha < parseFsDate(agg.primeraCompra)) { agg.primeraCompra = f.fecha; - if (!agg.ultimaCompra || f.fecha > agg.ultimaCompra) + } + if (!agg.ultimaCompra || fFecha > parseFsDate(agg.ultimaCompra)) { agg.ultimaCompra = f.fecha; + } } const result = Object.values(map); for (const r of result) { r.ticketMedio = r.numeroFacturas > 0 ? r.totalFacturado / r.numeroFacturas : 0; r.margenPorcentaje = porcentaje(r.totalBeneficio, r.totalFacturado); if (r.primeraCompra && r.ultimaCompra) { - r.diasActivo = diasEntre(new Date(r.primeraCompra), new Date(r.ultimaCompra)); + r.diasActivo = diasEntre(parseFsDate(r.primeraCompra), parseFsDate(r.ultimaCompra)); } } result.sort((a, b) => b.totalFacturado - a.totalFacturado); @@ -1358,14 +1364,14 @@ export async function handleExtendedAnalyticsTool(name, args) { case 'get_clientes_nuevos_vs_recurrentes': { // Definición: dado un periodo, separa facturación entre clientes cuya primera compra // CAE en el periodo (nuevos) vs clientes con compras anteriores (recurrentes). - const fIni = new Date(input.fecha_inicio); - const fFin = new Date(input.fecha_fin); + const fIni = parseFsDate(input.fecha_inicio); + const fFin = parseFsDate(input.fecha_fin); const facturas = await fetchAllPaginated('/facturaclientes', {}, connection); // Calcular primera compra de cada cliente sobre toda la historia const primeraCompraPorCliente = new Map(); for (const f of facturas) { const cod = f.codcliente; - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); const actual = primeraCompraPorCliente.get(cod); if (!actual || fecha < actual) primeraCompraPorCliente.set(cod, fecha); @@ -1377,7 +1383,7 @@ export async function handleExtendedAnalyticsTool(name, args) { const clientesNuevos = new Set(); const clientesRecurrentes = new Set(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha < fIni || fecha > fFin) continue; const primera = primeraCompraPorCliente.get(f.codcliente); @@ -1460,7 +1466,7 @@ export async function handleExtendedAnalyticsTool(name, args) { const anterior = nuevoAgregadoMonetario(); const clientesActivos = new Set(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha >= inicioActual && fecha <= now) { acumularFactura(actual, f); clientesActivos.add(f.codcliente); @@ -1474,7 +1480,7 @@ export async function handleExtendedAnalyticsTool(name, args) { let cobrosVencidos = 0; for (const r of recibosCobrar) { cobrosPendientes += r.importe || 0; - const vence = r.vencimiento ? new Date(r.vencimiento) : null; + const vence = r.vencimiento ? parseFsDate(r.vencimiento) : null; if (r.vencido === true || (vence !== null && vence < now)) { cobrosVencidos += r.importe || 0; } @@ -1483,7 +1489,7 @@ export async function handleExtendedAnalyticsTool(name, args) { let pagosVencidos = 0; for (const r of recibosPagar) { pagosPendientes += r.importe || 0; - const vence = r.vencimiento ? new Date(r.vencimiento) : null; + const vence = r.vencimiento ? parseFsDate(r.vencimiento) : null; if (r.vencido === true || (vence !== null && vence < now)) { pagosVencidos += r.importe || 0; } diff --git a/fs-mcp/server/dist/modules/analytics/kpis-extended.js.map b/fs-mcp/server/dist/modules/analytics/kpis-extended.js.map index 6da8440..c70bf7e 100644 --- a/fs-mcp/server/dist/modules/analytics/kpis-extended.js.map +++ b/fs-mcp/server/dist/modules/analytics/kpis-extended.js.map @@ -1 +1 @@ -{"version":3,"file":"kpis-extended.js","sourceRoot":"","sources":["../../../src/modules/analytics/kpis-extended.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"kpis-extended.js","sourceRoot":"","sources":["../../../src/modules/analytics/kpis-extended.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.d.ts b/fs-mcp/server/dist/utils/fsDate.d.ts new file mode 100644 index 0000000..c4176b0 --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.d.ts @@ -0,0 +1,35 @@ +/** + * Parseo de las fechas tal como las devuelve la API REST de FacturaScripts. + * + * La API serializa las fechas con el estilo de FacturaScripts, que por defecto es + * `d-m-Y` (y es configurable a `d/m/Y`): `04-01-2023`, `01-09-2025 10:48:33`. En + * cambio, `new Date(...)` de JavaScript interpreta esa cadena como **MM-DD-YYYY**, + * con dos fallos silenciosos: + * + * new Date('04-01-2023') -> 1 de ABRIL de 2023 (mes y día intercambiados) + * new Date('19-08-2025') -> Invalid Date (no existe el mes 19) + * + * Es decir: con día <= 12 el registro se contabiliza en el mes equivocado y con + * día > 12 desaparece del cálculo, en ambos casos **sin ningún error**. Por eso + * cualquier valor de fecha que venga de la API debe pasar por aquí y nunca + * directamente por `new Date()`. + * + * Devuelve un `Date` para poder sustituir a `new Date(...)` tal cual en el sitio + * de llamada. Si el valor no es una fecha reconocible devuelve un `Date` + * inválido (igual que hacía `new Date`), de modo que las comparaciones siguen + * dando `false` y no cambia el comportamiento para entradas basura. Quien + * necesite distinguirlo puede comprobar `Number.isNaN(d.getTime())`. + */ +/** + * Convierte un valor de fecha de la API de FacturaScripts en un `Date`. + * Acepta `d-m-Y`, `d/m/Y` e ISO `Y-m-d`, todos con hora opcional. + */ +export declare function parseFsDate(value: unknown): Date; +/** Indica si el valor es una fecha de FacturaScripts interpretable. */ +export declare function esFechaValida(value: unknown): boolean; +/** + * Formatea una fecha en ISO `YYYY-MM-DD` (hora local, sin desplazamiento de zona, + * a diferencia de `toISOString()`). Es el formato que espera la API en los filtros. + */ +export declare function toIsoDate(fecha: Date): string; +//# sourceMappingURL=fsDate.d.ts.map \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.d.ts.map b/fs-mcp/server/dist/utils/fsDate.d.ts.map new file mode 100644 index 0000000..7781686 --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fsDate.d.ts","sourceRoot":"","sources":["../../src/utils/fsDate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoCH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAwBhD;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAK7C"} \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.js b/fs-mcp/server/dist/utils/fsDate.js new file mode 100644 index 0000000..01d63b6 --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.js @@ -0,0 +1,79 @@ +/** + * Parseo de las fechas tal como las devuelve la API REST de FacturaScripts. + * + * La API serializa las fechas con el estilo de FacturaScripts, que por defecto es + * `d-m-Y` (y es configurable a `d/m/Y`): `04-01-2023`, `01-09-2025 10:48:33`. En + * cambio, `new Date(...)` de JavaScript interpreta esa cadena como **MM-DD-YYYY**, + * con dos fallos silenciosos: + * + * new Date('04-01-2023') -> 1 de ABRIL de 2023 (mes y día intercambiados) + * new Date('19-08-2025') -> Invalid Date (no existe el mes 19) + * + * Es decir: con día <= 12 el registro se contabiliza en el mes equivocado y con + * día > 12 desaparece del cálculo, en ambos casos **sin ningún error**. Por eso + * cualquier valor de fecha que venga de la API debe pasar por aquí y nunca + * directamente por `new Date()`. + * + * Devuelve un `Date` para poder sustituir a `new Date(...)` tal cual en el sitio + * de llamada. Si el valor no es una fecha reconocible devuelve un `Date` + * inválido (igual que hacía `new Date`), de modo que las comparaciones siguen + * dando `false` y no cambia el comportamiento para entradas basura. Quien + * necesite distinguirlo puede comprobar `Number.isNaN(d.getTime())`. + */ +/** `d-m-Y` o `d/m/Y`, con hora opcional. */ +const RE_DMY = /^(\d{1,2})[-/](\d{1,2})[-/](\d{4})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/; +/** ISO `Y-m-d`, con hora opcional. Lo aceptamos porque la API lo admite en los filtros. */ +const RE_ISO = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/; +const FECHA_INVALIDA = () => new Date(NaN); +/** + * Construye la fecha en hora LOCAL y comprueba que no haya desbordado (p. ej. + * `31-02-2023`, que `new Date(2023, 1, 31)` convertiría en el 3 de marzo). + */ +function construir(anio, mes, dia, hora = 0, minuto = 0, segundo = 0) { + if (mes < 1 || mes > 12 || dia < 1 || dia > 31) + return FECHA_INVALIDA(); + const d = new Date(anio, mes - 1, dia, hora, minuto, segundo); + const desbordado = d.getFullYear() !== anio || d.getMonth() !== mes - 1 || d.getDate() !== dia; + return desbordado ? FECHA_INVALIDA() : d; +} +/** Convierte los grupos capturados (strings) a número, con 0 por defecto. */ +function num(v) { + return v === undefined ? 0 : Number(v); +} +/** + * Convierte un valor de fecha de la API de FacturaScripts en un `Date`. + * Acepta `d-m-Y`, `d/m/Y` e ISO `Y-m-d`, todos con hora opcional. + */ +export function parseFsDate(value) { + if (value instanceof Date) + return value; + if (typeof value !== 'string') + return FECHA_INVALIDA(); + const texto = value.trim(); + if (texto === '') + return FECHA_INVALIDA(); + const dmy = RE_DMY.exec(texto); + if (dmy) { + return construir(num(dmy[3]), num(dmy[2]), num(dmy[1]), num(dmy[4]), num(dmy[5]), num(dmy[6])); + } + const iso = RE_ISO.exec(texto); + if (iso) { + return construir(num(iso[1]), num(iso[2]), num(iso[3]), num(iso[4]), num(iso[5]), num(iso[6])); + } + return FECHA_INVALIDA(); +} +/** Indica si el valor es una fecha de FacturaScripts interpretable. */ +export function esFechaValida(value) { + return !Number.isNaN(parseFsDate(value).getTime()); +} +/** + * Formatea una fecha en ISO `YYYY-MM-DD` (hora local, sin desplazamiento de zona, + * a diferencia de `toISOString()`). Es el formato que espera la API en los filtros. + */ +export function toIsoDate(fecha) { + const y = fecha.getFullYear(); + const m = String(fecha.getMonth() + 1).padStart(2, '0'); + const d = String(fecha.getDate()).padStart(2, '0'); + return `${y}-${m}-${d}`; +} +//# sourceMappingURL=fsDate.js.map \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.js.map b/fs-mcp/server/dist/utils/fsDate.js.map new file mode 100644 index 0000000..9e23b6d --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fsDate.js","sourceRoot":"","sources":["../../src/utils/fsDate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.test.d.ts b/fs-mcp/server/dist/utils/fsDate.test.d.ts new file mode 100644 index 0000000..143c5cf --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.test.d.ts @@ -0,0 +1,12 @@ +/** + * Tests del parseo de fechas de la API de FacturaScripts. + * + * Se ejecutan con el runner integrado de Node (sin dependencias nuevas): + * npm test + * + * El caso crítico es el primero: `new Date('04-01-2023')` devolvía el 1 de ABRIL + * (mes y día intercambiados) y `new Date('19-08-2025')` devolvía Invalid Date, + * ambos en silencio. Eso falseaba todos los KPI que filtran o agrupan por fecha. + */ +export {}; +//# sourceMappingURL=fsDate.test.d.ts.map \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.test.d.ts.map b/fs-mcp/server/dist/utils/fsDate.test.d.ts.map new file mode 100644 index 0000000..06492de --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fsDate.test.d.ts","sourceRoot":"","sources":["../../src/utils/fsDate.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"} \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.test.js b/fs-mcp/server/dist/utils/fsDate.test.js new file mode 100644 index 0000000..7c08b5a --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.test.js @@ -0,0 +1,80 @@ +/** + * Tests del parseo de fechas de la API de FacturaScripts. + * + * Se ejecutan con el runner integrado de Node (sin dependencias nuevas): + * npm test + * + * El caso crítico es el primero: `new Date('04-01-2023')` devolvía el 1 de ABRIL + * (mes y día intercambiados) y `new Date('19-08-2025')` devolvía Invalid Date, + * ambos en silencio. Eso falseaba todos los KPI que filtran o agrupan por fecha. + */ +import { strict as assert } from 'node:assert'; +import { describe, it } from 'node:test'; +import { esFechaValida, parseFsDate, toIsoDate } from './fsDate.js'; +/** Compara solo la parte de fecha, para no depender de la zona horaria. */ +function iso(value) { + return toIsoDate(parseFsDate(value)); +} +describe('parseFsDate', () => { + it('interpreta d-m-Y (el formato que devuelve la API), no MM-DD-YYYY', () => { + // Con new Date() esto daba el 1 de abril: el bug que se está corrigiendo. + assert.equal(iso('04-01-2023'), '2023-01-04'); + assert.equal(iso('01-09-2025'), '2025-09-01'); + }); + it('acepta días > 12, que antes daban Invalid Date y se perdían del cálculo', () => { + assert.equal(iso('19-08-2025'), '2025-08-19'); + assert.equal(iso('31-12-2024'), '2024-12-31'); + }); + it('acepta d-m-Y con hora', () => { + const d = parseFsDate('01-09-2025 10:48:33'); + assert.equal(toIsoDate(d), '2025-09-01'); + assert.equal(d.getHours(), 10); + assert.equal(d.getMinutes(), 48); + assert.equal(d.getSeconds(), 33); + }); + it('acepta el separador de barra (estilo de fecha configurable en FS)', () => { + assert.equal(iso('04/01/2023'), '2023-01-04'); + assert.equal(iso('19/08/2025'), '2025-08-19'); + }); + it('acepta ISO, que es lo que admite la API en los filtros', () => { + assert.equal(iso('2023-01-04'), '2023-01-04'); + assert.equal(iso('2025-08-19'), '2025-08-19'); + assert.equal(iso('2025-09-01T10:48:33'), '2025-09-01'); + }); + it('devuelve la misma instancia si ya es un Date', () => { + const d = new Date(2023, 0, 4); + assert.equal(parseFsDate(d), d); + }); + it('devuelve Invalid Date con valores no interpretables', () => { + for (const v of [null, undefined, '', ' ', 42, {}, 'ayer', '16:14:10']) { + assert.ok(Number.isNaN(parseFsDate(v).getTime()), `debería ser inválido: ${String(v)}`); + } + }); + it('rechaza fechas que no existen en vez de desbordar al mes siguiente', () => { + // new Date(2023, 1, 31) daría el 3 de marzo sin avisar. + assert.ok(Number.isNaN(parseFsDate('31-02-2023').getTime())); + assert.ok(Number.isNaN(parseFsDate('00-01-2023').getTime())); + assert.ok(Number.isNaN(parseFsDate('01-13-2023').getTime())); + }); + it('ordena correctamente, que es de lo que dependen los rangos de los KPI', () => { + const enero = parseFsDate('04-01-2023'); + const agosto = parseFsDate('19-08-2025'); + assert.ok(enero < agosto); + }); +}); +describe('esFechaValida', () => { + it('distingue las fechas interpretables de las que no', () => { + assert.equal(esFechaValida('19-08-2025'), true); + assert.equal(esFechaValida('2025-08-19'), true); + assert.equal(esFechaValida(null), false); + assert.equal(esFechaValida('16:14:10'), false); + }); +}); +describe('toIsoDate', () => { + it('formatea en hora local, sin el desplazamiento de zona de toISOString', () => { + // A medianoche local, toISOString() puede devolver el día anterior. + assert.equal(toIsoDate(new Date(2025, 0, 1, 0, 0, 0)), '2025-01-01'); + assert.equal(toIsoDate(new Date(2025, 11, 31, 23, 59, 59)), '2025-12-31'); + }); +}); +//# sourceMappingURL=fsDate.test.js.map \ No newline at end of file diff --git a/fs-mcp/server/dist/utils/fsDate.test.js.map b/fs-mcp/server/dist/utils/fsDate.test.js.map new file mode 100644 index 0000000..9b64b57 --- /dev/null +++ b/fs-mcp/server/dist/utils/fsDate.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fsDate.test.js","sourceRoot":"","sources":["../../src/utils/fsDate.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/fs-mcp/server/package.json b/fs-mcp/server/package.json index a6c8c5d..dda99a8 100644 --- a/fs-mcp/server/package.json +++ b/fs-mcp/server/package.json @@ -8,6 +8,7 @@ "build": "tsc -b", "dev": "tsc --watch", "start": "node dist/index.js", + "test": "npm run build && node --test dist/utils/ dist/metadata/", "generate:metadata": "npm run build && node dist/scripts/generate-metadata.js" }, "dependencies": { diff --git a/fs-mcp/server/src/modules/analytics/index.ts b/fs-mcp/server/src/modules/analytics/index.ts index 5bef6e6..8f45ae4 100644 --- a/fs-mcp/server/src/modules/analytics/index.ts +++ b/fs-mcp/server/src/modules/analytics/index.ts @@ -5,6 +5,7 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { fsClient } from '../../fs/client.js'; +import { parseFsDate } from '../../utils/fsDate.js'; import { fetchAllPaginated, idsFacturasPorEjercicio } from '../../utils/paginate.js'; import { extendedAnalyticsTools, handleExtendedAnalyticsTool } from './kpis-extended.js'; @@ -419,7 +420,7 @@ export async function handleAnalyticsTool( const recibosPorCliente: Record = {}; for (const recibo of recibos) { - const vence = recibo.vencimiento ? new Date(recibo.vencimiento) : null; + const vence = recibo.vencimiento ? parseFsDate(recibo.vencimiento) : null; const estaVencido = recibo.vencido === true || (vence !== null && vence < now); if (!estaVencido) continue; @@ -473,7 +474,7 @@ export async function handleAnalyticsTool( // Agrupar códigos de clientes que compraron en el período const clientesConCompras = new Set(); for (const factura of facturas as any[]) { - const fechaFactura = new Date(factura.fecha); + const fechaFactura = parseFsDate(factura.fecha); if (fechaFactura >= fechaLimite) { clientesConCompras.add(factura.codcliente); } @@ -489,8 +490,8 @@ export async function handleAnalyticsTool( for (const factura of facturas as any[]) { if (factura.codcliente === cliente.codcliente) { - const fechaFactura = new Date(factura.fecha); - if (!ultimaCompra || new Date(ultimaCompra) < fechaFactura) { + const fechaFactura = parseFsDate(factura.fecha); + if (!ultimaCompra || parseFsDate(ultimaCompra) < fechaFactura) { ultimaCompra = factura.fecha; } } @@ -498,7 +499,7 @@ export async function handleAnalyticsTool( if (ultimaCompra) { const días = Math.floor( - (ahora.getTime() - new Date(ultimaCompra).getTime()) / (1000 * 60 * 60 * 24), + (ahora.getTime() - parseFsDate(ultimaCompra).getTime()) / (1000 * 60 * 60 * 24), ); diasSinCompras = días; } @@ -778,7 +779,7 @@ export async function handleAnalyticsTool( // Identificar las facturas dentro del rango de fechas const facturasEnRango = new Set(); for (const factura of facturas as any[]) { - const fechaFactura = new Date(factura.fecha); + const fechaFactura = parseFsDate(factura.fecha); if (fechaFactura >= fechaLimite) { facturasEnRango.add(factura.idfactura); } @@ -930,7 +931,7 @@ export async function handleAnalyticsTool( const mesesMap: Record = {}; for (const factura of facturas as any[]) { - const fecha = new Date(factura.fecha); + const fecha = parseFsDate(factura.fecha); const mes = `${fecha.getFullYear()}-${String(fecha.getMonth() + 1).padStart(2, '0')}`; let agregado = mesesMap[mes]; @@ -989,7 +990,7 @@ export async function handleAnalyticsTool( const mesesMap: Record = {}; for (const factura of facturas as any[]) { - const fecha = new Date(factura.fecha); + const fecha = parseFsDate(factura.fecha); const mes = `${fecha.getFullYear()}-${String(fecha.getMonth() + 1).padStart(2, '0')}`; let agregado = mesesMap[mes]; diff --git a/fs-mcp/server/src/modules/analytics/kpis-extended.ts b/fs-mcp/server/src/modules/analytics/kpis-extended.ts index f1e0667..3de8d7b 100644 --- a/fs-mcp/server/src/modules/analytics/kpis-extended.ts +++ b/fs-mcp/server/src/modules/analytics/kpis-extended.ts @@ -9,6 +9,7 @@ */ import { Tool } from '@modelcontextprotocol/sdk/types.js'; +import { parseFsDate } from '../../utils/fsDate.js'; import { fetchAllPaginated, idsFacturasPorEjercicio } from '../../utils/paginate.js'; // ============================================================================ @@ -665,10 +666,10 @@ export async function handleExtendedAnalyticsTool( case 'get_comparativa_ventas_periodos': { // Definición: suma facturas en cada rango y calcula crecimiento % entre ambos. - const fia = new Date(input.fecha_inicio_actual as string); - const ffa = new Date(input.fecha_fin_actual as string); - const fian = new Date(input.fecha_inicio_anterior as string); - const ffan = new Date(input.fecha_fin_anterior as string); + const fia = parseFsDate(input.fecha_inicio_actual as string); + const ffa = parseFsDate(input.fecha_fin_actual as string); + const fian = parseFsDate(input.fecha_inicio_anterior as string); + const ffan = parseFsDate(input.fecha_fin_anterior as string); const facturas = await fetchAllPaginated('/facturaclientes', {}, connection); @@ -676,7 +677,7 @@ export async function handleExtendedAnalyticsTool( const anterior = nuevoAgregadoMonetario(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha >= fia && fecha <= ffa) acumularFactura(actual, f); else if (fecha >= fian && fecha <= ffan) acumularFactura(anterior, f); } @@ -793,11 +794,11 @@ export async function handleExtendedAnalyticsTool( case 'get_funnel_ventas': { // Definición: cuenta presupuestos, pedidos, albaranes y facturas en un rango y suma sus totales. - const fechaInicio = input.fecha_inicio ? new Date(input.fecha_inicio as string) : null; - const fechaFin = input.fecha_fin ? new Date(input.fecha_fin as string) : null; + const fechaInicio = input.fecha_inicio ? parseFsDate(input.fecha_inicio as string) : null; + const fechaFin = input.fecha_fin ? parseFsDate(input.fecha_fin as string) : null; const enRango = (f: any) => { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fechaInicio && fecha < fechaInicio) return false; if (fechaFin && fecha > fechaFin) return false; return true; @@ -844,7 +845,7 @@ export async function handleExtendedAnalyticsTool( const now = new Date(); const result = presupuestos.map(p => { - const finoferta = p.finoferta ? new Date(p.finoferta) : null; + const finoferta = p.finoferta ? parseFsDate(p.finoferta) : null; const vencido = finoferta !== null && finoferta < now; return { idpresupuesto: p.idpresupuesto, @@ -895,7 +896,7 @@ export async function handleExtendedAnalyticsTool( fecha: p.fecha, total: p.total, totalbeneficio: p.totalbeneficio, - diasDesdeFecha: diasEntre(new Date(p.fecha), now), + diasDesdeFecha: diasEntre(parseFsDate(p.fecha), now), })); detalle.sort((a, b) => b.diasDesdeFecha - a.diasDesdeFecha); @@ -921,7 +922,7 @@ export async function handleExtendedAnalyticsTool( codagente: a.codagente, fecha: a.fecha, total: a.total, - diasDesdeEntrega: diasEntre(new Date(a.fecha), now), + diasDesdeEntrega: diasEntre(parseFsDate(a.fecha), now), })); detalle.sort((a, b) => b.diasDesdeEntrega - a.diasDesdeEntrega); @@ -1017,7 +1018,7 @@ export async function handleExtendedAnalyticsTool( }> = {}; for (const recibo of recibos) { - const vence = recibo.vencimiento ? new Date(recibo.vencimiento) : null; + const vence = recibo.vencimiento ? parseFsDate(recibo.vencimiento) : null; const estaVencido = recibo.vencido === true || (vence !== null && vence < now); if (!estaVencido) continue; @@ -1061,7 +1062,7 @@ export async function handleExtendedAnalyticsTool( }> = {}; for (const f of facturas) { - const mes = mesISO(new Date(f.fecha)); + const mes = mesISO(parseFsDate(f.fecha)); if (!map[mes]) map[mes] = { mes, neto: 0, iva: 0, total: 0, numeroFacturas: 0 }; map[mes].neto += f.neto || 0; map[mes].iva += f.totaliva || 0; @@ -1092,7 +1093,7 @@ export async function handleExtendedAnalyticsTool( for (const r of recibos) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); const dias = diasEntre(vence, now); const importe = r.importe || 0; @@ -1122,7 +1123,7 @@ export async function handleExtendedAnalyticsTool( for (const r of recibos) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); const dias = diasEntre(vence, now); const importe = r.importe || 0; @@ -1152,9 +1153,9 @@ export async function handleExtendedAnalyticsTool( for (const r of recibos) { if (!r.fecha || !r.fechapago) continue; - const emit = new Date(r.fecha); + const emit = parseFsDate(r.fecha); if (emit < fechaCorte) continue; - const pago = new Date(r.fechapago); + const pago = parseFsDate(r.fechapago); const dias = diasEntre(emit, pago); if (dias < 0) continue; @@ -1203,7 +1204,7 @@ export async function handleExtendedAnalyticsTool( for (const r of cobrosPendientes) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); if (vence < now || vence > horizonte) continue; const k = claveSemana(vence); if (!semanas[k]) semanas[k] = { semana: k, cobros: 0, pagos: 0, neto: 0 }; @@ -1211,7 +1212,7 @@ export async function handleExtendedAnalyticsTool( } for (const r of pagosPendientes) { if (!r.vencimiento) continue; - const vence = new Date(r.vencimiento); + const vence = parseFsDate(r.vencimiento); if (vence < now || vence > horizonte) continue; const k = claveSemana(vence); if (!semanas[k]) semanas[k] = { semana: k, cobros: 0, pagos: 0, neto: 0 }; @@ -1328,7 +1329,7 @@ export async function handleExtendedAnalyticsTool( const facturasEnRango = new Set(); for (const f of facturas) { - if (new Date(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); + if (parseFsDate(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); } const ventasPorReferencia = new Map(); @@ -1384,7 +1385,7 @@ export async function handleExtendedAnalyticsTool( const facturasEnRango = new Set(); for (const f of facturas) { - if (new Date(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); + if (parseFsDate(f.fecha) >= fechaLimite) facturasEnRango.add(f.idfactura); } const referenciasVendidas = new Set(); @@ -1473,8 +1474,15 @@ export async function handleExtendedAnalyticsTool( agg.totalFacturado += f.total || 0; agg.totalBeneficio += f.totalbeneficio || 0; agg.numeroFacturas += 1; - if (!agg.primeraCompra || f.fecha < agg.primeraCompra) agg.primeraCompra = f.fecha; - if (!agg.ultimaCompra || f.fecha > agg.ultimaCompra) agg.ultimaCompra = f.fecha; + // Las fechas llegan como d-m-Y: compararlas como cadenas ordena por DÍA, + // no cronológicamente (31-01-2023 saldría "posterior" a 01-02-2023). + const fFecha = parseFsDate(f.fecha); + if (!agg.primeraCompra || fFecha < parseFsDate(agg.primeraCompra)) { + agg.primeraCompra = f.fecha; + } + if (!agg.ultimaCompra || fFecha > parseFsDate(agg.ultimaCompra)) { + agg.ultimaCompra = f.fecha; + } } const result = Object.values(map); @@ -1482,7 +1490,7 @@ export async function handleExtendedAnalyticsTool( r.ticketMedio = r.numeroFacturas > 0 ? r.totalFacturado / r.numeroFacturas : 0; r.margenPorcentaje = porcentaje(r.totalBeneficio, r.totalFacturado); if (r.primeraCompra && r.ultimaCompra) { - r.diasActivo = diasEntre(new Date(r.primeraCompra), new Date(r.ultimaCompra)); + r.diasActivo = diasEntre(parseFsDate(r.primeraCompra), parseFsDate(r.ultimaCompra)); } } @@ -1519,8 +1527,8 @@ export async function handleExtendedAnalyticsTool( case 'get_clientes_nuevos_vs_recurrentes': { // Definición: dado un periodo, separa facturación entre clientes cuya primera compra // CAE en el periodo (nuevos) vs clientes con compras anteriores (recurrentes). - const fIni = new Date(input.fecha_inicio as string); - const fFin = new Date(input.fecha_fin as string); + const fIni = parseFsDate(input.fecha_inicio as string); + const fFin = parseFsDate(input.fecha_fin as string); const facturas = await fetchAllPaginated('/facturaclientes', {}, connection); @@ -1528,7 +1536,7 @@ export async function handleExtendedAnalyticsTool( const primeraCompraPorCliente = new Map(); for (const f of facturas) { const cod = f.codcliente; - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); const actual = primeraCompraPorCliente.get(cod); if (!actual || fecha < actual) primeraCompraPorCliente.set(cod, fecha); } @@ -1541,7 +1549,7 @@ export async function handleExtendedAnalyticsTool( const clientesRecurrentes = new Set(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha < fIni || fecha > fFin) continue; const primera = primeraCompraPorCliente.get(f.codcliente); if (!primera) continue; @@ -1631,7 +1639,7 @@ export async function handleExtendedAnalyticsTool( const clientesActivos = new Set(); for (const f of facturas) { - const fecha = new Date(f.fecha); + const fecha = parseFsDate(f.fecha); if (fecha >= inicioActual && fecha <= now) { acumularFactura(actual, f); clientesActivos.add(f.codcliente); @@ -1645,7 +1653,7 @@ export async function handleExtendedAnalyticsTool( let cobrosVencidos = 0; for (const r of recibosCobrar) { cobrosPendientes += r.importe || 0; - const vence = r.vencimiento ? new Date(r.vencimiento) : null; + const vence = r.vencimiento ? parseFsDate(r.vencimiento) : null; if (r.vencido === true || (vence !== null && vence < now)) { cobrosVencidos += r.importe || 0; } @@ -1655,7 +1663,7 @@ export async function handleExtendedAnalyticsTool( let pagosVencidos = 0; for (const r of recibosPagar) { pagosPendientes += r.importe || 0; - const vence = r.vencimiento ? new Date(r.vencimiento) : null; + const vence = r.vencimiento ? parseFsDate(r.vencimiento) : null; if (r.vencido === true || (vence !== null && vence < now)) { pagosVencidos += r.importe || 0; } diff --git a/fs-mcp/server/src/utils/fsDate.test.ts b/fs-mcp/server/src/utils/fsDate.test.ts new file mode 100644 index 0000000..6e50008 --- /dev/null +++ b/fs-mcp/server/src/utils/fsDate.test.ts @@ -0,0 +1,92 @@ +/** + * Tests del parseo de fechas de la API de FacturaScripts. + * + * Se ejecutan con el runner integrado de Node (sin dependencias nuevas): + * npm test + * + * El caso crítico es el primero: `new Date('04-01-2023')` devolvía el 1 de ABRIL + * (mes y día intercambiados) y `new Date('19-08-2025')` devolvía Invalid Date, + * ambos en silencio. Eso falseaba todos los KPI que filtran o agrupan por fecha. + */ + +import { strict as assert } from 'node:assert'; +import { describe, it } from 'node:test'; +import { esFechaValida, parseFsDate, toIsoDate } from './fsDate.js'; + +/** Compara solo la parte de fecha, para no depender de la zona horaria. */ +function iso(value: unknown): string { + return toIsoDate(parseFsDate(value)); +} + +describe('parseFsDate', () => { + it('interpreta d-m-Y (el formato que devuelve la API), no MM-DD-YYYY', () => { + // Con new Date() esto daba el 1 de abril: el bug que se está corrigiendo. + assert.equal(iso('04-01-2023'), '2023-01-04'); + assert.equal(iso('01-09-2025'), '2025-09-01'); + }); + + it('acepta días > 12, que antes daban Invalid Date y se perdían del cálculo', () => { + assert.equal(iso('19-08-2025'), '2025-08-19'); + assert.equal(iso('31-12-2024'), '2024-12-31'); + }); + + it('acepta d-m-Y con hora', () => { + const d = parseFsDate('01-09-2025 10:48:33'); + assert.equal(toIsoDate(d), '2025-09-01'); + assert.equal(d.getHours(), 10); + assert.equal(d.getMinutes(), 48); + assert.equal(d.getSeconds(), 33); + }); + + it('acepta el separador de barra (estilo de fecha configurable en FS)', () => { + assert.equal(iso('04/01/2023'), '2023-01-04'); + assert.equal(iso('19/08/2025'), '2025-08-19'); + }); + + it('acepta ISO, que es lo que admite la API en los filtros', () => { + assert.equal(iso('2023-01-04'), '2023-01-04'); + assert.equal(iso('2025-08-19'), '2025-08-19'); + assert.equal(iso('2025-09-01T10:48:33'), '2025-09-01'); + }); + + it('devuelve la misma instancia si ya es un Date', () => { + const d = new Date(2023, 0, 4); + assert.equal(parseFsDate(d), d); + }); + + it('devuelve Invalid Date con valores no interpretables', () => { + for (const v of [null, undefined, '', ' ', 42, {}, 'ayer', '16:14:10']) { + assert.ok(Number.isNaN(parseFsDate(v).getTime()), `debería ser inválido: ${String(v)}`); + } + }); + + it('rechaza fechas que no existen en vez de desbordar al mes siguiente', () => { + // new Date(2023, 1, 31) daría el 3 de marzo sin avisar. + assert.ok(Number.isNaN(parseFsDate('31-02-2023').getTime())); + assert.ok(Number.isNaN(parseFsDate('00-01-2023').getTime())); + assert.ok(Number.isNaN(parseFsDate('01-13-2023').getTime())); + }); + + it('ordena correctamente, que es de lo que dependen los rangos de los KPI', () => { + const enero = parseFsDate('04-01-2023'); + const agosto = parseFsDate('19-08-2025'); + assert.ok(enero < agosto); + }); +}); + +describe('esFechaValida', () => { + it('distingue las fechas interpretables de las que no', () => { + assert.equal(esFechaValida('19-08-2025'), true); + assert.equal(esFechaValida('2025-08-19'), true); + assert.equal(esFechaValida(null), false); + assert.equal(esFechaValida('16:14:10'), false); + }); +}); + +describe('toIsoDate', () => { + it('formatea en hora local, sin el desplazamiento de zona de toISOString', () => { + // A medianoche local, toISOString() puede devolver el día anterior. + assert.equal(toIsoDate(new Date(2025, 0, 1, 0, 0, 0)), '2025-01-01'); + assert.equal(toIsoDate(new Date(2025, 11, 31, 23, 59, 59)), '2025-12-31'); + }); +}); diff --git a/fs-mcp/server/src/utils/fsDate.ts b/fs-mcp/server/src/utils/fsDate.ts new file mode 100644 index 0000000..df0bee6 --- /dev/null +++ b/fs-mcp/server/src/utils/fsDate.ts @@ -0,0 +1,102 @@ +/** + * Parseo de las fechas tal como las devuelve la API REST de FacturaScripts. + * + * La API serializa las fechas con el estilo de FacturaScripts, que por defecto es + * `d-m-Y` (y es configurable a `d/m/Y`): `04-01-2023`, `01-09-2025 10:48:33`. En + * cambio, `new Date(...)` de JavaScript interpreta esa cadena como **MM-DD-YYYY**, + * con dos fallos silenciosos: + * + * new Date('04-01-2023') -> 1 de ABRIL de 2023 (mes y día intercambiados) + * new Date('19-08-2025') -> Invalid Date (no existe el mes 19) + * + * Es decir: con día <= 12 el registro se contabiliza en el mes equivocado y con + * día > 12 desaparece del cálculo, en ambos casos **sin ningún error**. Por eso + * cualquier valor de fecha que venga de la API debe pasar por aquí y nunca + * directamente por `new Date()`. + * + * Devuelve un `Date` para poder sustituir a `new Date(...)` tal cual en el sitio + * de llamada. Si el valor no es una fecha reconocible devuelve un `Date` + * inválido (igual que hacía `new Date`), de modo que las comparaciones siguen + * dando `false` y no cambia el comportamiento para entradas basura. Quien + * necesite distinguirlo puede comprobar `Number.isNaN(d.getTime())`. + */ + +/** `d-m-Y` o `d/m/Y`, con hora opcional. */ +const RE_DMY = /^(\d{1,2})[-/](\d{1,2})[-/](\d{4})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/; + +/** ISO `Y-m-d`, con hora opcional. Lo aceptamos porque la API lo admite en los filtros. */ +const RE_ISO = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/; + +const FECHA_INVALIDA = (): Date => new Date(NaN); + +/** + * Construye la fecha en hora LOCAL y comprueba que no haya desbordado (p. ej. + * `31-02-2023`, que `new Date(2023, 1, 31)` convertiría en el 3 de marzo). + */ +function construir( + anio: number, + mes: number, + dia: number, + hora = 0, + minuto = 0, + segundo = 0, +): Date { + if (mes < 1 || mes > 12 || dia < 1 || dia > 31) return FECHA_INVALIDA(); + + const d = new Date(anio, mes - 1, dia, hora, minuto, segundo); + const desbordado = + d.getFullYear() !== anio || d.getMonth() !== mes - 1 || d.getDate() !== dia; + + return desbordado ? FECHA_INVALIDA() : d; +} + +/** Convierte los grupos capturados (strings) a número, con 0 por defecto. */ +function num(v: string | undefined): number { + return v === undefined ? 0 : Number(v); +} + +/** + * Convierte un valor de fecha de la API de FacturaScripts en un `Date`. + * Acepta `d-m-Y`, `d/m/Y` e ISO `Y-m-d`, todos con hora opcional. + */ +export function parseFsDate(value: unknown): Date { + if (value instanceof Date) return value; + if (typeof value !== 'string') return FECHA_INVALIDA(); + + const texto = value.trim(); + if (texto === '') return FECHA_INVALIDA(); + + const dmy = RE_DMY.exec(texto); + if (dmy) { + return construir( + num(dmy[3]), num(dmy[2]), num(dmy[1]), + num(dmy[4]), num(dmy[5]), num(dmy[6]), + ); + } + + const iso = RE_ISO.exec(texto); + if (iso) { + return construir( + num(iso[1]), num(iso[2]), num(iso[3]), + num(iso[4]), num(iso[5]), num(iso[6]), + ); + } + + return FECHA_INVALIDA(); +} + +/** Indica si el valor es una fecha de FacturaScripts interpretable. */ +export function esFechaValida(value: unknown): boolean { + return !Number.isNaN(parseFsDate(value).getTime()); +} + +/** + * Formatea una fecha en ISO `YYYY-MM-DD` (hora local, sin desplazamiento de zona, + * a diferencia de `toISOString()`). Es el formato que espera la API en los filtros. + */ +export function toIsoDate(fecha: Date): string { + const y = fecha.getFullYear(); + const m = String(fecha.getMonth() + 1).padStart(2, '0'); + const d = String(fecha.getDate()).padStart(2, '0'); + return `${y}-${m}-${d}`; +} diff --git a/fs-mcp/server/tsconfig.tsbuildinfo b/fs-mcp/server/tsconfig.tsbuildinfo index b11e3c8..d6da145 100644 --- a/fs-mcp/server/tsconfig.tsbuildinfo +++ b/fs-mcp/server/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/connection-manager.ts","./src/index.ts","./src/local-loader.ts","./src/fs/client.ts","./src/metadata/enrich.ts","./src/metadata/index.ts","./src/metadata/registry.ts","./src/metadata/types.ts","./src/metadata/models/agencia_transporte.ts","./src/metadata/models/agente.ts","./src/metadata/models/albaran_cliente.ts","./src/metadata/models/albaran_proveedor.ts","./src/metadata/models/almacen.ts","./src/metadata/models/api_access.ts","./src/metadata/models/api_key.ts","./src/metadata/models/asiento.ts","./src/metadata/models/atributo.ts","./src/metadata/models/atributo_valor.ts","./src/metadata/models/attached_file.ts","./src/metadata/models/attached_file_relation.ts","./src/metadata/models/ciudad.ts","./src/metadata/models/cliente.ts","./src/metadata/models/codigo_postal.ts","./src/metadata/models/concepto_partida.ts","./src/metadata/models/contacto.ts","./src/metadata/models/cron_job.ts","./src/metadata/models/cuenta.ts","./src/metadata/models/cuenta_banco.ts","./src/metadata/models/cuenta_banco_cliente.ts","./src/metadata/models/cuenta_banco_proveedor.ts","./src/metadata/models/cuenta_especial.ts","./src/metadata/models/diario.ts","./src/metadata/models/divisa.ts","./src/metadata/models/doc_transformation.ts","./src/metadata/models/ejercicio.ts","./src/metadata/models/email_notification.ts","./src/metadata/models/email_sent.ts","./src/metadata/models/empresa.ts","./src/metadata/models/estado_documento.ts","./src/metadata/models/fabricante.ts","./src/metadata/models/factura_cliente.ts","./src/metadata/models/factura_proveedor.ts","./src/metadata/models/familia.ts","./src/metadata/models/forma_pago.ts","./src/metadata/models/formato_documento.ts","./src/metadata/models/grupo_clientes.ts","./src/metadata/models/identificador_fiscal.ts","./src/metadata/models/impuesto.ts","./src/metadata/models/impuesto_zona.ts","./src/metadata/models/linea_albaran_cliente.ts","./src/metadata/models/linea_albaran_proveedor.ts","./src/metadata/models/linea_factura_cliente.ts","./src/metadata/models/linea_factura_proveedor.ts","./src/metadata/models/linea_pedido_cliente.ts","./src/metadata/models/linea_pedido_proveedor.ts","./src/metadata/models/linea_presupuesto_cliente.ts","./src/metadata/models/linea_presupuesto_proveedor.ts","./src/metadata/models/log_message.ts","./src/metadata/models/page.ts","./src/metadata/models/page_filter.ts","./src/metadata/models/page_option.ts","./src/metadata/models/pago_cliente.ts","./src/metadata/models/pago_proveedor.ts","./src/metadata/models/pais.ts","./src/metadata/models/partida.ts","./src/metadata/models/pedido_cliente.ts","./src/metadata/models/pedido_proveedor.ts","./src/metadata/models/presupuesto_cliente.ts","./src/metadata/models/presupuesto_proveedor.ts","./src/metadata/models/producto.ts","./src/metadata/models/producto_imagen.ts","./src/metadata/models/producto_proveedor.ts","./src/metadata/models/proveedor.ts","./src/metadata/models/provincia.ts","./src/metadata/models/punto_interes_ciudad.ts","./src/metadata/models/recibo_cliente.ts","./src/metadata/models/recibo_proveedor.ts","./src/metadata/models/regularizacion_impuesto.ts","./src/metadata/models/retencion.ts","./src/metadata/models/role.ts","./src/metadata/models/role_access.ts","./src/metadata/models/role_user.ts","./src/metadata/models/secuencia_documento.ts","./src/metadata/models/serie.ts","./src/metadata/models/settings.ts","./src/metadata/models/stock.ts","./src/metadata/models/subcuenta.ts","./src/metadata/models/tarifa.ts","./src/metadata/models/user.ts","./src/metadata/models/variante.ts","./src/metadata/models/work_event.ts","./src/modules/accounting/index.ts","./src/modules/analytics/index.ts","./src/modules/analytics/kpis-extended.ts","./src/modules/communication/index.ts","./src/modules/configuration/index.ts","./src/modules/core-business/index.ts","./src/modules/finance/index.ts","./src/modules/geographic/index.ts","./src/modules/purchasing/index.ts","./src/modules/sales-orders/index.ts","./src/modules/schema/index.ts","./src/modules/system/index.ts","./src/resources/schema-resources.ts","./src/scripts/compare-model.ts","./src/scripts/dump-all-descriptions.ts","./src/scripts/generate-metadata.ts","./src/scripts/list-undocumented.ts","./src/scripts/test-metadata.ts","./src/types/facturascripts.ts","./src/utils/filterparser.ts","./src/utils/paginate.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["./src/connection-manager.ts","./src/index.ts","./src/local-loader.ts","./src/fs/client.ts","./src/metadata/enrich.ts","./src/metadata/index.ts","./src/metadata/registry.ts","./src/metadata/types.ts","./src/metadata/models/agencia_transporte.ts","./src/metadata/models/agente.ts","./src/metadata/models/albaran_cliente.ts","./src/metadata/models/albaran_proveedor.ts","./src/metadata/models/almacen.ts","./src/metadata/models/api_access.ts","./src/metadata/models/api_key.ts","./src/metadata/models/asiento.ts","./src/metadata/models/atributo.ts","./src/metadata/models/atributo_valor.ts","./src/metadata/models/attached_file.ts","./src/metadata/models/attached_file_relation.ts","./src/metadata/models/ciudad.ts","./src/metadata/models/cliente.ts","./src/metadata/models/codigo_postal.ts","./src/metadata/models/concepto_partida.ts","./src/metadata/models/contacto.ts","./src/metadata/models/cron_job.ts","./src/metadata/models/cuenta.ts","./src/metadata/models/cuenta_banco.ts","./src/metadata/models/cuenta_banco_cliente.ts","./src/metadata/models/cuenta_banco_proveedor.ts","./src/metadata/models/cuenta_especial.ts","./src/metadata/models/diario.ts","./src/metadata/models/divisa.ts","./src/metadata/models/doc_transformation.ts","./src/metadata/models/ejercicio.ts","./src/metadata/models/email_notification.ts","./src/metadata/models/email_sent.ts","./src/metadata/models/empresa.ts","./src/metadata/models/estado_documento.ts","./src/metadata/models/fabricante.ts","./src/metadata/models/factura_cliente.ts","./src/metadata/models/factura_proveedor.ts","./src/metadata/models/familia.ts","./src/metadata/models/forma_pago.ts","./src/metadata/models/formato_documento.ts","./src/metadata/models/grupo_clientes.ts","./src/metadata/models/identificador_fiscal.ts","./src/metadata/models/impuesto.ts","./src/metadata/models/impuesto_zona.ts","./src/metadata/models/linea_albaran_cliente.ts","./src/metadata/models/linea_albaran_proveedor.ts","./src/metadata/models/linea_factura_cliente.ts","./src/metadata/models/linea_factura_proveedor.ts","./src/metadata/models/linea_pedido_cliente.ts","./src/metadata/models/linea_pedido_proveedor.ts","./src/metadata/models/linea_presupuesto_cliente.ts","./src/metadata/models/linea_presupuesto_proveedor.ts","./src/metadata/models/log_message.ts","./src/metadata/models/page.ts","./src/metadata/models/page_filter.ts","./src/metadata/models/page_option.ts","./src/metadata/models/pago_cliente.ts","./src/metadata/models/pago_proveedor.ts","./src/metadata/models/pais.ts","./src/metadata/models/partida.ts","./src/metadata/models/pedido_cliente.ts","./src/metadata/models/pedido_proveedor.ts","./src/metadata/models/presupuesto_cliente.ts","./src/metadata/models/presupuesto_proveedor.ts","./src/metadata/models/producto.ts","./src/metadata/models/producto_imagen.ts","./src/metadata/models/producto_proveedor.ts","./src/metadata/models/proveedor.ts","./src/metadata/models/provincia.ts","./src/metadata/models/punto_interes_ciudad.ts","./src/metadata/models/recibo_cliente.ts","./src/metadata/models/recibo_proveedor.ts","./src/metadata/models/regularizacion_impuesto.ts","./src/metadata/models/retencion.ts","./src/metadata/models/role.ts","./src/metadata/models/role_access.ts","./src/metadata/models/role_user.ts","./src/metadata/models/secuencia_documento.ts","./src/metadata/models/serie.ts","./src/metadata/models/settings.ts","./src/metadata/models/stock.ts","./src/metadata/models/subcuenta.ts","./src/metadata/models/tarifa.ts","./src/metadata/models/user.ts","./src/metadata/models/variante.ts","./src/metadata/models/work_event.ts","./src/modules/accounting/index.ts","./src/modules/analytics/index.ts","./src/modules/analytics/kpis-extended.ts","./src/modules/communication/index.ts","./src/modules/configuration/index.ts","./src/modules/core-business/index.ts","./src/modules/finance/index.ts","./src/modules/geographic/index.ts","./src/modules/purchasing/index.ts","./src/modules/sales-orders/index.ts","./src/modules/schema/index.ts","./src/modules/system/index.ts","./src/resources/schema-resources.ts","./src/scripts/compare-model.ts","./src/scripts/dump-all-descriptions.ts","./src/scripts/generate-metadata.ts","./src/scripts/list-undocumented.ts","./src/scripts/test-metadata.ts","./src/types/facturascripts.ts","./src/utils/filterParser.ts","./src/utils/fsDate.test.ts","./src/utils/fsDate.ts","./src/utils/paginate.ts"],"version":"5.9.3"} \ No newline at end of file