/**
  * 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;
 }
Esempio n. 2
0
 public function getMin()
 {
     $sku = trim($this->getSku());
     $product = Product::getBySku($sku);
     if ($product instanceof Product) {
         $where = array(1);
         $params = array();
         $where[] = "minId = ? ";
         $params[] = $this->getId();
         $companies = PriceMatchCompany::getAll();
         $companyIds = array_map(create_function('$a', 'return $a->getId();'), $companies);
         $where[] = 'companyId IN (' . implode(", ", array_fill(0, count($companyIds), "?")) . ')';
         $params = array_merge($params, $companyIds);
         //calculate real price range
         $records = PriceMatchRecord::getAllByCriteria(implode(' AND ', $where), $params, true, 1, 1, array('price' => 'asc'));
         if (count($records) > 0) {
             $this->setRecord($records[0])->setActive(true)->save();
         }
     }
     return $this->getRecord();
 }
Esempio n. 3
0
 public static function getMatchPrices($sku)
 {
     //file_put_contents('/tmp/datafeed/web.log', __FILE__ .':' . __FUNCTION__ . ':' . __LINE__ . ':' . '----start getMatchPrices' . PHP_EOL, FILE_APPEND | LOCK_EX);
     $result = array();
     $priceMatchResults = self::getPricesBySku($sku);
     $priceMatchResults = $priceMatchResults['items'];
     $companies = PriceMatchCompany::getAll();
     foreach ($priceMatchResults as $priceMatchResult) {
         if (($name = trim($priceMatchResult['name'])) === '') {
             continue;
         }
         $price = str_replace(' ', '', str_replace('$', '', str_replace(',', '', $priceMatchResult['price'])));
         $url = $priceMatchResult['url'];
         foreach ($companies as $company) {
             $companyAlias = $company->getCompanyAlias();
             if (strtolower($name) === strtolower($companyAlias)) {
                 $result[] = array('PriceMatchCompany' => $company, 'price' => $price, 'name' => $name, 'url' => $url);
             }
         }
     }
     //file_put_contents('/tmp/datafeed/web.log', __FILE__ .':' . __FUNCTION__ . ':' . __LINE__ . ':' . '----end getMatchPrices' . PHP_EOL, FILE_APPEND | LOCK_EX);
     return $result;
 }