/** * Registra cualquier pedido junto con las comidas ordenadas por el usuario * * @return Response */ public function create() { // Se recuperan todas las comidas del objeto JSON $meals = \Input::get('meals'); // Creación e inicialización de un Pedido $order = new Order(); if ($order != null) { $order->customer_id = \Auth::user()->id; $order->meal_number = count($meals); $order->total = 100; $order->save(); } else { return response()->json(['success' => false, 'error' => "No se pudo crear el pedido debido a problemas en la base de datos"]); } //Registro de las comidas ordenadas en el pedido foreach ($meals as $meal) { // Creación e inicializacion de una comida $order_detail = new OrderDetail(); // Se recupera el id del pedido para tenerlo como referencia $order_detail->order_id = $order->id; $order_detail->meal_id = $meal['id']; $order_detail->day = $meal['day']; $order_detail->ubication = "Tercera"; $order_detail->delivery = "14:00"; $order_detail->save(); } return response()->json(["success" => true, 'msj' => "El pedido se ha creado"]); }
/** * Creates a new OrderDetail model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new OrderDetail(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->order_detail_id]); } else { return $this->render('create', ['model' => $model]); } }
/** * @param $orderId * @param $carts * @return bool */ public function createItems($orderId, $carts) { if (count($carts) > 0) { foreach ($carts as $item) { $orderObj = new OrderDetail(); $orderObj->order_id = $orderId; $orderObj->name = $item->name; $orderObj->price = $item->price; $orderObj->quantity = $item->qty; $orderObj->subtotal = $item->subtotal; $orderObj->product_id = $item->id; $orderObj->created = date('Y-m-d H:i:s'); $orderObj->updated = date('Y-m-d H:i:s'); if (isset($item->options['color'])) { $orderObj->color = $item->options['color'][0]; } $orderObj->save(); } } return true; }