first commit

This commit is contained in:
2026-05-14 15:28:23 +08:00
commit 4fad704fd2
4034 changed files with 1093582 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Syarikat;
use App\Models\LesenPenjaja;
use App\Models\BilPelbagai;
use App\Models\BilPelbagaiItem;
use App\Models\EpbtBpBil;
use App\Models\EpbtEcasResit;
class DashboardController extends Controller
{
//
public function utama(Request $request, $ctahun=''){
if($ctahun == ''){
$ctahun = date('Y');
}
$permohonans = LesenPenjaja::whereYear('tarikhmohon', $ctahun)->get();
$countKPI = LesenPenjaja::whereYear('tarikhlulus', $ctahun)
->whereRaw('DATEDIFF(tarikhlulus, tarikhmohon) > 14')
->count();
//dapatkan status bayaran untuk update mana yg tgu wang proses
$semakresits = LesenPenjaja::where('status_progress', 'LIKE', 'menunggu bayaran proses')->get();
foreach($semakresits as $semakresit){
$bil_p = BilPelbagai::where('jenis_bil', 'wang proses')->where('lesen_penjaja_id', $semakresit->id)->first();
// dd($semakresit,$bil_p);
if(!is_null(optional($bil_p)->no_akaun_bilpelbagai)){
$bp_bayar = EpbtEcasResit::whereHas('resitItems', function($query) use ($bil_p){
$query->where('noakaun', $bil_p->no_akaun_bilpelbagai);
})->select('noresit', 'tarikh','amaun')
->orderBy('tarikh')
->first();
if(!is_null($bp_bayar)){ //cek no resit daripada epbt..klu ada, kita simpan rekod
$bil_p->dt_bayar = $bp_bayar->tarikh;
$bil_p->no_resit = $bp_bayar->noresit;
$bil_p->amaun_bayar = $bp_bayar->amaun;
$bil_p->save();
$semakresit->status_progress = 'semakan bayaran proses';
$semakresit->save();
}
}
}
//end update status wang proses
$txt_bayar = '';
//senarai permohonan baru
$baru = LesenPenjaja::where('status_progress', 'baru')->count();
//senarai belum bayar wang proses
$belum_bayar_proses = LesenPenjaja::where('status_progress', 'menunggu bayaran proses')->count();
//senarai dah bayar wang proses
$bayar_proses = LesenPenjaja::where('status_progress', 'semakan bayaran proses')->count();
//dapatkan yang perlu lawatan tapak
$periksa_tapak = LesenPenjaja::where('status_progress', 'LIKE', 'lawatan tapak')->count();
//dapatkan yang perlu lawatan tapak
$pegawai_belum_ulas = LesenPenjaja::where('status_progress', 'LIKE', 'ulasan pegawai')->count();
//dapatkan yang perlu lawatan tapak
$pengarah_belum_ulas = LesenPenjaja::where('status_progress', 'LIKE', 'ulasan pengarah')->count();
//dapatkan yang perlu lawatan tapak
$bawa_mesyuarat = LesenPenjaja::where('status_progress', 'LIKE', 'sokong dibawa ke mesyuarat')->count();
//dapatkan yang perlu lawatan tapak
$keputusan_mesyuarat = LesenPenjaja::where('status_progress', 'LIKE', 'keputusan diperolehi')->whereNull('status_mesyuarat')->count();
//dapatkan yang perlu lawatan tapak
$keluar_lesen = LesenPenjaja::where('status_progress', 'LIKE', 'keputusan diperolehi')->where('status_mesyuarat', 'LIKE', 'diluluskan')->count();
//dapatkan yang perlu lawatan tapak
$selesai = LesenPenjaja::where('status_progress', 'LIKE', 'keputusan diperolehi')->whereNotNull('status_mesyuarat')->count();
return view('admin.penjaja.dashboard', compact('ctahun', 'permohonans', 'countKPI', 'baru', 'belum_bayar_proses', 'bayar_proses', 'periksa_tapak', 'pegawai_belum_ulas', 'pengarah_belum_ulas', 'bawa_mesyuarat', 'keputusan_mesyuarat', 'keluar_lesen', 'selesai'));
}
public function carianutama(Request $request){
if($request->input('ctahun') == ''){
$ctahun = date('Y');
}
else{
$ctahun = $request->input('ctahun');
}
$permohonans = LesenPenjaja::whereYear('tarikhmohon', $ctahun)->get();
$countKPI = LesenPenjaja::whereYear('tarikhlulus', $ctahun)
->whereRaw('DATEDIFF(tarikhlulus, tarikhmohon) > 14')
->count();
return view('admin.penjaja.dashboard', compact('ctahun', 'permohonans', 'countKPI'));
}
}

