@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