/**
  * Getting the company & company aliases list
  * 
  * @param mixed $sender
  * @param mixed $param
  * 
  * @return PriceMatchCompanyListController
  */
 public function getPriceMatchCompanyDetails($sender, $param)
 {
     $result = $error = $pmcArray = $outputArray = $finalOutputArray = array();
     try {
         $searchCriteria = isset($param->CallbackParameter->searchCriteria) ? trim($param->CallbackParameter->searchCriteria) : '';
         $pageNo = 1;
         $pageSize = DaoQuery::DEFAUTL_PAGE_SIZE;
         if (isset($param->CallbackParameter->pagination)) {
             $pageNo = $param->CallbackParameter->pagination->pageNo;
             $pageSize = $param->CallbackParameter->pagination->pageSize;
         }
         if ($searchCriteria === '') {
             $pmcArray = PriceMatchCompany::getAll(true, $pageNo, $pageSize, array('companyName' => 'asc'));
         } else {
             $pmcArray = PriceMatchCompany::getAllByCriteria('companyName like ?', array('%' . $searchCriteria . '%'), true, $pageNo, $pageSize, array('companyName' => 'asc'));
         }
         foreach ($pmcArray as $pmc) {
             $companyName = trim($pmc->getCompanyName());
             $compnayAlias = trim($pmc->getCompanyAlias());
             if (!isset($outputArray[$companyName])) {
                 $outputArray[$companyName] = array();
             }
             $outputArray[$companyName][] = $pmc->getJson();
         }
         foreach ($outputArray as $key => $value) {
             $tmp = array();
             $tmp['companyName'] = $key;
             $tmp['companyAliases'] = $value;
             $finalOutputArray[] = $tmp;
         }
         $result['items'] = $finalOutputArray;
     } catch (Exception $ex) {
         $error[] = $ex->getMessage();
     }
     $param->ResponseData = StringUtilsAbstract::getJson($result, $error);
     return $this;
 }