107 lines
3.1 KiB
PHP
107 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace Modules\People\Http\Controllers;
|
|
|
|
use App\DataTables\CustomersDataTable;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Modules\People\Entities\Customer;
|
|
|
|
class CustomersController extends Controller
|
|
{
|
|
|
|
public function index(CustomersDataTable $dataTable) {
|
|
abort_if(Gate::denies('access_customers'), 403);
|
|
|
|
return $dataTable->render('people::customers.index');
|
|
}
|
|
|
|
|
|
public function create() {
|
|
abort_if(Gate::denies('create_customers'), 403);
|
|
|
|
return view('people::customers.create');
|
|
}
|
|
|
|
|
|
public function store(Request $request) {
|
|
abort_if(Gate::denies('create_customers'), 403);
|
|
|
|
$request->validate([
|
|
'customer_name' => 'required|string|max:255',
|
|
'customer_phone' => 'required|numeric',
|
|
'customer_email' => 'required|email|max:255',
|
|
'city' => 'required|string|max:255',
|
|
'country' => 'required|string|max:255',
|
|
'address' => 'required|string|max:500',
|
|
]);
|
|
|
|
Customer::create([
|
|
'customer_name' => $request->customer_name,
|
|
'customer_phone' => $request->customer_phone,
|
|
'customer_email' => $request->customer_email,
|
|
'city' => $request->city,
|
|
'country' => $request->country,
|
|
'address' => $request->address
|
|
]);
|
|
|
|
toast('Customer Created!', 'success');
|
|
|
|
return redirect()->route('customers.index');
|
|
}
|
|
|
|
|
|
public function show(Customer $customer) {
|
|
abort_if(Gate::denies('show_customers'), 403);
|
|
|
|
return view('people::customers.show', compact('customer'));
|
|
}
|
|
|
|
|
|
public function edit(Customer $customer) {
|
|
abort_if(Gate::denies('edit_customers'), 403);
|
|
|
|
return view('people::customers.edit', compact('customer'));
|
|
}
|
|
|
|
|
|
public function update(Request $request, Customer $customer) {
|
|
abort_if(Gate::denies('update_customers'), 403);
|
|
|
|
$request->validate([
|
|
'customer_name' => 'required|string|max:255',
|
|
'customer_phone' => 'required|numeric',
|
|
'customer_email' => 'required|email|max:255',
|
|
'city' => 'required|string|max:255',
|
|
'country' => 'required|string|max:255',
|
|
'address' => 'required|string|max:500',
|
|
]);
|
|
|
|
$customer->update([
|
|
'customer_name' => $request->customer_name,
|
|
'customer_phone' => $request->customer_phone,
|
|
'customer_email' => $request->customer_email,
|
|
'city' => $request->city,
|
|
'country' => $request->country,
|
|
'address' => $request->address
|
|
]);
|
|
|
|
toast('Customer Updated!', 'info');
|
|
|
|
return redirect()->route('customers.index');
|
|
}
|
|
|
|
|
|
public function destroy(Customer $customer) {
|
|
abort_if(Gate::denies('delete_customers'), 403);
|
|
|
|
$customer->delete();
|
|
|
|
toast('Customer Deleted!', 'warning');
|
|
|
|
return redirect()->route('customers.index');
|
|
}
|
|
}
|