Merge pull request 'fix(penilai): perbaikkan luas tanah, bangunan, dan print out sederhana, dan rap' (#129) from feature/senior-officer into staging

Reviewed-on: #129
This commit is contained in:
putrakuningan
2025-03-12 01:48:55 +01:00
11 changed files with 408 additions and 363 deletions

View File

@@ -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', 'request-freeze', 'freeze', 'reject-freeze']); $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')) { if (!Auth::user()->hasRole('administrator')) {
$query->whereHas('penilaian.userPenilai', function ($q) { $query->whereHas('penilaian.userPenilai', function ($q) {

View File

@@ -450,7 +450,7 @@ class PenilaianController extends Controller
public function otorisatorUpdate(Request $request, $id, $context) public function otorisatorUpdate(Request $request, $id, $context)
{ {
if ($context === 'Freze SLA') { if ($context === 'Freze SLA' || $context === 'Unfreeze SLA') {
$authorization = Authorization::with(['user'])->find($id); $authorization = Authorization::with(['user'])->find($id);
if (!$authorization) { if (!$authorization) {
return response()->json([ return response()->json([
@@ -595,6 +595,14 @@ class PenilaianController extends Controller
]); ]);
} }
break; break;
case 'unfreeze sla':
$authorization->update([
'request' => 'unfreeze-sla',
]);
$permohonan->update([
'status' => 'unfreeze-sla',
]);
break;
default: default:
return response()->json([ return response()->json([
@@ -891,7 +899,7 @@ class PenilaianController extends Controller
public function revisiLaporan(Request $request, $id) public function revisiLaporan(Request $request, $id)
{ {
// dd($request->all()); // dd($id);
if($request->dataHeader=='Paparan' || $request->dataHeader=='Freze SLA'){ if($request->dataHeader=='Paparan' || $request->dataHeader=='Freze SLA'){
$authorization = Authorization::find($id); $authorization = Authorization::find($id);
$permohonan = Permohonan::find($authorization->permohonan_id); $permohonan = Permohonan::find($authorization->permohonan_id);
@@ -906,7 +914,7 @@ class PenilaianController extends Controller
} }
$status = 'revisi-paparan'; $status = 'revisi-paparan';
}else if($permohonan->status === 'freeze'){ }else if($permohonan->status === 'request-freeze'){
if ($authorization) { if ($authorization) {
$authorization->delete(); $authorization->delete();
} }

View File

@@ -71,7 +71,7 @@ class SLAController extends Controller
// abort(403, 'Sorry! You are not allowed to view users.'); // 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 // Pencarian berdasarkan parameter search
if ($request->has('search') && !empty($request->get('search'))) { if ($request->has('search') && !empty($request->get('search'))) {

View File

@@ -766,9 +766,15 @@ class SurveyorController extends Controller
$permohonan->update([ $permohonan->update([
'status' => 'survey-completed', '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") { if($permohonan->jenisPenilaian->name=="External") {
LaporanExternal::updateOrCreate( LaporanExternal::updateOrCreate(
['permohonan_id' => $permohonan->id], ['permohonan_id' => $permohonan->id],

View File

@@ -43,7 +43,7 @@
'foto_gistaru' => 'Gistaru', 'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi', 'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang ', 'foto_argis_region' => 'Blad Tata Ruang ',
'foto_tempat' => 'Tempat', 'foto_tempat' => 'Peta Lokasi',
]; ];
// Memindahkan foto_tempat ke depan jika ada // Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('upload_gs', $fotoTypes)) !== false) { if (($key = array_search('upload_gs', $fotoTypes)) !== false) {

View File

@@ -123,7 +123,7 @@
} }
} }
use Modules\Usermanagement\Models\User; use Modules\Usermanagement\Models\User;
$surveyorUser = User::where('id', $surveyor->userPenilaiTeam->id)->first(); $penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
$data = rtrim($data, ', '); $data = rtrim($data, ', ');
@endphp @endphp
@@ -138,12 +138,12 @@
</td> </td>
<td style="text-align: right;"> <td style="text-align: right;">
<p style="margin: 0; padding:0; font-size:10px;"> <p style="margin: 0; padding:0; font-size:10px;">
Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('d-m-Y') }} Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('d-m-Y') }}
</p> </p>
<p style="margin: 0; padding:0; font-size:10px;"> <p style="margin: 0; padding:0; font-size:10px;">
Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('H:i') }} Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('H:i') }}
</p> </p>
<p style="margin: 0; padding:0; font-size:10px;">User: {{ $surveyorUser->name }}</p> <p style="margin: 0; padding:0; font-size:10px;">User: {{ $penilaiUser->name }}</p>
</td> </td>
</tr> </tr>
</table> </table>

View File

@@ -35,32 +35,29 @@
<td style="text-align: center; margin-top: 5px;"> <td style="text-align: center; margin-top: 5px;">
<h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;"> <h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">
MEMO ANTAR KANTOR</h2> MEMO ANTAR KANTOR</h2>
<p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan ?? '' }}</p>
</td> </td>
</tr> </tr>
</table> </table>
<hr/>
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Kepada</td> <td style="width: 25%; padding: 2px;">Kepada</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['kepada'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $memo['kepada'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Dari</td> <td style="width: 25%; padding: 2px;">Dari</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['dari'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $memo['dari'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">No memo</td> <td style="width: 25%; padding: 2px;">Tanggal</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $nomorLaporan ?? '-' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Tanggal</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($memo['tanggal']) }}</td> <td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($memo['tanggal']) }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Perihal</td> <td style="width: 25%; padding: 2px;">Perihal</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['perihal'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $memo['perihal'] ?? '' }}</td>
</tr> </tr>
@@ -86,12 +83,12 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Nama Calon Debitur</td> <td style="width: 25%; padding: 2px;">Nama Calon Debitur</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Jenis Aset</td> <td style="width: 25%; padding: 2px;">Jenis Aset</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td>
</tr> </tr>
@@ -99,7 +96,7 @@
@include('lpj::component.print-out-dokument') @include('lpj::component.print-out-dokument')
<tr> <tr>
<td style="width: 20%; padding: 2px;">Atas Nama</td> <td style="width: 25%; padding: 2px;">Atas Nama</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
@@ -118,7 +115,7 @@
@foreach ($alamatFields as $label => $field) @foreach ($alamatFields as $label => $field)
@if (!empty($alamat[$field])) @if (!empty($alamat[$field]))
<tr> <tr>
<td width="20%">{{ $label }}</td> <td width="25%">{{ $label }}</td>
<td style="width: 1%; vertical-align: top;">:</td> <td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat[$field] }}</td> <td>{{ $alamat[$field] }}</td>
</tr> </tr>
@@ -139,25 +136,25 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Tanggal Kunjungan</td> <td style="width: 25%; padding: 2px;">Tanggal Kunjungan</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;"> <td style="width: 79%; padding: 2px;">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td> {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Surveyor</td> <td style="width: 25%; padding: 2px;">Surveyor</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $surveyor->userPenilaiTeam->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $surveyor->userPenilaiTeam->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Pihak Pemohon</td> <td style="width: 25%; padding: 2px;">Pihak Pemohon</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} - <td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} -
{{ $permohonan->debiture->branch->name ?? '' }}</td> {{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Pihak Cadeb/Debitur</td> <td style="width: 25%; padding: 2px;">Pihak Cadeb/Debitur</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>

View File

@@ -39,25 +39,26 @@
</td> </td>
</tr> </tr>
</table> </table>
<hr />
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Kepada</td> <td style="width: 25%; padding: 2px;">Kepada</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $report['kepada'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $report['kepada'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Dari</td> <td style="width: 25%; padding: 2px;">Dari</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $report['dari'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $report['dari'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Tanggal</td> <td style="width: 25%; padding: 2px;">Tanggal</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($report['tanggal']) }}</td> <td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($report['tanggal']) }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Perihal</td> <td style="width: 25%; padding: 2px;">Perihal</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $report['perihal'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $report['perihal'] ?? '' }}</td>
</tr> </tr>
@@ -75,24 +76,24 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Nama Debitur</td> <td style="width: 25%; padding: 2px;">Nama Debitur</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">KJPP</td> <td style="width: 25%; padding: 2px;">KJPP</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ preg_replace('/^K\\d+ - /', '', $permohonan->penawaran->nama_kjpp_sebelumnya ?? '-') }}</td> <td style="width: 79%; padding: 2px;">{{ preg_replace('/^K\\d+ - /', '', $permohonan->penawaran->nama_kjpp_sebelumnya ?? '-') }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Jenis Aset</td> <td style="width: 25%; padding: 2px;">Jenis Aset</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td>
</tr> </tr>
@if (!empty($report['lokasi']['address'])) @if (!empty($report['lokasi']['address']))
<tr> <tr>
<td style="width: 20%; padding: 2px;">Lokasi Objek Penilaian</td> <td style="width: 25%; padding: 2px;">Lokasi Objek Penilaian</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $report['lokasi']['address'] ?? '' }}, <td style="width: 79%; padding: 2px;">{{ $report['lokasi']['address'] ?? '' }},
{{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }}, {{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }},
@@ -103,22 +104,22 @@
@include('lpj::component.print-out-dokument') @include('lpj::component.print-out-dokument')
<tr> <tr>
<td style="width: 20%; padding: 2px;">Tanggal Penilaian</td> <td style="width: 25%; padding: 2px;">Tanggal Penilaian</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }}</td> <td style="width: 79%; padding: 2px;">{{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Lelang ke</td> <td style="width: 25%; padding: 2px;">Lelang ke</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $report['lelang_kjpp'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $report['lelang_kjpp'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Nilai Pasar Wajar (NPW)</td> <td style="width: 25%; padding: 2px;">Nilai Pasar Wajar (NPW)</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ isset($report['nilai_pasar_kjpp']) ? formatRupiah($report['nilai_pasar_kjpp']) : '-' }}</td> <td style="width: 79%; padding: 2px;">{{ isset($report['nilai_pasar_kjpp']) ? formatRupiah($report['nilai_pasar_kjpp']) : '-' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;"> <td style="width: 25%; padding: 2px;">
Nilai Likuidasi Nilai Likuidasi
{{ isset($report['persentase_likuidasi_kjpp']) ? '(' . $report['persentase_likuidasi_kjpp'] . '%)' : '-' }} {{ isset($report['persentase_likuidasi_kjpp']) ? '(' . $report['persentase_likuidasi_kjpp'] . '%)' : '-' }}
</td> </td>
@@ -142,25 +143,25 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Staf Subdit Appraisal </td> <td style="width: 25%; padding: 2px;">Staf Subdit Appraisal </td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;"> <td style="width: 79%; padding: 2px;">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td> {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Pihak KJPP</td> <td style="width: 25%; padding: 2px;">Pihak KJPP</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $forminspeksi['signature']['kjjp']['name'] ?? $report['pihak_kjjpp'] ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $forminspeksi['signature']['kjjp']['name'] ?? $report['pihak_kjjpp'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Pihak BAGI Cab </td> <td style="width: 25%; padding: 2px;">Pihak BAGI Cab </td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} - <td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} -
{{ $permohonan->debiture->branch->name ?? '' }}</td> {{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 20%; padding: 2px;">Debitur/perwakilan debitur </td> <td style="width: 25%; padding: 2px;">Debitur/perwakilan debitur </td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>

View File

@@ -165,13 +165,15 @@
tujuan_penilaian_id: { tujuan_penilaian_id: {
title: 'Tujuan Penilaian', title: 'Tujuan Penilaian',
render: (item, data) => { 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: { jenis_fasilitas_kredit_id: {
title: 'Fasilitas Kredit', title: 'Fasilitas Kredit',
render: (item, data) => { 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: { jenis_laporan: {
@@ -183,7 +185,7 @@
tanggal_survei: { tanggal_survei: {
title: 'Tanggal Survei', title: 'Tanggal Survei',
render: (item, data) => { 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.waktu_penilaian))}`;
} }
return `${formatDate(new Date(data.penilaian.created_at))}`; return `${formatDate(new Date(data.penilaian.created_at))}`;
@@ -196,19 +198,19 @@
const tipe_laporan = data.penilai?.type; const tipe_laporan = data.penilai?.type;
const nilai_plafond = data.penilaian.nilaiPlafond?.name; const nilai_plafond = data.penilaian.nilaiPlafond?.name;
let waktu_penilaian = new Date(data.penilaian.created_at); 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); 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); waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else { } else {
if(tipe_laporan==="sederhana"){ if (tipe_laporan === "sederhana") {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 2); waktu_penilaian.setDate(waktu_penilaian.getDate() + 2);
} else if(tipe_laporan==="standar"){ } else if (tipe_laporan === "standar") {
if(nilai_plafond==="2 M - 5 M"){ if (nilai_plafond === "2 M - 5 M") {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3); waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else if(nilai_plafond==="< 2M"){ } else if (nilai_plafond === "< 2M") {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3); waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else { } else {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 5); waktu_penilaian.setDate(waktu_penilaian.getDate() + 5);
@@ -232,7 +234,10 @@
actions: { actions: {
title: 'Action', title: 'Action',
render: (item, data) => { 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' || data.status === 'reject-freeze' || data.status === 'freeze' || data.status === 'request-freeze') { 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 ` return `
<div class="flex flex-nowrap justify-center gap-1.5"> <div class="flex flex-nowrap justify-center gap-1.5">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="penilai/${data.id}/show"> <a class="btn btn-sm btn-icon btn-clear btn-info" href="penilai/${data.id}/show">
@@ -245,9 +250,17 @@
<i class="ki-filled ki-arrow-circle-right"></i> <i class="ki-filled ki-arrow-circle-right"></i>
</button> </button>
</div>`; </div>`;
} else { } else if (data.status === 'freeze' || data.status === 'request-freeze') {
return `
<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-warning" onclick="showLoadingSwal('Masih dalam proses pengajuan freeze...')">
<i class="ki-filled ki-watch"></i>
</a>
</div>`;
} else
{
return `<div class="flex flex-nowrap justify-center"> return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-success" onclick="showLoadingSwal('Masih Menunggu proses inspeksi dari surveyor...')"> <a class="btn btn-sm btn-icon btn-clear btn-success" onclick="showLoadingSwal('Masih Menunggu proses ...')">
<i class="ki-filled ki-watch"></i> <i class="ki-filled ki-watch"></i>
</a> </a>
</div>` </div>`
@@ -270,7 +283,7 @@
<script> <script>
function surveyorFreeze(permohonanId, noReg, debitur) { function surveyorFreeze(permohonanId, noReg, debitur) {
Swal.fire({ Swal.fire({
title: 'Apakah Anda yakin?', title: 'Apakah Anda yakin?',
text: "Yakin akan Request Freeze dengan " + noReg + " untuk Debitur " + debitur + text: "Yakin akan Request Freeze dengan " + noReg + " untuk Debitur " + debitur +
" ?", " ?",
@@ -286,7 +299,7 @@ Swal.fire({
cancelButtonColor: '#d33', cancelButtonColor: '#d33',
confirmButtonText: 'Ya, Lanjutkan!', confirmButtonText: 'Ya, Lanjutkan!',
cancelButtonText: 'Batal', cancelButtonText: 'Batal',
}).then((result) => { }).then((result) => {
if (result.isConfirmed) { if (result.isConfirmed) {
const userMessage = result.value || ''; // Ambil pesan dari textarea const userMessage = result.value || ''; // Ambil pesan dari textarea
$.ajaxSetup({ $.ajaxSetup({
@@ -315,9 +328,9 @@ Swal.fire({
} }
}); });
} }
}); });
} }
function showLoadingSwal(message, duration = 5000) { function showLoadingSwal(message, duration = 5000) {
Swal.fire({ Swal.fire({

View File

@@ -1,8 +1,8 @@
@extends('layouts.main') @extends('layouts.main')
@php @php
if($header=="sla"){ if ($header == 'sla') {
$header = "Freze SLA"; $header = 'Freze SLA';
} }
@endphp @endphp
@@ -43,7 +43,8 @@
{{ $surveyor->userPenilaiTeam->name }} {{ $surveyor->userPenilaiTeam->name }}
</p> </p>
<p class="flex w-full text-gray-600 font-medium text-sm">{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }} <p class="flex w-full text-gray-600 font-medium text-sm">
{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
</p> </p>
</div> </div>
<label class="form-label max-w-56"> <label class="form-label max-w-56">
@@ -78,7 +79,7 @@
</div> </div>
<div class="card-body grid gap-5"> <div class="card-body grid gap-5">
{{ $authorization->keterangan ?? ''}} {{ $authorization->keterangan ?? '' }}
<table class="table table-border"> <table class="table table-border">
<tbody> <tbody>
<tr> <tr>
@@ -91,7 +92,7 @@
</tr> </tr>
<tr> <tr>
<td>Tanggal Permohonan</td> <td>Tanggal Permohonan</td>
<td>{{ formatTanggalIndonesia($authorization->created_at,1) }}</td> <td>{{ formatTanggalIndonesia($authorization->created_at, 1) }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -99,12 +100,12 @@
</div> </div>
@php @php
if($header=="SLA"){ if ($header == 'SLA') {
$header = "Freze SLA"; $header = 'Freze SLA';
} }
@endphp @endphp
@if($authorization->approve_so) @if ($authorization->approve_so)
<div class="card border border-agi-100 pb-2.5"> <div class="card border border-agi-100 pb-2.5">
<div class="card-header bg-agi-50" id="basic_settings"> <div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title"> <h3 class="card-title">
@@ -118,20 +119,23 @@
<tr> <tr>
<td>Diperiksa Oleh</td> <td>Diperiksa Oleh</td>
<td>{{ getUser($authorization->approve_so)->name ?? 'N/A' }}</td> <td>{{ getUser($authorization->approve_so)->name ?? 'N/A' }}</td>
<td>{{ $authorization->approve_so_at ? formatTanggalIndonesia($authorization->approve_so_at,1) : 'N/A' }}</td> <td>{{ $authorization->approve_so_at ? formatTanggalIndonesia($authorization->approve_so_at, 1) : 'N/A' }}
</td>
</tr> </tr>
@if($authorization->approve_eo!=null) @if ($authorization->approve_eo != null)
<tr> <tr>
<td>Disetujui Oleh (EO)</td> <td>Disetujui Oleh (EO)</td>
<td>{{ getUser($authorization->approve_eo)->name ?? 'N/A' }}</td> <td>{{ getUser($authorization->approve_eo)->name ?? 'N/A' }}</td>
<td>{{ $authorization->approve_eo_at ? formatTanggalIndonesia($authorization->approve_eo_at,1) : 'N/A' }}</td> <td>{{ $authorization->approve_eo_at ? formatTanggalIndonesia($authorization->approve_eo_at, 1) : 'N/A' }}
</td>
</tr> </tr>
@endif @endif
@if(in_array($authorization->nilai_eafond_id,[1,4]) && $authorization->approve_dd!=null) @if (in_array($authorization->nilai_eafond_id, [1, 4]) && $authorization->approve_dd != null)
<tr> <tr>
<td>Disetujui Oleh (DD)</td> <td>Disetujui Oleh (DD)</td>
<td>{{ getUser($authorization->approve_dd)->name ?? 'N/A' }}</td> <td>{{ getUser($authorization->approve_dd)->name ?? 'N/A' }}</td>
<td>{{ $authorization->approve_dd_at ? formatTanggalIndonesia($authorization->approve_dd_at,1) : 'N/A' }}</td> <td>{{ $authorization->approve_dd_at ? formatTanggalIndonesia($authorization->approve_dd_at, 1) : 'N/A' }}
</td>
</tr> </tr>
@endif @endif
</tbody> </tbody>
@@ -157,41 +161,59 @@
@if ($dataHeader == 'pelaporan') @if ($dataHeader == 'pelaporan')
<a class="btn btn-success" <a class="btn btn-success"
href="{{ route('otorisator.view-laporan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{true}}"> href="{{ route('otorisator.view-laporan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
Lihat Laporan Lihat Laporan
</a> </a>
@endif @endif
@if(Auth::user()->hasAnyRole(['administrator','senior-officer']) && $authorization->approve_so==null) @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer']) && $authorization->approve_so == null)
<button onclick="otorisatorData({{ $authorization->id }}, 'SO')" type="button" class="btn btn-primary"> <button onclick="otorisatorData({{ $authorization->id }}, 'SO')" type="button"
class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisasi {{ $header ?? '' }} Otorisasi {{ $header ?? '' }}
</button> </button>
@endif @endif
@if(Auth::user()->hasAnyRole(['administrator','EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo==null) @if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) &&
<button onclick="otorisatorData({{ $authorization->id }}, 'EO')" type="button" class="btn btn-primary"> $authorization->approve_so &&
$authorization->approve_eo == null)
<button onclick="otorisatorData({{ $authorization->id }}, 'EO')" type="button"
class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisasi {{ $header ?? '' }} Otorisasi {{ $header ?? '' }}
</button> </button>
@endif @endif
@if(Auth::user()->hasAnyRole(['administrator','DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd==null && in_array($permohonan->nilai_plafond_id,[1, 4])) @if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) &&
<button onclick="otorisatorData({{ $authorization->id }}, 'DD')" type="button" class="btn btn-primary"> $authorization->approve_eo &&
$authorization->approve_dd == null &&
in_array($permohonan->nilai_plafond_id, [1, 4]))
<button onclick="otorisatorData({{ $authorization->id }}, 'DD')" type="button"
class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisasi {{ $header ?? '' }} Otorisasi {{ $header ?? '' }}
</button> </button>
@endif @endif
@if (
(Auth::user()->hasAnyRole(['administrator', 'senior-officer']) &&
$authorization->approve_so != null &&
$authorization->approve_eo != null) ||
$authorization->approve_dd != null)
<button onclick="otorisatorData({{ $authorization->id }}, 'UNFREZE')" type="button"
class="btn btn-primary">
<i class="ki-filled ki-double-check"></i>
Otorisasi Un{{ $header ?? '' }}
</button>
@endif
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts') @push('scripts')
<script>
const handleRejection = (dataId, dataHeader = '') => {
<script>
const handleRejection = (dataId,dataHeader='') => {
Swal.fire({ Swal.fire({
title: 'Masukkan alasan penolakan:', title: 'Masukkan alasan penolakan:',
input: 'textarea', input: 'textarea',
@@ -255,7 +277,6 @@
data: data, data: data,
success: () => { success: () => {
Swal.fire('Berhasil!', successMessage, 'success').then(() => { Swal.fire('Berhasil!', successMessage, 'success').then(() => {
const dataHeader = @json($header);
const redirectUrl = `/otorisator/sla`; const redirectUrl = `/otorisator/sla`;
window.location.href = redirectUrl; window.location.href = redirectUrl;
}); });
@@ -268,42 +289,42 @@
}; };
function otorisatorData(dataId, role = '') { function otorisatorData(dataId, role = '') {
const dataHeader = @json($header); let dataHeader = @json($header);
const isPaparanSO = dataHeader === 'SLA' && role === 'SO';
// Update dataHeader if condition matches
if (dataHeader === 'Freze SLA' && (role === 'UNFREZE' || role === 'FREZE')) {
dataHeader = 'Unfreeze SLA';
}
const isPaparanSO = dataHeader === 'Unfreeze SLA' && role === 'UNFREZE';
const hideDenyButton = (dataHeader === 'Unfreeze SLA' && (role === 'UNFREZE' || role === 'FREZE'));
const swalHtml = isPaparanSO ? ` const swalHtml = isPaparanSO ? `
<div class="text-left space-y-4"> <div class="text-left space-y-4">
<p class="text-gray-700 text-center">Untuk melakukan otorisasi ${dataHeader}!</p> <p class="text-gray-700 text-center">Untuk melakukan otorisasi ${dataHeader}!</p>
<div> <div>
<label for="swal-keterangan" class="block text-sm font-medium text-gray-700 mb-1">Keterangan</label> <textarea id="swal-keterangan" class="textarea" placeholder="Masukkan Keterangan"></textarea>
<input id="swal-keterangan" class="input" placeholder="Masukkan Keterangan">
</div> </div>
<div> </div>` : '';
<label for="swal-tanggal-paparan" class="block text-sm font-medium text-gray-700 mb-1">Tanggal Paparan</label>
<input id="swal-tanggal-paparan" class="input" type="date" placeholder="Tanggal paparan">
</div>
</div>` : '';
showSwalConfirmation( showSwalConfirmation(
'Apakah Anda yakin?', 'Apakah Anda yakin?',
`Untuk melakukan otorisasi ${dataHeader}!`, `Untuk melakukan otorisasi ${dataHeader}!`,
swalHtml, swalHtml,
'Ya, Lanjutkan!', 'Ya, Lanjutkan!',
'Tolak', hideDenyButton ? null : 'Tolak',
'Batal', 'Batal',
() => { () => {
if (isPaparanSO) { if (isPaparanSO) {
const message = document.getElementById('swal-keterangan')?.value; const message = document.getElementById('swal-keterangan')?.value;
const tanggalPaparan = document.getElementById('swal-tanggal-paparan').value;
if (!message || !tanggalPaparan) { if (!message) {
Swal.showValidationMessage('Keterangan dan Tanggal Paparan harus diisi!'); Swal.showValidationMessage('Keterangan harus diisi!');
return false; return false;
} }
return { return {
message, message,
tanggalPaparan
}; };
} else { } else {
return { return {
@@ -316,7 +337,6 @@
if (result.isConfirmed) { if (result.isConfirmed) {
const requestData = isPaparanSO ? { const requestData = isPaparanSO ? {
keterangan: result.value.message, keterangan: result.value.message,
tanggalPaparan: result.value.tanggalPaparan
} : { } : {
keterangan: result.value.message keterangan: result.value.message
}; };
@@ -327,10 +347,10 @@
'Data berhasil diotorisasi.', 'Data berhasil diotorisasi.',
'Terjadi kesalahan saat melakukan otorisasi.' 'Terjadi kesalahan saat melakukan otorisasi.'
); );
} else if (result.isDenied) { } else if (!hideDenyButton && result.isDenied) {
handleRejection(dataId,dataHeader); handleRejection(dataId, dataHeader);
} }
}); });
} }
</script> </script>
@endpush @endpush

View File

@@ -203,10 +203,10 @@
<td style="text-align: right;"> <td style="text-align: right;">
<div style=""> <div style="">
<p style="margin: 0; padding:0; font-size:10px;"> <p style="margin: 0; padding:0; font-size:10px;">
Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('d-m-Y') }} Tanggal: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('d-m-Y') }}
</p> </p>
<p style="margin: 0; padding:0; font-size:10px;"> <p style="margin: 0; padding:0; font-size:10px;">
Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->waktu_penilaian)->format('H:i') }} Waktu: {{ \Carbon\Carbon::parse($permohonan->penilaian->updated_at)->format('H:i') }}
</p> </p>
<p style="margin: 0; padding:0; font-size:10px;">User: {{ $surveyorUser->name }}</p> <p style="margin: 0; padding:0; font-size:10px;">User: {{ $surveyorUser->name }}</p>
</div> </div>