Viewing file: ServiceController.php (4.36 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Service; use Illuminate\Http\Request;
class ServiceController extends Controller { public function index(){ $data['categories'] = auth()->user()->categories()->where('status','active')->get(); $data['providers'] = auth()->user()->providers()->get(); $data['serviceTypes'] = auth()->user()->service_types()->get(); return view('admin.service.index',$data); } public function store(Request $request){
$request->validate([ 'name' => 'required', 'category_id' => 'required|numeric', 'mode' => 'required', 'min_order' => 'required|numeric', 'max_order' => 'required|numeric', 'rate_per' => 'required|numeric', 'description' => 'max:255', 'status'=>'required|in:active,inactive', ]); auth()->user()->services()->create($request->all());
return back()->with('success', 'Service successfully created'); } public function getAll() { $service = auth()->user()->services()->with(['category','service_type'])->select(['id', 'name','category_id','mode','service_type_id','min_order','max_order','rate_per','description','status']); return datatables()->of($service) ->addColumn('category', function (Service $q) { return isset($q->category)?$q->category->name:''; }) ->addColumn('rate_per', function (Service $q) { return formatNumberWithCurrSymbol($q->rate_per); }) ->addColumn('service_type', function ($q) { return isset($q->service_type)?$q->service_type->name:''; }) ->addColumn('status', function ($q) { if($q->status=='active'){ $status='<span class="badge bg-green">Active</span>'; }else{ $status='<span class="badge bg-danger">Inactive</span>'; } return $status; }) ->addColumn('action',function($q){
return '<button class="btn btn-sm btn-info mr-2 serviceEditModalLong" data-id="'.$q->id.'" data-name="'.$q->name.'" data-mode="'.$q->mode.'" data-min_order="'.$q->min_order.'" data-max_order="'.$q->max_order.'" data-rate_per="'.$q->rate_per.'" data-description="'.$q->description.'" data-status="'.$q->status.'" data-toggle="tooltip" data-placement="right" title="edit"><i class="fa fa-pencil-alt"></i></button>'. '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this category?" data-action='.route('admin.service.delete',['id'=>$q]).' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm" data-toggle="tooltip" data-placement="right" title="Delete"><i class="fa fa-times-circle"></i></button>' ; }) ->rawColumns(['action','status']) ->toJson(); } public function update(Request $request){ $request->validate([ 'id' => 'required|numeric', 'name' => 'required', 'category_id' => 'required|numeric', 'mode' => 'required', 'min_order' => 'required|numeric', 'max_order' => 'required|numeric', 'rate_per' => 'required|numeric', 'description' => 'max:255', 'status'=>'required|in:active,inactive', ]); $service = auth()->user()->services()->where('id',$request->id)->firstOrfail(); $service->update($request->all());
return back()->with('success', 'Service successfully updated'); } public function destroy(Request $request){ $service_type = auth()->user()->services()->where('id',$request->id)->firstOrfail(); $service_type->delete(); return back()->with('success', 'Service successfully deleted'); } }
|