You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					314 lines
				
				13 KiB
			
		
		
			
		
	
	
					314 lines
				
				13 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers\Admin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Http\Controllers\Controller;
							 | 
						||
| 
								 | 
							
								use App\Models\DeliveryMan;
							 | 
						||
| 
								 | 
							
								use App\Models\Food;
							 | 
						||
| 
								 | 
							
								use App\Models\Order;
							 | 
						||
| 
								 | 
							
								use App\Models\Restaurant;
							 | 
						||
| 
								 | 
							
								use App\Models\User;
							 | 
						||
| 
								 | 
							
								use App\Models\Wishlist;
							 | 
						||
| 
								 | 
							
								use App\Models\OrderTransaction;
							 | 
						||
| 
								 | 
							
								use App\Models\SubscriptionTransaction;
							 | 
						||
| 
								 | 
							
								use Carbon\Carbon;
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\DB;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class DashboardController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function dashboard(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = [
							 | 
						||
| 
								 | 
							
								            'zone_id' => $request['zone_id'] ?? 'all',
							 | 
						||
| 
								 | 
							
								            'statistics_type' => $request['statistics_type'] ?? 'overall',
							 | 
						||
| 
								 | 
							
								            'user_overview' => $request['user_overview'] ?? 'overall',
							 | 
						||
| 
								 | 
							
								            'business_overview' => $request['business_overview'] ?? 'overall',
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        session()->put('dash_params', $params);
							 | 
						||
| 
								 | 
							
								        $data = self::dashboard_data();
							 | 
						||
| 
								 | 
							
								        $total_sell = $data['total_sell'];
							 | 
						||
| 
								 | 
							
								        $total_subs = $data['total_subs'];
							 | 
						||
| 
								 | 
							
								        $commission = $data['commission'];
							 | 
						||
| 
								 | 
							
								        return view('admin-views.dashboard', compact('data', 'total_sell','total_subs' ,'commission', 'params'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function order(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								        foreach ($params as $key => $value) {
							 | 
						||
| 
								 | 
							
								            if ($key == 'statistics_type') {
							 | 
						||
| 
								 | 
							
								                $params['statistics_type'] = $request['statistics_type'];
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        session()->put('dash_params', $params);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($params['zone_id'] != 'all') {
							 | 
						||
| 
								 | 
							
								            $restaurant_ids = Restaurant::where(['zone_id' => $params['zone_id']])->pluck('id')->toArray();
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $restaurant_ids = Restaurant::pluck('id')->toArray();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $data = self::order_stats_calc($params['zone_id']);
							 | 
						||
| 
								 | 
							
								        return response()->json([
							 | 
						||
| 
								 | 
							
								            'view' => view('admin-views.partials._dashboard-order-stats', compact('data'))->render(),
							 | 
						||
| 
								 | 
							
								            'order_stats_top' => view('admin-views.partials._order-statics', compact('data'))->render()
							 | 
						||
| 
								 | 
							
								        ], 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function zone(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								        foreach ($params as $key => $value) {
							 | 
						||
| 
								 | 
							
								            if ($key == 'zone_id') {
							 | 
						||
| 
								 | 
							
								                $params['zone_id'] = $request['zone_id'];
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        session()->put('dash_params', $params);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data = self::dashboard_data();
							 | 
						||
| 
								 | 
							
								        $total_subs = $data['total_subs'];
							 | 
						||
| 
								 | 
							
								        $total_sell = $data['total_sell'];
							 | 
						||
| 
								 | 
							
								        $commission = $data['commission'];
							 | 
						||
| 
								 | 
							
								        $popular = $data['popular'];
							 | 
						||
| 
								 | 
							
								        $top_deliveryman = $data['top_deliveryman'];
							 | 
						||
| 
								 | 
							
								        $top_rated_foods = $data['top_rated_foods'];
							 | 
						||
| 
								 | 
							
								        $top_restaurants = $data['top_restaurants'];
							 | 
						||
| 
								 | 
							
								        $top_sell = $data['top_sell'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return response()->json([
							 | 
						||
| 
								 | 
							
								            'popular_restaurants' => view('admin-views.partials._popular-restaurants', compact('popular'))->render(),
							 | 
						||
| 
								 | 
							
								            'top_deliveryman' => view('admin-views.partials._top-deliveryman', compact('top_deliveryman'))->render(),
							 | 
						||
| 
								 | 
							
								            'top_rated_foods' => view('admin-views.partials._top-rated-foods', compact('top_rated_foods'))->render(),
							 | 
						||
| 
								 | 
							
								            'top_restaurants' => view('admin-views.partials._top-restaurants', compact('top_restaurants'))->render(),
							 | 
						||
| 
								 | 
							
								            'top_selling_foods' => view('admin-views.partials._top-selling-foods', compact('top_sell'))->render(),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            'order_stats' => view('admin-views.partials._dashboard-order-stats', compact('data'))->render(),
							 | 
						||
| 
								 | 
							
								            'stat_zone' => view('admin-views.partials._zone-change', compact('data'))->render(),
							 | 
						||
| 
								 | 
							
								            'order_stats_top' => view('admin-views.partials._order-statics', compact('data'))->render(),
							 | 
						||
| 
								 | 
							
								            'user_overview' => view('admin-views.partials._user-overview-chart', compact('data'))->render(),
							 | 
						||
| 
								 | 
							
								            'monthly_graph' => view('admin-views.partials._monthly-earning-graph', compact('total_sell','total_subs', 'commission'))->render(),
							 | 
						||
| 
								 | 
							
								        ], 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function user_overview(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								        foreach ($params as $key => $value) {
							 | 
						||
| 
								 | 
							
								            if ($key == 'user_overview') {
							 | 
						||
| 
								 | 
							
								                $params['user_overview'] = $request['user_overview'];
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        session()->put('dash_params', $params);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data = self::user_overview_calc($params['zone_id']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return response()->json([
							 | 
						||
| 
								 | 
							
								            'view' => view('admin-views.partials._user-overview-chart', compact('data'))->render()
							 | 
						||
| 
								 | 
							
								        ], 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function order_stats_calc($zone_id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($params['statistics_type'] == 'today') {
							 | 
						||
| 
								 | 
							
								            $searching_for_dm = Order::SearchingForDeliveryman()->whereDate('created_at', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $accepted_by_dm = Order::AccepteByDeliveryman()->whereDate('accepted', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $preparing_in_rs = Order::Preparing()->whereDate('processing', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $picked_up = Order::FoodOnTheWay()->whereDate('picked_up', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $delivered = Order::Delivered()->whereDate('delivered', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $canceled = Order::where(['order_status' => 'canceled'])->whereDate('canceled', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $refund_requested = Order::where(['order_status' => 'refund_requested'])->whereDate('refund_requested', Carbon::now());
							 | 
						||
| 
								 | 
							
								            $refunded = Order::where(['order_status' => 'refunded'])->whereDate('refunded', Carbon::now());
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $searching_for_dm = Order::SearchingForDeliveryman();
							 | 
						||
| 
								 | 
							
								            $accepted_by_dm = Order::AccepteByDeliveryman();
							 | 
						||
| 
								 | 
							
								            $preparing_in_rs = Order::Preparing();
							 | 
						||
| 
								 | 
							
								            $picked_up = Order::FoodOnTheWay();
							 | 
						||
| 
								 | 
							
								            $delivered = Order::Delivered();
							 | 
						||
| 
								 | 
							
								            $canceled = Order::Canceled();
							 | 
						||
| 
								 | 
							
								            $refund_requested = Order::failed();
							 | 
						||
| 
								 | 
							
								            $refunded = Order::Refunded();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if(is_numeric($zone_id))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $searching_for_dm = $searching_for_dm->Notpos()->OrderScheduledIn(30)->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $accepted_by_dm = $accepted_by_dm->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $preparing_in_rs = $preparing_in_rs->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $picked_up = $picked_up->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $delivered = $delivered->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $canceled = $canceled->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $refund_requested = $refund_requested->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								            $refunded = $refunded->Notpos()->where('zone_id', $zone_id)->count();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $searching_for_dm = $searching_for_dm->Notpos()->OrderScheduledIn(30)->count();
							 | 
						||
| 
								 | 
							
								            $accepted_by_dm = $accepted_by_dm->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $preparing_in_rs = $preparing_in_rs->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $picked_up = $picked_up->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $delivered = $delivered->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $canceled = $canceled->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $refund_requested = $refund_requested->Notpos()->count();
							 | 
						||
| 
								 | 
							
								            $refunded = $refunded->Notpos()->count();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data = [
							 | 
						||
| 
								 | 
							
								            'searching_for_dm' => $searching_for_dm,
							 | 
						||
| 
								 | 
							
								            'accepted_by_dm' => $accepted_by_dm,
							 | 
						||
| 
								 | 
							
								            'preparing_in_rs' => $preparing_in_rs,
							 | 
						||
| 
								 | 
							
								            'picked_up' => $picked_up,
							 | 
						||
| 
								 | 
							
								            'delivered' => $delivered,
							 | 
						||
| 
								 | 
							
								            'canceled' => $canceled,
							 | 
						||
| 
								 | 
							
								            'refund_requested' => $refund_requested,
							 | 
						||
| 
								 | 
							
								            'refunded' => $refunded
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $data;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function user_overview_calc($zone_id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								        //zone
							 | 
						||
| 
								 | 
							
								        if(is_numeric($zone_id))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $customer = User::where('zone_id', $zone_id);
							 | 
						||
| 
								 | 
							
								            $restaurants = Restaurant::where(['zone_id' => $zone_id]);
							 | 
						||
| 
								 | 
							
								            $delivery_man = DeliveryMan::where('zone_id', $zone_id)->Zonewise();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $customer = User::whereNotNull('id');
							 | 
						||
| 
								 | 
							
								            $restaurants = Restaurant::whereNotNull('id');
							 | 
						||
| 
								 | 
							
								            $delivery_man = DeliveryMan::Zonewise();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        //user overview
							 | 
						||
| 
								 | 
							
								        if ($params['user_overview'] == 'overall') {
							 | 
						||
| 
								 | 
							
								            $customer = $customer->count();
							 | 
						||
| 
								 | 
							
								            $restaurants = $restaurants->count();
							 | 
						||
| 
								 | 
							
								            $delivery_man = $delivery_man->count();
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $customer = $customer->whereMonth('created_at', date('m'))
							 | 
						||
| 
								 | 
							
								                ->whereYear('created_at', date('Y'))->count();
							 | 
						||
| 
								 | 
							
								            $restaurants = $restaurants->whereMonth('created_at', date('m'))
							 | 
						||
| 
								 | 
							
								                ->whereYear('created_at', date('Y'))->count();
							 | 
						||
| 
								 | 
							
								            $delivery_man = $delivery_man->whereMonth('created_at', date('m'))
							 | 
						||
| 
								 | 
							
								                ->whereYear('created_at', date('Y'))->count();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $data = [
							 | 
						||
| 
								 | 
							
								            'customer' => $customer,
							 | 
						||
| 
								 | 
							
								            'restaurants' => $restaurants,
							 | 
						||
| 
								 | 
							
								            'delivery_man' => $delivery_man
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        return $data;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function dashboard_data()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $params = session('dash_params');
							 | 
						||
| 
								 | 
							
								        $data_os = self::order_stats_calc($params['zone_id']);
							 | 
						||
| 
								 | 
							
								        $data_uo = self::user_overview_calc($params['zone_id']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $popular = Wishlist::with(['restaurant'])
							 | 
						||
| 
								 | 
							
								        ->whereHas('restaurant')
							 | 
						||
| 
								 | 
							
								        ->when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								            return $q->whereHas('restaurant', function($query)use($params){
							 | 
						||
| 
								 | 
							
								                return $query->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->select('restaurant_id', DB::raw('COUNT(restaurant_id) as count'))->groupBy('restaurant_id')->orderBy('count', 'DESC')->limit(6)->get();
							 | 
						||
| 
								 | 
							
								        $top_sell = Food::withoutGlobalScopes()
							 | 
						||
| 
								 | 
							
								            ->when(is_numeric($params['zone_id']),function($q)use($params){
							 | 
						||
| 
								 | 
							
								                return $q->whereHas('restaurant', function($query)use($params){
							 | 
						||
| 
								 | 
							
								                    return $query->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            ->orderBy("order_count", 'desc')
							 | 
						||
| 
								 | 
							
								            ->take(6)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								        $top_rated_foods = Food::withoutGlobalScopes()
							 | 
						||
| 
								 | 
							
								            ->when(is_numeric($params['zone_id']),function($q)use($params){
							 | 
						||
| 
								 | 
							
								                return $q->whereHas('restaurant', function($query)use($params){
							 | 
						||
| 
								 | 
							
								                    return $query->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            ->orderBy('rating_count','desc')
							 | 
						||
| 
								 | 
							
								            ->take(6)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $top_deliveryman = DeliveryMan::
							 | 
						||
| 
								 | 
							
								            when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            ->where('type','zone_wise')
							 | 
						||
| 
								 | 
							
								            ->orderBy("order_count", 'desc')
							 | 
						||
| 
								 | 
							
								            ->take(6)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $top_restaurants = Restaurant::
							 | 
						||
| 
								 | 
							
								            when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            ->orderBy("order_count", 'desc')
							 | 
						||
| 
								 | 
							
								            ->take(6)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $total_sell = [];
							 | 
						||
| 
								 | 
							
								        $commission = [];
							 | 
						||
| 
								 | 
							
								        $total_subs= [];
							 | 
						||
| 
								 | 
							
								        for ($i = 1; $i <= 12; $i++) {
							 | 
						||
| 
								 | 
							
								            $total_sell[$i] = OrderTransaction::NotRefunded()
							 | 
						||
| 
								 | 
							
								                ->when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                    return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                })
							 | 
						||
| 
								 | 
							
								                ->whereMonth('created_at', $i)->whereYear('created_at', now()->format('Y'))
							 | 
						||
| 
								 | 
							
								                ->sum('order_amount');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                $total_subs[$i] = SubscriptionTransaction::
							 | 
						||
| 
								 | 
							
								                // ->when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                //     return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                // })
							 | 
						||
| 
								 | 
							
								                whereMonth('created_at', $i)->whereYear('created_at', now()->format('Y'))
							 | 
						||
| 
								 | 
							
								                ->sum('paid_amount');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $commission[$i] = OrderTransaction::NotRefunded()
							 | 
						||
| 
								 | 
							
								                ->when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                    return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                })
							 | 
						||
| 
								 | 
							
								                ->whereMonth('created_at', $i)->whereYear('created_at', now()->format('Y'))
							 | 
						||
| 
								 | 
							
								                // ->sum('admin_commission');
							 | 
						||
| 
								 | 
							
								                ->sum(DB::raw('admin_commission + admin_expense - delivery_fee_comission'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $commission[$i] += OrderTransaction::NotRefunded()
							 | 
						||
| 
								 | 
							
								                ->when(is_numeric($params['zone_id']), function($q)use($params){
							 | 
						||
| 
								 | 
							
								                    return $q->where('zone_id', $params['zone_id']);
							 | 
						||
| 
								 | 
							
								                })
							 | 
						||
| 
								 | 
							
								                ->whereMonth('created_at', $i)->whereYear('created_at', now()->format('Y'))
							 | 
						||
| 
								 | 
							
								                ->sum('delivery_fee_comission');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $dash_data = array_merge($data_os, $data_uo);
							 | 
						||
| 
								 | 
							
								        $dash_data['popular'] = $popular;
							 | 
						||
| 
								 | 
							
								        $dash_data['top_sell'] = $top_sell;
							 | 
						||
| 
								 | 
							
								        $dash_data['top_rated_foods'] = $top_rated_foods;
							 | 
						||
| 
								 | 
							
								        $dash_data['top_deliveryman'] = $top_deliveryman;
							 | 
						||
| 
								 | 
							
								        $dash_data['top_restaurants'] = $top_restaurants;
							 | 
						||
| 
								 | 
							
								        $dash_data['total_sell'] = $total_sell;
							 | 
						||
| 
								 | 
							
								        $dash_data['total_subs'] = $total_subs;
							 | 
						||
| 
								 | 
							
								        $dash_data['commission'] = $commission;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $dash_data;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |