diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 0855bb3..18d5a4b 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -46,8 +46,8 @@ function checkActiveDateRangePenawaran($id) $start_date = strtotime($penawaran->start_date); $end_date = strtotime($penawaran->end_date); - // $todays_date = strtotime(now()); - $todays_date = strtotime("+1 day", strtotime(now())); + $todays_date = strtotime(now()); + //$todays_date = strtotime("+1 day", strtotime(now())); $allow = true; if ($todays_date >= $start_date && $todays_date <= $end_date) { @@ -485,7 +485,7 @@ function calculateSLA($permohonan, $type) * @param int $jenisLegalitas * @return int */ -function calculateTotalLuas($detailsArray, $key, $jenisLegalitas) +function calculateTotalLuas($detailsArray, $key, $jenisLegalitas, $defaultJenisLegalitas) { $total = 0; @@ -503,7 +503,57 @@ function calculateTotalLuas($detailsArray, $key, $jenisLegalitas) } } } + + // Jika total masih 0, gunakan jenis jaminan ppjb + if ($total === 0) { + foreach ($detailsArray as $item) { + if (isset($item->jenis_legalitas_jaminan_id) && $item->jenis_legalitas_jaminan_id === $defaultJenisLegalitas) { + $details = json_decode($item->details, true); + + if (is_array($details)) { + foreach ($details as $detail) { + if (isset($detail[$key]) && $detail[$key] !== null) { + $total += (int) $detail[$key]; + } + } + } + } + } + } + + // jika total masih kosong juga maka gunakan ppb + if ($total === 0 && $fallbackJenisLegalitas !== null) { + foreach ($detailsArray as $item) { + if (isset($item->jenis_legalitas_jaminan_id) && $item->jenis_legalitas_jaminan_id === $fallbackJenisLegalitas) { + $details = json_decode($item->details, true); + + if (is_array($details)) { + foreach ($details as $detail) { + if (isset($detail[$key]) && $detail[$key] !== null) { + $total += (int) $detail[$key]; + } + } + } + } + } + } } - return $total; + return $total > 0 ? $total : 0; +} + + +function ubahNomorHp($nomorHp) { + + $nomorHp = preg_replace('/\D/', '', $nomorHp); + if (strpos($nomorHp, '62') === 0) { + $nomorBaru = substr($nomorHp, 0, 5) . "xxxxx"; + return '+' . $nomorBaru; + } elseif (strpos($nomorHp, '0') === 0) { + + $nomorBaru = substr($nomorHp, 0, 5) . "xxxxxx"; + return $nomorBaru; + } else { + return "Nomor HP tidak valid"; + } } diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index d7bd597..f12ae72 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -9,6 +9,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; + use Illuminate\Http\UploadedFile; use Log; use Modules\Location\Models\City; use Modules\Location\Models\District; @@ -249,7 +250,7 @@ 'jenis_legalitas_jaminan_id' => $value, 'name' => $request->name[$key], 'keterangan' => $request->keterangan[$key], - 'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '' + 'details' => isset($request->custom_field[$key]) ? json_encode(array_values($request->custom_field[$key])) : '' ]; $dokumenJaminan = []; @@ -279,7 +280,6 @@ } - // Setelah loop, periksa apakah ada dokumen yang dihapus $existingDetail = $existingDetails->get($request->detail_dokumen_jaminan_id[$key] ?? null); @@ -287,32 +287,69 @@ $existingDokumen = json_decode($existingDetail->dokumen_jaminan, true) ?? []; $existingNomor = json_decode($existingDetail->dokumen_nomor, true) ?? []; + $newDokumenJaminan = []; + $newDokumenNomor = []; + $allFilesDeleted = true; - // Jika jumlah dokumen berkurang, berarti ada yang dihapus - if (count($existingDokumen) > count($dokumenJaminan)) { - $dokumenJaminan = $existingDokumen; - $dokumenNomor = $existingNomor; - foreach ($request->dokumen_jaminan[$key] as $index => $file) { - if ($file === null) { - // Hapus dokumen yang tidak ada lagi - unset($dokumenJaminan[$index]); - unset($dokumenNomor[$index]); + foreach ($existingDokumen as $index => $existingFile) { + if (isset($request->dokumen_jaminan[$key][$index])) { + $allFilesDeleted = false; + $file = $request->dokumen_jaminan[$key][$index]; + if ($file instanceof \Illuminate\Http\UploadedFile) { + // File baru diupload + $file_name = $file->getClientOriginalName(); + $file->storeAs('public/jaminan/' . $debitur->id . '/' . $document->id . '/', $file_name); + $newDokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name; + $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-'; } elseif (is_string($file) && !empty($file)) { - // Update nomor dokumen untuk file yang tidak diubah - $dokumenNomor[$index] = $request->dokumen_nomor[$key][$index] ?? '-'; + // File tidak diubah + $newDokumenJaminan[] = $existingFile; + $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? $existingNomor[$index]; + } + } else { + // File dihapus, hapus dari storage jika ada + if (Storage::exists('public/' . $existingFile)) { + Storage::delete('public/' . $existingFile); } } - // Reset array keys - $dokumenJaminan = array_values($dokumenJaminan); - $dokumenNomor = array_values($dokumenNomor); + } + + // Tambahkan file baru yang mungkin ditambahkan + foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) { + if ($file instanceof UploadedFile) { + $allFilesDeleted = false; + $file_name = $file->getClientOriginalName(); + $path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name; + if (!in_array($path, $newDokumenJaminan)) { + $file->storeAs('public/' . dirname($path), $file_name); + $newDokumenJaminan[] = $path; + $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-'; + } + } elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) { + $allFilesDeleted = false; + $newDokumenJaminan[] = $file; + $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-'; + } + } + + if ($allFilesDeleted) { + $dokumenJaminan = []; + $dokumenNomor = []; + } else { + $dokumenJaminan = $newDokumenJaminan; + $dokumenNomor = $newDokumenNomor; } } + if (!empty($dokumenJaminan)) { $detailData['dokumen_jaminan'] = json_encode($dokumenJaminan); $detailData['dokumen_nomor'] = json_encode($dokumenNomor); + } else if(empty($dokumenJaminan)){ + $detailData['dokumen_jaminan'] = null; + $detailData['dokumen_nomor'] = null; } if (isset($request->detail_dokumen_jaminan_id[$key])) { diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 5d32d87..8eb6ead 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -144,10 +144,10 @@ class PenilaiController extends Controller } } - return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages')); + return view('lpj::penilai.components.lpj-sederhana-standar', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages')); } - public function standard(Request $request, $id) + public function standar(Request $request, $id) { $documentId = $request->query('documentId'); @@ -167,7 +167,7 @@ class PenilaiController extends Controller 'inspeksi_id' => $inspeksiId, ], [ - 'type_penilai' => 'standard', + 'type_penilai' => 'standar', ] ); @@ -212,7 +212,7 @@ class PenilaiController extends Controller } } - return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages')); + return view('lpj::penilai.components.lpj-sederhana-standar', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages')); } public function resume(Request $request) @@ -570,7 +570,7 @@ class PenilaiController extends Controller }); } - $query->whereRaw('LOWER(status) IN (?, ?, ?, ?, ?, ?,?, ?)', ['assign', 'survey-completed', 'proses-laporan', 'paparan', 'proses-paparan', 'paparan', 'revisi-laporan', 'revisi-paparan']); + $query->whereRaw('LOWER(status) IN (?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?)', ['assign', 'survey-completed', 'proses-laporan', 'paparan', 'proses-paparan', 'paparan', 'revisi-laporan', 'revisi-paparan', 'request-freeze', 'freeze', 'reject-freeze','unfreeze-sla']); if (!Auth::user()->hasRole('administrator')) { $query->whereHas('penilaian.userPenilai', function ($q) { @@ -963,41 +963,6 @@ class PenilaiController extends Controller } - public function storeMemo(Request $request) - { - try { - - $validatedData = $request->validate([ - 'permohonan_id' => 'required|integer', - 'document_id' => 'required|integer', - 'inspeksi_id' => 'required|integer', - 'memo' => 'required', - ]); - Penilai::updateOrCreate( - [ - 'permohonan_id' => $validatedData['permohonan_id'], - 'dokument_id' => $validatedData['document_id'], - 'inspeksi_id' => $validatedData['inspeksi_id'], - ], - [ - 'memo' => json_encode($validatedData['memo']), - ] - ); - - - return response()->json([ - 'success' => true, - 'message' => 'Berhasil saved memo' - ], 200); - } catch (\Exception $e) { - return response()->json([ - 'success' => false, - 'message' => 'Terjadi kesalahan', - 'error' => $e->getMessage() - ], 500); - } - } - public function storeMemoWithPhotos(Request $request) { try { @@ -1021,6 +986,8 @@ class PenilaiController extends Controller ] ); + $existingPhotos = isset($memo->memo) ? json_decode($memo->memo)->foto : []; + dd($existingPhotos); // Simpan foto-foto if ($request->hasFile('foto_0')) { $photoUrls = []; @@ -1033,11 +1000,15 @@ class PenilaiController extends Controller $index++; } - // Tambahkan URL foto ke data memo - $memoData['foto'] = $photoUrls; - $memo->memo = json_encode($memoData); - $memo->save(); + $memoData['foto'] = array_merge($existingPhotos, $photoUrls); + + }else{ + $memoData['foto'] = $existingPhotos; } + // Tambahkan URL foto ke data memo + $memoData['foto'] = $photoUrls; + $memo->memo = json_encode($memoData); + $memo->save(); return response()->json([ 'success' => true, @@ -1387,7 +1358,7 @@ class PenilaiController extends Controller { $viewMap = [ 'sederhana' => 'penilai.components.print-out-sederhana', - 'standard' => 'penilai.components.print-out-standard', + 'standar' => 'penilai.components.print-out-standar', 'resume' => 'penilai.components.print-resume', 'memo' => 'penilai.components.print-memo', 'rap' => 'penilai.components.print-out-rap', @@ -1450,7 +1421,7 @@ class PenilaiController extends Controller } - if ($type === 'standard' || $type === 'sederhana') { + if ($type === 'standar' || $type === 'sederhana') { return $this->checkDataLpj($type, $statusLpj); } diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 4655298..78849d4 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -450,7 +450,7 @@ class PenilaianController extends Controller public function otorisatorUpdate(Request $request, $id, $context) { - if ($context === 'SLA') { + if ($context === 'Freze SLA' || $context === 'Unfreeze SLA') { $authorization = Authorization::with(['user'])->find($id); if (!$authorization) { return response()->json([ @@ -513,7 +513,7 @@ class PenilaianController extends Controller } break; - case 'sla': + case 'freze sla': if (Auth::user()->roles[0]->name === 'senior-officer' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so === null) { $authorization->update([ 'status' => '3', @@ -595,6 +595,14 @@ class PenilaianController extends Controller ]); } break; + case 'unfreeze sla': + $authorization->update([ + 'request' => 'unfreeze-sla', + ]); + $permohonan->update([ + 'status' => 'unfreeze-sla', + ]); + break; default: return response()->json([ @@ -633,7 +641,7 @@ class PenilaianController extends Controller 'Pelaporan' => 'proses-laporan', 'Pembayaran' => 'proses', 'Pembatalan' => 'batal', - 'SLA' => 'freeze', + 'SLA' => 'request-freeze', 'Paparan' => 'proses-paparan', default => '', }; @@ -665,7 +673,7 @@ class PenilaianController extends Controller $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); } elseif ($status == 'batal') { $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } elseif ($status == 'freeze') { + } elseif ($status == 'request-freeze') { $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); } elseif ($status == 'proses-paparan') { $query->whereRaw('LOWER(status) IN (?, ?)', ['proses-paparan', 'paparan']); @@ -825,8 +833,8 @@ class PenilaianController extends Controller private function getViewLaporan($tipe) { $viewMap = [ - 'sederhana' => 'penilai.components.lpj-sederhana-standard', - 'standard' => 'penilai.components.lpj-sederhana-standard', + 'sederhana' => 'penilai.components.lpj-sederhana-standar', + 'standar' => 'penilai.components.lpj-sederhana-standar', 'resume' => 'penilai.components.resume', 'memo' => 'penilai.components.memo', 'rap' => 'penilai.components.rap-penilai', @@ -891,7 +899,8 @@ class PenilaianController extends Controller public function revisiLaporan(Request $request, $id) { - if($request->dataHeader=='Paparan'){ + // dd($id); + if($request->dataHeader=='Paparan' || $request->dataHeader=='Freze SLA'){ $authorization = Authorization::find($id); $permohonan = Permohonan::find($authorization->permohonan_id); } else { @@ -905,7 +914,13 @@ class PenilaianController extends Controller } $status = 'revisi-paparan'; - } elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') { + }else if($permohonan->status === 'request-freeze'){ + if ($authorization) { + $authorization->delete(); + } + + $status = 'reject-freeze'; + }elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') { $permohonan->update([ 'approval_so' => 0, 'approval_so_at' => null, diff --git a/app/Http/Controllers/SLAController.php b/app/Http/Controllers/SLAController.php index 3256aee..159995c 100644 --- a/app/Http/Controllers/SLAController.php +++ b/app/Http/Controllers/SLAController.php @@ -71,7 +71,7 @@ class SLAController extends Controller // abort(403, 'Sorry! You are not allowed to view users.'); } - $query = Authorization::query()->with('permohonan.debiture','user','approveSo','approveEo','approveDd')->where('jenis','sla'); + $query = Authorization::query()->with('permohonan.debiture', 'user', 'approveSo', 'approveEo', 'approveDd')->where('jenis', 'sla')->where('request', 'freeze'); // Pencarian berdasarkan parameter search if ($request->has('search') && !empty($request->get('search'))) { diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index f250222..2cc6438 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -766,9 +766,15 @@ class SurveyorController extends Controller $permohonan->update([ 'status' => 'survey-completed', - 'submitted_at' => now() ]); + $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); + + $penilaian->update([ + 'status' => 'survey-completed', + ]); + + if($permohonan->jenisPenilaian->name=="External") { LaporanExternal::updateOrCreate( ['permohonan_id' => $permohonan->id], @@ -916,10 +922,16 @@ class SurveyorController extends Controller try { $permohonan = Permohonan::findOrFail($id); + $permohonan->update([ + 'keterangan' => $request->keterangan, + 'status' => 'request-freeze', + ]); + Authorization::updateOrCreate([ 'permohonan_id' => $permohonan->id, - 'jenis' => 'sla' + 'jenis' => 'sla', ], [ + 'keterangan' => $request->keterangan, 'request' => 'freeze', 'user_id' => Auth::user()->id ]); @@ -2424,7 +2436,7 @@ class SurveyorController extends Controller $validator = Validator::make($request->all(), [ 'signature' => 'required', - 'type' => 'required|in:penilai,cabang,debitur,kjjp', + 'type' => 'required|in:penilai,cabang,debitur,kjpp', 'name' => 'nullable|string', 'document_id' => 'nullable|string' ]); @@ -2531,7 +2543,7 @@ class SurveyorController extends Controller { try { $validator = Validator::make($request->all(), [ - 'type' => 'required|in:penilai,cabang,debitur,kjjp' + 'type' => 'required|in:penilai,cabang,debitur,kjpp' ]); if ($validator->fails()) { diff --git a/app/Models/LampiranDokumen.php b/app/Models/LampiranDokumen.php index 27eb576..af514f5 100644 --- a/app/Models/LampiranDokumen.php +++ b/app/Models/LampiranDokumen.php @@ -27,7 +27,7 @@ class LampiranDokumen extends Base { $user = Auth::user(); - if ($user && $user->hasAnyRole(['penilai', 'administrator', 'Penilai', 'admin'])) { + if ($user && $user->hasAnyRole(['penilai', 'administrator', 'Penilai', 'admin','surveyor'])) { $file = $fileData['file']; $fileName = $fileData['nama_file'] ?? time() . '_' . $file->getClientOriginalName(); $filePath = $file->storeAs('lampiran_dokumen', $fileName, 'public'); diff --git a/resources/views/component/print-out-dokument.blade.php b/resources/views/component/print-out-dokument.blade.php index 1d8be54..11d37b7 100644 --- a/resources/views/component/print-out-dokument.blade.php +++ b/resources/views/component/print-out-dokument.blade.php @@ -22,9 +22,13 @@ : - {{ $item }} - @if ($key == 'luas_bangunan' || $key == 'luas_tanah') - m2 + @if (strpos(strtolower($key), 'tanggal') !== false) + {{ formatTanggalIndonesia($item) }} + @else + {{ $item }} + @if ($key == 'luas_bangunan' || $key == 'luas_tanah') + m2 + @endif @endif diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 2debb71..4532394 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -308,6 +308,7 @@ + @if($detail->details) diff --git a/resources/views/penilai/components/footer.blade.php b/resources/views/penilai/components/footer.blade.php index e91d01d..5f521a1 100644 --- a/resources/views/penilai/components/footer.blade.php +++ b/resources/views/penilai/components/footer.blade.php @@ -43,7 +43,7 @@ 'foto_gistaru' => 'Gistaru', 'foto_bhumi' => 'Bhumi', 'foto_argis_region' => 'Blad Tata Ruang ', - 'foto_tempat' => 'Tempat', + 'foto_tempat' => 'Peta Lokasi', ]; // Memindahkan foto_tempat ke depan jika ada if (($key = array_search('upload_gs', $fotoTypes)) !== false) { diff --git a/resources/views/penilai/components/header.blade.php b/resources/views/penilai/components/header.blade.php index b16c777..3d1829b 100644 --- a/resources/views/penilai/components/header.blade.php +++ b/resources/views/penilai/components/header.blade.php @@ -123,7 +123,7 @@ } } use Modules\Usermanagement\Models\User; - $surveyorUser = User::where('id', $surveyor->userPenilaiTeam->id)->first(); + $penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first(); $data = rtrim($data, ', '); @endphp @@ -138,12 +138,12 @@

- Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('d-m-Y') }} + Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('d-m-Y') }}

- Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('H:i') }} + Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('H:i') }}

-

User: {{ $surveyorUser->name }}

+

User: {{ $penilaiUser->name }}

diff --git a/resources/views/penilai/components/lpj-sederhana-standard.blade.php b/resources/views/penilai/components/lpj-sederhana-standar.blade.php similarity index 100% rename from resources/views/penilai/components/lpj-sederhana-standard.blade.php rename to resources/views/penilai/components/lpj-sederhana-standar.blade.php diff --git a/resources/views/penilai/components/print-memo.blade.php b/resources/views/penilai/components/print-memo.blade.php index 9f9d27e..a6e0aa2 100644 --- a/resources/views/penilai/components/print-memo.blade.php +++ b/resources/views/penilai/components/print-memo.blade.php @@ -35,32 +35,29 @@

MEMO ANTAR KANTOR

+

NO: {{ $nomorLaporan ?? '' }}

+
- + - + - - - - - - + - + @@ -86,51 +83,44 @@
KepadaKepada : {{ $memo['kepada'] ?? '' }}
DariDari : {{ $memo['dari'] ?? '' }}
No memo:{{ $nomorLaporan ?? '-' }}
TanggalTanggal : {{ formatTanggalIndonesia($memo['tanggal']) }}
PerihalPerihal : {{ $memo['perihal'] ?? '' }}
- + - + @include('lpj::component.print-out-dokument') - - + @if (!empty($memo['lokasi']['address'])) - - - - - - - - - - - - - - - - - - - - - - - - - + @php + $alamatFields = [ + 'Terletak di' => 'address', + 'Desa/Kelurahan' => 'village_code', + 'Kecamatan' => 'district_code', + 'Kabupaten/Kota' => 'city_code', + 'Provinsi' => 'province_code' + ]; + @endphp + + @foreach ($alamatFields as $label => $field) + @if (!empty($alamat[$field])) + + + + + + @endif + @endforeach @endif
Nama Calon DebiturNama Calon Debitur : {{ $permohonan->debiture->name ?? '' }}
Jenis AsetJenis Aset : {{ $data ?? '' }}
Atas NamaAtas Nama : {{ $permohonan->debiture->name ?? '' }}
Terletak di: {{ $alamat['address'] ?? '' }}
Desa/Kelurahan:{{ $alamat['village_code'] ?? '' }}
Kecamatan:{{ $alamat['district_code'] ?? '' }}
Kabupaten/Kota: {{ $alamat['city_code'] ?? '' }}
Provinsi:{{ $alamat['province_code'] ?? '' }}
{{ $label }}:{{ $alamat[$field] }}
@@ -146,25 +136,25 @@ - + - + - + - + @@ -295,9 +285,11 @@
Tanggal KunjunganTanggal Kunjungan : {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}
SurveyorSurveyor : {{ $surveyor->userPenilaiTeam->name ?? '' }}
Pihak PemohonPihak Pemohon : {{ $permohonan->user->name ?? '' }} - {{ $permohonan->debiture->branch->name ?? '' }}
Pihak Cadeb/DebiturPihak Cadeb/Debitur : {{ $permohonan->debiture->name ?? '' }}
+@if (isset($memo['foto'])) + @foreach ($memo['foto'] as $item) - @php + @php $cleanedPath = str_replace('/storage/', '', $item); $imagePath = storage_path('app/public/' . $cleanedPath); @endphp @@ -307,7 +299,7 @@ @endforeach -
+@endif @include('lpj::penilai.components.footer') diff --git a/resources/views/penilai/components/print-out-call-report.blade.php b/resources/views/penilai/components/print-out-call-report.blade.php index 8a8fe03..00303af 100644 --- a/resources/views/penilai/components/print-out-call-report.blade.php +++ b/resources/views/penilai/components/print-out-call-report.blade.php @@ -39,25 +39,26 @@ +
- + - + - + - + @@ -75,24 +76,24 @@
KepadaKepada : {{ $report['kepada'] ?? '' }}
DariDari : {{ $report['dari'] ?? '' }}
TanggalTanggal : {{ formatTanggalIndonesia($report['tanggal']) }}
PerihalPerihal : {{ $report['perihal'] ?? '' }}
- + - + - + @if (!empty($report['lokasi']['address'])) - + - + - + - + - @@ -142,25 +143,25 @@
Nama DebiturNama Debitur : {{ $permohonan->debiture->name ?? '' }}
KJPPKJPP : {{ preg_replace('/^K\\d+ - /', '', $permohonan->penawaran->nama_kjpp_sebelumnya ?? '-') }}
Jenis AsetJenis Aset : {{ $data ?? '' }}
Lokasi Objek PenilaianLokasi Objek Penilaian : {{ $report['lokasi']['address'] ?? '' }}, {{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }}, @@ -103,22 +104,22 @@ @include('lpj::component.print-out-dokument')
Tanggal PenilaianTanggal Penilaian : {{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }}
Lelang keLelang ke : {{ $report['lelang_kjpp'] ?? '' }}
Nilai Pasar Wajar (NPW)Nilai Pasar Wajar (NPW) : {{ isset($report['nilai_pasar_kjpp']) ? formatRupiah($report['nilai_pasar_kjpp']) : '-' }}
+ Nilai Likuidasi {{ isset($report['persentase_likuidasi_kjpp']) ? '(' . $report['persentase_likuidasi_kjpp'] . '%)' : '-' }}
- + - + - + - + diff --git a/resources/views/penilai/components/print-out-rap.blade.php b/resources/views/penilai/components/print-out-rap.blade.php index 19a768d..32e7432 100644 --- a/resources/views/penilai/components/print-out-rap.blade.php +++ b/resources/views/penilai/components/print-out-rap.blade.php @@ -28,32 +28,26 @@ $data = rtrim($data, ', '); @endphp
-
Staf Subdit Appraisal Staf Subdit Appraisal : {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}
Pihak KJPPPihak KJPP : {{ $forminspeksi['signature']['kjjp']['name'] ?? $report['pihak_kjjpp'] ?? '' }}
Pihak BAGI Cab Pihak BAGI Cab : {{ $permohonan->user->name ?? '' }} - {{ $permohonan->debiture->branch->name ?? '' }}
Debitur/perwakilan debitur Debitur/perwakilan debitur : {{ $permohonan->debiture->name ?? '' }}
- - - -
-

