@extends('layouts.app') @section('title', 'OT: ' . $orden->codigo) @section('page-title', 'Orden de Trabajo') @section('content') {{-- Header --}}

{{ $orden->codigo }}

{{ \App\Models\MantenimientoOrden::$AREAS_TRABAJO[$orden->area_trabajo] ?? ucfirst($orden->area_trabajo) }} {{ \App\Models\MantenimientoOrden::$TIPOS[$orden->tipo] ?? ucfirst($orden->tipo) }} {{ \App\Models\MantenimientoOrden::$PRIORIDADES[$orden->prioridad] ?? ucfirst($orden->prioridad) }} {{ \App\Models\MantenimientoOrden::$ESTADOS[$orden->estado] ?? ucfirst($orden->estado) }}
PDF @if(in_array($orden->estado, ['pendiente','en_proceso'])) Editar @endif @if($orden->estado === 'pendiente')
@csrf
@csrf
@endif @if($orden->estado === 'en_proceso')
@csrf
@endif
@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{!! session('error') !!}
@endif {{-- KPIs --}} @php $costoTotal = (float)($orden->costo_repuestos ?? 0); $tiempoMin = $orden->tiempo_intervencion_min; $paroMin = $orden->paro_minutos; $reqCount = $orden->requerimientos->count(); $reqEntregados = $orden->requerimientos->where('estado','entregado')->count(); @endphp
T. Intervención {{ $tiempoMin ? $tiempoMin.' min' : '—' }}
Costo Repuestos S/. {{ number_format($costoTotal, 2) }}
Paro de Máquina {{ $paroMin ? $paroMin.' min' : 'Sin paro' }}
Requerimientos {{ $reqEntregados }}/{{ $reqCount }} entregados
{{-- Datos generales --}}

Datos de la Orden

{{-- Descripción prominente --}} @if($orden->descripcion)

Descripción del trabajo

{{ $orden->descripcion }}

@endif
Equipo
@if($orden->equipo) {{ $orden->equipo->nombre }} @if($orden->equipo->ubicacion)
{{ $orden->equipo->ubicacion }} @endif @else — @endif
Área
{{ \App\Models\MantenimientoOrden::$AREAS_TRABAJO[$orden->area_trabajo] ?? '—' }}
Tipo
{{ \App\Models\MantenimientoOrden::$TIPOS[$orden->tipo] ?? ucfirst($orden->tipo) }}
Prioridad
{{ \App\Models\MantenimientoOrden::$PRIORIDADES[$orden->prioridad] ?? ucfirst($orden->prioridad) }}
Técnico asignado
{{ $orden->tecnico?->name ?? '— Sin asignar —' }}
Creado por
{{ $orden->creadoPor?->name ?? '—' }}
@if($orden->solicitud)
Solicitud origen
{{ $orden->solicitud->codigo }}
@endif @if($orden->observaciones)
Observaciones
{{ $orden->observaciones }}
@endif
{{-- Tiempos + Paro --}}
{{-- Tiempos --}}

Tiempos

Fecha prog.
{{ $orden->fecha_programada?->format('d/m/Y') ?? '—' }}
Hora inicio
{{ $orden->hora_inicio ? \Carbon\Carbon::parse($orden->hora_inicio)->format('H:i') : '—' }}
Hora fin
{{ $orden->hora_fin ? \Carbon\Carbon::parse($orden->hora_fin)->format('H:i') : '—' }}
@if($tiempoMin)
Duración
{{ floor($tiempoMin/60) > 0 ? floor($tiempoMin/60).'h ' : '' }}{{ $tiempoMin % 60 }}min
@endif
{{-- Paro de máquina --}} @if($orden->paro_maquina)

Paro de Máquina

Motivo
{{ $orden->paro_motivo ?? '—' }}
Inicio
{{ $orden->paro_inicio ? \Carbon\Carbon::parse($orden->paro_inicio)->format('H:i') : '—' }}
Fin
{{ $orden->paro_fin ? \Carbon\Carbon::parse($orden->paro_fin)->format('H:i') : '—' }}
Duración
{{ $paroMin ? $paroMin.' min' : '—' }}
@endif
{{-- Costo desglosado por repuestos entregados --}} @if($movimientosCosto->count() > 0)

Costo de Repuestos Utilizados

@foreach($movimientosCosto as $mov) @endforeach
Material / Repuesto Cantidad Costo (S/.)
{{ $mov['nombre'] }} {{ number_format($mov['cantidad'], 3) }} {{ $mov['unidad'] }} S/. {{ number_format($mov['costo'], 2) }}
Total costo repuestos: S/. {{ number_format($costoTotal, 2) }}
@endif {{-- ═══ CONSULTA DE STOCK (siempre visible) ═══ --}}

Consultar Stock de Repuestos

{{-- Buscador de texto --}}
{{-- Spinner --}} {{-- Tabla de lotes --}} {{-- Sin stock --}} {{-- Placeholder --}}

Escribe el nombre o código del repuesto para ver el stock disponible en almacén.

{{-- ═══ SOLICITAR REPUESTOS A LOGÍSTICA ═══ --}} @if(in_array($orden->estado, ['pendiente','en_proceso']))

Solicitar Repuestos a Logística

@csrf
Producto / Repuesto Stock Cantidad a pedir Quitar
und
@if($orden->requerimientos->count() > 0)

Requerimientos enviados:

@foreach($orden->requerimientos as $req)
{{ $req->codigo }} {{ $req->descripcion }} — {{ $req->items->count() }} ítem(s) {{ $req->created_at->format('d/m/Y H:i') }}
{{ \App\Models\MantenimientoRequerimiento::$ESTADOS[$req->estado] ?? $req->estado }} Imprimir
@endforeach
@endif
@endif {{-- Requerimientos en OT completada --}} @if($orden->estado === 'completado' && $orden->requerimientos->count() > 0)

Repuestos Solicitados a Logística

@foreach($orden->requerimientos as $req) @endforeach
CódigoDescripciónÍtemsEstado
{{ $req->codigo }} {{ $req->descripcion }} {{ $req->items->count() }} {{ \App\Models\MantenimientoRequerimiento::$ESTADOS[$req->estado] ?? $req->estado }}
@endif {{-- Informe técnico (si está completado) --}} @if($orden->diagnostico || $orden->acciones_realizadas || $orden->observaciones)

Informe Técnico

@if($orden->diagnostico)

Diagnóstico

{{ $orden->diagnostico }}

@endif @if($orden->acciones_realizadas)

Acciones Realizadas

{{ $orden->acciones_realizadas }}

@endif @if($orden->observaciones)

Observaciones

{{ $orden->observaciones }}

@endif
@endif {{-- Checklist de Tareas --}}

Checklist de Tareas

@php $total=$orden->tareas->count(); $hechas=$orden->tareas->where('completada',true)->count(); @endphp @if($total > 0) {{ $hechas }}/{{ $total }} @endif
@if($total > 0) @if($total > 0)
@endif @endif @if(!in_array($orden->estado, ['completado','cancelado']))
@csrf
@endif
@if($orden->foto_cierre)

Evidencia Fotográfica

Foto de cierre
@endif {{-- ═══ MODAL: COMPLETAR OT ═══ --}} @if($orden->estado === 'en_proceso') @endif @php $productosJs = $productos->map(function($p) { return [ 'id' => $p->id, 'nombre' => $p->nombre, 'stock' => $p->stock_disponible, 'unidad' => optional($p->unidadMedida)->abreviatura ?? 'und', ]; })->values(); @endphp @push('scripts') @endpush @endsection