Edit File: OrderController.php
<?php namespace App\Http\Controllers\Admin; use App\Jobs\DelegateAcceptOfferNotify; use App\Jobs\OrderIntransitNotify; use Carbon\Carbon; use App\Models\User; 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) ; $delegates = User::where('type' , 'delegate')->whereHas('delegateJoinRequests')->get() ; return view('admin.orders.show' , ['order' => $order , 'delegates' => $delegates]); } 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->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') { $order->status = 'inprogress'; $order->delivery_status = 'accepted'; $order->update(); dispatch(new DelegateAcceptOfferNotify($order->user , $order )); } else if ($request->status == 'delivering'){ $order->delivery_status = 'delivering'; $order->update(); dispatch(new OrderIntransitNotify($order->user , $order , 'delivering')); }else{ $order->delivery_status = 'delivered'; $order->update(); dispatch(new OrderIntransitNotify($order->user , $order , 'delivered')); } return response()->json(['status' => 'success' , 'delivery_status' => $order->refresh()->delivery_status ]) ; } }
Back to File Manager