@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) {{-- section content --}} @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
@if ($table_header_l->isNotEmpty() || $table_header_r->isNotEmpty())
@csrf @method('PUT')

View {{ $title_menu }}


{{-- LEFT COLUMN --}} @if ($table_header_l->isNotEmpty())
@foreach ($table_header_l as $header) @php $string = $header->field; @endphp
{{-- Gedung Sample: Wrap form-group dengan id untuk hide/show --}} @if ($header->field == 'gedung_sample')
@else
@endif @if ($header->type != 'hidden') @endif {{-- Approval field (joinmultiple) - HARUS dicek SEBELUM primary key field --}} @if ($header->type == 'joinmultiple' || ($header->field == 'id_sample' && strpos(strtolower($header->alias), 'approval') !== false)) @php // DEBUG: Log untuk debugging approval field \Log::info('LstsmpController.show.view: Rendering approval field (PRIORITY CHECK)', [ 'field' => $header->field, 'alias' => $header->alias, 'type' => $header->type, 'can_edit_authorized' => isset($can_edit_authorized) && $can_edit_authorized ? 'yes' : 'no', 'can_edit' => isset($can_edit) && $can_edit ? 'yes' : 'no', 'approval_text' => $approval_text ?? 'N/A', 'approval_text_exists' => isset($approval_text) ? 'yes' : 'no', 'approval_data_exists' => isset($approval_data) ? 'yes' : 'no', 'list_approval_1_count' => isset($list_approval_1) ? $list_approval_1->count() : 0, 'list_approval_2_count' => isset($list_approval_2) ? $list_approval_2->count() : 0, 'list_approval_3_count' => isset($list_approval_3) ? $list_approval_3->count() : 0 ]); @endphp @if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) {{-- EDIT MODE: Show dropdowns untuk 3 level dari mst_approval --}} @php $approvalLevel1 = isset($approval_data[1]) && isset($approval_data[1]['id_approval']) ? $approval_data[1]['id_approval'] : ''; $approvalLevel2 = isset($approval_data[2]) && isset($approval_data[2]['id_approval']) ? $approval_data[2]['id_approval'] : ''; $approvalLevel3 = isset($approval_data[3]) && isset($approval_data[3]['id_approval']) ? $approval_data[3]['id_approval'] : ''; @endphp
Approval Level 1
Approval Level 2
Approval Level 3
@else {{-- VIEW MODE: Show approval text dari controller --}} @php // DEBUG: Pastikan approval_text ter-set $displayApprovalText = isset($approval_text) && !empty($approval_text) ? $approval_text : '-'; \Log::info('LstsmpController.show.view: Displaying approval text (VIEW MODE)', [ 'approval_text' => $displayApprovalText, 'approval_text_raw' => $approval_text ?? 'NOT SET', 'field' => $header->field, 'alias' => $header->alias ]); @endphp @endif {{-- Primary key field (readonly) - SKIP jika type joinmultiple dan alias contains approval --}} @elseif ($header->field == $table_primary->field && !($header->type == 'joinmultiple' && strpos(strtolower($header->alias), 'approval') !== false)) {{-- Status field (LOCKED - readonly dan tetap Entry) --}} @elseif ($header->field == 'status') {{-- Sample Date field (LOCKED - readonly, otomatis update saat simpan dengan jam) --}} @elseif ($header->field == 'sample_date') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { // Format dengan jam: d/m/Y H:i (contoh: 17/12/2025 14:30) $dateValue = \Carbon\Carbon::parse($dateValue)->format('d/m/Y H:i'); } catch (\Exception $e) { // Jika parsing gagal, tampilkan as-is $dateValue = $list->$string ?? ''; } } else { $dateValue = '-'; } @endphp {{-- ID Salesman (enum/dropdown dari mst_salesman) - FIXED: Pastikan menggunakan field yang benar --}} @elseif ($header->field == 'id_salesman' || $header->field == 'nama_sales') @if ($header->field == 'id_salesman') @endif {{-- ID Customer (enum/dropdown dari mst_customer) - FIXED: Pastikan menggunakan field yang benar --}} @elseif ($header->field == 'id_customer' || $header->field == 'customer') @if ($header->field == 'id_customer') @endif {{-- Project Field (Manual Injection) --}}
{{-- End User Field (Manual Injection) --}}
{{-- Enum fields (dropdown dari query) --}} @elseif ($header->type == 'enum') {{-- Date fields --}} @elseif ($header->type == 'date') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { $dateValue = \Carbon\Carbon::parse($dateValue)->format('Y-m-d'); } catch (\Exception $e) { } } @endphp {{-- DateTime fields --}} @elseif ($header->type == 'datetime') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { $dateValue = \Carbon\Carbon::parse($dateValue)->format('Y-m-d\TH:i'); } catch (\Exception $e) { } } @endphp {{-- Attn. To field (EDITABLE - user dapat edit sesuai kebutuhan) --}} @elseif ($header->field == 'attn_to') {{-- Deliver To field (EDITABLE - user dapat edit sesuai kebutuhan) --}} @elseif ($header->field == 'deliver_to') {{-- Ship To field (EDITABLE - free text) --}} @elseif ($header->field == 'ship_to') {{-- Text/textarea fields --}} @elseif ($header->type == 'text') {{-- String/char fields (default) - SKIP jika type joinmultiple dan alias contains approval --}} @elseif (!($header->type == 'joinmultiple' && strpos(strtolower($header->alias), 'approval') !== false)) @else {{-- Fallback untuk joinmultiple approval yang tidak ter-handle --}} @php $displayApprovalText = isset($approval_text) && !empty($approval_text) ? $approval_text : ($list->$string ?? '-'); \Log::warning('LstsmpController.show.view: Approval field fallback', [ 'field' => $header->field, 'alias' => $header->alias, 'type' => $header->type, 'displayApprovalText' => $displayApprovalText, 'approval_text' => $approval_text ?? 'NOT SET' ]); @endphp @endif @if (!empty($header->note))

