From e6e2a127292a38027c4c655d153dc60cf3d33b04 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 21 Nov 2024 14:25:02 +0700 Subject: [PATCH 1/5] Perbarui placeholder dengan data dinamis Ganti placeholder statis dengan data dinamis menggunakan variabel dari objek `$penawaran`. Hal ini memungkinkan penarikan data langsung dari objek untuk nomor proposal, tanggal proposal, dan perhitungan hari kerja untuk SLA resume dan final, sehingga lebih akurat dan mengurangi risiko kesalahan informasi. --- resources/views/spk/documentSPK.blade.php | 6 +++--- resources/views/spk/edit.blade.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index 0f9f78a..d3b8b0b 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -50,7 +50,7 @@

Perihal: Penunjukan sebagai Penyedia Jasa Penilaian Agunan


- Berdasarkan surat penawaran Saudara [No proposal penawaran sesuai data pemeriksaan persetujuan penawaran] tanggal [Tgl proposal penawaran sesuai data pemeriksaan persetujuan penawaran] atas nama {{ $data->debiture->name }}, dengan ini PT. Bank Artha Graha Internasional.Tbk., menunjuk Saudara untuk melakukan penilaian atas agunan sebagaimana rincian dibawah ini. + Berdasarkan surat penawaran Saudara [{{$penawaran->persetujuan->nomor_proposal_penawaran}}] tanggal [{{ formatTanggalIndonesia($penawaran->persetujuan->tanggal_proposal_penawaran) }}] atas nama {{ $data->debiture->name }}, dengan ini PT. Bank Artha Graha Internasional.Tbk., menunjuk Saudara untuk melakukan penilaian atas agunan sebagaimana rincian dibawah ini.


Rincian Penilaian

@@ -94,13 +94,13 @@ i - Resume akan disampaikan dalam [SLA Resume - Data Pemeriksaan Persetujuan Penawaran] hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. + Resume akan disampaikan dalam [{{ hitungHariKerja($penawaran->persetujuan->created_at,$penawaran->persetujuan->sla_resume) }}] hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. ii - Laporan penilaian lengkap akan disampaikan dalam [SLA Final - Data Pemeriksaan Persetujuan Penawaran] hari kerja sesuai proposal penawaran. + Laporan penilaian lengkap akan disampaikan dalam [{{ hitungHariKerja($penawaran->persetujuan->created_at,$penawaran->persetujuan->sla_final) }}] hari kerja sesuai proposal penawaran. diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 171d57a..73a5748 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -65,7 +65,7 @@

Perihal: Penunjukan sebagai Penyedia Jasa Penilaian Agunan


- Berdasarkan surat penawaran Saudara [No proposal penawaran sesuai data pemeriksaan persetujuan penawaran] tanggal [Tgl proposal penawaran sesuai data pemeriksaan persetujuan penawaran] atas nama {{ $data->debiture->name }}, dengan ini PT. Bank Artha Graha Internasional.Tbk., menunjuk Saudara untuk melakukan penilaian atas agunan sebagaimana rincian dibawah ini. + Berdasarkan surat penawaran Saudara [{{$penawaran->persetujuan->nomor_proposal_penawaran}}] tanggal [{{ formatTanggalIndonesia($penawaran->persetujuan->tanggal_proposal_penawaran) }}] atas nama {{ $data->debiture->name }}, dengan ini PT. Bank Artha Graha Internasional.Tbk., menunjuk Saudara untuk melakukan penilaian atas agunan sebagaimana rincian dibawah ini.


Rincian Penilaian

