- Add exportConceptosToExcel function that fetches all filtered
conceptos (limit 10000) and generates Excel
- Export button now works for both CFDIs and Conceptos tabs
- Extra columns in Conceptos Excel (not visible in table):
Nombre Emisor, Nombre Receptor, Descuento, IVA Trasladado,
IVA Retencion, ISR Retencion, Tipo Comprobante, Estatus CFDI
Add Subtotal MXN, Saldo Insoluto, Metodo de Pago, Forma de Pago,
ISR Retencion, IVA Retencion, and Descuento to Excel export.
These columns are not visible in the frontend table but included
in both bulk and single CFDI exports.
- Add Conceptos tab in CFDI page with column filters, sorting, pagination
- Add GET /cfdi/conceptos endpoint with filters and orderBy
- Backfill cfdi_conceptos from legacy XMLs (824k concepts inserted)
- Fix CFDI delete button (bypass subscription check, add alerts)
- Fix export to Excel (fetch all filtered results, limit 10k)
- Fix facturacion page concepto delete bug (immutable updates, unique ids)
- Add Facturapi live key auto-generation and caching
- Fix SAT fechaPagoP parsing
- Add metrics cache support for current year
- Increase DB pool max to 15
- Fix CFDI type errors (ivaTraslado, tipoCambio, id types)
- Fix sidebar navigation type errors (Role vs literal tuples)
- Fix user invite type errors (UserInvite['role'])
- Fix login page PlatformRole type cast