interim fix for drop downs, BROKEN FIX, interinm fix
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Modules\Company\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Company\Models\Company;
|
||||
@@ -16,12 +17,24 @@ class CompanyController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$counts = ['users', 'warehouses', 'licenseKeys'];
|
||||
|
||||
if (Schema::hasTable('company_divisions')) {
|
||||
$counts[] = 'divisions';
|
||||
}
|
||||
|
||||
$companies = Company::query()
|
||||
->with(['country'])
|
||||
->withCount($counts)
|
||||
->orderBy('name')
|
||||
->paginate(20);
|
||||
|
||||
$companies->getCollection()->each(function (Company $company): void {
|
||||
$company->setAttribute('divisions_count', $company->getAttribute('divisions_count') ?? 0);
|
||||
});
|
||||
|
||||
return view('company::index', [
|
||||
'companies' => Company::query()
|
||||
->with(['address.country', 'country'])
|
||||
->withCount(['users', 'warehouses', 'licenseKeys', 'divisions'])
|
||||
->orderBy('name')
|
||||
->paginate(20),
|
||||
'companies' => $companies,
|
||||
'countries' => $this->countries(),
|
||||
]);
|
||||
}
|
||||
@@ -57,16 +70,20 @@ class CompanyController extends Controller
|
||||
*/
|
||||
public function show(Company $company)
|
||||
{
|
||||
$company->load([
|
||||
'address.country',
|
||||
'divisions.address.country',
|
||||
'divisions.warehouses',
|
||||
'divisions.users',
|
||||
'warehouses.address.country',
|
||||
'warehouses.division',
|
||||
'directorAssignments.user',
|
||||
'directorAssignments.division',
|
||||
])->loadCount(['users', 'warehouses', 'licenseKeys', 'payments', 'divisions']);
|
||||
$loads = ['country'];
|
||||
$counts = ['users', 'warehouses', 'licenseKeys', 'payments'];
|
||||
|
||||
if (Schema::hasTable('company_divisions')) {
|
||||
$loads[] = 'divisions';
|
||||
$counts[] = 'divisions';
|
||||
}
|
||||
|
||||
if (Schema::hasTable('company_director_assignments')) {
|
||||
$loads[] = 'directorAssignments.user';
|
||||
}
|
||||
|
||||
$company->load($loads)->loadCount($counts);
|
||||
$company->setAttribute('divisions_count', $company->getAttribute('divisions_count') ?? 0);
|
||||
|
||||
return view('company::show', [
|
||||
'company' => $company,
|
||||
@@ -74,8 +91,6 @@ class CompanyController extends Controller
|
||||
'recentWarehouses' => $company->warehouses()->latest('id')->limit(5)->get(),
|
||||
'recentLicenseKeys' => $company->licenseKeys()->latest('id')->limit(5)->get(),
|
||||
'countries' => $this->countries(),
|
||||
'companyUsers' => $company->users()->orderBy('name')->get(['id', 'name', 'email', 'company_id']),
|
||||
'unassignedWarehouses' => $company->warehouses()->whereNull('division_id')->orderBy('name')->get(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -85,7 +100,7 @@ class CompanyController extends Controller
|
||||
public function edit(Company $company)
|
||||
{
|
||||
return view('company::edit', [
|
||||
'company' => $company->loadMissing(['address.country', 'country']),
|
||||
'company' => $company->loadMissing('country'),
|
||||
'countries' => $this->countries(),
|
||||
]);
|
||||
}
|
||||
@@ -125,10 +140,14 @@ class CompanyController extends Controller
|
||||
'country_id' => ['nullable', Rule::exists('countries', 'id')->where('is_active', true)],
|
||||
]);
|
||||
|
||||
$data['slug'] = Str::slug($data['name']);
|
||||
$data['timezone'] = $company?->timezone ?: 'Europe/London';
|
||||
|
||||
return $data;
|
||||
return [
|
||||
'name' => $data['name'],
|
||||
'billing_email' => $data['billing_email'] ?? null,
|
||||
'status' => $data['status'],
|
||||
'country_id' => $data['country_id'] ?? null,
|
||||
'slug' => Str::slug($data['name']),
|
||||
'timezone' => $company?->timezone ?: 'Europe/London',
|
||||
];
|
||||
}
|
||||
|
||||
private function countries()
|
||||
|
||||
Reference in New Issue
Block a user