'success', 'message' => 'Проверьте введенные данные' ]; } $items = $input['items']; } else { $items = false; } if (isset($input['type'])) { $type = $input['type']; } else { $type = false; } $method = $input['method']; } else { return [ 'status' => 'success', 'message' => 'Проверьте введенные данные' ]; } if ($method == "deleted") { $count = ShiftOnlineDeleted::count(); if ($count < 1) { $count = 0; } $sum = ShiftOnlineDeleted::selectRaw('SUM(count * sale_price) as sum')->first(); if (isset($sum) && !is_null($sum['sum'])) { $sum = $sum['sum']; } else { $sum = 0; } if ($more) { $deleted_items = ShiftOnlineDeleted::select('order_code') ->selectRaw('SUM(count * sale_price) as sum') ->groupBy('order_code') ->get(); if ($count > 0) { foreach ($deleted_items as $deleted_item) { $order = ShiftOnlineOrders::select('opened', 'closed') ->where('code', $deleted_item['order_code']) ->first(); $closed = $order['closed']; if ($closed == '0000-00-00 00:00:00') { $closed = '30.12.1899'; } $orders[] = array( 'number' => $deleted_item['order_code'], 'opened' => $order['opened'], 'closed' => $closed, 'deleted_sum' => round($deleted_item['sum'], 2) ); } } else { $orders = []; } return [ 'status' => 'success', 'title' => 'Подробнее об удаленных', 'total_sum' => round($sum, 2), 'total_count' => $count, 'deleted_orders' => $orders ]; } if ($items) { $all_sum = $all_count = 0; $deleted_items = ShiftOnlineDeleted::where('order_code', $order_id) ->get(); if ($count > 0) { foreach ($deleted_items as $deleted_item) { $order = ShiftOnlineActions::where('order_code', $deleted_item['order_code']) ->where('type_action', 5) ->first(); $out_items[] = array( 'dish' => Dishes::getName($deleted_item['menu_code']), 'time' => $order['time'], 'reason' => Reasons::getName($order['reason']), 'count' => $deleted_item['count'], 'sale_price' => $deleted_item['count'] * $deleted_item['sale_price'], 'who_deleted' => Staff::getName($order['who']) ); $all_sum += $deleted_item['count'] * $deleted_item['sale_price']; $all_count += $deleted_item['count']; } } else { $out_items = []; } return [ 'status' => 'success', 'code' => $order_id, 'all_sum' => round($all_sum, 2), 'all_count' => round($all_count, 3), 'items' => $out_items ]; } return [ 'status' => 'success', 'sum' => round($sum, 2), 'count' => $count ]; } if ($method == 'guests') { if ($type == 'median') { $data = []; $orders = ShiftOnlineOrders::where('is_waited', 1) ->where('is_deleted', 0) ->get(); if (isset($orders)) { foreach ($orders as $order) { $originalTime = $order['opened']; $newTime = Carbon::createFromFormat('Y-m-d H:i:s', $originalTime)->format('d.m.Y H:i:s'); $data[] = array( 'time' => $newTime, 'count' => $order['client_count'] ); } } return [ 'status' => 'success', 'data' => $data ]; } if ($type == 'more') { $clientsIDS = ShiftOnlineOrders::select('client_code') ->where('is_deleted', 0) ->where('is_returned', 0) ->where('who_open', '<>', 0) ->where('client_code', '<>', '') ->groupBy('client_code') ->get(); $clientsOrdersCount = ShiftOnlineOrders::select('client_code') ->where('is_deleted', 0) ->where('is_returned', 0) ->where('who_open', '<>', 0) ->where('client_code', '<>', '') ->groupBy('client_code') ->count(); if ($clientsOrdersCount > 0) { foreach ($clientsIDS as $clientsID) { $orders_info = ShiftOnlineOrders::where('client_code', $clientsID['client_code']) ->where('is_deleted', 0) ->where('is_returned', 0) ->where('who_open', '<>', 0) ->get(); $clientName = Client::getName($clientsID['client_code']); $clientOrder[$clientName] = []; foreach ($orders_info as $order_info) { if ($order_info['closed'] == '0000-00-00 00:00:00') { $closed = false; } else { $closed = $order_info['closed']; } $order = array( 'number' => $order_info['code'], 'opened' => $order_info['opened'], 'closed' => $closed, 'sum' => $order_info['order_sum'] ); array_push($clientOrder[$clientName], $order); } } foreach ($clientOrder as $key => $oInfo) { $out[] = array( 'name' => $key, 'orders' => $oInfo ); } return [ 'status' => 'success', 'title' => 'Подробнее о заказах гостей', 'clients' => $out ]; } else { return [ 'status' => 'success', 'title' => 'Подробнее о заказах гостей', 'clients' => [] ]; } } $guests = $namedGuests = $totalSum = 0; $orders = ShiftOnlineOrders::where('is_waited', 1) ->where('is_deleted', 0) ->get(); if (isset($orders)) { foreach ($orders as $order) { $guests += $order['client_count']; $totalSum += $order['order_sum']; if ($order['client_code'] != '') { $namedGuests += 1; } } } return [ 'status' => 'success', 'namedGuests' => $namedGuests, 'guestsCount' => $guests, 'totalSum' => round($totalSum, 2) ]; } if ($method == 'info') { $response['status'] = 'success'; $response['exists'] = 'false'; $shifts = Shifts::first(); if (isset($shifts)) { $response['exists'] = true; $response['opened'] = $shifts['opened']; $response['open'] = Staff::getName($shifts['who_open']); $response['z_number'] = $shifts['z_number']; if ($shifts['who_close'] > 0) { $response['closed'] = $shifts['closed']; $response['close'] = Staff::getName($shifts['who_close']); } } return $response; } } }