lk.zachem.info/app/Modules/Contracts/Http/Livewire/ContractsTableLivewire.php
2025-07-25 18:22:21 +08:00

54 lines
1.4 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
{
$agent = Agent::where('user_id', auth()->id())->first();
return [$agent->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
]);
}
}