View File

@@ -0,0 +1,165 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Syarikat;
use App\Models\LesenPenjaja;
use App\Models\BorangUlasanIk;
use App\Models\BilPelbagai;
use App\Models\BilPelbagaiItem;
use App\Models\EpbtBpBil;
use App\Models\EpbtEcasResit;
use Illuminate\View\View;
class IkPenjajaController extends Controller
{
//
public function senarai_ik(Request $request){
//dapatkan status bayaran
$senarais = LesenPenjaja::where('status_progress', 'LIKE', 'lawatan tapak')->get();
return view('admin.penjaja.senaraipemeriksaan', compact('senarais'));
}
public function papar(Request $request, $id){
$show = 'utama';
$permohonan = LesenPenjaja::find($id);
return view('admin.penjaja.papar_permohonan', compact('show','permohonan'));
}
public function papar_dokumen(Request $request, $id){
$show = 'dokumen';
$permohonan = LesenPenjaja::find($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');
}
return view('admin.penjaja.papar_permohonan', compact('show', 'permohonan', 'doc_kad_pengenalan','doc_gambar',
'doc_lokasi','doc_kebenaran','doc_kenderaan','doc_kenderaan_geran',
'doc_suntikan_ty2', 'doc_kursus_makanan'));
}
public function papar_wangproses(Request $request, $id){
$show = 'wang proses';
$permohonan = LesenPenjaja::find($id);
return view('admin.penjaja.papar_permohonan', compact('show','permohonan'));
}
public function papar_map(Request $request, $id){
$show = 'lokasi';
$permohonan = LesenPenjaja::find($id);
return view('admin.penjaja.papar_permohonan', compact('show', 'permohonan'));
}
public function simpanLokasi(Request $request){
$permohonan = LesenPenjaja::find($request->permohonan_id);
$permohonan->longitude = $request->input('longitude');
$permohonan->latitude = $request->input('latitude');
$permohonan->save();
return redirect(route('ik.papar-pemeriksaan-map', ['id'=>$request->permohonan_id]));
}
public function papar_ulasan(Request $request, $id){
$show = 'ulasan ik';
$permohonan = LesenPenjaja::find($id);
return view('admin.penjaja.papar_permohonan', compact('show', 'permohonan'));
}
public function simpanUlasan(Request $request){
$permohonan = BorangUlasanIk::firstOrCreate([
'lesen_penjaja_id' => $request->permohonan_id,
]);
$permohonan->dt_periksa = $request->input('dt_periksa');
$permohonan->kesesuaian_lokasi = $request->input('kesesuaian_lokasi');
$permohonan->kesesuaian_lokasi_sebab = $request->input('kesesuaian_lokasi_sebab');
$permohonan->dijalankan_oleh = $request->input('dijalankan_oleh');
$permohonan->pematuhan_syarat = $request->input('pematuhan_syarat');
$permohonan->perkara_perlu_dipatuhi = $request->input('perkara_perlu_dipatuhi');
$permohonan->pemprosesan_makanan = $request->input('pemprosesan_makanan');
if($permohonan->pemprosesan_makanan == 'ada'){
$permohonan->pemprosesan_makanan_memasak = $request->has('pemprosesan_makanan_memasak') ? $request->input('pemprosesan_makanan_memasak') : null;
$permohonan->pemprosesan_makanan_merebus = $request->has('pemprosesan_makanan_merebus') ? $request->input('pemprosesan_makanan_merebus') : null;
$permohonan->pemprosesan_makanan_menggoreng = $request->has('pemprosesan_makanan_menggoreng') ? $request->input('pemprosesan_makanan_menggoreng') : null;
$permohonan->pemprosesan_makanan_lain = $request->has('pemprosesan_makanan_lain') ? $request->input('pemprosesan_makanan_lain') : null;
if($permohonan->pemprosesan_makanan_lain == '1'){
$permohonan->pemprosesan_makanan_lain_txt = $request->input('pemprosesan_makanan_lain_txt');
}
else{
$permohonan->pemprosesan_makanan_lain_txt = '';
}
}
$permohonan->mendirikan_bangunan = $request->input('mendirikan_bangunan');
$permohonan->jika_guna_kenderaan = $request->input('jika_guna_kenderaan');
$permohonan->jenis_kenderaan_lain = $request->input('jenis_kenderaan_lain');
$permohonan->no_plate_kenderaan = $request->input('no_plate_kenderaan');
$permohonan->dt_mula_niaga = $request->input('dt_mula_niaga');
$permohonan->masa_berniaga_mula = $request->input('masa_berniaga_mula');
$permohonan->kebersihan_diri = $request->input('kebersihan_diri');
$permohonan->kebersihan_makanan = $request->input('kebersihan_makanan');
$permohonan->kebersihan_kawasan = $request->input('kebersihan_kawasan');
$permohonan->laporan_kebersihan_selepas_niaga = $request->input('laporan_kebersihan_selepas_niaga');
$permohonan->cadangan = $request->input('cadangan');
$permohonan->tiada_halangan_syarat = $request->input('tiada_halangan_syarat');
$permohonan->tiada_halangan_notis_dipatuhi = $request->has('tiada_halangan_notis_dipatuhi') ? $request->input('tiada_halangan_notis_dipatuhi') : null;
$permohonan->tidak_menyokong_atas_sebab = $request->input('tidak_menyokong_atas_sebab');
$permohonan->dirujuk_unit_penguatkuasa = $request->has('dirujuk_unit_penguatkuasa') ? $request->input('dirujuk_unit_penguatkuasa') : null;
$permohonan->dirujuk_unit_penguatkuasa_txt = $request->input('dirujuk_unit_penguatkuasa_txt');
$user = $request->user();
$permohonan->pegawai_id = $user->id;
$permohonan->save();
$mohon = LesenPenjaja::find($request->permohonan_id);
$mohon->status_progress = 'ulasan pegawai';
if($permohonan->cadangan == 'tiada halangan'){
$setuju = 'setuju';
}
else{
$setuju = 'tidak setuju';
}
$mohon->save();
return redirect(route('ik.papar-pemeriksaan-ulasan', ['id'=>$request->permohonan_id]))->with('success', 'Ulasan telah disimpan.');
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Syarikat;
use App\Models\LesenPenjaja;
use App\Models\BorangUlasanIk;
use App\Models\BilPelbagai;
use App\Models\BilPelbagaiItem;
use App\Models\EpbtBpBil;
use App\Models\EpbtEcasResit;
use Illuminate\View\View;
class PegawaiPenjajaController extends Controller
{
//
public function senarai_pegawai(Request $request){
//dapatkan status bayaran
$senarais = LesenPenjaja::where('status_progress', 'LIKE', 'ulasan pegawai')->get();
return view('admin.penjaja.senaraisokongan', compact('senarais'));
}
public function simpanUlasan(Request $request){
$permohonan = BorangUlasanIk::firstOrCreate([
'lesen_penjaja_id' => $request->permohonan_id,
]);
}
}

View File

@@ -0,0 +1,184 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Syarikat;
use App\Models\LesenPenjaja;
use App\Models\BilPelbagai;
use App\Models\BilPelbagaiItem;
use App\Models\EpbtBpBil;
use App\Models\EpbtEcasResit;
use Illuminate\View\View;
class PenjajaController extends Controller
{
//
public function senarai_pt(Request $request){
$txt_bayar = '';
$senarais = LesenPenjaja::where('status_progress', 'baru')->get();
return view('admin.penjaja.senaraibaru', compact('senarais', 'txt_bayar'));
}
//
public function senarai_pt_proses(Request $request){
$txt_bayar = '';
$senarais = LesenPenjaja::where('status_progress', 'semakan bayaran proses')->get();
return view('admin.penjaja.senaraibukafail', compact('senarais', 'txt_bayar'));
}
public function papar(Request $request, $id){
$show = 'utama';
$permohonan = LesenPenjaja::find($id);
$user = $request->user();
$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');
}
return view('admin.penjaja.papar_permohonan', compact('show', 'permohonan', 'user', 'doc_kad_pengenalan','doc_gambar',
'doc_lokasi','doc_kebenaran','doc_kenderaan','doc_kenderaan_geran',
'doc_suntikan_ty2', 'doc_kursus_makanan'));
}
public function paparLampiran(Request $request, $id): View
{
$lesen_penjaja = LesenPenjaja::find($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(!$lesen_penjaja->dokumens->isEmpty()){
$doc_kad_pengenalan = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_kad_pengenalan');
$doc_gambar = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_gambar');
$doc_lokasi = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_lokasi');
$doc_kebenaran = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_kebenaran');
$doc_kenderaan = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_kenderaan');
$doc_kenderaan_geran = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_kenderaan_geran');
$doc_suntikan_ty2 = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_suntikan_ty2');
$doc_kursus_makanan = $lesen_penjaja->dokumens->firstWhere('nama', 'doc_kursus_makanan');
}
return view('admin.penjaja.papar_mohon_lampiran', [
'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,
]);
}
public function simpanWangProses(Request $request)
{
$mohon = LesenPenjaja::find($request->permohonan_id);
$mohon->status_progress = 'menunggu bayaran proses';
$mohon->save();
$bil_p = BilPelbagai::firstOrCreate(
['no_akaun_bilpelbagai' => $request->no_bil_pelbagai, 'lesen_penjaja_id' => $request->permohonan_id],
['no_akaun_bilpelbagai' => $request->no_bil_pelbagai, 'lesen_penjaja_id' => $request->permohonan_id, 'cara_jana' => 'mylesen', 'status_mylesen'=>'1']
);
if($bil_p->wasRecentlyCreated){
$epbtbil = EpbtBpBil::where('noakaun', $request->no_bil_pelbagai)->first();
if($epbtbil){
$bil_p->status_mylesen_error = '';
$bil_p->ref_no = $epbtbil->norujukan;
$bil_p->description = $epbtbil->keterangan;
$bil_p->pay_status = $epbtbil->statusbyr;
$bil_p->jabatan = $epbtbil->dept_code;
$bil_p->ent_opr = $epbtbil->ent_opr;
$bil_p->no_bilpelbagai = $epbtbil->nobil;
$bil_p->save();
foreach($epbtbil->bil_items as $epbtbil_item){
$bilitem = BilPelbagaiItem::create([
'bil_pelbagai_id' => $bil_p->id,
'itemno' => $epbtbil_item->noitem,
'itemdesc' => $epbtbil_item->keterangan,
'itemprice' => $epbtbil_item->amaun,
'gst_type' => $epbtbil_item->jenis_gst,
'gst_code' => $epbtbil_item->kod_gst,
'cr_code' => $epbtbil_item->kodcr,
'dr_code' => $epbtbil_item->koddr,
'cost_center' => $epbtbil_item->pusatkos,
'exp_date' => $epbtbil_item->tamat_tempoh
]);
}
}
}
$bp_bayar = EpbtEcasResit::whereHas('resitItems', function($query) use ($request){
$query->where('noakaun', $request->no_bil_pelbagai);
})->select('noresit', 'tarikh','amaun')
->orderBy('tarikh')
->first();
if(!is_null($bp_bayar)){ //cek no resit daripada epbt..klu ada, kita simpan rekod
$bil_p->dt_bayar = $bp_bayar->tarikh;
$bil_p->no_resit = $bp_bayar->noresit;
$bil_p->amaun_bayar = $bp_bayar->amaun;
$bil_p->save();
}
return redirect(route('pt.penjaja-papar', ['id'=>$request->permohonan_id]));
}
public function simpanNoFail(Request $request){
$mohon = LesenPenjaja::find($request->permohonan_id);
$mohon->no_fail_lesen = $request->no_fail_lesen;
$mohon->no_akaun_lesen = $request->no_akaun_lesen;
$mohon->save();
return redirect(route('pt.penjaja-papar', ['id'=>$request->permohonan_id]))->with('msg', 'Maklumat telah disimpan');
}
public function hantarPPK(Request $request){
$mohon = LesenPenjaja::find($request->permohonan_id);
$mohon->status_progress = 'lawatan tapak';
$mohon->save();
return redirect(route('pt.penjaja-papar', ['id'=>$request->permohonan_id]))->with('msg', 'Maklumat telah disimpan');
}
}