@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @section('content') @include('layouts.navbars.auth.topnav', ['title' => 'Realisasi']) {{-- Alert Messages --}} @include('components.alert') @if ($errors->any())
@endif {{-- Action Buttons --}}
{{-- Form Content --}}

Realisasi Permintaan Tenaga Kerja


{{-- KOLOM KIRI --}}
{{-- Nomor Permintaan --}}
{{-- Input Select Values untuk Jabatan --}}
{{-- Input Select Values untuk Alasan --}}
{{-- END KOLOM KIRI --}} {{-- KOLOM KANAN --}}
{{-- Input Nama Karyawan --}}
{{-- Select Bagian --}}
{{-- Textarea Uraian Pekerjaan --}}
{{-- END KOLOM KANAN --}}
@csrf
@error('dataRealisasi') {{ $message }} @enderror @php $grouped = []; foreach ($detailPermintaan as $item) { if (!isset($grouped[$item->tanggal])) { $grouped[$item->tanggal] = [ 'tanggal' => $item->tanggal, 'shifts' => [ 1 => ['id_detail_permintaan' => null, 'jumlah' => 0], 2 => ['id_detail_permintaan' => null, 'jumlah' => 0], 3 => ['id_detail_permintaan' => null, 'jumlah' => 0], ], ]; } $grouped[$item->tanggal]['shifts'][(int) $item->shift] = [ 'id_detail_permintaan' => $item->id, 'jumlah' => (int) $item->jumlah, 'status_os' => $item->status_os, ]; } $oldByDetail = []; foreach (old('dataRealisasi', []) as $oldItem) { if (!empty($oldItem['id_detail_permintaan'])) { $detailId = (int) $oldItem['id_detail_permintaan']; $oldByDetail[$detailId][] = $oldItem['nik'] ?? ''; } } $oldStatusByDetail = old('statusOsByDetail', []); $seedGrouped = []; foreach ($grouped as $tanggal => $group) { $seedGrouped[$tanggal] = [ 'tanggal' => $tanggal, 'display' => \Carbon\Carbon::parse($tanggal)->format('d-m-Y'), 'shifts' => [], ]; for ($shift = 1; $shift <= 3; $shift++) { $shiftData = $group['shifts'][$shift]; $requiredCount = (int) $shiftData['jumlah']; $detailId = $shiftData['id_detail_permintaan']; $existingRows = $detailId && isset($existingByDetail[$detailId]) ? $existingByDetail[$detailId] : []; $rows = $detailId && isset($oldByDetail[$detailId]) ? $oldByDetail[$detailId] : (!empty($existingRows) ? $existingRows : array_fill(0, $requiredCount, '')); $rows = array_slice( array_pad($rows, $requiredCount, ''), 0, $requiredCount, ); $seedGrouped[$tanggal]['shifts'][$shift] = [ 'detail_id' => $detailId, 'required' => $requiredCount, 'niks' => $rows, 'status_os' => $detailId && isset($oldStatusByDetail[$detailId]) ? $oldStatusByDetail[$detailId] : $shiftData['status_os'] ?? null, ]; } } $karyawanMap = []; foreach ($karyawans as $karyawan) { $karyawanMap[$karyawan->nik] = $karyawan->nama; } @endphp @if (empty($seedGrouped))
Tidak ada data detail permintaan.
@else
@foreach ($seedGrouped as $tanggal => $item) @for ($shift = 1; $shift <= 3; $shift++) @php $required = (int) ($item['shifts'][$shift]['required'] ?? 0); @endphp @endfor @endforeach
Tanggal Shift 1 Shift 2 Shift 3 Action
{{ \Carbon\Carbon::parse($tanggal)->format('d-m-Y') }} {{ $required }}
@endif
@error('statusOsByDetail') {{ $message }} @enderror
@endsection @push('js') @endpush