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:
Daeng Deni Mardaeni
2024-11-13 17:18:28 +07:00
34 changed files with 3534 additions and 1846 deletions

View File

@@ -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;

View File

@@ -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();

View File

@@ -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'))) {

View File

@@ -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',
];
}
}

View File

@@ -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',

View File

@@ -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',

23
app/Models/Inspeksi.php Normal file
View 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();
// }
}

View File

@@ -29,7 +29,7 @@ class PenilaianTeam extends Model
public function penilaian(){
return $this->hasMany(Penilaian::class, 'penilaian_id', 'id');
return $this->belongsTo(Penilaian::class, 'penilaian_id', 'id');
}
protected static function newFactory(): PenilaianTeamFactory

View File

@@ -17,7 +17,7 @@ class Regions extends Model
protected $table = 'regions';
protected $fillable = [
'code', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by'
'code', 'name', 'status', 'name_url','url','authorized_status', 'authorized_at', 'authorized_by'
];
public function teams(){