Initial commit - Horux Despachos NL
This commit is contained in:
71
apps/api/scripts/debug-drill-buckets.ts
Normal file
71
apps/api/scripts/debug-drill-buckets.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* Ejecuta los 3 nuevos buckets de drill-down (ncs_emitidas, ncs_recibidas,
|
||||
* no_deducibles_efectivo) directamente contra una BD tenant para verificar
|
||||
* que cada uno produce resultados distintos. Sirve para descartar hipótesis
|
||||
* de bug en frontend / cache / dev server stale.
|
||||
*/
|
||||
import { prisma, tenantDb } from '../src/config/database.js';
|
||||
|
||||
async function main() {
|
||||
const rfc = process.argv[2] || 'DESPACHO_MO7JE8BZ_VDOPR';
|
||||
const fi = process.argv[3] || '2025-08-01';
|
||||
const ff = process.argv[4] || '2025-08-31';
|
||||
|
||||
const t = await prisma.tenant.findFirst({ where: { rfc } });
|
||||
if (!t) { console.log('Tenant', rfc, 'no encontrado'); return; }
|
||||
const pool = await tenantDb.getPool(t.id, t.databaseName);
|
||||
|
||||
console.log(`Tenant: ${rfc} — Período: ${fi} → ${ff}\n`);
|
||||
|
||||
const buckets = [
|
||||
{
|
||||
name: 'ncs_emitidas',
|
||||
sql: `
|
||||
SELECT COUNT(*)::int as n, COALESCE(SUM(total_mxn),0)::numeric(14,2) as total
|
||||
FROM cfdis
|
||||
WHERE type = 'EMITIDO'
|
||||
AND tipo_comprobante = 'E' AND metodo_pago = 'PUE'
|
||||
AND status NOT IN ('Cancelado','0')
|
||||
AND fecha_emision >= $1::date AND fecha_emision < ($2::date + interval '1 day')
|
||||
AND regimen_fiscal_emisor IS NOT NULL
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: 'ncs_recibidas',
|
||||
sql: `
|
||||
SELECT COUNT(*)::int as n, COALESCE(SUM(total_mxn),0)::numeric(14,2) as total
|
||||
FROM cfdis
|
||||
WHERE type = 'RECIBIDO'
|
||||
AND tipo_comprobante = 'E' AND metodo_pago = 'PUE'
|
||||
AND status NOT IN ('Cancelado','0')
|
||||
AND fecha_emision >= $1::date AND fecha_emision < ($2::date + interval '1 day')
|
||||
AND regimen_fiscal_receptor IS NOT NULL
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: 'no_deducibles_efectivo',
|
||||
sql: `
|
||||
SELECT COUNT(*)::int as n, COALESCE(SUM(total_mxn),0)::numeric(14,2) as total
|
||||
FROM cfdis
|
||||
WHERE type = 'RECIBIDO'
|
||||
AND forma_pago = '01'
|
||||
AND (
|
||||
(tipo_comprobante = 'I' AND metodo_pago = 'PUE' AND COALESCE(total_mxn, 0) > 2000)
|
||||
OR (tipo_comprobante = 'P' AND COALESCE(monto_pago_mxn, 0) > 2000)
|
||||
)
|
||||
AND status NOT IN ('Cancelado','0')
|
||||
AND fecha_emision >= $1::date AND fecha_emision < ($2::date + interval '1 day')
|
||||
AND regimen_fiscal_receptor IS NOT NULL
|
||||
`,
|
||||
},
|
||||
];
|
||||
|
||||
for (const b of buckets) {
|
||||
const { rows: [r] } = await pool.query(b.sql, [fi, ff]);
|
||||
console.log(`${b.name.padEnd(28)} → ${r.n} fila(s), total = $${Number(r.total).toLocaleString('es-MX')}`);
|
||||
}
|
||||
|
||||
await prisma.$disconnect();
|
||||
}
|
||||
|
||||
main().catch(e => { console.error(e); process.exit(1); });
|
||||
Reference in New Issue
Block a user