Merge remote-tracking branch 'composer/feature/senior-officer' into staging
# Conflicts: # database/migrations/2024_11_08_081149_create_permohonan_histories_table.php
This commit is contained in:
@@ -215,7 +215,7 @@ class PenilaianController extends Controller
|
||||
$teamPenilai = $userTeam->flatMap(function ($team) {
|
||||
return $team->teamsUsers->filter(function ($teamUser) {
|
||||
return $teamUser->user->roles->contains(function ($role) {
|
||||
return $role->name === 'surveyor' || $role->name === 'surveyor-penilai';
|
||||
return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator';
|
||||
});
|
||||
})->map(function ($teamUser) {
|
||||
return $teamUser->user;
|
||||
|
||||
@@ -34,7 +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\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;
|
||||
@@ -121,6 +123,8 @@ class SurveyorController extends Controller
|
||||
->where('permohonan_id', $id)
|
||||
->get();
|
||||
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $id)->get();
|
||||
$forminspeksi = json_decode($inpeksi[0]->data_form, true);
|
||||
|
||||
|
||||
return view('lpj::surveyor.detail', compact(
|
||||
@@ -151,38 +155,123 @@ class SurveyorController extends Controller
|
||||
*/
|
||||
public function store(FormSurveyorRequest $request)
|
||||
{
|
||||
$validatedData = $request->validated();
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$analisa = Analisa::create($validatedData);
|
||||
|
||||
if ($analisa) {
|
||||
$validatedData['analisa_id'] = $analisa->id;
|
||||
$data = $request->validated();
|
||||
if ($data) {
|
||||
try {
|
||||
|
||||
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);
|
||||
|
||||
$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,
|
||||
'merupakan_daerah' => $data['merupakan_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_gistaru' => $data['foto_gistaru'] = $this->uploadFile($request->file('foto_gistaru'), $request->type) ?? null,
|
||||
'foto_bhumi' => $data['foto_bhumi'] = $this->uploadFile($request->file('foto_bhumi'), $request->type) ?? null,
|
||||
'foto_argis_region' => $data['foto_argis_region'] = $this->uploadFile($request->file('foto_argis_region'), $request->type) ?? null,
|
||||
'foto_tempat' => $data['foto_tempat'] = $this->uploadFile($request->file('foto_tempat'), $request->type) ?? 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(['success' => true, 'message' => 'Data berhasil disimpan',
|
||||
'data' => $mergeData], 200);
|
||||
} catch (Exception $e) {
|
||||
|
||||
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,31 +360,117 @@ class SurveyorController extends Controller
|
||||
'lantai.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'name_lantai_unit.*' => 'nullable|string|max:255',
|
||||
'foto_lantai_unit.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'name_rute_lainnya.*' => 'nullable|string',
|
||||
'foto_rute_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'foto_lantai_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'name_lantai_lainnya.*' => 'nullable|string|max:255',
|
||||
'foto_basement.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'name_basement.*' => 'nullable|string|max:255',
|
||||
'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'name_gerbang' => 'nullable|string|max:255',
|
||||
]);
|
||||
|
||||
DB::beginTransaction();
|
||||
// DB::beginTransaction();
|
||||
|
||||
try {
|
||||
$pendampingPath = $this->uploadFile($request->file('pendamping'), 'pendamping');
|
||||
|
||||
$fotojaminan = FotoJaminan::create([
|
||||
'pendamping' => $pendampingPath,
|
||||
'permohonan_id' => $validatedData['permohonan_id'],
|
||||
'jenis_jaminan_id' => $validatedData['jenis_jaminan_id'],
|
||||
]);
|
||||
$rute_menuju_lokasi = [];
|
||||
$object_jaminan = [];
|
||||
$lingkungan = [];
|
||||
$foto_lantai_unit = [];
|
||||
$foto_lantai_lainnya = [];
|
||||
$foto_rute_lainnya = [];
|
||||
|
||||
$this->processObjekUploads($request, $fotojaminan);
|
||||
$this->processLantaiUnitUploads($request, $fotojaminan);
|
||||
$this->processUploads('rute', $request, $fotojaminan);
|
||||
$this->processUploads('lingkungan', $request, $fotojaminan);
|
||||
|
||||
DB::commit();
|
||||
return redirect()->route('surveyor.show', [
|
||||
'id' => $validatedData['permohonan_id'],
|
||||
'form' => 'foto'
|
||||
])->with('success', 'Data foto berhasil disimpan');
|
||||
foreach ($request->file('foto_rute', []) as $key => $value) {
|
||||
$fotoRutePath = $this->uploadFile($request->file('foto_rute.' . $key), 'foto_rute.' . $key);
|
||||
|
||||
$rute_menuju_lokasi[] = [
|
||||
'name_rute' => $request->input('name_rute.' . $key),
|
||||
'foto_rute' => $fotoRutePath,
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($request->file('foto_objek', []) as $key => $value) {
|
||||
$fotoObjekPath = $this->uploadFile($request->file('foto_objek.' . $key), 'foto_objek.' . $key);
|
||||
$object_jaminan[] = [
|
||||
'nama_objek' => $request->input('name_objek.' . $key),
|
||||
'foto_object' => $fotoObjekPath,
|
||||
'deskripsi_objek' => $request->input('deskripsi_objek.' . $key),
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($request->file('foto_lingkungan', []) as $key => $value) {
|
||||
$fotoLingkunganPath = $this->uploadFile($request->file('foto_lingkungan.' . $key), 'foto_lingkungan.' . $key);
|
||||
$lingkungan[] = [
|
||||
'name_lingkungan' => $request->input('name_lingkungan.' . $key),
|
||||
'foto_lingkungan' => $fotoLingkunganPath,
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($request->file('foto_lantai_unit', []) as $key => $value) {
|
||||
$foto_lantai_unit_Path = $this->uploadFile($request->file('foto_lantai_unit.' . $key), 'foto_lantai_unit.' . $key);
|
||||
$foto_lantai_unit[] = [
|
||||
'name_lantai_unit' => $request->input('name_lantai_unit.' . $key),
|
||||
'foto_lantai_unit' => $foto_lantai_unit_Path,
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($request->file('foto_rute_lainnya', []) as $key => $value) {
|
||||
$foto_rute_lainnya_path = $this->uploadFile($request->file('foto_rute_lainnya.' . $key), 'foto_rute_lainnya.' . $key);
|
||||
$foto_rute_lainnya[] = [
|
||||
'name_rute_lainnya' => $request->input('name_rute_lainnya.' . $key),
|
||||
'foto_rute_lainnya' => $foto_rute_lainnya_path,
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
foreach ($request->file('foto_lantai_lainnya', []) as $key => $value) {
|
||||
$foto_lantai_lainnya_path = $this->uploadFile($request->file('foto_lantai_lainnya.' . $key), 'foto_lantai_lainnya.' . $key);
|
||||
$foto_lantai_lainnya[] = [
|
||||
'name_lantai_lainnya' => $request->input('name_lantai_lainnya.' . $key),
|
||||
'foto_lantai_lainnya' => $foto_lantai_lainnya_path,
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
$basement = $this->uploadFile($request->file('foto_basement'), 'foto_basement');
|
||||
$gerbang = $this->uploadFile($request->file('foto_gerbang'), 'foto_gerbang');
|
||||
|
||||
|
||||
$formatFotojson = [
|
||||
'rute_menuju_lokasi' => $rute_menuju_lokasi,
|
||||
'object_jaminan' => $object_jaminan,
|
||||
'lingkungan' => $lingkungan
|
||||
,'foto_lantai_unit' => $foto_lantai_unit,
|
||||
'foto_lantai_lainnya' => $foto_lantai_lainnya,
|
||||
'foto_rute_lainnya' => $foto_rute_lainnya,
|
||||
'basement' => $basement,
|
||||
'gerbang' => $gerbang
|
||||
];
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->first();
|
||||
if($request->input('permohonan_id') == $inspeksi->permohonan_id){
|
||||
$inspeksi->update([
|
||||
'foto_form' => json_encode($formatFotojson)
|
||||
]);
|
||||
}else {
|
||||
|
||||
Inspeksi::create([
|
||||
'permohonan_id' => $request->input('permohonan_id'),
|
||||
'foto_form' => json_encode($formatFotojson)
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
// DB::commit();
|
||||
|
||||
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan', 'data' => $formatFotojson], 200);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
return response()->json(['success' => false, 'message' => 'Failed to upload: ' . $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
@@ -518,8 +693,9 @@ class SurveyorController extends Controller
|
||||
|
||||
$query->whereRaw('LOWER(status) = ?', ['assign']);
|
||||
|
||||
$query->whereHas('region.teams.teamsUsers.user', function ($q) {
|
||||
$q->where('id', Auth::user()->id);
|
||||
$query->whereHas('penilaian.userPenilai', function ($q) {
|
||||
$q->where('user_id', Auth::user()->id);
|
||||
$q->where('role', 'surveyor');
|
||||
});
|
||||
|
||||
|
||||
@@ -544,7 +720,7 @@ class SurveyorController extends Controller
|
||||
}
|
||||
|
||||
$filteredRecords = $query->count();
|
||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'jenisFasilitasKredit'])->get();
|
||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisFasilitasKredit'])->get();
|
||||
|
||||
$pageCount = ceil($totalRecords / $size);
|
||||
|
||||
@@ -567,8 +743,14 @@ class SurveyorController extends Controller
|
||||
{
|
||||
$permohonan = $this->getPermohonanJaminanId($id, $jaminanId);
|
||||
|
||||
// Auth::user()->id
|
||||
|
||||
|
||||
$link_url_region = Teams::with('regions', 'teamsUsers')
|
||||
->whereHas('teamsUsers', function ($query) {
|
||||
$query->where('user_id', Auth::user()->id);
|
||||
})->first();
|
||||
|
||||
$branches = Branch::all();
|
||||
$provinces = Province::all();
|
||||
|
||||
@@ -600,7 +782,9 @@ class SurveyorController extends Controller
|
||||
->where('jenis_jaminan_id', $jaminanId)
|
||||
->first();
|
||||
|
||||
// return response()->json($permohonan);
|
||||
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $id)->get();
|
||||
$forminspeksi = json_decode($inpeksi[0]->data_form, true);
|
||||
|
||||
|
||||
return view('lpj::surveyor.components.inspeksi', compact(
|
||||
@@ -626,7 +810,9 @@ class SurveyorController extends Controller
|
||||
'golMasySekitar',
|
||||
'tingkatKeramaian',
|
||||
'laluLintasLokasi',
|
||||
'perkerasanJalan'
|
||||
'perkerasanJalan',
|
||||
'link_url_region',
|
||||
'forminspeksi'
|
||||
));
|
||||
}
|
||||
|
||||
@@ -654,7 +840,10 @@ class SurveyorController extends Controller
|
||||
$branches = Branch::all();
|
||||
$provinces = Province::all();
|
||||
|
||||
$fotoJaminan = FotoJaminan::with(['objekJaminan', 'lantaiUnit' ,'ruteJaminan', 'lingkungan'])->where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
// $fotoJaminan = FotoJaminan::with(['objekJaminan', 'lantaiUnit' ,'ruteJaminan', 'lingkungan'])->where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
|
||||
$fotoJaminan = null;
|
||||
|
||||
return view('lpj::surveyor.components.foto', compact('permohonan', 'surveyor', 'branches', 'provinces', 'fotoJaminan'));
|
||||
}
|
||||
|
||||
@@ -740,11 +929,9 @@ class SurveyorController extends Controller
|
||||
->with('success', 'created successfully');
|
||||
|
||||
} catch (Exeception $e) {
|
||||
|
||||
return response()->json(array('error' => $e->getMessage()), 400);
|
||||
// return redirect()
|
||||
// ->route('basicdata.' . $type .'.index')
|
||||
// ->with('error', $th->getMessage());
|
||||
return redirect()
|
||||
->route('basicdata.' . $type .'.index')
|
||||
->with('error', $th->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -779,6 +966,7 @@ class SurveyorController extends Controller
|
||||
$header = $dataMap[$type] ?? '';
|
||||
$model = $modelClass::findOrFail($id);
|
||||
|
||||
$spekKategoriBagunan = null;
|
||||
if ($type == 'spek-bangunan') {
|
||||
$spekKategoriBagunan = SpekKategoritBangunan::all();
|
||||
|
||||
|
||||
@@ -196,6 +196,9 @@ class TeamsController extends Controller
|
||||
->leftJoin('teams_users', 'teams.id', '=', 'teams_users.teams_id')
|
||||
->leftJoin('users', 'teams_users.user_id', '=', 'users.id')
|
||||
->addSelect('users.id as user_id', 'users.name as user_name');
|
||||
|
||||
|
||||
|
||||
|
||||
// Filter pencarian
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
|
||||
@@ -19,10 +19,11 @@ class FormSurveyorRequest extends FormRequest
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
$commonRules = $this->getCommonRules();
|
||||
$commonRules = $this->getBangunanRules();
|
||||
$actionSpecificRules = $this->getActionSpecificRules();
|
||||
|
||||
return array_merge($commonRules, $actionSpecificRules);
|
||||
return $actionSpecificRules;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -31,44 +32,29 @@ class FormSurveyorRequest extends FormRequest
|
||||
private function getCommonRules(): array
|
||||
{
|
||||
return [
|
||||
'jenis_jaminan_id' => 'required',
|
||||
'type' => 'required',
|
||||
'permohonan_id' => 'required',
|
||||
'luas' => 'required',
|
||||
'jarak_jalan_utama' => 'required',
|
||||
'alamat' => 'required',
|
||||
'jarak_cbd_point' => 'required',
|
||||
'lebar_perkerasan_jalan' => 'required',
|
||||
'perkerasan_jalan' => 'required',
|
||||
'lalu_lintas' => 'required',
|
||||
'gol_mas_sekitar' => 'required',
|
||||
'tingkat_keramaian' => 'required',
|
||||
'terletak_diarea' => 'required',
|
||||
'disekitar_lokasi' => 'required',
|
||||
'dekat_makam' => 'required',
|
||||
'dekat_tps' => 'required',
|
||||
'merupakan_daerah' => 'required',
|
||||
'fasilitas_dekat_object' => 'required',
|
||||
'fakta_positif' => 'required',
|
||||
'fakta_negatif' => 'required',
|
||||
'rute_menuju' => 'required',
|
||||
'batas_batas' => 'required',
|
||||
'kondisi_linkungan' => 'required',
|
||||
'kondisi_lain_bangunan' => 'required',
|
||||
'informasi_dokument' => 'required',
|
||||
'peruntukan' => 'required',
|
||||
'kdb' => 'required',
|
||||
'kdh' => 'required',
|
||||
'gsb' => 'required',
|
||||
'max_lantai' => 'required',
|
||||
'klb' => 'required',
|
||||
'gss' => 'required',
|
||||
'pelebaran_jalan' => 'required',
|
||||
'nama_petugas' => 'required',
|
||||
'lat' => 'required|numeric',
|
||||
'lng' => 'required|numeric',
|
||||
'foto_tempat' => 'required',
|
||||
'keterangan' => 'required',
|
||||
'fakta_positif' => 'nullable|array',
|
||||
'fakta_negatif' => 'nullable|array',
|
||||
'rute_menuju' => 'nullable',
|
||||
'batas_batas' => 'nullable|array',
|
||||
'kondisi_linkungan' => 'nullable|array',
|
||||
'kondisi_lain_bangunan' => 'nullable|array',
|
||||
'informasi_dokument' => 'nullable',
|
||||
'peruntukan' => 'nullable',
|
||||
'kdb' => 'nullable',
|
||||
'kdh' => 'nullable',
|
||||
'gsb' => 'nullable',
|
||||
'max_lantai' => 'nullable',
|
||||
'klb' => 'nullable',
|
||||
'gss' => 'nullable',
|
||||
'pelebaran_jalan' => 'nullable',
|
||||
'nama_petugas' => 'nullable',
|
||||
'lat' => 'nullable|numeric',
|
||||
'lng' => 'nullable|numeric',
|
||||
'foto_gistaru' => 'nullable',
|
||||
'foto_bhumi' => 'nullable',
|
||||
'foto_argis_region' => 'nullable',
|
||||
'foto_tempat' => 'nullable',
|
||||
'keterangan' => 'nullable',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -80,54 +66,181 @@ class FormSurveyorRequest extends FormRequest
|
||||
$action = $this->input('action');
|
||||
|
||||
switch ($action) {
|
||||
case 'tanah_bangunan':
|
||||
return $this->getTanahBangunanRules();
|
||||
case 'tanah':
|
||||
return $this->getTanahRules();
|
||||
case 'unit':
|
||||
return $this->getUnitRules();
|
||||
case 'kapal':
|
||||
return $this->getUnitRules();
|
||||
case 'kendaraan':
|
||||
return $this->getUnitRules();
|
||||
case 'mesin':
|
||||
return $this->getUnitRules();
|
||||
case 'bangunan':
|
||||
return $this->getTanahBangunanRules();
|
||||
case 'tanah_bangunan':
|
||||
return array_merge($this->getAssetDescriptionRules(),$this->getTanahRules(), $this->getBangunanRules(), $this->getLinkunganRules(), $this->getCommonRules());
|
||||
|
||||
case 'alat-berat':
|
||||
return $this->getUnitRules();
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rules specific to tanah_bangunan action.
|
||||
* Get rules specific to tanah action.
|
||||
*/
|
||||
private function getTanahBangunanRules(): array
|
||||
|
||||
public function getTanahRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'bentuk_tanah' => 'required',
|
||||
'kontur_tanah' => 'required',
|
||||
'posisi_kavling' => 'required',
|
||||
'ketinggian_jalan' => 'required',
|
||||
'kondisi_fisik_tanah' => 'required',
|
||||
return [
|
||||
'luas_tanah' => 'required',
|
||||
'luas_tanah_tidak_sesuai' => 'nullable',
|
||||
'hadap_mata_angin' => 'required',
|
||||
'hadap_mata_angin_tidak_sesuai' => 'nullable',
|
||||
'bentuk_tanah' => 'nullable|array',
|
||||
'bentuk_tanah_lainnya' => 'nullable',
|
||||
'kontur_tanah' => 'required|array',
|
||||
'ketinggian_jalan' => 'required|array',
|
||||
'kontur_jalan' => 'required',
|
||||
'kondisi_bangunan' => 'required',
|
||||
'sifat_bangunan' => 'required',
|
||||
'sarana_pelengkap' => 'required',
|
||||
'luas_tanah_bagunan' => 'required',
|
||||
'posisi_kavling' => 'required|array',
|
||||
'posisi_kavling_lainnya' => 'nullable',
|
||||
'tusuk_sate' => 'required',
|
||||
'name.*' => 'required|string',
|
||||
'kategori.*' => 'required|string',
|
||||
'lockland' => 'required',
|
||||
'jenis_bangunan' => 'required',
|
||||
'kondisi_bangunan' => 'required',
|
||||
'kondisi_fisik_tanah' => 'required|array',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rules specific to Bangunan action.
|
||||
*/
|
||||
|
||||
private function getBangunanRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'luas_tanah_bagunan' => 'required',
|
||||
'jenis_bangunan' => 'required',
|
||||
'kondisi_bangunan' => 'nullable',
|
||||
'sifat_bangunan' => 'required|array',
|
||||
'sifat_bangunan_input' => 'nullable|array',
|
||||
'nama_bagunan' => 'required|array',
|
||||
'spek_kategori_bangunan' => 'required|array',
|
||||
'spek_kategori_bangunan.*' => 'required|string',
|
||||
'sarana_pelengkap' => 'required',
|
||||
'sarana_pelengkap_input' => 'nullable|array',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rules specific to unit action.
|
||||
*/
|
||||
private function getUnitRules(): array
|
||||
{
|
||||
return [
|
||||
return [
|
||||
'action' => 'required',
|
||||
'jenis_unit' => 'required',
|
||||
'kondisi_unit' => 'required',
|
||||
'posisi_unit' => 'required',
|
||||
'lantai' => 'required',
|
||||
'view' => 'required',
|
||||
'bentuk_unit' => 'required',
|
||||
'luas_unit' => 'required',
|
||||
'luas_unit_tidak_sesuai' => 'nullable',
|
||||
'jenis_unit' => 'required|array',
|
||||
'kondisi_unit' => 'required|array',
|
||||
'posisi_unit' => 'required|array',
|
||||
'lantai' => 'required|array',
|
||||
'view' => 'required|array',
|
||||
'bentuk_unit' => 'required|array',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rules specific to Linkungan action.
|
||||
*/
|
||||
|
||||
private function getLinkunganRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'jarak_jalan_utama' => 'nullable',
|
||||
'jalan_linkungan' => 'nullable',
|
||||
'jarak_cbd_point' => 'nullable',
|
||||
'nama_cbd_point' => 'nullable',
|
||||
'lebar_perkerasan_jalan' => 'nullable',
|
||||
'perkerasan_jalan' => 'nullable',
|
||||
'lalu_lintas' => 'nullable',
|
||||
'gol_mas_sekitar' => 'nullable',
|
||||
'tingkat_keramaian' => 'nullable',
|
||||
'terletak_diarea' => 'nullable',
|
||||
'disekitar_lokasi' => 'nullable',
|
||||
'kondisi_bangunan_sekitar' => 'nullable',
|
||||
'sifat_bangunan_sekitar' => 'nullable',
|
||||
'dekat_makam' => 'nullable',
|
||||
'jarak_makam' => 'nullable',
|
||||
'nama_makam' => 'nullable',
|
||||
'dekat_tps' => 'nullable',
|
||||
'jarak_tps' => 'nullable',
|
||||
'nama_tpu' => 'nullable',
|
||||
'merupakan_daerah' => 'nullable',
|
||||
'fasilitas_dekat_object' => 'nullable',
|
||||
];
|
||||
}
|
||||
|
||||
private function getKapalRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'kondisi_kapal' => 'required',
|
||||
'kondisi_kapal_lain' => 'required',
|
||||
];
|
||||
}
|
||||
|
||||
public function getKendaraanRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'kondisi_kendaraan' => 'required',
|
||||
'kondisi_kendaraan_lain' => 'required',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function getMesinRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'kondisi_mesin' => 'required',
|
||||
'kondisi_mesin_lain' => 'required',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function getAlatBeratRules(): array
|
||||
{
|
||||
return [
|
||||
'action' => 'required',
|
||||
'kondisi_alat_berat' => 'required',
|
||||
'kondisi_alat_berat_lain' => 'required',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
private function getAssetDescriptionRules(): array
|
||||
{
|
||||
return [
|
||||
'permohonan_id' => 'required',
|
||||
'type' => 'required',
|
||||
'debitur_perwakilan' => 'required|array',
|
||||
'jenis_asset' => 'required',
|
||||
'jenis_asset_tidak_sesuai' => 'nullable',
|
||||
'alamat_sesuai' => 'required',
|
||||
'alamat_tidak_sesuai' => 'nullable',
|
||||
'nama_jalan' => 'nullable',
|
||||
'desa_kelurahan' => 'nullable',
|
||||
'kecamatan' => 'nullable',
|
||||
'kota_kabupaten' => 'nullable',
|
||||
'provinsi' => 'nullable',
|
||||
'kordinat_lng' => 'nullable',
|
||||
'kordinat_lat' => 'nullable',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,15 +25,12 @@ class PenilaianRequest extends FormRequest
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
return [
|
||||
'jenis_penilaian_id' => 'required|max:255',
|
||||
'teams_id' => 'required|max:255',
|
||||
'tanggal_kunjungan' => 'required|max:255',
|
||||
'status' => 'required|string',
|
||||
'nomor_registrasi' => 'required|string',
|
||||
|
||||
'surveyor_id' => 'nullable|required_without_all:penilai_surveyor_id,surveyor_region_id,penilai_region_id,penilai_id',
|
||||
'penilai_id' => 'nullable|required_without_all:penilai_surveyor_id,surveyor_region_id,penilai_region_id,surveyor_id',
|
||||
'penilai_surveyor_id' => 'nullable',
|
||||
|
||||
@@ -14,6 +14,8 @@ class RegionRequest extends FormRequest
|
||||
$rules = [
|
||||
'name' => 'required|string|max:255',
|
||||
'status' => 'nullable|boolean',
|
||||
'url' => 'nullable|string|max:255',
|
||||
'name_url' => 'nullable|string|max:255',
|
||||
'authorized_at' => 'nullable|datetime',
|
||||
'authorized_status' => 'nullable|string|max:1',
|
||||
'authorized_by' => 'nullable|exists:users,id',
|
||||
|
||||
Reference in New Issue
Block a user