- 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
78 lines
2.1 KiB
PHP
78 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Modules\Lpj\Models;
|
|
|
|
use Illuminate\Foundation\Auth\User;
|
|
|
|
class Noc extends Base
|
|
{
|
|
protected $table = 'noc';
|
|
|
|
protected $fillable = [
|
|
'permohonan_id',
|
|
'persetujuan_penawaran_id',
|
|
'bukti_bayar',
|
|
'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',
|
|
'tanggal_penyelesaian',
|
|
'bukti_penyelesaian',
|
|
'bukti_ksl',
|
|
'memo_penyelesaian',
|
|
'memo_penyelesaian_number',
|
|
'memo_penyelesaian_date',
|
|
'memo_penyelesaian_payment_date',
|
|
'memo_penyelesaian_created_at',
|
|
'catatan_noc',
|
|
'status',
|
|
'authorized_status',
|
|
'authorized_at',
|
|
'authorized_by',
|
|
];
|
|
|
|
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',
|
|
'tanggal_penyelesaian' => 'date',
|
|
'memo_penyelesaian_date' => 'date',
|
|
'memo_penyelesaian_payment_date' => 'date',
|
|
'memo_penyelesaian_created_at' => 'datetime',
|
|
'status' => 'boolean',
|
|
'authorized_status' => 'boolean',
|
|
'authorized_at' => 'datetime',
|
|
];
|
|
|
|
// Relationship with Permohonan
|
|
public function permohonan()
|
|
{
|
|
return $this->belongsTo(Permohonan::class, 'permohonan_id');
|
|
}
|
|
|
|
// Relationship with PersetujuanPenawaran
|
|
public function persetujuanPenawaran()
|
|
{
|
|
return $this->belongsTo(PersetujuanPenawaran::class, 'persetujuan_penawaran_id');
|
|
}
|
|
|
|
// Relationship with User (for authorized_by)
|
|
public function authorizedBy()
|
|
{
|
|
return $this->belongsTo(User::class, 'authorized_by');
|
|
}
|
|
}
|