feat(memo): tambah field memo penyelesaian ke tabel NOC dan update generatePdf
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
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('noc', function (Blueprint $table) {
|
||||
// Field untuk informasi memo penyelesaian
|
||||
$table->string('memo_penyelesaian_number')->nullable()->after('memo_penyelesaian');
|
||||
$table->date('memo_penyelesaian_date')->nullable()->after('memo_penyelesaian_number');
|
||||
$table->date('memo_penyelesaian_payment_date')->nullable()->after('memo_penyelesaian_date');
|
||||
$table->timestamp('memo_penyelesaian_created_at')->nullable()->after('memo_penyelesaian_date');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('noc', function (Blueprint $table) {
|
||||
$table->dropColumn([
|
||||
'memo_penyelesaian_number',
|
||||
'memo_penyelesaian_date',
|
||||
'memo_penyelesaian_payment_date',
|
||||
'memo_penyelesaian_created_at'
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user