AutorÃa | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Helper;use Laminas\View\Helper\AbstractHelper;use Laminas\Db\Adapter\AdapterInterface;use LeadersLinked\Mapper\QueryMapper;use LeadersLinked\Mapper\CompanyMapper;use LeadersLinked\Mapper\CompanyLocationMapper;use LeadersLinked\Mapper\LocationMapper;use LeadersLinked\Model\Company;class CompanySuggestionHelper extends AbstractHelper{/**** @var AdapterInterface*/private $adapter;/**** @param AdapterInterface $adapter*/public function __construct($adapter){$this->adapter = $adapter;}public function __invoke($company_id){$companyMapper = CompanyMapper::getInstance($this->adapter);$company = $companyMapper->fetchOne($company_id);$items = [];if($company) {$location = null;$companyLocationMapper = CompanyLocationMapper::getInstance($this->adapter);$companyLocation = $companyLocationMapper->fetchOneMainLocationByCompanyId($company->id);if($companyLocation) {$locationMapper = LocationMapper::getInstance($this->adapter);$location = $locationMapper->fetchOne($companyLocation->location_id);}$mapper = QueryMapper::getInstance($this->adapter);$select = $mapper->getSql()->select();$select->columns(['id', 'name', 'image']);$select->from(['c' => CompanyMapper::_TABLE]);$select->join(['cl' => CompanyLocationMapper::_TABLE], 'cl.company_id = c.id', []);$select->join(['l' => LocationMapper::_TABLE], 'l.id = cl.location_id', ['state','country']);$select->where->equalTo('company_size_id', $company->company_size_id);$select->where->equalTo('industry_id', $company->industry_id);$select->where->equalTo('state', $location ? $location->state : '');$select->where->equalTo('country', $location ? $location->country : '');$select->where->equalTo('c.status', Company::STATUS_ACTIVE);$select->where->notEqualTo('c.id', $company->id);$select->limit(20);$items = $mapper->fetchAll($select);}$items = $mapper->fetchAll($select);return $this->getView()->render('helpers/company-suggestions.phtml', ['items' => $items]);}}