@extends('layouts.app') @section('titulo', 'Lotes y Vencimientos') @section('contenido')
{{-- HEADER --}}

Lotes y Vencimientos

Control de lotes ordenado por fecha de vencimiento más próxima (FEFO).

{{-- FILTROS --}}
@if ($almacenId) Limpiar @endif
{{-- TABLA --}}
@forelse ($productos as $p) @php $fechaVencimiento = $p->fecha_vencimiento ? \Carbon\Carbon::parse($p->fecha_vencimiento) : null; $dias = $fechaVencimiento ? (int) $hoy->diffInDays($fechaVencimiento, false) : null; @endphp @empty @endforelse
PRODUCTO CATEGORÍA ALMACÉN LOTE STOCK VENCIMIENTO ESTADO
{{ $p->nombre }}
@if (!empty($p->codigo_barras))
Código: {{ $p->codigo_barras }}
@endif
{{ $p->categoria_nombre ?? '—' }} @if (!empty($p->almacen_nombre)) {{ $p->almacen_nombre }} @else @endif {{ $p->lote ?: '—' }} @if ((int) $p->stock <= 0) 0 @else {{ number_format((int) $p->stock) }} @endif @if ($fechaVencimiento) {{ $fechaVencimiento->format('d/m/Y') }} @else @endif @if ($dias === null) Sin fecha @elseif ($dias < 0) Vencido hace {{ abs($dias) }} d @elseif ($dias <= 30) Vence en {{ $dias }} d @elseif ($dias <= 60) Vence en {{ $dias }} d @else Vigente @endif

No hay lotes registrados.

No se encontraron productos con fecha de vencimiento y stock disponible.

{{-- PAGINACIÓN --}} @if ($productos->hasPages())
Mostrando {{ $productos->firstItem() ?? 0 }} a {{ $productos->lastItem() ?? 0 }} de {{ $productos->total() }} registros
{{ $productos->links() }}
@endif
@endsection