X7ROOT File Manager
Current Path:
/var/www/html/mpc_emas/app/Http/Controllers
var
/
www
/
html
/
mpc_emas
/
app
/
Http
/
Controllers
/
📁
..
📁
Auth
📄
Controller.php
(374 B)
📄
HomeController.php
(19.03 KB)
Editing: HomeController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Auth; use Charts; use DB; use Illuminate\Support\Facades\Crypt; use App\Modules\Admin\Models\UserModel; use App\Modules\Permohonan\Models\PermohonanModel; use App\Modules\Permohonan\Models\PermohonanDetailModel; use App\Modules\Admin\Models\UsersCompanyModel; use App\Library\Globe; use MaddHatter\LaravelFullcalendar\Facades\Calendar; class HomeController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware(['auth', 'permission:home']); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { /*if(Auth::user()->hasanyrole('admin','superadmin')){ $emergencycount = EmergencyModel::where('emergency_status','1')->count(); $complaintcount = ComplaintModel::where('complaint_parent_id',0)->where('complaint_status','1')->count(); $usercount = UserModel::count(); $data = ['complaintcount'=>$complaintcount, 'emergencycount'=>$emergencycount, 'usercount'=>$usercount]; return view('home', ['pagetitle'=>'Dashboard', 'pagedesc'=>'Administrator', 'data'=>$data]); }*/ $chart = ''; $pie = ''; $chart2 = ''; /*if(Auth::user()->hasRole('superadmin') || Auth::user()->hasRole('admin') || Auth::user()->hasRole('deptdirector') || Auth::user()->hasRole('vicedirector') || Auth::user()->hasRole('director') || Auth::user()->hasRole('reviewer') || Auth::user()->hasRole('preparer') || Auth::user()->hasRole('finance') || Auth::user()->hasRole('financept')){ $chart = $this->makeChart('multibar'); $pie = $this->makeChart('pie'); $chart2 = $this->makeChart('multiline'); }*/ $calendar = ''; if(Auth::user()->detail){ if(in_array(Auth::user()->detail->user_type,['2','3'])){ if(Auth::user()->supplier_status != 1){ if(Auth::user()->detail->user_type == 2){ $subpath = 'showsupplier'; }else{ //3 company $subpath = 'showcompany'; } return Redirect('user/'.$subpath.'/'.Crypt::encrypt(Auth::user()->id))->with('flash_warning', 'Sila kemaskini profil anda terlebih dahulu!'); } if(Auth::user()->detail->user_type == '2'){ /*$application1 = PermohonanModel::where('supplier1_user_id',Auth::user()->id)->whereIn('supplier1_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier1_user_id','company1_user_id','supplier1_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount'); $application2 = PermohonanModel::where('supplier2_user_id',Auth::user()->id)->whereIn('supplier2_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier2_user_id','company2_user_id','supplier2_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount'); $application = PermohonanModel::where('supplier3_user_id',Auth::user()->id)->whereIn('supplier3_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier3_user_id','company3_user_id','supplier3_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount')->union($application1)->union($application2);*/ //from permohonan_detail $application1 = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->where('supplier1_user_id',Auth::user()->id)->whereIn('supplier1_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier1_user_id','company1_user_id','supplier1_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount'); $application2 = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->where('supplier2_user_id',Auth::user()->id)->whereIn('supplier2_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier2_user_id','company2_user_id','supplier2_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount'); $application = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->where('supplier3_user_id',Auth::user()->id)->whereIn('supplier3_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier3_user_id','company3_user_id','supplier3_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount')->union($application1)->union($application2); }else{ $userlist = UsersCompanyModel::where('user_company_id',Auth::user()->id)->pluck('user_id')->toArray(); /*$application1 = PermohonanModel::whereIn('supplier1_user_id',$userlist)->where('company1_user_id',Auth::user()->id)->whereIn('supplier1_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier1_user_id','company1_user_id','supplier1_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount'); $application2 = PermohonanModel::whereIn('supplier2_user_id',$userlist)->where('company2_user_id',Auth::user()->id)->whereIn('supplier2_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier2_user_id','company2_user_id','supplier2_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount'); $application = PermohonanModel::whereIn('supplier3_user_id',$userlist)->where('company3_user_id',Auth::user()->id)->whereIn('supplier3_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','created_at','permohonan_no','supplier3_user_id','company3_user_id','supplier3_status','supplier_service_id','program_title','program_startdate','program_enddate','permohonan_final_amount')->union($application1)->union($application2);*/ //from permohonan_detail $application1 = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->whereIn('supplier1_user_id',$userlist)->where('company1_user_id',Auth::user()->id)->whereIn('supplier1_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier1_user_id','company1_user_id','supplier1_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount'); $application2 = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->whereIn('supplier2_user_id',$userlist)->where('company2_user_id',Auth::user()->id)->whereIn('supplier2_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier2_user_id','company2_user_id','supplier2_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount'); $application = PermohonanDetailModel::leftJoin('permohonan as a','a.permohonan_id','=','permohonan_detail.permohonan_id')->whereIn('supplier3_user_id',$userlist)->where('company3_user_id',Auth::user()->id)->whereIn('supplier3_status',['N','R','A','B','X'])->whereNotIn('status',['D','N','U','S','B','R'])->select('pemohon_id','submitted_date','a.created_at','permohonan_no','supplier3_user_id','company3_user_id','supplier3_status','permohonan_detail.supplier_service_id','program_title','detail_startdate','detail_enddate','permohonan_final_amount')->union($application1)->union($application2); } $events = []; $dataevent = $application->orderBy('detail_startdate','desc')->get(); //dd($dataevent); if($dataevent->count()) { foreach ($dataevent as $key => $value) { $fontcolor = '#000000'; if($value->supplier3_status == 'N'){ $colorcode = '#FFA500'; }elseif($value->supplier3_status == 'A'){ $colorcode = '#00CD00'; }elseif($value->supplier3_status == 'X'){ //$colorcode = '#FF0000'; $colorcode = '#FF4564'; }elseif($value->supplier3_status == 'B'){ $colorcode = '#D8D8D8'; }else{ //R $colorcode = '#7F7fff'; } $description = $value->program_title.' (PIC : '.Globe::getUsername($value->pemohon_id).')'; $events[] = Calendar::event( strtoupper($description), true, //new \DateTime($value->start_date), //new \DateTime($value->end_date.' +1 day'), new \DateTime($value->detail_startdate), new \DateTime($value->detail_enddate.' +1 day'), null, // Add color and link on event [ 'color' => $colorcode, 'url' => '', 'textColor' => $fontcolor, //'backgroundColor' => $fontcolor, ] ); } } $calendar = Calendar::addEvents($events)->setCallbacks(['eventRender' => 'function (event,jqEvent,view) {jqEvent.tooltip({placement: "top", title: event.title});}']);; } } return view('home', ['pagetitle'=>'Home', 'pagedesc'=>'User\'s dashboard', 'chart'=>$chart, 'pie'=>$pie, 'chart2'=>$chart2, 'calendar'=>$calendar]); } public function makeChart($type){ switch ($type) { case 'bar': $users = PermohonanModel::where(DB::raw("(DATE_FORMAT(created_at,'%Y'))"),date('Y')) ->get(); // $chart = Charts::database($users, 'bar', 'highcharts') // ->title("Bil RO yang Diproses 2019 & 2020") // ->elementLabel("Bilangan Permohonan") // ->dimensions(1000, 500) // ->responsive(true) // //->groupByMonth(date('Y'), true); // ->groupByYear(true); $chart = Charts::create('bar', 'highcharts') ->title('Bil RO yang Diproses 2019 & 2020') ->elementLabel('Bilangan Permohonan') ->labels(['2019', '2020']) ->values([57,22]) ->dimensions(1000,500) ->responsive(true); break; case 'multibar': $countthisyearo = PermohonanModel::where('allocation_id',1)->whereYear('submitted_date',date('Y'))->count(); $countlastyearo = PermohonanModel::where('allocation_id',1)->whereYear('submitted_date',date('Y', strtotime('-1 year')))->count(); $countthisyearp = PermohonanModel::where('allocation_id',2)->whereYear('submitted_date',date('Y'))->count(); $countlastyearp = PermohonanModel::where('allocation_id',2)->whereYear('submitted_date',date('Y', strtotime('-1 year')))->count(); $chart = Charts::multi('bar', 'highcharts') ->title('Bil Permohonan yang Diproses '.date('Y', strtotime('-1 year')).' & '.date('Y')) ->elementLabel('Bilangan Permohonan') ->labels([date('Y', strtotime('-1 year')), date('Y')]) //->values([57,73]) ->dataset('Operasi',[$countlastyearo,$countthisyearo]) ->dataset('Pembangunan',[$countlastyearp,$countthisyearp]) //->width(300) ->dimensions(1000,500) ->responsive(true); break; case 'pie': $countthisyearo = PermohonanModel::where('allocation_id',1)->whereYear('submitted_date',date('Y'))->count(); $countthisyearp = PermohonanModel::where('allocation_id',2)->whereYear('submitted_date',date('Y'))->count(); $chart = Charts::create('pie', 'highcharts') ->title('Pecahan Peratusan Jumlah Permohonan Pembangunan dan Operasi '.date('Y')) //->labels(['Codeigniter', 'Laravel', 'PHP']) ->labels(['Pembangunan', 'Operasi']) ->colors(['#FFC300','#08ff00']) //->values([5,10,20]) ->values([$countthisyearp,$countthisyearo]) ->dimensions(1000,500) ->responsive(true); break; case 'donut': $chart = Charts::create('donut', 'highcharts') ->title('HDTuto.com Laravel Donut Chart') ->labels(['First', 'Second', 'Third']) ->values([5,10,20]) ->dimensions(1000,500) ->responsive(true); break; case 'line': $chart = Charts::create('line', 'highcharts') ->title('Jumlah Permohonan Diterima Mengikut Bulan Bagi Tahun 2020') ->elementLabel('Bilangan Permohonan') ->labels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) ->values([15,60,20,11,90,30,11,80,70,60,50,10]) ->dimensions(1000,500) ->responsive(true); break; case 'multiline': $countarr = []; $medianarr = []; for($i=1; $i<13; $i++){ $count = PermohonanModel::whereMonth('submitted_date',$i)->whereYear('submitted_date',date('Y'))->count(); //$count = UserModel::whereMonth('created_at',$i)->whereYear('created_at',2019)->count(); array_push($countarr,$count); $median = $this->getMedian($countarr); array_push($medianarr,$median); } $chart = Charts::multi('line', 'highcharts') ->title('Jumlah Permohonan Diterima Dan Median Pengeluaran Mengikut Bulan Bagi Tahun '.date('Y')) ->elementLabel('-') ->labels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) //->values([15,60,20,11,90,30,11,80,70,60,50,10]) //->colors(['#FFC300',' #08ff00 ']) ->dataset('Jumlah Permohonan',$countarr)//->color('#FFC300') ->dataset('Median',$medianarr)->backgroundcolor('green')//->color(['#FFC300','#08ff00'])//->color('#08ff00') ->dimensions(1000,500) ->responsive(true); break; case 'area': $chart = Charts::create('area', 'highcharts') ->title('HDTuto.com Laravel Area Chart') ->elementLabel('HDTuto.com Laravel Line Chart label') ->labels(['First', 'Second', 'Third']) ->values([5,10,20]) ->dimensions(1000,500) ->responsive(true); break; case 'geo': $chart = Charts::create('geo', 'highcharts') ->title('HDTuto.com Laravel GEO Chart') ->elementLabel('HDTuto.com Laravel GEO Chart label') ->labels(['ES', 'FR', 'RU']) ->colors(['#3D3D3D', '#985689']) ->values([5,10,20]) ->dimensions(1000,500) ->responsive(true); break; default: # code... break; } //return view('chart', compact('chart')); return $chart; } private function getMedian($arr) { //Make sure it's an array. if(!is_array($arr)){ throw new Exception('$arr must be an array!'); } //If it's an empty array, return FALSE. if(empty($arr)){ return false; } //Count how many elements are in the array. $num = count($arr); //Determine the middle value of the array. $middleVal = floor(($num - 1) / 2); //If the size of the array is an odd number, //then the middle value is the median. if($num % 2) { return $arr[$middleVal]; } //If the size of the array is an even number, then we //have to get the two middle values and get their //average else { //The $middleVal var will be the low //end of the middle $lowMid = $arr[$middleVal]; $highMid = $arr[$middleVal + 1]; //Return the average of the low and high. return (($lowMid + $highMid) / 2); } } }
Upload File
Create Folder