@extends('../padre.padre') @section('styles') @endsection @section('contenido')
{{-- ENCABEZADO SUPERIOR --}}

Sugerido Predictivo PRO Transferencias

@include('menu.botonRegresar')
@if (session('mensaje')) @endif @if (session('mensaje_error')) @endif {{-- FORMULARIO DE PARÁMETROS Y CONTROL PREDICTIVO --}}
{{-- Columna 1: Fechas e ID --}}
{{-- Columna 2: Bodegas --}}
@foreach ($bodegas as $b)
id, $selectedBodegas) ? 'checked' : '' }}>
@endforeach
{{-- Columna 3: Filtros de Catálogo & Modo Transferencias --}}
{{-- Columna 4: Motor Predictivo ABC & Tiempos --}}
Provisión & Tiempos
{{-- Hidden Inputs para Provisión ABC --}} {{-- Barra de Acciones y Switches Principales (Línea Única Compacta) --}}
{{-- Switches Principales a la Izquierda --}}
{{-- Botones de Acción a la Derecha en la Misma Línea --}}
@isset($matriz) {{-- PANEL DE RESUMEN Y VALORIZACIÓN FINANCIERA --}}
{{-- Total General --}}
💰 Total Inversión Sugerida: ${{ number_format($valorizacionTotalGeneral ?? 0, 0, ',', '.') }}
{{-- Desglose Compras Regulares vs Transferencias --}}
🛒 Compras Regulares: ${{ number_format($valorizacionComprasRegulares ?? 0, 0, ',', '.') }}
🏷️ Transferencias Labs: ${{ number_format($valorizacionTransferencias ?? 0, 0, ',', '.') }}
{{-- Valorización Por Sede --}}
Por Sede: @foreach($bodegasColumnas as $bc)
{{ $bc->nombreBodega }}: ${{ number_format($valorizacionPorBodega[$bc->id] ?? 0, 0, ',', '.') }}
@endforeach
{{-- DATATABLES TOP CONTROL BAR --}}
{{-- DataTables Length Control (Mostrar X registros) --}}
Mostrar: registros
{{-- Quick Tags / Filtros Rápidos DataTables --}}
Rápidos: Restablecer Cálculos
{{-- DataTables Global Search & Counter --}}
0 / 0
{{-- TABLA MATRIZ PREDICTIVA PRO --}}
{{-- Columna 1 Fija: Producto / Marca --}} {{-- Columna 2 Fija: Clasificación ABC --}} {{-- Columna 3 Fija: Predictivo / Frecuencia & Recencia --}} {{-- Columna 4 Fija: Rotación e Inventario --}} {{-- Columna 5 Fija: Proveedor Sugerido --}} {{-- Columnas Dinámicas: Bodegas Compactas --}} @foreach($bodegasColumnas as $index => $bc) @endforeach {{-- Columna Fija Derecha: Total Sugerido --}} {{-- Fila 2 de Encabezado: FILTROS POR COLUMNA ESTILO DATATABLES (ULTRA-COMPACTA) --}} {{-- Filtro Col 1: Producto / Marca --}} {{-- Filtro Col 2: ABC --}} {{-- Filtro Col 3: Frecuencia / Dinámica --}} {{-- Filtro Col 4: Rot / Inv --}} {{-- Filtro Col 5: Proveedor Sugerido --}} {{-- Filtros Columnas Dinámicas: Bodegas --}} @foreach($bodegasColumnas as $index => $bc) @endforeach {{-- Filtro Columna Fija Derecha: Total Sugerido --}} @foreach ($matriz as $p) @php $catAbc = $p['categoriaAbc'] ?? 'C'; $badgeAbcClass = 'bg-secondary'; if ($catAbc == 'AAA') $badgeAbcClass = 'badge-abc-aaa'; elseif ($catAbc == 'AA') $badgeAbcClass = 'badge-abc-aa'; elseif ($catAbc == 'A') $badgeAbcClass = 'badge-abc-a'; elseif ($catAbc == 'B') $badgeAbcClass = 'badge-abc-b'; $esTrans = $p['esTransferencia'] ?? false; $searchIndex = strtolower(trim( $p['nombre'] . ' ' . $p['codigo'] . ' ' . $p['nommarca'] . ' ' . ($p['nomcategoria'] ?? '') . ' ' . ($p['provSugerido'] ?? '') )); $abcOrder = ['AAA' => 5, 'AA' => 4, 'A' => 3, 'B' => 2, 'C' => 1][$catAbc] ?? 0; $valTotal = (float)$p['sugeridoTotalEmpresa'] * (float)($p['costoAplicado'] ?? 0); @endphp id] ?? null; @endphp data-pedir-{{ $bc->id }}="{{ (float)($bodData['pedir'] ?? 0) }}" data-rot-{{ $bc->id }}="{{ (float)($bodData['rotIndividual'] ?? 0) }}" data-stock-{{ $bc->id }}="{{ (float)($bodData['stock'] ?? 0) }}" data-pendiente-{{ $bc->id }}="{{ (float)($bodData['pendiente'] ?? 0) }}" data-abc-{{ $bc->id }}="{{ $bodData['categoriaAbc'] ?? 'C' }}" @endforeach > {{-- Col 1: Nombre / Marca --}} {{-- Col 2: ABC --}} {{-- Col 3: Frecuencia & Recencia --}} {{-- Col 4: Rot / Inv Total --}} {{-- Col 5: Proveedor Sugerido --}} {{-- Bodegas --}} @foreach($bodegasColumnas as $index => $bc) @php $data = $p['dataBodegas'][$bc->id] ?? ['stock' => 0, 'rotIndividual' => 0, 'pedir' => 0, 'pendiente' => 0, 'runwayDias' => 0, 'categoriaAbc' => 'C', 'provisionAplicada' => 3]; $cellClass = ($index % 2 == 0) ? 'bg-warehouse-1' : 'bg-warehouse-2'; if ($data['pedir'] > 0) $cellClass = 'table-warning'; $catBodega = $data['categoriaAbc'] ?? 'C'; $provBodega = $data['provisionAplicada'] ?? 3; $badgeAbcBodClass = 'bg-secondary'; if ($catBodega == 'AAA') $badgeAbcBodClass = 'badge-abc-aaa'; elseif ($catBodega == 'AA') $badgeAbcBodClass = 'badge-abc-aa'; elseif ($catBodega == 'A') $badgeAbcBodClass = 'badge-abc-a'; elseif ($catBodega == 'B') $badgeAbcBodClass = 'badge-abc-b'; $runway = (float)($data['runwayDias'] ?? 0); $runwayBadge = 'badge bg-secondary'; $runwayText = round($runway, 1) . 'd'; if ($data['stock'] == 0) { $runwayBadge = 'badge bg-danger text-white'; $runwayText = '0d ⚠️'; } elseif ($runway < 3) { $runwayBadge = 'badge bg-danger text-white'; } elseif ($runway < 7) { $runwayBadge = 'badge bg-warning text-dark'; } elseif ($runway <= 30) { $runwayBadge = 'badge bg-success text-white'; } else { $runwayBadge = 'badge bg-info text-dark'; $runwayText = '>30d'; } @endphp @endforeach {{-- Total Sugerido --}} @endforeach @foreach($bodegasColumnas as $bc) @endforeach
Producto / Marca
Cat. ABC
Frecuencia ⚡
Rot / Inv
Prov. Sugerido 💡
{{ $bc->nombreBodega }} ${{ number_format($valorizacionPorBodega[$bc->id] ?? 0, 0, ',', '.') }}
ABC ROT INV DÍAS PEND PEDIR
Total Sug.
{{$p['nombre']}}
@if($esTrans) LAB @endif
Cod: {{$p['codigo']}} {{$p['nommarca']}}
{{ $catAbc }} @if(!empty($p['reclasificadoInactividad']))
Inactivo
@endif
Global: {{ $p['provisionAplicada'] ?? 0 }}d
Recencia: {{ ($p['diasSinVenta'] ?? 0) == 0 ? 'Hoy (0d)' : ($p['diasSinVenta'] ?? 0) . 'd' }}
Frecuencia: {{ $p['frecuenciaPorcentaje'] }}%
Cada {{ $p['diasEntreVentas'] }} días @if($p['tendencia'] == 'alza') 📈 @elseif($p['tendencia'] == 'baja') 📉 @else ➡️ @endif
{{$p['ventaTotalEmpresa']}} {{$p['inventarioTotalEmpresa']}}
@if(isset($p['provSugerido']) && $p['provSugerido'] != 'Sin compras')
{{ $p['provSugerido'] }}
${{ number_format($p['costoAplicado'], 0, ',', '.') }} @if(!empty($p['provHistorial'])) @endif
@else Sin compras @endif
{{ $catBodega }} {{ $provBodega }}d {{$data['rotIndividual']}} {{$data['stock']}} {{ $runwayText }} {{$data['pendiente'] ?? 0}} @php $isManualPedir = !empty($data['is_manual']); $sugCalc = $data['sugeridoCalculado'] ?? 0; $inputBorder = $isManualPedir ? 'border: 2px solid #ff9800 !important; background-color: #fff9c4;' : 'border: 1.5px solid #0d6efd;'; $inputTitle = $isManualPedir ? "✏️ Modificado manualmente: {$data['pedir']} (Sugerido por sistema: {$sugCalc})" : "Sugerido por sistema: {$data['pedir']}"; $prodHash = $p['hash'] ?? md5((string)$p['codigo']); @endphp
{{$p['sugeridoTotalEmpresa']}} ${{ number_format($p['sugeridoTotalEmpresa'] * ($p['costoAplicado'] ?? 0), 0, ',', '.') }}
💰 Valorización Total ${{ number_format($valorizacionPorBodega[$bc->id] ?? 0, 0, ',', '.') }} ${{ number_format($valorizacionTotalGeneral ?? 0, 0, ',', '.') }}
{{-- DATATABLES PAGINATION FOOTER --}}
{{-- DataTables Info Text --}}
Mostrando 1 a 50 de 0 registros (filtrado de 0 registros en total)
{{-- DataTables Pagination Buttons --}}
@else {{-- GUÍA VISUAL INICIAL CUANDO AÚN NO SE HA GENERADO LA MATRIZ --}}
🧠

