@extends('admin.layout.master') @section('open-pemasaran', 'open') @section('menu-pemasaran', 'bg-gradient-to-r from-[#53BF6A] to-[#275931] text-white') @section('menu-pemasaran-permintaan-pengiriman', 'bg-gradient-to-r from-[#53BF6A] to-[#275931] text-white') @section('addCss') @endsection @section('content') @php $sectionClass = 'rounded-xl border border-gray-300 bg-gray-200/80 p-5 shadow'; $labelClass = 'mb-2.5 block text-xs font-bold text-gray-800'; $readonlyClass = 'w-full rounded-md border border-gray-400 bg-gray-100 px-3 py-2.5 text-sm font-semibold text-gray-900 focus:ring-0'; $inputBaseClass = 'w-full rounded-md px-3 py-2.5 text-sm font-semibold text-gray-900 focus:ring-0 focus:border-gray-500'; $inputNormalClass = $inputBaseClass . ' border border-gray-400 bg-white'; $inputErrorClass = $inputBaseClass . ' border border-red-500 bg-red-50'; $actionBtnClass = 'inline-flex items-center justify-center rounded-lg px-10 py-3 text-sm font-bold text-white'; $status = old('status', $shipment->status ?? 'Menunggu'); $statusLower = strtolower($status); $statusDate = null; $statusUser = '-'; if ($statusLower === 'ditolak') { $statusDate = $shipment->rejected_at; $statusUser = optional($shipment->rejectedBy)->name ?? '-'; } elseif (in_array($statusLower, ['disetujui', 'dikirim', 'selesai'])) { $statusDate = $shipment->approved_at; $statusUser = optional($shipment->approvedBy)->name ?? '-'; } $canEditShipment = auth()->user()->can('edit pengiriman produk'); $canEditShipmentStatus = auth()->user()->can('edit status pengiriman produk'); $canSendShipmentOnly = auth()->user()->can('kirim pengiriman produk'); $isDetailEditable = $status === 'Menunggu' && $canEditShipment; $statusOptions = [$status]; $canChangeStatus = false; if ($status === 'Menunggu' && $canEditShipmentStatus) { $statusOptions = ['Menunggu', 'Disetujui', 'Ditolak']; $canChangeStatus = true; } elseif ($status === 'Disetujui' && ($canEditShipmentStatus || $canSendShipmentOnly)) { $statusOptions = ['Disetujui', 'Dikirim']; $canChangeStatus = true; } else { $statusOptions = [$status]; $canChangeStatus = false; } $isStatusLocked = !$canChangeStatus; $initialItems = old( 'items', $shipment->shipmentItems ->map(function ($item) { return [ 'id' => $item->id, 'product_stock_id' => $item->product_stock_id, 'quantity' => $item->quantity, 'sku' => $item->productStock->productVariant->sku ?? '-', 'product_name' => $item->productStock->productVariant->name ?? '-', 'warehouse_name' => $item->productStock->warehouse->name ?? ($item->productStock->province ?? '-'), 'stock' => $item->productStock->stock ?? 0, ]; }) ->values() ->toArray(), ); $productStocks = $productStocks ?? collect(); $productStockOptions = $productStocks ->map(function ($stock) { return [ 'id' => $stock->id, 'sku' => $stock->productVariant->sku ?? '-', 'product_name' => $stock->productVariant->name ?? '-', 'warehouse_name' => $stock->warehouse->name ?? ($stock->province ?? '-'), 'stock' => $stock->stock ?? 0, 'label' => ($stock->productVariant->sku ?? '-') . ' - ' . ($stock->productVariant->name ?? '-'), ]; }) ->values(); $canUploadInvoice = $status === 'Disetujui' && ($canEditShipmentStatus || $canSendShipmentOnly); $canEditShipmentDate = $status === 'Disetujui' && ($canEditShipmentStatus || $canSendShipmentOnly); $showSubmitButton = $isDetailEditable || $canChangeStatus; @endphp
Gudang › Permintaan Pengiriman › Detail Pengiriman
@csrf @method('PUT') {{-- INFORMASI UTAMA --}}
ID Pengajuan: {{ $shipment->shipment_code }}
@if (!$isDetailEditable) @endif @error('shipment_request_at')

{{ $message }}

@enderror
@error('shipment_type')

{{ $message }}

@enderror
@error('shipping_fleet')

{{ $message }}

@enderror
@error('received_name')

{{ $message }}

@enderror
@error('contact')

{{ $message }}

@enderror
@error('address')

{{ $message }}

@enderror
@error('notes')

{{ $message }}

@enderror
{{-- ITEM PENGIRIMAN --}}
Daftar Item Pengiriman
@if ($isDetailEditable) @endif
@error('items')

{{ $message }}

@enderror
{{-- STATUS --}}
@if ($isStatusLocked) @endif @error('status')

{{ $message }}

@enderror
{{-- ALASAN --}}
@error('reason')

{{ $message }}

@enderror
{{-- INVOICE + TANGGAL PENGIRIMAN --}}
@forelse ($invoices as $invoice) @empty @endforelse
File Aksi
{{ $invoice->file_name }}
@if ($canUploadInvoice) @else - @endif
Belum ada invoice
shipment_at) readonly disabled @endif class="@error('shipment_at') {{ $inputErrorClass }} @else {{ $canEditShipmentDate && !$shipment->shipment_at ? $inputNormalClass : $readonlyClass }} @enderror"> @if (!$canEditShipmentDate || $shipment->shipment_at) @endif @error('shipment_at')

{{ $message }}

@enderror
@if ($canUploadInvoice)

Format: PNG/JPG/JPEG/PDF • Maks 3MB per file • Bisa upload multiple.

@error('invoices')

{{ $message }}

@enderror @error('invoices.*')

{{ $message }}

@enderror
@endif
@if ($showSubmitButton && $status !== 'Dikirim' && $status !== 'Ditolak' && $status !== 'Selesai')
@endif
@endsection @section('addJs') @endsection