@extends('layouts.admin') @section('title', 'Logs de Sincronización de Inventario') @section('content')

Logs de Sincronización de Inventario

Última sincronización: {{ $lastSync ? \Carbon\Carbon::parse($lastSync)->format('d/m/Y H:i:s') : 'N/A' }}

← Volver
{{-- Migration Warning --}} @if(!$tableExists)

Migración Pendiente

La tabla inventory_sync_logs no existe. Ejecuta php artisan migrate para crearla. Los logs de archivo se muestran a continuación como alternativa.

@endif {{-- Logs Display --}}
@if($logs->isEmpty())

No hay logs de sincronización

Ejecuta una sincronización de inventario para ver los logs aquí.

@else
@foreach($logs as $log)
{{-- Header --}}
{{ strtoupper($log->status) }}

Bodega: {{ $log->bodega_code }}

{{ $log->created_at->format('d/m/Y H:i:s') }}
{{-- Stats --}} @if($log->status === 'success')
{{ $log->skus_received }}
SKUs Recibidos
{{ $log->products_updated }}
Productos Actualizados
{{ $log->products_set_to_zero }}
Productos a Cero
{{ $log->skus_received + $log->products_set_to_zero }}
Total Procesados
@endif {{-- Error Message --}} @if($log->error_message)

Error: {{ $log->error_message }}

@endif {{-- SKUs in Response (Collapsible) --}} @if($log->skus_in_response && count($log->skus_in_response) > 0)
Ver SKUs recibidos ({{ count($log->skus_in_response) }})
@foreach($log->skus_in_response as $sku) {{ $sku }} @endforeach
@endif {{-- SOAP Response (Collapsible) --}} @if($log->soap_response)
Ver respuesta SOAP completa
{{ $log->soap_response }}
@endif
@endforeach
@endif
{{-- File-based Logs Section --}}

Logs del Servidor (laravel.log)

Últimas entradas relacionadas con inventario
@if(!empty($fileLogs))
@foreach($fileLogs as $logEntry)
{{ $logEntry }}
@endforeach
@else

No se encontraron logs de inventario en el archivo de log.

Ejecuta una sincronización para generar logs.

@endif
{{-- Trigger Sync Buttons --}}

Ejecutar Sincronización Manual

Dispara un nuevo proceso de sincronización de inventario.

{{-- Async (requires Horizon) --}}
@csrf
{{-- Sync (runs immediately, blocks until complete) --}}
@csrf

Async: Requiere que Horizon esté corriendo (php artisan horizon). Sync: Ejecuta inmediatamente y espera a que termine (puede tardar varios minutos).

@endsection