@extends('layouts.app') @section('title', 'Logística') @section('page-title', 'Dashboard — Logística') @section('breadcrumb') @endsection @push('styles') @endpush @section('content')
Panel integral de almacén, movimientos y gestión administrativa
{{-- ===== FILA 1: KPIs principales ===== --}}

{{ number_format($kpis['ingresos']) }}

Ingresos

{{ number_format($kpis['egresos']) }}

Egresos

{{ number_format($kpis['productos']) }}

Stock (Productos)

{{ number_format($kpis['total_inventario']) }}

Total Inventario (uds)

{{-- ===== FILA 2: KPIs gestión ===== --}}

{{ number_format($kpis['requerimientos']) }}

Requerimientos

{{ number_format($kpis['ordenes_compra']) }}

Órdenes de Compra

{{ number_format($kpis['ordenes_servicio']) }}

Órdenes de Servicio

{{ number_format($kpis['pendientes_firma']) }}

Pendientes por Firma

{{-- ===== ALERTA STOCK MÍNIMO ===== --}} @if($bajoStock->count() > 0)
{{ $bajoStock->count() }} producto(s) con stock bajo o agotado:
@foreach($bajoStock as $p)
{{ Str::limit($p->nombre, 28) }}
Stock: {{ number_format($p->stock_actual, 2) }} / Mín: {{ number_format($p->stock_minimo, 2) }} {{ $p->unidadMedida?->abreviatura }}
@endforeach
Ver reporte completo
@endif {{-- ===== ALERTA LOTES POR VENCER ===== --}} @if($lotesVencidos > 0)
{{ $lotesVencidos }} lote(s) VENCIDOS con stock disponible. Revise y dé de baja o bloquee estos lotes. Ver Inventario
@endif @if($lotesPorVencer->count() > 0)
{{ $lotesPorVencer->count() }} lote(s) vencen en los próximos 30 días:
@foreach($lotesPorVencer as $l)
{{ Str::limit($l->producto?->nombre ?? $l->numero, 28) }}
Vence: {{ \Carbon\Carbon::parse($l->fecha_vencimiento)->format('d/m/Y') }} {{ \Carbon\Carbon::parse($l->fecha_vencimiento)->diffInDays(now()) }}d
Stock: {{ number_format($l->cantidad_actual,2) }} — Lote: {{ $l->numero }}
@endforeach
@endif {{-- ===== GRÁFICO ===== --}}

Ingresos vs Egresos por Mes (Últimos 6 meses)

@endsection @push('scripts') @endpush