diff --git a/app/Http/Controllers/NocController.php b/app/Http/Controllers/NocController.php index 1b679d9..6623104 100644 --- a/app/Http/Controllers/NocController.php +++ b/app/Http/Controllers/NocController.php @@ -262,6 +262,7 @@ 'id' => $persetujuanPenawaran->id, 'nomor_registrasi' => $persetujuanPenawaran->permohonan->nomor_registrasi ?? $persetujuanPenawaran->penawaran->nomor_registrasi, 'nama_debitur' => $persetujuanPenawaran->permohonan->debiture->name ?? $persetujuanPenawaran->penawaran->permohonan->debiture->name, + 'kode_cabang' => $persetujuanPenawaran->permohonan->branch->code ?? $persetujuanPenawaran->penawaran->permohonan->branch->code, 'cabang' => $persetujuanPenawaran->permohonan->branch->name ?? $persetujuanPenawaran->penawaran->permohonan->branch->name, 'tanggal_pembayaran' => dateFormat( $persetujuanPenawaran->noc->tanggal_pembayaran ?? $persetujuanPenawaran->noc?->created_at, diff --git a/resources/views/noc/form.blade.php b/resources/views/noc/form.blade.php index 766d40d..85b41e8 100644 --- a/resources/views/noc/form.blade.php +++ b/resources/views/noc/form.blade.php @@ -394,6 +394,79 @@ const nominalLebihBayarSection = document.getElementById('nominal_lebih_bayar_section'); const buktiPengembalianSection = document.getElementById('bukti_pengembalian_section'); + // Field untuk perbandingan nilai + const totalHarusBayar = document.getElementById('total_harus_bayar'); + const nominalBayar = document.getElementById('nominal_bayar'); + const totalPembukuan = document.getElementById('total_pembukuan'); + + /** + * Fungsi untuk mengatur enable/disable status checkbox berdasarkan perbandingan nilai + * Logika: + * - Jika semua nilai sama: kedua checkbox disabled + * - Jika nominal_bayar/total_pembukuan < total_harus_bayar: hanya status_kurang_bayar enabled + * - Jika nominal_bayar/total_pembukuan > total_harus_bayar: hanya status_lebih_bayar enabled + */ + function updateCheckboxStatus() { + const totalHarus = parseFloat(totalHarusBayar.value) || 0; + const nominal = parseFloat(nominalBayar.value) || 0; + const pembukuan = parseFloat(totalPembukuan.value) || 0; + + console.log('Updating checkbox status:', { + totalHarus, + nominal, + pembukuan + }); + + // Reset checkbox states + statusKurangBayar.disabled = false; + statusLebihBayar.disabled = false; + + // Jika semua nilai sama, disable kedua checkbox + if (totalHarus === nominal && nominal === pembukuan && totalHarus > 0) { + statusKurangBayar.disabled = true; + statusLebihBayar.disabled = true; + statusKurangBayar.checked = false; + statusLebihBayar.checked = false; + nominalKurangBayarSection.style.display = 'none'; + nominalLebihBayarSection.style.display = 'none'; + buktiPengembalianSection.style.display = 'none'; + console.log('Semua nilai sama, kedua checkbox disabled'); + } + // Jika nominal/pembukuan kurang dari total harus bayar + else if ((nominal > 0 && nominal < totalHarus) || (pembukuan > 0 && pembukuan < totalHarus)) { + statusLebihBayar.disabled = true; + statusLebihBayar.checked = false; + statusKurangBayar.checked = true; + nominalKurangBayarSection.style.display = ''; + nominalLebihBayarSection.style.display = 'none'; + buktiPengembalianSection.style.display = 'none'; + console.log('Kurang bayar, hanya status_kurang_bayar enabled'); + } + // Jika nominal/pembukuan lebih dari total harus bayar + else if ((nominal > 0 && nominal > totalHarus) || (pembukuan > 0 && pembukuan > totalHarus)) { + statusKurangBayar.disabled = true; + statusKurangBayar.checked = false; + statusLebihBayar.checked = true; + nominalLebihBayarSection.style.display = ''; + nominalKurangBayarSection.style.display = 'none'; + console.log('Lebih bayar, hanya status_lebih_bayar enabled'); + } + } + + // Event listeners untuk update otomatis saat nilai berubah + if (nominalBayar) { + nominalBayar.addEventListener('input', updateCheckboxStatus); + nominalBayar.addEventListener('change', updateCheckboxStatus); + } + + if (totalPembukuan) { + totalPembukuan.addEventListener('input', updateCheckboxStatus); + totalPembukuan.addEventListener('change', updateCheckboxStatus); + } + + // Initial check saat halaman dimuat + updateCheckboxStatus(); + /** * Fungsi untuk reset field dan section visibility * @param {string} type - 'kurang' atau 'lebih' @@ -426,6 +499,12 @@ } statusKurangBayar.addEventListener('change', function() { + // Cek apakah checkbox tidak disabled sebelum memproses + if (this.disabled) { + this.checked = false; + return; + } + if (this.checked) { nominalKurangBayarSection.style.display = 'flex'; resetFields('kurang'); @@ -451,6 +530,12 @@ } statusLebihBayar.addEventListener('change', function() { + // Cek apakah checkbox tidak disabled sebelum memproses + if (this.disabled) { + this.checked = false; + return; + } + if (this.checked) { nominalLebihBayarSection.style.display = 'flex'; buktiPengembalianSection.style.display = 'flex'; diff --git a/resources/views/noc/index.blade.php b/resources/views/noc/index.blade.php index ca72e7b..199ee72 100644 --- a/resources/views/noc/index.blade.php +++ b/resources/views/noc/index.blade.php @@ -5,9 +5,10 @@ @endsection @section('content') -
-
-
+
+
+

Daftar NOC

@@ -27,77 +28,78 @@
- +
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +
- - - Nomor Registrasi - - - Nama Debitur - - - Cabang - - - Tanggal KSL - - - Nominal bayar - - - Bukti Bayar - - - Nominal Diterima - - - Bukti KSL - - - Tanggal Pembayaran - - - Memo Penyelesaian - - - Bukti Penyelesaian - - - Nominal Penyelesaian - - - Tanggal Penyelesaian - - Action
+ + + Nomor Registrasi + + + Nama Debitur + + + Cabang + + + Tanggal KSL + + + Nominal bayar + + + Bukti Bayar + + + Nominal Diterima + + + Bukti KSL + + + Tanggal Pembayaran + + + Memo Penyelesaian + + + Bukti Penyelesaian + + + Nominal Penyelesaian + + + Tanggal Penyelesaian + + Action