Report Analisa Property

-
+
+

Report Analisa Property + {{ $data }}

+

NO: {{ $nomorLaporan }}

+
+
- + - + - - - - - - + @@ -77,7 +71,7 @@ - + @@ -87,7 +81,7 @@

NAMA DEVELOPER

KepadaKepada : {{ $rap['kepada'] ?? '' }}
DariDari : {{ $rap['dari'] ?? '' }}
No:{{ $nomorLaporan ?? '-' }}
Tanggal SurveyTanggal Survey : {{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) }}
PerihalPerihal : {{ $rap['perihal'] ?? '' }}
- + @@ -96,7 +90,7 @@

NAMA PROYEK

NamaNama : {{ $permohonan->debiture->name ?? '' }}
- + @@ -104,7 +98,7 @@

ALAMAT

ProyekProyek : {{ $data ?? '' }}
- + @@ -138,7 +132,7 @@ @if (isset($forminspeksi['perizinan']) && is_array($forminspeksi['perizinan']) && count($forminspeksi['perizinan']) > 0) @foreach ($forminspeksi['perizinan'] as $perizinan) - + @@ -148,7 +142,7 @@ @if (isset($forminspeksi['brosur_price_list']) && count($forminspeksi['brosur_price_list']) > 0) @foreach ($forminspeksi['brosur_price_list'] as $perizinan) - + @@ -160,13 +154,13 @@

