🔧 fix(noc): Perbaiki validasi field opsional dan kondisi query memo

- Menambahkan **null coalescing operator** pada field `catatan_noc` agar tidak error bila kosong.
- Mengubah default field status pembayaran NOC menjadi string `'0'` untuk konsistensi.
- Menonaktifkan validasi approval di `MemoController` agar semua data NOC dapat tampil.
- Mencegah error validasi ketika field opsional tidak diisi pada form.
- Memastikan tampilan memo lebih lengkap tanpa batasan kondisi approval.
This commit is contained in:
Daeng Deni Mardaeni
2025-09-11 09:43:50 +07:00
parent 32baffe636
commit b4aba1a02a
4 changed files with 10 additions and 8 deletions

View File

@@ -184,13 +184,13 @@ class MemoController extends Controller
// Mengambil data dari database dengan kondisi yang sama seperti LaporanController // Mengambil data dari database dengan kondisi yang sama seperti LaporanController
$query = Permohonan::query() $query = Permohonan::query()
->whereIn('status', ['proses-laporan', 'done', 'paparan', 'proses-paparan', 'memo-penyelesaian']) ->whereIn('status', ['proses-laporan', 'done', 'paparan', 'proses-paparan', 'memo-penyelesaian'])
->whereNotNull('approval_so_at') /*->whereNotNull('approval_so_at')
->whereNotNull('approval_eo_at') ->whereNotNull('approval_eo_at')
->where(function ($q) { ->where(function ($q) {
$q->whereIn('nilai_plafond_id', [1, 4]) $q->whereIn('nilai_plafond_id', [1, 4])
->whereNotNull('approval_dd_at') ->whereNotNull('approval_dd_at')
->orWhereIn('nilai_plafond_id', [2, 3]); ->orWhereIn('nilai_plafond_id', [2, 3]);
}) })*/
->whereHas('noc'); // Hanya tampilkan permohonan yang memiliki NOC ->whereHas('noc'); // Hanya tampilkan permohonan yang memiliki NOC

View File

@@ -59,11 +59,11 @@
'total_pembukuan' => $validated['total_pembukuan'], 'total_pembukuan' => $validated['total_pembukuan'],
'tanggal_pembayaran' => $validated['tanggal_pembayaran'] ?? date('Y-m-d'), 'tanggal_pembayaran' => $validated['tanggal_pembayaran'] ?? date('Y-m-d'),
'status_bayar' => $validated['nominal_bayar'] < $validated['total_harus_bayar'] ? false : true, 'status_bayar' => $validated['nominal_bayar'] < $validated['total_harus_bayar'] ? false : true,
'catatan_noc' => $validated['catatan_noc'], 'catatan_noc' => $validated['catatan_noc'] ?? '',
'status_kurang_bayar' => $validated['status_kurang_bayar'] ?? '', 'status_kurang_bayar' => $validated['status_kurang_bayar'] ?? '0',
'status_lebih_bayar' => $validated['status_lebih_bayar'] ?? '', 'status_lebih_bayar' => $validated['status_lebih_bayar'] ?? '0',
'nominal_kurang_bayar' => $validated['nominal_kurang_bayar'] ?? 0, 'nominal_kurang_bayar' => $validated['nominal_kurang_bayar'] ?? '0',
'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? 0, 'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? '0',
'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '', 'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '',
]; ];
$noc = Noc::updateOrCreate( $noc = Noc::updateOrCreate(

View File

@@ -387,7 +387,8 @@
"permission": "", "permission": "",
"roles": [ "roles": [
"administrator", "administrator",
"admin" "admin",
"noc"
], ],
"sub": [ "sub": [
{ {

View File

@@ -799,6 +799,7 @@ Route::middleware(['auth'])->group(function () {
Route::get('/datatables', [BucokController::class, 'dataForDatatables'])->name('datatables'); Route::get('/datatables', [BucokController::class, 'dataForDatatables'])->name('datatables');
Route::get('/{id}', [BucokController::class, 'show'])->name('show'); Route::get('/{id}', [BucokController::class, 'show'])->name('show');
Route::post('/import', [BucokController::class, 'import'])->name('import'); Route::post('/import', [BucokController::class, 'import'])->name('import');
Route::get('/export', [BucokController::class, 'export'])->name('export');
}); });
}); });