Ejemplo n.º 1
0
 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));
 }