You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					336 lines
				
				13 KiB
			
		
		
			
		
	
	
					336 lines
				
				13 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers\Vendor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use App\Http\Controllers\Controller;
							 | 
						||
| 
								 | 
							
								use App\CentralLogics\Helpers;
							 | 
						||
| 
								 | 
							
								use App\CentralLogics\OrderLogic;
							 | 
						||
| 
								 | 
							
								use App\Models\Order;
							 | 
						||
| 
								 | 
							
								use App\Models\Category;
							 | 
						||
| 
								 | 
							
								use App\Models\Food;
							 | 
						||
| 
								 | 
							
								use App\Models\OrderDetail;
							 | 
						||
| 
								 | 
							
								use App\Models\Admin;
							 | 
						||
| 
								 | 
							
								use App\Models\RestaurantWallet;
							 | 
						||
| 
								 | 
							
								use App\Models\AdminWallet;
							 | 
						||
| 
								 | 
							
								use App\Models\ItemCampaign;
							 | 
						||
| 
								 | 
							
								use App\Models\BusinessSetting;
							 | 
						||
| 
								 | 
							
								use Brian2694\Toastr\Facades\Toastr;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\DB;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class OrderController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function list($status)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $data =0;
							 | 
						||
| 
								 | 
							
								        $restaurant =Helpers::get_restaurant_data();
							 | 
						||
