|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/account.appointkrypt.com/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\Service;
use App\Models\Business;
use App\Models\category;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class ServiceController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create(Request $request)
{
if(Auth::user()->isAbleTo('service create'))
{
$business = Business::find($request->business_id);
$category = category::where('created_by',creatorId())->where('business_id',$business->id)->select('name', 'id')->get()->prepend(['id' => null, 'name' => 'Select category'])->pluck('name', 'id');
return view('service.create',compact('business','category'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
if(Auth::user()->isAbleTo('service create'))
{
$validator = \Validator::make(
$request->all(), [
'name' => 'required',
'category' => 'required',
'price' => 'required',
'duration' => 'required',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$business = Business::find($request->business_id);
$service = new Service();
$service->name = $request->name;
$service->category_id = $request->category;
$service->price = $request->price;
$service->duration = $request->duration;
$service->description = !empty($request->description) ? $request->description : '';
$service->business_id = !empty($business) ? $business->id : 0;
$service->created_by = creatorId();
if ($request->hasFile('image'))
{
$filenameWithExt = $request->file('image')->getClientOriginalName();
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
$extension = $request->file('image')->getClientOriginalExtension();
$fileNameToStore = $filename . '_' . time() . '.' . $extension;
$uplaod = upload_file($request,'image',$fileNameToStore,'Service');
if($uplaod['flag'] == 1)
{
$url = $uplaod['url'];
}
else
{
return redirect()->back()->with('error',$uplaod['msg']);
}
}
$service->image = !empty($request->image) ? $url : '';
$service->save();
return redirect()->back()->with('success', __('Service successfully created.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
/**
* Display the specified resource.
*/
public function show(Service $service)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Service $service)
{
if(Auth::user()->isAbleTo('service edit'))
{
$category = category::where('created_by',creatorId())->where('business_id',$service->business_id)->select('name', 'id')->get()->prepend(['id' => null, 'name' => 'Select category'])->pluck('name', 'id');
return view('service.edit',compact('service','category'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Service $service)
{
if(Auth::user()->isAbleTo('service edit'))
{
$validator = \Validator::make(
$request->all(), [
'name' => 'required',
'category' => 'required',
'price' => 'required',
'description' => 'required',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$service->name = $request->name;
$service->category_id = $request->category;
$service->price = $request->price;
$service->duration = $request->duration;
$service->description = $request->description;
if ($request->hasFile('image'))
{
if(!empty($service->image))
{
delete_file($service->image);
}
$filenameWithExt = $request->file('image')->getClientOriginalName();
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
$extension = $request->file('image')->getClientOriginalExtension();
$fileNameToStore = $filename . '_' . time() . '.' . $extension;
$uplaod = upload_file($request,'image',$fileNameToStore,'Service');
if($uplaod['flag'] == 1)
{
$url = $uplaod['url'];
}
else
{
return redirect()->back()->with('error',$uplaod['msg']);
}
$service->image = !empty($request->image) ? $url : '';
}
$service->save();
return redirect()->back()->with('success', __('Service updated successfully!'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Service $service)
{
if(Auth::user()->isAbleTo('location delete'))
{
if(!empty($service->image))
{
delete_file($service->image);
}
$service->delete();
return redirect()->back()->with('error', __('Service successfully delete.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
}