@extends('layouts.panel') @section('title', 'Analíticas - Panel Operativo') @section('content') @php // $formattedDishes ahora viene directamente del controlador @endphp {{-- ════════════════════════════════════════════════════════ PHP → JS BRIDGE: datos del backend pasados al frontend ════════════════════════════════════════════════════════ --}} {{-- ════════════ ENCABEZADO ════════════ --}}

Reporte y Analíticas

Hola, {{ $user->nombre_completo ?? 'Administrador' }} 👋

Resumen de rendimiento de tu negocio

{{-- Selector de periodo --}}
{{-- ════════════ KPI + GRÁFICA ════════════ --}}
{{-- Gráfica principal --}}
— 0.0%

Ingresos Totales

S/ 0.00

{{-- KPIs laterales --}}
Órdenes

en el período

Ticket Prom.

por orden

Mejor Período

{{-- ════════════ SUCURSALES ════════════ --}}

Rendimiento de Sucursales

Últimos 30 días · {{ $sucursales->count() }} sucursal{{ $sucursales->count() !== 1 ? 'es' : '' }}
@forelse($sucursales as $branch) @php // Revenue de esta sucursal (Normalizado a Mayúsculas) $bid = strtoupper(trim((string)$branch->id_sucursal)); $stat = $sucursalesStats[$bid] ?? null; $total30d = $stat ? (float)$stat->total_30d : 0; $totalOrdenes = $stat ? (int)$stat->total_ordenes : 0; $meta = $branch->meta_ventas_mensual ? (float)$branch->meta_ventas_mensual : 0; $pct = ($meta > 0 && $total30d > 0) ? min(round(($total30d / $meta) * 100), 200) : 0; // Foto $foto = null; if (!empty($branch->imagen_url)) { $raw = $branch->imagen_url; $foto = str_starts_with($raw, 'http') ? $raw : url('/api/Security/uploads/' . ltrim(str_replace(['uploads/', 'uploads\\'], '', $raw), '/\\')); } // Dirección y Extracción de Ciudad $rawDir = $branch->direccion ?? ''; $parts = explode(' · ', $rawDir); $ciudad = (count($parts) > 1) ? end($parts) : 'General'; $lugar = trim($branch->direccion ?? ''); if (!$lugar) $lugar = 'Sin dirección registrada'; // Latitud / longitud para mapa $lat = !empty($branch->latitud) ? $branch->latitud : 'null'; $lng = !empty($branch->longitud) ? $branch->longitud : 'null'; @endphp
{{-- Imagen de sucursal --}}
@if($foto) {{ $branch->nombre }} @else
@endif {{-- Estado badge --}}
@php $activo = true; /* Valor por defecto ya que "estado" no existe en BD */ @endphp {{ $activo ? 'ACTIVO' : 'INACTIVO' }}
{{-- Botón mapa --}}
{{-- Info Card --}}

{{ $branch->nombre }}

{{ $ciudad }}

{{ Str::limit($lugar, 40) }}

{{-- Revenue --}}

Ingresos 30d

S/ {{ number_format($total30d, 0, '.', ',') }}

Órdenes

{{ $totalOrdenes }}

{{-- Barra de meta --}} @if($meta > 0)
Meta mensual {{ $pct }}%

Meta: S/ {{ number_format($meta, 0, '.', ',') }}

@endif
@empty

No hay sucursales registradas en esta empresa

@endforelse
{{-- ════════════ TOP PLATOS ════════════ --}}

🏆 Platos Más Vendidos

Ranking Histórico (Total)
Cargando datos...
@endsection @push('scripts') @vite(['src/assets/js/admin/analytics.js']) @endpush