{{ '*) ' . $header->note }}

@endif @error($header->field)

{{ $message }}

@enderror
@endforeach
@endif {{-- RIGHT COLUMN --}} @if ($table_header_r->isNotEmpty())
@foreach ($table_header_r as $header) @php $string = $header->field; @endphp
{{-- Gedung Sample: Wrap form-group dengan id untuk hide/show --}} @if ($header->field == 'gedung_sample')
@else
@endif @if ($header->type != 'hidden') @endif {{-- Approval field (joinmultiple) - HARUS dicek SEBELUM primary key field --}} @if ($header->type == 'joinmultiple' || ($header->field == 'id_sample' && strpos(strtolower($header->alias), 'approval') !== false)) @php // DEBUG: Log untuk debugging approval field \Log::info('LstsmpController.show.view: Rendering approval field (PRIORITY CHECK)', [ 'field' => $header->field, 'alias' => $header->alias, 'type' => $header->type, 'can_edit_authorized' => isset($can_edit_authorized) && $can_edit_authorized ? 'yes' : 'no', 'can_edit' => isset($can_edit) && $can_edit ? 'yes' : 'no', 'approval_text' => $approval_text ?? 'N/A', 'approval_text_exists' => isset($approval_text) ? 'yes' : 'no', 'approval_data_exists' => isset($approval_data) ? 'yes' : 'no', 'list_approval_1_count' => isset($list_approval_1) ? $list_approval_1->count() : 0, 'list_approval_2_count' => isset($list_approval_2) ? $list_approval_2->count() : 0, 'list_approval_3_count' => isset($list_approval_3) ? $list_approval_3->count() : 0 ]); @endphp @if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) {{-- EDIT MODE: Show dropdowns untuk 3 level dari mst_approval --}} @php $approvalLevel1 = isset($approval_data[1]) && isset($approval_data[1]['id_approval']) ? $approval_data[1]['id_approval'] : ''; $approvalLevel2 = isset($approval_data[2]) && isset($approval_data[2]['id_approval']) ? $approval_data[2]['id_approval'] : ''; $approvalLevel3 = isset($approval_data[3]) && isset($approval_data[3]['id_approval']) ? $approval_data[3]['id_approval'] : ''; @endphp
Approval Level 1
Approval Level 2
Approval Level 3
@else {{-- VIEW MODE: Show approval text dari controller --}} @php // DEBUG: Pastikan approval_text ter-set $displayApprovalText = isset($approval_text) && !empty($approval_text) ? $approval_text : '-'; \Log::info('LstsmpController.show.view: Displaying approval text (VIEW MODE)', [ 'approval_text' => $displayApprovalText, 'approval_text_raw' => $approval_text ?? 'NOT SET', 'field' => $header->field, 'alias' => $header->alias ]); @endphp @endif {{-- Primary key field (readonly) - SKIP jika type joinmultiple dan alias contains approval --}} @elseif ($header->field == $table_primary->field && !($header->type == 'joinmultiple' && strpos(strtolower($header->alias), 'approval') !== false)) {{-- Status field (LOCKED - readonly dan tetap Entry) --}} @elseif ($header->field == 'status') {{-- Sample Date field (LOCKED - readonly, otomatis update saat simpan dengan jam) --}} @elseif ($header->field == 'sample_date') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { // Format dengan jam: d/m/Y H:i (contoh: 17/12/2025 14:30) $dateValue = \Carbon\Carbon::parse($dateValue)->format('d/m/Y H:i'); } catch (\Exception $e) { // Jika parsing gagal, tampilkan as-is $dateValue = $list->$string ?? ''; } } else { $dateValue = '-'; } @endphp {{-- ID Salesman (enum/dropdown dari mst_approval) - FIXED: Pastikan menggunakan field yang benar --}} @elseif ($header->field == 'id_salesman' || $header->field == 'nama_sales') @if ($header->field == 'id_salesman') @endif {{-- ID Customer (enum/dropdown dari mst_customer) - FIXED: Pastikan menggunakan field yang benar --}} @elseif ($header->field == 'id_customer' || $header->field == 'customer') @if ($header->field == 'id_customer') @endif {{-- Project Field (Manual Injection) --}}
{{-- End User Field (Manual Injection) --}}
{{-- Enum fields (dropdown dari query) --}} @elseif ($header->type == 'enum') {{-- Date fields --}} @elseif ($header->type == 'date') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { $dateValue = \Carbon\Carbon::parse($dateValue)->format('Y-m-d'); } catch (\Exception $e) { } } @endphp {{-- DateTime fields --}} @elseif ($header->type == 'datetime') @php $dateValue = $list->$string ?? ''; if (!empty($dateValue)) { try { $dateValue = \Carbon\Carbon::parse($dateValue)->format('Y-m-d\TH:i'); } catch (\Exception $e) { } } @endphp {{-- Attn. To field (EDITABLE) --}} @elseif ($header->field == 'attn_to') {{-- Deliver To field (EDITABLE) --}} @elseif ($header->field == 'deliver_to') {{-- Ship To field (EDITABLE - free text) --}} @elseif ($header->field == 'ship_to') {{-- Text/textarea fields --}} @elseif ($header->type == 'text') {{-- String/char fields (default) - SKIP jika type joinmultiple dan alias contains approval --}} @elseif (!($header->type == 'joinmultiple' && strpos(strtolower($header->alias), 'approval') !== false)) @else {{-- Fallback untuk joinmultiple approval yang tidak ter-handle --}} @php $displayApprovalText = isset($approval_text) && !empty($approval_text) ? $approval_text : ($list->$string ?? '-'); \Log::warning('LstsmpController.show.view: Approval field fallback', [ 'field' => $header->field, 'alias' => $header->alias, 'type' => $header->type, 'displayApprovalText' => $displayApprovalText, 'approval_text' => $approval_text ?? 'NOT SET' ]); @endphp @endif @if (!empty($header->note))