Bienvenido al Sugerido Predictivo PRO

Este módulo calcula las compras óptimas evaluando frecuencia real de venta, días sin vender (recencia), clasificación Pareto (AAA a C) y transferencias directas a laboratorios para evitar sobrestock y duplicidad de pedidos.

1. Marcas Lab

Marca en el botón superior las marcas que pides por transferencia para excluirlas de compras regulares.

2. Parámetros

Selecciona el rango de fechas (ej. 30 días) y marca las bodegas o sedes a aprovisionar.

3. Provisión ABC

Los productos AAA reciben pedidos ajustados (ej. 7d) y los C stock mínimo para proteger el capital.

4. Exportar

Descarga pedidos para laboratorios o el pedido general a distribuidores sin mezclar datos.

@endisset
{{-- MODAL MANUAL DE USUARIO INTEGRADO --}} {{-- MODAL CONFIGURACIÓN PROVISIÓN ABC --}} {{-- MODAL GESTIÓN DE MARCAS DE TRANSFERENCIA --}} {{-- MODAL DE PREGUNTA EXPORTAR COMPRAS REGULARES (CONSOLIDADO VS BODEGAS) --}} {{-- MODAL EXPORTAR TRANSFERENCIAS A LABORATORIOS (FORMATO COPIDROGAS) --}} {{-- MODAL TRASLADOS INTELIGENTES INTER-BODEGAS (OPTIMIZACIÓN PRE-COMPRA) --}} {{-- MODAL OFERTAS EXCEL --}} @endsection @section('pie') {{-- Librerías requeridas --}} @endsection