Merge pull request 'feature/senior-officer' (#132) from feature/senior-officer into staging

Reviewed-on: #132
This commit is contained in:
putrakuningan
2025-03-17 08:59:47 +01:00
12 changed files with 97 additions and 49 deletions

View File

@@ -968,8 +968,8 @@ class PenilaiController extends Controller
] ]
); );
$existingPhotos = isset($memo->memo) ? json_decode($memo->memo)->foto : []; // $existingPhotos = isset($memo->memo) ? json_decode($memo->memo) : [];
dd($existingPhotos); // dd($existingPhotos);
// Simpan foto-foto // Simpan foto-foto
if ($request->hasFile('foto_0')) { if ($request->hasFile('foto_0')) {
$photoUrls = []; $photoUrls = [];
@@ -982,15 +982,15 @@ class PenilaiController extends Controller
$index++; $index++;
} }
$memoData['foto'] = array_merge($existingPhotos, $photoUrls); // $memoData['foto'] = array_merge($existingPhotos, $photoUrls);
}else{ // }else{
$memoData['foto'] = $existingPhotos; // $memoData['foto'] = $existingPhotos;
}
// Tambahkan URL foto ke data memo // Tambahkan URL foto ke data memo
$memoData['foto'] = $photoUrls; $memoData['foto'] = $photoUrls;
$memo->memo = json_encode($memoData); $memo->memo = json_encode($memoData);
$memo->save(); $memo->save();
}
return response()->json([ return response()->json([
'success' => true, 'success' => true,

View File

@@ -730,6 +730,7 @@ class SurveyorController extends Controller
'lingkungan' => 'validateLingkungan', 'lingkungan' => 'validateLingkungan',
'fakta' => 'validateFactData', 'fakta' => 'validateFactData',
'rap' => 'validateRapData', 'rap' => 'validateRapData',
'apartemen-kantor' => 'validateUnitData',
]; ];
// Ambil data inspeksi // Ambil data inspeksi

View File

@@ -10,6 +10,7 @@ class PermohonanHistoryService
public function createHistory(Permohonan $permohonan, string $status, ?string $keterangan, array $beforeRequest, array $afterRequest, ?string $filePath = null) public function createHistory(Permohonan $permohonan, string $status, ?string $keterangan, array $beforeRequest, array $afterRequest, ?string $filePath = null)
{ {
try { try {
$history = PermohonanHistory::create([ $history = PermohonanHistory::create([
'permohonan_id' => $permohonan->id, 'permohonan_id' => $permohonan->id,
'status' => $status, 'status' => $status,

View File

@@ -388,5 +388,47 @@ class SurveyorValidateService
} }
public function validateUnitData(array $data): array
{
$invalidFields = [];
// Validasi action
if (empty($data['action'])) {
$invalidFields[] = 'Action harus diisi';
}
// Validasi luas_unit
if (empty($data['luas_unit'])) {
$invalidFields[] = 'Luas unit harus diisi';
}
// Validasi kondisi_unit
if (empty($data['kondisi_unit'])) {
$invalidFields[] = 'Kondisi unit harus diisi';
}
// Validasi posisi_unit
if (empty($data['posisi_unit'])) {
$invalidFields[] = 'Posisi unit harus diisi';
}
// Validasi lantai
if (empty($data['lantai'])) {
$invalidFields[] = 'Lantai harus diisi';
}
// Validasi view
if (empty($data['view'])) {
$invalidFields[] = 'View harus diisi';
}
// Validasi bentuk_unit
if (empty($data['bentuk_unit'])) {
$invalidFields[] = 'Bentuk unit harus diisi';
}
return $invalidFields;
}
} }

View File

@@ -60,7 +60,7 @@
$labelNilai = [ $labelNilai = [
'bangunan' => 'Luas Bangunan', 'bangunan' => 'Luas Bangunan',
'tanah' => 'Luas Tanah', 'tanah' => 'Luas Tanah',
'apartement-kantor' => 'Luas Apartemen/Kantor', 'apartemen-kantor' => 'Luas Unit',
'alat-berat' => 'Luas Alat Berat', 'alat-berat' => 'Luas Alat Berat',
'mesin' => 'Luas Mesin', 'mesin' => 'Luas Mesin',
'kendaraan' => 'Luas Kendaraan', 'kendaraan' => 'Luas Kendaraan',
@@ -85,6 +85,8 @@
$luas = $luas =
$forminspeksi['tanah']['luas_tanah']['tidak sesuai'] ?? $forminspeksi['tanah']['luas_tanah']['tidak sesuai'] ??
($forminspeksi['tanah']['luas_tanah']['sesuai'] ?? null); ($forminspeksi['tanah']['luas_tanah']['sesuai'] ?? null);
} else if ($item === 'apartemen-kantor') {
$luas = $forminspeksi['luas_unit']['sesuai'] ?? ($forminspeksi['luas_unit']['tidak sesuai'] ?? null);
} else { } else {
$luas = null; $luas = null;
} }
@@ -234,7 +236,7 @@
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
const datas = @json($forminspeksi); const datas = @json($lpjData);
console.log(datas); console.log(datas);
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {

View File

@@ -47,14 +47,17 @@
]; ];
// 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) {
unset($fotoTypes[$key]); unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'upload_gs'); array_unshift($fotoTypes, 'upload_gs');
} }
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) { // Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
return isset($forminspeksi[$type]) && $validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
file_exists(storage_path('app/public/' . $forminspeksi[$type])); // Check if value is a string (not an array) and file exists
}); return isset($forminspeksi[$type]) &&
is_string($forminspeksi[$type]) &&
file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp @endphp
<table width="100%" border="0"> <table width="100%" border="0">

