where('is_active', '=', 1)->first(); if ($terminal) { $terminalKey = $terminal['key']; } else { $terminalKey = 0; } $allOrders = ShiftOnlineOrders::select('code') ->where('is_closed', 1) ->where('is_returned', 0) ->where('is_deleted', 0) ->get(); foreach ($allOrders as $order) { $orders[] = array($order['code']); } $info = ShiftOnlineItems::where('menu_code', '>', 0) ->whereIn('order_code', $orders) ->get() ->unique('menu_code'); $count = ShiftOnlineItems::where('menu_code', '>', 0) ->whereIn('order_code', $orders) ->count(); if ($count > 0) { foreach ($info as $key => $value) { $out[] = $value; } foreach ($out as $key => $item) { $onlineDishInfo = ShiftOnlineItems::where('menu_code', '=', $item['menu_code']) ->where('dish_code', '=', $item['dish_code']) ->whereIn('order_code', $orders) ->first(); $dishName = Dishes::getName($item['dish_code']); $dishCount = ShiftOnlineItems::where('menu_code', '=', $item['menu_code']) ->whereIn('order_code', $orders) ->sum('count'); $dishSum = $onlineDishInfo['real_price'] * $dishCount; if ($dishSum > 0) { $dishTotalCost = round(($onlineDishInfo['special_price'] * $dishCount), 2); $dishPercent = round((100 - ((($dishSum - $dishTotalCost) * 100) / $dishSum)), 2); $dishProfit = $dishSum - $dishTotalCost; } else { $dishTotalCost = 0; $dishPercent = 0; $dishProfit = 0; } $dishes[] = array('name' => $dishName, 'count' => $dishCount, 'sum' => $dishSum, 'totalCost' => $dishTotalCost, 'percentProffit' => $dishPercent, 'proffit' => $dishProfit); } for ($i = 0; $i < count($dishes); $i++) { $sortkey[$i] = $dishes[$i]['count']; } arsort($sortkey); foreach ($sortkey as $key => $key) { $sorted[] = $dishes[$key]; } $sorted = array_slice($sorted, 0, 10); return [ 'status' => 'success', 'dishes' => $sorted, 'terminal' => $terminalKey, ]; } else { return [ 'status' => 'success', 'dishes' => [], 'terminal' => $terminalKey, ]; } } }