@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) {{-- Manual: Layout manual --}} {{-- Section Content --}} @section('content') {{-- Title updated for Edit page --}} @include('layouts.navbars.auth.topnav', ['title' => 'Edit Pengajuan Permohonan']) @push('css') {{-- Flatpickr --}} @endpush
Form Edit Pengajuan Permohonan
{{-- EDIT MODE NOTICE --}}
Mode Edit Terbatas EDIT MODE

Dalam mode edit ini, hanya beberapa field yang dapat diubah untuk menjaga integritas data yang telah disetujui.

{{-- FIELD STATUS LEGEND --}}
Keterangan Field:
Dapat diedit: Field yang bisa diubah
Tidak dapat diedit: Field yang dikunci
{{-- Form pengajuan --}}
@csrf @method('POST') {{-- Hidden input for encrypted ID --}} {{-- ====================================================================== --}} {{-- ===================== SHARED MOVABLE ELEMENTS ======================== --}} {{-- ====================================================================== --}} {{-- SHARED TEXTAREA (Only for Izin now) - READONLY --}} {{-- SHARED DATE-TIME PICKER ROW --}}
{{-- Kategori Izin/Tugas - READONLY --}}
{{-- Hidden input untuk mengirim nilai --}} Kategori tidak dapat diubah setelah disetujui @error('kategori_perizinan_id') {{ $message }} @enderror
{{-- ====================================================================== --}} {{-- =================== CONTAINER UNTUK FORMULIR IZIN ==================== --}} {{-- ====================================================================== --}} {{-- ====================================================================== --}} {{-- ================= CONTAINER UNTUK FORMULIR TUGAS =================== --}} {{-- ====================================================================== --}} {{-- ====================================================================== --}} {{-- ===================== BAGIAN BERSAMA (SHARED) ====================== --}} {{-- ====================================================================== --}} {{-- Elemen Tabel Tanggal. Dimulai dalam keadaan tersembunyi. JS akan memindahkannya. --}} {{-- ========================================================== --}} {{-- ===================== START: ALL MODALS ================== --}} {{-- ========================================================== --}} {{-- ======================================================== --}} {{-- ===================== END: ALL MODALS ================== --}} {{-- ======================================================== --}} {{-- Nota Reimbursement Section (digabung dalam form utama) --}}
Form Upload Nota untuk Reimbursement

Upload dan kelola nota-nota pengeluaran untuk proses reimbursement

Daftar Nota per Karyawan
{{-- Outer Employee Tabs --}}
{{-- Employee tab panes generated by JS (each contains its own date tabs) --}}
{{-- Exchange Transactions Section (SECTION TERPISAH) --}}
Form Upload Exchange

Kelola transaksi exchange untuk karyawan yang melakukan penukaran mata uang

Daftar Exchange per Karyawan
{{-- Exchange Employee Tabs --}}
{{-- Employee tab panes generated by JS --}}
{{-- Unified Save Section (akhir form utama) --}}
@if ($authorize->edit == '1') @endif
{{-- Floating Action Button (FAB) with Bubble Menu --}}
{{-- Scroll to Nota --}}
Scroll ke Nota
{{-- Add Nota --}}
Tambah Nota
{{-- Scroll to Exchange --}}
Scroll ke Exchange
{{-- Add Exchange --}}
Tambah Exchange
{{-- Main FAB Button --}}
@endsection @php // Persiapkan data 'old' untuk JavaScript jika terjadi kegagalan validasi. $submittedTujuanData = null; if (old('rincian_tujuan')) { $oldTujuan = old('rincian_tujuan'); $submittedTujuanData = []; $count = count($oldTujuan['tujuan'] ?? []); for ($i = 0; $i < $count; $i++) { $karyawanNiks = json_decode($oldTujuan['karyawan'][$i] ?? '[]', true) ?: []; // Ambil detail nama karyawan berdasarkan NIK yang di-submit $karyawanDetails = collect($profiles) ->whereIn('nik', $karyawanNiks) ->map(fn($p) => ['nik' => $p->nik, 'nama' => $p->nama]) ->values() ->all(); $submittedTujuanData[] = [ 'tujuan' => $oldTujuan['tujuan'][$i] ?? null, 'tujuan_id' => $oldTujuan['tujuan_id'][$i] ?? null, 'status' => $oldTujuan['status'][$i] ?? null, 'keterangan' => $oldTujuan['keterangan'][$i] ?? null, 'karyawan' => $karyawanDetails, 'tanggal_mulai' => $oldTujuan['tanggal_mulai'][$i] ?? null, 'tanggal_berakhir' => $oldTujuan['tanggal_berakhir'][$i] ?? null, 'jumlah_hari' => $oldTujuan['jumlah_hari'][$i] ?? null, ]; } } // `withInput()` akan menyimpan array yang sudah di-decode dari JSON, // jadi kita tidak perlu json_decode lagi. $submittedNotaData = old('notaReimburse'); // Persiapkan data 'old' untuk exchange transactions jika terjadi kegagalan validasi $submittedExchangeData = old('exchangeTransactions'); @endphp @push('js') {{-- Flatpickr --}} @endpush