@@ -109,13 +109,13 @@ i - Resume akan disampaikan dalam [SLA Resume - Data Pemeriksaan Persetujuan Penawaran] hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. + Resume akan disampaikan dalam [{{ hitungHariKerja($penawaran->persetujuan->created_at,$penawaran->persetujuan->sla_resume) }}] hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. ii - Laporan penilaian lengkap akan disampaikan dalam [SLA Final - Data Pemeriksaan Persetujuan Penawaran] hari kerja sesuai proposal penawaran. + Laporan penilaian lengkap akan disampaikan dalam [{{ hitungHariKerja($penawaran->persetujuan->created_at,$penawaran->persetujuan->sla_final) }}] hari kerja sesuai proposal penawaran. From ac684ca260889f6a09ab877385e76b636d7bd049 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 21 Nov 2024 18:38:31 +0700 Subject: [PATCH 2/5] Perbaiki format kode dan refaktor fungsi Melakukan perbaikan pada format penulisan kode untuk meningkatkan keterbacaan dan konsistensi. Memindahkan logika terkait tanggal libur dalam fungsi `countHariKerja` ke fungsi terpisah `holidays` agar lebih modular dan mudah dikelola. --- app/Helpers/Lpj.php | 90 +++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 5ce58a0..ec2aaf3 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -1,16 +1,16 @@ translatedFormat('d F Y'); } return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB'; @@ -19,7 +19,7 @@ use Modules\Lpj\Models\HolidayCalendar; function formatRupiah($number) { - $number = (float)$number; + $number = (float) $number; return 'Rp ' . number_format($number, 2, ',', '.'); } @@ -34,8 +34,8 @@ use Modules\Lpj\Models\HolidayCalendar; { $penawaran = PenawaranTender::find($id); - $start_date = strtotime($penawaran->start_date); - $end_date = strtotime($penawaran->end_date); + $start_date = strtotime($penawaran->start_date); + $end_date = strtotime($penawaran->end_date); // $todays_date = strtotime(now()); $todays_date = strtotime("+1 day", strtotime(now())); @@ -62,25 +62,25 @@ use Modules\Lpj\Models\HolidayCalendar; // DB::enableQueryLog(); // detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap? $query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where( - function ($query) { - // no_proposal - $query->orWhere('no_proposal', '', ""); - $query->orWhereNull('no_proposal'); + function ($query) { + // no_proposal + $query->orWhere('no_proposal', '', ""); + $query->orWhereNull('no_proposal'); - // tgl_proposal - $query->orWhere('tgl_proposal', '', ""); - $query->orWhereNull('tgl_proposal'); + // tgl_proposal + $query->orWhere('tgl_proposal', '', ""); + $query->orWhereNull('tgl_proposal'); - $query->orWhere('biaya_penawaran', '', ""); - $query->orWhereNull('biaya_penawaran'); + $query->orWhere('biaya_penawaran', '', ""); + $query->orWhereNull('biaya_penawaran'); - $query->orWhere('attachment', '', ""); - $query->orWhereNull('attachment'); + $query->orWhere('attachment', '', ""); + $query->orWhereNull('attachment'); - $query->orWhere('dokumen_persetujuan', '', ""); - $query->orWhereNull('dokumen_persetujuan'); - }, - )->get(); + $query->orWhere('dokumen_persetujuan', '', ""); + $query->orWhereNull('dokumen_persetujuan'); + }, + )->get(); // $sql = DB::getQueryLog(); @@ -103,28 +103,28 @@ use Modules\Lpj\Models\HolidayCalendar; return implode(' ', $words); } - // generate last penawaran.code - function onLastnumberCodePenawaran(): string + // generate last penawaran.code + function onLastnumberCodePenawaran() + : string { // chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC $maxCode = PenawaranTender::max('code'); // $penawaran = PenawaranTender::latest()->first(); - $penawaran = PenawaranTender::where('code','=',$maxCode)->first(); - $code_penawaran_last=''; - $noUrutAkhirString = sprintf("%04s", 1); - if($penawaran) - { - $code_penawaran_last = substr ($maxCode, -4); + $penawaran = PenawaranTender::where('code', '=', $maxCode)->first(); + $code_penawaran_last = ''; + $noUrutAkhirString = sprintf("%04s", 1); + if ($penawaran) { + $code_penawaran_last = substr($maxCode, -4); $year_penawaran_last = Carbon::parse($penawaran->created_at)->year; - $year_now = Carbon::now()->year; - if($year_now == $year_penawaran_last) - { - $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); + $year_now = Carbon::now()->year; + if ($year_now == $year_penawaran_last) { + $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); } } - - return 'NP'.Carbon::now()->format('y').$noUrutAkhirString; + + return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString; } + // andy add @@ -136,16 +136,9 @@ use Modules\Lpj\Models\HolidayCalendar; $hariKerja = 0; $tanggalSekarang = $tanggalMulai->copy(); - // Ambil semua tanggal libur dari tabel holiday calendar - $tanggalLibur = HolidayCalendar::whereBetween('date', [$tanggalMulai, $tanggalSelesai])->pluck('date')->map( - function ($item) { - return Carbon::parse($item)->format('Y-m-d'); - }, - )->toArray(); - while ($tanggalSekarang <= $tanggalSelesai) { // Cek apakah hari ini bukan Sabtu atau Minggu dan bukan hari libur - if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), $tanggalLibur)) { + if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), holidays())) { $hariKerja++; } $tanggalSekarang->addDay(); @@ -153,3 +146,12 @@ use Modules\Lpj\Models\HolidayCalendar; return $hariKerja; } + + function holidays() + { + return HolidayCalendar::pluck('date')->map( + function ($item) { + return Carbon::parse($item)->format('Y-m-d'); + }, + )->toArray(); + } From fb026079ef8c0b5c95dd05560bd606d745df9fe4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 21 Nov 2024 18:42:21 +0700 Subject: [PATCH 3/5] Hapus konfigurasi Vite dan simpan jalur aset saja Konfigurasi Vite dan plugin Laravel dihapus dari vite.config.js. Sekarang hanya tersisa konstanta `paths` yang berisi jalur aset. --- vite.config.js | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/vite.config.js b/vite.config.js index 14ef44d..93e2ba5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,26 +1,4 @@ -import {defineConfig} from 'vite'; -import laravel from 'laravel-vite-plugin'; - -export default defineConfig({ - build: { - outDir: '../../public/build-lpj', - emptyOutDir: true, - manifest: true, - }, - plugins: [ - laravel({ - publicDirectory: '../../public', - buildDirectory: 'build-lpj', - input: [ - __dirname + '/resources/assets/sass/app.scss', - __dirname + '/resources/assets/js/app.js' - ], - refresh: true, - }), - ], -}); - -//export const paths = [ -// 'Modules/Lpj/resources/assets/sass/app.scss', -// 'Modules/Lpj/resources/assets/js/app.js', -//]; +export const paths = [ + "Modules/Lpj/resources/assets/sass/app.scss", + "Modules/Lpj/resources/assets/js/app.js", +]; From d3d5208a900341d2c97526671c7feffd06d329f9 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 21 Nov 2024 18:42:29 +0700 Subject: [PATCH 4/5] Tambah fungsi 'hitungHariKerja' di app.js Menambahkan fungsi `hitungHariKerja` untuk menghitung jumlah hari kerja antara dua tanggal, dengan memperhitungkan hari libur dan akhir pekan. Fungsi ini tersedia secara global melalui `window.hitungHariKerja`. --- resources/assets/js/app.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index e69de29..c095698 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -0,0 +1,35 @@ +function hitungHariKerja(tanggalMulai, tanggalSelesai) { + tanggalMulai = new Date(tanggalMulai); + tanggalMulai.setHours(0, 0, 0, 0); + tanggalSelesai = new Date(tanggalSelesai); + tanggalSelesai.setHours(23, 59, 59, 999); + + let hariKerja = 0; + let tanggalSekarang = new Date(tanggalMulai); + + // You'll need to implement a way to get holiday dates from your server + // For this example, we'll assume you have a global variable holidayDates + // that contains an array of holiday date strings in 'YYYY-MM-DD' format + const tanggalLibur = window.holidayDates || []; + + while (tanggalSekarang <= tanggalSelesai) { + const dayOfWeek = tanggalSekarang.getDay(); + const dateString = tanggalSekarang.toISOString().split("T")[0]; + + // Check if it's not Saturday (6) or Sunday (0) and not a holiday + if ( + dayOfWeek !== 0 && + dayOfWeek !== 6 && + !tanggalLibur.includes(dateString) + ) { + hariKerja++; + } + + tanggalSekarang.setDate(tanggalSekarang.getDate() + 1); + } + + return hariKerja; +} + +// Make the function available globally +window.hitungHariKerja = hitungHariKerja; From fc93b98ec303aee3da2aa8f52d0d13a7cc41a134 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 22 Nov 2024 15:33:42 +0700 Subject: [PATCH 5/5] Perbaiki pengecekan dan konsistensi formatting pada custom fields Tambahkan pengecekan null untuk `custom_field` sebelum mem-parsing JSON `detail->details` dan perbaiki konsistensi format pada pengecekan dokumen jaminan. Hal ini memastikan tidak ada kesalahan saat field tersebut tidak ada. --- .../debitur/components/dokumen.blade.php | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 8c95b61..0cae77e 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -193,15 +193,18 @@ @if($detail->details) - @php $custom_field = json_decode($detail->details,true) @endphp -
- -
- + @if($detail->jenisLegalitasJaminan->custom_field) + @php $custom_field = json_decode($detail->details,true) @endphp +
+ +
+ +
-
+ @endif + @else @if($detail->jenisLegalitasJaminan->custom_field)
@@ -583,7 +586,7 @@
`; - }else if (typeof dokumenJaminan === 'string' && dokumenNomor === null) { + } else if (typeof dokumenJaminan === 'string' && dokumenNomor === null) { return `
Nomor Dokumen : --