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.
		
		
		
		
			
				
					123 lines
				
				3.9 KiB
			
		
		
			
		
	
	
					123 lines
				
				3.9 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers\Vendor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Http\Controllers\Controller;
							 | 
						||
| 
								 | 
							
								use App\Models\AddOn;
							 | 
						||
| 
								 | 
							
								use Brian2694\Toastr\Facades\Toastr;
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use App\CentralLogics\Helpers;
							 | 
						||
| 
								 | 
							
								use App\Models\Translation;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class AddOnController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function index()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $addons = AddOn::orderBy('name')->paginate(config('default_pagination'));
							 | 
						||
| 
								 | 
							
								        return view('vendor-views.addon.index', compact('addons'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function store(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if(!Helpers::get_restaurant_data()->food_section)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.permission_denied'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $request->validate([
							 | 
						||
| 
								 | 
							
								            'name' => 'required|array',
							 | 
						||
| 
								 | 
							
								            'name.*' => 'max:191',
							 | 
						||
| 
								 | 
							
								            'price' => 'required|numeric|between:0,999999999999.99',
							 | 
						||
| 
								 | 
							
								        ],[
							 | 
						||
| 
								 | 
							
								            'name.required' => translate('messages.Name is required!'),
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $addon = new AddOn();
							 | 
						||
| 
								 | 
							
								        $addon->name = $request->name[array_search('en', $request->lang)];
							 | 
						||
| 
								 | 
							
								        $addon->price = $request->price;
							 | 
						||
| 
								 | 
							
								        $addon->restaurant_id = \App\CentralLogics\Helpers::get_restaurant_id();
							 | 
						||
| 
								 | 
							
								        $addon->save();
							 | 
						||
| 
								 | 
							
								        $data = [];
							 | 
						||
| 
								 | 
							
								        foreach($request->lang as $index=>$key)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if($request->name[$index] && $key != 'en')
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                array_push($data, Array(
							 | 
						||
| 
								 | 
							
								                    'translationable_type'  => 'App\Models\AddOn',
							 | 
						||
| 
								 | 
							
								                    'translationable_id'    => $addon->id,
							 | 
						||
| 
								 | 
							
								                    'locale'                => $key,
							 | 
						||
| 
								 | 
							
								                    'key'                   => 'name',
							 | 
						||
| 
								 | 
							
								                    'value'                 => $request->name[$index],
							 | 
						||
| 
								 | 
							
								                ));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if(count($data))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Translation::insert($data);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        Toastr::success(translate('messages.addon_added_successfully'));
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function edit($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if(!Helpers::get_restaurant_data()->food_section)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.permission_denied'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $addon = AddOn::withoutGlobalScope('translate')->findOrFail($id);
							 | 
						||
| 
								 | 
							
								        return view('vendor-views.addon.edit', compact('addon'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function update(Request $request, $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if(!Helpers::get_restaurant_data()->food_section)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.permission_denied'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $request->validate([
							 | 
						||
| 
								 | 
							
								            'name' => 'required|max:191',
							 | 
						||
| 
								 | 
							
								            'price' => 'required|numeric|between:0,999999999999.99',
							 | 
						||
| 
								 | 
							
								        ], [
							 | 
						||
| 
								 | 
							
								            'name.required' => translate('messages.Name is required!'),
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $addon = AddOn::find($id);
							 | 
						||
| 
								 | 
							
								        $addon->name = $request->name[array_search('en', $request->lang)];
							 | 
						||
| 
								 | 
							
								        $addon->price = $request->price;
							 | 
						||
| 
								 | 
							
								        $addon->save();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach($request->lang as $index=>$key)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if($request->name[$index] && $key != 'en')
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                Translation::updateOrInsert(
							 | 
						||
| 
								 | 
							
								                    ['translationable_type'  => 'App\Models\AddOn',
							 | 
						||
| 
								 | 
							
								                        'translationable_id'    => $addon->id,
							 | 
						||
| 
								 | 
							
								                        'locale'                => $key,
							 | 
						||
| 
								 | 
							
								                        'key'                   => 'name'],
							 | 
						||
| 
								 | 
							
								                    ['value'                 => $request->name[$index]]
							 | 
						||
| 
								 | 
							
								                );
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Toastr::success(translate('messages.addon_updated_successfully'));
							 | 
						||
| 
								 | 
							
								        return redirect(route('vendor.addon.add-new'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function delete(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if(!Helpers::get_restaurant_data()->food_section)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::warning(translate('messages.permission_denied'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $addon = AddOn::find($request->id);
							 | 
						||
| 
								 | 
							
								        $addon->delete();
							 | 
						||
| 
								 | 
							
								        Toastr::success(translate('messages.addon_deleted_successfully'));
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |