From 291811b74a5ff50b76f0656213e2104d8826546a Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 13 Oct 2025 16:43:30 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(service):=20Tambah=20migrasi=20tgl=5F?= =?UTF-8?q?laporan=20untuk=20permohonan=20is=5Fmig=20&=20fallback=20dataPe?= =?UTF-8?q?mbanding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Menambahkan logika penyesuaian tanggal laporan untuk permohonan hasil migrasi (is_mig) - Gunakan mig_mst_jaminan_tgl_laporan jika is_mig = true, fallback ke lpj->created_at jika false - Tambahkan inisialisasi dataPembanding = '' sebagai default untuk mencegah undefined variable - Tambahkan variabel mig_permohonan untuk mempermudah akses data hasil migrasi - Menambahkan logging decode mig_permohonan dan fallback tgl_laporan untuk debugging - Menjaga konsistensi tanggal laporan antara data migrasi dan data baru - Meningkatkan stabilitas render preview laporan untuk permohonan tanpa inspeksi - File yang diubah: app/Services/PreviewLaporanService.php - Kompatibel dengan Laravel 12, PHP 8.3, PostgreSQL --- app/Http/Controllers/PenilaiController.php | 20 +++++++++++--------- app/Models/Inspeksi.php | 2 +- app/Services/PreviewLaporanService.php | 14 +++++++++++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 61c4121..5a8dc3e 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -697,15 +697,17 @@ class PenilaiController extends Controller 'lokasi_lengkap' => $data->lokasi_lengkap ?? '', ]; - // Extract data pembanding - if (isset($dataPembanding['data_pembanding'])) { - foreach ($dataPembanding['data_pembanding'] as $index => $pembanding) { - if ($index == 0) { - $exportData['pembanding1'] = $pembanding; - } elseif ($index == 1) { - $exportData['pembanding2'] = $pembanding; - } elseif ($index == 2) { - $exportData['pembanding3'] = $pembanding; + if(isset($dataPembanding)){ + // Extract data pembanding + if (isset($dataPembanding['data_pembanding'])) { + foreach ($dataPembanding['data_pembanding'] as $index => $pembanding) { + if ($index == 0) { + $exportData['pembanding1'] = $pembanding; + } elseif ($index == 1) { + $exportData['pembanding2'] = $pembanding; + } elseif ($index == 2) { + $exportData['pembanding3'] = $pembanding; + } } } } diff --git a/app/Models/Inspeksi.php b/app/Models/Inspeksi.php index 38a6f05..327e9bb 100644 --- a/app/Models/Inspeksi.php +++ b/app/Models/Inspeksi.php @@ -14,7 +14,7 @@ class Inspeksi extends Base /** * The attributes that are mass assignable. */ - protected $fillable = ['data_form', 'foto_form', 'denah_form','permohonan_id', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by','dokument_id','data_pembanding']; + protected $fillable = ['data_form', 'foto_form', 'denah_form','permohonan_id', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by','dokument_id','data_pembanding','mig_detail_data_jaminan']; public function permohonan() { diff --git a/app/Services/PreviewLaporanService.php b/app/Services/PreviewLaporanService.php index fa37d94..90c01e2 100644 --- a/app/Services/PreviewLaporanService.php +++ b/app/Services/PreviewLaporanService.php @@ -69,6 +69,7 @@ use Modules\Lpj\Jobs\SendJadwalKunjunganEmailJob; use App\Helpers\Lpj; use Modules\Lpj\Models\Penilai; use Barryvdh\DomPDF\Facade\Pdf; +use Illuminate\Support\Facades\Log; class PreviewLaporanService { @@ -90,14 +91,18 @@ class PreviewLaporanService $inspeksi = Inspeksi::where('permohonan_id', $permohonan_id)->where('dokument_id', $dokumen_id)->first(); $lpj = Penilai::where('permohonan_id', $permohonan_id)->where('dokument_id', $dokumen_id)->first(); + $mig_permohonan = json_decode($permohonan->mig_permohonan); + $nomorLaporan = getNomorLaporan($permohonan_id, $dokumen_id); - $tanggalLaporan = $lpj->created_at ?? null; + $tanggalLaporan = $permohonan->is_mig ? $mig_permohonan->mig_mst_jaminan_tgl_laporan : $lpj->created_at ?? null; + $forminspeksi = null; $lpjData = null; $formFoto = null; // if ($inspeksi) { $forminspeksi = json_decode($inspeksi?->data_form, true) ?? null; + $formFoto = json_decode($inspeksi?->foto_form, true) ?? null; // $denahForm = json_decode($data->denah_form, true); $dataPembanding = json_decode($inspeksi?->data_pembanding, true) ?? null; @@ -147,13 +152,16 @@ class PreviewLaporanService $inspeksi = Inspeksi::where('permohonan_id', $permohonan_id)->where('dokument_id', $document_id)->first(); $lpj = Penilai::where('permohonan_id', $permohonan_id)->where('dokument_id', $document_id)->first(); + $mig_permohonan = json_decode($permohonan->mig_permohonan); + $nomorLaporan = getNomorLaporan($permohonan_id, $document_id); - $tanggalLaporan = $lpj->created_at ?? null; + $tanggalLaporan = $permohonan->is_mig ? $mig_permohonan->mig_mst_jaminan_tgl_laporan : $lpj->created_at ?? null; $forminspeksi = null; $lpjData = null; $formFoto = null; + $dataPembanding =''; if ($inspeksi) { $forminspeksi = json_decode($inspeksi->data_form, true); $formFoto = json_decode($inspeksi->foto_form, true); @@ -161,6 +169,7 @@ class PreviewLaporanService $dataPembanding = json_decode($inspeksi->data_pembanding, true); } + if ($lpj) { $lpjData = json_decode($lpj->lpj, true); $memo = json_decode($lpj->memo, true); @@ -239,7 +248,6 @@ class PreviewLaporanService public function checkPrintOutLaporan($permohonan_id, $dokumen_id) { - // Ambil data berdasarkan ID $statusLpj = Penilai::where('permohonan_id', $permohonan_id) ->where('dokument_id', $dokumen_id)