name) ->where('table_name', strval($table_id)) ->where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->get(); $cancellations_count = $cancellations_sum = 0; $waited_count = $waited_sum = 0; $closed_count = $closed_sum = 0; $deleted_count = $deleted_sum = 0; $returned_count = $returned_sum = 0; $orders_info = []; $place_name = Places::getName($place_id); $setting = Settings::getValue(10); foreach ($orders as $order) { $order_status = ShiftOnlineOrders::getOrderStatus($order['code']); $returned_order_sum = 0; if ($order['order_sum'] >= 0 && $order['is_deleted'] > 0 && $order['check_number'] > 0 && $order['who_open'] > 0) { $cancellations_count += 1; $cancellations_sum += $order['order_sum']; } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0) { $waited_count += 1; $waited_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $waited_count += 1; $waited_sum += $order['order_sum']; } } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $closed_count += 1; $closed_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА' && $order_status != "Оплачен(*)") { $closed_count += 1; $closed_sum += $order['order_sum']; } } if ($setting > 0) { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } else { if ($order['place_name'] != 'ДОСТАВКА') { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } } if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 1 && $order['place_name'] != 'ДОСТАВКА') { $returned_items = ShiftOnlineOrders::getReturnedItems($order['code']); foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_count += 1; $closed_sum += round($order['order_sum'], 2) - $returned_order_sum; } if ($setting == 1) { $orders_info[] = array( 'id' => $order['code'], 'place' => $order['place_name'], 'table' => $order['table_name'], 'opened' => $order['opened'], 'closed' => $order['closed'] != '0000-00-00 00:00:00' ? $order['closed'] : false, 'who_open' => Staff::getName($order['who_open']), 'who_close' => $order['who_close'] != 0 ? Staff::getName($order['who_close']) : false, 'sum' => round($order['order_sum'], 2) - $returned_order_sum, 'preCheck_count' => ShiftOnlineActions::getPreCheckCount($order['code']), 'is_printed_before_edit' => ShiftOnlineActions::isPrintedBeforeEdit($order['code']), 'hasMove' => ShiftOnlineActions::hasMove($order['code']), 'hasMerge' => ShiftOnlineActions::hasMerge($order['code']), 'hasSlice' => ShiftOnlineActions::hasSlice($order['code']), 'hasDelete' => ShiftOnlineActions::hasDelete($order['code']), 'status' => $order_status ); } elseif ($setting == 0 && $order_status != "Доставка" && $order_status != "Оплачен(*)" && $order['place_name'] != "ДОСТАВКА") { $orders_info[] = array( 'id' => $order['code'], 'place' => $order['place_name'], 'table' => $order['table_name'], 'opened' => $order['opened'], 'closed' => $order['closed'] != '0000-00-00 00:00:00' ? $order['closed'] : false, 'who_open' => Staff::getName($order['who_open']), 'who_close' => $order['who_close'] != 0 ? Staff::getName($order['who_close']) : false, 'sum' => round($order['order_sum'], 2) - $returned_order_sum, 'preCheck_count' => ShiftOnlineActions::getPreCheckCount($order['code']), 'is_printed_before_edit' => ShiftOnlineActions::isPrintedBeforeEdit($order['code']), 'hasMove' => ShiftOnlineActions::hasMove($order['code']), 'hasMerge' => ShiftOnlineActions::hasMerge($order['code']), 'hasSlice' => ShiftOnlineActions::hasSlice($order['code']), 'hasDelete' => ShiftOnlineActions::hasDelete($order['code']), 'status' => $order_status ); } } return [ 'status' => 'success', 'place_name' => $place_name, 'waited_count' => round($waited_count, 2), 'waited_sum' => round($waited_sum, 2), 'closed_count' => round($closed_count, 2), 'closed_sum' => round($closed_sum, 2), 'deleted_count' => round($deleted_count, 2), 'deleted_sum' => round($deleted_sum, 2), 'returned_count' => round($returned_count, 2), 'returned_sum' => round($returned_sum, 2), 'cancellations_count' => round($cancellations_count, 2), 'cancellations_sum' => round($cancellations_sum, 2), 'orders' => $orders_info ]; } $opened_orders_count = ShiftOnlineOrders::where('place_name', $places->name) ->where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->count('id'); $opened_orders_sum = ShiftOnlineOrders::where('place_name', $places->name) ->where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->sum('order_sum'); $opened_orders_client_count = ShiftOnlineOrders::where('place_name', $places->name) ->where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->sum('client_count'); $setting = Settings::getValue(10); $closed_orders = ShiftOnlineOrders::where('place_name', $places->name) ->where('is_closed', 1) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('who_close', '>', 0) ->get(); foreach ($closed_orders as $closed_order) { $order_status = ShiftOnlineOrders::getOrderStatus($closed_order['code']); if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 1 && $closed_order['place_name'] != 'ДОСТАВКА') { $returned_items = ShiftOnlineOrders::getReturnedItems($closed_order['code']); $returned_sum = $returned_order_sum = $returned_count = 0; foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_orders_count += 1; $closed_orders_sum += round($closed_order['order_sum'], 2) - $returned_order_sum; $closed_orders_client_count += $closed_order['client_count']; } if ($setting > 0) { if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 0 && $closed_order['place_name'] != 'ДОСТАВКА') { $closed_orders_count += 1; $closed_orders_sum += $closed_order['order_sum']; $closed_orders_client_count += $closed_order['client_count']; } } else { if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 0 && $closed_order['place_name'] != 'ДОСТАВКА' && $order_status != "Оплачен(*)") { $closed_orders_count += 1; $closed_orders_sum += $closed_order['order_sum']; $closed_orders_client_count += $closed_order['client_count']; } } } return [ 'status' => 'success', 'opened_orders_count' => round($opened_orders_count, 2), 'opened_orders_sum' => round($opened_orders_sum, 2), 'opened_orders_client_count' => round($opened_orders_client_count, 2), 'closed_orders_count' => round($closed_orders_count, 2), 'closed_orders_sum' => round($closed_orders_sum, 2), 'closed_orders_client_count' => round($closed_orders_client_count, 2), ]; } } if ($type == 'places') { $setting = Settings::getValue(10); $opened_orders_count = $opened_orders_sum = $opened_orders_client_count = 0; if ($setting > 0) { $opened_orders_count = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->count('id'); $opened_orders_sum = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->sum('order_sum'); $opened_orders_client_count = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->sum('client_count'); } else { $opened_orders_count = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->where('place_name', '<>', 'ДОСТАВКА') ->count('id'); $opened_orders_sum = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->where('place_name', '<>', 'ДОСТАВКА') ->sum('order_sum'); $opened_orders_client_count = ShiftOnlineOrders::where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->where('place_name', '<>', 'ДОСТАВКА') ->sum('client_count'); } $closed_orders = ShiftOnlineOrders::where('is_closed', 1) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('who_close', '>', 0) ->get(); $closed_orders_count = $closed_orders_sum = $closed_orders_client_count = 0; foreach ($closed_orders as $closed_order) { $order_status = ShiftOnlineOrders::getOrderStatus($closed_order['code']); if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 1 && $closed_order['place_name'] != 'ДОСТАВКА') { $returned_items = ShiftOnlineOrders::getReturnedItems($closed_order['code']); $returned_sum = $returned_order_sum = $returned_count = 0; foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_orders_count += 1; $closed_orders_sum += round($closed_order['order_sum'], 2) - $returned_order_sum; $closed_orders_client_count += $closed_order['client_count']; } if ($setting > 0) { if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 0 && $closed_order['place_name'] != 'ДОСТАВКА') { $closed_orders_count += 1; $closed_orders_sum += $closed_order['order_sum']; $closed_orders_client_count += $closed_order['client_count']; } } else { if ($closed_order['order_sum'] >= 0 && $closed_order['who_open'] > 0 && $closed_order['who_close'] > 0 && $closed_order['is_closed'] == 1 && $closed_order['is_deleted'] == 0 && $closed_order['is_returned'] == 0 && $closed_order['place_name'] != 'ДОСТАВКА' && $order_status != "Оплачен(*)") { $closed_orders_count += 1; $closed_orders_sum += $closed_order['order_sum']; $closed_orders_client_count += $closed_order['client_count']; } } } return [ 'status' => 'success', 'opened_orders_count' => round($opened_orders_count, 2), 'opened_orders_sum' => round($opened_orders_sum, 2), 'opened_orders_client_count' => round($opened_orders_client_count, 2), 'closed_orders_count' => round($closed_orders_count, 2), 'closed_orders_sum' => round($closed_orders_sum, 2), 'closed_orders_client_count' => round($closed_orders_client_count, 2), ]; } if ($type == 'full') { if (isset($input['staff_id'])) { $staff_id = $input['staff_id']; $orders = ShiftOnlineOrders::where('who_open', $staff_id) ->where('full_sum', '>=', 0) ->get(); $orders_count = ShiftOnlineOrders::where('who_open', $staff_id) ->where('full_sum', '>=', 0) ->count(); } elseif (isset($input['guests']) && $input['guests'] == true) { $orders = ShiftOnlineOrders::where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->where('client_code', '<>', '') ->get(); $orders_count = ShiftOnlineOrders::where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->where('client_code', '<>', '') ->count(); } elseif (isset($input['deleted']) && $input['deleted'] == true) { $deleted_orders = ShiftOnlineDeleted::select('order_code')->groupBy('order_code')->get(); $deleted_orders_count = ShiftOnlineDeleted::select('order_code')->count(); $deleted_orders_id = []; if ($deleted_orders_count > 0) { foreach ($deleted_orders as $deleted_order) { $deleted_orders_id[] = $deleted_order['order_code']; } } $orders = ShiftOnlineOrders::whereIn('code', $deleted_orders_id) ->where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->get(); $orders_count = $deleted_orders_count; } elseif (isset($input['discounts']) && $input['discounts'] == true) { $orders = ShiftOnlineOrders::where('who_open', '>', 0) ->where('sale_sum', '>', 0) ->where('full_sum', '>=', 0) ->get(); $orders_count = ShiftOnlineOrders::where('who_open', '>', 0) ->where('sale_sum', '>', 0) ->where('full_sum', '>=', 0) ->count(); } else { $orders = ShiftOnlineOrders::where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->get(); $orders_count = ShiftOnlineOrders::where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->count(); } $cancellations_count = $cancellations_sum = 0; $waited_count = $waited_sum = 0; $closed_count = $closed_sum = 0; $deleted_count = $deleted_sum = 0; $returned_count = $returned_sum = 0; $deleted_items_count = $deleted_items_sum = 0; $orders_info = []; if ($orders_count > 0) { $setting = Settings::getValue(10); foreach ($orders as $order) { $order_status = ShiftOnlineOrders::getOrderStatus($order['code']); $returned_order_sum = 0; if ($order['order_sum'] >= 0 && $order['is_deleted'] > 0 && $order['check_number'] > 0 && $order['who_open'] > 0) { $cancellations_count += 1; $cancellations_sum += $order['order_sum']; } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0) { $waited_count += 1; $waited_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $waited_count += 1; $waited_sum += $order['order_sum']; } } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $closed_count += 1; $closed_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА' && $order_status != "Оплачен(*)") { $closed_count += 1; $closed_sum += $order['order_sum']; } } if ($setting > 0) { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } else { if ($order['place_name'] != 'ДОСТАВКА') { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 1 && $order['place_name'] != 'ДОСТАВКА') { $returned_items = ShiftOnlineOrders::getReturnedItems($order['code']); foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_count += 1; $closed_sum += round($order['order_sum'], 2) - $returned_order_sum; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 1) { $returned_items = ShiftOnlineOrders::getReturnedItems($order['code']); foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_count += 1; $closed_sum += round($order['order_sum'], 2) - $returned_order_sum; } } if ($setting == 1) { $orders_info[] = array( 'id' => $order['code'], 'place' => $order['place_name'], 'table' => $order['table_name'], 'opened' => $order['opened'], 'closed' => $order['closed'] != '0000-00-00 00:00:00' ? $order['closed'] : false, 'who_open' => Staff::getName($order['who_open']), 'who_close' => $order['who_close'] != 0 ? Staff::getName($order['who_close']) : false, 'client_name' => $order['client_code'] != '' ? Client::getName($order['client_code']) : false, 'sum' => round($order['order_sum'], 2) - $returned_order_sum, 'sale_sum' => round($order['sale_sum'], 2), 'full_sum' => round($order['full_sum'], 2) - $returned_order_sum, 'preCheck_count' => ShiftOnlineActions::getPreCheckCount($order['code']), 'is_printed_before_edit' => ShiftOnlineActions::isPrintedBeforeEdit($order['code']), 'hasMove' => ShiftOnlineActions::hasMove($order['code']), 'hasMerge' => ShiftOnlineActions::hasMerge($order['code']), 'hasSlice' => ShiftOnlineActions::hasSlice($order['code']), 'hasDelete' => ShiftOnlineActions::hasDelete($order['code']), 'deleted_items_count' => $deleted_items_count, 'deleted_items_sum' => $deleted_items_sum, 'title' => '', 'status' => $order_status ); } elseif ($setting == 0 && $order_status != "Доставка" && $order_status != "Оплачен(*)" && $order['place_name'] != "ДОСТАВКА") { $orders_info[] = array( 'id' => $order['code'], 'place' => $order['place_name'], 'table' => $order['table_name'], 'opened' => $order['opened'], 'closed' => $order['closed'] != '0000-00-00 00:00:00' ? $order['closed'] : false, 'who_open' => Staff::getName($order['who_open']), 'who_close' => $order['who_close'] != 0 ? Staff::getName($order['who_close']) : false, 'client_name' => $order['client_code'] != '' ? Client::getName($order['client_code']) : false, 'sum' => round($order['order_sum'], 2) - $returned_order_sum, 'sale_sum' => round($order['sale_sum'], 2), 'full_sum' => round($order['full_sum'], 2) - $returned_order_sum, 'preCheck_count' => ShiftOnlineActions::getPreCheckCount($order['code']), 'is_printed_before_edit' => ShiftOnlineActions::isPrintedBeforeEdit($order['code']), 'hasMove' => ShiftOnlineActions::hasMove($order['code']), 'hasMerge' => ShiftOnlineActions::hasMerge($order['code']), 'hasSlice' => ShiftOnlineActions::hasSlice($order['code']), 'hasDelete' => ShiftOnlineActions::hasDelete($order['code']), 'deleted_items_count' => $deleted_items_count, 'deleted_items_sum' => $deleted_items_sum, 'title' => '', 'status' => $order_status ); } } } return [ 'status' => 'success', 'waited_count' => round($waited_count, 2), 'waited_sum' => round($waited_sum, 2), 'closed_count' => round($closed_count, 2), 'closed_sum' => round($closed_sum, 2), 'deleted_count' => round($deleted_count, 2), 'deleted_sum' => round($deleted_sum, 2), 'returned_count' => round($returned_count, 2), 'returned_sum' => round($returned_sum, 2), 'cancellations_count' => round($cancellations_count, 2), 'cancellations_sum' => round($cancellations_sum, 2), 'orders' => $orders_info ]; } if ($type == 'dashboard') { $orders = ShiftOnlineOrders::where('who_open', '>', 0) ->where('full_sum', '>=', 0) ->get(); $cancellations_count = $cancellations_sum = 0; $waited_count = $waited_sum = 0; $closed_count = $closed_sum = 0; $deleted_count = $deleted_sum = 0; $returned_count = $returned_sum = 0; $setting = Settings::getValue(10); foreach ($orders as $order) { $order_status = ShiftOnlineOrders::getOrderStatus($order['code']); $returned_order_sum = 0; if ($order['order_sum'] >= 0 && $order['is_deleted'] > 0 && $order['check_number'] > 0 && $order['who_open'] > 0) { $cancellations_count += 1; $cancellations_sum += $order['order_sum']; } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0) { $waited_count += 1; $waited_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $waited_count += 1; $waited_sum += $order['order_sum']; } } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА') { $closed_count += 1; $closed_sum += $order['order_sum']; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 0 && $order['place_name'] != 'ДОСТАВКА' && $order_status != "Оплачен(*)") { $closed_count += 1; $closed_sum += $order['order_sum']; } } if ($setting > 0) { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } else { if ($order['place_name'] != 'ДОСТАВКА') { $deleted_items_count = ShiftOnlineDeleted::where('order_code', $order['code'])->sum('count'); $deleted_items_sum = ShiftOnlineDeleted::selectRaw('sum(sale_price * count) as deleted_sum') ->where('order_code', $order['code']) ->first(); $deleted_items_sum = $deleted_items_sum['deleted_sum']; $deleted_count += $deleted_items_count; $deleted_sum += $deleted_items_sum; } } if ($setting > 0) { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 1 && $order['place_name'] != 'ДОСТАВКА') { $returned_items = ShiftOnlineOrders::getReturnedItems($order['code']); foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_count += 1; $closed_sum += round($order['order_sum'], 2) - $returned_order_sum; } } else { if ($order['order_sum'] >= 0 && $order['who_open'] > 0 && $order['who_close'] > 0 && $order['is_closed'] == 1 && $order['is_deleted'] == 0 && $order['is_returned'] == 1) { $returned_items = ShiftOnlineOrders::getReturnedItems($order['code']); foreach ($returned_items as $returned_item) { $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_order_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_count += $returned_item['count']; } $closed_count += 1; $closed_sum += round($order['order_sum'], 2) - $returned_order_sum; } } } return [ 'status' => 'success', 'waited_count' => round($waited_count, 2), 'waited_sum' => round($waited_sum, 2), 'closed_count' => round($closed_count, 2), 'closed_sum' => round($closed_sum, 2), 'deleted_count' => round($deleted_count, 2), 'deleted_sum' => round($deleted_sum, 2), 'returned_count' => round($returned_count, 2), 'returned_sum' => round($returned_sum, 2), 'cancellations_count' => round($cancellations_count, 2), 'cancellations_sum' => round($cancellations_sum, 2) ]; } } } if ($method == 'map') { $roommap = []; if (isset($input['type'])) { $type = $input['type']; if ($type == 'places') { $places = Places::all(); return [ 'status' => 'success', 'places' => $places, ]; } if ($type == 'place' && isset($input['id'])) { $place = Places::find($input['id']); $place_name = $place->name; $place_image = $place->image; $tables = Tables::where('place_id', $input['id']) ->get(); foreach ($tables as $table) { $opened_order_sum = ShiftOnlineOrders::where('place_name', $place_name) ->where('table_name', strval($table['table_id'])) ->where('is_closed', 0) ->where('is_deleted', 0) ->where('who_open', '>', 0) ->where('is_returned', 0) ->sum('order_sum'); $orders_count = ShiftOnlineOrders::where('place_name', $place_name) ->where('table_name', strval($table['table_id'])) ->where('who_open', '>', 0) ->count(); $tables_info[] = array( 'id' => $table['id'], 'name' => $table['name'], 'place_id' => $table['place_id'], 'table_id' => $table['table_id'], 'type' => $table['type'], 'width' => $table['width'], 'height' => $table['height'], 'x' => $table['x'], 'y' => $table['y'], 'sum' => floatval($opened_order_sum), 'count' => $orders_count ); } return [ 'status' => 'success', 'place_id' => $input['id'], 'place' => $place_name, 'place_image' => $place_image, 'tables' => $tables_info, ]; } if ($type == 'full') { $places = Places::all(); foreach ($places as $place) { $tables = Tables::where('place_id', $place['id']) ->get(); $roommap[] = array( 'place_id' => $place['id'], 'place_name' => $place['name'], 'tables' => $tables ); } return [ 'status' => 'success', 'roommap' => $roommap, ]; } } } } return ['status' => 'success', 'message' => 'Ошибка данных запроса',]; } }