DESKRIPSI DEVELOPER

Terletak diTerletak di : {{ $alamat['address'] ?? '' }}
PerizinanPerizinan : {{ $perizinan['perizinan'] }}
Brosur & PricelistBrosur & Pricelist : {{ $perizinan['jenis'] }}
- - + @@ -175,7 +169,7 @@ @isset($forminspeksi['lainnya_developer']) @foreach ($forminspeksi['lainnya_developer'] as $item) - +
Pengalaman Developer & Proyek Yang Pernah + Pengalaman Developer & Proyek Yang Pernah Dibuat : {!! nl2br(e($forminspeksi['pengalaman_developer'] ?? 'Data tidak tersedia')) !!}
Apakah Developer Anggota REIApakah Developer Anggota REI : {!! nl2br(e($forminspeksi['developer_anggota'] ?? 'Data tidak tersedia')) !!}
LainnyaLainnya : {!! nl2br(e($item)) !!} @@ -187,43 +181,43 @@

KONDISI, LINGKUNGAN DAN PROGRESS PEMBANGUNAN

- - + - + - + - + - + - + - + @@ -232,7 +226,7 @@ @isset($forminspeksi['lainnya_kondisi']) @foreach ($forminspeksi['lainnya_kondisi'] as $item) - + - diff --git a/resources/views/penilai/components/print-out-sederhana.blade.php b/resources/views/penilai/components/print-out-sederhana.blade.php index acce9e1..02cee4c 100644 --- a/resources/views/penilai/components/print-out-sederhana.blade.php +++ b/resources/views/penilai/components/print-out-sederhana.blade.php @@ -8,6 +8,12 @@ @endphp
+
+

