update form inspeksi dan so bisa ambil alih
This commit is contained in:
@@ -48,11 +48,14 @@ use Modules\Lpj\Models\MerupakanDaerah;
|
||||
use Modules\Lpj\Models\ObjekJaminan;
|
||||
use Modules\Lpj\Models\ModelAlatBerat;
|
||||
use Modules\Lpj\Models\JenisPesawat;
|
||||
use Modules\Lpj\Models\DokumenJaminan;
|
||||
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||
use Modules\Lpj\Models\JenisKapal;
|
||||
use Modules\Lpj\Models\JenisKendaraan;
|
||||
use Modules\Lpj\Models\RuteJaminan;
|
||||
use Modules\Lpj\Models\JenisJaminan;
|
||||
use Modules\Lpj\Models\HubunganPemilikJaminan;
|
||||
use Modules\Lpj\Models\HubunganPenghuniJaminan;
|
||||
use Modules\Lpj\Models\AnalisaUnit;
|
||||
use Modules\Lpj\Models\GolonganMasySekitar;
|
||||
use Modules\Lpj\Models\TingkatKeramaian;
|
||||
@@ -176,6 +179,8 @@ class SurveyorController extends Controller
|
||||
{
|
||||
$data = $request->validated();
|
||||
|
||||
|
||||
|
||||
if (!$data) {
|
||||
return response()->json(['success' => false, 'message' => 'Invalid data'], 400);
|
||||
}
|
||||
@@ -188,20 +193,20 @@ class SurveyorController extends Controller
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
|
||||
|
||||
if ($inspeksi) {
|
||||
$inspeksi->update(['data_form' => json_encode($rules)]);
|
||||
} else {
|
||||
if (!$inspeksi) {
|
||||
Inspeksi::create([
|
||||
'permohonan_id' => $request->permohonan_id,
|
||||
'permohonan_id' => $request->input('permohonan_id'),
|
||||
'data_form' => json_encode($rules),
|
||||
'name' => $request->type,
|
||||
'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
|
||||
'name' => $request->input('type'),
|
||||
'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
|
||||
]);
|
||||
} else {
|
||||
$inspeksi->update(['data_form' => json_encode($rules)]);
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
|
||||
return response()->json(['success' => true, 'message' => 'Data saved successfully', 'data' => $rules], 200);
|
||||
return response()->json(['success' => true, 'message' => 'Data saved successfully', 'data' => $data], 200);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
return response()->json(['success' => false, 'message' => 'Failed to save data: ' . $e->getMessage()], 500);
|
||||
@@ -529,6 +534,43 @@ class SurveyorController extends Controller
|
||||
->with('error', 'Gagal membuat jadwal: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function storeDataPembanding(Request $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
if (!$data) {
|
||||
return response()->json(['success' => false, 'message' => 'Invalid data'], 400);
|
||||
}
|
||||
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
// $action = $request->input('type');
|
||||
// $rules = $this->getActionSpecificRules($data, $action, $request);
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
|
||||
|
||||
if (!$inspeksi) {
|
||||
Inspeksi::create([
|
||||
'permohonan_id' => $request->input('permohonan_id'),
|
||||
'data_pembanding' => json_encode($data),
|
||||
'name' => $request->input('type'),
|
||||
'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
|
||||
]);
|
||||
} else {
|
||||
$inspeksi->update(['data_pembanding' => json_encode($data)]);
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
|
||||
return response()->json(['success' => true, 'message' => 'Data saved successfully', 'data' => json_encode($data)], 200);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
return response()->json(['success' => false, 'message' => 'Failed to save data: ' . $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form inspeksi.
|
||||
*/
|
||||
@@ -574,6 +616,7 @@ class SurveyorController extends Controller
|
||||
$jenisPesawat = JenisPesawat::all();
|
||||
$modelAlatBerat = ModelAlatBerat::all();
|
||||
$hubCadeb = HubunganPemilikJaminan::all();
|
||||
$hubPenghuni = HubunganPenghuniJaminan::all();
|
||||
$jenisJaminan = JenisJaminan::all();
|
||||
$fasilitasObjek = FasilitasObjek::all();
|
||||
$merupakanDaerah = MerupakanDaerah::all();
|
||||
@@ -622,7 +665,8 @@ class SurveyorController extends Controller
|
||||
'merupakanDaerah',
|
||||
'terletakDiArea',
|
||||
'posisiUnit',
|
||||
'bentukUnit'
|
||||
'bentukUnit',
|
||||
'hubPenghuni'
|
||||
));
|
||||
}
|
||||
|
||||
@@ -697,6 +741,7 @@ class SurveyorController extends Controller
|
||||
$branches = Branch::all();
|
||||
$provinces = Province::all();
|
||||
|
||||
$data = $this->getCommonData();
|
||||
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
$forminspeksi = null;
|
||||
@@ -706,7 +751,7 @@ class SurveyorController extends Controller
|
||||
}
|
||||
|
||||
// return response()->json($forminspeksi);
|
||||
return view('lpj::surveyor.components.data-pembanding', compact('permohonan', 'surveyor', 'branches', 'provinces', 'forminspeksi'));
|
||||
return view('lpj::surveyor.components.data-pembanding', compact('permohonan', 'surveyor', 'branches', 'provinces', 'forminspeksi', 'data'));
|
||||
}
|
||||
|
||||
|
||||
@@ -852,8 +897,92 @@ class SurveyorController extends Controller
|
||||
->route('basicdata.' . $type . '.index')
|
||||
->with('success', 'Updated successfully');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update_analisa($id, Request $request)
|
||||
{
|
||||
try {
|
||||
$permohonan = Permohonan::with([
|
||||
'user',
|
||||
'debiture.province',
|
||||
'debiture.city',
|
||||
'debiture.district',
|
||||
'debiture.village',
|
||||
'branch',
|
||||
'tujuanPenilaian',
|
||||
'penilaian',
|
||||
'documents',
|
||||
])->findOrFail($id);
|
||||
|
||||
$jenisAssetUpdated = false;
|
||||
if ($request->input('types') == 'jenis_asset') {
|
||||
$this->updateJenisAsset($permohonan, $request);
|
||||
$jenisAssetUpdated = true;
|
||||
}
|
||||
|
||||
if (in_array($request->input('types'), ['analisa_tanah', 'analisa_bangunan', 'analisa_unit'])) {
|
||||
$key = match ($request->input('types')) {
|
||||
'analisa_tanah' => 'luas_tanah',
|
||||
'analisa_bangunan' => 'luas_bangunan',
|
||||
'analisa_unit' => 'luas_unit',
|
||||
};
|
||||
|
||||
$this->updateDetails($permohonan, $key, $request->input($key));
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Data berhasil disimpan',
|
||||
'jenis_asset' => $jenisAssetUpdated,
|
||||
], 200);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function updateJenisAsset($permohonan, $request)
|
||||
{
|
||||
$jenis_jaminan_id = $permohonan->debiture->documents->first()->jenis_jaminan_id;
|
||||
DokumenJaminan::where('permohonan_id', $permohonan->id)
|
||||
->where('jenis_jaminan_id', $jenis_jaminan_id)
|
||||
->update([
|
||||
'jenis_jaminan_id' => $request->input('jenis_asset'),
|
||||
]);
|
||||
}
|
||||
|
||||
private function updateDetails($permohonan, $key, $newValue)
|
||||
{
|
||||
$document = $permohonan->debiture->documents->first();
|
||||
|
||||
if (!$document) {
|
||||
throw new \Exception("Document not found");
|
||||
}
|
||||
|
||||
$detailsUpdate = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->first();
|
||||
|
||||
if (!$detailsUpdate) {
|
||||
throw new \Exception("DetailDokumenJaminan not found");
|
||||
}
|
||||
|
||||
$datas = json_decode($detailsUpdate->details, true) ?? [];
|
||||
|
||||
if (is_numeric($newValue)) {
|
||||
$newValue = [$key => $newValue];
|
||||
}
|
||||
|
||||
if (!is_array($newValue)) {
|
||||
throw new \InvalidArgumentException("'{$key}' must be an array or valid JSON string");
|
||||
}
|
||||
|
||||
foreach ($newValue as $subKey => $value) {
|
||||
$datas[$subKey] = $value; // Update atau tambahkan key baru
|
||||
}
|
||||
|
||||
$detailsUpdate->update([
|
||||
'details' => json_encode($datas),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -1132,6 +1261,13 @@ class SurveyorController extends Controller
|
||||
'modelAlatBerat' => ModelAlatBerat::all(),
|
||||
'jenisKapal' => JenisKapal::all(),
|
||||
'jenisKendaraan' => JenisKendaraan::all(),
|
||||
'terletakArea' => TerletakArea::all(),
|
||||
'posisiUnit' => PosisiUnit::all(),
|
||||
'bentukUnit' => BentukUnit::all(),
|
||||
'fasilitasObjek' => FasilitasObjek::all(),
|
||||
'merupakanDaerah' => MerupakanDaerah::all(),
|
||||
'jenisUnit' => JenisUnit::all(),
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
@@ -1215,16 +1351,26 @@ class SurveyorController extends Controller
|
||||
|
||||
private function getBangunanData($data, $request): array
|
||||
{
|
||||
// $kategori_bangunan = [];
|
||||
// if ($request->has('spek_kategori_bagunan')) {
|
||||
// foreach ($request->input('spek_kategori_bagunan', []) as $value) {
|
||||
// $kategori_bangunan[] = [
|
||||
// 'value' => [
|
||||
// 'data' => $data['spek_bangunan'] ?? [],
|
||||
// ],
|
||||
// ];
|
||||
// }
|
||||
// }
|
||||
$data = $request->all();
|
||||
$result = [];
|
||||
|
||||
// foreach ($data['nama_bagunan'] as $index => $bangunan) {
|
||||
// $bangunanData = [
|
||||
// 'bangunan' => $bangunan,
|
||||
// 'kategori' => []
|
||||
// ];
|
||||
|
||||
// foreach ($data['spek_kategori_bangunan'] as $kategoriIndex => $kategori) {
|
||||
// if (isset($data['spek_bangunan'][$kategori])) {
|
||||
// $bangunanData['kategori'][] = [
|
||||
// 'kategori' => $kategori,
|
||||
// 'spesifikasi' => $data['spek_bangunan'][$kategori]
|
||||
// ];
|
||||
// }
|
||||
// }
|
||||
|
||||
// $result[] = $bangunanData;
|
||||
// }
|
||||
|
||||
return [
|
||||
'bangunan' => [
|
||||
@@ -1233,8 +1379,8 @@ class SurveyorController extends Controller
|
||||
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
|
||||
'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
|
||||
'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null,
|
||||
'spek_kategori_bagunan' => $data['spek_kategori_bagunan'] ?? null,
|
||||
'spek_bangunan' => $data['spek_bangunan'] ?? [],
|
||||
'spesifikasi_bangunan' => $result ?? null,
|
||||
// 'spek_bangunan' => $data['spek_bangunan'] ?? [],
|
||||
'sarana_pelengkap' => $data['sarana_pelengkap'] ?? [],
|
||||
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
|
||||
],
|
||||
@@ -1740,6 +1886,3 @@ class SurveyorController extends Controller
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user