Edit File: HomeController.php
<?php namespace App\Http\Controllers\Admin; use App\Models\Admin; use App\Models\DelegateJoinrequest; use App\Models\Order; use App\Models\Store; use Carbon\Carbon; use App\Models\City; use App\Models\User; use App\Traits\Menu; use App\Models\Country; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class HomeController extends Controller { use Menu ; /***************** dashboard *****************/ public function dashboard() { $countryArray = $this->chartData(new Country); $cityArray = $this->chartData(new City); $countCountry = Country::count(); $countCity = City::count(); $activeUsers = User::where(['type'=>'user','active' => true])->count() ; $notActiveUsers = User::where(['type'=>'user','active' => 0])->count() ; $stores_contracted = User::whereHas('store' , function($query) { $query->where('store_id' , null ); })->where(['approve' => 'accept' , 'type' => 'store'])->count(); $google_stores = Store::where(['user_id' => null ])->count(); $stores_pending = User::whereHas('store')->with('store')->where(['approve' => 'pending' , 'type' => 'store' ])->count(); $stores_refused = User::whereHas('store')->with('store')->where(['approve' => 'refused' , 'type' => 'store' ])->count(); $totalStores = $stores_contracted + $google_stores + $stores_pending + $stores_refused; $companiesPending =User::where('type' , 'company')->where('approve' , 'pending')->count(); $companiesAccept =User::where('type' , 'company')->where('approve' , 'accept')->count(); $companiesNotAccept =User::where('type' , 'company')->where('approve' , 'refused')->count(); $totalCompanies = $companiesPending + $companiesAccept + $companiesNotAccept; $countDelegate = User::where('type' , 'delegate')->count(); $countDelegatePending = DelegateJoinrequest::where('status' , 'pending')->count(); $activeDelegate =User::where('type' , 'delegate')->where('active' , true)->count(); $notActiveDelegate =User::where('type' , 'delegate')->where('active' , false)->count(); $admins_active = Admin::where('blocked' , 0)->count(); $admins_blocked = Admin::where('blocked' , 1)->count(); $orders = Order::all()->count(); $active_orders = Order::where('status' , 'inprogress')->count(); $new_orders = Order::where('status' , 'open')->count(); $finished_orders = Order::where('status' , 'finished')->count(); $closed_orders = Order::where('status' , 'closed')->count(); // $menus = $this->home() ; // $introSiteCards = $this->introSiteCards() ; $colores = ['info' , 'danger' , 'warning' , 'success' , 'primary']; return view('admin.dashboard.index' , compact('colores' , 'activeUsers' ,'active_orders','orders', 'notActiveDelegate', 'finished_orders', 'closed_orders', 'activeDelegate','admins_blocked','admins_active','new_orders', 'stores_contracted' , 'google_stores' , 'notActiveUsers' , 'countryArray' , 'cityArray', 'stores_pending', 'stores_refused', 'totalStores', 'companiesAccept', 'companiesNotAccept', 'companiesPending', 'totalCompanies', 'countCountry', 'countCity', 'countDelegate', 'countDelegatePending')); } public function chartData($model) { $users = $model::select('id', 'created_at') ->get() ->groupBy(function($date) { return Carbon::parse($date->created_at)->format('m'); }); $usermcount = []; $userArr = []; foreach ($users as $key => $value) { $usermcount[(int)$key] = count($value); } for($i = 1; $i <= 12; $i++){ if(!empty($usermcount[$i])){ $userArr[] = $usermcount[$i]; }else{ $userArr[] = 0; } } return $userArr ; } }
Back to File Manager