/** * Diseca 2 complementos P de Horux 360 que el usuario espera ver en mayo * pero no aparecen. Verifica fecha_emision vs fecha_pago_p para entender * en qué mes los está sumando el cálculo. */ import { prisma, tenantDb } from '../src/config/database.js'; async function main() { const tenants = await prisma.tenant.findMany({ where: { active: true }, select: { id: true, rfc: true, nombre: true, databaseName: true }, }); const UUIDS = [ 'CFACB97E-5426-48D4-A3B9-06B5D160F307', '384CF943-EFB0-475A-B6B6-240E96088B37', ]; // Loop por todos los tenants for (const t of tenants) { const pool = await tenantDb.getPool(t.id, t.databaseName); console.log(`\n>>> Tenant: ${t.rfc} (${t.nombre}) <<<`); for (const uuid of UUIDS) { const { rows: [c] } = await pool.query(` SELECT uuid, type, tipo_comprobante, metodo_pago, forma_pago, uso_cfdi, cfdi_tipo_relacion, total_mxn, monto_pago_mxn, iva_traslado_pago_mxn, rfc_emisor, regimen_fiscal_emisor, rfc_receptor, regimen_fiscal_receptor, fecha_emision, fecha_pago_p, status FROM cfdis WHERE LOWER(uuid) = LOWER($1) `, [uuid]); console.log(`\n═══ CFDI ${uuid} ═══`); if (!c) { console.log(' (NO ENCONTRADO en BD de Horux 360)'); continue; } console.log(` Tipo: ${c.tipo_comprobante} ${c.metodo_pago || ''}`); console.log(` Status: ${c.status}`); console.log(` type (lado): ${c.type}`); console.log(` rfc_emisor: ${c.rfc_emisor} (régimen ${c.regimen_fiscal_emisor})`); console.log(` rfc_receptor: ${c.rfc_receptor} (régimen ${c.regimen_fiscal_receptor})`); console.log(` total_mxn: $${c.total_mxn}`); console.log(` monto_pago_mxn: $${c.monto_pago_mxn}`); console.log(` iva_traslado_pago: $${c.iva_traslado_pago_mxn}`); console.log(` ──────────────────────────────────────`); console.log(` fecha_emision: ${c.fecha_emision}`); console.log(` fecha_pago_p: ${c.fecha_pago_p}`); console.log(` ──────────────────────────────────────`); // Análisis: en qué mes "cae" según el cálculo de ingresos (Grupo 1 — FR_PAGO usa fecha_pago_p) const fecPago = c.fecha_pago_p ? new Date(c.fecha_pago_p) : null; const fecEmi = c.fecha_emision ? new Date(c.fecha_emision) : null; if (fecPago) { console.log(` En cálculo Ingresos: APARECE EN ${fecPago.getFullYear()}-${String(fecPago.getMonth() + 1).padStart(2, '0')}`); console.log(` (filtro: fecha_pago_p)`); } if (fecEmi) { console.log(` En filtros UI fecha: se EMITIÓ en ${fecEmi.getFullYear()}-${String(fecEmi.getMonth() + 1).padStart(2, '0')}`); } } } // close tenant loop await prisma.$disconnect(); } main().catch(e => { console.error(e); process.exit(1); });