fix(penilai/surveyor): perbaikkan call report, button camera, dan inspeksi berdasarkan dokument

This commit is contained in:
majid
2025-02-28 13:35:42 +07:00
parent f253d0c14c
commit 2793e397b0
8 changed files with 206 additions and 78 deletions

View File

@@ -280,7 +280,7 @@ class PenilaiController extends Controller
// Menyimpan atau memperbarui data Penilai
$penilai = Penilai::updateOrCreate(
[
'permohonan_id' => $request->permohonanId,
'permohonan_id' => $request->permohonan_id,
'dokument_id' => $request->documentId,
'inspeksi_id' => $request->inspeksiId,
]
@@ -436,11 +436,8 @@ class PenilaiController extends Controller
if ($call && isset($call->call_report)) {
$callReport = json_decode($call->call_report, true);
}
$forminspeksi = null;
if ($forminspeksi) {
$forminspeksi = json_decode($inspeksi->data_form, true);
}
$forminspeksi = json_decode($inspeksi->data_form, true);
// Default: gunakan data dari debitur
$debitur = Debiture::find($permohonan->debiture_id);
@@ -461,6 +458,7 @@ class PenilaiController extends Controller
$villages = Village::where('district_code', $districtCode)->get();
if ($forminspeksi) {
if (isset($forminspeksi['alamat']['sesuai']['province_code'])) {
$cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get();
}
@@ -474,7 +472,6 @@ class PenilaiController extends Controller
}
}
return view('lpj::penilai.components.call-report', compact('permohonan', 'basicData', 'nomorLaporan', 'forminspeksi', 'cities', 'districts', 'villages', 'cekAlamat', 'callReport'));
}
@@ -752,7 +749,8 @@ class PenilaiController extends Controller
!empty($item->memo) ||
!empty($item->resume) ||
!empty($item->lpj) ||
!empty($item->rap)
!empty($item->rap) ||
!empty($item->call_report)
) && !empty($item->kertas_kerja);
});
@@ -1053,10 +1051,14 @@ class PenilaiController extends Controller
'permohonan_id' => 'required|exists:permohonan,id',
'dokument_id' => 'required',
'inspeksi_id' => 'required',
'data' => 'required'
'data' => 'required',
'fakta_positif' => 'nullable|array',
'fakta_negatif' => 'nullable|array',
'type' => 'required',
'action' => 'required',
'keterangan' => 'nullable|array'
]);
$data = $request->input('data');
Penilai::updateOrCreate(
[
@@ -1068,11 +1070,51 @@ class PenilaiController extends Controller
'call_report' => json_encode($validated['data']),
]
);
$inspeksi = Inspeksi::where('permohonan_id', $validated['permohonan_id'])
->where('dokument_id', $validated['dokument_id'])
->first();
if ($inspeksi) {
// Get existing data_form
$existingData = json_decode($inspeksi->data_form, true) ?: [];
// Structure the fakta data correctly
$existingFaktaData = $existingData['fakta'] ?? [];
// Gabungkan data baru dengan data yang sudah ada
$updatedFaktaData = array_merge($existingFaktaData, [
'fakta_positif' => $validated['fakta_positif'] ?? $existingFaktaData['fakta_positif'] ?? null,
'fakta_negatif' => $validated['fakta_negatif'] ?? $existingFaktaData['fakta_negatif'] ?? null,
'keterangan' => $validated['keterangan'] ?? $existingFaktaData['keterangan'] ?? null,
]);
$existingData['fakta'] = $updatedFaktaData;
$inspeksi->update([
'data_form' => json_encode($existingData),
]);
} else {
// If inspeksi
$newData = [
'fakta' => [
'fakta_positif' => $validated['fakta_positif'] ?? null,
'fakta_negatif' => $validated['fakta_negatif'] ?? null,
'keterangan' => $validated['keterangan'] ?? null,
],
];
Inspeksi::create([
'permohonan_id' => $validated['permohonan_id'],
'dokument_id' => $validated['dokument_id'],
'data_form' => json_encode($newData),
'name' => $validated['type']
]);
}
// DB::commit();
return response()->json([
'success' => true,
'message' => 'Berhasil menyimpan data',
'data' => $data
], 200);
} catch (\Throwable $e) {
// DB::rollBack();