Merge remote-tracking branch 'composer/feature/senior-officer' into staging

This commit is contained in:
Daeng Deni Mardaeni
2024-11-20 15:36:15 +07:00
23 changed files with 4472 additions and 1941 deletions

View File

@@ -130,7 +130,9 @@ class PenilaianController extends Controller
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
} catch (Exception $e) {
DB::rollBack();
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
return response()->json(['error'=> $e->getMessage()]);
// return redirect()->route('penilaian.index')->with('error', $e->getMessage());
}
}
}

View File

@@ -48,6 +48,8 @@ use Modules\Lpj\Models\LaluLintasLokasi;
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
use Modules\Lpj\Http\Requests\SurveyorRequest;
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
use Modules\Lpj\Emails\SendEmail;
use Illuminate\Support\Facades\Mail;
class SurveyorController extends Controller
{
@@ -167,7 +169,7 @@ class SurveyorController extends Controller
$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 ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
if ($inspeksi) {
$inspeksi->update(['data_form' => json_encode($rules)]);
} else {
Inspeksi::create([
@@ -226,7 +228,6 @@ class SurveyorController extends Controller
public function storeDenah(Request $request)
{
try {
$validatedData = $request->validate([
'foto_denah' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
@@ -237,22 +238,25 @@ class SurveyorController extends Controller
$validatedData['foto_denah'] = $this->uploadFile($request->file('foto_denah'), 'foto_denah');
$formatJsonDenah = [
'foto_denah' => $validatedData['foto_denah'],
'luas' => $validatedData['luas'],
];
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))
->first();
if ($inspeksi) {
$inspeksi->update([
'denah_form' => json_encode($formatJsonDenah)
]);
} else {
Inspeksi::create([
'permohonan_id' => $request->input('permohonan_id'),
'denah_form' => json_encode($formatFotojson)
'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
'denah_form' => json_encode($formatJsonDenah)
]);
}
@@ -261,7 +265,6 @@ class SurveyorController extends Controller
} catch (Exception $e) {
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
}
}
@@ -369,19 +372,21 @@ class SurveyorController extends Controller
'foto_lantai_lainnya' => $foto_lantai_lainnya,
'foto_rute_lainnya' => $foto_rute_lainnya,
'basement' => $basement,
'gerbang' => $gerbang,
'foto_gerbang' => $gerbang,
'pendamping' => $pendamping
];
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
if ($inspeksi) {
$inspeksi->update([
'foto_form' => json_encode($formatFotojson)
]);
} else {
Inspeksi::create([
'permohonan_id' => $request->input('permohonan_id'),
'foto_form' => json_encode($formatFotojson)
'foto_form' => json_encode($formatFotojson),
'jenis_jaminan_id' => $request->input('jenis_jaminan_id')
]);
}
@@ -391,6 +396,8 @@ class SurveyorController extends Controller
}
}
public function submitSurveyor($id, $jaminanId)
{
try {
@@ -445,35 +452,48 @@ class SurveyorController extends Controller
public function storeJadwal(Request $request)
{
try {
$validate = $request->validate([
'id' => 'required',
'waktu_penilaian' => 'required',
'deskripsi_penilaian' => 'required'
]);
// return response()->json([
// 'daa'=>$validate
// ]);
// $user = ['user' => 'rustammajid76@gmail.com'];
// $emailData = [
// 'email' => 'rustammajid76@gmail.com',
// 'subject' => 'Test',
// 'emailData' => '<h2>Hello, World!</h2><h2>This is the email content. Waktu Penilaian:</h2>'
// ];
// $this->sendMessage($emailData, $user);
$id = $request->input('id');
$penilaian = Penilaian::findOrFail($id);
$penilaian->update([
'waktu_penilaian' => $validate['waktu_penilaian'],
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
]);
return redirect()
->route('surveyor.index')
->with('success', 'Jadwal berhasil dibuat.');
} catch (\Exception $e) {
return redirect()
->route('surveyor.index')
->with('error', 'Gagal membuat jadwal: ' . $e->getMessage());
return response()->json(['buttonDisable' => $e->getMessage()]);
}
}
// public function sendMessage($emailData, $user)
// {
// try {
// Mail::to('rustammobil1@gmail.com')->send(new SendEmail($emailData, $user));
// } catch (\Throwable $th) {
// return $th;
// }
// }
public function storeAproved($id)
{
try {
@@ -628,7 +648,7 @@ class SurveyorController extends Controller
* Data pembanding.
*/
public function dataPembanding($id)
public function dataPembanding($id, $jaminanId)
{
$permohonan = Permohonan::with(
[
@@ -646,7 +666,15 @@ class SurveyorController extends Controller
$branches = Branch::all();
$provinces = Province::all();
return view('lpj::surveyor.detail', compact('permohonan', 'surveyor', 'branches', 'provinces'));
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
$forminspeksi = null;
if ($inpeksi) {
$forminspeksi = json_decode($inpeksi->data_form, true);
}
// return response()->json($forminspeksi);
return view('lpj::surveyor.components.data-pembanding', compact('permohonan', 'surveyor', 'branches', 'provinces'));
}
@@ -1107,14 +1135,25 @@ 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'] ?? [],
// ],
// ];
// }
// }
return [
'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? 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,
'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null,
'spek_kategori_bagunan' => $data['spek_kategori_bagunan'] ?? null,
'spek_bangunan' => $data['spek_bangunan'] ?? null,
'spek_bangunan' => $data['spek_bangunan'] ?? [],
'sarana_pelengkap' => $data['sarana_pelengkap'] ?? [],
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
];
@@ -1210,47 +1249,361 @@ class SurveyorController extends Controller
unlink($fullPath);
}
}
private function getKapalData($data): array
private function getKapalData($data, $request): array
{
return [
'keterangan' => $data['keterangan']
'action' => $data['action'] ?? null,
'nama_wakil_debitur' => $data['nama_wakil_debitur'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'dermaga' => $data['dermaga'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'jenis' => $data['jenis'] ?? null,
'size' => $data['size'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'klasifikasi' => $data['klasifikasi'] ?? null,
'nama_kapal' => $data['nama_kapal'] ?? null,
'pemilik_kapal' => $data['pemilik_kapal'] ?? null,
'bendera' => $data['bendera'] ?? null,
'nomor_selar' => $data['nomor_selar'] ?? null,
'kapal' => $data['kapal'] ?? null,
'galangan_kapal' => $data['galangan_kapal'] ?? null,
'kapal_shipyard' => $data['kapal_shipyard'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'tahun_launcing' => $data['tahun_launcing'] ?? null,
'dwt' => $data['dwt'] ?? null,
'lwt' => $data['lwt'] ?? null,
'gross_tonnage' => $data['gross_tonnage'] ?? null,
'net_tonnage' => $data['net_tonnage'] ?? null,
'tenaga_mesin' => $data['tenaga_mesin'] ?? null,
'loa' => $data['loa'] ?? null,
'lbp' => $data['lbp'] ?? null,
'beam' => $data['beam'] ?? null,
'depth' => $data['depth'] ?? null,
'draft' => $data['draft'] ?? null,
'lambung_kapal' => $data['lambung_kapal'] ?? null,
'dek' => $data['dek'] ?? null,
'struktur_rangka' => $data['struktur_rangka'] ?? null,
'palka' => $data['palka'] ?? null,
'pondasi_mesin' => $data['pondasi_mesin'] ?? null,
'area_mesin' => $data['area_mesin'] ?? null,
'cat_dan_korosi' => $data['cat_dan_korosi'] ?? null,
'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
'sekoci' => $data['sekoci'] ?? null,
'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
'alat_pemadaman' => $data['alat_pemadaman'] ?? null,
'rambu_darurat' => $data['rambu_darurat'] ?? null,
'sistem_alarm' => $data['sistem_alarm'] ?? null,
'sistem_pencegah' => $data['sistem_pencegah'] ?? null,
'kebakaran' => $data['kebakaran'] ?? null,
'lampu_darurat' => $data['lampu_darurat'] ?? null,
'deskripsi_peralatan' => $data['deskripsi_peralatan'] ?? null,
'gps' => $data['gps'] ?? null,
'radar' => $data['radar'] ?? null,
'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_kendali_otomatis' => $data['sistem_kendali_otomatis'] ?? null,
'kompas' => $data['kompas'] ?? null,
'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
'mesin_utama' => $data['mesin_utama'] ?? null,
'mesin_bantu' => $data['mesin_bantu'] ?? null,
'pompa_pendingin' => $data['pompa_pendingin'] ?? null,
'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
'propeller' => $data['propeller'] ?? null,
'sistem_kelistrikan' => $data['sistem_kelistrikan'] ?? null,
'deskripsi_mesin_penggerak' => $data['deskripsi_mesin_penggerak'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_penerangan' => $data['sistem_penerangan'] ?? null,
'sistem_panel_distribusi' => $data['sistem_panel_distribusi'] ?? null,
'kabel_perangkat' => $data['kabel_perangkat'] ?? null,
'deskripsi_kelistrikan' => $data['deskripsi_kelistrikan'] ?? null,
'kebersihan_dek_luar' => $data['kebersihan_dek_luar'] ?? null,
'tangki_limbah' => $data['tangki_limbah'] ?? null,
'sistem_pengelolaan_limbah' => $data['sistem_pengelolaan_limbah'] ?? null,
'pengelolaan_air_ballast' => $data['pengelolaan_air_ballast'] ?? null,
'deskripsi_kebersihan' => $data['deskripsi_kebersihan'] ?? null,
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'analisa_makro' => $data['analisa_makro'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
public function getKendaraanData($data, $request): array
{
return [
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok_nomor' => $data['blok_nomor'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'nomor_polisi' => $data['nomor_polisi'] ?? null,
'nomor_polis_tidak_sesuai' => $data['nomor_polis_tidak_sesuai'] ?? null,
'merek' => $data['merek'] ?? null,
'merek_tidak_sesuai' => $data['merek_tidak_sesuai'] ?? null,
'warna' => $data['warna'] ?? null,
'warna_tidak_sesuai' => $data['warna_tidak_sesuai'] ?? null,
'nomor_rangka' => $data['nomor_rangka'] ?? null,
'nomor_rangka_tidak_sesuai' => $data['nomor_rangka_tidak_sesuai'] ?? null,
'nomor_mesin' => $data['nomor_mesin'] ?? null,
'nomor_mesin_tidak_sesuai' => $data['nomor_mesin_tidak_sesuai'] ?? null,
'posisi_kilometer' => $data['posisi_kilometer'] ?? null,
'transmisi' => $data['transmisi'] ?? null,
'mesin_panel_instrument' => $data['mesin_panel_instrument'] ?? null,
'fungsi_mesin_panel_instrument' => $data['fungsi_mesin_panel_instrument'] ?? null,
'interior' => $data['interior'] ?? null,
'interior' => $data['interior'] ?? null,
'jumlah_pintu' => $data['jumlah_pintu'] ?? null,
'rangka_karoseri' => $data['rangka_karoseri'] ?? null,
'ban' => $data['ban'] ?? null,
'velg' => $data['velg'] ?? null,
'bamper_depan' => $data['bamper_depan'] ?? null,
'bamper_belakang' => $data['bamper_belakang'] ?? null,
'lampu_depan' => $data['lampu_depan'] ?? null,
'lampu_belakang' => $data['lampu_belakang'] ?? null,
'kaca_kendaraan' => $data['kaca_kendaraan'] ?? null,
'air_conditioner' => $data['air_conditioner'] ?? null,
'tape_radio_cd' => $data['tape_radio_cd'] ?? null,
'sensor_parkir' => $data['sensor_parkir'] ?? null,
'sensor_camera_recorder' => $data['sensor_camera_recorder'] ?? null,
'lcd' => $data['lcd'] ?? null,
'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
'airbag' => $data['airbag'] ?? null,
'asuransi' => $data['asuransi'] ?? null,
'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'analisa_makro' => $data['analisa_makro'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getKendaraanData($data): array
public function getMesinData($data, $request): array
{
return [
'keterangan' => $data['keterangan']
'action' => $data['action'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok' => $data['blok'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'tipe_model' => $data['tipe_model'] ?? null,
'merek' => $data['merek'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'negara_pembuat' => $data['negara_pembuat'] ?? null,
'kondisi_mesin' => $data['kondisi_mesin'] ?? null,
'faktor_positif' => $data['faktor_positif'] ?? null,
'faktor_negatif' => $data['faktor_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getMesinData($data): array
public function getAlatBeratData($data, $request): array
{
return [
'keterangan' => $data['keterangan']
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'dengan_wadeb' => $data['dengan_wadeb'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok' => $data['blok'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'jenis_model' => $data['jenis_model'] ?? null,
'nomor_lambung' => $data['nomor_lambung'] ?? null,
'model_unit' => $data['model_unit'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'merk' => $data['merk'] ?? null,
'negara_pembuat' => $data['negara_pembuat'] ?? null,
'tahun_pembelian' => $data['tahun_pembelian'] ?? null,
'nomor_faktur' => $data['nomor_faktur'] ?? null,
'nomor_kontrak' => $data['nomor_kontrak'] ?? null,
'nama_pemilik' => $data['nama_pemilik'] ?? null,
'alamat_pemilik' => $data['alamat_pemilik'] ?? null,
'nomor_asuransi' => $data['nomor_asuransi'] ?? null,
'nomor_rangka' => $data['nomor_rangka'] ?? null,
'nomor_mesin' => $data['nomor_mesin'] ?? null,
'hour_mesters' => $data['hour_mesters'] ?? null,
'overhaul_mesin' => $data['overhaul_mesin'] ?? null,
'mesin_panel' => $data['mesin_panel'] ?? null,
'fungsi_panel' => $data['fungsi_panel'] ?? null,
'interior' => $data['interior'] ?? null,
'rangka_Karoseri' => $data['rangka_Karoseri'] ?? null,
'ban' => $data['ban'] ?? null,
'velg' => $data['velg'] ?? null,
'air_conditioner' => $data['air_conditioner'] ?? null,
'aksesoris' => $data['aksesoris'] ?? null,
'lcd' => $data['lcd'] ?? null,
'perlengkapan' => $data['perlengkapan'] ?? null,
'asuransi' => $data['asuransi'] ?? null,
'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
'sensor_kamera' => $data['sensor_kamera'] ?? null,
'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
'air_bag' => $data['air_bag'] ?? null,
'faktor_positif' => $data['faktor_positif'] ?? null,
'faktor_negatif' => $data['faktor_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getPesawatData($data): array
private function getPesawatData($data, $request): array
{
return [
'keterangan' => $data['keterangan']
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'bandara' => $data['bandara'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'jenis_pesawat' => $data['jenis_pesawat'] ?? null,
'size' => $data['size'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'nama_pesawat' => $data['nama_pesawat'] ?? null,
'model' => $data['model'] ?? null,
'nomor_registrasi' => $data['nomor_registrasi'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'certificate_of_airworthines' => $data['certificate_of_airworthines'] ?? null,
'certificate_of_registration' => $data['certificate_of_registration'] ?? null,
'total_service_hours' => $data['total_service_hours'] ?? null,
'total_service_cycles' => $data['total_service_cycles'] ?? null,
'last_a_check' => $data['last_a_check'] ?? null,
'next_a_check' => $data['next_a_check'] ?? null,
'last_b_check' => $data['last_b_check'] ?? null,
'next_b_check' => $data['next_b_check'] ?? null,
'last_c_check' => $data['last_c_check'] ?? null,
'next_c_check' => $data['next_c_check'] ?? null,
'next_d_check' => $data['next_d_check'] ?? null,
'last_d_check' => $data['last_d_check'] ?? null,
'deskripsi_maintenence' => $data['deskripsi_maintenence'] ?? null,
'instrument_landing_system' => $data['instrument_landing_system'] ?? null,
'traffic_collision_avoidance_system' => $data['traffic_collision_avoidance_system'] ?? null,
'windshear' => $data['windshear'] ?? null,
'electronic_flight' => $data['electronic_flight'] ?? null,
'winglets' => $data['winglets'] ?? null,
'deskripsi_konfigurasi' => $data['deskripsi_konfigurasi'] ?? null,
'maksimal_penumpang' => $data['maksimal_penumpang'] ?? null,
'jumlah_kursi' => $data['jumlah_kursi'] ?? null,
'kursi_pramugari_pramugara' => $data['kursi_pramugari_pramugara'] ?? null,
'kartu_fitur_keselamatan' => $data['kartu_fitur_keselamatan'] ?? null,
'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
'lampu_kabin' => $data['lampu_kabin'] ?? null,
'lampu_pintu_keluar' => $data['lampu_pintu_keluar'] ?? null,
'intercom_kabin' => $data['intercom_kabin'] ?? null,
'deskripsi_kabin' => $data['deskripsi_kabin'] ?? null,
'badan_pesawat' => $data['badan_pesawat'] ?? null,
'sayap_pesawat' => $data['sayap_pesawat'] ?? null,
'ekor_pesawat' => $data['ekor_pesawat'] ?? null,
'landing_gear' => $data['landing_gear'] ?? null,
'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
'gps' => $data['gps'] ?? null,
'radar' => $data['radar'] ?? null,
'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_autopilot' => $data['sistem_autopilot'] ?? null,
'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
'tangki_bahan_bakar' => $data['tangki_bahan_bakar'] ?? null,
'saluran_pipa_bahan_bakar' => $data['saluran_pipa_bahan_bakar'] ?? null,
'pompa_bahan_bakar' => $data['pompa_bahan_bakar'] ?? null,
'sistem_hidrolik_utama' => $data['sistem_hidrolik_utama'] ?? null,
'sistem_pendigin_hidrolik' => $data['sistem_pendigin_hidrolik'] ?? null,
'deskripsi_hidrolik' => $data['deskripsi_hidrolik'] ?? null,
'mesin_utama' => $data['mesin_utama'] ?? null,
'sistem_pendorong' => $data['sistem_pendorong'] ?? null,
'sistem_pendigin_mesin' => $data['sistem_pendigin_mesin'] ?? null,
'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
'filter_dan_perangkat_pendukung' => $data['filter_dan_perangkat_pendukung'] ?? null,
'deskripsi_kondisi_mesin' => $data['deskripsi_kondisi_mesin'] ?? null,
'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
'pintu_darurat' => $data['pintu_darurat'] ?? null,
'alat_pemadaman_kebakaran' => $data['alat_pemadaman_kebakaran'] ?? null,
'sistem_alaram_darurat' => $data['sistem_alaram_darurat'] ?? null,
'sekoci' => $data['sekoci'] ?? null,
'masker_oxigen' => $data['masker_oxigen'] ?? null,
'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
'deskripsi_fungsi_keselamatan' => $data['deskripsi_fungsi_keselamatan'] ?? null,
'sistem_ventilasi_ac' => $data['sistem_ventilasi_ac'] ?? null,
'sistem_penerangan_kabin' => $data['sistem_penerangan_kabin'] ?? null,
'panel_informasi_penumpang' => $data['panel_informasi_penumpang'] ?? null,
'sistem_hiburan_kabin' => $data['sistem_hiburan_kabin'] ?? null,
'deskripsi_Interior' => $data['deskripsi_Interior'] ?? null,
// Validasi untuk faktor dan kesimpulan
'faktor_positif' => $data['faktor_positif'] ?? null,
'faktor_negatif' => $data['faktor_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getAlatBeratData($data): array
{
return [
'keterangan' => $data['keterangan']
];
}
private function getUnitData($data): array
private function getUnitData($data, $request): array
{
return [
'keterangan' => $data['keterangan']
'action' => $data['action'] ?? null,
'luas_unit' => $data['luas_unit'] ?? null,
'luas_unit_tidak_sesuai' => $data['luas_unit_tidak_sesuai'] ?? null,
'jenis_unit' => $data['jenis_unit'] ?? null,
'kondisi_unit' => $data['kondisi_unit'] ?? null,
'posisi_unit' => $data['posisi_unit'] ?? null,
'lantai' => $data['lantai'] ?? null,
'view' => $data['view'] ?? null,
'bentuk_unit' => $data['bentuk_unit'] ?? null,
];
}

View File

@@ -38,8 +38,8 @@ class FormSurveyorRequest extends FormRequest
'kapal' => $this->getKapalRules(),
'kendaraan' => $this->getKendaraanRules(),
'mesin' => $this->getMesinRules(),
'pesawat' => $this->getLinkunganRules(),
'alat-berat' => $this->getLinkunganRules(),
'pesawat' => $this->getPesawatRules(),
'alat-berat' => $this->getAlatBeratRules(),
'apartemen-kantor' => $this->getUnitRules(),
'lingkungan' => $this->getLinkunganRules(),
'fakta' => $this->getCommonRules(),
@@ -162,8 +162,91 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
'kondisi_kapal' => 'required',
'kondisi_kapal_lain' => 'required',
'nama_wakil_debitur' => 'required',
'hub_calon_debitur' => 'required',
'dermaga' => 'required',
'desa_kelurahan' => 'required',
'kecamatan' => 'required',
'kota_madya' => 'required',
'provinsi' => 'required',
'jenis.*' => 'required',
'size.*' => 'required',
'kondisi.*' => 'required',
'klasifikasi.*' => 'required',
'nama_kapal' => 'required',
'pemilik_kapal' => 'required',
'bendera' => 'required',
'nomor_selar' => 'required',
'kapal' => 'required',
'galangan_kapal' => 'required',
'kapal_shipyard' => 'required',
'tahun_pembuatan' => 'required',
'tahun_launcing' => 'required',
'dwt' => 'required',
'lwt' => 'required',
'gross_tonnage' => 'required',
'net_tonnage' => 'required',
'tenaga_mesin' => 'required',
'loa' => 'required',
'lbp' => 'required',
'beam' => 'required',
'depth' => 'required',
'draft' => 'required',
'lambung_kapal' => 'required',
'dek' => 'required',
'struktur_rangka' => 'required',
'palka' => 'required',
'pondasi_mesin' => 'required',
'area_mesin' => 'required',
'cat_dan_korosi' => 'required',
'sistem_pengelasan' => 'required',
'deskripsi_struktur' => 'required',
'sekoci' => 'required',
'jaket_pelampung' => 'required',
'alat_pemadaman' => 'required',
'rambu_darurat' => 'required',
'sistem_alarm' => 'required',
'sistem_pencegah' => 'required',
'kebakaran' => 'required',
'lampu_darurat' => 'required',
'deskripsi_peralatan' => 'required',
'gps' => 'required',
'radar' => 'required',
'radio_komunikasi' => 'required',
'lampu_navigasi' => 'required',
'sistem_kendali_otomatis' => 'required',
'kompas' => 'required',
'deskripsi_navigasi' => 'required',
'mesin_utama' => 'required',
'mesin_bantu' => 'required',
'pompa_pendingin' => 'required',
'sistem_pelumasan' => 'required',
'propeller' => 'required',
'sistem_kelistrikan' => 'required',
'deskripsi_mesin_penggerak' => 'required',
'lampu_navigasi' => 'required',
'sistem_penerangan' => 'required',
'sistem_panel_distribusi' => 'required',
'kabel_perangkat' => 'required',
'deskripsi_kelistrikan' => 'required',
'kebersihan_dek_luar' => 'required',
'tangki_limbah' => 'required',
'sistem_pengelolaan_limbah' => 'required',
'pengelolaan_air_ballast' => 'required',
'deskripsi_kebersihan' => 'required',
'fakta_positif.*' => 'nullable',
'fakta_negatif.*' => 'nullable',
'analisa_makro.*' => 'nullable',
'kesimpulan.*' => 'nullable',
'catatan.*' => 'nullable',
];
}
@@ -171,8 +254,56 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
'kondisi_kendaraan' => 'required',
'kondisi_kendaraan_lain' => 'required',
'tanggal_survey' => 'required',
'nama_wakil' => 'required',
'hub_calon_debitur' => 'required',
'nama_jalan' => 'required',
'perumahan_gang' => 'required',
'blok_nomor' => 'required',
'desa_kelurahan' => 'required',
'kecamatan' => 'required',
'kota_madya' => 'required',
'provinsi' => 'required',
'kondisi' => 'required',
'nomor_polisi' => 'required',
'nomor_polis_tidak_sesuai' => 'nullable',
'merek' => 'required',
'merek_tidak_sesuai' => 'nullable',
'warna' => 'required',
'warna_tidak_sesuai' => 'nullable',
'nomor_rangka' => 'required',
'nomor_rangka_tidak_sesuai' => 'nullable',
'nomor_mesin' => 'required',
'nomor_mesin_tidak_sesuai' => 'nullable',
'posisi_kilometer' => 'required',
'transmisi' => 'required',
'mesin_panel_instrument.*' => 'required',
'fungsi_mesin_panel_instrument.*' => 'required',
'interior.*' => 'required',
'jumlah_pintu.*' => 'required',
'rangka_karoseri.*' => 'required',
'ban.*' => 'required',
'velg.*' => 'required',
'bamper_depan.*' => 'required',
'bamper_belakang.*' => 'required',
'lampu_depan.*' => 'required',
'lampu_belakang.*' => 'required',
'kaca_kendaraan.*' => 'required',
'air_conditioner.*' => 'required',
'tape_radio_cd.*' => 'required',
'sensor_parkir.*' => 'required',
'sensor_camera_recorder.*' => 'required',
'lcd.*' => 'required',
'sabuk_keselamatan.*' => 'required',
'airbag.*' => 'required',
'asuransi.*' => 'required',
'perusahaan_asuransi' => 'required',
'tahun_berakhir' => 'required',
'fakta_positif.*' => 'nullable',
'fakta_negatif.*' => 'nullable',
'analisa_makro.*' => 'nullable',
'kesimpulan.*' => 'nullable',
'catatan.*' => 'nullable',
];
}
@@ -181,8 +312,24 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
'nama_wakil' => 'required',
'nama_jalan' => 'required',
'perumahan_gang' => 'required',
'blok' => 'required',
'desa_kelurahan' => 'required',
'kecamatan' => 'required',
'kota_madya' => 'required',
'provinsi' => 'required',
'hub_calon_debitur' => 'required',
'tipe_model' => 'required',
'merek' => 'required',
'tahun_pembuatan' => 'required',
'negara_pembuat' => 'required',
'kondisi_mesin' => 'required',
'kondisi_mesin_lain' => 'required',
'faktor_positif' => 'nullable',
'faktor_negatif' => 'nullable',
'kesimpulan' => 'nullable',
'catatan' => 'nullable',
];
}
@@ -191,12 +338,173 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
'kondisi_alat_berat' => 'required',
'kondisi_alat_berat_lain' => 'required',
'tanggal_survey' => 'required',
'nama_wakil' => 'required',
'hub_calon_debitur' => 'required',
'dengan_wadeb' => 'required',
'nama_jalan' => 'required',
'perumahan_gang' => 'required',
'blok' => 'required',
'desa_kelurahan' => 'required',
'kecamatan' => 'required',
'kota_madya' => 'required',
'provinsi' => 'required',
'jenis_model' => 'required',
'nomor_lambung' => 'required',
'model_unit' => 'required',
'tahun_pembuatan' => 'required',
'merk' => 'required',
'negara_pembuat' => 'required',
'tahun_pembelian' => 'required',
'nomor_faktur' => 'nullable',
'nomor_kontrak' => 'nullable',
'nama_pemilik' => 'nullable',
'alamat_pemilik' => 'nullable',
'nomor_asuransi' => 'nullable',
'nomor_rangka' => 'nullable',
'nomor_mesin' => 'nullable',
'hour_mesters' => 'nullable',
'overhaul_mesin' => 'nullable',
'mesin_panel.*' => 'nullable',
'fungsi_panel.*' => 'nullable',
'interior.*' => 'nullable',
'rangka_Karoseri.*' => 'nullable',
'ban.*' => 'nullable',
'velg.*' => 'nullable',
'air_conditioner.*' => 'nullable',
'aksesoris.*' => 'nullable',
'lcd.*' => 'nullable',
'perlengkapan.*' => 'nullable',
'asuransi.*' => 'nullable',
'perusahaan_asuransi.*' => 'nullable',
'tahun_berakhir.*' => 'nullable',
'sensor_kamera.*' => 'nullable',
'lcd.*' => 'nullable',
'sabuk_keselamatan.*' => 'nullable',
'air_bag.*' => 'nullable',
'asuransi.*' => 'nullable',
'perusahan_asuransi' => 'nullable',
'tahun_berakhir' => 'nullable',
'faktor_positif' => 'nullable',
'faktor_negatif' => 'nullable',
'kesimpulan' => 'nullable',
'catatan' => 'nullable',
];
}
private function getPesawatRules(): array
{
return [
'action' => 'required',
'tanggal_survey' => 'required',
'nama_wakil' => 'required',
'hub_calon_debitur' => 'required',
'bandara' => 'required',
'desa_kelurahan' => 'required',
'kecamatan' => 'required',
'kota_madya' => 'required',
'provinsi' => 'required',
'jenis_pesawat' => 'required',
'size' => 'required',
'kondisi' => 'required',
'nama_pesawat' => 'required',
'model' => 'required',
'nomor_registrasi' => 'required',
'tahun_pembuatan' => 'required',
'certificate_of_airworthines' => 'required',
'certificate_of_registration' => 'required',
'total_service_hours' => 'required',
'total_service_cycles' => 'required',
'last_a_check' => 'required',
'next_a_check' => 'required',
'last_b_check' => 'required',
'next_b_check' => 'required',
'last_c_check' => 'required',
'next_c_check' => 'required',
'next_d_check' => 'required',
'last_d_check' => 'required',
'deskripsi_maintenence' => 'nullable',
'instrument_landing_system' => 'required',
'traffic_collision_avoidance_system' => 'required',
'windshear' => 'required',
'electronic_flight' => 'required',
'winglets' => 'required',
'deskripsi_konfigurasi' => 'required',
'maksimal_penumpang' => 'required',
'jumlah_kursi' => 'required',
'kursi_pramugari_pramugara' => 'required',
'kartu_fitur_keselamatan' => 'required',
'sabuk_pengaman' => 'required',
'lampu_kabin' => 'required',
'lampu_pintu_keluar' => 'required',
'intercom_kabin' => 'required',
'deskripsi_kabin' => 'required',
'badan_pesawat' => 'required',
'sayap_pesawat' => 'required',
'ekor_pesawat' => 'required',
'landing_gear' => 'required',
'sabuk_pengaman' => 'required',
'sistem_pengelasan' => 'required',
'deskripsi_struktur' => 'required',
'gps' => 'required',
'radar' => 'required',
'radio_komunikasi' => 'required',
'lampu_navigasi' => 'required',
'sistem_autopilot' => 'required',
'deskripsi_navigasi' => 'required',
'tangki_bahan_bakar' => 'required',
'saluran_pipa_bahan_bakar' => 'required',
'pompa_bahan_bakar' => 'required',
'sistem_hidrolik_utama' => 'required',
'sistem_pendigin_hidrolik' => 'required',
'deskripsi_hidrolik' => 'required',
'mesin_utama' => 'required',
'sistem_pendorong' => 'required',
'sistem_pendigin_mesin' => 'required',
'sistem_pelumasan' => 'required',
'filter_dan_perangkat_pendukung' => 'required',
'deskripsi_kondisi_mesin' => 'required',
'jaket_pelampung' => 'required',
'pintu_darurat' => 'required',
'alat_pemadaman_kebakaran' => 'required',
'sistem_alaram_darurat' => 'required',
'sekoci' => 'required',
'masker_oxigen' => 'required',
'sabuk_pengaman' => 'required',
'deskripsi_fungsi_keselamatan' => 'required',
'sistem_ventilasi_ac' => 'required',
'sistem_penerangan_kabin' => 'required',
'panel_informasi_penumpang' => 'required',
'sistem_hiburan_kabin' => 'required',
'deskripsi_Interior' => 'required',
'faktor_positif.*' => 'nullable',
'faktor_negatif.*' => 'nullable',
'kesimpulan.*' => 'nullable',
'catatan.*' => 'nullable',
];
}
private function getAssetDescriptionRules(): array
{
return [

View File

@@ -75,7 +75,7 @@
name="form_kategori[]" multiple="multiple">
<option value="">Pilih Form</option>
@foreach (['tanah', 'bangunan', 'kapal', 'kendaraan', 'mesin', 'pesawat', 'alat-berat', 'apartemen-kantor','lingkungan', 'fakta'] as $item)
@foreach (['tanah', 'bangunan', 'kapal', 'kendaraan', 'mesin', 'pesawat', 'alat-berat', 'apartemen-kantor','lingkungan', 'fakta','informasi'] as $item)
<option value="{{ $item }}"
@if (isset($jenisJaminan->form_kategori) && in_array($item, json_decode($jenisJaminan->form_kategori, true))) {{ 'selected' }} @endif>
{{ $item }}

View File

@@ -368,7 +368,7 @@
<div class="modal-footer justify-end mt-2">
<div class="flex gap-4">
<button type="button" class="btn btn-light" data-modal-dismiss="true">Cancel</button>
<button id="btnSubmit" type="submit" class="btn btn-primary">Submit</button>
<button id="btnSubmit" type="submit" class="btn btn-primary" data-modal-dismiss="true">Submit</button>
</div>
</div>
</form>

View File

@@ -1,30 +1,96 @@
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
</div>
<div class="grid gap-5 grid-cols-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tujuan Penilaian</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->tujuanPenilaian))
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-base line w-full">
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
@endif
</div>
</div>
</div>
</div>
</div>
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture->name))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Wakil Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="nama_wakil" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="hub_calon_debitur" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
{{-- lokasi jaminan --}}
@include('lpj::surveyor.components.lokasi-jaminan')
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
</div>
@@ -32,43 +98,103 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Model</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
name="hadapMataAngin">
<select
class="input tomselect w-full @error('model_unit') border-danger bg-danger-light @enderror"
name="jenis_model">
<option value="">Select Model Kendaraan </option>
@if (isset($arahMataAngin))
@foreach ($arahMataAngin as $item)
<option value="{{ $item->name }}"
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
{{ old('') == $item->name ? 'selected' : '' }}>{{ $item->name }}
</option>
@endforeach
@endif
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-jenis_model" class="alert text-danger text-sm"></em>
</div>
</div>
@php
$inputDataJaminan = [];
$inputDataJaminan = [
['label' => 'Nomor Lambung', 'index' => 0],
['label' => 'Model Unit', 'index' => 1],
['label' => 'Tahun Pembuatan', 'index' => 2],
['label' => 'Merk', 'index' => 3],
['label' => 'Negara Pembuat', 'index' => 4],
['label' => 'Tahun Pembelian', 'index' => 5],
['label' => 'Nomor Faktur/Invoice', 'index' => 6],
['label' => 'Nomor Kontrak Pembelian', 'index' => 7],
['label' => 'Nama Pemilik', 'index' => 8],
['label' => 'Alamaat Pemilik', 'index' => 9],
['label' => 'Nomor Asuransi', 'index' => 10],
['label' => 'Nomor Rangka', 'index' => 11],
['label' => 'Nomor Mesin', 'index' => 12],
['label' => 'Hour Mesin', 'index' => 13],
['label' => 'Overhaul Mesin', 'index' => 14],
[
'label' => 'Nomor Lambung',
'name' => 'nomor_lambung',
'index' => 0,
],
[
'label' => 'Model Unit',
'name' => 'model_unit',
'index' => 1,
],
[
'label' => 'Tahun Pembuatan',
'name' => 'tahun_pembuatan',
'index' => 2,
],
[
'label' => 'Merk',
'name' => 'merk',
'index' => 3,
],
[
'label' => 'Negara Pembuat',
'name' => 'negara_pembuat',
'index' => 4,
],
[
'label' => 'Tahun Pembelian',
'name' => 'tahun_pembelian',
'index' => 5,
],
[
'label' => 'Nomor Faktur/Invoice',
'name' => 'nomor_faktur',
'index' => 6,
],
[
'label' => 'Nomor Kontrak Pembelian',
'name' => 'nomor_kontrak',
'index' => 7,
],
[
'label' => 'Nama Pemilik',
'name' => 'nama_pemilik',
'index' => 8,
],
[
'label' => 'Alamaat Pemilik',
'name' => 'alamat_pemilik',
'index' => 9,
],
[
'label' => 'Nomor Asuransi',
'name' => 'nomor_asuransi',
'index' => 10,
],
[
'label' => 'Nomor Rangka',
'name' => 'nomor_rangka',
'index' => 11,
],
[
'label' => 'Nomor Mesin',
'name' => 'nomor_mesin',
'index' => 12,
],
[
'label' => 'Hour Meters',
'name' => 'hour_mesters',
'index' => 13,
],
[
'label' => 'Overhaul Mesin',
'name' => 'overhaul_mesin',
'index' => 14,
],
];
@endphp
@@ -79,62 +205,97 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@endif
</div>
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Kondisi Objek Jaminan</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Model</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
name="hadapMataAngin">
<option value="">Select Model Kendaraan </option>
@if (isset($arahMataAngin))
@foreach ($arahMataAngin as $item)
<option value="{{ $item->name }}"
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
</option>
@endforeach
@endif
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
@php
$kondisiObjeck = [];
$kondisiObjeck = [
['label' => 'Mesin dan Panel Instrument', 'index' => 0],
['label' => 'Fungsi mesin dan panel instrument', 'index' => 1],
['label' => 'Interior (jok, dll)', 'index' => 2],
['label' => 'Rangka dan Karoseri', 'index' => 3],
['label' => 'Ban', 'index' => 4],
['label' => 'Velg', 'index' => 5],
['label' => 'Air Conditioner', 'index' => 6],
['label' => 'Aksesoris Tambahan lainnya', 'index' => 7],
['label' => 'LCD', 'index' => 8],
['label' => 'Perlengkapan Keamanan', 'index' => 9],
['label' => 'Asuransi', 'index' => 10],
[
'label' => 'Mesin dan Panel Instrument',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'mesin_panel',
'index' => 0,
],
[
'label' => 'Fungsi mesin dan panel instrument',
'value' => ['Berfungsi', 'Rusak'],
'name' => 'fungsi_panel',
'index' => 1,
],
[
'label' => 'Interior (jok, dll)',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'interior',
'index' => 2,
],
[
'label' => 'Rangka dan Karoseri',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'rangka_Karoseri',
'index' => 3,
],
[
'label' => 'Ban',
'value' => ['Standard', 'Tidak Standard'],
'name' => 'ban',
'index' => 4,
],
[
'label' => 'Velg',
'value' => ['Standard', 'Tidak Standard'],
'name' => 'velg',
'index' => 5,
],
[
'label' => 'Air Conditioner',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'air_conditioner',
'index' => 6,
],
[
'label' => 'Aksesoris Tambahan lainnya',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'aksesoris',
'index' => 7,
],
[
'label' => 'LCD',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'lcd',
'index' => 8,
],
[
'label' => 'Perlengkapan Keamanan',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'perlengkapan',
'index' => 9,
],
[
'label' => 'Asuransi',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'asuransi',
'index' => 10,
],
];
@endphp
@@ -145,15 +306,120 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-col items-start gap-4">
@if (isset($item['value']))
@foreach ($item['value'] as $value)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="{{ $item['name'] }}[]" type="checkbox"
value="{{ $value }}"
{{ in_array($value, old($item['name'], $forminspeksi[$item['name']] ?? [])) ? 'checked' : '' }} />
{{ $value }}
</label>
<input type="text" name="{{ $item['name'] }}_input[]"
class="input w-full"
id="bentukTanahInput-{{ $loop->parent->index }}-{{ $loop->index }}"
placeholder="Masukkan {{ $value }}..."
value="{{ old($item['name'] . '_input.' . $loop->index, $forminspeksi[$item['name'] . '_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
</div>
<div class="w-full">
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
<em id="error-{{ $item['name'] }}-input-{{ $loop->index }}"
class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Perusahaan Asuransi</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="perusahaan_asuransi" class="input"
placeholder="Pesurahaan Asuransi">
<em class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tahun Berakhir</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tahun_berakhir" class="input" placeholder="Tahun berakhir">
<em class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-white rounded-lg overflow-hidden">
<div class="card-body">
<div class=" py-4 ">
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Catatan Yang Perlu Diperhatikan</label>
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-catatan" class="alert text-danger text-sm"></em>
</div>
<button type="button"
onclick="addClonableItem('catatan-container', 'catatan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@@ -116,8 +116,6 @@
</div>
<!-- Spek Bangunan -->
<div class="gap-2.5">
<div class="flex items-stretch flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Spek Bangunan</label>
@@ -145,7 +143,6 @@
@endif
@endforeach
</div>
<em id="error-spek_bangunan_{{ $item->name }}"
class="alert text-danger text-sm"></em>
</div>
@@ -154,13 +151,13 @@
@endif
</div>
<button type="button"
class="mt-2 btn btn-danger btn-outline btn-xs delete-button">Hapus</button>
class="mt-2 btn btn-danger btn-outline btn-xs remove-btn" style="display: none;">Hapus</button>
</div>
</div>
</div>
<div class="flex justify-end">
<button class="btn btn-xs btn-primary" type="button" id="addBagunan">
<button class="btn btn-xs btn-primary" type="button" onclick="addClonableItem('spek-bangunan-container', 'spek-bangunan')">
tambah bangunan
<i class="ki-filled ki-plus"></i>
</button>

View File

@@ -9,6 +9,10 @@
@elseif(request()->has('form') && request('form') === 'inspeksi')
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg"
href="{{ route('surveyor.inspeksi', ['id' => $permohonan->id, 'jaminanId' => $dokumen->jenisJaminan->id]) }}?form=create-inspeksi&inspeksi={{ $permohonan->id }}&jenis_jaminan={{ $dokumen->jenisJaminan->id }}">
@elseif(request()->has('form') && request('form') === 'data-pembanding')
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg"
href="{{ route('surveyor.data-pembanding', ['id' => $permohonan->id, 'jaminanId' => $dokumen->jenisJaminan->id]) }}?form=data-pembanding&pembanding={{ $permohonan->id }}&jenis_jaminan={{ $dokumen->jenisJaminan->id }}">
@endif
<div class="card-body grid items-center">

View File

@@ -1,30 +1,230 @@
@extends('layouts.main')
<div class="grid">
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="data-table" data-api-url="">
<div class="card-header py-5 flex-wrap">
{{-- @section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection --}}
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card min-w-full">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Form Inspeksi
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('surveyor.show', ['id' => request('pembanding')]) }}?form=data-pembanding"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
</div>
</div>
</div>
</div>
<div class="grid gap-5">
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
data-datatable-state-save="false" id="data-table" data-api-url="">
<div class="card">
<div class="card-header py-5 flex-wrap flex justify-end">
<button id="addColumnBtn" class="btn btn-primary btn-sm">
<i class="ki-filled ki-plus"></i> Tambah Kolom
</button>
<button id="removeColumnBtn" class="btn btn-danger btn-sm ml-2" style="display: none;">
<i class="ki-filled ki-minus"></i> Hapus Kolom
</button>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<table id="dataTable"
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
data-datatable-table="true">
<thead>
<tr>
<th class="min-w-[250px]" data-datatable-column="code">
<th class="min-w-[250px]" data-datatable-column="code" style="min-width: 350px">
<span class="sort"> <span class="sort-label"> Nama </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Data Pembanding </span>
<th class="min-w-[250px]" data-datatable-column="name" style="min-width: 350px">
<span class="sort"> <span class="sort-label"> Objek Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Data Pembading 2</th>
<th class="min-w-[50px]" data-datatable-column="actions"
style="min-width: 350px"id="dataPembanding2Header">
Data Pembanding 1
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
Foto
</td>
<td>
<img src="" class="img-responsive" alt="Gambar Pendamping" style="width: 10rem; height: 10rem; display: none;" id="uploadedImage1">
<input type="file" class="file-input" placeholder="" onchange="previewImage(event, 'uploadedImage1')" />
</td>
<td class="text-center">
<img src="" class="img-responsive" alt="Gambar Pendamping" style="width: 10rem; height: 10rem; display: none;" id="uploadedImage2">
<input type="file" class="file-input" placeholder="" onchange="previewImage(event, 'uploadedImage2')" />
</td>
</tr>
<tr>
<td>
Alamat
</td>
<td>
<input type="text" class="input" placeholder="Objek Penilaian" />
</td>
<td class="text-center">
<input type="text" class="input" placeholder="Data Pembanding 1" />
</td>
</tr>
<tr>
<td>
Tahun Penilaian
</td>
<td>
<input type="text" class="input" placeholder="Objek Penilaian" />
</td>
<td class="text-center">
<input type="text" class="input" placeholder="Data Pembanding 1" />
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
data-datatable-state-save="false" id="data-table" data-api-url="">
<div class="card">
<div class="card-header py-5 flex-wrap ">
<h1>Informasi khusus</h1>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table id="dataTable"
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
data-datatable-table="true">
<thead>
<tr>
<th class="min-w-[250px]" data-datatable-column="code" style="min-width: 350px">
<span class="sort"> <span class="sort-label"> Nama </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name" style="min-width: 350px">
<span class="sort"> <span class="sort-label"> Objek Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="actions"
style="min-width: 350px"id="dataPembanding2Header">
Data Pembanding 1
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script>
let columnCount = 1;
document.getElementById('addColumnBtn').addEventListener('click', function() {
columnCount++;
const newHeader = document.createElement('th');
newHeader.className = 'min-w-[350px] text-center';
newHeader.style = 'min-width: 350px';
newHeader.innerHTML = `Data Pembanding ${columnCount}`;
document.querySelector('#dataTable thead tr').appendChild(newHeader);
// Tampilkan tombol hapus kolom
document.getElementById('removeColumnBtn').style.display = 'inline-block';
// Tambahkan sel baru ke setiap baris di tbody
const rows = document.querySelectorAll('#dataTable tbody tr');
rows.forEach((row, index) => {
const newCell = document.createElement('td');
newCell.className = 'text-center';
// Hanya baris pertama yang memiliki input file
if (index === 0) {
// Buat elemen gambar dan input file untuk baris pertama
const imgElement = document.createElement('img');
imgElement.src = '';
imgElement.className = 'img-responsive';
imgElement.alt = 'Gambar Pendamping';
imgElement.style.width = '10rem';
imgElement.style.height = '10rem';
imgElement.style.display = 'none';
imgElement.id = `uploadedImage${columnCount}-${index + 1}`; // ID unik untuk setiap gambar
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.className = 'file-input';
fileInput.placeholder = '';
fileInput.onchange = function(event) {
previewImage(event, imgElement.id);
};
// Tambahkan elemen gambar dan input file ke sel baru
newCell.appendChild(imgElement);
newCell.appendChild(fileInput);
} else {
// Untuk baris lainnya, hanya tambahkan input teks
const textInput = document.createElement('input');
textInput.type = 'text';
textInput.className = 'input';
textInput.placeholder = `Data Pembanding ${columnCount}`;
newCell.appendChild(textInput);
}
// Tambahkan sel baru ke baris
row.appendChild(newCell);
});
});
document.getElementById('removeColumnBtn').addEventListener('click', function() {
if (columnCount > 1) { // Pastikan ada kolom yang bisa dihapus
columnCount--; // Decrement jumlah kolom
const headers = document.querySelectorAll('#dataTable thead tr th');
headers[headers.length - 1].remove();
const rows = document.querySelectorAll('#dataTable tbody tr');
rows.forEach(row => {
const cells = row.querySelectorAll('td');
cells[cells.length - 1].remove();
});
if (columnCount === 1) {
document.getElementById('removeColumnBtn').style.display = 'none';
}
}
});
function previewImage(event, imgElementId) {
const file = event.target.files[0];
const imgElement = document.getElementById(imgElementId);
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
imgElement.src = e.target.result;
imgElement.style.display = 'block';
}
reader.readAsDataURL(file);
}
}
</script>
</div>
@endsection

View File

@@ -139,16 +139,18 @@
<span class="form-label">Upload Denah</span>
</label>
<div class="w-full grid gap-5">
<img id="foto_denah"
<img id="foto_denah-preview"
src="{{ isset($formFoto['foto_denah']) ? asset('storage/' . old('foto_denah', $formFoto['foto_denah'])) : '#' }}"
alt="Gambar foto_denah" style="width: 30rem;">
alt="Gambar foto_denah" style="{{ isset($formFoto['foto_denah']) ? 'width: 30rem;' : 'display: none;' }}">
<div class="input-group w-full flex gap-2">
<input type="file"
value="{{ old('foto_denah', isset($formDenah['foto_denah']) ? $formDenah['foto_denah'] : '') }}"
name="foto_denah" class="file-input file-input-bordered w-full "
accept="image/*">
accept="image/*"
onchange="previewImage(this, 'foto_denah-preview')"
>
</div>
</div>
</div>
@@ -196,6 +198,18 @@
@push('scripts')
<script>
function previewImage(input, previewId) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#' + previewId).attr('src', e.target.result).show();
}
reader.readAsDataURL(input.files[0]);
} else {
$('#' + previewId).hide();
}
}
function submitDenah() {
const formElement = $('#formDenah')[0];

View File

@@ -7,26 +7,37 @@
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Positif</label>
<div class="flex flex-wrap items-baseline w-full">
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm">
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Negatif</label>
<div class="flex flex-wrap items-baseline w-full">
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
</div>
<button class="btn btn-primary btn-sm">
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -41,37 +52,19 @@
<label class="form-label max-w-56">Batas batas</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-1 gap-4 items-center w-full">
@php
$inputBatas = [];
$inputBatas = [
[
'label' => 'Utara',
'index' => 0,
'value' => old('batas_batas.0', $forminspeksi['batas_batas'][0] ?? ''),
],
[
'label' => 'Timur',
'index' => 1,
'value' => $forminspeksi['batas_batas'][1] ?? '',
],
[
'label' => 'Selatan',
'index' => 2,
'value' => $forminspeksi['batas_batas'][2] ?? '',
],
[
'label' => 'Barat',
'index' => 3,
'value' => $forminspeksi['batas_batas'][3] ?? '',
],
];
@endphp
@if ($inputBatas > 0)
@foreach ($inputBatas as $item)
@if (isset($arahMataAngin))
@foreach ($arahMataAngin as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<input type="text" name="batas_batas[]" class="input"
value="{{ $item['value'] }}" />
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="batas_batas[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('batas_batas', $forminspeksi['batas_batas'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }}
</label>
<input type="text" name="batas_batas_input[]" class="input w-full"
id="bentukTanahInput" placeholder="Masukkan Batas {{ $item->name }}..."
value="{{ old('batas_batas_input.' . $loop->index, $forminspeksi['batas_batas_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
@@ -83,270 +76,65 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Kondisi lain terkait lingkungan</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea mt-2" name="kondisi_lingkungan[]" rows="3">{{ old('kondisi_lingkungan.0', $forminspeksi['kondisi_lingkungan'][0] ?? '') }}</textarea>
<div class="flex flex-wrap items-baseline w-full" id="kondisi-lingkungan-container">
<div class="kondisi_lingkungan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="kondisi_lingkungan[]" rows="3" placeholder="Tambahkan keterangan"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-kondisi_lingkungan" class="alert text-danger text-sm"></em>
</div>
<button class="btn btn-primary btn-sm mt-5 ">
<button class="btn btn-primary btn-sm mt-5" type="button"
onclick="addClonableItem('kondisi-lingkungan-container', 'kondisi_lingkungan')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Kondisi lain terkait Bangunan</label>
<div class="flex flex-wrap items-baseline w-full">
<div id="kondisi-lain-bangunan-container" class="flex flex-wrap items-baseline w-full">
<div class="kondisi_lain_bangunan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="kondisi_lain_bangunan[]" rows="3">{{ old('kondisi_lain_bangunan.0', $forminspeksi['kondisi_lain_bangunan'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-kondisi_lain_bangunan" class="alert text-danger text-sm"></em>
</div>
<button class="btn btn-primary btn-sm mt-5 ">
<button type="button"
onclick="addClonableItem('kondisi-lain-bangunan-container', 'kondisi_lain_bangunan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Informasi Terkait Dokumen</label>
<div class="flex flex-wrap items-baseline w-full">
<div id="informasi-dokument-container" class="flex flex-wrap items-baseline w-full">
<div class="informasi_dokument flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="informasi_dokument" rows="3">{{ old('informasi_dokument.0', $forminspeksi['informasi_dokument'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-informasi_dokument" class="alert text-danger text-sm"></em>
</div>
<button class="btn btn-primary btn-sm mt-5 ">
<button class="btn btn-primary btn-sm mt-5 " type="button"
onclick="addClonableItem('informasi-dokument-container', 'informasi_dokument')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Informasi Tata Ruang -->
<div class="card w-full bg-white">
<div class="card-body">
<div class="py-4">
<h1 class="text-md font-medium text-gray-900">Informasi Dinas Tata Ruang</h1>
</div>
<!-- Informasi Tata Ruang Form -->
<div class="grid gap-5">
@php
$inputDinasTata = [
[
'label' => 'Peruntukan',
'name' => 'peruntukan',
'index' => 0,
'value' => old(
'peruntukan',
isset($forminspeksi['peruntukan']) ? $forminspeksi['peruntukan'] : '',
),
],
[
'label' => 'KDB',
'name' => 'kdb',
'index' => 1,
'value' => old('kdb', isset($forminspeksi['kdb']) ? $forminspeksi['kdb'] : ''),
],
[
'label' => 'KDH',
'name' => 'kdh',
'index' => 2,
'value' => old('kdh', isset($forminspeksi['kdh']) ? $forminspeksi['kdh'] : ''),
],
[
'label' => 'gsb',
'name' => 'gsb',
'index' => 3,
'value' => old('gsb', isset($forminspeksi['gsb']) ? $forminspeksi['gsb'] : ''),
],
[
'label' => 'Max Lantai',
'name' => 'max_lantai',
'index' => 4,
'value' => old(
'max_lantai',
isset($forminspeksi['max_lantai']) ? $forminspeksi['max_lantai'] : '',
),
],
[
'label' => 'KLB',
'name' => 'klb',
'index' => 5,
'value' => old('klb', isset($forminspeksi['klb']) ? $forminspeksi['klb'] : ''),
],
[
'label' => 'GSS',
'name' => 'gss',
'index' => 6,
'value' => old('gss', isset($forminspeksi['gss']) ? $forminspeksi['gss'] : ''),
],
[
'label' => 'Pelebaran Jalan',
'name' => 'pelebaran_jalan',
'index' => 7,
'value' => old(
'pelebaran_jalan',
isset($forminspeksi['pelebaran_jalan']) ? $forminspeksi['pelebaran_jalan'] : '',
),
],
[
'label' => 'Nama Petugas TK',
'name' => 'nama_petugas',
'index' => 8,
'value' => old(
'nama_petugas',
isset($forminspeksi['nama_petugas']) ? $forminspeksi['nama_petugas'] : '',
),
],
];
@endphp
@if (count($inputDinasTata) > 0)
@foreach ($inputDinasTata as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
@error($item['name'])
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">Gistaru</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputGistaru" type="file" name="foto_gistaru"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'gistaru-preview')">
<img id="gistaru-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
alt="Foto Gistaru" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }}">
</div>
<a href="https://gistaru.atrbpn.go.id/rtronline" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i> Gistaru
</a>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">Bhumi</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputBhumi" type="file" name="foto_bhumi"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'bhumi-preview')">
<img id="bhumi-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_bhumi']) ? '' : 'display: none;' }}">
</div>
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i> Bhumi
</a>
</div>
</div>
@if (isset($link_url_region->regions->url))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">{{ $link_url_region->regions->name_url }}</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputArgisRegion" type="file" name="foto_argis_region"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'argis-region-preview')">
<img id="argis-region-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }}">
</div>
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i>
{{ $link_url_region->regions->name_url }}
</a>
</div>
</div>
@endif
</div>
<!-- Peta Section -->
<div class="mt-2" style="margin-top: 20px">
<input type="hidden" name="lat" id="lat"
value="{{ old('lat', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lat : '') }}">
<input type="hidden" name="lng" id="lng"
value="{{ old('lng', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lng : '') }}">
<div class=" border p-6 rounded-lg shadow-lg flex items-center justify-center"
style="height: 300px">
<iframe id="mapFrame" frameborder="0" style="width: 100%; height: 100%;"></iframe>
</div>
</div>
<!-- Upload Photo Button -->
<div class=" flex w-full mt-2" style="margin-top: 20px">
<div class="flex flex-col input-group w-full">
<label for="" class="block text-sm font-medium text-gray-700">Upload Photo</label>
<div class="w-full">
<input id="foto_tempat" type="file" name="foto_tempat"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'argis-region-preview')">
<img id="argis-region-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'] : '')) }}"
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }}">
</div>
</div>
</div>
<!-- Notes Section -->
<div class="mt-2" style="margin-top: 20px">
<div class="bg-white p-6 rounded-lg">
<h4 class="block text-sm font-medium text-gray-700 mt-2">Catatan yang Perlu Diperhatikan
</h4>
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['keterangan'] ?? '') }}</textarea>
</div>
</div>
</div>
</div>
<script>
function previewImage(input, previewId) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#' + previewId).attr('src', e.target.result).show();
}
reader.readAsDataURL(input.files[0]);
} else {
$('#' + previewId).hide();
}
}
</script>

View File

@@ -80,17 +80,12 @@
</div>
{{-- <div class="card">
<div class="card-body"> --}}
<form id="formFoto" method="POST" class="grid gap-5" enctype="multipart/form-data">
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
<div class="card bg-white rounded-lg shadow-md">
<div class="card-body">
<div class=" text-white py-4 px-6 flex items-center justify-between">
@@ -109,18 +104,18 @@
<span class="form-label">Foto Rute Menuju Lokasi</span>
</label>
<div class="input-group w-full flex flex-col gap-2">
<div class="preview-container">
<img id="foto_rute-preview-{{ $index }}"
src="{{ asset('storage/' . $photo['foto_rute']) }}"
alt="Foto Rute {{ $index }}" class="mt-2 h-auto"
style="display: block; width: 30rem;">
</div>
<div class="input-group w-full gap-2">
<input class="name_rute" type="hidden" name="name_rute[]"
value="rute_{{ $index }}">
<input id="inputRute-{{ $index }}" type="file" name="foto_rute[]"
class="file-input file-input-bordered w-full" accept="image/*"
capture="camera"
onchange="previewImage(this, 'foto_rute-preview-{{ $index }}')">
capture="camera" onchange="previewImage(this, 'foto_rute-preview')">
<button type="button" id="btnCamera-{{ $index }}" class="btn btn-light"
@@ -137,7 +132,6 @@
</button>
</div>
@endforeach
</div>
@else
<div id="inputContainerRute" style="margin-top: 10px">
<div class="flex w-full items-center justify-center gap-4 mb-4">
@@ -146,14 +140,15 @@
</label>
<div class="input-group w-full flex flex-col gap-2">
<div class="preview-container">
<img id="foto_rute-preview" src="" alt="Foto Rute" class="mt-2 h-auto"
style="display: none; width: 30rem;">
</div>
<div class="input-group w-full gap-2">
<input class="name_rute" type="hidden" name="name_rute[]" value="rute">
<input id="inputRute" type="file" name="foto_rute[]"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
onchange="previewImage(this, 'foto_rute-preview')">
class="file-input file-input-bordered w-full" accept="image/*"
capture="camera" onchange="previewImage(this, 'foto_rute-preview')">
<button type="button" id="btnCamera" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
@@ -167,18 +162,19 @@
</div>
<span class="alert text-danger text-sm"></span>
</div>
@endif
<div id="inputContainerRute" style="margin-top: 10px">
<div id="inputContainerGerbang" style="margin-top: 10px">
<div class="flex w-full items-center justify-center gap-4 mb-4">
<label class="form-label max-w-56">
<span class="form-label">Foto Gerbang & Nama Perumahan</span>
</label>
<div class="input-group w-full flex flex-col gap-2">
<input class="name_gerbang" type="hidden" name="name_gerbang" value="rute">
<input class="name_gerbang" type="hidden" name="name_gerbang" value="gerbang">
<img id="foto_gerbang-preview"
src="{{ isset($formFoto['gerbang']) ? asset('storage/' . $formFoto['gerbang']) : '' }}"
src="{{ isset($formFoto['foto_gerbang']) ? asset('storage/' . $formFoto['foto_gerbang']) : '' }}"
alt="Foto Gerbong" class="mt-2 max-w-full h-auto"
style="{{ isset($formFoto['gerbang']) ? '' : 'display: none;' }} width: 30rem;">
style="{{ isset($formFoto['foto_gerbang']) ? '' : 'display: none;' }} width: 30rem;">
<div class="input-group w-full flex gap-2">
<input id="inputRute" type="file" name="foto_gerbang"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
@@ -192,16 +188,51 @@
</div>
<span class="alert text-danger text-sm"></span>
</div>
<div id="ruteLainnya" style="margin-top: 10px">
@if (isset($formFoto['foto_rute_lainnya']) && is_array($formFoto['foto_rute_lainnya']))
@foreach ($formFoto['foto_rute_lainnya'] as $Index => $photo)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5" id="photoContainer">
<label class="form-label max-w-56">
Masukkan nama rute lainnya
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline px-2">
<input class="input" type="text" name="name_rute_lainnya[]" value="{{$photo['name_rute_lainnya']}}">
</div>
<button type="button" class="btn btn-primary btn-sm" id="btnAddMore" style="margin-top: 10px">
<i class="ki-outline ki-plus text-2sm"></i>
Lainnya
<div class="input-group w-full flex flex-col gap-2">
<img id="foto_rute_lainnya-preview-"
src="{{ asset('storage/' . $photo['foto_rute_lainnya']) }}"
alt="Foto Rute " class="mt-2 max-w-full h-auto"
style="width: 30rem;">
<div class="input-group w-full flex gap-2">
<input type="file" name="foto_rute_lainnya[]"
class="file-input file-input-bordered w-full"
value="{{ $photo['foto_rute_lainnya'] }}"
accept="image/*" onchange="previewImage(this, 'foto_rute_lainnya-preview-{{ $index }}')">
<button type="button" id="btnCamera-{{ $index }}" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
</div>
</div>
<button type="button" class="btn btn-danger btn-sm delete-btn"
onclick="deletePhoto('{{ $index }}')">
<i class="ki-filled ki-trash"></i>
</button>
</div>
</div>
</div>
@endforeach
@endif
</div>
<button type="button" class="btn btn-primary btn-sm" id="btnAddMore" style="margin-top: 10px">
<i class="ki-outline ki-plus text-2sm"></i> Lainnya
</button>
</div>
</div>
</div>
<div class="card bg-white rounded-lg shadow-md">
<div class="card-body">
@@ -209,6 +240,10 @@
<h1 class="text-md font-medium text-gray-900">Objek Jaminan</h1>
</div>
@php
// Array untuk menyimpan kategori yang sudah diproses
$processedCategories = [];
@endphp
@foreach ($permohonan->debiture->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@@ -220,18 +255,19 @@
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
<input type="hidden" name="type"
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
@if (is_array($formKategori))
@foreach ($formKategori as $kategori)
@if ($kategori === 'tanah' || $kategori === 'bangunan')
@if (!in_array($kategori, $processedCategories))
@php
$objekViews = [];
if ($kategori === 'tanah') {
$objekViews = [
['label' => 'Tampak Samping Kiri', 'index' => 0],
['label' => 'Tampak Samping Kanan', 'index' => 1],
['label' => 'Nomor Rumah/Unit', 'index' => 2],
];
@endphp
@elseif ($kategori === 'apartemen-kantor')
@php
} elseif ($kategori === 'apartemen-kantor') {
$objekViews = [
['label' => 'Tampak Loby', 'index' => 0],
['label' => 'Tampak Lift', 'index' => 1],
@@ -240,9 +276,7 @@
['label' => 'Tampak Depan Unit', 'index' => 4],
['label' => 'Nomor Unit', 'index' => 5],
];
@endphp
@elseif ($kategori === 'kendaraan')
@php
} elseif ($kategori === 'kendaraan') {
$objekViews = [
['label' => 'Tampak Depan Objek', 'index' => 0],
['label' => 'Tampak Kanan Objek', 'index' => 1],
@@ -254,11 +288,12 @@
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
['label' => 'Tampak Nomor Rangka', 'index' => 8],
['label' => 'Tampak Nomor Mesin', 'index' => 9],
['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10],
[
'label' => 'Tampak Penilai dan Pendamping di lapangan',
'index' => 10,
],
];
@endphp
@elseif ($kategori === 'kapal')
@php
} elseif ($kategori === 'kapal') {
$objekViews = [
['label' => 'Tampak Depan', 'index' => 0],
['label' => 'Tampak Kanan', 'index' => 1],
@@ -270,20 +305,44 @@
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
['label' => 'Tampak Nomor Rangka', 'index' => 8],
['label' => 'Tampak Nomor Mesin', 'index' => 9],
['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10],
[
'label' => 'Tampak Penilai dan Pendamping di lapangan',
'index' => 10,
],
];
} elseif ($kategori === 'mesin') {
$objekViews = [
['label' => 'Tampak Depan', 'index' => 0],
['label' => 'Tampak Kanan', 'index' => 1],
['label' => 'Tampak Samping Kiri', 'index' => 2],
['label' => 'Tampak Belakang', 'index' => 3],
['label' => 'Tampak Bagian Dalam', 'index' => 4],
['label' => 'Nomor Panel Instrument', 'index' => 5],
['label' => 'Tampak Hours Meters', 'index' => 6],
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
['label' => 'Tampak Nomor Rangka', 'index' => 8],
['label' => 'Tampak Nomor Mesin', 'index' => 9],
[
'label' => 'Foto Tampak Aksesoris Tambahan Lainnya',
'index' => 10,
],
[
'label' => 'Tampak Penilai dan Pendamping di lapangan',
'index' => 10,
],
];
}
@endphp
@endif
@if (count($objekViews) > 0)
@foreach ($objekViews as $view)
<div class="flex flex-wrap gap-4 {{ !$loop->first ? 'mt-2' : '' }}">
<div class="flex w-full gap-4">
<label class="form-label max-w-56"><span class="form-label">{{ $view['label'] }}</span>
<label class="form-label max-w-56"><span
class="form-label">{{ $view['label'] }}</span>
</label>
<input type="hidden" class="form-control" name="name_objek[]"
value="{{ $view['label'] }}" />
<input type="hidden" class="form-control"
name="name_objek[]" value="{{ $view['label'] }}" />
<div class="w-full grid gap-5">
<img id="foto_object_jaminan_preview_{{ $view['index'] }}"
src="{{ isset($formFoto['object_jaminan'][$view['index']]['foto_object']) ? asset('storage/' . $formFoto['object_jaminan'][$view['index']]['foto_object']) : '' }}"
@@ -293,8 +352,10 @@
<div class="input-group w-full flex gap-2">
<input type="file" name="foto_objek[]"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
<button type="button" id="btnCamera" class="btn btn-light"
class="file-input file-input-bordered w-full"
accept="image/*" capture="camera">
<button type="button" id="btnCamera"
class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
@@ -307,12 +368,17 @@
</div>
@endforeach
@endif
@endforeach
@endif
@endif
@endif
@endforeach
@php
// Tandai kategori sebagai sudah diproses
$processedCategories[] = $kategori;
@endphp
@endif
@endforeach
@endif
@endif
@endif
@endforeach
<div class="flex flex-wrap gap-4 w-full">
<div class="w-full ">
@@ -348,9 +414,8 @@
</div>
@error('foto_lantai_unit.*')
<span class="alert text-danger text-sm">{{ $message }}</span>
@enderror
<span id="inputLantaiError" class="alert text-danger text-sm"></span>
</div>
@endforeach
@else
@@ -363,14 +428,15 @@
<div class="input-group w-full flex gap-2">
<input type="hidden" name="name_lantai_unit[]" value="lantai">
<input id="inputLantai" type="file" name="foto_lantai_unit[]"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
class="file-input file-input-bordered w-full" accept="image/*"
capture="camera">
<button type="button" id="btnCamera" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
</div>
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
id="btnDelete">
<button type="button" class="btn btn-danger btn-sm delete-btn"
style="display: none;" id="btnDelete">
<i class="ki-filled ki-trash"></i>
</button>
</div>
@@ -388,27 +454,29 @@
<div class="input-group w-full flex flex-col gap-2">
<input type="hidden" name="name_basement" value="basement">
<img id="basement"
src="{{ isset($formFoto['basement']) ? asset('storage/' . old('basement', $formFoto['basement'])) : '#' }}"
alt="Gambar basement" style="width: 30rem;" onerror="this.style.display='none';"
onchange="previewImage(this, 'basement')">
<img id="foto_basement"
src="{{ isset($formFoto['foto_basement']) ? asset('storage/' . old('foto_basement', $formFoto['foto_basement'])) : '#' }}"
alt="Gambar foto_basement" style="width: 30rem;"
onerror="this.style.display='none';"
onchange="previewImage(this, 'foto_basement')">
<div class="input-group w-full flex gap-2">
<input id="inputLantai" type="file" name="foto_basement"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
class="file-input file-input-bordered w-full" accept="image/*"
capture="camera">
<button type="button" id="btnCamera" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
</div>
</div>
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
id="btnDelete">
<button type="button" class="btn btn-danger btn-sm delete-btn"
style="display: none;" id="btnDelete">
<i class="ki-filled ki-trash"></i>
</button>
</div>
@error('foto_lantai_unit.*')
<span class="alert text-danger text-sm">{{ $message }}</span>
@enderror
<span id="alertBasement" class="alert text-danger text-sm"></span>
</div>
@@ -437,7 +505,7 @@
</button>
</div>
@if (isset($formFoto['lingkungan']))
@if (isset($formFoto['lingkungan']) && !is_array($formFoto['lingkungan']) && !empty($formFoto['lingkungan']))
@foreach ($formFoto['lingkungan'] as $item)
<div id="inputContainerLingkungan" style="margin-top: 10px">
<div class="flex w-full items-center justify-center gap-4 mb-4">
@@ -451,14 +519,15 @@
<div class="input-group w-full flex gap-2">
<input type="hidden" name="name_lingkungan[]" value="lingkungan">
<input id="inputLingkungan" type="file" name="foto_lingkungan[]"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
class="file-input file-input-bordered w-full" accept="image/*"
capture="camera">
<button type="button" id="btnCamera" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
</div>
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
id="btnDelete">
<button type="button" class="btn btn-danger btn-sm delete-btn"
style="display: none;" id="btnDelete">
<i class="ki-filled ki-trash"></i>
</button>
</div>
@@ -573,7 +642,7 @@
<canvas id="canvas" class="hidden w-full h-auto"></canvas>
<canvas id="drawingCanvas" class="hidden absolute top-0 left-0 w-full h-full"></canvas>
<div id="textOverlay" class="position-absolute top-0 left-0 w-100 h-100 pointer-events-none">
<!-- Text elements will be added here dynamically -->
</div>
</div>
@@ -636,10 +705,9 @@
<button id="backButton" class="btn btn-warning btn-sm">
<i class="ki-outline ki-arrow-left"></i> Kembali
</button>
<button id="saveButton" class="btn btn-success btn-sm">
<button id="saveButton" class="btn btn-success btn-sm" data-modal-dismiss="true">
<i class="ki-outline ki-check"></i> Simpan
</button>
</div>
</div>
</div>
@@ -652,18 +720,17 @@
@push('scripts')
<script>
function previewImage(input, previewId) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#' + previewId).attr('src', e.target.result).show();
}
reader.readAsDataURL(input.files[0]);
} else {
$('#' + previewId).hide();
}
}
// function previewImage(input, previewId) {
// if (input.files && input.files[0]) {
// var reader = new FileReader();
// reader.onload = function(e) {
// $('#' + previewId).attr('src', e.target.result).show();
// }
// reader.readAsDataURL(input.files[0]);
// } else {
// $('#' + previewId).hide();
// }
// }
function submitFoto() {
const formElement = $('#formFoto')[0];
@@ -680,6 +747,7 @@
$.ajax({
url: '{{ route('surveyor.storeFoto') }}',
type: 'POST',
data: formData,
processData: false,
contentType: false,
@@ -687,10 +755,10 @@
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
success: function(response) {
if (response.success) {
window.location.href =
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto';
}
// if (response.success) {
// window.location.href =
// '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto';
// }
console.log(response);
},
error: function(xhr, status, error) {
@@ -750,15 +818,24 @@
<div class="flex flex-wrap items-baseline px-2">
<input class="input" type="text" name="name_${inputName}[]">
</div>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full flex flex-col gap-2">
<img id="foto_${inputName}-preview"
src="{{ isset($formFoto['gerbang']) ? asset('storage/' . $formFoto['gerbang']) : '' }}"
alt="Foto Gerbong" class="mt-2 max-w-full h-auto"
style="{{ isset($formFoto['gerbang']) ? '' : 'display: none;' }} width: 30rem;">
<div class="input-group w-full flex gap-2">
<input id="inputPendamping" type="file" name="foto_${inputName}"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
<input id="inputPendamping" type="file" name="foto_${inputName}[]"
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
onchange="previewImage(this, 'foto_${inputName}-preview')"
>
<button type="button" id="btnCamera" class="btn btn-light"
data-modal-toggle="#cameraModal">
<i class="ki-outline ki-abstract-33"></i> Camera
</button>
</div>
</div>
<button type="button" class="btn btn-danger btn-sm delete-button">
<i class="ki-filled ki-trash"></i>
@@ -791,11 +868,11 @@
}
`;
document.head.appendChild(style);
document.addEventListener('DOMContentLoaded', function() {
// Initialize camera editor
const editor = new UniversalCameraEditor();
// Get all camera buttons
document.addEventListener('DOMContentLoaded', function() {
const editor = new UniversalCameraEditor();
const cameraButtons = document.querySelectorAll('#btnCamera');
const modal = document.getElementById('cameraModal');
const closeModal = document.getElementById('closeModal');
@@ -803,9 +880,6 @@
// Current input field to update
let currentInputField = null;
// Confirm text button
// Handle camera button click
cameraButtons.forEach(button => {
button.addEventListener('click', function(e) {
@@ -818,99 +892,42 @@
});
});
closeModal.addEventListener('click', function() {
modal.classList.add('hidden');
editor.closeCamera();
});
// Override save function
editor.saveAndUpload = async function() {
try {
// Membuat canvas akhir
// Create final canvas
const finalCanvas = document.createElement('canvas');
finalCanvas.width = this.canvas.width;
finalCanvas.height = this.canvas.height;
const ctx = finalCanvas.getContext('2d');
// Menggambar foto asli dan hasil edit di canvas akhir
// Draw original photo and edited result on final canvas
ctx.drawImage(this.canvas, 0, 0);
ctx.drawImage(this.drawingCanvas, 0, 0);
// Konversi canvas ke Blob dan buat file
// Convert canvas to Blob and create file
finalCanvas.toBlob(async (blob) => {
const file = new File([blob], `camera_photo_${Date.now()}.jpg`, {
type: "image/jpeg"
});
// Membuat FileList dan memperbarui field input
// Create FileList and update input field
const dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
if (currentInputField) {
currentInputField.files = dataTransfer.files;
// Trigger event "change" untuk memperbarui tampilan
const event = new Event('change', {
bubbles: true
});
currentInputField.dispatchEvent(event);
// Tampilkan preview jika container preview ada
const previewContainer = currentInputField.closest('.input-group')
.querySelector('.preview-container');
if (previewContainer) {
const img = document.createElement('img');
img.src = URL.createObjectURL(file);
img.className = 'w-full h-32 object-cover rounded-lg';
previewContainer.innerHTML = ''; // Bersihkan container preview
previewContainer.appendChild(img); // Tambah gambar preview
}
}
// Menutup modal
const modal = document.getElementById('cameraModal');
modal.classList.remove('show');
modal.style.display = 'none';
modal.setAttribute('aria-hidden', 'true');
document.body.classList.remove('modal-open');
// Menghapus backdrop modal jika ada
const backdrop = document.querySelector('.modal-backdrop');
if (backdrop) {
backdrop.remove();
}
// Hentikan stream kamera
if (editor.stream) {
editor.stream.getTracks().forEach(track => track.stop());
editor.stream = null;
}
// Mengatur ulang ke kondisi awal (reset kamera)
editor.closeCamera()
}, 'image/jpeg', 0.8);
} catch (error) {
console.error('Error saving photo:', error);
alert('Error saving photo. Please try again.');
}
};
});
// Preview for regular file input change
document.addEventListener('change', function(e) {
if (e.target && e.target.type === 'file') {
const file = e.target.files[0];
if (file && file.type.startsWith('image/')) {
const previewContainer = e.target.closest('.input-group').querySelector('.preview-container');
if (previewContainer) {
const img = document.createElement('img');
img.src = URL.createObjectURL(file);
@@ -919,9 +936,39 @@
previewContainer.appendChild(img);
}
}
}
});
// Close modal
modal.classList.remove('show');
modal.style.display = 'none';
modal.setAttribute('aria-hidden', 'true');
// document.body.classList.remove('modal-open');
// Remove modal backdrop if exists
const backdrop = document.querySelector('.modal-backdrop');
if (backdrop) {
backdrop.remove();
}
// Stop camera stream
if (editor.stream) {
editor.stream.getTracks().forEach(track => track.stop());
editor.stream = null;
}
// Reset camera to initial state
editor.closeCamera();
// Reset scroll if needed
window.scrollTo(0, 0); // Adjust as necessary
}, 'image/jpeg', 0.8);
} catch (error) {
console.error('Error saving photo:', error);
alert('Error saving photo. Please try again.');
}
};
// Handle escape key
@@ -941,25 +988,17 @@
document.addEventListener('DOMContentLoaded', function() {
// Generic function to handle adding new input and delete functionality
function setupInputHandlers(containerId, buttonId, labelText, inputDataClass, buttonDeleteClass) {
const inputContainer = document.getElementById(containerId);
const addButton = document.getElementById(buttonId);
// Function to update the labels with the correct number
function updateLabels() {
const labels = inputContainer.querySelectorAll('.form-label span');
labels.forEach((label, index) => {
label.textContent = `${labelText} ${index + 1}`;
});
}
// Function to show or hide delete buttons
function handleDeleteButtons() {
const deleteBtns = inputContainer.querySelectorAll(`.${buttonDeleteClass}`);
deleteBtns.forEach(btn => {
@@ -967,46 +1006,64 @@
});
}
// Function to create a new input
function createNewInput() {
// Clone the first child (input group) and reset input values
const newDiv = inputContainer.children[0].cloneNode(true);
// Clear the input file value
const inputFile = newDiv.querySelector(`.${inputDataClass}`);
inputFile.id = `inputRute-${inputContainer.children.length}`;
// Reset input file value
if (inputFile) {
inputFile.value = ''; // Ensure the input field exists before resetting
inputFile.value = '';
}
// Find and set up the delete button for the new input group
// Update the camera button to set currentInputField
const cameraButton = newDiv.querySelector('#btnCamera');
if (cameraButton) {
cameraButton.addEventListener('click', function(e) {
e.preventDefault();
currentInputField = inputFile; // Set current input field to the new input
modal.classList.remove('hidden');
modal.classList.add('modal-open');
editor.startCamera();
});
}
// Add delete button functionality
const deleteBtn = newDiv.querySelector(`.${buttonDeleteClass}`);
if (deleteBtn) { // Ensure the delete button exists before adding the listener
if (deleteBtn) {
deleteBtn.addEventListener('click', function() {
inputContainer.removeChild(newDiv);
handleDeleteButtons();
updateLabels();
});
} else {
console.error('Delete button not found in the cloned element.');
}
// Add margin to new inputs
newDiv.style.marginTop = '10px';
// Update preview container
const previewContainer = document.createElement('div');
previewContainer.className = 'preview-container';
// Append the new input group
const img = document.createElement('img');
img.id = `foto_rute-preview-${inputFile.id}`;
img.src = '';
img.className = 'mt-2 h-auto';
img.style.display = 'none';
img.style.width = '30rem';
previewContainer.appendChild(img);
// Append preview container to the new input group
const inputGroup = newDiv.querySelector('.input-group');
inputGroup.appendChild(previewContainer);
newDiv.style.marginTop = '10px';
inputContainer.appendChild(newDiv);
updateLabels();
handleDeleteButtons();
}
// Add event listener for the "Add" button
if (addButton) { // Ensure the add button exists
if (addButton) {
addButton.addEventListener('click', createNewInput);
} else {
console.error('Add button not found.');
}
// Initialize delete button on the first input
const firstDeleteBtn = inputContainer.children[0].querySelector(`.${buttonDeleteClass}`);
if (firstDeleteBtn) {
firstDeleteBtn.addEventListener('click', function() {
@@ -1016,19 +1073,15 @@
updateLabels();
}
});
} else {
console.error('Initial delete button not found.');
}
// Initial update of the labels
updateLabels();
}
// Call the function for both "Rute Menuju Lokasi" and "Lantai"
setupInputHandlers('inputContainerRute', 'btnRute', 'Foto Rute Menuju Lokasi', 'file-input',
'delete-btn');
setupInputHandlers('inputContainerLantai', 'btnLantai', 'Foto Lantai', 'file-input', 'delete-btn');
setupInputHandlers('inputContainerLingkungan', 'btnLingkungan', 'linkungan', 'file-input',
setupInputHandlers('inputContainerLingkungan', 'btnLingkungan', 'Lingkungan', 'file-input',
'delete-btn');
});
</script>

View File

@@ -45,15 +45,14 @@
<input type="text" class="input form-control" name="debitur_perwakilan[]"
value="{{ old('debitur_perwakilan', isset($forminspeksi['debitur_perwakilan']) ? implode(', ', $forminspeksi['debitur_perwakilan']) : '') }}"
placeholder="Masukkan Debitur/Perwakilan" />
<button type="button" class="btn btn-danger btn-outline btn-xs delete-button"
<button type="button" class="btn btn-danger btn-outline btn-xs remove-btn"
style="display: none">Hapus</button>
</div>
</div>
<button id="addPerwakilan" type="button" class="btn-md btn btn-primary">
<button onclick="addClonableItem('perwakilan', 'perwakilan')" type="button" class="btn-md btn btn-primary">
<i class="ki-filled ki-plus"></i>
</button>
<em id="error-debitur_perwakilan" class="alert text-danger text-sm"></em>
</div>
</div>
</div>

View File

@@ -0,0 +1,209 @@
<!-- Informasi Tata Ruang -->
<div class="card w-full bg-white">
<div class="card-body">
<div class="py-4">
<h1 class="text-md font-medium text-gray-900">Informasi Dinas Tata Ruang</h1>
</div>
<!-- Informasi Tata Ruang Form -->
<div class="grid gap-5">
@php
$inputDinasTata = [
[
'label' => 'Peruntukan',
'name' => 'peruntukan',
'index' => 0,
'value' => old(
'peruntukan',
isset($forminspeksi['peruntukan']) ? $forminspeksi['peruntukan'] : '',
),
],
[
'label' => 'KDB',
'name' => 'kdb',
'index' => 1,
'value' => old('kdb', isset($forminspeksi['kdb']) ? $forminspeksi['kdb'] : ''),
],
[
'label' => 'KDH',
'name' => 'kdh',
'index' => 2,
'value' => old('kdh', isset($forminspeksi['kdh']) ? $forminspeksi['kdh'] : ''),
],
[
'label' => 'gsb',
'name' => 'gsb',
'index' => 3,
'value' => old('gsb', isset($forminspeksi['gsb']) ? $forminspeksi['gsb'] : ''),
],
[
'label' => 'Max Lantai',
'name' => 'max_lantai',
'index' => 4,
'value' => old(
'max_lantai',
isset($forminspeksi['max_lantai']) ? $forminspeksi['max_lantai'] : '',
),
],
[
'label' => 'KLB',
'name' => 'klb',
'index' => 5,
'value' => old('klb', isset($forminspeksi['klb']) ? $forminspeksi['klb'] : ''),
],
[
'label' => 'GSS',
'name' => 'gss',
'index' => 6,
'value' => old('gss', isset($forminspeksi['gss']) ? $forminspeksi['gss'] : ''),
],
[
'label' => 'Pelebaran Jalan',
'name' => 'pelebaran_jalan',
'index' => 7,
'value' => old(
'pelebaran_jalan',
isset($forminspeksi['pelebaran_jalan']) ? $forminspeksi['pelebaran_jalan'] : '',
),
],
[
'label' => 'Nama Petugas TK',
'name' => 'nama_petugas',
'index' => 8,
'value' => old(
'nama_petugas',
isset($forminspeksi['nama_petugas']) ? $forminspeksi['nama_petugas'] : '',
),
],
];
@endphp
@if (count($inputDinasTata) > 0)
@foreach ($inputDinasTata as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
@error($item['name'])
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">Gistaru</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputGistaru" type="file" name="foto_gistaru"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'gistaru-preview')">
<img id="gistaru-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
alt="Foto Gistaru" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }}">
</div>
<a href="https://gistaru.atrbpn.go.id/rtronline" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i> Gistaru
</a>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">Bhumi</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputBhumi" type="file" name="foto_bhumi"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'bhumi-preview')">
<img id="bhumi-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_bhumi']) ? '' : 'display: none;' }}">
</div>
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i> Bhumi
</a>
</div>
</div>
@if (isset($link_url_region->regions->url))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
<span class="form-label">{{ $link_url_region->regions->name_url }}</span>
</label>
<div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputArgisRegion" type="file" name="foto_argis_region"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'argis-region-preview')">
<img id="argis-region-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }}">
</div>
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light"
target="_blank">
<i class="ki-outline ki-abstract-33"></i>
{{ $link_url_region->regions->name_url }}
</a>
</div>
</div>
@endif
</div>
<!-- Peta Section -->
<div class="mt-2" style="margin-top: 20px">
<input type="hidden" name="lat" id="lat"
value="{{ old('lat', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lat : '') }}">
<input type="hidden" name="lng" id="lng"
value="{{ old('lng', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lng : '') }}">
<div class=" border p-6 rounded-lg shadow-lg flex items-center justify-center"
style="height: 300px">
<iframe id="mapFrame" frameborder="0" style="width: 100%; height: 100%;"></iframe>
</div>
</div>
<!-- Upload Photo Button -->
<div class=" flex w-full mt-2" style="margin-top: 20px">
<div class="flex flex-col input-group w-full">
<label for="" class="block text-sm font-medium text-gray-700">Upload Photo</label>
<div class="w-full">
<input id="foto_tempat" type="file" name="foto_tempat"
class="file-input file-input-bordered w-full" accept="image/*"
onchange="previewImage(this, 'foto_tempat-preview')">
<img id="foto_tempat-preview"
src="{{ asset('storage/' . (isset($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'] : '')) }}"
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }}">
</div>
</div>
</div>
<!-- Notes Section -->
<div class="mt-2" style="margin-top: 20px">
<div class="bg-white p-6 rounded-lg">
<h4 class="block text-sm font-medium text-gray-700 mt-2">Catatan yang Perlu Diperhatikan
</h4>
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['keterangan'] ?? '') }}</textarea>
</div>
</div>
</div>
</div>

View File

@@ -30,8 +30,7 @@
@csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="text
" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
@foreach ($permohonan->debiture->documents as $dokumen)
@@ -170,4 +169,44 @@
});
}
</script>
<script>
function previewImage(input, previewId) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#' + previewId).attr('src', e.target.result).show();
}
reader.readAsDataURL(input.files[0]);
} else {
$('#' + previewId).hide();
}
}
function addClonableItem(containerId, itemClass) {
const container = document.getElementById(containerId);
if (!container) {
console.error(`Container with ID "${containerId}" not found.`);
return;
}
const template = container.querySelector(`.${itemClass}`);
if (!template) {
console.error(`Template with class "${itemClass}" not found in container "${containerId}".`);
return;
}
const newElement = template.cloneNode(true);
const inputs = newElement.querySelectorAll('input, textarea');
inputs.forEach(input => (input.value = ''));
const deleteButton = newElement.querySelector('.remove-btn');
if (deleteButton) {
deleteButton.style.display = 'inline-block';
deleteButton.addEventListener('click', () => newElement.remove());
}
container.appendChild(newElement);
}
</script>
@endpush

View File

@@ -1,26 +1,96 @@
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
</div>
<div class="grid gap-5 grid-cols-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tujuan Penilaian</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->tujuanPenilaian))
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-base line w-full">
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
@endif
</div>
</div>
</div>
</div>
</div>
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture->name))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Wakil Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="nama_wakil" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="hub_calon_debitur" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
@error('hub_calon_debitur')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
{{-- lokasi jaminan --}}
@include('lpj::surveyor.components.lokasi-jaminan')
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="py-4 px-6">
@@ -43,7 +113,7 @@
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@@ -64,7 +134,7 @@
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@@ -85,7 +155,7 @@
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@@ -107,34 +177,109 @@
</select>
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="alert text-danger text-sm"></em>
@enderror
</div>
</div>
@php
$inputDataJaminan = [];
$inputDataJaminan = [
['label' => 'Nama Kapal', 'index' => 0],
['label' => 'Pemilik Kapal', 'index' => 1],
['label' => 'Bendera', 'index' => 2],
['label' => 'Nomor Tanda Selar', 'index' => 3],
['label' => 'Kapal', 'index' => 4],
['label' => 'Galangan', 'index' => 5],
['label' => 'Kapal/Shipyard', 'index' => 6],
['label' => 'Tahun Pembuatan', 'index' => 7],
['label' => 'Tahun Lanuncing', 'index' => 8],
['label' => 'DWT (ton)', 'index' => 9],
['label' => 'LWT (ton)', 'index' => 10],
['label' => 'Gross Tonnage (ton)', 'index' => 11],
['label' => 'Net Tonnage (ton)', 'index' => 12],
['label' => 'Tenaga Mesin (HP)', 'index' => 13],
['label' => 'LOA', 'index' => 14],
['label' => 'LBP', 'index' => 15],
['label' => 'Beam', 'index' => 16],
['label' => 'Depth', 'index' => 17],
['label' => 'Draft', 'index' => 18],
[
'label' => 'Nama Kapal',
'name' => 'nama_kapal',
'index' => 0,
],
[
'label' => 'Pemilik Kapal',
'name' => 'pemilik_kapal',
'index' => 1,
],
[
'label' => 'Bendera',
'name' => 'bendera',
'index' => 2,
],
[
'label' => 'Nomor Tanda Selar',
'name' => 'nomor_selar',
'index' => 3,
],
[
'label' => 'Kapal',
'name' => 'kapal',
'index' => 4,
],
[
'label' => 'Galangan',
'name' => 'galangan_kapal',
'index' => 5,
],
[
'label' => 'Kapal/Shipyard',
'name' => 'kapal_shipyard',
'index' => 6,
],
[
'label' => 'Tahun Pembuatan',
'name' => 'tahun_pembuatan',
'index' => 7,
],
[
'label' => 'Tahun Lanuncing',
'name' => 'tahun_launcing',
'index' => 8,
],
[
'label' => 'DWT (ton)',
'name' => 'dwt',
'index' => 9,
],
[
'label' => 'LWT (ton)',
'name' => 'lwt',
'index' => 10,
],
[
'label' => 'Gross Tonnage (ton)',
'name' => 'gross_tonnage',
'index' => 11,
],
[
'label' => 'Net Tonnage (ton)',
'name' => 'net_tonnage',
'index' => 12,
],
[
'label' => 'Tenaga Mesin (HP)',
'name' => 'tenaga_mesin',
'index' => 13,
],
[
'label' => 'LOA',
'name' => 'loa',
'index' => 14,
],
[
'label' => 'LBP',
'name' => 'lbp',
'index' => 15,
],
[
'label' => 'Beam',
'name' => 'beam',
'index' => 16,
],
[
'label' => 'Depth',
'name' => 'depth',
'index' => 17,
],
[
'label' => 'Draft',
'name' => 'draft',
'index' => 18,
],
];
@endphp
@@ -144,24 +289,16 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@endif
</div>
<div class="flex justify-end" style="margin-top: 10px">
<button class="btn btn-xs btn-primary" type="button" id="addBagunan">
tambah mesin
<i class="ki-filled ki-plus"></i>
</button>
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
@@ -170,33 +307,64 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Lambung Kapal', 'index' => 0],
['label' => 'Dek', 'index' => 1],
['label' => 'Struktur Rangka', 'index' => 2],
['label' => 'Palka', 'index' => 3],
['label' => 'Pondasi Mesin', 'index' => 4],
['label' => 'Area Mesin', 'index' => 5],
['label' => 'Cat dan Korosi', 'index' => 6],
['label' => 'Sistem Pengelasan', 'index' => 7]
$inputStrukturKapal = [
[
'label' => 'Lambung Kapal',
'name' => 'lambung_kapal',
'index' => 0,
],
[
'label' => 'Dek',
'name' => 'dek',
'index' => 1,
],
[
'label' => 'Struktur Rangka',
'name' => 'struktur_rangka',
'index' => 2,
],
[
'label' => 'Palka',
'name' => 'palka',
'index' => 3,
],
[
'label' => 'Pondasi Mesin',
'name' => 'pondasi_mesin',
'index' => 4,
],
[
'label' => 'Area Mesin',
'name' => 'area_mesin',
'index' => 5,
],
[
'label' => 'Cat dan Korosi',
'name' => 'cat_dan_korosi',
'index' => 6,
],
[
'label' => 'Sistem Pengelasan',
'name' => 'sistem_pengelasan',
'index' => 7,
],
];
@endphp
@if (count($inputDataLoaksi) > 0)
@foreach ($inputDataLoaksi as $item)
@if (count($inputStrukturKapal) > 0)
@foreach ($inputStrukturKapal as $item)
<!-- Nomor Lambung -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -204,10 +372,10 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_struktur" id="" class="textarea"></textarea>
<em id="error_deskripsi_struktur" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -220,33 +388,60 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Sekoci/Lifeboat', 'index' => 0],
['label' => 'Jaket Pelampung', 'index' => 1],
['label' => 'Alat Pemadam', 'index' => 2],
['label' => 'Rambu Darurat', 'index' => 3],
['label' => 'Sistem Alarm', 'index' => 4],
['label' => 'Sistem Pencegah', 'index' => 5],
['label' => 'Kebaran', 'index' => 6],
['label' => 'Lampu Darurat', 'index' => 7]
$inputPeralatan = [
[
'label' => 'Sekoci/Lifeboat',
'name' => 'sekoci',
'index' => 0,
],
[
'label' => 'Jaket Pelampung',
'name' => 'jaket_pelampung',
'index' => 1,
],
[
'label' => 'Alat Pemadam',
'name' => 'alat_pemadaman',
'index' => 2,
],
[
'label' => 'Rambu Darurat',
'name' => 'rambu_darurat',
'index' => 3,
],
[
'label' => 'Sistem Alarm',
'name' => 'sistem_alarm',
'index' => 4,
],
[
'label' => 'Sistem Pencegah',
'name' => 'sistem_pencegah',
'index' => 5,
],
[
'label' => 'Kebakaran',
'name' => 'kebakaran',
'index' => 6,
],
[
'label' => 'Lampu Darurat',
'name' => 'lampu_darurat',
'index' => 7,
],
];
@endphp
@if (count($inputDataLoaksi) > 0)
@foreach ($inputDataLoaksi as $item)
@if (count($inputPeralatan) > 0)
@foreach ($inputPeralatan as $item)
<!-- Nomor Lambung -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -254,10 +449,10 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_peralatan" id="" class="textarea"></textarea>
<em id="error_deskripsi_peralatan" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -270,15 +465,38 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Gps', 'index' => 0],
['label' => 'Radat', 'index' => 1],
['label' => 'Radio Komunikasi', 'index' => 2],
['label' => 'Lampu Navigasi', 'index' => 3],
['label' => 'Sistem Kendali otomatis', 'index' => 4],
['label' => 'Kompas', 'index' => 5],
[
'label' => 'Gps',
'name' => 'gps',
'index' => 0,
],
[
'label' => 'Radar',
'name' => 'radar',
'index' => 1,
],
[
'label' => 'Radio Komunikasi',
'name' => 'radio_komunikasi',
'index' => 2,
],
[
'label' => 'Lampu Navigasi',
'name' => 'lampu_navigasi',
'index' => 3,
],
[
'label' => 'Sistem Kendali otomatis',
'name' => 'sistem_kendali_otomatis',
'index' => 4,
],
[
'label' => 'Kompas',
'name' => 'kompas',
'index' => 5,
],
];
@endphp
@@ -289,12 +507,11 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -302,10 +519,8 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_navigasi" id="" class="textarea"></textarea>
<em id="error_deskripsi_navigasi" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -319,31 +534,51 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Mesin Utama', 'index' => 0],
['label' => 'Mesin Bantu', 'index' => 1],
['label' => 'Pompa Pendingin', 'index' => 2],
['label' => 'Sistem Pelumasan', 'index' => 3],
['label' => 'Propeller', 'index' => 4],
['label' => 'Sistem Kelistrikan', 'index' => 5],
$inputSistemPengerak = [
[
'label' => 'Mesin Utama',
'name' => 'mesin_utama',
'index' => 0,
],
[
'label' => 'Mesin Bantu',
'name' => 'mesin_bantu',
'index' => 1,
],
[
'label' => 'Pompa Pendingin',
'name' => 'pompa_pendingin',
'index' => 2,
],
[
'label' => 'Sistem Pelumasan',
'name' => 'sistem_pelumasan',
'index' => 3,
],
[
'label' => 'Propeller',
'name' => 'propeller',
'index' => 4,
],
[
'label' => 'Sistem Kelistrikan',
'name' => 'sistem_kelistrikan',
'index' => 5,
],
];
@endphp
@if (count($inputDataLoaksi) > 0)
@foreach ($inputDataLoaksi as $item)
@if (count($inputSistemPengerak) > 0)
@foreach ($inputSistemPengerak as $item)
<!-- Nomor Lambung -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -351,10 +586,8 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_mesin_penggerak" id="" class="textarea"></textarea>
<em id="error_deskripsi_mesin_penggerak" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -368,29 +601,45 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputSistemKelistrikan = [];
$inputDataLoaksi = [
['label' => 'Lampu Navigasi', 'index' => 0],
['label' => 'Sistem Penerangan', 'index' => 1],
['label' => 'Sistem Panel Distribusi', 'index' => 2],
['label' => 'Kabel dan Perangkat Pendukung', 'index' => 3],
$inputSistemKelistrikan = [
[
'label' => 'Lampu Navigasi',
'name' => 'lampu_navigasi',
'index' => 0,
],
[
'label' => 'Sistem Penerangan',
'name' => 'sistem_penerangan',
'index' => 1,
],
[
'label' => 'Sistem Panel Distribusi',
'name' => 'sistem_panel_distribusi',
'index' => 2,
],
[
'label' => 'Kabel dan Perangkat Pendukung',
'name' => 'kabel_perangkat',
'index' => 3,
],
];
@endphp
@if (count($inputDataLoaksi) > 0)
@foreach ($inputDataLoaksi as $item)
@if (count($inputSistemKelistrikan) > 0)
@foreach ($inputSistemKelistrikan as $item)
<!-- Nomor Lambung -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -398,10 +647,10 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_kelistrikan" id="" class="textarea"></textarea>
<em id="error_deskripsi_kelistrikan" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -414,19 +663,35 @@
</div>
<div class="grid gap-5">
@php
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Kebersihan Dek Luar', 'index' => 0],
['label' => 'Tangki Limbah', 'index' => 1],
['label' => 'Sistem Pengelolaan Limbah', 'index' => 2],
['label' => 'Pengelolaan Air Ballast', 'index' => 3],
$inputLinkungan = [
[
'label' => 'Kebersihan Dek Luar',
'name' => 'kebersihan_dek_luar',
'index' => 0,
],
[
'label' => 'Tangki Limbah',
'name' => 'tangki_limbah',
'index' => 1,
],
[
'label' => 'Sistem Pengelolaan Limbah',
'name' => 'sistem_pengelolaan_limbah',
'index' => 2,
],
[
'label' => 'Pengelolaan Air Ballast',
'name' => 'pengelolaan_air_ballast',
'index' => 3,
],
];
@endphp
@if (count($inputDataLoaksi) > 0)
@foreach ($inputDataLoaksi as $item)
@if (count($inputLinkungan) > 0)
@foreach ($inputLinkungan as $item)
<!-- Nomor Lambung -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
@@ -434,9 +699,9 @@
<input type="text" name="bentuk_tanah" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -444,11 +709,78 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<textarea name="deskripsi_kebersihan" id="" class="textarea"></textarea>
<em id="error_deskripsi_kebersihan" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="card bg-white rounded-lg overflow-hidden">
<div class="card-body">
<div class=" py-4 ">
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Catatan Yang Perlu Diperhatikan</label>
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-catatan" class="alert text-danger text-sm"></em>
</div>
<button type="button"
onclick="addClonableItem('catatan-container', 'catatan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@@ -5,14 +5,50 @@
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
</div>
<div class="grid gap-5 grid-cols-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tujuan Penilaian</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->tujuanPenilaian))
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-base line w-full">
<input type="date" name="tanggal_survey" class="input" placeholder="Masukkan Hubungan Calon Debitur">
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
</div>
</div>
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
@endif
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mt-5">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal_survey" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-tanggal_survey" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -27,24 +63,33 @@
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture->name))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Wakil Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input" placeholder="Masukkan Hubungan Calon Debitur">
<input type="text" name="nama_wakil" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input" placeholder="Masukkan Hubungan Calon Debitur">
<input type="text" name="hub_calon_debitur" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
@@ -65,41 +110,69 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">BPKB</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="tanggal_survey" class="input" placeholder="BPKP">
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<p class="text-2sm text-gray-700">N/A</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">STNK</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="tanggal_survey" class="input" placeholder="STNK">
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<p class="text-2sm text-gray-700">N/A</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi kendaraan sesuai dokument</label>
<label class="form-label max-w-56 text-md">Deskripsi kendaraan sesuai dokument :</label>
<div class="flex flex-wrap items-baseline w-full">
@error('hadapMataAngin')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
@php
$inputDataJaminan = [];
$inputDataJaminan = [
['label' => 'Tipe/Model', 'index' => 0],
['label' => 'Merek', 'index' => 1],
['label' => 'Tahun Pembuatan', 'index' => 2],
['label' => 'Negara Pembuat', 'index' => 3],
['label' => 'Kondisi Mesin', 'index' => 4],
[
'label' => 'Nama pemilik',
'name' => 'nama_pemilik',
'index' => 0,
],
[
'label' => 'Nomor polisi',
'name' => 'nomor_polisi_jaminan',
'index' => 1,
],
[
'label' => 'Merek',
'name' => 'merek_jaminan',
'index' => 2,
],
[
'label' => 'jenis',
'name' => 'jenis',
'index' => 3,
],
[
'label' => 'Warna',
'name' => 'warna_jaminan',
'index' => 4,
],
[
'label' => 'Nomor Rangka/NIK/VIN',
'name' => 'nomor_rangka_jaminan',
'index' => 5,
],
[
'label' => 'Nomor Mesin',
'name' => 'nomor_mesin_jaminan',
'index' => 6,
],
[
'label' => 'Masa Berlaku STNK',
'name' => 'masa_stnk',
'index' => 7,
],
[
'label' => 'Masa Berlaku Pajak',
'name' => 'masa_pajak',
'index' => 8,
],
];
@endphp
@@ -109,26 +182,548 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
placeholder="Masukkan {{ $item['label'] }}">
<p class="text-2sm text-gray-700">N/A</p>
</div>
</div>
@endforeach
@endif
</div>
</div>
</div>
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Kondisi Fisik Objek</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Kendaraan</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col items-start gap-4">
@if (isset($saranaPelengkap))
@foreach ($saranaPelengkap as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="kendaraan[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('kendaraan', $forminspeksi['kendaraan'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }}
</label>
<input type="text" name="sarana_pelengkap_input[]" class="input w-full"
id="bentukTanahInput" placeholder="Masukkan {{ $item->name }}..."
value="{{ old('sarana_pelengkap_input.' . $loop->index, $forminspeksi['sarana_pelengkap_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
</div>
<em id="error-kendaraan" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Kondisi</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="kondisi" class="input" placeholder="Masukkan Kondisi">
<em id="error-kondisi" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nomor polisi</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$details = json_decode($item->detail);
$nomo_polisi = isset($details['nomo_polisi']) ? $details['nomo_polisi'] : 'N/A';
@endphp
<p class="text-2sm text-gray-700">{{ $nomo_polisi }} </p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="nomor_polisi" value="sesuai"
onclick="toggleTidakSesuai('nomor_polisi', 'nomor_polis_tidak_sesuai')"
{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input type="radio" class="radio" name="nomor_polisi" value="tidak sesuai"
onclick="toggleTidakSesuai('nomor_polisi', 'nomor_polis_tidak_sesuai')"
{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span>
</label>
<input type="text" name="nomor_polis_tidak_sesuai" id="nomor_polis_tidak_sesuai"
class="input w-full" placeholder="Masukan Nomor polisi"
value="{{ old('nomor_polis_tidak_sesuai', $forminspeksi['nomor_polis_tidak_sesuai'] ?? '') }}"
style="{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
</div>
<em id="error-nomor_polisi" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Merek</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$details = json_decode($item->detail);
$merek = isset($details['merek']) ? $details['merek'] : 'N/A';
@endphp
<p class="text-2sm text-gray-700">{{ $merek }} </p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="merek" value="sesuai"
onclick="toggleTidakSesuai('merek', 'merek_tidak_sesuai')"
{{ old('merek', $forminspeksi['merek'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input type="radio" class="radio" name="merek" value="tidak sesuai"
onclick="toggleTidakSesuai('merek', 'merek_tidak_sesuai')"
{{ old('merek', $forminspeksi['merek'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span>
</label>
<input type="text" name="merek_tidak_sesuai" id="merek_tidak_sesuai"
class="input w-full" placeholder="Masukan Merek"
value="{{ old('merek_tidak_sesuai', $forminspeksi['merek_tidak_sesuai'] ?? '') }}"
style="{{ old('merek', $forminspeksi['merek'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
</div>
<em id="error-merek" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Warna</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$details = json_decode($item->detail);
$warna = isset($details['warna']) ? $details['warna'] : 'N/A';
@endphp
<p class="text-2sm text-gray-700">{{ $warna }} </p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="warna" value="sesuai"
onclick="toggleTidakSesuai('warna', 'warna_tidak_sesuai')"
{{ old('warna', $forminspeksi['warna'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input type="radio" class="radio" name="warna" value="tidak sesuai"
onclick="toggleTidakSesuai('warna', 'warna_tidak_sesuai')"
{{ old('warna', $forminspeksi['warna'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span>
</label>
<input type="text" name="warna_tidak_sesuai" id="warna_tidak_sesuai"
class="input w-full" placeholder="Masukan Warna"
value="{{ old('warna_tidak_sesuai', $forminspeksi['warna_tidak_sesuai'] ?? '') }}"
style="{{ old('warna', $forminspeksi['warna'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
</div>
<em id="error-warna" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nomor Rangka</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$details = json_decode($item->detail);
$nomor_rangka = isset($details['nomor_rangka']) ? $details['nomor_rangka'] : 'N/A';
@endphp
<p class="text-2sm text-gray-700">{{ $nomor_rangka }} </p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="nomor_rangka" value="sesuai"
onclick="toggleTidakSesuai('nomor_rangka', 'nomor_rangka_tidak_sesuai')"
{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input type="radio" class="radio" name="nomor_rangka" value="tidak sesuai"
onclick="toggleTidakSesuai('nomor_rangka', 'nomor_rangka_tidak_sesuai')"
{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span>
</label>
<input type="text" name="nomor_rangka_tidak_sesuai" id="nomor_rangka_tidak_sesuai"
class="input w-full" placeholder="Masukan Nomor Rangka"
value="{{ old('nomor_rangka_tidak_sesuai', $forminspeksi['nomor_rangka_tidak_sesuai'] ?? '') }}"
style="{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
</div>
<em id="error-nomor_rangka" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nomor Mesin</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$details = json_decode($item->detail);
$nomor_mesin = isset($details['nomor_mesin']) ? $details['nomor_mesin'] : 'N/A';
@endphp
<p class="text-2sm text-gray-700">{{ $nomor_mesin }} </p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="nomor_mesin" value="sesuai"
onclick="toggleTidakSesuai('nomor_mesin', 'nomor_mesin_tidak_sesuai')"
{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input type="radio" class="radio" name="nomor_mesin" value="tidak sesuai"
onclick="toggleTidakSesuai('nomor_mesin', 'nomor_mesin_tidak_sesuai')"
{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span>
</label>
<input type="text" name="nomor_mesin_tidak_sesuai" id="nomor_mesin_tidak_sesuai"
class="input w-full" placeholder="Masukan Nomor Mesin"
value="{{ old('nomor_mesin_tidak_sesuai', $forminspeksi['nomor_mesin_tidak_sesuai'] ?? '') }}"
style="{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
</div>
<em id="error-nomor_mesin" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Posisi Kilometer</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="posisi_kilometer" class="input" placeholder="Posisi Kilometer">
<em id="error-posisi_kilometer" class="alert text-danger text-sm"></em>
</div>
</div>
@php
$inputDataJaminan = [
[
'label' => 'Transmisi',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'transmisi',
'index' => 0,
],
[
'label' => 'Mesin dan panel Instrument',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'mesin_panel_instrument',
'index' => 1,
],
[
'label' => 'Fungsi Mesin dan panel Instument',
'value' => ['Berfungsi', 'Rusak'],
'name' => 'fungsi_mesin_panel_instrument',
'index' => 2,
],
[
'label' => 'Interior',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'interior',
'index' => 3,
],
[
'label' => 'Jumlah pintu',
'value' => ['Dua Pintu', 'Empat Pintu', 'Lain-Lain'],
'name' => 'jumlah_pintu',
'index' => 4,
],
[
'label' => 'Rangka dan karoseri',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'rangka_karoseri',
'index' => 5,
],
[
'label' => 'Ban',
'value' => ['Standard', 'Tidak Standard'],
'name' => 'ban',
'index' => 6,
],
[
'label' => 'Velg',
'value' => ['Standard', 'Tidak Standard'],
'name' => 'velg',
'index' => 7,
],
[
'label' => 'Bamper Depan',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'bamper_depan',
'index' => 8,
],
[
'label' => 'Bamper Belakang',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'bamper_belakang',
'index' => 9,
],
[
'label' => 'Lampu depan',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'lampu_depan',
'index' => 10,
],
[
'label' => 'Lampu belakang',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'lampu_belakang',
'index' => 11,
],
[
'label' => 'Kaca kendaraan',
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
'name' => 'kaca_kendaraan',
'index' => 12,
],
[
'label' => 'Air Conditioner',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'air_conditioner',
'index' => 13,
],
[
'label' => 'Tape/Radio/CD dan perlengkapan (Equalizer, Booster, dll)',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'tape_radio_cd',
'index' => 14,
],
[
'label' => 'Sensor parkir',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'sensor_parkir',
'index' => 15,
],
[
'label' => 'Sensor Camera (360), Recorder',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'sensor_camera_recorder',
'index' => 16,
],
[
'label' => 'Lcd',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'lcd',
'index' => 17,
],
[
'label' => 'Sabuk Keselamatan',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'sabuk_keselamatan',
'index' => 18,
],
[
'label' => 'Airbag',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'airbag',
'index' => 19,
],
[
'label' => 'Asuransi',
'value' => ['Ada', 'Tidak Ada'],
'name' => 'asuransi',
'index' => 20,
],
];
@endphp
@if (count($inputDataJaminan) > 0)
@foreach ($inputDataJaminan as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col items-start gap-4">
@if (isset($item['value']))
@foreach ($item['value'] as $value)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="{{ $item['name'] }}[]" type="checkbox"
value="{{ $value }}"
{{ in_array($value, old($item['name'], $forminspeksi[$item['name']] ?? [])) ? 'checked' : '' }} />
{{ $value }}
</label>
<input type="text" name="{{ $item['name'] }}_input[]"
class="input w-full"
id="bentukTanahInput-{{ $loop->parent->index }}-{{ $loop->index }}"
placeholder="Masukkan {{ $value }}..."
value="{{ old($item['name'] . '_input.' . $loop->index, $forminspeksi[$item['name'] . '_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
</div>
<div class="w-full">
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
<em id="error-{{ $item['name'] }}-input-{{ $loop->index }}"
class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
<label class="form-label max-w-56">Perusahaan Asuransi</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea name="deskripsi" id="" class="textarea"></textarea>
@error('deskripsi')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<input type="text" name="perusahaan_asuransi" class="input"
placeholder="Pesurahaan Asuransi">
<em class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tahun Berakhir</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tahun_berakhir" class="input" placeholder="Tahun berakhir">
<em class="alert text-danger text-sm"></em>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-white rounded-lg overflow-hidden">
<div class="card-body">
<div class=" py-4 ">
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Analisa makro</label>
<div class="flex flex-wrap items-baseline w-full" id="analisa-makro-container">
<div class="analisa_makro flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="analisa_makro[]" rows="3" placeholder="Tambahkan keterangan"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-analisa_makro" class="alert text-danger text-sm"></em>
</div>
<button class="btn btn-primary btn-sm mt-5" type="button"
onclick="addClonableItem('analisa-makro-container', 'analisa_makro')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Kesimpulan</label>
<div id="kesimpulan-container" class="flex flex-wrap items-baseline w-full">
<div class="kesimpulan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="kesimpulan[]" rows="3">{{ old('kesimpulan.0', $forminspeksi['kesimpulan'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-kesimpulan" class="alert text-danger text-sm"></em>
</div>
<button type="button"
onclick="addClonableItem('kesimpulan-container', 'kesimpulan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Catatan Lainnya</label>
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-catatan" class="alert text-danger text-sm"></em>
</div>
<button type="button"
onclick="addClonableItem('catatan-container', 'catatan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@@ -8,13 +8,13 @@
$inputDataLoaksi = [];
$inputDataLoaksi = [
['label' => 'Nama Jalan', 'index' => 0, 'name' => 'nama_jalan', 'value' => old('lokasi_jalan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_jalan : '')],
['label' => 'Nama Jalan', 'index' => 0, 'name' => 'nama_jalan', 'value' => old('nama_jalan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_jalan : '')],
['label' => 'Perumahan/Gang', 'index' => 1, 'name' => 'perumahan_gang', 'value' => old('lokasi_perumahan_gang', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_perumahan_gang : '')],
['label' => 'Blok/Nomor', 'index' => 2, 'name' => 'blok_nomor', 'value' => old('lokasi_blok_nomor', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_blok_nomor : '')],
['label' => 'Desa/Kelurahan', 'index' => 3, 'name' => 'desa_kelurahan', 'value' => old('lokasi_desa_kelurahan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_desa_kelurahan : '')],
['label' => 'Kecamatan', 'index' => 4, 'name' => 'kecamatan' , 'value' => old('lokasi_kecamatan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kecamatan : '')],
['label' => 'Kota/Kotamadya', 'index' => 5, 'name' => 'kota_kotamadya', 'value' => old('lokasi_kota_kotamadya', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kota_kotamadya : '')],
['label' => 'Provinsi', 'index' => 6, 'name' => 'provinsi', 'value' => old('lokasi_provinsi', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_provinsi : '')],
['label' => 'Blok/Nomor', 'index' => 2, 'name' => 'blok_nomor', 'value' => old('blok_nomor', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_blok_nomor : '')],
['label' => 'Desa/Kelurahan', 'index' => 3, 'name' => 'desa_kelurahan', 'value' => old('desa_kelurahan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_desa_kelurahan : '')],
['label' => 'Kecamatan', 'index' => 4, 'name' => 'kecamatan' , 'value' => old('kecamatan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kecamatan : '')],
['label' => 'Kota/Kotamadya', 'index' => 5, 'name' => 'kota_madya', 'value' => old('kota_madya', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kota_kotamadya : '')],
['label' => 'Provinsi', 'index' => 6, 'name' => 'provinsi', 'value' => old('provinsi', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_provinsi : '')],
];
@endphp

View File

@@ -1,27 +1,97 @@
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
</div>
<div class="grid gap-5 grid-cols-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tujuan Penilaian</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->tujuanPenilaian))
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-base line w-full">
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
@endif
</div>
</div>
</div>
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
</div>
<div class="grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture->name))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nama Wakil Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="nama_wakil" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="hub_calon_debitur" class="input"
placeholder="Masukkan Hubungan Calon Debitur">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
{{-- lokasi jaminan --}}
@include('lpj::surveyor.components.lokasi-jaminan')
</div>
</div>
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
<div class="card-body">
<div class="py-4 px-6">
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
</div>
@@ -29,7 +99,8 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Model</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
<select
class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
name="hadapMataAngin">
<option value="">Select Model Kendaraan </option>
@if (isset($arahMataAngin))
@@ -51,11 +122,31 @@
$inputDataJaminan = [];
$inputDataJaminan = [
['label' => 'Tipe/Model', 'index' => 0],
['label' => 'Merek', 'index' => 1],
['label' => 'Tahun Pembuatan', 'index' => 2],
['label' => 'Negara Pembuat', 'index' => 3],
['label' => 'Kondisi Mesin', 'index' => 4],
[
'label' => 'Tipe/Model',
'name' => 'tipe_model',
'index' => 0,
],
[
'label' => 'Merek',
'name' => 'merek',
'index' => 1,
],
[
'label' => 'Tahun Pembuatan',
'name' => 'tahun_pembuatan',
'index' => 2,
],
[
'label' => 'Negara Pembuat',
'name' => 'negara_pembuat',
'index' => 3,
],
[
'label' => 'Kondisi Mesin',
'name' => 'kondisi_mesin',
'index' => 4,
],
];
@endphp
@@ -65,12 +156,12 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="bentuk_tanah" class="input"
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}">
@error('bentuk_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@@ -94,6 +185,4 @@
</button>
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@@ -316,9 +316,6 @@
function toggleJenisAsset(params) {
const inputData = document.querySelector(`input[name="${params}"]:checked`);
const luasTanah = document.getElementById('jenis_asset');
@@ -347,25 +344,5 @@
const selectElement = document.getElementById('selectTidakSesuai');
selectElement.style.display = showSelect ? 'block' : 'none';
}
const perwakilanContainer = document.getElementById('perwakilan');
const addPerwakilanButton = document.getElementById('addPerwakilan');
// Tambahkan event listener untuk tombol "Tambah"
addPerwakilanButton.addEventListener('click', function() {
// Clone elemen ".perwakilan"
const newDiv = perwakilanContainer.querySelector('.perwakilan').cloneNode(true);
newDiv.querySelector('input').value = '';
const deleteButton = newDiv.querySelector('.delete-button');
deleteButton.style.display = 'inline-block';
deleteButton.addEventListener('click', function() {
newDiv.remove();
});
perwakilanContainer.appendChild(newDiv);
});
</script>
@endpush

View File

@@ -18,45 +18,7 @@
@endpush
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
Surveyor
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('surveyor.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i>
Back</a>
</div>
</div>
<div class="card-body lg:py-7.5 grid grid-cols-3">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nomor Register Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Waktu Survei:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->penilaian->tanggal_kunjungan }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Keterangan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->penilaian->keterangan }}
</span>
</div>
</div>
</div>
@include('lpj::component.detail-jaminan',['backLink'=>'surveyor.index'])
@@ -74,17 +36,17 @@
<a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'foto'])) }}"
class="btn btn-xs {{ request()->has('form') && request('form') == 'foto' ? 'btn-outline btn-primary' : 'btn-light' }}">FOTO</a>
{{-- <a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'data-pembanding'])) }}"
<a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'data-pembanding'])) }}"
class="btn btn-xs {{ request()->has('form') && request('form') == 'data-pembanding' ? 'btn-outline btn-primary' : 'btn-light' }}">DATA
PEMBANDING</a> --}}
PEMBANDING</a>
</div>
</div>
<div class="card-body">
@if (request()->has('form') && request('form') == 'denah')
@include('lpj::surveyor.components.card-tambah')
{{-- @elseif(request()->has('form') && request('form') == 'data-pembanding')
@include('lpj::surveyor.components.data-pembanding') --}}
@elseif(request()->has('form') && request('form') == 'data-pembanding')
@include('lpj::surveyor.components.card-tambah')
@elseif(request()->has('form') && request('form') == 'foto')
@include('lpj::surveyor.components.card-tambah')
@else
@@ -94,9 +56,7 @@
<div class="card-footer ">
<div class="flex gap-5">
<button type="button" id="btnProses" class="btn btn-success">
Proses
</button>
<button type="button" id="btnSubmit" class="btn btn-primary">
Submit
</button>
@@ -111,8 +71,6 @@
<script>
document.addEventListener('DOMContentLoaded', function() {
checkButtonStatus();
document.getElementById('btnProses').addEventListener('click', onProses);
document.getElementById('btnSubmit').addEventListener('click', onSubmit);
});

View File

@@ -472,7 +472,7 @@ Route::middleware(['auth'])->group(function () {
Route::post('store', [SurveyorController::class, 'store'])->name('store');
Route::post('storeDenah', [SurveyorController::class, 'storeDenah'])->name('storeDenah');
Route::put('storeJadwal', [SurveyorController::class, 'storeJadwal'])->name('storeJadwal');
Route::get('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved');
Route::put('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved');
Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto');
Route::get('checkButtonStatus/{id}', [SurveyorController::class, 'checkButtonStatus'])->name('checkButtonStatus');
@@ -480,7 +480,7 @@ Route::middleware(['auth'])->group(function () {
Route::get('inspeksi/{id}/{jaminanId}', [SurveyorController::class, 'formInspeksi'])->name('inspeksi');
Route::get('denah/{id}/{jaminanId}', [SurveyorController::class, 'denah'])->name('denah');
Route::get('foto/{id}/{jaminanId}', [SurveyorController::class, 'foto'])->name('foto');
Route::get('data-pembanding/{id}', [SurveyorController::class, 'dataPembanding'])->name('data-pembanding');
Route::get('data-pembanding/{id}/{jaminanId}', [SurveyorController::class, 'dataPembanding'])->name('data-pembanding');
Route::get('submitSurveyor/{id}', [SurveyorController::class, 'submitSurveyor'])->name('submitSurveyor');
});