@extends('admin.layouts.app') @section('content') @php // El color sale del modelo (estado_color): estaba duplicado acá y en el listado, y al // sumar el estado 'recibida' las dos copias quedaron desactualizadas. $colorEstado = $solicitud->estado_color; @endphp

Solicitud {{ $solicitud->numero }} {{ $solicitud->estado_en_espanol }}

@include('admin.branch-requests.partials.flash')

Solicita

{{ $solicitud->solicitante->nombre ?? $solicitud->co_sucu }}

Dirigida a

@if($solicitud->co_sucu_destino) {{ $solicitud->destinatario->nombre ?? $solicitud->co_sucu_destino }} @else Abierta a cualquier sucursal @endif

Tipo

{{ $solicitud->tipo === 'compras' ? 'A compras' : 'A depósito' }}

Prioridad

{{ $solicitud->prioridad_en_espanol }}

Importe estimado

$ {{ number_format($solicitud->importe_total, 2, ',', '.') }}

Fecha de solicitud

{{ $solicitud->fecha_solicitud?->format('d/m/Y') }}

Entrega deseada

{{ $solicitud->fecha_entrega?->format('d/m/Y') ?? '—' }}

Cargada por

{{ $solicitud->creador->name ?? '—' }}
@if($solicitud->observaciones)

Observaciones

{{ $solicitud->observaciones }}

@endif
@php // Modo respuesta: o soy una sucursal que puede responder, o soy el usuario de la // empresa y elijo a nombre de cuál responder. $modoRespuesta = $puedeResponder || $sucursalesQuePuedenResponder->isNotEmpty(); $columnas = $modoRespuesta ? 8 : 7; @endphp
@csrf
Artículos solicitados

El costo es el que estaba vigente cuando se cargó la solicitud. El stock es el actual.

@if($modoRespuesta && $sucursalesQuePuedenResponder->isNotEmpty())
{{-- SIN required: el navegador lo exigiría también al registrar una recepción, que es otra accion de la misma pantalla y no necesita saber quien responde. La validación la hace el submit del form de respuesta (abajo) y el controller. --}}
Sólo hace falta si vas a responder. Para registrar lo recibido no.
@endif
@if($modoRespuesta) @endif @foreach($solicitud->items as $item) @php $stock = $stockPorArticulo[$item->co_arti] ?? null; @endphp @if($modoRespuesta) @php $previa = $respuestasPrevias[$item->id] ?? null; @endphp @endif {{-- Respuestas de las sucursales sobre esta línea --}} @if($item->responses->isNotEmpty()) @endif @endforeach
# Artículo Costo s/IVA Pedido Cubierto Subtotal Stock actual por sucursalMi respuesta
{{ $item->orden }}
{{ $item->descripcion }}
{{ $item->co_arti }} @if($item->co_prov) Prov.: {{ $item->co_prov }} @endif @if($item->observaciones)
{{ $item->observaciones }}
@endif
$ {{ number_format($item->im_valor, 2, ',', '.') }} {{ number_format($item->cantidad, 2, ',', '.') }} @if($item->esta_cubierta) {{ number_format($item->cantidad_cubierta, 2, ',', '.') }} @else {{ number_format($item->cantidad_cubierta, 2, ',', '.') }}
faltan {{ number_format($item->cantidad_pendiente, 2, ',', '.') }}
@endif @if($item->cantidad_recibida > 0)
recibido {{ number_format($item->cantidad_recibida, 2, ',', '.') }}
@endif
$ {{ number_format($item->importe, 2, ',', '.') }} @if($stock)
@foreach($stock['sucursales'] as $s) @php $color = $s['fisico'] > 0 ? 'success' : ($s['fisico'] < 0 ? 'danger' : 'light'); $esOrigen = trim($solicitud->co_sucu) === $s['codigo']; @endphp {{-- Etiqueta (WW_NAME) para mostrar; la comparacion de arriba usa el codigo, que es la clave real. --}} {{ $s['etiqueta'] }}: {{ number_format($s['fisico'], 2, ',', '.') }} @if($esOrigen)@endif @endforeach
@else @endif
@foreach([ 'nada' => ['Nada', 'secondary'], 'cubrir' => ['Cubrir', 'success'], 'rechazar' => ['No tengo','danger'], ] as $valor => [$etiqueta, $color]) @php $activo = $previa ? ($previa->estado === 'rechazada' ? 'rechazar' : 'cubrir') === $valor : $valor === 'nada'; @endphp @endforeach
u.
Faltan {{ number_format($item->cantidad_pendiente, 2, ',', '.') }} de {{ number_format($item->cantidad, 2, ',', '.') }} @if($miSucursal && $stock) @php $mio = collect($stock['sucursales'])->firstWhere('codigo', $miSucursal); $disponible = max(0, $mio['fisico'] ?? 0); @endphp · tenés {{ number_format($disponible, 2, ',', '.') }} @else · no podés ofrecer más de lo que la sucursal tiene en stock @endif
Respuestas
@foreach($item->responses as $r)
{{ $r->sucursal->nombre ?? $r->co_sucu }} @if($r->estado === 'rechazada') Rechazada {{ $r->motivo }} @elseif($r->estado === 'recibida') Recibida {{ number_format($r->cantidad, 2, ',', '.') }} u. @else {{ $r->estado_en_espanol }} {{ number_format($r->cantidad, 2, ',', '.') }} u. {{-- Marcar recibido: sólo la sucursal que pidió, que es la que recibe fisicamente la mercaderia. --}} @if($puedeRecibir) → recibí @endif @endif {{ $r->updated_at?->format('d/m/Y H:i') }}
@endforeach
Importe estimado total $ {{ number_format($solicitud->importe_total, 2, ',', '.') }}
@if($modoRespuesta)
@endif
{{-- Recepción. Va en un form aparte y los inputs se le asocian con form="formRecepcion", porque están dentro de la tabla que ya envuelve el form de respuesta y los forms anidados no son HTML válido. --}} @if($puedeRecibir)
@csrf
Recepción de mercadería

Completá la cantidad que realmente llegó al lado de cada entrega. Si llega menos de lo ofrecido, la diferencia vuelve a quedar pendiente para que otra sucursal la cubra.

@endif
Volver @if($solicitud->estado === 'borrador' && (!$miSucursal || $solicitud->co_sucu === $miSucursal)) Editar borrador
@csrf
@endif
@if($solicitud->estado !== 'anulada' && (!$miSucursal || $solicitud->co_sucu === $miSucursal))
@csrf @method('DELETE')
@endif
@endsection @push('js') @endpush