@extends('dashboard.body.main') @section('container')
{{-- Encabezado de Página --}}

Control de Stock, Inventarios & Proveedores

Sincronización en tiempo real de recepciones de mercadería, compras a proveedores e inventario.

Lista Móvil / Terreno
{{-- Tarjetas KPI de Resumen de Inventario --}}
Total Catálogo

{{ number_format($totalProducts) }} items

Valor del Inventario

${{ number_format($totalInventoryValue, 0, ',', '.') }}

Stock Crítico (<= 5)

{{ number_format($criticalStockCount) }} prod.

Productos Agotados

{{ number_format($outOfStockCount) }} prod.

{{-- Navegación por Pestañas --}}
{{-- Pestaña 1: Inventario & Stock Actual --}}
{{-- Buscador y Filtros --}}
{{-- Tabla de Productos --}}
@forelse($products as $product) @empty @endforelse
Imagen SKU / Código Producto Categoría Proveedor P. Compra P. Venta Stock Actual Estado Acción
@if($product->product_image) @else @endif
{{ $product->product_code }}
{{ $product->product_name }}
{{ $product->category->name ?? 'Catálogo' }} {{ $product->supplier->name ?? 'Proveedor General' }} ${{ number_format($product->buying_price, 0, ',', '.') }} ${{ number_format($product->selling_price, 0, ',', '.') }} {{ number_format($product->product_store) }} uds Mín: {{ $product->min_stock ?? 5 }} @if($product->product_store <= 0) 🔴 Agotado @elseif($product->product_store <= ($product->min_stock ?? 5)) 🟡 Bajo (mín) @else 🟢 Normal @endif
No se encontraron productos con los filtros ingresados.
{{ $products->appends(request()->query())->links() }}
{{-- Pestaña 2: Proveedores --}}
Directiva de Proveedores
Registrar Proveedor
@forelse($suppliers as $sup) @empty @endforelse
Razón Social / Nombre Tipo Teléfono / Contacto Correo Electrónico Dirección Ciudad
{{ $sup->name }} {{ $sup->shopname }} {{ $sup->type ?? 'Distribuidor' }} {{ $sup->phone }} {{ $sup->email }} {{ $sup->address }} {{ $sup->city ?? 'Santiago' }}
No hay proveedores registrados.
{{-- Pestaña 4: Reabastecimiento Sugerido --}}
Propuesta de Reabastecimiento
Lista de productos que están bajo el mínimo de stock de alerta sugeridos para reposición.
@forelse($suggestedReorders as $item) @php $suggestedQty = max(1, ($item->min_stock ?? 5) * 2 - intval($item->product_store)); @endphp @empty @endforelse
Producto Categoría Proveedor Principal Stock Actual Stock Mínimo Sugerido a Pedir Costo Unit. Acción
@if($item->product_image) @else
@endif
{{ $item->product_name }} SKU: {{ $item->product_code ?? 'Sin código' }}
{{ $item->category->name ?? 'Catálogo' }} {{ $item->supplier->name ?? 'Proveedor General' }} {{ number_format($item->product_store) }} uds {{ $item->min_stock ?? 5 }} uds +{{ $suggestedQty }} uds ${{ number_format($item->buying_price, 0, ',', '.') }}
Todo tu catálogo tiene stock saludable (sobre los mínimos de alerta). ¡Excelente!
{{-- Pestaña 3: Pedidos a Proveedores --}}
Historial de Pedidos de Compras
@forelse($purchaseOrders as $po) @empty @endforelse
N° Pedido Fecha Emisión Proveedor Ítems Monto Total Estado Acciones
{{ $po->order_number }} {{ \Carbon\Carbon::parse($po->order_date)->format('d/m/Y') }} {{ $po->supplier->name ?? 'N/A' }} {{ $po->items->count() }} producto(s) ${{ number_format($po->total_amount, 0, ',', '.') }} @if($po->status === 'received') 🟢 Recibido (Stock Sumado) @elseif($po->status === 'cancelled') ⚪ Cancelado @else 🟡 Pendiente de Recepción @endif @if($po->status === 'pending')
@csrf
@else Concluso @endif
No se registran órdenes de compra a proveedores.
{{-- Pestaña 4: Historial de Entradas, Salidas y Mermas --}}
Auditoría de Movimientos: Entradas, Ventas POS, Mermas y Ajustes
@forelse($stockMovements as $mov) @empty @endforelse
Fecha y Hora Producto Tipo de Movimiento Variación Stock Resultante Referencia / Detalle Usuario
{{ $mov->created_at ? $mov->created_at->format('d/m/Y H:i') : 'N/A' }} {{ $mov->product->product_name ?? 'Producto Eliminado' }} @if($mov->type === 'purchase_order') 📦 Recepción de Pedido @elseif($mov->type === 'spoilage') 🗑️ Merma / Consumo @elseif($mov->type === 'venta_pos') 🛍️ Venta en POS @elseif($mov->type === 'adjustment') 🔄 Conteo / Ajuste @elseif($mov->type === 'ventor_mobile') 📱 Ventor Móvil @else 📥 Ingreso Directo @endif {{ $mov->new_stock < $mov->old_stock ? '-' : '+' }}{{ $mov->quantity }} uds {{ $mov->old_stock }} ➔ {{ $mov->new_stock }} uds {{ $mov->reference }} @if($mov->notes) {{ $mov->notes }} @endif {{ $mov->user->name ?? 'Sistema' }}
Sin movimientos de stock registrados.
{{-- MODAL 1: Recepción Directa de Mercadería --}} {{-- MODAL 2: Emitir Nueva Orden de Compra --}} {{-- Modal Auditoría Avanzada de Producto --}} @endsection