{{ '*) ' . $header->note }}

@endif @error($header->field)

{{ $message }}

@enderror
@endforeach
@endif
{{-- Detail Items Section dengan dynamic table --}}
Detail Items
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @endif
@if (isset($detail_items) && $detail_items->count() > 0) @foreach ($detail_items as $index => $item)
Item #{{ $index + 1 }} @if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @endif
{{-- Row 1: Primary Info --}}
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ DB::table('mst_aplikasi')->where('id', $item->aplikasi)->value('nama') ?? $item->aplikasi }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ DB::table('mst_detail')->where('id', $item->id_detail)->value('nama') ?? $item->id_detail }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->color ?? '-' }}

@endif
{{-- Row 2: Specs & Qty --}}
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->size_gsm ?? '0' }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->size_length ?? '0' }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->size_width ?? '0' }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->qty ?? '0' }}

@endif
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else

{{ $item->uom ?? '-' }}

@endif
{{-- Row 3: Full Width Description --}}
@if (isset($can_edit_authorized) && $can_edit_authorized === true && isset($can_edit) && $can_edit === true) @else
{{ $item->item ?? '-' }}
@endif
@endforeach @endif
{{-- Template Item Card (Hidden) --}}
@endif
{{-- Alert message --}} @include('components.alert') @if (isset($jsmenu) && $jsmenu == '1') @if (view()->exists("js.{$dmenu}")) @push('addjs') @include('js.' . $dmenu); @endpush @endif @endif @endsection @push('js') @endpush