From b70b3b730f505cf8c49f54d60afe568e8ee364c3 Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 27 Dec 2024 11:29:55 +0700 Subject: [PATCH] perbaikan print out dan penambahan nomor laporan --- app/Helpers/Lpj.php | 13 + app/Http/Controllers/PenilaiController.php | 19 +- app/Models/Laporan.php | 36 ++ ...2024_12_27_021237_create_laporan_table.php | 43 ++ .../components/print-out-sederhana.blade.php | 483 +++++++++++------- .../components/print-out-standard.blade.php | 330 +++++++----- 6 files changed, 620 insertions(+), 304 deletions(-) create mode 100644 app/Models/Laporan.php create mode 100644 database/migrations/2024_12_27_021237_create_laporan_table.php diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index d9bf2fe..a4bed0b 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -316,3 +316,16 @@ return User::find($userId); } + function generateLpjUniqueCode($randomLength = 6) + { + + $year = date('y'); + $month = str_pad(date('m'), 2, '0', STR_PAD_LEFT); + $day = str_pad(date('d'), 2, '0', STR_PAD_LEFT); + + // Generate random numbers + $randomNumber = str_pad(mt_rand(0, pow(10, $randomLength) - 1), $randomLength, '0', STR_PAD_LEFT); + + // Concatenate components to create the custom code + return $year . $month . $day . $randomNumber; + } diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index fdd350e..c21a125 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -7,6 +7,7 @@ use Barryvdh\DomPDF\Facade\Pdf; // https://github.com/barryvdh/laravel-dompdf use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Inspeksi; use Modules\Lpj\Models\Penilai; +use Modules\Lpj\Models\Laporan; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; @@ -17,6 +18,7 @@ use Modules\Location\Models\City; use Modules\Location\Models\District; use Modules\Location\Models\Village; use Illuminate\Support\Facades\Log; +use App\Helpers\Lpj; class PenilaiController extends Controller { @@ -597,6 +599,17 @@ class PenilaiController extends Controller $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); $lpj = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); + $laporan = Laporan::firstOrCreate( + [ + 'permohonan_id' => $permohonanId, + 'dokumen_jaminan_id' => $documentId, + ], + [ + 'nomor_laporan' => generateLpjUniqueCode(6), + ] + ); + $nomorLaporan = $laporan->nomor_laporan; + $forminspeksi = null; $lpjData = null; $formFoto = null; @@ -646,7 +659,8 @@ class PenilaiController extends Controller 'lpj', 'statusLpj', 'alamat', - 'dataPembanding' + 'dataPembanding', + 'nomorLaporan' )); } else { $pdf = PDF::loadView('lpj::' . $viewLaporan, compact( @@ -659,7 +673,8 @@ class PenilaiController extends Controller 'lpj', 'statusLpj', 'alamat', - 'dataPembanding' + 'dataPembanding', + 'nomorLaporan' )); $pdf->setPaper('A4', 'portrait'); diff --git a/app/Models/Laporan.php b/app/Models/Laporan.php new file mode 100644 index 0000000..5065294 --- /dev/null +++ b/app/Models/Laporan.php @@ -0,0 +1,36 @@ +belongsTo(JenisLaporan::class); + } + + public function dokument(){ + return $this->belongsTo(DokumenJaminan::class); + } + + public function permohonan(){ + return $this->belongsTo(Permohonan::class); + } + + // protected static function newFactory(): LaporanFactory + // { + // // return LaporanFactory::new(); + // } +} diff --git a/database/migrations/2024_12_27_021237_create_laporan_table.php b/database/migrations/2024_12_27_021237_create_laporan_table.php new file mode 100644 index 0000000..61d8c13 --- /dev/null +++ b/database/migrations/2024_12_27_021237_create_laporan_table.php @@ -0,0 +1,43 @@ +id(); + $table->foreignIdFor(Permohonan::class)->constrained('permohonan')->onDelete('cascade'); + $table->foreignIdFor(DokumenJaminan::class)->constrained('dokumen_jaminan')->onDelete('cascade'); + $table->string('nomor_laporan'); + $table->foreignIdFor(JenisLaporan::class) + ->nullable() + ->constrained('jenis_laporan') + ->onDelete('cascade'); + + + $table->timestamps(); + $table->softDeletes(); + + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('laporan'); + } +}; diff --git a/resources/views/penilai/components/print-out-sederhana.blade.php b/resources/views/penilai/components/print-out-sederhana.blade.php index e43c172..f1a2240 100644 --- a/resources/views/penilai/components/print-out-sederhana.blade.php +++ b/resources/views/penilai/components/print-out-sederhana.blade.php @@ -78,7 +78,7 @@ } body { - margin-top: 7cm; + margin-top: 3cm; /* Tambahkan margin top sedikit lebih besar dari tinggi header */ margin-bottom: 120px; position: relative; @@ -106,7 +106,13 @@ - + @php + $data = ''; + foreach ($permohonan->debiture->documents as $dokumen) { + $data .= $dokumen->jenisJaminan->name . ', '; + } + $data = rtrim($data, ', '); +@endphp