diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index ddc280b..5587ab2 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -763,6 +763,22 @@ class PenilaiController extends Controller $permohonan = Permohonan::findOrFail($id); + + if ($permohonan->status === 'proses-laporan') { + return response()->json([ + 'success' => false, + 'message' => 'Masih proses laporan', + ], 400); + } + + if ($permohonan->status === 'proses-paparan') { + return response()->json([ + 'success' => false, + 'message' => 'Masih proses paparan', + ]); + } + + $permohonan->update([ 'status' => 'proses-laporan', ]); @@ -1322,7 +1338,7 @@ class PenilaiController extends Controller public function generateNoLaporan($permohonan, $documentId, $type) { - $typeMapping = ['lpj' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP', 'call-report' => 'CR']; + $typeMapping = ['sederhana' => 'LPJ', 'standard' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP', 'call-report' => 'CR']; // Cek apakah data sudah ada $laporan = Laporan::where([ @@ -1593,6 +1609,22 @@ class PenilaiController extends Controller public function revisiSurveyor(Request $request, $id) { $permohonan = Permohonan::findOrFail($id); + + if ($permohonan->status === 'proses-laporan') { + return response()->json([ + 'success' => false, + 'message' => 'Masih proses laporan', + ], 400); + } + + if ($permohonan->status === 'proses-paparan') { + return response()->json([ + 'success' => false, + 'message' => 'Masih proses paparan', + ], 400); + } + + $permohonan->update([ 'status' => 'revisi-survey', 'keterangan' => $request->message, diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 03cc742..5e88202 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -482,14 +482,14 @@ class PenilaianController extends Controller $permohonan->update([ 'status_bayar' => $newStatus, - 'keterangan' => $request->message, + 'keterangan' => $request->keterangan, ]); break; case 'pembatalan': $permohonan->update([ 'status' => 'batal', - 'keterangan' => $request->message, + 'keterangan' => $request->keterangan, ]); break; @@ -509,7 +509,7 @@ class PenilaianController extends Controller } if ($approvalField) { - $this->updatePermohonan($permohonan, $status, $approvalField, $request->message); + $this->updatePermohonan($permohonan, $status, $approvalField, $request->keterangan); } break; @@ -559,11 +559,12 @@ class PenilaianController extends Controller 'status_so' => '1', 'approve_so' => Auth::user()->id, 'approve_so_at' => now(), - 'keterangan_so' => $request->message, + 'keterangan_so' => $request->keterangan, ]); $permohonan->update([ - 'tanggal_paparan' => $request->tanggalPaparan + 'tanggal_paparan' => $request->tanggalPaparan, + 'keterangan' => $request->keterangan ]); } elseif (Auth::user()->roles[0]->name === 'EO Appraisal') { $status = '2'; @@ -578,7 +579,7 @@ class PenilaianController extends Controller 'status_eo' => '1', 'approve_eo' => Auth::user()->id, 'approve_eo_at' => now(), - 'keterangan_eo' => $request->message, + 'keterangan_eo' => $request->keterangan, ]); } elseif (Auth::user()->roles[0]->name === 'DD Appraisal' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so && $authorization->approve_dd === null) { $authorization->update([ @@ -586,7 +587,7 @@ class PenilaianController extends Controller 'status_dd' => '1', 'approve_dd' => Auth::user()->id, 'approve_dd_at' => now(), - 'keterangan_dd' => $request->message, + 'keterangan_dd' => $request->keterangan, ]); $permohonan->update([ @@ -893,25 +894,27 @@ class PenilaianController extends Controller $permohonan = Permohonan::findOrFail($id); $userRole = Auth::user()->roles[0]->name; - if ($permohonan->status === 'proses-paparan' && in_array($userRole, ['EO Appraisal', 'DD Appraisal'])) { - Authorization::delete([ - 'permohonan_id' => $permohonan->id, - 'jenis' => 'paparan', - 'request' => 'paparan', - ]); + $authorization = Authorization::where('permohonan_id', $permohonan->id) + ->where('jenis', 'paparan')->first(); + + if ($permohonan->status === 'proses-paparan') { + if ($authorization) { + $authorization->delete(); + } + $status = 'revisi-paparan'; } elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') { $permohonan->update([ - 'approve_so' => null, - 'approve_so_at' => null, + 'approval_so' => 0, + 'approval_so_at' => null, ]); $status = 'revisi-laporan'; } elseif ($permohonan->status === 'proses-laporan' && $userRole === 'DD Appraisal') { $permohonan->update([ - 'approve_so' => null, - 'approve_so_at' => null, - 'approve_eo' => null, - 'approve_eo_at' => null, + 'approval_so' => 0, + 'approval_so_at' => null, + 'approval_eo' => 0, + 'approval_eo_at' => null, ]); $status = 'revisi-laporan'; @@ -925,7 +928,7 @@ class PenilaianController extends Controller // Perbarui status dan informasi lainnya $permohonan->update([ 'status' => $status, - 'keterangan' => $request->message, + 'keterangan' => $request->keterangan, 'submitted_at' => now(), ]); diff --git a/app/Http/Controllers/RegistrasiController.php b/app/Http/Controllers/RegistrasiController.php index a0fb3ba..42efcea 100644 --- a/app/Http/Controllers/RegistrasiController.php +++ b/app/Http/Controllers/RegistrasiController.php @@ -231,7 +231,7 @@ class RegistrasiController extends Controller { $permohonan = Permohonan::find($id); $debitur = Debiture::find($permohonan->debiture_id); - $documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get(); + $documents = DokumenJaminan::with('pemilik', 'detail')->where('permohonan_id', $id)->get(); return view('lpj::registrasi.show', compact('id', 'permohonan', 'documents', 'debitur')); } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 0164cc4..01076f5 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -2007,7 +2007,21 @@ class SurveyorController extends Controller 'analisa_unit' => 'luas_unit', }; - $this->updateDetails($permohonan, $key, $request->input($key)); + + $jenis_jaminan_mapping = [ + 'luas_unit' => $request->input('jenis_legalistas_jaminan_unit_id'), + 'luas_bangunan' => $request->input('jenis_legalistas_jaminan_bangunan_id'), + 'luas_tanah' => $request->input('jenis_legalistas_jaminan_tanah_id'), + ]; + + + $jenis_jaminan_id = $jenis_jaminan_mapping[$key] ?? 0; + // dd($jenis_jaminan_id); + + $inputValue = $request->input($key); + + $cleanedValue = preg_replace('/\D/', '', $inputValue); + $this->updateDetails($permohonan, $key, $cleanedValue, $jenis_jaminan_id); } return response()->json([ @@ -2031,7 +2045,7 @@ class SurveyorController extends Controller ]); } - private function updateDetails($permohonan, $key, $newValue) + private function updateDetails($permohonan, $key, $newValue, $jenis_jaminan_id) { $document = $permohonan->documents->first(); @@ -2039,7 +2053,12 @@ class SurveyorController extends Controller throw new \Exception("Document not found"); } - $detailsUpdate = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->first(); + // dd($jenis_jaminan_id); + $detailsUpdate = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id) + ->where('jenis_legalitas_jaminan_id', $jenis_jaminan_id) + ->first(); + + // dd($detailsUpdate); if (!$detailsUpdate) { throw new \Exception("DetailDokumenJaminan not found"); @@ -2055,7 +2074,7 @@ class SurveyorController extends Controller if (array_key_exists($key, $datas)) { $datas[$key] = $newValue; } else { - throw new \Exception("Key '{$key}' not found in details"); + $datas[$key] = $newValue; } // Simpan kembali ke database diff --git a/resources/views/laporan/index.blade.php b/resources/views/laporan/index.blade.php index de09784..788f865 100644 --- a/resources/views/laporan/index.blade.php +++ b/resources/views/laporan/index.blade.php @@ -194,6 +194,8 @@ let laporanButton = ''; let resumeButton = ''; + + if(data.penilai.resume) { resumeButton = ` @@ -203,7 +205,7 @@ if(data.nilai_liquidasi==null) { laporanButton = ` - + Laporan `; } @@ -211,19 +213,20 @@ if(data.status_bayar=="sudah_bayar" && data.nilai_liquidasi >0) { if(data.penilai.type_penilai=='resume' && !data.penilai.resume){ laporanButton = ` - + Laporan `; } else { laporanButton = ` - + Laporan `; } } - return `${resumeButton} ${laporanButton}`; + + return `
${resumeButton} ${laporanButton}
`; }, } }, diff --git a/resources/views/penilai/components/call-report.blade.php b/resources/views/penilai/components/call-report.blade.php index 8fcd909..0d48d5e 100644 --- a/resources/views/penilai/components/call-report.blade.php +++ b/resources/views/penilai/components/call-report.blade.php @@ -252,7 +252,7 @@ -
+
@@ -293,7 +293,7 @@
-
+ diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php index 62161ae..2aefa66 100644 --- a/resources/views/penilai/components/memo.blade.php +++ b/resources/views/penilai/components/memo.blade.php @@ -293,7 +293,7 @@
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator'])) - @endif diff --git a/resources/views/penilai/index.blade.php b/resources/views/penilai/index.blade.php index 6d6f84a..caa6b0a 100644 --- a/resources/views/penilai/index.blade.php +++ b/resources/views/penilai/index.blade.php @@ -191,7 +191,7 @@ 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') { + 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') { return `
diff --git a/resources/views/penilai/show.blade.php b/resources/views/penilai/show.blade.php index baf2381..0e63e54 100644 --- a/resources/views/penilai/show.blade.php +++ b/resources/views/penilai/show.blade.php @@ -336,9 +336,12 @@ @endforeach @@ -630,6 +633,9 @@ // window.location.reload(); hideLoadingSwal(); toastrSuccessBuild(response.message); + }else{ + // hideLoadingSwal(); + Swal.fire('Perhatian!', response.message, 'warning'); } }, error: function(xhr, status, error) { diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php index 74027bc..a2abdb1 100644 --- a/resources/views/penilaian/otorisator/show.blade.php +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -268,7 +268,7 @@ if (rejectResult.isConfirmed) { handleAjaxRequest( `/otorisator/revisi/${dataId}`, { - message: rejectResult.value + keterangan: rejectResult.value }, 'Data berhasil ditolak.', 'Terjadi kesalahan saat melakukan penolakan.' @@ -370,10 +370,10 @@ ).then((result) => { if (result.isConfirmed) { const requestData = isPaparanSO ? { - message: result.value.message, + keterangan: result.value.message, tanggalPaparan: result.value.tanggalPaparan } : { - message: result.value.message + keterangan: result.value.message }; handleAjaxRequest( diff --git a/resources/views/penilaian/paparan-so.blade.php b/resources/views/penilaian/paparan-so.blade.php index 9a1d586..c36961e 100644 --- a/resources/views/penilaian/paparan-so.blade.php +++ b/resources/views/penilaian/paparan-so.blade.php @@ -240,7 +240,7 @@ title: 'Tanggal Paparan', render: (item, data) => { if(data.tanggal_paparan) { - return ` ${data?.keterangan} | ${window.formatTanggalIndonesia(data.tanggal_paparan)}`; + return ` ${data?.authorization?.keterangan_so} | ${window.formatTanggalIndonesia(data.tanggal_paparan)}`; } return "-"; diff --git a/resources/views/surveyor/components/apartemen-kantor.blade.php b/resources/views/surveyor/components/apartemen-kantor.blade.php index effaaf2..3529e98 100644 --- a/resources/views/surveyor/components/apartemen-kantor.blade.php +++ b/resources/views/surveyor/components/apartemen-kantor.blade.php @@ -12,22 +12,28 @@ @if (isset($permohonan->documents)) @foreach ($permohonan->documents as $item) - @php - $luas_units = 'N/A'; - if ($item->detail) { - foreach ($item->detail as $luas) { - if (isset($luas->name) && $luas->name === 'Sertifikat') { - $details = json_decode($luas->details, true); - $luas_units = isset($details['luas_tanah']) ? $details['luas_tanah'] : 'N/A'; - break; - } - } + @php + $luas_tanah = 0; + $jenis_legalitas_jaminan_id = 0; + if ($item->detail) { + foreach ($item->detail as $luas) { + if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 1) { + $jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id; + $details = json_decode($luas->details, true); + $luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 0; + break; } - @endphp - -

{{ $luas_units }} m2

- @endforeach + } + } + @endphp + + +

