356 lines
14 KiB
PHP
356 lines
14 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Redirect;
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Carbon\Carbon;
|
|
use Illuminate\View\View;
|
|
use App\Models\Syarikat;
|
|
use App\Models\USerSyarikat;
|
|
use App\Models\LesenPenjaja;
|
|
use App\Models\Dokumen;
|
|
use App\Models\LesenPenjajaDokumen;
|
|
use App\Models\JenisPenjaja;
|
|
|
|
class PenjajaController extends Controller
|
|
{
|
|
/**
|
|
* Display the user's profile form.
|
|
*/
|
|
|
|
public function list(Request $request){
|
|
$user = $request->user();
|
|
|
|
$permohonans = LesenPenjaja::where('user_id',$user->id)->get();
|
|
|
|
return view('dashboard', ['permohonans' => $permohonans]);
|
|
|
|
}
|
|
|
|
public function create(Request $request): View
|
|
{
|
|
// $lesen_penjaja = LesenPenjaja::find($request->session()->get('lesen_penjaja_id'));
|
|
$lesen_penjaja = new LesenPenjaja();
|
|
$jenis_penjajas = JenisPenjaja::where('status_data',1)->orderBy('kategori', 'desc')->orderBy('jenis','asc')->get();
|
|
|
|
$doc_kad_pengenalan = null;
|
|
$doc_gambar = null;
|
|
$doc_lokasi = null;
|
|
$doc_kebenaran = null;
|
|
$doc_kenderaan = null;
|
|
$doc_kenderaan_geran = null;
|
|
$doc_suntikan_ty2 = null;
|
|
$doc_kursus_makanan = null;
|
|
|
|
|
|
return view('penjaja.mohon', [
|
|
'user' => $request->user(),
|
|
'permohonan' => $lesen_penjaja,
|
|
'doc_kad_pengenalan' => $doc_kad_pengenalan,
|
|
'doc_gambar' => $doc_gambar,
|
|
'doc_lokasi' => $doc_lokasi,
|
|
'doc_kebenaran' => $doc_kebenaran,
|
|
'doc_kenderaan' => $doc_kenderaan,
|
|
'doc_kenderaan_geran' => $doc_kenderaan_geran,
|
|
'doc_suntikan_ty2' => $doc_suntikan_ty2,
|
|
'doc_kursus_makanan' => $doc_kursus_makanan,
|
|
'jenis_penjajas' => $jenis_penjajas
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handle an incoming registration request.
|
|
*
|
|
* @throws \Illuminate\Validation\ValidationException
|
|
*/
|
|
public function store(Request $request): RedirectResponse
|
|
{
|
|
|
|
/* $request->validate([
|
|
'nossm' => ['required', 'string', 'max:255'],
|
|
'jenis_perniagaan' => ['required', 'string', 'max:50'],
|
|
'nama_perniagaan' => ['required', 'string', 'max:250'],
|
|
'alamat_perniagaan' => ['required', 'string', 'min:10'],
|
|
'notelefon_perniagaan' => ['required'],
|
|
]);*/
|
|
|
|
$syarikat = Syarikat::firstOrCreate(['nossm'=>$request->nossm],
|
|
[
|
|
'name' => ltrim(rtrim($request->nama_perniagaan)),
|
|
'jenis_perniagaan' => $request->jenis_perniagaan,
|
|
'nossm' => ltrim(rtrim($request->nossm)),
|
|
'alamat' => ltrim(rtrim($request->alamat_perniagaan)),
|
|
'notelefon' => ltrim(rtrim($request->notelefon_perniagaan)),
|
|
'bil_cawangan' => ltrim(rtrim($request->bil_cawangan)),
|
|
]);
|
|
|
|
$user = $request->user();
|
|
$user_syarikat = UserSyarikat::create([
|
|
'user_id' => $user->id,
|
|
'syarikat_id' => $syarikat->id,
|
|
'status' => 'aktif'
|
|
]);
|
|
|
|
/* switch($request->jenis_penjaja){
|
|
case 'bukan kawasan berpusat':
|
|
case 'buah bermusim':
|
|
case 'food truck':
|
|
case 'foodtruck':
|
|
case 'car boot sale':
|
|
case 'sementara':
|
|
case 'berkenderaan':
|
|
$grup_laporan = 'penjaja sementara'; break;
|
|
case 'gerai':
|
|
case 'arked':
|
|
case 'pasar majlis': $grup_laporan = 'penjaja statik'; break;
|
|
case 'berpusat': $grup_laporan = 'penjaja berpusat'; break;
|
|
default: $grup_laporan = 'penjaja sementara'; break;
|
|
|
|
}*/
|
|
$grup_laporan = JenisPenjaja::find($request->jenis_penjaja);
|
|
|
|
|
|
if($request->mohon_id != ''){
|
|
$lesen_penjaja = LesenPenjaja::find($request->mohon_id);
|
|
$lesen_penjaja->user_id = $user->id;
|
|
$lesen_penjaja->syarikat_id = $syarikat->id;
|
|
$lesen_penjaja->jenis_penjaja_id = $request->jenis_penjaja;
|
|
$lesen_penjaja->jenis_lain = '';
|
|
$lesen_penjaja->status_tanah = $request->status_tanah;
|
|
$lesen_penjaja->status_lain = '';
|
|
$lesen_penjaja->kawasan_id = $request->kawasan;
|
|
$lesen_penjaja->taman_id = $request->taman;
|
|
$lesen_penjaja->jalan_id = $request->jalan;
|
|
$lesen_penjaja->penempatan_id = $request->penempatan;
|
|
$lesen_penjaja->makanan = $request->makanan;
|
|
$lesen_penjaja->minuman = $request->minuman;
|
|
$lesen_penjaja->lain = $request->lain;
|
|
$lesen_penjaja->masa_jualan_mula = $request->masa_jualan_mula;
|
|
$lesen_penjaja->masa_jualan_tamat = $request->masa_jualan_tamat;
|
|
$lesen_penjaja->jenis_kenderaan = $request->jenis_kenderaan;
|
|
$lesen_penjaja->no_pendaftaran = $request->no_pendaftaran;
|
|
$lesen_penjaja->longitude = $request->longitude;
|
|
$lesen_penjaja->latitude = $request->latitude;
|
|
$lesen_penjaja->group_laporan = $grup_laporan->kategori;
|
|
|
|
$lesen_penjaja->save();
|
|
}
|
|
else{
|
|
$lesen_penjaja = LesenPenjaja::create([
|
|
'user_id' => $user->id,
|
|
'syarikat_id' => $syarikat->id,
|
|
'jenis_penjaja_id' => $request->jenis_penjaja,
|
|
'jenis_lain' => '',
|
|
'status_tanah' => $request->status_tanah,
|
|
'status_lain' => '',
|
|
'kawasan_id' => $request->kawasan,
|
|
'taman_id' => $request->taman,
|
|
'jalan_id' => $request->jalan,
|
|
'penempatan_id' => $request->penempatan,
|
|
'makanan' => $request->makanan,
|
|
'minuman' => $request->minuman,
|
|
'lain' => $request->lain,
|
|
'masa_jualan_mula' => $request->masa_jualan_mula,
|
|
'masa_jualan_tamat' => $request->masa_jualan_tamat,
|
|
'jenis_kenderaan' => $request->jenis_kenderaan,
|
|
'no_pendaftaran' => $request->no_pendaftaran,
|
|
'longitude' => $request->longitude,
|
|
'latitude' => $request->latitude,
|
|
'group_laporan' => $grup_laporan->kategori
|
|
]);
|
|
}
|
|
|
|
$folder = 'dokumens/penjaja/'.$lesen_penjaja->id.'/';
|
|
$nama_doc = Dokumen::where('jenis', 'lesen_penjaja')->get();
|
|
foreach($nama_doc as $doc){
|
|
if ($request->hasFile($doc->nama)) { //ada upload?
|
|
|
|
$validated = $request->validate([
|
|
$doc->nama => 'file|mimes:jpg,png,pdf', // 2MB max
|
|
]);
|
|
|
|
// Store the file
|
|
$path = $request->file($doc->nama);
|
|
$extension = $path->extension(); // Determine the file's extension based on the file's MIME type...
|
|
|
|
$name = $doc->nama.".".$extension;
|
|
|
|
$path->storeAs($folder, $name);
|
|
|
|
$lesen_penjaja_dokumen = LesenPenjajaDokumen::updateOrCreate(
|
|
[
|
|
'lesen_penjaja_id' => $lesen_penjaja->id,
|
|
'dokumen_id' => $doc->id,
|
|
],
|
|
[
|
|
'lesen_penjaja_id' => $lesen_penjaja->id,
|
|
'dokumen_id' => $doc->id,
|
|
'path' => $name,
|
|
'jenis_dokumen' => $extension,
|
|
]);
|
|
|
|
}
|
|
}
|
|
|
|
// $request->session()->put('lesen_penjaja_id', $lesen_penjaja->id);
|
|
return redirect(route('penjaja-mohon-papar', ['id' => $lesen_penjaja->id]))->with('success', 'Permohonan telah disimpan sebagai draf. Klik butang \'Hantar Permohonan\' untuk teruskan.');
|
|
}
|
|
|
|
public function edit_permohonan(Request $request, $id){
|
|
$permohonan = LesenPenjaja::find($id);
|
|
$jenis_penjajas = JenisPenjaja::where('status_data',1)->orderBy('kategori', 'desc')->orderBy('jenis','asc')->get();
|
|
|
|
$doc_kad_pengenalan = null;
|
|
$doc_gambar = null;
|
|
$doc_lokasi = null;
|
|
$doc_kebenaran = null;
|
|
$doc_kenderaan = null;
|
|
$doc_kenderaan_geran = null;
|
|
$doc_suntikan_ty2 = null;
|
|
$doc_kursus_makanan = null;
|
|
if(!$permohonan->dokumens->isEmpty()){
|
|
$doc_kad_pengenalan = $permohonan->dokumens->firstWhere('nama', 'doc_kad_pengenalan');
|
|
$doc_gambar = $permohonan->dokumens->firstWhere('nama', 'doc_gambar');
|
|
$doc_lokasi = $permohonan->dokumens->firstWhere('nama', 'doc_lokasi');
|
|
$doc_kebenaran = $permohonan->dokumens->firstWhere('nama', 'doc_kebenaran');
|
|
$doc_kenderaan = $permohonan->dokumens->firstWhere('nama', 'doc_kenderaan');
|
|
$doc_kenderaan_geran = $permohonan->dokumens->firstWhere('nama', 'doc_kenderaan_geran');
|
|
$doc_suntikan_ty2 = $permohonan->dokumens->firstWhere('nama', 'doc_suntikan_ty2');
|
|
$doc_kursus_makanan = $permohonan->dokumens->firstWhere('nama', 'doc_kursus_makanan');
|
|
}
|
|
|
|
if(!is_null($permohonan)){
|
|
Gate::authorize('edit-sendiri', $permohonan);
|
|
|
|
return view('penjaja.mohon', [
|
|
'user' => $request->user(),
|
|
'permohonan' => $permohonan,
|
|
'doc_kad_pengenalan' => $doc_kad_pengenalan,
|
|
'doc_gambar' => $doc_gambar,
|
|
'doc_lokasi' => $doc_lokasi,
|
|
'doc_kebenaran' => $doc_kebenaran,
|
|
'doc_kenderaan' => $doc_kenderaan,
|
|
'doc_kenderaan_geran' => $doc_kenderaan_geran,
|
|
'doc_suntikan_ty2' => $doc_suntikan_ty2,
|
|
'doc_kursus_makanan' => $doc_kursus_makanan,
|
|
'jenis_penjajas' => $jenis_penjajas
|
|
]);
|
|
}
|
|
else{
|
|
return redirect(route('dashboard', absolute: false))->with('error', 'Permohonan tidak dijumpai');
|
|
}
|
|
}
|
|
|
|
public function hapus_permohonan($id){
|
|
$permohonan = LesenPenjaja::find($id);
|
|
Gate::authorize('hapus-sendiri', $permohonan);
|
|
|
|
|
|
$permohonan->delete();
|
|
|
|
|
|
return redirect(route('dashboard', absolute: false));
|
|
|
|
}
|
|
|
|
public function hantar_permohonan(Request $request){
|
|
$permohonan = LesenPenjaja::find($request->session()->get('lesen_penjaja_id'));
|
|
|
|
if(!is_null($permohonan)){
|
|
Gate::authorize('edit-sendiri', $permohonan);
|
|
|
|
$permohonan->status_progress = 'baru';
|
|
$permohonan->tarikhmohon = Carbon::now();
|
|
$permohonan->save();
|
|
|
|
return redirect(route('dashboard', absolute: false))->with('success', 'Permohonan berjaya dihantar.');
|
|
}
|
|
else{
|
|
return redirect(route('dashboard', absolute: false))->with('error', 'Permohonan tidak dijumpai');
|
|
}
|
|
|
|
}
|
|
|
|
public function papar_permohonan(Request $request, $id){
|
|
|
|
$permohonan = LesenPenjaja::find($id);
|
|
if($permohonan->status_progress == 'draf'){
|
|
$action = 'penjaja-mohon-hantar';
|
|
}
|
|
else{
|
|
$action = 'dashboard';
|
|
}
|
|
|
|
|
|
$request->session()->put('lesen_penjaja_id', $permohonan->id);
|
|
|
|
$doc_kad_pengenalan = null;
|
|
$doc_gambar = null;
|
|
$doc_lokasi = null;
|
|
$doc_kebenaran = null;
|
|
$doc_kenderaan = null;
|
|
$doc_kenderaan_geran = null;
|
|
$doc_suntikan_ty2 = null;
|
|
$doc_kursus_makanan = null;
|
|
if(!$permohonan->dokumens->isEmpty()){
|
|
$doc_kad_pengenalan = $permohonan->dokumens->firstWhere('nama', 'doc_kad_pengenalan');
|
|
$doc_gambar = $permohonan->dokumens->firstWhere('nama', 'doc_gambar');
|
|
$doc_lokasi = $permohonan->dokumens->firstWhere('nama', 'doc_lokasi');
|
|
$doc_kebenaran = $permohonan->dokumens->firstWhere('nama', 'doc_kebenaran');
|
|
$doc_kenderaan = $permohonan->dokumens->firstWhere('nama', 'doc_kenderaan');
|
|
$doc_kenderaan_geran = $permohonan->dokumens->firstWhere('nama', 'doc_kenderaan_geran');
|
|
$doc_suntikan_ty2 = $permohonan->dokumens->firstWhere('nama', 'doc_suntikan_ty2');
|
|
$doc_kursus_makanan = $permohonan->dokumens->firstWhere('nama', 'doc_kursus_makanan');
|
|
}
|
|
|
|
if(!is_null($permohonan)){
|
|
Gate::authorize('edit-sendiri', $permohonan);
|
|
|
|
return view('penjaja.mohon_papar', [
|
|
'user' => $request->user(),
|
|
'permohonan' => $permohonan,
|
|
'doc_kad_pengenalan' => $doc_kad_pengenalan,
|
|
'doc_gambar' => $doc_gambar,
|
|
'doc_lokasi' => $doc_lokasi,
|
|
'doc_kebenaran' => $doc_kebenaran,
|
|
'doc_kenderaan' => $doc_kenderaan,
|
|
'doc_kenderaan_geran' => $doc_kenderaan_geran,
|
|
'doc_suntikan_ty2' => $doc_suntikan_ty2,
|
|
'doc_kursus_makanan' => $doc_kursus_makanan,
|
|
'action' => $action
|
|
]);
|
|
}
|
|
else{
|
|
return redirect(route('dashboard', absolute: false))->with('error', 'Permohonan tidak dijumpai');
|
|
}
|
|
}
|
|
|
|
/* public function showDokumen($id, $filename)
|
|
{
|
|
$permohonan = LesenPenjaja::find($id);
|
|
Gate::authorize('edit-sendiri', $permohonan);
|
|
$path = 'dokumens/penjaja/'.$id.'/'.$filename;
|
|
|
|
if (!Storage::exists($path)) {
|
|
abort(404);
|
|
}
|
|
|
|
return response()->file(storage_path('app/' . $path));
|
|
}*/
|
|
|
|
public function stream($id, $filename)
|
|
{
|
|
$permohonan = LesenPenjaja::find($id);
|
|
Gate::authorize('sendiri-or-staff', $permohonan);
|
|
|
|
$path = 'dokumens/penjaja/'.$id.'/'.$filename;
|
|
if (!Storage::exists($path)) abort(404);
|
|
return response()->file(storage_path('app/' . $path));
|
|
}
|
|
}
|