53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\Contracts\Http\Livewire;
|
|
|
|
use Livewire\Component;
|
|
use App\Models\Company\Company;
|
|
use App\Models\Complex;
|
|
use App\Models\Agent\Agent;
|
|
use App\Models\Deal\Deal;
|
|
use App\Models\Deal\Contract;
|
|
use App\Models\Deal\ContractStatus;
|
|
use App\Models\User\UserRole;
|
|
use App\Models\User\Role;
|
|
use App\Models\Company\CompanyAdmin;
|
|
|
|
class ContractsTableLivewire extends Component
|
|
{
|
|
public function mount()
|
|
{
|
|
|
|
}
|
|
function getSelectingAgents()
|
|
{
|
|
if (
|
|
$userRole =
|
|
UserRole::where('user_id', auth()->id())
|
|
->where('role_id', Role::COMPANY_ADMIN)
|
|
->count() == 1
|
|
)
|
|
{
|
|
$companyAdmin = CompanyAdmin::where('user_id', auth()->id())->first();
|
|
return $agentsIds = Agent::where('company_id', $companyAdmin->company_id)->pluck('id');
|
|
}
|
|
else
|
|
{
|
|
return [auth()->id()];
|
|
}
|
|
}
|
|
public function render()
|
|
{
|
|
|
|
$contracts = Contract::whereHas('deal', function ($dealSubQuery)
|
|
{
|
|
$dealSubQuery->with('deals')
|
|
->whereIn('agent_id', $this->getSelectingAgents());
|
|
});
|
|
|
|
return view('contracts::livewire.table.index', [
|
|
'contracts' => $contracts->get(),
|
|
'statuses' => ContractStatus::class
|
|
]);
|
|
}
|
|
} |