{{ $luas_tanah }} m2

+ @endforeach @endif
diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index 000dfb4..e10405a 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -14,9 +14,11 @@ @foreach ($permohonan->documents as $item) @php $luas_bangunan = 0; + $jenis_legalitas_jaminan_id = 0; if ($item->detail) { foreach ($item->detail as $luas) { if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 10) { + $jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id; $details = json_decode($luas->details, true); $luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 0; break; @@ -25,6 +27,10 @@ } @endphp +

{{ $luas_bangunan }} m2

@endforeach diff --git a/resources/views/surveyor/components/print-out/lingkungan.blade.php b/resources/views/surveyor/components/print-out/lingkungan.blade.php index 6e9d200..a42207c 100644 --- a/resources/views/surveyor/components/print-out/lingkungan.blade.php +++ b/resources/views/surveyor/components/print-out/lingkungan.blade.php @@ -172,9 +172,9 @@
diff --git a/resources/views/surveyor/components/tanah.blade.php b/resources/views/surveyor/components/tanah.blade.php index 8d631fd..84409ec 100644 --- a/resources/views/surveyor/components/tanah.blade.php +++ b/resources/views/surveyor/components/tanah.blade.php @@ -14,9 +14,11 @@ @foreach ($permohonan->documents as $item) @php $luas_tanah = 0; + $jenis_legalitas_jaminan_id = 0; if ($item->detail) { foreach ($item->detail as $luas) { if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 1) { + $jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id; $details = json_decode($luas->details, true); $luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 0; break; @@ -24,6 +26,10 @@ } } @endphp +

{{ $luas_tanah }} m2

@endforeach diff --git a/resources/views/surveyor/js/utils.blade.php b/resources/views/surveyor/js/utils.blade.php index ff4a2a7..ebcba62 100644 --- a/resources/views/surveyor/js/utils.blade.php +++ b/resources/views/surveyor/js/utils.blade.php @@ -27,39 +27,39 @@ function formatNumber(input) { - // Ambil posisi kursor saat ini - const cursorPosition = input.selectionStart; + // Ambil posisi kursor saat ini + const cursorPosition = input.selectionStart; - // Ambil nilai input tanpa "m²" dan karakter non-angka - let value = input.value.replace(/[^\d]/g, ''); + // Ambil nilai input tanpa "m²" dan karakter non-angka + let value = input.value.replace(/[^\d]/g, ''); - // Update nilai input dengan format angka dan "m²" - input.value = value ? value + ' m²' : 'm²'; + // Update nilai input dengan format angka dan "m²" + input.value = value ? value + ' m²' : 'm²'; - // Atur posisi kursor di depan "m²" - input.setSelectionRange(cursorPosition, cursorPosition); -} + // Atur posisi kursor di depan "m²" + input.setSelectionRange(cursorPosition, cursorPosition); + } function formatCurrency(value, isDiskon = false) { - // Ensure the value is a valid number - const numericValue = parseFloat(value); - if (isNaN(numericValue)) { - return 0; + // Ensure the value is a valid number + const numericValue = parseFloat(value); + if (isNaN(numericValue)) { + return 0; + } + + // Format the number with commas for thousands separators + const formattedValue = numericValue.toLocaleString('id-ID', { + style: 'currency', + currency: 'IDR', // Indonesian Rupiah + minimumFractionDigits: isDiskon ? 2 : 0, // Include decimals for discounts + maximumFractionDigits: isDiskon ? 2 : 0, + }); + + return formattedValue; } - // Format the number with commas for thousands separators - const formattedValue = numericValue.toLocaleString('id-ID', { - style: 'currency', - currency: 'IDR', // Indonesian Rupiah - minimumFractionDigits: isDiskon ? 2 : 0, // Include decimals for discounts - maximumFractionDigits: isDiskon ? 2 : 0, - }); - - return formattedValue; -} - function previewImage(input, previewId) { if (input.files && input.files[0]) { var reader = new FileReader(); @@ -352,9 +352,24 @@ const inputValue = document.getElementById(inputMap[params]).value; const data = { [params === 'jenis_asset' ? 'jenis_asset' : params.replace('analisa_', 'luas_')]: inputValue, - types: params + types: params, + ...(document.getElementById('jenis_legalistas_jaminan_bangunan_id') && { + jenis_legalistas_jaminan_bangunan_id: document.getElementById( + 'jenis_legalistas_jaminan_bangunan_id').value + }), + ...(document.getElementById('jenis_legalistas_jaminan_tanah_id') && { + jenis_legalistas_jaminan_tanah_id: document.getElementById('jenis_legalistas_jaminan_tanah_id') + .value + }), + ...(document.getElementById('jenis_legalistas_jaminan_unit_id') && { + jenis_legalistas_jaminan_unit_id: document.getElementById('jenis_legalistas_jaminan_unit_id') + .value + }) }; + console.log(data); + + $.ajax({ url: '{{ route('surveyor.update_analisa', ['id' => $permohonan->id]) }}', type: 'POST', @@ -505,9 +520,9 @@ function handleCurrencyInput(input) { - const value = input.value.replace(/[^\d]/g, ''); - input.value = formatCurrency(value); - } + const value = input.value.replace(/[^\d]/g, ''); + input.value = formatCurrency(value); + } function cleanCurrencyValue(value) { return value.replace(/[^\d]/g, '');