Country / Company updates

This commit is contained in:
Mark Gregory
2026-07-07 10:08:15 +01:00
parent bfc2e136a2
commit 346cd2af1e
14 changed files with 2474 additions and 19 deletions
@@ -18,10 +18,11 @@ class CompanyController extends Controller
{
return view('company::index', [
'companies' => Company::query()
->with(['address.country'])
->with(['address.country', 'country'])
->withCount(['users', 'warehouses', 'licenseKeys', 'divisions'])
->latest('id')
->paginate(20),
'countries' => $this->countries(),
]);
}
@@ -35,6 +36,7 @@ class CompanyController extends Controller
'status' => 'active',
'timezone' => 'Europe/London',
]),
'countries' => $this->countries(),
]);
}
@@ -83,7 +85,8 @@ class CompanyController extends Controller
public function edit(Company $company)
{
return view('company::edit', [
'company' => $company,
'company' => $company->loadMissing(['address.country', 'country']),
'countries' => $this->countries(),
]);
}
@@ -119,12 +122,20 @@ class CompanyController extends Controller
'name' => ['required', 'string', 'max:255'],
'billing_email' => ['nullable', 'email', 'max:255'],
'status' => ['required', Rule::in(['active', 'suspended', 'inactive'])],
'timezone' => ['nullable', 'string', 'max:64'],
'country_id' => ['nullable', Rule::exists('countries', 'id')->where('is_active', true)],
]);
$data['slug'] = Str::slug($data['name']);
$data['timezone'] = $data['timezone'] ?? ($company?->timezone ?: 'Europe/London');
$data['timezone'] = $company?->timezone ?: 'Europe/London';
return $data;
}
private function countries()
{
return Country::query()
->active()
->ordered()
->get(['id', 'alpha2', 'name', 'display_name', 'common_name', 'sort_order']);
}
}