@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @section('content') @include('layouts.navbars.auth.topnav', ['title' => $title_menu]) @php $userRoles = $users_rules ?? []; $isHead = in_array('head', $userRoles); $isPpic = in_array('ppic', $userRoles); $isSpv = in_array('spv', $userRoles); $isAdmins = in_array('admins', $userRoles); $focusedDetailId = (int) ($focused_detail_id ?? request()->query('detail_id', 0)); $headFocusMode = $isHead && $focusedDetailId > 0; $ppicFocusMode = false; // Mode fokus PPIC diganti dengan edit bulk // HEAD: dapat edit hanya lampiran // PPIC: dapat edit detail barang + lampiran // SPV & ADMINS: dapat edit semua @endphp
@csrf @method('PUT') {{-- PENTING: Method PUT untuk Update --}} @if ($headFocusMode || $ppicFocusMode) @endif
{{-- Alert Error --}} @if (session('error')) @endif @if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif {{-- MAIN CARD --}}
{{-- Card Header --}}
Edit Permintaan #{{ $header->no_prapr }}

Perbarui data permintaan barang di bawah ini.

{{-- SECTION 1: HEADER INFO --}}
Informasi Dasar
{{-- Tambahkan keterangan di bawah input --}} Nomor di-generate secara otomatis
{{-- Asumsi relasi departemen sudah diload --}}
{{-- SECTION 2: DETAIL ITEMS --}}
Rincian Barang & Material
@if (!$isHead && !$isPpic) @endif
{{-- LOOP ITEM YANG SUDAH ADA --}} @foreach ($details as $index => $detail) @php $hasFocusMode = $headFocusMode || $ppicFocusMode; $isFocusedItem = !$hasFocusMode || (int) $detail->id === $focusedDetailId; // Item dianggap "sudah diposting" untuk SPV jika statusnya bukan draft/entry/-/kosong $statusNormalized = strtolower(trim($detail->status ?? '')); $isDraftLike = in_array($statusNormalized, ['', '-', 'draft', 'entry']); $isItemPostedForSpv = !$isDraftLike; $isHeadRejectedForRevision = $statusNormalized === 'reject' && !empty($detail->appr_head_by) && empty($detail->appr_ppic_by); $lockForSpv = $isSpv && $isItemPostedForSpv && !$isHeadRejectedForRevision; $lockForPpic = $isPpic && !in_array($statusNormalized, ['pending ppic', 'parsial']); @endphp
{{-- Hidden ID untuk Update --}}
{{-- Kolom Kiri: Input Utama --}}
@if ($isHead || $lockForSpv || ($headFocusMode && !$isFocusedItem) || $lockForPpic) @endif
@if ($isHead || $lockForSpv || ($headFocusMode && !$isFocusedItem) || $lockForPpic) @endif
{{-- Baris Kedua --}}
{{-- Tampilkan Lampiran Lama --}} @php $files = DB::table('trs_pr_lampiran') ->where('id_pr_detail', $detail->id) ->where('isactive', '1') ->get(); @endphp @if ($files->count() > 0)
@foreach ($files as $f)
{{ Str::limit($f->nama_file, 15) }} @if (!$isHead && !($hasFocusMode && !$isFocusedItem) && !$lockForSpv) {{-- Checkbox Hapus File --}}
@endif
@endforeach
@endif
{{-- Kolom Kanan: Tombol Hapus Baris --}} @if (!$isHead && !$isPpic && !$lockForSpv)
{{-- Input hidden untuk menandai item yg dihapus --}}
@else @endif
@endforeach

{{-- SECTION 3: ACTION BUTTONS --}}
@if (!$isHead && !$isPpic) @endif
@endsection @push('js') @endpush