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\Lingkungan;
|
||||
use Modules\Lpj\Models\LantaiUnit;
|
||||
use Modules\Lpj\Models\Lantai;
|
||||
use Modules\Lpj\Models\Teams;
|
||||
use Modules\Lpj\Models\Lantai;
|
||||
use Modules\Lpj\Models\Inspeksi;
|
||||
use Modules\Lpj\Models\ViewUnit;
|
||||
use Modules\Lpj\Models\ObjekJaminan;
|
||||
use Modules\Lpj\Models\RuteJaminan;
|
||||
@@ -156,48 +157,117 @@ class SurveyorController extends Controller
|
||||
$data = $request->validated();
|
||||
if ($data) {
|
||||
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',
|
||||
'data' => $data], 200);
|
||||
'data' => $mergeData], 200);
|
||||
} 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)
|
||||
|
||||
@@ -93,6 +93,7 @@ class FormSurveyorRequest extends FormRequest
|
||||
|
||||
$assetDescriptionRules = $this->getAssetDescriptionRules();
|
||||
return array_merge($assetDescriptionRules, [
|
||||
|
||||
'luas_tanah' => 'required',
|
||||
'luas_tanah_tidak_sesuai' => 'nullable',
|
||||
'hadap_mata_angin' => 'required',
|
||||
@@ -120,8 +121,8 @@ class FormSurveyorRequest extends FormRequest
|
||||
'action' => 'required',
|
||||
'luas_tanah_bagunan' => 'required',
|
||||
'jenis_bangunan' => 'required',
|
||||
'kondisi_bangunan' => 'required',
|
||||
'sifat_bangunan' => 'required',
|
||||
'kondisi_bangunan' => 'nullable',
|
||||
'sifat_bangunan' => 'required|array',
|
||||
'sifat_bangunan_input' => 'nullable|array',
|
||||
'nama_bagunan' => 'required|array',
|
||||
'spek_kategori_bangunan' => 'required|array',
|
||||
@@ -172,7 +173,7 @@ class FormSurveyorRequest extends FormRequest
|
||||
'sifat_bangunan_sekitar' => 'nullable',
|
||||
'dekat_makam' => 'nullable',
|
||||
'jarak_makam' => 'nullable',
|
||||
'nama_tpu' => 'nullable',
|
||||
'nama_makam' => 'nullable',
|
||||
'dekat_tps' => 'nullable',
|
||||
'jarak_tps' => 'nullable',
|
||||
'nama_tpu' => 'nullable',
|
||||
@@ -223,6 +224,8 @@ class FormSurveyorRequest extends FormRequest
|
||||
private function getAssetDescriptionRules(): array
|
||||
{
|
||||
return [
|
||||
'permohonan_id' => 'required',
|
||||
'type' => 'required',
|
||||
'debitur_perwakilan' => 'required|array',
|
||||
'jenis_asset' => 'required',
|
||||
'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') {
|
||||
$analisaType = 'kendaraan';
|
||||
$analisaType = 'tanah_bangunan';
|
||||
}
|
||||
|
||||
if ($analisaType === 'unit_rumah' || $analisaType === 'unit_gedung') {
|
||||
@@ -227,8 +227,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
@push('scripts')
|
||||
<script>
|
||||
@@ -320,8 +318,6 @@
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
function toggleTidakSesuai(field, inputId) {
|
||||
const selectedValue = $(`[name="${field}"]:checked, [name="${field}"]:checked`).val();
|
||||
const inputField = $(`#${inputId}`);
|
||||
@@ -347,18 +343,25 @@
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
success: function(response) {
|
||||
// Pastikan respons dari server memiliki atribut 'success'
|
||||
if (response.success) {
|
||||
window.location.href = '{{ route('surveyor.index') }}';
|
||||
$('.alert').text('');
|
||||
window.location.href =
|
||||
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=inspeksi';
|
||||
}
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr) {
|
||||
let errors = xhr.responseJSON.errors;
|
||||
error: function(xhr, status, error) { // Menghapus tanda kurung ganda
|
||||
let errors = xhr.responseJSON?.errors; // Pastikan xhr.responseJSON ada sebelum akses errors
|
||||
|
||||
$('.alert').text('');
|
||||
$.each(errors, function(key, value) {
|
||||
$(`#error-${key}`).text(value[0]);
|
||||
});
|
||||
if (errors) {
|
||||
$.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);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user