Edit File: OrderController.php
<?php namespace App\Http\Controllers\Admin; use App\Models\DeliveryOffer; use App\Models\Setting; use App\Services\SettingService; use Carbon\Carbon; use App\Models\User; use App\Models\Order; use Illuminate\Http\Request; use App\Services\OrderService; use App\Http\Controllers\Controller; 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]); if ( request()->ajax() ) { $type = request()->segment(3) ; $rows = Order::where(['status' => $type])->orderBy('created_at', 'DESC')->search( request()->searchArray )->paginate( 10 ); // dd($orders); $html = view( 'admin.orders.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } return view( 'admin.orders.index' ); } public function show( $id ) { // return Order::where( 'store_status', '' )->get(); $order = Order::findOrFail( $id ) ; $settings = SettingService::appInformations( Setting::pluck( 'value', 'key' ) ); $offers = DeliveryOffer::where('order_id' , $id)->latest()->get(); $arr = [ 'order' => $order ]; if ( $order[ 'type' ] != 'special_request' && $order[ 'store_status' ] == 'prepared' ) { $delegates = User::where( 'type', 'delegate' )->get() ; $arr[ 'delegates' ] = $delegates; } return view('admin.orders.show' , $arr,compact('settings' , 'offers')); } public function showInvoice($id) { $invoice = Order::findOrFail($id) ; return view('admin.orders.show_invoice' , ['invoice' => $invoice]); } public function storeChange( Request $request ) { // 'special_stores' متجر متعاقد, 'google_places' متجر غير متعاقد, 'parcel_delivery' باكدج, 'special_request' طلب خاص $order = Order::findOrFail( $request->order_id ); $data = []; if ( $request->status == 'accepted' ) { if ( $order->type == 'special_stores' && $order->needs_delivery == 'true' ) { $user = User::find( $order[ 'user_id' ] ); $order = OrderService::storeAcceptOrder( [ 'order' => $order, 'user'=>$user ] ); $order = $order[ 'order' ]; } elseif ( $order->type == 'special_stores' && $order->needs_delivery == 'false' ) { $order->update( [ 'store_status' => $request->status, 'status' => 'inprogress' ] ); } $msg = trans( 'order.successfully_accepted' ); } elseif ( $request->status == 'rejected' ) { $order->update( [ 'store_status' => $request->status, 'close_reason' => 'تم الرفض عن طريق الادارة', 'status' => 'closed' ] ); $msg = trans( 'order.successfully_rejected' ); } elseif ( $request->status == 'prepared' ) { $order->update( [ 'store_status' => $request->status ] ); $msg = trans( 'order.successfully_prepared' ); } $data[ 'msg' ] = $msg; $data[ 'store_status' ] = $order->store_status; return response()->json( $data ) ; } 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'){ 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