View File

@@ -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->updated_at)->format('d-m-Y') }} Tanggal: {{ \Carbon\Carbon::parse(date('Y-m-d'))->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->updated_at)->format('H:i') }} Waktu: {{ \Carbon\Carbon::parse(date('H:i:s'))->format('H:i:s') }}
</p> </p>
<p style="margin: 0; padding:0; font-size:10px;">User: {{ $penilaiUser->name }}</p> <p style="margin: 0; padding:0; font-size:10px;">User: {{ Auth::user()->name }}</p>
</td> </td>
</tr> </tr>
</table> </table>

View File

@@ -184,9 +184,9 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label for="tanggal_survey" class="form-label max-w-56">Tanggal Survey</label> <label for="tanggal_survey" class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input type="date" id="tanggal_survey" name="tanggal_survey" <input type="date-time" id="tanggal_survey" name="tanggal_survey"
class="input w-full" placeholder="Masukkan Tanggal Survey" class="input w-full" placeholder="Masukkan Tanggal Survey"
value="{{ $memo->lokasi->tanggal_survey ?? old('tanggal_survey') }}"> value="{{ $permohonan->penilaian->updated_at ?? old('tanggal_survey') }}" @readonly(true)>
</div> </div>
</div> </div>

View File

@@ -66,9 +66,9 @@
<table> <table>
<tr> <tr>
<td> <td>
Menindak lanjuti permintann penilaian jaminan dari {{ $permohonan->user->name }} AO Cabang Menindak lanjuti permintan penilaian jaminan dari {{ $permohonan->user->name }} AO Cabang
{{ $permohonan->debiture->branch->name ?? '' }} {{ $permohonan->debiture->branch->name ?? '' }}
tanggal {{ formatTanggalIndonesia($memo['tanggal']) ?? '' }}, dapat di sampaikan sebagai berikut: tanggal {{ formatTanggalIndonesia($permohonan->created_at) ?? '' }}, dapat di sampaikan sebagai berikut:
</td> </td>
</tr> </tr>
</table> </table>
@@ -139,7 +139,7 @@
<td style="width: 25%; 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->updated_at) }}</td>
</tr> </tr>
<tr> <tr>
<td style="width: 25%; padding: 2px;">Surveyor</td> <td style="width: 25%; padding: 2px;">Surveyor</td>

View File

