feat(sat): factura global + fecha_efectiva, fallback tenant-contribuyente, fix anio_global typo
Factura Global & fecha_efectiva: - Migracion 045_factura_global.sql: periodicidad, meses_global, año_global, fecha_efectiva - sat-parser.service.ts: extrae InformacionGlobal del XML - sat.service.ts: calcFechaEfectiva con soporte bimestral (periodicidad 05) - metricas-compute, dashboard, impuestos, cfdi, export, conciliacion, alertas: reemplaza fecha_emision-1h por COALESCE(fecha_efectiva, fecha_emision-1h) - Script recalc-metricas.ts para recalculo manual Fallback datos fiscales tenant → contribuyente: - contribuyente.service.ts: fetchTenantFiscalData + mergeContribuyenteWithTenant rellena regimenFiscal, codigoPostal y domicilio cuando el contribuyente tiene el mismo RFC que el tenant y sus campos estan vacios - contribuyente.controller.ts y contribuyente-config.controller.ts: pasan req.user!.tenantId al servicio Fix critico SAT sync: - sat.service.ts: anio_global → año_global en INSERT/UPDATE de CFDIs (la migracion creo 'año_global' con tilde; el codigo usaba 'anio_global', causando fallo en 100% de inserciones de CFDI) - determineChunkMonths: salta sondeo si existe job previo con requestIds - MAX_POLL_ATTEMPTS: 45 → 500 (~8h) para syncs iniciales grandes Docs: - docs/sessions/2026-05-22-factura-global-contribuyente-fallback.md
This commit is contained in:
@@ -118,6 +118,10 @@ CREATE TABLE IF NOT EXISTS cfdis (
|
||||
facturapi_id VARCHAR(50),
|
||||
regimen_fiscal_emisor VARCHAR(3),
|
||||
regimen_fiscal_receptor VARCHAR(3),
|
||||
periodicidad VARCHAR(2),
|
||||
meses_global VARCHAR(10),
|
||||
año_global VARCHAR(4),
|
||||
fecha_efectiva DATE,
|
||||
creado_en TIMESTAMP DEFAULT NOW(),
|
||||
actualizado_en TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
11
apps/api/src/migrations/tenant/045_factura_global.sql
Normal file
11
apps/api/src/migrations/tenant/045_factura_global.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Migration: 007_factura_global
|
||||
-- Description: Agrega campos de InformacionGlobal y fecha_efectiva para facturas globales
|
||||
|
||||
ALTER TABLE cfdis
|
||||
ADD COLUMN IF NOT EXISTS periodicidad VARCHAR(2),
|
||||
ADD COLUMN IF NOT EXISTS meses_global VARCHAR(10),
|
||||
ADD COLUMN IF NOT EXISTS año_global VARCHAR(4),
|
||||
ADD COLUMN IF NOT EXISTS fecha_efectiva DATE;
|
||||
|
||||
-- Crear índice para acelerar métricas que filtran por fecha_efectiva
|
||||
CREATE INDEX IF NOT EXISTS idx_cfdis_fecha_efectiva ON cfdis(fecha_efectiva);
|
||||
Reference in New Issue
Block a user