Edit File: StoreOrderController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use App\Services\OrderService; use App\Http\Resources\OrdersResource; use App\Http\Resources\OrderResource; class StoreOrderController extends Controller { use ApiTrait, GeneralTrait, Uploadable; public function storeOrders(Request $request) { $store = auth('api')->user()->store; $orders =$store->orders() ->where(function ($query) use ($request) { if ($request['status'] == 'pending') { $query->where('store_status', $request['status'])->where('status' , 'open'); }else if ($request['status'] == 'inprogress') { $query->whereIn('store_status', ['accepted' , 'prepared']); }else{ $query->where('store_status', $request['status'])->orWhere('status','closed'); } })->orderBy('created_at', 'desc') ->paginate($this->paginateNum()); $data = []; $page = $request['page']?? 1; $data['orders'] = OrdersResource::collection($orders); $data['pagination'] = $this->paginationModel($orders); return $this->dataReturn($data); } public function storeSingleOrder(Request $request) { $store = auth('api')->user()->store; // find order $order = $store->orders()->where('id', $request['order_id'])->first(); if (!$order) { $msg = trans('order.not_available'); return $this->failMsg($msg); } // response data $data = []; $data['order'] = new OrderResource($order); return $this->dataReturn($data); } public function storeAcceptOrder(Request $request) { $store = auth('api')->user()->store; $order = $store->orders()->where('id', $request['order_id'])->first(); if (!$order) { $msg = trans('order.not_available'); return $this->failMsg($msg); } $order_service = new OrderService(); $order = $order_service->storeAcceptOrder(['order' => $order]); if(isset($order['fail_msg'])) { return $this->failMsg($order['fail_msg']); } // response data $msg = trans('dashboard.alerts.updated_successfully'); return $this->successMsg($msg); } public function storeRejectOrder(Request $request) { $store = auth('api')->user()->store; $order = $store->orders()->where('id', $request['order_id'])->first(); if (!$order) { $msg = trans('order.not_available'); return $this->failMsg($msg); } $order_service = new OrderService(); $order_service->storeRejectOrder(['order' => $order , 'reason' => $request['reason']]); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successMsg($msg); } public function storePreparedOrder(Request $request) { $store = auth('api')->user()->store; $order = $store->orders()->where('id', $request['order_id'])->first(); if (!$order) { $msg = trans('order.not_available'); return $this->failMsg($msg); } $order_service = new OrderService(); $order_service->storePreparedOrder(['order' => $order]); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successMsg($msg); } public function storeDeliverOrder(Request $request) { $store = auth('api')->user()->store; $order = $store->orders()->where('id', $request['order_id'])->first(); if (!$order) { $msg = trans('order.not_available'); return $this->failMsg($msg); } // if($order->delegate_id == null && $order->needs_delivery == 'true'){ // $msg = trans('order.not_delegate'); // return $this->failMsg($msg); // } $order_service = new OrderService(); $order_service->storeDeliveryOrder(['order' => $order]); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successMsg($msg); } }
Back to File Manager