83 lines
2.0 KiB
PHP
83 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Shop;
|
|
|
|
use App\Repositories\Shop\CustomerAddresses;
|
|
use App\Repositories\Shop\Customers;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CustomerController extends Controller
|
|
{
|
|
public function profile()
|
|
{
|
|
$data = Customers::editProfile(Customers::getId());
|
|
|
|
return view('Shop.Customers.profile', $data);
|
|
}
|
|
|
|
public static function checkAuth()
|
|
{
|
|
if (Customers::isNotConnected()) {
|
|
return redirect()->route('Shop.login');
|
|
}
|
|
}
|
|
|
|
public function modalProfile($id = false)
|
|
{
|
|
$data = [
|
|
'customer' => Customers::get($id),
|
|
];
|
|
|
|
return view('Shop.Customers.partials.registration', $data);
|
|
}
|
|
|
|
public function edit()
|
|
{
|
|
$data = [
|
|
'customer' => Customers::edit(Customers::getId()),
|
|
];
|
|
|
|
return view('Shop.Customers.edit', $data);
|
|
}
|
|
|
|
public function storeProfileAjax(Request $request)
|
|
{
|
|
$data = $request->all();
|
|
$customer = Customers::store($data);
|
|
|
|
return response()->json(['error' => 0]);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$data = $request->all();
|
|
$customer = Customers::storeFull($data);
|
|
|
|
return redirect()->route('Shop.Customers.edit');
|
|
}
|
|
|
|
public function delete_address($id)
|
|
{
|
|
$address = CustomerAddresses::get($id);
|
|
|
|
if (! $address || (int) $address->customer_id !== (int) Customers::getId()) {
|
|
abort(404);
|
|
}
|
|
|
|
$remaining = CustomerAddresses::getModel()
|
|
->byCustomer($address->customer_id)
|
|
->byType($address->type)
|
|
->count();
|
|
|
|
if ($remaining <= 1) {
|
|
return redirect()->route('Shop.Customers.edit')
|
|
->with('growl', [__('Vous devez conserver au moins une adresse par type.'), 'warning']);
|
|
}
|
|
|
|
CustomerAddresses::destroy($id);
|
|
|
|
return redirect()->route('Shop.Customers.edit')
|
|
->with('growl', [__('Adresse supprimée.'), 'success']);
|
|
}
|
|
}
|