@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) {{-- Summernote CSS - Bootstrap 5 Version (sama dengan Body Email) --}} @section('head-link') @endsection {{-- section content --}} @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
List {{ $title_menu }}
{{-- alert --}} @include('components.alert')

{{-- --}} @php $i = 1; // Status email mengikuti master sys_enum idenum=status_email. $statusEmailOptions = collect($status_email_options ?? []); $statusEmailMap = $statusEmailOptions ->mapWithKeys( fn($item) => [(string) $item->value => (string) $item->name], ) ->all(); // Format tanggal PO untuk tampilan tabel: Hari, dd/mm/yyyy. $formatPoDate = function ($date) { $raw = trim((string) $date); if ($raw === '') { return ''; } try { $parsed = \Carbon\Carbon::parse($raw); $days = [ 'Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', ]; return $days[$parsed->dayOfWeek] . ', ' . $parsed->format('d/m/Y'); } catch (\Throwable $e) { return $raw; } }; // Format tanggal terakhir kirim untuk alert checkbox status pernah kirim. $formatPoDateTime = function ($date) use ($formatPoDate) { $raw = trim((string) $date); if ($raw === '') { return ''; } try { $parsed = \Carbon\Carbon::parse($raw); return $formatPoDate($raw) . ' ' . $parsed->format('H:i'); } catch (\Throwable $e) { return $raw; } }; @endphp @foreach ($table_detail as $row) @php // Normalisasi: terima JSON ["a@x","b@x"] atau string "a@x, b@x" if (!function_exists('ccPlain')) { function ccPlain($raw) { $raw = trim((string) $raw); if ($raw === '') { return ''; } // Coba JSON array if (str_starts_with($raw, '[')) { $arr = json_decode($raw, true); if (is_array($arr)) { $arr = array_values( array_filter(array_map('trim', $arr)), ); return implode(', ', $arr); } } // Fallback: split by koma/titik koma/newline → gabung lagi pakai koma+spasi $parts = preg_split('/[;,\\n]+/', $raw); $parts = array_values(array_filter(array_map('trim', $parts))); return implode(', ', $parts); } } $ccPlain = ccPlain($row->cc_email ?? ''); @endphp @php $statusValue = (string) ($row->status ?? ''); $statusLabel = $statusEmailMap[$statusValue] ?? $statusValue; // Hanya status Belum dikirim dan HOLD yang boleh diedit manual. $canEditStatus = in_array($statusValue, ['1', '5', '6'], true); $lastEmailLabel = $formatPoDateTime($row->last_email_at ?? ''); @endphp {{-- --}} @endforeach
No Status No PO Delivery Date Dokumen Date Nama SupplierCC EmailTo Email Vendor Tipe PO
{{ $statusLabel }} {{ $row->no_po }} {{ $formatPoDate($row->delivery_date) }} {{ $formatPoDate($row->dokumen_date_min) }} {{ $row->nama_supplier }} {{ $ccPlain !== '' ? $ccPlain : '' }} {{ $row->email_to }} {{ $row->tipe_po }}
{{-- Modal detail (letakkan sekali di bawah tabel) --}}
{{-- check flag js on dmenu --}} @if ($jsmenu == '1') @if (view()->exists("js.{$dmenu}")) @push('addjs') {{-- file js in folder (resources/views/js) --}} @include('js.' . $dmenu) @endpush @else @push('addjs') @endpush @endif @endif @endsection @push('js') {{-- ======================================== MODAL EDIT TIPE PO ======================================== --}} {{-- ======================================== MODAL EDIT STATUS EMAIL ======================================== --}} {{-- Summernote JS - Bootstrap 5 Version (sama dengan Body Email) --}} @endpush