feat(reportes): rediseño Estado de Resultados vertical con drill-down, análisis horizontal/vertical y export Excel
- Nuevo endpoint GET /reportes/estado-resultados-detallado con cálculo contable:
* Ventas, Devoluciones, Ventas netas, Costo de ventas, Utilidad bruta,
Gastos operativos, Utilidad de la operación
* Fórmula: subtotal_mxn - descuento_mxn (sin impuestos), nómina usa total_mxn
* Excluye anticipos (uso_cfdi=P01 o clave_prod_serv=84111506)
* Filtro por régimen fiscal opcional
* Año anterior calculado automáticamente
- Nuevo endpoint GET /reportes/estado-resultados/drill-down:
* Nivel 1: resumen agrupado por RFC
* Nivel 2: CFDIs individuales filtrados por categoría
* Categorías: ventas, devoluciones, costo-ventas, gastos-operativos
- Nuevo endpoint GET /reportes/estado-resultados/export:
* Genera Excel con formato condicional (verde/rojo, negritas)
- Frontend:
* Tabla vertical con % vertical, año anterior y variación %
* Filas clickeables para drill-down modal de 2 niveles
* Top 10 Clientes/Proveedores mantenidos debajo
* Selector de régimen conectado al reporte
- Fix: NaN en total de drill-down nivel 2 por numeric como string en pg
* Agregado ::float en queries SQL de CFDIs individuales
This commit is contained in:
@@ -39,6 +39,26 @@ export interface ConcentradoRfc {
|
||||
cantidadCfdis: number;
|
||||
}
|
||||
|
||||
export interface EstadoResultadosDetallado {
|
||||
periodo: { inicio: string; fin: string };
|
||||
ventas: number;
|
||||
devoluciones: number;
|
||||
ventasNetas: number;
|
||||
costoVentas: number;
|
||||
utilidadBruta: number;
|
||||
gastosOperativos: number;
|
||||
utilidadOperacion: number;
|
||||
anterior: {
|
||||
ventas: number;
|
||||
devoluciones: number;
|
||||
ventasNetas: number;
|
||||
costoVentas: number;
|
||||
utilidadBruta: number;
|
||||
gastosOperativos: number;
|
||||
utilidadOperacion: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ReporteFilters {
|
||||
fechaInicio: string;
|
||||
fechaFin: string;
|
||||
|
||||
Reference in New Issue
Block a user