Files
mylesen/resources/views/penjaja/mohon.blade.php

963 lines
49 KiB
PHP

@extends('layouts.appmin')
@section('tajuk')
Permohonan Lesen Penjaja
@endsection
@section('css')
<!-- Select2 -->
<link rel="stylesheet" href="{{ asset('plugins/select2/css/select2.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css') }}">
<link href="{{ asset('css/jsapi-template-main.css') }}" rel="stylesheet" type="text/css"/>
<link href="https://js.arcgis.com/4.25/esri/css/main.css" rel="stylesheet" type="text/css" />
<style>
#viewDiv {
padding: 0;
margin: 0;
height: 50vh;
width: 100%;
touch-action: none;
}
</style>
@endsection
@section('breadcrumb')
<ul class="breadcrumbs mb-3">
<li class="nav-home">
<a href="#">
<i class="icon-home"></i>
</a>
</li>
<li class="separator">
<i class="icon-arrow-right"></i>
</li>
<li class="nav-item">
<a href="#">Penjaja</a>
</li>
<li class="separator">
<i class="icon-arrow-right"></i>
</li>
<li class="nav-item">
<a href="#">Permohonan Baru</a>
</li>
</ul>
@endsection
@section('content')
@if (session('success'))
<div class="alert alert-success" role="alert">
{{ session('success') }}
</div>
@endif
<form action="{{route('penjaja-simpan_mohon')}}" method="post" enctype="multipart/form-data">
@csrf
<input type="hidden" name="pemohon_id" value="{{$user->id}}">
<input type="hidden" name="mohon_id" value="{{$permohonan?->id}}">
<div class="row mt-4">
<div class="col-sm-12 col-lg-6">
<div class="card mb-3">
<div class="card-header">
<h3 class="card-title">MAKLUMAT PERIBADI PEMOHON</h3>
</div> <!-- /.card-header -->
<div class="card-body">
<dl class="row">
<dt class="col-sm-3 col-md-2">No KP</dt>
<dd class="col-sm-9 col-md-10">{{ old('nokp', $user->nokp) }}</dd>
<dt class="col-sm-3 col-md-2">Nama</dt>
<dd class="col-sm-9 col-md-10">{{ old('name', $user->name) }}</dd>
<dt class="col-sm-3 col-md-2">Email</dt>
<dd class="col-sm-3 col-md-4">{{ old('email', $user->email) }}</dd>
<dt class="col-sm-3 col-md-2">No Telefon</dt>
<dd class="col-sm-3 col-md-4">{{ old('notelefon', $user->notelefon) }}</dd>
<dt class="col-sm-3 col-md-2">Alamat</dt>
<dd class="col-sm-9 col-md-10">{{ old('alamat', $user->alamat) }}</dd>
<dt class="col-sm-6 col-md-2">Jantina</dt>
<dd class="col-sm-6 col-md-4">{{ old('jantina', $user->jantina) }}</dd>
<dt class="col-sm-6 col-md-2">Bangsa</dt>
<dd class="col-sm-6 col-md-4">{{ old('bangsa', $user->bangsa) }}</dd>
</dl>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h3 class="card-title">MAKLUMAT PERNIAGAAN ( SSM )</h3>
</div> <!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6 mb-3">
<label for="nossm">No SSM</label>
<input id="nossm" name="nossm" type="text"
value="{{ old('nossm', $permohonan?->syarikat?->nossm) }}" autofocus
class="form-control @error('nossm') is-invalid @enderror">
@error('nossm')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="col-md-6 mb-3">
<label for="jenis_perniagaan">Jenis Perniagaan</label>
<select id="jenis_perniagaan" name="jenis_perniagaan" class="form-select @error('jenis_perniagaan') is-invalid @enderror" required>
<option value=""></option>
<option value="milikan tunggal" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'milikan tunggal' ? 'selected' : ''}}>milikan tunggal</option>
<option value="perkongsian" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'perkongsian' ? 'selected' : ''}}>perkongsian</option>
<option value="perkongsian liabiliti terhad" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'perkongsian liabiliti terhad' ? 'selected' : ''}}>perkongsian liabiliti terhad</option>
<option value="sendirian berhad" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'sendirian berhad' ? 'selected' : ''}}>sendirian berhad</option>
<option value="berhad" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'berhad' ? 'selected' : ''}}>berhad</option>
<option value="koperasi" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'koperasi' ? 'selected' : ''}}>koperasi</option>
<option value="pertubuhan/persatuan/kelab" {{ old('jenis_perniagaan', $permohonan?->syarikat?->jenis_perniagaan) == 'pertubuhan/persatuan/kelab' ? 'selected' : ''}}>pertubuhan/persatuan/kelab</option>
</select>
@error('jenis_perniagaan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="row">
<div class="mb-3">
<label for="nama_perniagaan">Nama Perniagaan</label>
<input id="nama_perniagaan" name="nama_perniagaan" type="text"
value="{{ old('nama_perniagaan', $permohonan?->syarikat?->name) }}" required autofocus autocomplete="nama_perniagaan"
class="form-control @error('nama_perniagaan') is-invalid @enderror">
@error('nama_perniagaan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="row">
<div class="col-md-12 mb-3">
<label for="alamat_perniagaan">Alamat Perniagaan</label>
<textarea id="alamat_perniagaan" name="alamat_perniagaan" type="text" class="form-control" required>{{ old('alamat_perniagaan', $permohonan?->syarikat?->alamat) }}</textarea>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="notelefon_perniagaan">No Telefon</label>
<input id="notelefon_perniagaan" name="notelefon_perniagaan" type="text" class="form-control" value="{{ old('notelefon_perniagaan', $permohonan?->syarikat?->notelefon) }}" required autofocus autocomplete="notelefon_perniagaan" />
</div>
<div class="col-md-6">
<label for="bil_cawangan">Bil Cawangan</label>
<input id="bil_cawangan" name="bil_cawangan" type="text" class="form-control" value="{{ old('bil_cawangan', $permohonan?->syarikat?->bil_cawangan) }}" required autofocus autocomplete="bil_cawangan" />
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h3 class="card-title">PERMOHONAN LESEN PENJAJA</h3>
</div> <!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="jenis_penjaja">Jenis Penjaja</label>
<select id="jenis_penjaja" class="form-select @error('jenis_penjaja') is-invalid @enderror" name="jenis_penjaja">
<option value="">Pilih Jenis Penjaja</option>
@foreach($jenis_penjajas as $jenis_penjaja)
<option value="{{ $jenis_penjaja->id }}"
data-kategori="{{ strtolower($jenis_penjaja->kategori) }}"
data-jenis="{{ strtolower($jenis_penjaja->jenis) }}"
@selected(old('jenis_penjaja', $permohonan?->jenis_penjaja_id) == $jenis_penjaja->id)>
{{ ucwords($jenis_penjaja->kategori) }} ({{ $jenis_penjaja->jenis }})
</option>
@endforeach
<option value="999"
data-kategori="lain"
data-jenis="lain"
{{ old('jenis_penjaja', $permohonan?->jenis_penjaja_id) == '0' ? 'selected' : '' }}>Lain-lain</option>
</select>
@error('jenis_penjaja')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="jenis_penjaja_lain">Nyatakan Jenis Penjaja Lain</label>
<input id="jenis_penjaja_lain" class="form-control @error('jenis_penjaja_lain') is-invalid @enderror" type="text" name="jenis_penjaja_lain" disabled value="{{ old('jenis_penjaja_lain', $permohonan?->jenis_lain) }}" autofocus autocomplete="jenis_penjaja_lain">
@error('jenis_penjaja_lain')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="jenis_kenderaan">Jenis Kenderaan</label>
<select id="jenis_kenderaan" class="form-select @error('jenis_kenderaan') is-invalid @enderror" name="jenis_kenderaan" >
<option value=""></option>
<option value="kereta sorong" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'kereta sorong' ? 'selected' : ''}}>kereta sorong</option>
<option value="basikal" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'basikal' ? 'selected' : ''}}>basikal</option>
<option value="motosikal" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'motosikal' ? 'selected' : ''}}>motosikal</option>
<option value="beca / basikal roda tiga" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'beca / basikal roda tiga' ? 'selected' : ''}}>beca / basikal roda tiga</option>
<option value="motosikal roda tiga" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'motosikal roda tiga' ? 'selected' : ''}}>motosikal roda tiga</option>
<option value="kereta / wagon" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'kereta / wagon' ? 'selected' : ''}}>kereta / wagon</option>
<option value="van" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'van' ? 'selected' : ''}}>van</option>
<option value="lori" {{ old('jenis_kenderaan', $permohonan?->jenis_kenderaan) == 'lori' ? 'selected' : ''}}>lori</option>
</select>
@error('jenis_kenderaan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
<small>Penjaja berkenderaan / Foodtruck / Car boot Sale sahaja</small>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="no_pendaftaran">No Pendaftaran Kenderaan</label>
<input id="no_pendaftaran" class="form-control @error('no_pendaftaran') is-invalid @enderror" type="text" name="no_pendaftaran" value="{{ old('no_pendaftaran', $permohonan?->no_pendaftaran) }}" autofocus autocomplete="no_pendaftaran">
@error('no_pendaftaran')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="status_tanah">Status Tanah</label>
<select id="status_tanah" class="form-select @error('status_tanah') is-invalid @enderror" name="status_tanah">
<option value="">Pilih Status Tanah</option>
<option value="hak milik persendirian" {{ old('status_tanah', $permohonan?->status_tanah) == 'hak milik persendirian' ? 'selected' : '' }}>hak milik persendirian</option>
<option value="tanah kerajaan(rezab)" {{ old('status_tanah', $permohonan?->status_tanah) == 'tanah kerajaan(rezab)' ? 'selected' : '' }}>tanah kerajaan(rezab)</option>
<option value="tanah sewa" {{ old('status_tanah', $permohonan?->status_tanah) == 'tanah sewa' ? 'selected' : '' }}>tanah sewa</option>
<option value="tapak parkir" {{ old('status_tanah', $permohonan?->status_tanah) == 'tapak parkir' ? 'selected' : '' }}>tapak parkir</option>
<option value="lain-lain" {{ old('status_tanah', $permohonan?->status_tanah) == 'lain-lain' ? 'selected' : '' }}>lain-lain</option>
</select>
@error('status_tanah')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-8">
<div class="row">
<div class="col-12">
<div class="mb-3">
<label for="penempatan">Pusat Penempatan(jika ada)</label>
<select name="penempatan" id="penempatan" class="form-select">
</select>
</div>
</div>
<div class="col-12">
<div class="mb-3">
<label for="kawasan">Kawasan Penjajaan</label>
<select name="kawasan" id="kawasan" class="form-select" required>
</select>
@error('kawasan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-12">
<div class="mb-3">
<label for="taman">Taman</label>
<select id="taman" name="taman" class="form-select" disabled>
<option value="">-- Sila Pilih Taman --</option>
</select>
@error('taman')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-12">
<div class="mb-3">
<label for="jalan">Jalan</label>
<select id="jalan" class="form-select" name="jalan" disabled>
<option value="">-- Sila Pilih Jalan --</option>
</select>
@error('jalan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="row">
<div class="col-md-12">
<div class="mb-3">
<label for="masa_jualan_mula">Masa Mula Jualan</label>
<input id="masa_jualan_mula" class="form-control @error('masa_jualan_mula') is-invalid @enderror" type="time" name="masa_jualan_mula" value="{{ old('masa_jualan_mula', $permohonan?->masa_jualan_mula) }}" autofocus autocomplete="masa_jualan_mula">
@error('masa_jualan_mula')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-12">
<div class="mb-3">
<label for="masa_jualan_tamat">Masa Tamat Jualan</label>
<input id="masa_jualan_tamat" class="form-control @error('masa_jualan_tamat') is-invalid @enderror" type="time" name="masa_jualan_tamat" value="{{ old('masa_jualan_tamat', $permohonan?->masa_jualan_tamat) }}" autofocus autocomplete="masa_jualan_tamat">
@error('masa_jualan_tamat')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12"><small>Kosongkan jika tidak berkaitan</small></div>
<div class="col-md-4">
<div class="mb-3">
<label for="makanan">Makanan</label>
<textarea id="makanan" class="form-control @error('makanan') is-invalid @enderror" name="makanan" autofocus autocomplete="makanan" rows="3" cols="40" placeholder="Nyatakan jenis jualan">{{ old('makanan', $permohonan?->makanan) }}</textarea>
@error('makanan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-4">
<div class="mb-3">
<label for="minuman">Minuman</label>
<textarea id="minuman" class="form-control @error('minuman') is-invalid @enderror" name="minuman" autofocus autocomplete="minuman" rows="3" cols="40" placeholder="Nyatakan jenis jualan" >{{ old('minuman', $permohonan?->minuman) }}</textarea>
@error('minuman')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-md-4">
<div class="mb-3">
<label for="lain">Lain-lain</label>
<textarea id="lain" class="form-control @error('lain') is-invalid @enderror" name="lain" autofocus autocomplete="lain" rows="3" cols="40" placeholder="Nyatakan jenis jualan" >{{ old('lain', $permohonan?->lain) }}</textarea>
@error('lain')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
</div>
</div>
</div> <!-- /.col -->
<div class="col-sm-12 col-lg-6">
<div class="card mb-3">
<div class="card-header">
<h3 class="card-title">DOKUMEN DIPERLUKAN</h3>
</div> <!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_kad_pengenalan">Salinan Kad Pengenalan</label>
<input id="doc_kad_pengenalan" class="form-control @error('doc_kad_pengenalan') is-invalid @enderror" type="file" name="doc_kad_pengenalan" value="{{ old('doc_kad_pengenalan') }}" autofocus autocomplete="doc_kad_pengenalan"/>
@error('doc_kad_pengenalan')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_kad_pengenalan))
@if ($doc_kad_pengenalan->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_kad_pengenalan->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_kad_pengenalan->pivot->path]) }}" alt="Salinan IC" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_gambar">Gambar Berukuran Passport</label>
<input id="doc_gambar" class="form-control @error('doc_gambar') is-invalid @enderror" type="file" name="doc_gambar" value="{{ old('doc_gambar') }}" autofocus autocomplete="doc_gambar"/>
@error('doc_gambar')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_gambar))
@if ($doc_gambar->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_gambar->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_gambar->pivot->path]) }}" alt="Gambar Passport" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_lokasi">Gambar Lokasi / Pelan</label>
<input id="doc_lokasi" class="form-control @error('doc_lokasi') is-invalid @enderror" type="file" name="doc_lokasi" value="{{ old('doc_lokasi') }}" autofocus autocomplete="doc_lokasi"/>
@error('doc_lokasi')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_lokasi))
@if ($doc_lokasi->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_lokasi->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_lokasi->pivot->path]) }}" alt="Gambar Lokasi" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_kebenaran">Surat kebenaran pemilik tanah / pemegang rezab /perjanjian yang sah</label>
<input id="doc_kebenaran" class="form-control" type="file" name="doc_kebenaran" value="{{ old('doc_kebenaran') }}" autofocus autocomplete="doc_kebenaran"/>
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_kebenaran))
@if ($doc_kebenaran->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_kebenaran->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_kebenaran->pivot->path]) }}" alt="Surat Kebenaran" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_kenderaan">Gambar Kenderaan</label>
<input id="doc_kenderaan" class="form-control" type="file" name="doc_kenderaan" value="{{ old('doc_kenderaan') }}" autofocus autocomplete="doc_kenderaan"/>
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_kenderaan))
@if ($doc_kenderaan->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_kenderaan->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_kenderaan->pivot->path]) }}" alt="Gambar Kenderaan" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_kenderaan_geran">Salinan Geran Kenderaan</label>
<input id="doc_kenderaan_geran" class="form-control" type="file" name="doc_kenderaan_geran" value="{{ old('doc_kenderaan_geran') }}" autofocus autocomplete="doc_kenderaan_geran"/>
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_kenderaan_geran))
@if ($doc_kenderaan_geran->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_kenderaan_geran->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_kenderaan_geran->pivot->path]) }}" alt="Gambar Kenderaan" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_suntikan_ty2">Salinan Sijil Suntikan TY2 (Pengendali makanan sahaja)</label>
<input id="doc_suntikan_ty2" class="form-control" type="file" name="doc_suntikan_ty2" value="{{ old('doc_suntikan_ty2') }}" autofocus autocomplete="doc_suntikan_ty2"/>
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_suntikan_ty2))
@if ($doc_suntikan_ty2->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_suntikan_ty2->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_suntikan_ty2->pivot->path]) }}" alt="Salinan Suntikan" style="max-width: 100px;">
@endif
@endif
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="doc_kursus_makanan">Salinan Sijil Kursus Pengendalian Makanan</label>
<input id="doc_kursus_makanan" class="form-control" type="file" name="doc_kursus_makanan" value="{{ old('doc_kursus_makanan') }}" autofocus autocomplete="doc_kursus_makanan"/>
</div>
</div>
<div class="col-sm-12">
@if(!is_null($doc_kursus_makanan))
@if ($doc_kursus_makanan->pivot->jenis_dokumen === 'pdf')
<a href="{{ route('dokumen.stream', [$permohonan?->id, $doc_kursus_makanan->pivot->path]) }}" target="_blank">View PDF</a>
@else
<img src="{{ route('dokumen.stream', [$permohonan?->id, $doc_kursus_makanan->pivot->path]) }}" alt="Salinan Sijil Kursus Pengendalian Makanan" style="max-width: 100px;">
@endif
@endif
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h3 class="card-title">LOKASI PENJAJAAN</h3>
</div> <!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="longitude">Longitud</label>
<input id="longitude" class="form-control" type="text" name="longitude" value="{{ old('longitude', $permohonan?->longitude) }}" autofocus autocomplete="longitude"/>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="latitude">Latitud</label>
<input id="latitude" class="form-control" type="text" name="latitude" value="{{ old('latitude', $permohonan?->latitude) }}" autofocus autocomplete="latitude"/>
</div>
</div>
</div>
<div class="mt-3">
<label>Cari Lokasi (Nominatim)</label>
<input type="text" id="searchBox" class="form-control" placeholder="Taip nama tempat… (contoh: Taman Sutera)">
<button id="searchBtn" type="button" class="btn btn-primary mt-2"><i class="fa-regular fa-magnifying-glass-location"></i> Cari</button>
</div>
<div id="viewDiv" style="height: 450px;" class="mt-4"></div>
</div>
</div>
</div> <!-- /.col -->
</div> <!--end::Row-->
<div class="row mt-4">
<div class="col-lg-12">
<div class="card">
<div class="card-body text-center">
<input id="hantar" class="btn btn-primary" type="submit" value="Simpan"/>
</div> <!-- /.card-header -->
</div> <!-- /.card-header -->
</div> <!-- /.col -->
</div> <!--end::Row-->
</form>
@endsection
@section('js')
<script src="{{ asset('plugins/select2/js/select2.full.min.js') }}"></script>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
// Preload value dari Blade
const defaultKawasanId = "{{ $permohonan->kawasan_id ?? '' }}";
const defaultTamanId = "{{ $permohonan->taman_id ?? '' }}";
const defaultJalanId = "{{ $permohonan->jalan_id ?? '' }}";
const defaultPenempatanId = "{{ $permohonan->penempatan_id ?? '' }}";
</script>
<script>
$(function() {
/* ============================================================
* 1. FIELD TOGGLE HANDLER (Jenis Penjaja & Jenis Kenderaan)
* ============================================================ */
function resetFields() {
$('#jenis_kenderaan')
.prop('disabled', true)
.val('');
$('#penempatan')
.prop('disabled', true)
.val('');
$('#jenis_penjaja_lain')
.prop('disabled', true)
.val('');
}
/*function handleJenisPenjaja() {
let selected = $("#jenis_penjaja").val();
$("#jenis_penjaja_lain").prop("disabled", selected !== "lain-lain");
if (selected !== "lain-lain") $("#jenis_penjaja_lain").val("");
}*/
function handleJenisPenjaja() {
resetFields();
const selected = $('#jenis_penjaja option:selected');
const kategori = selected.data('kategori');
const jenis = selected.data('jenis');
// Kategori: lain
if (kategori === 'lain') {
$('#jenis_penjaja_lain').prop('disabled', false);
$("#jenis_penjaja_lain").val("");
}
// Kategori: Berkenderaan
if (kategori === 'berkenderaan') {
$('#jenis_kenderaan').prop('disabled', false);
}
// Kategori: Statik + Jenis: Penempatan Berpusat
if (kategori === 'statik' && jenis === 'penempatan berpusat') {
$('#penempatan').prop('disabled', false);
}
}
function handleJenisKenderaan() {
let jenis = $("#jenis_kenderaan").val();
let disable = (jenis === "kereta sorong" || jenis === "basikal" || jenis === "");
$("#no_pendaftaran").prop("disabled", disable);
if (disable) $("#no_pendaftaran").val("");
}
// Run on load
handleJenisPenjaja();
handleJenisKenderaan();
// Event listener
$("#jenis_penjaja").on("change", handleJenisPenjaja);
$("#jenis_kenderaan").on("change", handleJenisKenderaan);
/* ============================================================
* 2. LEAFLET MAP + NOMINATIM SEARCH
* ============================================================ */
let defaultLat = {{ $permohonan?->latitude ?? 1.494314512652013 }};
let defaultLng = {{ $permohonan?->longitude ?? 103.63506317138673 }};
let defaultZoom = {{ isset($permohonan?->latitude) ? 16 : 12 }};
let marker;
// Init map
let map = L.map('viewDiv').setView([defaultLat, defaultLng], defaultZoom);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; OpenStreetMap'
}).addTo(map);
// Letak marker awal jika edit
if ("{{ $permohonan?->latitude ?? '' }}") {
marker = L.marker([defaultLat, defaultLng], { draggable: true }).addTo(map);
marker.on('dragend', updateInputByMarker);
}
// Click = create / move marker
map.on('click', function(e) {
placeMarker(e.latlng);
updateInputFromLatLng(e.latlng);
});
function placeMarker(latlng) {
if (!marker) {
marker = L.marker(latlng, { draggable: true }).addTo(map);
marker.on('dragend', updateInputByMarker);
} else {
marker.setLatLng(latlng);
}
}
function updateInputByMarker(e) {
updateInputFromLatLng(e.target.getLatLng());
}
function updateInputFromLatLng(latlng) {
$("#latitude").val(latlng.lat);
$("#longitude").val(latlng.lng);
}
/* ============================================================
* 3. FUNGSI CARI KOORDINAT (NOMINATIM API)
* ============================================================ */
function normalizeToIskandarPuteri(query) {
const kawasanIP = ['Skudai', 'Gelang Patah', 'Kangkar Pulai', 'Lima Kedai', 'Ulu Choh','Teknologi Johor', 'Pelabuhan Johor'];
const regex = new RegExp(',\\s*(' + kawasanIP.join('|') + ')$', 'i');
return query.replace(regex, ', Iskandar Puteri');
}
function nominatimSearch(q) {
const url = 'https://nominatim.openstreetmap.org/search?format=json&q=' + encodeURIComponent(q);
return fetch(url, {
headers: {
// Nominatim best practice: identify your app (kalau server-side lagi bagus)
'Accept': 'application/json'
}
}).then(r => r.json());
}
function applyLocation(place) {
const lat = parseFloat(place.lat);
const lon = parseFloat(place.lon);
map.setView([lat, lon], 17);
placeMarker({ lat, lng: lon });
updateInputFromLatLng({ lat, lng: lon });
}
async function cariKoordinat() {
let query = $("#searchBox").val().trim();
if (query.length < 3) {
alert("Masukkan nama tempat yang lebih spesifik.");
return;
}
// Candidate 1: asal
// Candidate 2: fallback IP (hanya kalau memang berubah)
const q2 = normalizeToIskandarPuteri(query);
const candidates = (q2 !== query) ? [query, q2] : [query];
try {
for (const q of candidates) {
const data = await nominatimSearch(q);
if (Array.isArray(data) && data.length > 0) {
applyLocation(data[0]);
return;
}
}
alert("Lokasi tak dijumpai: " + candidates[candidates.length - 1]);
} catch (err) {
console.error(err);
}
}
$("#searchBtn").on("click", cariKoordinat);
/* ============================================================
* 4. CASCADING DROPDOWN: KAWASAN → TAMAN → JALAN
* ============================================================ */
function loadPenempatan(defaultPenempatanId = null) {
$.getJSON('/get_penempatan', function (data) {
// reset dulu
const $penempatan = $('#penempatan');
$penempatan.empty().append('<option value="">-- Sila Pilih Penempatan --</option>');
data.forEach(p => {
$penempatan.append(
$('<option>', {
value: p.id,
text: p.nama
})
.attr('data-taman', p.taman_id ?? '')
.attr('data-kawasan', p.kawasan_id ?? '')
.attr('data-jalan', p.jalan_id ?? '')
.prop('selected', defaultPenempatanId && (String(p.id) === String(defaultPenempatanId)))
);
});
// kalau ada default selected, trigger change supaya auto select kawasan/taman
if (defaultPenempatanId) {
$penempatan.trigger('change');
}
});
}
/* function setSelectValue($select, value) {
if (value === null || value === undefined || value === '') return false;
$select.val(String(value));
// kalau option tu tak wujud (e.g. list kawasan belum load), val() tak akan melekat
return $select.val() === String(value);
} */
function loadKawasan() {
$.getJSON('/get_kawasan', function(data) {
$('#kawasan').append('<option value="">-- Sila Pilih Kawasan --</option>');
data.forEach(k => {
$('#kawasan').append(
$('<option>', {
value: k.id,
text: k.nama,
selected: k.id == defaultKawasanId
})
);
});
if (defaultKawasanId && defaultTamanId) {
loadTaman(defaultKawasanId, defaultTamanId);
}
});
}
function loadTaman(kawasanId, selectedId = null, done = null) {
$.getJSON('/get_taman', { kawasan_id: kawasanId }, function(data) {
$('#taman').empty().append('<option value="">-- Sila Pilih Taman --</option>');
data.forEach(t => {
$('#taman').append(
$('<option>', {
value: t.id,
text: t.nama,
selected: selectedId && (String(t.id) === String(selectedId))
})
);
});
$('#taman').prop('disabled', false);
// Kekalkan logic asal (default jalan) kalau kau still guna untuk edit page
if (selectedId && typeof defaultJalanId !== 'undefined' && defaultJalanId) {
loadJalan(selectedId, defaultJalanId);
}
if (typeof done === 'function') done();
});
}
function loadJalan(tamanId, selectedId = null, done = null) {
$.getJSON('/get_jalan', { taman_id: tamanId }, function(data) {
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>');
data.forEach(j => {
$('#jalan').append(
$('<option>', {
value: j.id,
text: j.nama,
selected: selectedId && (String(j.id) === String(selectedId))
})
);
});
$('#jalan').prop('disabled', false);
if (typeof done === 'function') done();
});
}
/* === EVENT LISTENER KAWASAN/TAMAN/JALAN === */
$("#kawasan").change(function() {
let kawasanId = $(this).val();
$('#taman').empty().append('<option value="">-- Sila Pilih Taman --</option>').prop('disabled', !kawasanId);
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>').prop('disabled', true);
if (kawasanId) loadTaman(kawasanId);
});
$("#taman").change(function() {
let tamanId = $(this).val();
let namaTaman = $(this).find("option:selected").text() || '';
let namaKawasan = $("#kawasan option:selected").text() || '';
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>').prop('disabled', !tamanId);
if (tamanId) {
loadJalan(tamanId);
// kalau ada penempatan, gabung bagi geocode lagi tepat
const q = namaTaman ? (namaTaman + "," + namaKawasan) : false;
if (q) {
$("#searchBox").val(q);
cariKoordinat();
}
}
});
$("#jalan").change(function() {
let textJalan = $(this).find("option:selected").text() || '';
let textTaman = $("#taman option:selected").text() || '';
if (textJalan) {
// susunan boleh ikut taste; ni aku letak jalan+taman+penempatan
const parts = [textJalan, textTaman].filter(Boolean);
$("#searchBox").val(parts.join(", "));
cariKoordinat();
}
});
$("#penempatan").on('change', function() {
$('#kawasan').val('');
$("#searchBox").val('');
const $opt = $("#penempatan option:selected");
const kawasanId = $opt.data('kawasan'); // required
const tamanId = $opt.data('taman'); // optional (boleh kosong)
const jalanId = $opt.data('jalan'); // optional (boleh kosong)
// Set kawasan dulu
$('#kawasan').val('');
$('#kawasan').val(kawasanId ? String(kawasanId) : '');
// Trigger logic kawasan (tapi kita tak rely event async)
$('#taman').empty().append('<option value="">-- Sila Pilih Taman --</option>').prop('disabled', true);
// Load taman & auto select kalau ada tamanId
loadTaman(kawasanId, tamanId ? String(tamanId) : null, function () {
// Kalau taman wujud & berjaya dipilih, trigger change taman untuk load jalan + search
if (tamanId && $('#taman').val() === String(tamanId)) {
$('#taman').trigger('change');
} else {
// taman optional / tak wujud dalam list -> update searchBox based on penempatan
const textPenempatan = ['#kawasan']
.map(id => $(id).val() && $(id + ' option:selected').text())
.filter(Boolean)
.join(', ');
if (textPenempatan) {
$("#searchBox").val(textPenempatan);
cariKoordinat();
}
}
});
// Trigger logic kawasan (tapi kita tak rely event async)
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>').prop('disabled', true);
// Load taman & auto select kalau ada tamanId
loadJalan(tamanId, jalanId ? String(jalanId) : null, function () {
// Kalau taman wujud & berjaya dipilih, trigger change taman untuk load jalan + search
if (jalanId && $('#jalan').val() === String(jalanId)) {
$('#jalan').trigger('change');
} else {
// taman optional / tak wujud dalam list -> update searchBox based on penempatan
const textPenempatan = ['#taman', '#kawasan']
.map(id => $(id).val() && $(id + ' option:selected').text())
.filter(Boolean)
.join(', ');
if (textPenempatan) {
$("#searchBox").val(textPenempatan);
cariKoordinat();
}
}
});
});
/* ============================================================
* 5. PAGE INIT LOAD
* ============================================================ */
loadKawasan();
loadPenempatan();
});
</script>
@endsection