@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @push('css') @endpush {{-- section content --}} @section('content') @php $countBelumDiajukan = 0; $countOverdue = 0; $nowCalc = \Carbon\Carbon::now()->startOfDay(); foreach($table_detail as $d) { if(isset($d->can_send) && $d->can_send === true) { $countBelumDiajukan++; } $isExp = false; if (isset($d->deadline) && $d->deadline) { try { $dl = \Carbon\Carbon::parse($d->deadline)->startOfDay(); $isExp = $nowCalc->gt($dl); } catch (\Exception $e) {} } if (($d->status_display ?? $d->status) == 'Pending' && $isExp) { $countOverdue++; } } @endphp @include('layouts.navbars.auth.topnav', ['title' => ''])
List {{ $title_menu }}
{{-- alert --}} @include('components.alert')

@if($countBelumDiajukan > 0 || $countOverdue > 0)
@if($countBelumDiajukan > 0) Belum Diajukan: {{ $countBelumDiajukan }} @endif @if($countOverdue > 0) Overdue: {{ $countOverdue }} @endif
@endif
{{-- retrieve table header --}} @foreach ($table_header as $header) {{-- FIXED: Hide field classify_sample dan sample_date (list=0 atau tidak perlu tampil) --}} @if ($header->field == 'classify_sample' || $header->field == 'sample_date' || $header->list == '0') @continue @endif @endforeach {{-- retrieve table detail --}} @foreach ($table_detail as $detail) @php $vcount = $loop->iteration; $primary = $table_primary->field; // Check if deadline expired (server-side) $isExpired = false; if (isset($detail->deadline) && $detail->deadline) { try { $now = \Carbon\Carbon::now()->startOfDay(); $deadline = \Carbon\Carbon::parse($detail->deadline)->startOfDay(); $isExpired = $now->gt($deadline); } catch (\Exception $e) { // Ignore invalid date } } // Set TR class and background color $trClass = ''; $bgColor = ''; $debugTitle = ''; if (isset($now) && isset($deadline)) { $debugTitle = "Now: " . $now->format('Y-m-d') . " | Deadline: " . $deadline->format('Y-m-d') . " | Expired: " . ($isExpired ? 'YES' : 'NO'); } if ($detail->isactive == '0') { $trClass = 'not'; $bgColor = '--bg-color: #ffe9ed;'; // Pink for inactive } elseif ($isExpired) { $trClass = 'not'; $bgColor = '--bg-color: #ffe6e6;'; // Red for expired } @endphp @foreach ($table_header as $field) @php $string = $field->field; @endphp {{-- Skip field 'no' karena sudah ada No di header --}} @if ($field->field == 'no') @continue @endif {{-- FIXED: Hide field classify_sample dan sample_date (list=0 atau tidak perlu tampil) --}} @if ($field->field == 'classify_sample' || $field->field == 'sample_date' || $field->list == '0') @continue @endif {{-- Kolom Approval: tampilkan nama approver hasil query controller, implode koma, clean dan cepat --}} @if ($field->type == 'joinmultiple' && $field->field == 'id_sample') {{-- ID Sample column: bisa diklik untuk lihat detail item via sublink - pakai link dari sys_table seperti trcrth --}} @elseif ($field->field == 'id_sample' && $field->primary == '1') {{-- field type enum --}} @elseif ($field->type == 'enum') {{-- field type date --}} @elseif ($field->type == 'date') {{-- field type number --}} @elseif ($field->type == 'number') {{-- Status: tampilkan status_display jika ada --}} @elseif ($field->field == 'status') {{-- default field --}} @else @endif @endforeach @endforeach
No{{ $header->alias }}Action
@php // FIXED: Checkbox hanya enabled jika: // 1. can_send = true (status Entry dan belum ada approval Pending) // 2. Status bukan Rejected $canCheck = isset($detail->can_send) && $detail->can_send === true && $detail->status != 'Rejected'; // Get approval text dari controller SAJA (approval_names yang sudah di-batch load) // PENTING: JANGAN jalankan DB::select lagi, pakai data dari controller! $idVal = $detail->id_sample ?? null; $names = $idVal && isset($approval_names[$idVal]) ? $approval_names[$idVal] : []; $approval_text_for_checkbox = !empty($names) ? implode(', ', $names) : '-'; @endphp @php $checkboxValue = $detail->id_sample ?? $detail->$primary; @endphp
@if ($canCheck) @else @endif
{{ $vcount }} @php $idVal = $detail->id_sample ?? null; $names = $idVal && isset($approval_names[$idVal]) ? $approval_names[$idVal] : []; @endphp {{ !empty($names) ? implode(', ', $names) : '-' }} @if (!empty($field->link)) {{ $detail->$string }}   @else {{ $detail->$string }} @endif @if ($field->link != '') @if ($field->query != '') @php $data_query = DB::select($field->query); @endphp @foreach ($data_query as $q)
Warning: Undefined variable $q in /opt/lampp/htdocs/msjsample/resources/views/sample/lstsmp/list.blade.php on line 322
{{ $detail->$string == $sAsArray[0] ? $sAsArray[1] : '' }} @endforeach @endif   
@else @if ($field->query != '') @php $data_query = DB::select($field->query); @endphp @foreach ($data_query as $q)
Warning: Undefined variable $q in /opt/lampp/htdocs/msjsample/resources/views/sample/lstsmp/list.blade.php on line 336
{{ $detail->$string == $sAsArray[0] ? $sAsArray[1] : '' }} @endforeach @endif @endif
{{ $detail->$string }} {{ $detail->$string }} {{ $detail->status_display ?? $detail->$string }} @if ($field->link != '') {{ $detail->$string }}   @else {{ $detail->$string }} @endif {{-- button view --}} @php // FIXED: Hide button jika sample sudah dikirim (can_send = false) $showSendGmail = isset($detail->can_send) && $detail->can_send === true; @endphp @if ($showSendGmail) @endif {{-- check authorize edit --}} @if ($authorize->edit == '1') {{-- check status active --}} @if ($detail->isactive == 1) {{-- button edit --}} @endif @endif {{-- button delete --}} @if (in_array($detail->status, ['Entry'])) @endif
Jika Ingin Mengajukan Permohonan lebih dari 1, maka semua Approval ID harus Sama Tanpa Terkecuali.
@if ($jsmenu == '1') @if (view()->exists("js.{$dmenu}")) @push('addjs') @include('js.' . $dmenu); @endpush @endif @endif @endsection @push('js') @endpush