user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
if (request()->ajax()) {
$business_id = request()->session()->get('user.business_id');
$tables = ResTable::where('res_tables.business_id', $business_id)
->join('business_locations AS BL', 'res_tables.location_id', '=', 'BL.id')
->select(['res_tables.name as name', 'BL.name as location',
'res_tables.description', 'res_tables.id', ]);
return Datatables::of($tables)
->addColumn(
'action',
'@role("Admin#'.$business_id.'")
@endrole
@role("Admin#'.$business_id.'")
@endrole'
)
->removeColumn('id')
->escapeColumns(['action'])
->make(true);
}
return view('restaurant.table.index');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
$business_id = request()->session()->get('user.business_id');
$business_locations = BusinessLocation::forDropdown($business_id);
return view('restaurant.table.create')
->with(compact('business_locations'));
}
/**
* Store a newly created resource in storage.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
try {
$input = $request->only(['name', 'description', 'location_id']);
$business_id = $request->session()->get('user.business_id');
$input['business_id'] = $business_id;
$input['created_by'] = $request->session()->get('user.id');
$table = ResTable::create($input);
$output = ['success' => true,
'data' => $table,
'msg' => __('lang_v1.added_success'),
];
} catch (\Exception $e) {
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
$output = ['success' => false,
'msg' => __('messages.something_went_wrong'),
];
}
return $output;
}
/**
* Show the specified resource.
*
* @return Response
*/
public function show()
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
return view('restaurant.table.show');
}
/**
* Show the form for editing the specified resource.
*
* @return Response
*/
public function edit($id)
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
if (request()->ajax()) {
$business_id = request()->session()->get('user.business_id');
$table = ResTable::where('business_id', $business_id)->find($id);
return view('restaurant.table.edit')
->with(compact('table'));
}
}
/**
* Update the specified resource in storage.
*
* @param Request $request
* @return Response
*/
public function update(Request $request, $id)
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
if (request()->ajax()) {
try {
$input = $request->only(['name', 'description']);
$business_id = $request->session()->get('user.business_id');
$table = ResTable::where('business_id', $business_id)->findOrFail($id);
$table->name = $input['name'];
$table->description = $input['description'];
$table->save();
$output = ['success' => true,
'msg' => __('lang_v1.updated_success'),
];
} catch (\Exception $e) {
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
$output = ['success' => false,
'msg' => __('messages.something_went_wrong'),
];
}
return $output;
}
}
/**
* Remove the specified resource from storage.
*
* @return Response
*/
public function destroy($id)
{
if (! auth()->user()->can('access_tables')) {
abort(403, 'Unauthorized action.');
}
if (request()->ajax()) {
try {
$business_id = request()->user()->business_id;
$table = ResTable::where('business_id', $business_id)->findOrFail($id);
$table->delete();
$output = ['success' => true,
'msg' => __('lang_v1.deleted_success'),
];
} catch (\Exception $e) {
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
$output = ['success' => false,
'msg' => __('messages.something_went_wrong'),
];
}
return $output;
}
}
}