Files
mylesen/app/Http/Controllers/Admin/DashboardController.php

162 lines
6.6 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
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 App\Models\GrabResitLesen;
use Auth;
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();
//senarai tiada lesen
$tiada_lesen = LesenPenjaja::whereIn('status_progress', ['ulasan pegawai', 'ulasan pengarah', 'sokong dibawa ke mesyuarat'])->whereNull('no_akaun_lesen')->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', 'menunggu keputusan mesyuarat')->count();
//dapatkan yang belum bayar lesen
$hutang_lesen = LesenPenjaja::whereNotNull('no_akaun_lesen')->where('no_akaun_lesen', '<>', '')->whereNull('lesen_no_resit')->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', 'hutang_lesen', 'selesai', 'tiada_lesen'));
}
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'));
}
public function senaraiLesenBelumBayar(Request $request){
$senarais = LesenPenjaja::whereNotNull('no_akaun_lesen')->where('no_akaun_lesen', '<>', '')->whereNull('lesen_no_resit')->get();
return view('admin.penjaja.senarailesenbelumbayar', compact('senarais'));
}
public function semakBayaranLesen(Request $request){
try {
DB::connection('second_mysql')->getPdo();
$grab = GrabResitLesen::create([
'tarikh_grab' => now(),
'jumlah_data' => 0,
'admin_id' => Auth::id(),
]);
$jumlah = 0;
$permohonans = LesenPenjaja::whereNotNull('no_akaun_lesen')->where('no_akaun_lesen', '<>', '')->whereNull('lesen_no_resit')->get();
foreach($permohonans as $semakresit){
$bp_bayar = EpbtEcasResit::whereHas('resitItems', function($query) use ($semakresit){
$query->where('noakaun', $semakresit->no_akaun_lesen);
})->select('noresit', 'tarikh','amaun')
->orderBy('tarikh')
->first();
if(!is_null($bp_bayar)){ //cek no resit daripada epbt..klu ada, kita simpan rekod
$semakresit->lesen_dt_bayar = $bp_bayar->tarikh;
$semakresit->lesen_no_resit = $bp_bayar->noresit;
$semakresit->lesen_amaun = $bp_bayar->amaun;
$semakresit->lesen_grab = now();
$semakresit->save();
$jumlah++;
}
}
$grab->jumlah_data = $jumlah;
$grab->save();
} catch (\Exception $e) {
//return back()->with('error', 'Sambungan ke pangkalan data gagal. Sila cuba sebentar lagi.');
}
return redirect()->route('pt.lesenhutang')->with('success', 'Sebanyak '.$jumlah.' lesen telah menerima bayaran.');;
}
}