/** * @param array $attributes */ public function saveFromArray(array $attributes = array()) { $this->model->customer_id = $attributes['customer_id']; if (!isset($attributes['orders_status_id'])) { $ordersStatus = Models\OrdersStatus::where('default', 1)->first(); $this->model->orders_status_id = $ordersStatus->id; } else { $this->model->orders_status_id = $attributes['orders_status_id']; } $this->model->total = $attributes['total']; $this->model->comment = $attributes['comment']; $this->model->save(); $this->model->items()->delete(); foreach ($attributes['items'] as $oredersItem) { $item = new Models\OrdersItem(); $item->order_id = $this->model->id; $item->photo_id = $oredersItem['photo_id']; $item->qty = $oredersItem['qty']; $item->format_id = $oredersItem['format_id']; $item->price_per_item = $oredersItem['price_per_item']; $item->save(); foreach ($oredersItem['addons'] as $oredersItemsAddon) { if (isset($oredersItemsAddon['id']) && $oredersItemsAddon['id']) { $addon = new Models\OrdersItemsAddon(); $addon->orders_item_id = $item->id; $addon->addon_id = $oredersItemsAddon['id']; $addon->qty = $oredersItemsAddon['qty']; $addon->save(); } } } }
/** * @SWG\Api( * path="/orders_status/get/{id}", * @SWG\Operation( * nickname="Get orders status", * method="GET", * summary="Find orders status by ID", * notes="Returns oreders status", * type="OrdersStatus", * authorizations={}, * @SWG\Parameter( * name="id", * description="ID of orders status", * required=true, * type="integer", * format="int64", * paramType="path", * allowMultiple=false * ), * @SWG\ResponseMessage(code=404, message="Orders status not found"), * @SWG\ResponseMessage(code=500, message="Internal server error") * ) * ) */ public function get($id) { $statusCode = 200; $response = []; try { $validator = Validator::make(['id' => $id], ['id' => 'required|numeric']); if ($validator->fails()) { $response = ['error' => $validator->errors()]; $statusCode = 500; } else { $ordersStatusModel = Models\OrdersStatus::where('id', $id)->first(); if (!isset($ordersStatusModel)) { throw new ModelNotFoundException(); } $ordersStatusView = new ModelViews\OrdersStatus($ordersStatusModel); $response = $ordersStatusView->get(); } } catch (ModelNotFoundException $e) { $response = ['error' => 'Orders status doesn\'t exists']; $statusCode = 404; } finally { return \Response::json($response, $statusCode); } }