Menambahkan penyimpanan data memo penyelesaian ke tabel NOC dan memperbarui fungsi generatePdf di MemoController agar lebih terintegrasi. Perubahan yang dilakukan: - Menambahkan migrasi untuk field baru di tabel NOC: - memo_penyelesaian_number: nomor memo penyelesaian - memo_penyelesaian_date: tanggal memo - memo_penyelesaian_payment_date: tanggal pembayaran - memo_penyelesaian_pdf_path: path file PDF memo - memo_penyelesaian_created_at: timestamp pembuatan memo - Update model NOC: - Menambahkan field baru ke $fillable array untuk mass assignment - Menambahkan casting untuk field date dan datetime agar otomatis diconvert oleh Eloquent - Mempertahankan struktur model dan relasi yang sudah ada - Update MemoController: - Mengubah proses penyimpanan memo dari tabel permohonan ke tabel NOC - Menambahkan pencarian NOC berdasarkan permohonan_id - Menyimpan semua informasi memo penyelesaian langsung ke NOC - Tetap memperbarui status permohonan agar proses bisnis tetap berjalan - Menambahkan logging untuk mempermudah monitoring dan debugging - Menggunakan DB transaction untuk menjaga konsistensi data Struktur data memo penyelesaian: - Disimpan secara terpusat di tabel NOC sebagai source of truth - Memiliki relasi langsung dengan tabel permohonan untuk referensi data - Menyimpan path PDF memo untuk akses file yang lebih mudah - Menyediakan timestamp lengkap untuk kebutuhan audit trail Tujuan perubahan: - Memusatkan data memo penyelesaian di tabel NOC untuk kemudahan query dan reporting - Menjamin konsistensi data dengan mekanisme transaction - Memperjelas struktur relasi antara memo penyelesaian dan permohonan - Memudahkan proses tracking, pelaporan, dan audit memo penyelesaian
69 lines
1.8 KiB
PHP
69 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\Lpj\Models;
|
|
|
|
use Illuminate\Foundation\Auth\User;
|
|
// use Modules\Lpj\Database\Factories\NocFactory;
|
|
|
|
class Noc extends Base
|
|
{
|
|
protected $table = 'noc';
|
|
|
|
protected $fillable = [
|
|
'permohonan_id',
|
|
'persetujuan_penawaran_id',
|
|
'bukti_bayar',
|
|
'nominal_bayar',
|
|
'status_bayar',
|
|
'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',
|
|
'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');
|
|
}
|
|
}
|