fix! исправлена функция получения доступных агентство в хелпере

This commit is contained in:
developer 2026-01-22 16:54:50 +08:00
parent 3dfd5038e7
commit c9892c33a5
3 changed files with 17 additions and 11 deletions

View File

@ -39,7 +39,6 @@
Route::post('/admin/companies/{company}/restore', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'restore'])->name('admin.companies.restore')->withTrashed(); Route::post('/admin/companies/{company}/restore', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'restore'])->name('admin.companies.restore')->withTrashed();
Route::post('/admin/companies/admins/{companyAdmin}/delete', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'deleteAdmin'])->name('admin.companies.admins.delete'); Route::post('/admin/companies/admins/{companyAdmin}/delete', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'deleteAdmin'])->name('admin.companies.admins.delete');
Route::post('/admin/companies/agents/{agent}/delete', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'deleteAgent'])->name('admin.companies.agents.delete'); Route::post('/admin/companies/agents/{agent}/delete', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'deleteAgent'])->name('admin.companies.agents.delete');
Route::get('/admin/cities', [Modules\Admin\Http\Controllers\AdminCitiesController::class, 'index'])->name('admin.cities'); Route::get('/admin/cities', [Modules\Admin\Http\Controllers\AdminCitiesController::class, 'index'])->name('admin.cities');

View File

@ -6,6 +6,8 @@
use Modules\CityManager\Models\CityManager; use Modules\CityManager\Models\CityManager;
use Modules\Main\Models\Agent\Agent; use Modules\Main\Models\Agent\Agent;
use Modules\Main\Models\Complex; use Modules\Main\Models\Complex;
use Modules\User\Models\Role;
use Modules\User\Models\UserRole;
if (!function_exists('AdminCompanyOfUser')) { if (!function_exists('AdminCompanyOfUser')) {
function AdminCompanyOfUser() function AdminCompanyOfUser()
@ -64,15 +66,20 @@ function GetAvailableAgents($resultType = 'Collection')
function GetAvailableCompanies($resultType = 'Collection') function GetAvailableCompanies($resultType = 'Collection')
{ {
$companiesIds = []; $companiesIds = [];
if ($adminCompany = AdminCompanyOfUser()) { if (UserRole::where('user_id', auth()->user()->id)->where('role_id', Role::SUPER_ADMIN)->count() == 1) {
$companiesIds[] = $adminCompany->id; $companies = Company::all()->pluck('id');
} $companiesIds = array_merge($companiesIds, $companies->all());
if ($cityManager = CityManager::where('user_id', auth()->user()->id)) { } else {
if ($cityManager->count()) { if ($adminCompany = AdminCompanyOfUser()) {
$companies = Company::whereIn('city_id', $cityManager->pluck('city_id')); $companiesIds[] = $adminCompany->id;
if ($companies->count()) { }
$companies = $companies->get()->pluck('id'); if ($cityManager = CityManager::where('user_id', auth()->user()->id)) {
$companiesIds = array_merge($companiesIds, $companies->all()); if ($cityManager->count()) {
$companies = Company::whereIn('city_id', $cityManager->pluck('city_id'));
if ($companies->count()) {
$companies = $companies->get()->pluck('id');
$companiesIds = array_merge($companiesIds, $companies->all());
}
} }
} }
} }

View File

@ -15,7 +15,7 @@ class CreateCompanyAdminLivewire extends Component
public function mount($containerId = 'createCompanyAdminModal') public function mount($containerId = 'createCompanyAdminModal')
{ {
$this->containerId = $containerId; $this->containerId = $containerId;
$availableCompaniesIds = GetAvailableAgents('Builder')->pluck('company_id'); $availableCompaniesIds = GetAvailableCompanies('Collection')->pluck('id');
$this->availableCompanies = Company::whereIn('id', $availableCompaniesIds)->get(); $this->availableCompanies = Company::whereIn('id', $availableCompaniesIds)->get();
if ($this->availableCompanies->count() == 1) { if ($this->availableCompanies->count() == 1) {
$this->companyId = $this->availableCompanies->first()->id; $this->companyId = $this->availableCompanies->first()->id;