where('is_active', '=', 1)->first(); if ($terminal) { $terminalKey = $terminal['key']; } else { $terminalKey = 0; } $info = OnlineItems::where('menu_code', '>', 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::where('code', '=', $item['menu_code']) ->where('legacy_code', '=', $item['dish_code']) ->where('is_history', '=', 0) ->first(); $onlineDishInfo = OnlineItems::where('menu_code', '=', $item['menu_code']) ->where('dish_code', '=', $item['dish_code']) ->first(); if ($dishInfo['name'] == '') { $dishHistInfo = Dishes::where('code', '=', $item['menu_code']) ->where('legacy_code', '=', $item['dish_code']) ->first(); $dishName = $dishHistInfo['name']; } else { $dishName = $dishInfo['name']; } $dishCount = OnlineItems::where('menu_code', '=', $item['menu_code'])->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, // 'test' => $dishes, // 'count' => $dishCount, ]; } else { return [ 'status' => 'success', 'dishes' => [], 'terminal' => $terminalKey, // 'test' => $dishes, // 'count' => $dishCount, ]; } } }