diff --git a/apps/api/src/services/dashboard.service.ts b/apps/api/src/services/dashboard.service.ts index 7b1476f..e4934d8 100644 --- a/apps/api/src/services/dashboard.service.ts +++ b/apps/api/src/services/dashboard.service.ts @@ -1107,10 +1107,21 @@ export async function getKpis( const ctx = await resolveContribuyenteContext(pool, tenantId, contribuyenteId); const esEmisor = ctx.esEmisor; const esReceptor = ctx.esReceptor; - const ingresosData = await calcularIngresosPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId); - const egresosData = await calcularEgresosPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId); - const adquisicionData = await calcularAdquisicionesMercancias(pool, tenantId, fechaInicio, fechaFin, conciliacion, contribuyenteId); - const ivaData = await calcularIvaBalancePorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId); + const [ + ingresosData, + egresosData, + adquisicionData, + ivaData, + ncsEmitidasData, + ncsRecibidasData, + ] = await Promise.all([ + calcularIngresosPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId), + calcularEgresosPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId), + calcularAdquisicionesMercancias(pool, tenantId, fechaInicio, fechaFin, conciliacion, contribuyenteId), + calcularIvaBalancePorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId), + calcularNcsEmitidasPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId), + calcularNcsRecibidasPorRegimen(pool, tenantId, fechaInicio, fechaFin, undefined, undefined, conciliacion, contribuyenteId), + ]); // IVA a favor año actual: desde enero del año en curso const ivaAFavorAcumulado = await calcularIvaAFavorAcumulado(pool, tenantId, fechaFin, undefined, conciliacion, contribuyenteId); @@ -1163,6 +1174,10 @@ export async function getKpis( cfdisEmitidosPorRegimen: emitidosPorRegimen, cfdisRecibidos: recibidosPorRegimen.reduce((s: number, r: any) => s + r.total, 0), cfdisRecibidosPorRegimen: recibidosPorRegimen, + ncsEmitidas: ncsEmitidasData.total, + ncsEmitidasPorRegimen: ncsEmitidasData.porRegimen, + ncsRecibidas: ncsRecibidasData.total, + ncsRecibidasPorRegimen: ncsRecibidasData.porRegimen, }; } diff --git a/apps/web/app/(dashboard)/dashboard/page.tsx b/apps/web/app/(dashboard)/dashboard/page.tsx index 3fc3cb6..c18d1d5 100644 --- a/apps/web/app/(dashboard)/dashboard/page.tsx +++ b/apps/web/app/(dashboard)/dashboard/page.tsx @@ -19,6 +19,8 @@ import { AlertTriangle, ShoppingCart, CheckSquare, + FileMinus, + FilePlus, } from 'lucide-react'; import { cn } from '@horux/shared-ui'; import { FiscalDisclaimer } from '@/components/fiscal-disclaimer'; @@ -118,6 +120,15 @@ export default function DashboardPage() { ? kpis?.ivaBalancePorRegimen?.find(r => r.regimenClave === regimenSeleccionado)?.monto || 0 : kpis?.ivaBalance || 0; + // Notas de crédito + const ncsEmitidasDisplay = regimenSeleccionado + ? kpis?.ncsEmitidasPorRegimen?.find(r => r.regimenClave === regimenSeleccionado)?.monto || 0 + : kpis?.ncsEmitidas || 0; + + const ncsRecibidasDisplay = regimenSeleccionado + ? kpis?.ncsRecibidasPorRegimen?.find(r => r.regimenClave === regimenSeleccionado)?.monto || 0 + : kpis?.ncsRecibidas || 0; + const ivaAnterior = regimenSeleccionado ? kpisAnterior?.ivaBalancePorRegimen?.find(r => r.regimenClave === regimenSeleccionado)?.monto || 0 : kpisAnterior?.ivaBalance || 0; @@ -203,7 +214,7 @@ export default function DashboardPage() { {/* KPIs */} -