LAPORAN PENILAIAN ATAS + {{ $data }}

+

NO: {{ $nomorLaporan }}

+
+
Kapan Mulai Dibangun & Target Penyelesaian + Kapan Mulai Dibangun & Target Penyelesaian : {!! nl2br(e($forminspeksi['kapan_mulai_dibangun'] ?? 'Data tidak tersedia')) !!}
Kondisi Perumahan Saat IniKondisi Perumahan Saat Ini : {!! nl2br(e($forminspeksi['kondisi_perumahan'] ?? 'Data tidak tersedia')) !!}
Progress PembangunanProgress Pembangunan : {!! nl2br(e($forminspeksi['progres_pembangunan'] ?? 'Data tidak tersedia')) !!}
Kontraktor (internal/eksternal)Kontraktor (internal/eksternal) : {!! nl2br(e($forminspeksi['kontraktor'] ?? 'Data tidak tersedia')) !!}
Lingkungan SekitarLingkungan Sekitar : {!! nl2br(e($forminspeksi['lingkungan_sekitar'] ?? 'Data tidak tersedia')) !!}
Komplek Lain Disekitar LokasiKomplek Lain Disekitar Lokasi : {!! nl2br(e($forminspeksi['komplek_disekitar'] ?? 'Data tidak tersedia')) !!}
Pusat Keramaian Dekat LokasiPusat Keramaian Dekat Lokasi : {!! nl2br(e($forminspeksi['pusat_keramaian'] ?? 'Data tidak tersedia')) !!}
Transportasi Umum Yang TersediaTransportasi Umum Yang Tersedia : {!! nl2br(e($forminspeksi['transportasi_umum'] ?? 'Data tidak tersedia')) !!}
LainnyaLainnya : {!! nl2br(e($item)) !!} @@ -249,7 +243,7 @@ @foreach ($forminspeksi['partisi'] as $key => $item) @if (is_array($item))
+ {{ $item['nama'] ?? '' }} :
- - - - - @@ -266,7 +267,7 @@ @endphp - + diff --git a/resources/views/penilai/components/print-pembanding.blade.php b/resources/views/penilai/components/print-pembanding.blade.php index f18a495..bf342e0 100644 --- a/resources/views/penilai/components/print-pembanding.blade.php +++ b/resources/views/penilai/components/print-pembanding.blade.php @@ -44,6 +44,9 @@ @elseif($key == 'tanggal') {{ formatTanggalIndonesia($data[$key]) ?? '-' }} + @elseif($key == 'telepon') + {{ isset($data['telepon']) ? ubahNomorHp($data['telepon']) : '-' }} + @elseif($key == 'kordinat') @php $lat = $data['kordinat_lat'] ?? null; diff --git a/resources/views/penilai/index.blade.php b/resources/views/penilai/index.blade.php index cd076ef..a13c512 100644 --- a/resources/views/penilai/index.blade.php +++ b/resources/views/penilai/index.blade.php @@ -165,13 +165,15 @@ tujuan_penilaian_id: { title: 'Tujuan Penilaian', render: (item, data) => { - return data.tujuan_penilaian && data.tujuan_penilaian.name ? `${data.tujuan_penilaian.name}` : '-'; + return data.tujuan_penilaian && data.tujuan_penilaian.name ? + `${data.tujuan_penilaian.name}` : '-'; }, }, jenis_fasilitas_kredit_id: { title: 'Fasilitas Kredit', render: (item, data) => { - return data.jenisfasilitas_kredit && data.jenisfasilitas_kredit.name ? `${data.jenisfasilitas_kredit.name}` : '-'; + return data.jenisfasilitas_kredit && data.jenisfasilitas_kredit.name ? + `${data.jenisfasilitas_kredit.name}` : '-'; }, }, jenis_laporan: { @@ -183,7 +185,7 @@ tanggal_survei: { title: 'Tanggal Survei', render: (item, data) => { - if(data.penilaian.waktu_penilaian){ + if (data.penilaian.waktu_penilaian) { return `${formatDate(new Date(data.penilaian.waktu_penilaian))}`; } return `${formatDate(new Date(data.penilaian.created_at))}`; @@ -196,19 +198,19 @@ const tipe_laporan = data.penilai?.type; const nilai_plafond = data.penilaian.nilaiPlafond?.name; let waktu_penilaian = new Date(data.penilaian.created_at); - if(data.penilaian.waktu_penilaian){ + if (data.penilaian.waktu_penilaian) { waktu_penilaian = new Date(data.penilaian.waktu_penilaian); } - if(tujuan_penilaian.name==="RAP"){ + if (tujuan_penilaian.name === "RAP") { waktu_penilaian.setDate(waktu_penilaian.getDate() + 3); } else { - if(tipe_laporan==="sederhana"){ + if (tipe_laporan === "sederhana") { waktu_penilaian.setDate(waktu_penilaian.getDate() + 2); - } else if(tipe_laporan==="standar"){ - if(nilai_plafond==="2 M - 5 M"){ + } else if (tipe_laporan === "standar") { + if (nilai_plafond === "2 M - 5 M") { waktu_penilaian.setDate(waktu_penilaian.getDate() + 3); - } else if(nilai_plafond==="< 2M"){ + } else if (nilai_plafond === "< 2M") { waktu_penilaian.setDate(waktu_penilaian.getDate() + 3); } else { waktu_penilaian.setDate(waktu_penilaian.getDate() + 5); @@ -232,7 +234,10 @@ actions: { title: 'Action', render: (item, data) => { - if (data.status === 'survey-completed' || data.status === 'proses-laporan' || data.status === 'paparan' || data.status === 'proses-paparan' || data.status === 'paparan' || data.status == 'revisi-laporan' || data.status === 'done' || data.status === 'revisi-paparan') { + if (data.status === 'survey-completed' || data.status === 'proses-laporan' || data + .status === 'paparan' || data.status === 'proses-paparan' || data.status === + 'paparan' || data.status == 'revisi-laporan' || data.status === 'done' || data + .status === 'revisi-paparan' || data.status === 'unfreeze-sla') { return ` `; - } else { + } else if (data.status === 'freeze' || data.status === 'request-freeze') { + return ` + `; + } else + { return `` @@ -268,56 +281,56 @@ -@endpush + + const isPaparanSO = dataHeader === 'Unfreeze SLA' && role === 'UNFREZE'; + const hideDenyButton = (dataHeader === 'Unfreeze SLA' && (role === 'UNFREZE' || role === 'FREZE')); + + const swalHtml = isPaparanSO ? ` +
+

Untuk melakukan otorisasi ${dataHeader}!

+
+ +
+
` : ''; + + showSwalConfirmation( + 'Apakah Anda yakin?', + `Untuk melakukan otorisasi ${dataHeader}!`, + swalHtml, + 'Ya, Lanjutkan!', + hideDenyButton ? null : 'Tolak', + 'Batal', + () => { + if (isPaparanSO) { + const message = document.getElementById('swal-keterangan')?.value; + + if (!message) { + Swal.showValidationMessage('Keterangan harus diisi!'); + return false; + } + + return { + message, + }; + } else { + return { + message: 'Ya, lanjutkan.' + }; + } + }, + 'question' + ).then((result) => { + if (result.isConfirmed) { + const requestData = isPaparanSO ? { + keterangan: result.value.message, + } : { + keterangan: result.value.message + }; + + handleAjaxRequest( + `/otorisator/otorisator/${dataId}/${dataHeader}`, + requestData, + 'Data berhasil diotorisasi.', + 'Terjadi kesalahan saat melakukan otorisasi.' + ); + } else if (!hideDenyButton && result.isDenied) { + handleRejection(dataId, dataHeader); + } + }); + } + + @endpush diff --git a/resources/views/permohonan/authorization/index.blade.php b/resources/views/permohonan/authorization/index.blade.php index 2a84158..6906698 100644 --- a/resources/views/permohonan/authorization/index.blade.php +++ b/resources/views/permohonan/authorization/index.blade.php @@ -154,7 +154,7 @@ debitur_id: { title: 'Debitur', render: (item, data) => { - return `${data.debiture.name}`; + return `${data.debiture?.name}`; }, }, tujuan_penilaian_id: { diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index 9f6e622..5778669 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -16,7 +16,7 @@ $total_luas_bangunan = 0; $jenis_legalitas_jaminan_id = 0; if (isset($item->detail)) { - $total_luas_bangunan = calculateTotalLuas($item->detail, 'luas_bangunan', 10); + $total_luas_bangunan = calculateTotalLuas($item->detail, 'luas_bangunan', 10, 27, 3); } @endphp
- @foreach (['penilai', 'cabang', 'debitur', 'kjjp'] as $type) + @foreach (['penilai', 'cabang', 'debitur', 'kjpp'] as $type) @include('lpj::component.signature-pad', ['type' => $type]) @endforeach @@ -95,7 +95,7 @@ console.log(datas); document.addEventListener('DOMContentLoaded', function() { const signaturePads = {}; - const types = ['penilai', 'cabang', 'debitur', 'kjjp']; + const types = ['penilai', 'cabang', 'debitur', 'kjpp']; // Initialize all signature pads types.forEach(type => initSignaturePad(type)); diff --git a/resources/views/surveyor/components/print-out/main.blade.php b/resources/views/surveyor/components/print-out/main.blade.php index e7401a4..39e8bd2 100644 --- a/resources/views/surveyor/components/print-out/main.blade.php +++ b/resources/views/surveyor/components/print-out/main.blade.php @@ -203,10 +203,10 @@
@endif @@ -605,9 +605,9 @@ {{ ucwords(strtolower('DEBITUR/PERWAKILAN')) }} @endif - @if (isset($forminspeksi['signature']['kjjp']['name'])) + @if (isset($forminspeksi['signature']['kjpp']['name'])) diff --git a/resources/views/surveyor/components/tanah.blade.php b/resources/views/surveyor/components/tanah.blade.php index 3c8391b..ea7f5db 100644 --- a/resources/views/surveyor/components/tanah.blade.php +++ b/resources/views/surveyor/components/tanah.blade.php @@ -14,10 +14,11 @@ @if (isset($permohonan->documents)) @foreach ($permohonan->documents as $item) @php + // 27 $total_luas_tanah = 0; $jenis_legalitas_jaminan_id = 0; if (isset($item->detail)) { - $total_luas_tanah = calculateTotalLuas($item->detail, 'luas_tanah', 1); + $total_luas_tanah = calculateTotalLuas($item->detail, 'luas_tanah', 1, 27, 3); } @endphp parent('penilai.show'); $trail->push('Standard'); }); diff --git a/routes/web.php b/routes/web.php index e6033c1..b497718 100644 --- a/routes/web.php +++ b/routes/web.php @@ -604,7 +604,7 @@ Route::middleware(['auth'])->group(function () { Route::post('import/kertas-kerja', [PenilaiController::class, 'import_kertas_kerja'])->name('import.kertas-kerja'); Route::get('sederhana/{id}', [PenilaiController::class, 'sederhana'])->name('sederhana'); - Route::get('standard/{id}', [PenilaiController::class, 'standard'])->name('standard'); + Route::get('standar/{id}', [PenilaiController::class, 'standar'])->name('standar'); Route::get('resume', [PenilaiController::class, 'resume'])->name('resume'); Route::get('memo', [PenilaiController::class, 'memo'])->name('memo'); Route::get('paparan', [PenilaiController::class, 'paparan'])->name('paparan');
@@ -99,11 +105,6 @@ : {{ $senior_officer->name ?? '' }}
No Laporan:{{ $nomorLaporan ?? '' }}
Tanggal Laporan :Luas Tanah :{{ $luas ?? '' }}{{ $luas ?? '' }} m2
Bentuk Tanah

- Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('d-m-Y') }} + Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('d-m-Y') }}

- Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('H:i') }} + Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('H:i') }}

User: {{ $surveyorUser->name }}

@@ -574,10 +574,10 @@ @endif - @if (isset($forminspeksi['signature']['kjjp'])) + @if (isset($forminspeksi['signature']['kjpp']))
KJPP + src="{{ $forminspeksi['signature']['kjpp']['image'] }}" alt="KJPP">
- {{ ucwords(strtolower($forminspeksi['signature']['kjjp']['name'])) }} + {{ ucwords(strtolower($forminspeksi['signature']['kjpp']['name'])) }}
{{ strtoupper('K.J.P.P') }}