Edit File: StoreOrderController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Resources\OrderResource; use App\Http\Resources\OrdersResource; use App\Services\OrderService; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Http\Request; 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'] == 'inprogress') { $query->whereIn('store_status', ['accepted' , 'prepare', 'prepared'])->where('status' , '!=' , 'finished'); } else if ($request['status'] == 'finished') { $query->where('status', $request['status'])->orWhere('store_status' , 'delivered'); } else { $query->where('status', $request['status']); } }) ->orderBy('created_at', 'desc') ->paginate($this->paginateNum()); $data = []; $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 storePrepareOrder(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->storePrepareOrder(['order' => $order]); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successMsg($msg); } public function storeConfirmPaymentOrder(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->update(['store_status' => 'confirm_payment']); $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); } // check if payment is complete if ($order->payment_type != 'cash' && $order->payment_status == 'false') { $msg = trans('order.payment_not_done_yet'); 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