diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php index a2abdb1..28d55d5 100644 --- a/resources/views/penilaian/otorisator/show.blade.php +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -267,7 +267,7 @@ }).then((rejectResult) => { if (rejectResult.isConfirmed) { handleAjaxRequest( - `/otorisator/revisi/${dataId}`, { + `/otorisator/revisi-laporan/${dataId}`, { keterangan: rejectResult.value }, 'Data berhasil ditolak.', diff --git a/resources/views/permohonan/index.blade.php b/resources/views/permohonan/index.blade.php index beea53b..23dd4ee 100644 --- a/resources/views/permohonan/index.blade.php +++ b/resources/views/permohonan/index.blade.php @@ -206,14 +206,16 @@ if (data.status === 'proses-survey' || data.status == 'rejected-reschedule') { actionHtml += ` - + `; } @@ -319,11 +321,25 @@ } - function surveyorRescheduleJadwalSurvey(permohonanId, idPenilaian, noReg, debitur, waktuPenilaian, rejectedNote) { - rejectedNote = JSON.parse(rejectedNote); + function surveyorRescheduleJadwalSurvey(element) { + const permohonanId = element.getAttribute('data-permohonan-id'); + const idPenilaian = element.getAttribute('data-id-penilaian'); + const noReg = element.getAttribute('data-no-reg'); + const debitur = element.getAttribute('data-debitur'); + const waktuPenilaian = element.getAttribute('data-waktu-penilaian'); + let rejectedNote = element.getAttribute('data-rejected-note'); + try { + rejectedNote = rejectedNote ? JSON.parse(rejectedNote) : null; + } catch (e) { + console.warn('Failed to parse rejectedNote:', e); + rejectedNote = null; + } + const note = rejectedNote && typeof rejectedNote === 'string' && rejectedNote.trim() ? String(rejectedNote) + .trim() : ''; + Swal.fire({ - title: 'Reschedule Jadwal Kunjungan', - html: ` + title: 'Reschedule Jadwal Kunjungan', + html: `
@@ -347,50 +363,50 @@ class="block w-full px-4 py-2 border border-gray-300 rounded-lg shadow-sm focus:ring-blue-500 focus:border-blue-500 sm:text-sm" placeholder="Masukkan alasan reschedule...">
Catatan Reject: ${note}
+ ` : ''} - ${rejectedNote && rejectedNote.trim() ? ` -Catatan Reject: ${rejectedNote}
- ` : ''} `, - icon: 'warning', - showCancelButton: true, - confirmButtonColor: '#3085d6', - cancelButtonColor: '#d33', - confirmButtonText: 'Reschedule', - preConfirm: () => { - const rescheduleDate = document.getElementById('reschedule_date').value; - const rescheduleNote = document.getElementById('reschedule_note').value; + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: 'Reschedule', + preConfirm: () => { + const rescheduleDate = document.getElementById('reschedule_date').value; + const rescheduleNote = document.getElementById('reschedule_note').value; - if (!rescheduleDate || !rescheduleNote) { - Swal.showValidationMessage('Semua inputan wajib diisi!'); - return false; - } + if (!rescheduleDate || !rescheduleNote) { + Swal.showValidationMessage('Semua inputan wajib diisi!'); + return false; + } - return { + return { + rescheduleDate, + rescheduleNote + }; + } + }).then((result) => { + if (result.isConfirmed) { + const { rescheduleDate, rescheduleNote + } = result.value; + + // Data to send + const data = { + _token: "{{ csrf_token() }}", + penilaian_id: idPenilaian, + nomor_registrasi: noReg, + permohonan_id: permohonanId, + reschedule_date: rescheduleDate, + reschedule_note: rescheduleNote, + keterangan: rescheduleNote }; - } - }).then((result) => { - if (result.isConfirmed) { - const { - rescheduleDate, - rescheduleNote - } = result.value; - // Data to send - const data = { - _token: "{{ csrf_token() }}", - penilaian_id: idPenilaian, - nomor_registrasi: noReg, - permohonan_id: permohonanId, - reschedule_date: rescheduleDate, - reschedule_note: rescheduleNote, - keterangan: rejectedNote - }; - - $.ajax({ + $.ajax({ url: `{{ URL::to('/permohonan/store-reschedule-survey') }}/${idPenilaian}`, type: "PUT", cache: false, @@ -399,19 +415,13 @@ success: function(response) { if (response.status === 'success') { Swal.fire('Sukses Reschedule!', response.message, 'success').then( - () => { - location.reload(); - }); + () => { + location.reload(); + }); } else { Swal.fire('Error!', response.message, 'error'); } - - return { - rescheduleDate, - rescheduleNote - }; - } - }).then((result) => { + }).then((result) => { if (result.isConfirmed) { const { rescheduleDate, @@ -425,7 +435,8 @@ nomor_registrasi: noReg, permohonan_id: permohonanId, reschedule_date: rescheduleDate, - reschedule_note: rescheduleNote + reschedule_note: rescheduleNote, + keterangan: rejectedNote }; $.ajax({ @@ -444,18 +455,66 @@ } else { Swal.fire('Error!', response.message, 'error'); } - }, - error: function(response) { - const errorMessage = response.responseJSON?.message || - 'Terjadi kesalahan saat memproses data.'; - Swal.fire('Error!', errorMessage, 'error'); + + return { + rescheduleDate, + rescheduleNote + }; + } + }).then((result) => { + if (result.isConfirmed) { + const { + rescheduleDate, + rescheduleNote + } = result.value; + + // Data to send + const data = { + _token: "{{ csrf_token() }}", + penilaian_id: idPenilaian, + nomor_registrasi: noReg, + permohonan_id: permohonanId, + reschedule_date: rescheduleDate, + reschedule_note: rescheduleNote + }; + + $.ajax({ + url: `{{ URL::to('/permohonan/store-reschedule-survey') }}/${idPenilaian}`, + type: "PUT", + cache: false, + data: data, + dataType: "json", + success: function(response) { + if (response.status === 'success') { + Swal.fire('Sukses Reschedule!', + response.message, + 'success').then( + () => { + location.reload(); + }); + } else { + Swal.fire('Error!', response + .message, 'error'); + } + }, + error: function(response) { + const errorMessage = response + .responseJSON?.message || + 'Terjadi kesalahan saat memproses data.'; + Swal.fire('Error!', errorMessage, + 'error'); + } + }); } }); } + + + // window.formatTanggalIndonesia(date) }); - } - - - // window.formatTanggalIndonesia(date) + }); + } + }); + } @endpush diff --git a/routes/web.php b/routes/web.php index 1076edc..ad15ecf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -527,7 +527,7 @@ Route::middleware(['auth'])->group(function () { ); Route::post('otorisator/{id}/{context}', [PenilaianController::class, 'otorisatorUpdate'])->name('otorisator.update'); - Route::post('revisi/{id}', [PenilaianController::class, 'revisiLaporan'])->name('otorisator.revisi'); + Route::post('revisi-laporan/{id}', [PenilaianController::class, 'revisiLaporan'])->name('otorisator.revisi'); Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults( 'type',