From c49bc3ddb35296f2d509297d37eb45783ce6ab06 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 19 Nov 2024 15:11:12 +0700 Subject: [PATCH] Format kode dan tambahkan relasi histories Mengformat ulang kode model Permohonan untuk konsistensi indentasi dan keterbacaan. Menambahkan relasi `histories` untuk menghubungkan dengan model PermohonanHistory, berguna untuk melacak riwayat perubahan permohonan. --- app/Models/Permohonan.php | 280 +++++++++++++++++++------------------- 1 file changed, 143 insertions(+), 137 deletions(-) diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index a3b35c1..0255e63 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -1,150 +1,156 @@ hasFile('attachment')) { - $file = request()->file('attachment'); - $fileName = time() . '_' . $file->getClientOriginalName(); - $filePath = $file->storeAs('permohonan_attachments', $fileName, 'public'); + static::updated(function ($permohonan) { + static::createHistory($permohonan, 'updated'); + }); + } - $permohonan->dokumen = $filePath; + protected static function handleFileUpload($permohonan) + { + if (request()->hasFile('attachment')) { + $file = request()->file('attachment'); + $fileName = time() . '_' . $file->getClientOriginalName(); + $filePath = $file->storeAs('permohonan_attachments', $fileName, 'public'); + + $permohonan->dokumen = $filePath; + } + } + + protected static function createHistory($permohonan, $action) + { + $historyService = app(PermohonanHistoryService::class); + + $status = $permohonan->status; + $keterangan = request()->input('keterangan'); // Get keterangan from request + $beforeRequest = $action === 'updated' ? $permohonan->getOriginal() : []; + $afterRequest = $permohonan->toArray(); + $file = $permohonan->dokumen ?? null; + + $historyService->createHistory( + $permohonan, + $status, + $keterangan, + $beforeRequest, + $afterRequest, + $file, + ); + } + + public function user() + { + return $this->belongsTo(User::class); + } + + public function branch() + { + return $this->belongsTo(Branch::class); + } + + public function tujuanPenilaian() + { + return $this->belongsTo(TujuanPenilaian::class); + } + + public function debiture() + { + return $this->belongsTo(Debiture::class); + } + + public function documents() + { + return $this->hasMany(DokumenJaminan::class); + } + + public function nilaiPlafond() + { + return $this->belongsTo(NilaiPlafond::class); + } + + public function jenisFasilitasKredit() + { + return $this->belongsTo(JenisFasilitasKredit::class); + } + + public function penilaian() + { + return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); + } + + public function penawaranTender() + { + return $this->hasMany(PenawaranTender::class, 'nomor_registrasi'); + } + + public function region() + { + return $this->belongsTo(Regions::class, 'region_id'); + } + + public function penawaran() + { + return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi'); + } + + public function histories() + { + return $this->hasMany(PermohonanHistory::class, 'permohonan_id', 'id')->orderBy('created_at', 'desc'); } } - - protected static function createHistory($permohonan, $action) - { - $historyService = app(PermohonanHistoryService::class); - - $status = $permohonan->status; - $keterangan = request()->input('keterangan'); // Get keterangan from request - $beforeRequest = $action === 'updated' ? $permohonan->getOriginal() : []; - $afterRequest = $permohonan->toArray(); - $file = $permohonan->dokumen ? Storage::disk('public')->path($permohonan->dokumen) : null; - - $historyService->createHistory( - $permohonan, - $status, - $keterangan, - $beforeRequest, - $afterRequest, - $file - ); - } - - public function user() - { - return $this->belongsTo(User::class); - } - - public function branch() - { - return $this->belongsTo(Branch::class); - } - - public function tujuanPenilaian() - { - return $this->belongsTo(TujuanPenilaian::class); - } - - public function debiture() - { - return $this->belongsTo(Debiture::class); - } - - public function documents() - { - return $this->hasMany(DokumenJaminan::class); - } - - public function nilaiPlafond() - { - return $this->belongsTo(NilaiPlafond::class); - } - - public function jenisFasilitasKredit() - { - return $this->belongsTo(JenisFasilitasKredit::class); - } - - public function penilaian() - { - return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); - } - - public function penawaranTender() - { - return $this->hasMany(PenawaranTender::class, 'nomor_registrasi'); - } - - public function region() - { - return $this->belongsTo(Regions::class, 'region_id'); - } - - public function penawaran(){ - return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi'); - } -}