예제 #1
0
 /**
  * @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);
     }
 }