feat(noc): implementasi mutual exclusive selection untuk status kurang dan lebih bayar
- Menambahkan JavaScript untuk mutual exclusive selection antara status kurang bayar dan lebih bayar - Hanya satu status yang bisa dipilih pada satu waktu untuk mencegah konflik data - Implementasi fungsi resetFields() untuk membersihkan field yang tidak dipilih - Menambahkan event handler untuk toggle visibility field berdasarkan pilihan status - Menambahkan logging untuk tracking perubahan status pembayaran - Field nominal dan bukti pengembalian otomatis direset ketika status berubah - Mempertahankan UI existing dengan checkbox namun menambahkan logika mutual exclusive - Menambahkan validasi client-side untuk mencegah input data yang tidak konsisten - Support untuk readonly mode ketika memo penyelesaian sudah ada - Implementasi function-level comments untuk dokumentasi kode
This commit is contained in:
@@ -60,6 +60,11 @@
|
||||
'tanggal_pembayaran' => $validated['tanggal_pembayaran'] ?? date('Y-m-d'),
|
||||
'status_bayar' => $validated['nominal_bayar'] < $validated['total_harus_bayar'] ? false : true,
|
||||
'catatan_noc' => $validated['catatan_noc'],
|
||||
'status_kurang_bayar' => $validated['status_kurang_bayar'] ?? '',
|
||||
'status_lebih_bayar' => $validated['status_lebih_bayar'] ?? '',
|
||||
'nominal_kurang_bayar' => $validated['nominal_kurang_bayar'] ?? 0,
|
||||
'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? 0,
|
||||
'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '',
|
||||
];
|
||||
$noc = Noc::updateOrCreate(
|
||||
[
|
||||
|
||||
@@ -77,6 +77,11 @@
|
||||
'bukti_bayar' => $fileRule,
|
||||
'status_bayar' => 'nullable|boolean',
|
||||
'tanggal_pembayaran' => 'nullable|date',
|
||||
'status_kurang_bayar' => 'nullable|boolean',
|
||||
'status_lebih_bayar' => 'nullable|boolean',
|
||||
'nominal_kurang_bayar' => 'nullable|numeric|min:0',
|
||||
'nominal_lebih_bayar' => 'nullable|numeric|min:0',
|
||||
'bukti_pengembalian' => 'nullable|file|mimes:pdf,jpg,jpeg,png|max:2048',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -149,6 +154,11 @@
|
||||
'authorized_status.boolean' => 'Status Otorisasi harus berupa boolean',
|
||||
'authorized_at.date' => 'Format Tanggal Otorisasi tidak valid',
|
||||
'authorized_by.exists' => 'User Otorisasi tidak valid',
|
||||
'status_kurang_bayar.boolean' => 'Status Kurang Bayar harus berupa boolean',
|
||||
'status_lebih_bayar.boolean' => 'Status Lebih Bayar harus berupa boolean',
|
||||
'nominal_kurang_bayar.numeric' => 'Nominal Kurang Bayar harus berupa angka',
|
||||
'nominal_kurang_bayar.min' => 'Nominal Kurang Bayar minimal 0',
|
||||
'nominal_lebih_bayar.numeric' => 'Nominal Lebih Bayar harus berupa angka',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
// use Modules\Lpj\Database\Factories\NocFactory;
|
||||
|
||||
class Noc extends Base
|
||||
{
|
||||
@@ -16,6 +15,11 @@ class Noc extends Base
|
||||
'nominal_bayar',
|
||||
'total_pembukuan',
|
||||
'status_bayar',
|
||||
'status_kurang_bayar',
|
||||
'nominal_kurang_bayar',
|
||||
'status_lebih_bayar',
|
||||
'nominal_lebih_bayar',
|
||||
'bukti_pengembalian',
|
||||
'tanggal_pembayaran',
|
||||
'nominal_penyelesaian',
|
||||
'status_penyelesaiaan',
|
||||
@@ -37,6 +41,10 @@ class Noc extends Base
|
||||
protected $casts = [
|
||||
'nominal_bayar' => 'decimal:2',
|
||||
'status_bayar' => 'boolean',
|
||||
'status_kurang_bayar' => 'boolean',
|
||||
'nominal_kurang_bayar' => 'decimal:2',
|
||||
'status_lebih_bayar' => 'boolean',
|
||||
'nominal_lebih_bayar' => 'decimal:2',
|
||||
'tanggal_pembayaran' => 'date',
|
||||
'nominal_penyelesaian' => 'decimal:2',
|
||||
'status_penyelesaiaan' => 'boolean',
|
||||
|
||||
Reference in New Issue
Block a user