fix: prevent deleting last address for each kind

This commit is contained in:
Valentin Lab
2025-10-04 11:10:53 +02:00
parent b7634e07c0
commit a2da0a8a12
2 changed files with 46 additions and 3 deletions

View File

@@ -58,8 +58,25 @@ class CustomerController extends Controller
public function delete_address($id)
{
$ret = CustomerAddresses::destroy($id);
$address = CustomerAddresses::get($id);
return redirect()->route('Shop.Customers.edit');
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']);
}
}