Edit File: OrderController.php
<?php namespace App\Http\Controllers\Admin; use Carbon\Carbon; use App\Models\User; use App\Models\OrderProduct; use App\Models\Order; use Illuminate\Http\Request; use App\Services\OrderService; use App\Http\Controllers\Controller; use App\Services\CitcServices; class OrderController extends Controller { public function index() { $type = request()->segment(3) ; $orders = Order::where(['status' => $type])->orderBy('created_at' , 'desc')->get(); return view('admin.orders.index' , ['orders' => $orders]); } public function show($id) { $order = Order::findOrFail($id) ; $products = OrderProduct::where('order_id', $id)->orderBy('created_at' , 'desc')->get(); $delegates = User::where('type' , 'delegate')->whereHas('delegateJoinRequests')->get() ; return view('admin.orders.show' , ['order' => $order , 'delegates' => $delegates , 'products' => $products]); } public function showInvoice($id) { $order = Order::findOrFail($id) ; return view('admin.orders.show_invoice' , ['order' => $order]); } public function storeChange(Request $request) { // 'special_stores' متجر متعاقد,'google_places' متجر غير متعاقد,'parcel_delivery' باكدج ,'special_request' طلب خاص $order = Order::findOrFail($request->order_id); if ($request->status == 'accepted') { if ($order->type == 'special_stores' && $order->needs_delivery == 'true') { $order = OrderService::storeAcceptOrder(['order' => $order]); }elseif($order->type == 'special_stores' && $order->needs_delivery == 'false'){ $order->update(['store_status' => $request->status , 'status' => 'inprogress' ]); } }elseif($request->status == 'rejected'){ $order->update(['store_status' => $request->status , 'close_reason' => 'تم الرفض عن طريق الادارة' , 'status' => 'closed' ]); $citc = new CitcServices(); $citc->rejectOrder($order->id); }elseif($request->status == 'prepared'){ $order = OrderService::storePreparedOrder(['order' => $order]); // $order->update(['store_status' => $request->status]); } return response()->json(['store_status' => $order->store_status]) ; } public function delegateChange(Request $request) { $order = Order::findOrFail($request->order_id); if ($request->status == 'accepted') { $data = OrderService::delegateAcceptOrder(['delegate_id' => $request->delegate , 'request' => $request]); if (isset($data['fail_msg'])) { return response()->json(['status' => 'fail' , 'msg' => $data['fail_msg'] , 'delivery_status' => $order->refresh()->delivery_status ]) ; } return response()->json(['status' => 'success' , 'delivery_status' => $order->refresh()->delivery_status ]) ; } elseif( $request->status == 'delivered'){ $data = OrderService::finishOrder(['order' => $order]); return response()->json(['delivery_status' => $order->refresh()->delivery_status ]) ; } elseif( in_array($request->status , ['reached_store' , 'delivering' ,'reached_receive_location' , 'reached_deliver_location' ])){ $order->update(['delivery_status' => $request->status]); return response()->json(['delivery_status' => $order->refresh()->delivery_status ]) ; } } }
Back to File Manager