update form inspeksi menggunakan json
This commit is contained in:
@@ -34,8 +34,9 @@ use Modules\Lpj\Models\Denah;
|
|||||||
use Modules\Lpj\Models\FotoJaminan;
|
use Modules\Lpj\Models\FotoJaminan;
|
||||||
use Modules\Lpj\Models\Lingkungan;
|
use Modules\Lpj\Models\Lingkungan;
|
||||||
use Modules\Lpj\Models\LantaiUnit;
|
use Modules\Lpj\Models\LantaiUnit;
|
||||||
use Modules\Lpj\Models\Lantai;
|
|
||||||
use Modules\Lpj\Models\Teams;
|
use Modules\Lpj\Models\Teams;
|
||||||
|
use Modules\Lpj\Models\Lantai;
|
||||||
|
use Modules\Lpj\Models\Inspeksi;
|
||||||
use Modules\Lpj\Models\ViewUnit;
|
use Modules\Lpj\Models\ViewUnit;
|
||||||
use Modules\Lpj\Models\ObjekJaminan;
|
use Modules\Lpj\Models\ObjekJaminan;
|
||||||
use Modules\Lpj\Models\RuteJaminan;
|
use Modules\Lpj\Models\RuteJaminan;
|
||||||
@@ -156,48 +157,117 @@ class SurveyorController extends Controller
|
|||||||
$data = $request->validated();
|
$data = $request->validated();
|
||||||
if ($data) {
|
if ($data) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
$formatTanahJson =[
|
||||||
|
'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [],
|
||||||
|
'jenis_asset' => $data['jenis_asset'] ?? null,
|
||||||
|
'jenis_asset_tidak_sesuai' => $data['jenis_asset_tidak_sesuai'] ?? null,
|
||||||
|
'alamat_sesuai' => $data['alamat_sesuai'] ?? null,
|
||||||
|
'alamat_tidak_sesuai' => $data['alamat_tidak_sesuai'] ?? null,
|
||||||
|
'nama_jalan' => $data['nama_jalan'] ?? null,
|
||||||
|
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
|
||||||
|
'kecamatan' => $data['kecamatan'] ?? null,
|
||||||
|
'kota_kabupaten' => $data['kota_kabupaten'] ?? null,
|
||||||
|
'provinsi' => $data['provinsi'] ?? null,
|
||||||
|
'kordinat_lng' => $data['kordinat_lng'] ?? null,
|
||||||
|
'kordinat_lat' => $data['kordinat_lat'] ?? null,
|
||||||
|
'luas_tanah' => $data['luas_tanah'] ?? null,
|
||||||
|
'luas_tanah_tidak_sesuai' => $data['luas_tanah_tidak_sesuai'] ?? null,
|
||||||
|
'hadap_mata_angin' => $data['hadap_mata_angin'] ?? null,
|
||||||
|
'hadap_mata_angin_tidak_sesuai' => $data['hadap_mata_angin_tidak_sesuai'] ?? null,
|
||||||
|
'bentuk_tanah' => $data['bentuk_tanah'] ?? null,
|
||||||
|
'bentuk_tanah_lainnya' => $data['bentuk_tanah_lainnya'] ?? null,
|
||||||
|
'kontur_tanah' => $data['kontur_tanah'] ?? [],
|
||||||
|
'ketinggian_tanah' => $data['ketinggian_tanah'] ?? [],
|
||||||
|
'ketinggian_tanah_tidak_sesuai' => $data['ketinggian_tanah_tidak_sesuai'] ?? [],
|
||||||
|
'posisi_kavling' => $data['posisi_kavling'] ?? [],
|
||||||
|
'posisi_kavling_lainnya' => $data['posisi_kavling_lainnya'] ?? null,
|
||||||
|
'tusuk_sate' => $data['tusuk_sate'] ?? null,
|
||||||
|
'lockland' => $data['lockland'] ?? null,
|
||||||
|
'kondisi_fisik_tanah' => $data['kondisi_fisik_tanah'] ?? [],
|
||||||
|
'kondisi_fisik_tanah_lainnya' => $data['kondisi_fisik_tanah_lainnya'] ?? null,
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$formatBangunanJson =[
|
||||||
|
'luas_tanah_bangunan' => $data['luas_tanah_bangunan'] ?? null,
|
||||||
|
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
|
||||||
|
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
|
||||||
|
'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
|
||||||
|
'sifat_bangunan_input' => $data['sifat_bagunan_input'] ?? null,
|
||||||
|
'spek_kategori_bagunan' => $data['spek_kategori_bagunan'] ?? null,
|
||||||
|
'spek_bangunan' => $data['spek_bangunan'] ?? null,
|
||||||
|
'sarana_pelengkap' => $data['sarana_pelengkap'] ?? [],
|
||||||
|
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$formatLingkunganJson =[
|
||||||
|
'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null,
|
||||||
|
'jalan_linkungan' => $data['jalan_linkungan'] ?? null,
|
||||||
|
'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null,
|
||||||
|
'nama_cbd_point' => $data['nama_cbd_point'] ?? null,
|
||||||
|
'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null,
|
||||||
|
'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null,
|
||||||
|
'lalu_lintas' => $data['lalu_lintas'] ?? null,
|
||||||
|
'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null,
|
||||||
|
'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null,
|
||||||
|
'terletak_diarea' => $data['terletak_diarea'] ?? null,
|
||||||
|
'disekitar_lokasi' => $data['disekitar_lokasi'] ?? null,
|
||||||
|
'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null,
|
||||||
|
'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null,
|
||||||
|
'dekat_makam' => $data['dekat_makam'] ?? null,
|
||||||
|
'jarak_makam' => $data['jarak_makam'] ?? null,
|
||||||
|
'nama_makam' => $data['nama_makam'] ?? null,
|
||||||
|
'dekat_tps' => $data['dekat_tps'] ?? null,
|
||||||
|
'jarak_tps' => $data['jarak_tps'] ?? null,
|
||||||
|
'nama_tps' => $data['nama_tps'] ?? null,
|
||||||
|
'merupkan_daerah' => $data['merupkan_daerah'] ?? null,
|
||||||
|
'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null,
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$formatFaktaJson =[
|
||||||
|
'fakta_positif' => $data['fakta_positif'] ?? null,
|
||||||
|
'fakta_negatif' => $data['fakta_negatif'] ?? null,
|
||||||
|
'rute_menuju' => $data['rute_menuju'] ?? null,
|
||||||
|
'batas_batas' => $data['batas_batas'] ?? null,
|
||||||
|
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
|
||||||
|
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
|
||||||
|
'informasi_dokument' => $data['informasi_dokument'] ?? null,
|
||||||
|
'peruntukan' => $data['peruntukan'] ?? null,
|
||||||
|
'kdb' => $data['kdb'] ?? null,
|
||||||
|
'kdh' => $data['kdh'] ?? null,
|
||||||
|
'gsb' => $data['gsb'] ?? null,
|
||||||
|
'max_lantai' => $data['max_lantai'] ?? null,
|
||||||
|
'klb' => $data['klb'] ?? null,
|
||||||
|
'gss' => $data['gss'] ?? null,
|
||||||
|
'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null,
|
||||||
|
'nama_petugas' => $data['nama_petugas'] ?? null,
|
||||||
|
'lat' => $data['lat'] ?? null,
|
||||||
|
'lng' => $data['lng'] ?? null,
|
||||||
|
'foto_tempat' => $data['foto_tempat'] ?? null,
|
||||||
|
'keterangan' => $data['keterangan'] ?? null,
|
||||||
|
];
|
||||||
|
|
||||||
|
$mergeData = array_merge($formatTanahJson, $formatBangunanJson, $formatLingkunganJson, $formatFaktaJson);
|
||||||
|
|
||||||
|
Inspeksi::create([
|
||||||
|
'permohonan_id' => $request->permohonan_id,
|
||||||
|
'data_form' => json_encode($mergeData),
|
||||||
|
'name' => $request->type,
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
return response()->json(['message' => 'Data berhasil disimpan',
|
return response()->json(['message' => 'Data berhasil disimpan',
|
||||||
'data' => $data], 200);
|
'data' => $mergeData], 200);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
||||||
return response()->json(['status' => 500, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
|
return response()->json(['message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// $validatedData = $request->validated();
|
|
||||||
// DB::beginTransaction();
|
|
||||||
// try {
|
|
||||||
// $analisa = Analisa::create($validatedData);
|
|
||||||
|
|
||||||
// if ($analisa) {
|
|
||||||
// $validatedData['analisa_id'] = $analisa->id;
|
|
||||||
|
|
||||||
// switch ($validatedData['action']) {
|
|
||||||
// case 'tanah_bangunan':
|
|
||||||
// $this->handleTanahBangunan($validatedData, $request);
|
|
||||||
// break;
|
|
||||||
// case 'unit':
|
|
||||||
// $this->handleUnit($validatedData);
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// throw new \Exception('Invalid action type');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// AnalisaLingkungan::create($validatedData);
|
|
||||||
// $validatedData['foto_tempat'] = $this->uploadFile($request->file('foto_tempat'), 'foto_tempat');
|
|
||||||
// AnalisaFakta::create($validatedData);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// DB::commit();
|
|
||||||
// return redirect()->route('surveyor.show', [
|
|
||||||
// 'id' => $validatedData['permohonan_id'],
|
|
||||||
// 'form' => 'inspeksi'
|
|
||||||
// ])->with('success', 'Data form surveyor berhasil disimpan');
|
|
||||||
// } catch (Exception $e) {
|
|
||||||
// DB::rollback();
|
|
||||||
// return response()->json(['error' => 'Failed to save data', 'details' => $e->getMessage()], 500);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function handleTanahBangunan(array $validatedData, FormSurveyorRequest $request)
|
private function handleTanahBangunan(array $validatedData, FormSurveyorRequest $request)
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
|
|
||||||
$assetDescriptionRules = $this->getAssetDescriptionRules();
|
$assetDescriptionRules = $this->getAssetDescriptionRules();
|
||||||
return array_merge($assetDescriptionRules, [
|
return array_merge($assetDescriptionRules, [
|
||||||
|
|
||||||
'luas_tanah' => 'required',
|
'luas_tanah' => 'required',
|
||||||
'luas_tanah_tidak_sesuai' => 'nullable',
|
'luas_tanah_tidak_sesuai' => 'nullable',
|
||||||
'hadap_mata_angin' => 'required',
|
'hadap_mata_angin' => 'required',
|
||||||
@@ -120,8 +121,8 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
'action' => 'required',
|
'action' => 'required',
|
||||||
'luas_tanah_bagunan' => 'required',
|
'luas_tanah_bagunan' => 'required',
|
||||||
'jenis_bangunan' => 'required',
|
'jenis_bangunan' => 'required',
|
||||||
'kondisi_bangunan' => 'required',
|
'kondisi_bangunan' => 'nullable',
|
||||||
'sifat_bangunan' => 'required',
|
'sifat_bangunan' => 'required|array',
|
||||||
'sifat_bangunan_input' => 'nullable|array',
|
'sifat_bangunan_input' => 'nullable|array',
|
||||||
'nama_bagunan' => 'required|array',
|
'nama_bagunan' => 'required|array',
|
||||||
'spek_kategori_bangunan' => 'required|array',
|
'spek_kategori_bangunan' => 'required|array',
|
||||||
@@ -172,7 +173,7 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
'sifat_bangunan_sekitar' => 'nullable',
|
'sifat_bangunan_sekitar' => 'nullable',
|
||||||
'dekat_makam' => 'nullable',
|
'dekat_makam' => 'nullable',
|
||||||
'jarak_makam' => 'nullable',
|
'jarak_makam' => 'nullable',
|
||||||
'nama_tpu' => 'nullable',
|
'nama_makam' => 'nullable',
|
||||||
'dekat_tps' => 'nullable',
|
'dekat_tps' => 'nullable',
|
||||||
'jarak_tps' => 'nullable',
|
'jarak_tps' => 'nullable',
|
||||||
'nama_tpu' => 'nullable',
|
'nama_tpu' => 'nullable',
|
||||||
@@ -223,6 +224,8 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
private function getAssetDescriptionRules(): array
|
private function getAssetDescriptionRules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'permohonan_id' => 'required',
|
||||||
|
'type' => 'required',
|
||||||
'debitur_perwakilan' => 'required|array',
|
'debitur_perwakilan' => 'required|array',
|
||||||
'jenis_asset' => 'required',
|
'jenis_asset' => 'required',
|
||||||
'jenis_asset_tidak_sesuai' => 'nullable',
|
'jenis_asset_tidak_sesuai' => 'nullable',
|
||||||
|
|||||||
23
app/Models/Inspeksi.php
Normal file
23
app/Models/Inspeksi.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
// use Modules\Lpj\Database\Factories\InspeksiFactory;
|
||||||
|
|
||||||
|
class Inspeksi extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'inspeksi';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['data_form', 'foto_form', 'denah_form','permohonan_id', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by'];
|
||||||
|
|
||||||
|
// protected static function newFactory(): InspeksiFactory
|
||||||
|
// {
|
||||||
|
// // return InspeksiFactory::new();
|
||||||
|
// }
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('inspeksi', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name');
|
||||||
|
$table->json('data_form')->nullable();
|
||||||
|
$table->json('foto_form')->nullable();
|
||||||
|
$table->json('denah_form')->nullable();
|
||||||
|
$table->unsignedBigInteger('permohonan_id');
|
||||||
|
$table->boolean('status')->default(true);
|
||||||
|
$table->char('authorized_status', 1)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->timestamp('authorized_at')->nullable();
|
||||||
|
$table->unsignedBigInteger('authorized_by')->nullable();
|
||||||
|
$table->softDeletes();
|
||||||
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
|
|
||||||
|
$table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('cascade');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('inspeksi');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($analisaType === 'tanah') {
|
if ($analisaType === 'tanah') {
|
||||||
$analisaType = 'kendaraan';
|
$analisaType = 'tanah_bangunan';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($analisaType === 'unit_rumah' || $analisaType === 'unit_gedung') {
|
if ($analisaType === 'unit_rumah' || $analisaType === 'unit_gedung') {
|
||||||
@@ -227,8 +227,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
@@ -320,8 +318,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
|
||||||
function toggleTidakSesuai(field, inputId) {
|
function toggleTidakSesuai(field, inputId) {
|
||||||
const selectedValue = $(`[name="${field}"]:checked, [name="${field}"]:checked`).val();
|
const selectedValue = $(`[name="${field}"]:checked, [name="${field}"]:checked`).val();
|
||||||
const inputField = $(`#${inputId}`);
|
const inputField = $(`#${inputId}`);
|
||||||
@@ -347,18 +343,25 @@
|
|||||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||||
},
|
},
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
|
// Pastikan respons dari server memiliki atribut 'success'
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
window.location.href = '{{ route('surveyor.index') }}';
|
window.location.href =
|
||||||
$('.alert').text('');
|
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=inspeksi';
|
||||||
}
|
}
|
||||||
console.log(response);
|
console.log(response);
|
||||||
},
|
},
|
||||||
error: function(xhr) {
|
error: function(xhr, status, error) { // Menghapus tanda kurung ganda
|
||||||
let errors = xhr.responseJSON.errors;
|
let errors = xhr.responseJSON?.errors; // Pastikan xhr.responseJSON ada sebelum akses errors
|
||||||
|
|
||||||
$('.alert').text('');
|
$('.alert').text('');
|
||||||
$.each(errors, function(key, value) {
|
if (errors) {
|
||||||
$(`#error-${key}`).text(value[0]);
|
$.each(errors, function(key, value) {
|
||||||
});
|
$(`#error-${key}`).text(value[0]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
console.error('Terjadi error:', error); // Menampilkan pesan error di konsol
|
||||||
|
console.log('Status:', status);
|
||||||
|
console.log('Response:', xhr.responseText);
|
||||||
console.log(errors);
|
console.log(errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user