| 
								 | 
							
								        if (($restaurant->restaurant_model == 'subscription' && isset($restaurant->restaurant_sub) && $restaurant->restaurant_sub->self_delivery == 1)  || ($restaurant->restaurant_model == 'commission' &&  $restaurant->self_delivery_system == 1) ){
							 | 
						||
| 
								 | 
							
								        $data =1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Order::where(['checked' => 0])->where('restaurant_id',Helpers::get_restaurant_id())->update(['checked' => 1]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $orders = Order::with(['customer'])
							 | 
						||
| 
								 | 
							
								        ->when($status == 'searching_for_deliverymen', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->SearchingForDeliveryman();
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'confirmed', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->whereIn('order_status',['confirmed', 'accepted'])->whereNotNull('confirmed');
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'pending', function($query) use($data){
							 | 
						||
| 
								 | 
							
								            if(config('order_confirmation_model') == 'restaurant' || $data)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                return $query->where('order_status','pending');
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                return $query->where('order_status','pending')->where('order_type', 'take_away');
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'cooking', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->where('order_status','processing');
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'food_on_the_way', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->where('order_status','picked_up');
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'delivered', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->Delivered();
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'ready_for_delivery', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->where('order_status','handover');
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'refund_requested', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->Refund_requested();
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'refunded', function($query){
							 | 
						||
| 
								 | 
							
								            return $query->Refunded();
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'scheduled', function($query) use($data){
							 | 
						||
| 
								 | 
							
								            return $query->Scheduled()->where(function($q) use($data){
							 | 
						||
| 
								 | 
							
								                if(config('order_confirmation_model') == 'restaurant' || $data)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $q->whereNotIn('order_status',['failed','canceled', 'refund_requested', 'refunded']);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $q->whereNotIn('order_status',['pending','failed','canceled', 'refund_requested', 'refunded'])->orWhere(function($query){
							 | 
						||
| 
								 | 
							
								                        $query->where('order_status','pending')->where('order_type', 'take_away');
							 | 
						||
| 
								 | 
							
								                    });
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when($status == 'all', function($query) use($data){
							 | 
						||
| 
								 | 
							
								            return $query->where(function($q1) use($data) {
							 | 
						||
| 
								 | 
							
								                $q1->whereNotIn('order_status',(config('order_confirmation_model') == 'restaurant'|| $data)?['failed','canceled', 'refund_requested', 'refunded']:['pending','failed','canceled', 'refund_requested', 'refunded'])
							 | 
						||
| 
								 | 
							
								                ->orWhere(function($q2){
							 | 
						||
| 
								 | 
							
								                    return $q2->where('order_status','pending')->where('order_type', 'take_away');
							 | 
						||
| 
								 | 
							
								                })->orWhere(function($q3){
							 | 
						||
| 
								 | 
							
								                    return $q3->where('order_status','pending')->whereNotNull('subscription_id');
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->when(in_array($status, ['pending','confirmed']), function($query){
							 | 
						||
| 
								 | 
							
								            return $query->OrderScheduledIn(30);
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        ->Notpos()
							 | 
						||
| 
								 | 
							
								        ->hasSubscriptionToday()
							 | 
						||
| 
								 | 
							
								        ->where('restaurant_id',\App\CentralLogics\Helpers::get_restaurant_id())
							 | 
						||
| 
								 | 
							
								        ->orderBy('schedule_at', 'desc')
							 | 
						||
| 
								 | 
							
								        ->paginate(config('default_pagination'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $status = translate('messages.'.$status);
							 | 
						||
| 
								 | 
							
								        return view('vendor-views.order.list', compact('orders', 'status'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function search(Request $request){
							 | 
						||
| 
								 | 
							
								        $key = explode(' ', $request['search']);
							 | 
						||
| 
								 | 
							
								        $orders=Order::where(['restaurant_id'=>Helpers::get_restaurant_id()])->where(function ($q) use ($key) {
							 | 
						||
| 
								 | 
							
								            foreach ($key as $value) {
							 | 
						||
| 
								 | 
							
								                $q->orWhere('id', 'like', "%{$value}%")
							 | 
						||
| 
								 | 
							
								                    ->orWhere('order_status', 'like', "%{$value}%")
							 | 
						||
| 
								 | 
							
								                    ->orWhere('transaction_reference', 'like', "%{$value}%");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        })->Notpos()->limit(100)->get();
							 | 
						||
| 
								 | 
							
								        return response()->json([
							 | 
						||
| 
								 | 
							
								            'view'=>view('vendor-views.order.partials._table',compact('orders'))->render()
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function details(Request $request,$id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // OrderLogic::create_subscription_log($id);
							 | 
						||
| 
								 | 
							
								        $order = Order::with(['subscription','subscription.schedule_today','details', 'customer'=>function($query){
							 | 
						||
| 
								 | 
							
								            return $query->withCount('orders');
							 | 
						||
| 
								 | 
							
								        },'delivery_man'=>function($query){
							 | 
						||
| 
								 | 
							
								            return $query->withCount('orders');
							 | 
						||
| 
								 | 
							
								        }])->where(['id' => $id, 'restaurant_id' => Helpers::get_restaurant_id()])->first();
							 | 
						||
| 
								 | 
							
								        if (isset($order)) {
							 | 
						||
| 
								 | 
							
								            return view('vendor-views.order.order-view', compact('order'));
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            Toastr::info('No more orders!');
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function status(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $request->validate([
							 | 
						||
| 
								 | 
							
								            'id' => 'required',
							 | 
						||
| 
								 | 
							
								            'order_status' => 'required|in:confirmed,processing,handover,delivered,canceled',
							 | 
						||
| 
								 | 
							
								            'reason' =>'required_if:order_status,canceled',
							 | 
						||
| 
								 | 
							
								        ],[
							 | 
						||
| 
								 | 
							
								            'id.required' => 'Order id is required!'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $order = Order::where(['id' => $request->id, 'restaurant_id' => Helpers::get_restaurant_id()])->first();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($order->delivered != null)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.cannot_change_status_after_delivered'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($request['order_status']=='canceled' && !config('canceled_by_restaurant'))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.you_can_not_cancel_a_order'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($request['order_status']=='canceled' && $order->confirmed)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.you_can_not_cancel_after_confirm'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data =0;
							 | 
						||
| 
								 | 
							
								        $restaurant =Helpers::get_restaurant_data();
							 | 
						||
| 
								 | 
							
								        if (($restaurant->restaurant_model == 'subscription' && isset($restaurant->restaurant_sub) && $restaurant->restaurant_sub->self_delivery == 1)  || ($restaurant->restaurant_model == 'commission' &&  $restaurant->self_delivery_system == 1) ){
							 | 
						||
| 
								 | 
							
								        $data =1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($request['order_status']=='delivered' && $order->order_type != 'take_away' && !$data)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.you_can_not_delivered_delivery_order'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($request['order_status'] =="confirmed")
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if(!$data && config('order_confirmation_model') == 'deliveryman' && $order->order_type != 'take_away' && $order->subscription_id == null )
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                Toastr::warning(translate('messages.order_confirmation_warning'));
							 | 
						||
| 
								 | 
							
								                return back();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($request->order_status == 'delivered') {
							 | 
						||
| 
								 | 
							
								            $order_delivery_verification = (boolean)\App\Models\BusinessSetting::where(['key' => 'order_delivery_verification'])->first()->value;
							 | 
						||
| 
								 | 
							
								            if($order_delivery_verification)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if($request->otp)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    if($request->otp != $order->otp)
							 | 
						||
| 
								 | 
							
								                    {
							 | 
						||
| 
								 | 
							
								                        Toastr::warning(translate('messages.order_varification_code_not_matched'));
							 | 
						||
| 
								 | 
							
								                        return back();
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    Toastr::warning(translate('messages.order_varification_code_is_required'));
							 | 
						||
| 
								 | 
							
								                    return back();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if($order->transaction  == null || isset($order->subscription_id))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if($order->payment_method == 'cash_on_delivery')
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $ol = OrderLogic::create_transaction($order,'restaurant', null);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else{
							 | 
						||
| 
								 | 
							
								                    $ol = OrderLogic::create_transaction($order,'admin', null);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if(!$ol)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    Toastr::warning(translate('messages.faield_to_create_order_transaction'));
							 | 
						||
| 
								 | 
							
								                    return back();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $order->payment_status = 'paid';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $order->details->each(function($item, $key){
							 | 
						||
| 
								 | 
							
								                if($item->food)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    $item->food->increment('order_count');
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            $order->customer ?  $order->customer->increment('order_count') : '';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if($request->order_status == 'canceled' || $request->order_status == 'delivered')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if($order->delivery_man)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $dm = $order->delivery_man;
							 | 
						||
| 
								 | 
							
								                $dm->current_orders = $dm->current_orders>1?$dm->current_orders-1:0;
							 | 
						||
| 
								 | 
							
								                $dm->save();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if($request->order_status == 'canceled' )
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            // dd($order->subscription_id);
							 | 
						||
| 
								 | 
							
								            Helpers::increment_order_count($order->restaurant);
							 | 
						||
| 
								 | 
							
								            $order->cancellation_reason = $request->reason;
							 | 
						||
| 
								 | 
							
								            $order->canceled_by = 'restaurant';
							 | 
						||
| 
								 | 
							
								            if(!isset($order->confirmed) && isset($order->subscription_id)){
							 | 
						||
| 
								 | 
							
								                $order->subscription()->update(['status' => 'canceled']);
							 | 
						||
| 
								 | 
							
								                    if($order->subscription->log){
							 | 
						||
| 
								 | 
							
								                        $order->subscription->log()->update([
							 | 
						||
| 
								 | 
							
								                            'order_status' => $request->status,
							 | 
						||
| 
								 | 
							
								                            'canceled' => now(),
							 | 
						||
| 
								 | 
							
								                            ]);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if($request->order_status == 'delivered')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            $order->restaurant->increment('order_count');
							 | 
						||
| 
								 | 
							
								            if($order->delivery_man)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                $order->delivery_man->increment('order_count');
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        // dd($request->order_status);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $order->order_status = $request->order_status;
							 | 
						||
| 
								 | 
							
								        if ($request->order_status == "processing") {
							 | 
						||
| 
								 | 
							
								            $order->processing_time = $request->processing_time;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $order[$request['order_status']] = now();
							 | 
						||
| 
								 | 
							
								        $order->save();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if(!Helpers::send_order_notification($order))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.push_notification_faild'));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        OrderLogic::update_subscription_log($order);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // dd($order);
							 | 
						||
| 
								 | 
							
								        Toastr::success(translate('messages.order').' '.translate('messages.status_updated'));
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function update_shipping(Request $request, $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $request->validate([
							 | 
						||
| 
								 | 
							
								            'contact_person_name' => 'required',
							 | 
						||
| 
								 | 
							
								            'address_type' => 'required',
							 | 
						||
| 
								 | 
							
								            'contact_person_number' => 'required',
							 | 
						||
| 
								 | 
							
								            'address' => 'required',
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $address = [
							 | 
						||
| 
								 | 
							
								            'contact_person_name' => $request->contact_person_name,
							 | 
						||
| 
								 | 
							
								            'contact_person_number' => $request->contact_person_number,
							 | 
						||
| 
								 | 
							
								            'address_type' => $request->address_type,
							 | 
						||
| 
								 | 
							
								            'address' => $request->address,
							 | 
						||
| 
								 | 
							
								            'floor' => $request->floor,
							 | 
						||
| 
								 | 
							
								            'road' => $request->road,
							 | 
						||
| 
								 | 
							
								            'house' => $request->house,
							 | 
						||
| 
								 | 
							
								            'longitude' => $request->longitude,
							 | 
						||
| 
								 | 
							
								            'latitude' => $request->latitude,
							 | 
						||
| 
								 | 
							
								            'created_at' => now(),
							 | 
						||
| 
								 | 
							
								            'updated_at' => now()
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        DB::table('customer_addresses')->where('id', $id)->update($address);
							 | 
						||
| 
								 | 
							
								        Toastr::success('Delivery address updated!');
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function generate_invoice($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $order = Order::where(['id' => $id, 'restaurant_id' => Helpers::get_restaurant_id()])->first();
							 | 
						||
| 
								 | 
							
								        return view('vendor-views.order.invoice', compact('order'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function add_payment_ref_code(Request $request, $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        Order::where(['id' => $id, 'restaurant_id' => Helpers::get_restaurant_id()])->update([
							 | 
						||
| 
								 | 
							
								            'transaction_reference' => $request['transaction_reference']
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Toastr::success('Payment reference code is added!');
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |