- Tambahkan validasi parameter `type` pada PembayaranController untuk mencegah error runtime - Refactor nested conditions & perbaikan indentasi agar kode lebih readable dan maintainable - Update model Bucok: tambah field `nomor_registrasi` & `permohonan_id` ke fillable serta relasi dengan Permohonan - Integrasi logika pembayaran: auto update/create Bucok dengan data Permohonan & default nominal_bayar - Implementasi conditional update berdasarkan ketersediaan nomor_tiket untuk sinkronisasi data - Tambahkan migration baru: kolom nomor_registrasi & permohonan_id di tabel bucoks, dengan foreign key dan index - Pastikan rollback migration tersedia via method down() untuk keamanan schema - Optimasi query dengan index baru & penggunaan updateOrCreate untuk hindari duplikasi data
116 lines
3.0 KiB
PHP
116 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Lpj\Models;
|
|
|
|
use Illuminate\Foundation\Auth\User;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Support\Str;
|
|
|
|
/**
|
|
* Model Bucok untuk mengelola data bucok
|
|
*
|
|
* @property int $id
|
|
* @property int|null $no
|
|
* @property string|null $tanggal
|
|
* @property string|null $bulan
|
|
* @property int|null $tahun
|
|
* @property string|null $tanggal_penuh
|
|
* @property string|null $nomor_categ
|
|
* @property string|null $coa_summary
|
|
* @property string|null $nomor_coa
|
|
* @property string|null $nama_coa
|
|
* @property string $nomor_tiket
|
|
* @property string|null $deskripsi
|
|
* @property float|null $nominal
|
|
* @property string|null $penyelesaian
|
|
* @property int|null $umur_aging
|
|
* @property string|null $cost_center
|
|
* @property string|null $nama_sub_direktorat
|
|
* @property string|null $nama_direktorat_cabang
|
|
* @property string|null $tanggal_penyelesaian
|
|
* @property float|null $nominal_penyelesaian
|
|
* @property float|null $nominal_berjalan
|
|
* @property float|null $amortisasi_berjalan
|
|
* @property float|null $sistem_berjalan
|
|
* @property float|null $lainnya_berjalan
|
|
* @property float|null $nominal_gantung
|
|
* @property float|null $aset_gantung
|
|
* @property string|null $keterangan_gantung
|
|
* @property string|null $lainnya_satu
|
|
* @property string|null $lainnya_dua
|
|
*/
|
|
class Bucok extends Base
|
|
{
|
|
use HasFactory;
|
|
|
|
/**
|
|
* Nama tabel yang digunakan oleh model
|
|
*/
|
|
protected $table = 'bucoks';
|
|
|
|
/**
|
|
* Field yang dapat diisi secara mass assignment
|
|
*/
|
|
protected $fillable = [
|
|
'no',
|
|
'tanggal',
|
|
'bulan',
|
|
'tahun',
|
|
'tanggal_penuh',
|
|
'nomor_categ',
|
|
'coa_summary',
|
|
'nomor_coa',
|
|
'nama_coa',
|
|
'nomor_tiket',
|
|
'deskripsi',
|
|
'nominal',
|
|
'penyelesaian',
|
|
'umur_aging',
|
|
'cost_center',
|
|
'nama_sub_direktorat',
|
|
'nama_direktorat_cabang',
|
|
'tanggal_penyelesaian',
|
|
'nominal_penyelesaian',
|
|
'nominal_berjalan',
|
|
'amortisasi_berjalan',
|
|
'sistem_berjalan',
|
|
'lainnya_berjalan',
|
|
'nominal_gantung',
|
|
'aset_gantung',
|
|
'keterangan_gantung',
|
|
'lainnya_satu',
|
|
'lainnya_dua',
|
|
'nomor_registrasi',
|
|
'permohonan_id',
|
|
];
|
|
|
|
/**
|
|
* Casting tipe data untuk field tertentu
|
|
*/
|
|
protected $casts = [
|
|
'no' => 'integer',
|
|
'tanggal' => 'date',
|
|
'tahun' => 'integer',
|
|
'tanggal_penuh' => 'date',
|
|
'nominal' => 'decimal:2',
|
|
'umur_aging' => 'integer',
|
|
'tanggal_penyelesaian' => 'date',
|
|
'nominal_penyelesaian' => 'decimal:2',
|
|
'nominal_berjalan' => 'decimal:2',
|
|
'amortisasi_berjalan' => 'decimal:2',
|
|
'sistem_berjalan' => 'decimal:2',
|
|
'lainnya_berjalan' => 'decimal:2',
|
|
'nominal_gantung' => 'decimal:2',
|
|
'aset_gantung' => 'decimal:2',
|
|
];
|
|
|
|
/**
|
|
* Field yang akan di-hidden saat serialization
|
|
*/
|
|
protected $hidden = [
|
|
'created_by',
|
|
'updated_by',
|
|
'deleted_by',
|
|
];
|
|
}
|