', 0)->get()->unique('menu_code'); $count = OnlineItems::where('menu_code', '>', 0)->count(); if ($count > 0) { foreach ($info as $key => $value) { $out[] = $value; } foreach ($out as $key => $item) { $dishInfo = Dishes::select('name') ->where('code', '=', $item['menu_code']) ->where('legacy_code', '=', $item['dish_code']) ->where('is_history', '=', 0) ->get(); $onlineDishInfo = OnlineItems::select('real_price', 'sale_price', 'special_price') ->where('menu_code', '=', $item['menu_code']) ->where('dish_code', '=', $item['dish_code']) ->get(); $dishName = $dishInfo[0]->name; $dishCount = OnlineItems::where('menu_code', '=', $item['menu_code'])->sum('count'); $dishSum = $onlineDishInfo[0]->real_price * $dishCount; if ($dishSum > 0) { $dishTotalCost = round(($onlineDishInfo[0]->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, // 'info' => $info, // 'test' => $dishes, // 'count' => $dishCount, ]; } else { return [ 'status' => 'success', 'dishes' => [], // 'info' => $info, // 'test' => $dishes, // 'count' => $dishCount, ]; } } }