@extends('layouts.enterprise')
@section('title', 'Reportes')
@section('content')
@php
$profitFilters = $filters['profit'] ?? ['from' => $defaults['from'], 'to' => $defaults['to']];
$expenseFilters = $filters['expense'] ?? ['from' => $defaults['from'], 'to' => $defaults['to'], 'advances' => 'all'];
$crossFilters = $filters['cross'] ?? ['from' => $defaults['from'], 'to' => $defaults['to']];
$incomeFilters = $filters['income'] ?? ['from' => $defaults['from'], 'to' => $defaults['to']];
$requestFilters = $filters['request'] ?? ['from' => $defaults['from'], 'to' => $defaults['to']];
$vatMode = $filters['vat_mode'] ?? 'without';
$activeTabName = $activeTab ?? 'profit';
$reportsRouteName = request()->routeIs('accountant.reports.*') ? 'accountant.reports.index' : 'admin.reports.index';
$withoutVatUrl = route($reportsRouteName, array_merge(request()->except(['vat_mode']), ['vat_mode' => 'without', 'tab' => $activeTabName]));
$withVatUrl = route($reportsRouteName, array_merge(request()->except(['vat_mode']), ['vat_mode' => 'with', 'tab' => $activeTabName]));
$reportChartsPayload = [
'profit' => $profitData['charts'] ?? [],
'expense' => $expenseData['charts'] ?? [],
'cross' => $crossData['charts'] ?? [],
'income' => $incomeData['charts'] ?? [],
'request' => $requestData['charts'] ?? [],
];
@endphp
Reportes
Consulta ganancias, egresos, ingresos, solicitudes y cruce con rango de fechas por cada bloque.
Ganancias
Egresos
Ingresos
Solicitudes
General
Filtros de ganancias
@if(!($profitData['available'] ?? false))
{{ $profitData['message'] ?? 'No fue posible construir el reporte de ganancias.' }}
@endif
Ganancia en el rango
Ganancia por cliente
Ganancia mes a mes
Ganancia por años
Filtros de egresos
@if(!($expenseData['available'] ?? false))
{{ $expenseData['message'] ?? 'No fue posible construir el reporte de gastos.' }}
@elseif(!($expenseData['has_advance_column'] ?? false))
La columna de anticipos aún no existe en `invoice_payments`. Ejecuta migraciones para habilitar ese filtro.
@endif
Gastos en el rango
Gastos por proveedor
Gastos por impuestos
Gastos mes a mes
Gastos por años
Filtros del cruce
Cruce mensual (pastel)
Cruce por años (barras)
Filtros de ingresos
@if(!($incomeData['available'] ?? false))
{{ $incomeData['message'] ?? 'No fue posible construir el reporte de ingresos.' }}
@endif
Ingresos en el rango
Ingresos por cliente
Ingresos mes a mes
Ingresos por años
Ingresos por ejecutivo
Ingresos por ejecutivo y cliente
Proveedores totales: {{ number_format((int) ($requestData['totals']['providers_total'] ?? 0)) }}
Con factura: {{ number_format((int) ($requestData['totals']['providers_complete'] ?? 0)) }}
Sin factura: {{ number_format((int) ($requestData['totals']['providers_without_invoice'] ?? 0)) }}
Parciales: {{ number_format((int) ($requestData['totals']['providers_partial'] ?? 0)) }}
Pendientes por aprobar: {{ number_format((int) ($requestData['totals']['providers_pending_approval'] ?? 0)) }}
Filtros de solicitudes
@if(!($requestData['available'] ?? false))
{{ $requestData['message'] ?? 'No fue posible construir el reporte de solicitudes.' }}
@endif
Estatus de solicitudes
Estatus de proveedores
Solicitudes mes a mes
Proveedores con incidencias
Participación por proveedor
Solicitudes con más pendientes
@endsection
@push('scripts')
@endpush
@push('styles')
@endpush