@@ -205,17 +205,16 @@
<tr> <tr>
@php @php
$cekHub = $cekHub =
isset($forminspeksi['asset']['hub_cadeb']) && isset($forminspeksi['asset']['hub_cadeb']) && $forminspeksi['asset']['hub_cadeb'] === 'sesuai'
$forminspeksi['asset']['hub_cadeb'] === 'sesuai' ? 'sesuai'
? 'sesuai' : 'tidak sesuai';
: 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'][$cekHub]) $hubCadeb = $cekHub === 'sesuai'
? $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ? ($forminspeksi['asset']['hub_cadeb']['sesuai'] ?? null)
: $forminspeksi['asset']['hub_cadeb']['sesuai']; : ($forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ?? null);
@endphp @endphp
<td style=" padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitu</td> <td style=" padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td>
<td style=" padding: 2px; vertical-align: top;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td>
</tr> </tr>
@@ -483,15 +482,15 @@
<table> <table>
<tr> <tr>
@php @php
$cekLuas = isset($forminspeksi['luas_unit']['tidak sesuai']) $cekLuas = isset($forminspeksi['luas_unit']['tidak sesuai'])
? 'tidak sesuai' ? 'tidak sesuai'
: 'sesuai'; : 'sesuai';
$luas = $forminspeksi['luas_unit'][$cekLuas] ?? null; $luas = $forminspeksi['luas_unit'][$cekLuas] ?? null;
@endphp @endphp
<td style="padding: 2px; vertical-align: top;">Luas Unit</td> <td style="padding: 2px; vertical-align: top;">Luas Unit</td>
<td style="padding: 2px; vertical-align: top;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $luas ?? '' }} m<sup>2</sup> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px; vertical-align: top;">Bentuk Unit</td> <td style="padding: 2px; vertical-align: top;">Bentuk Unit</td>
@@ -724,7 +723,7 @@
$labelNilai = [ $labelNilai = [
'bangunan' => 'Luas Bangunan', 'bangunan' => 'Luas Bangunan',
'tanah' => 'Luas Tanah', 'tanah' => 'Luas Tanah',
'apartement-kantor' => 'Luas Apartemen/Kantor', 'apartemen-kantor' => 'Luas Unit',
'alat-berat' => 'Luas Alat Berat', 'alat-berat' => 'Luas Alat Berat',
'mesin' => 'Luas Mesin', 'mesin' => 'Luas Mesin',
'kendaraan' => 'Luas Kendaraan', 'kendaraan' => 'Luas Kendaraan',

View File

@@ -185,9 +185,10 @@
? 'sesuai' ? 'sesuai'
: 'tidak sesuai'; : 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'][$cekHub])
? $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] $hubCadeb = $cekHub === 'sesuai'
: $forminspeksi['asset']['hub_cadeb']['sesuai']; ? ($forminspeksi['asset']['hub_cadeb']['sesuai'] ?? null)
: ($forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ?? null);
@endphp @endphp
<td style="width:25%; padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td> <td style="width:25%; padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td> <td style="width:1%; padding: 2px; vertical-align: top;">:</td>
@@ -203,8 +204,8 @@
: 'tidak sesuai'; : 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb_penghuni'][$cekHub]) $hubCadeb = isset($forminspeksi['asset']['hub_cadeb_penghuni'][$cekHub])
? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'] ? ($forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'] ?? null)
: $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']; : ($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'] ?? null);
@endphp @endphp
<td style=" padding: 2px; vertical-align: top;">Hubungan Penghuni Jaminan dengan Debitur</td> <td style=" padding: 2px; vertical-align: top;">Hubungan Penghuni Jaminan dengan Debitur</td>
<td style=" padding: 2px; vertical-align: top;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
@@ -262,7 +263,7 @@
$labelNilai = [ $labelNilai = [
'bangunan' => 'Luas Bangunan', 'bangunan' => 'Luas Bangunan',
'tanah' => 'Luas Tanah', 'tanah' => 'Luas Tanah',
'apartement-kantor' => 'Luas Apartemen/Kantor', 'apartemen-kantor' => 'Luas Unit',
'alat-berat' => 'Luas Alat Berat', 'alat-berat' => 'Luas Alat Berat',
'mesin' => 'Luas Mesin', 'mesin' => 'Luas Mesin',
'kendaraan' => 'Luas Kendaraan', 'kendaraan' => 'Luas Kendaraan',

View File

@@ -613,8 +613,7 @@
</button> </button>
`; `;
} else { } else {
if (data.penilaian.waktu_penilaian == null || if (!data.penilaian.waktu_penilaian) {
(data.penilaian.waktu_penilaian && data.penilaian.authorized_status == null)) {
actionHtml += ` actionHtml += `
<a class="btn btn-sm btn-icon btn-clear btn-primary" <a class="btn btn-sm btn-icon btn-clear btn-primary"
onclick="prosesJadwalSurvey(${data.penilaian.id})" onclick="prosesJadwalSurvey(${data.penilaian.id})"