public function getConsultants() { $product_name = trim(Convert::raw2sql($this->request->getVar('name'))); $company_id = intval($this->request->getVar('company_id')); $sort = $this->request->getVar('sort'); $query = new QueryObject(new CompanyService()); $query_draft = new QueryObject(new CompanyServiceDraft()); $query_draft->addAndCondition(QueryCriteria::equal('LiveServiceID', 0)); //only drafts without live version $query->addAlias(QueryAlias::create('Company')); $query_draft->addAlias(QueryAlias::create('Company')); if (!empty($product_name)) { $query->addOrCondition(QueryCriteria::like('CompanyService.Name', $product_name)); $query->addOrCondition(QueryCriteria::like('Company.Name', $product_name)); $query_draft->addOrCondition(QueryCriteria::like('CompanyService.Name', $product_name)); $query_draft->addOrCondition(QueryCriteria::like('Company.Name', $product_name)); } if ($company_id > 0) { $query->addAndCondition(QueryCriteria::equal('Company.ID', $company_id)); $query_draft->addAndCondition(QueryCriteria::equal('Company.ID', $company_id)); } //set sorting if (!empty($sort)) { $dir = $this->getSortDir('consultants'); $this->sortCompanyService($query, $sort, $dir); $this->sortCompanyService($query_draft, $sort, $dir); } //get consultants list($list1, $size1) = $this->consultant_repository->getAll($query, 0, 1000); list($list2, $size2) = $this->consultant_draft_repository->getAll($query_draft, 0, 1000); //return on view model return new ArrayList(array_merge($list1, $list2)); }