Edit File: StatisticsController.php
<?php namespace App\Http\Controllers\Admin; use App\Models\Admin; use App\Models\DelegateCompany; use App\Models\DelegateJoinrequest; use App\Models\Order; use App\Models\Store; use DB ; 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 StatisticsController extends Controller { use Menu; public function index(){ $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; $active_companies =User::where('type' , 'company')->where('active' , true)->count(); $notActivecompanies =User::where('type' , 'company')->where('active' , false)->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(); $menus = $this->home() ; $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(); $introSiteCards = $this->introSiteCards() ; $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; $colores = ['info' , 'danger' , 'warning' , 'success' , 'primary']; $countDelegate = User::where('type' , 'delegate')->count(); $countDelegatePending = DelegateJoinrequest::where('status' , 'pending')->count(); return view('admin.statistics.index' , compact('totalStores', 'countDelegate', 'countDelegatePending' , 'countCountry', 'countCity', 'companiesPending', 'companiesAccept', 'companiesNotAccept', 'totalCompanies', 'stores_pending', 'stores_refused', 'menus' ,'colores' , 'closed_orders' ,'orders' , 'active_orders' , 'new_orders' , 'finished_orders' , 'admins_active' , 'admins_blocked' , 'activeDelegate' , 'notActiveDelegate' , 'notActivecompanies' , 'active_companies' , 'stores_contracted' , 'google_stores' , 'activeUsers' , 'notActiveUsers' ,'countryArray' , 'cityArray' , 'introSiteCards' )); } 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