/**
  * Get the merchant for an Id
  * @param integer $merchantId
  * @return array
  */
 public function getMerchant(array $merchantIds = null)
 {
     $merchantList = array();
     if ($merchantIds != null) {
         $iteration = 0;
         $arraySlice = array_slice($merchantIds, $this->_pageSize * $iteration, $this->_pageSize);
         while (!empty($arraySlice)) {
             $params = array();
             $params['aMerchantIds'] = $arraySlice;
             $merchantApiList = $this->_apiClient->getMerchant($params)->getMerchantReturn;
             $merchantList = array_merge($merchantList, Oara_Utilities::soapConverter($merchantApiList, $this->_merchantConverterConfiguration));
             $iteration++;
             $arraySlice = array_slice($merchantIds, $this->_pageSize * $iteration, $this->_pageSize);
         }
     }
     return $merchantList;
 }
Exemple #2
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Publisher_Base#getTransactionList($merchantId,$dStartDate,$dEndDate)
  */
 public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null)
 {
     $totalTransactions = array();
     //Set the webservice
     $publisherStatisticsServiceUrl = 'https://api.affili.net/V2.0/PublisherStatistics.svc?wsdl';
     $publisherStatisticsService = new Oara_Import_Soap_Client($publisherStatisticsServiceUrl, array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 'soap_version' => SOAP_1_1));
     $iterationNumber = self::calculeIterationNumber(count($merchantList), 100);
     for ($currentIteration = 0; $currentIteration < $iterationNumber; $currentIteration++) {
         $merchantListSlice = array_slice($merchantList, 100 * $currentIteration, 100);
         $merchantListAux = array();
         foreach ($merchantListSlice as $merchant) {
             $merchantListAux[] = (string) $merchant;
         }
         //Call the function
         $params = array('StartDate' => strtotime($dStartDate->toString("yyyy-MM-dd")), 'EndDate' => strtotime($dEndDate->toString("yyyy-MM-dd")), 'TransactionStatus' => 'All', 'ProgramIds' => $merchantListAux);
         $currentPage = 1;
         $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage);
         while (isset($transactionList->TotalRecords) && $transactionList->TotalRecords > 0 && isset($transactionList->TransactionCollection->Transaction)) {
             $transactionCollection = array();
             if (!is_array($transactionList->TransactionCollection->Transaction)) {
                 $transactionCollection[] = $transactionList->TransactionCollection->Transaction;
             } else {
                 $transactionCollection = $transactionList->TransactionCollection->Transaction;
             }
             $transactionList = Oara_Utilities::soapConverter($transactionCollection, $this->_transactionConverterConfiguration);
             foreach ($transactionList as $transaction) {
                 //$transaction['merchantId'] = 3901;
                 $tDate = new Zend_Date($transaction["date"], "yyyy-MM-ddTHH:mm:ss");
                 $transaction["date"] = $tDate->toString("yyyy-MM-dd HH:mm:ss");
                 if ($transaction['status'] == 'Confirmed') {
                     $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
                 } else {
                     if ($transaction['status'] == 'Open') {
                         $transaction['status'] = Oara_Utilities::STATUS_PENDING;
                     } else {
                         if ($transaction['status'] == 'Cancelled') {
                             $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
                         }
                     }
                 }
                 $totalTransactions[] = $transaction;
             }
             $currentPage++;
             $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage);
         }
     }
     return $totalTransactions;
 }
Exemple #3
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Base#getTransactionList($merchantId,$dStartDate,$dEndDate)
  */
 public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null)
 {
     $totalTransactions = array();
     $dStartDate = clone $dStartDate;
     $dStartDate->setHour("00");
     $dStartDate->setMinute("00");
     $dStartDate->setSecond("00");
     $dEndDate = clone $dEndDate;
     $dEndDate->setHour("23");
     $dEndDate->setMinute("59");
     $dEndDate->setSecond("59");
     foreach ($this->_campaignMap as $campaignKey => $campaignValue) {
         $transactionList = $this->_soapClient->getDetailedEarnings($dStartDate->getIso(), $dEndDate->getIso(), $campaignKey, $this->_exportTransactionParameters['username'], $this->_exportTransactionParameters['password']);
         foreach ($transactionList as $transaction) {
             if (in_array($transaction->programID, $merchantList)) {
                 $transaction->merchantId = $transaction->programID;
                 if ($transaction->status == 'confirmed') {
                     $transaction->status = Oara_Utilities::STATUS_CONFIRMED;
                 } else {
                     if ($transaction->status == 'delayed') {
                         $transaction->status = Oara_Utilities::STATUS_PENDING;
                     } else {
                         if ($transaction->status == 'cancelled') {
                             $transaction->status = Oara_Utilities::STATUS_DECLINED;
                         } else {
                             throw new Exception('Error in the transaction status');
                         }
                     }
                 }
                 $transactionDate = new Zend_Date($transaction->date, "yyyy-MM-ddTHH:mm:ss");
                 $transaction->date = $transactionDate->toString("yyyy-MM-dd HH:mm:ss");
                 $transaction->websiteId = $campaignKey;
                 $totalTransactions[] = $transaction;
             }
         }
     }
     $totalTransactions = Oara_Utilities::soapConverter($totalTransactions, $this->_transactionConverterConfiguration);
     return $totalTransactions;
 }
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId,$dStartDate,$dEndDate)
  */
 public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null)
 {
     $totalOverview = array();
     //At first, we need to be sure that there are some data.
     $auxStartDate = clone $dStartDate;
     $auxStartDate->setHour("00");
     $auxStartDate->setMinute("00");
     $auxStartDate->setSecond("00");
     $auxEndDate = clone $dEndDate;
     $auxEndDate->setHour("23");
     $auxEndDate->setMinute("59");
     $auxEndDate->setSecond("59");
     $params = array();
     $params['sDateType'] = 'transaction';
     if ($dStartDate != null) {
         $params['dStartDate'] = $auxStartDate->toString("yyyy-MM-ddTHH:mm:ss");
     }
     if ($dEndDate != null) {
         $params['dEndDate'] = $auxEndDate->toString("yyyy-MM-ddTHH:mm:ss");
     }
     if ($merchantList != null) {
         $params['aMerchantIds'] = $merchantList;
     }
     $params['iOffset'] = null;
     $params['iLimit'] = $this->_pageSize;
     $clickStats = $this->_apiClient->getClickStats($params);
     $impressionStats = $this->_apiClient->getImpressionStats($params);
     $transactionList = Oara_Utilities::transactionMapPerDay($transactionList);
     if (count($clickStats->getClickStatsReturn) > 0 || count($impressionStats->getImpressionStatsReturn) > 0 || count($transactionList) > 0) {
         unset($clickStats);
         unset($impressionStats);
         $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate);
         for ($i = 0; $i < sizeof($dateArray); $i++) {
             $groupMap = array();
             $auxStartDate = clone $dateArray[$i];
             $auxStartDate->setHour("00");
             $auxStartDate->setMinute("00");
             $auxStartDate->setSecond("00");
             $auxEndDate = clone $dateArray[$i];
             $auxEndDate->setHour("23");
             $auxEndDate->setMinute("59");
             $auxEndDate->setSecond("59");
             $params = array();
             $params['sDateType'] = 'transaction';
             if ($dStartDate != null) {
                 $params['dStartDate'] = $auxStartDate->toString("yyyy-MM-ddTHH:mm:ss");
             }
             if ($dEndDate != null) {
                 $params['dEndDate'] = $auxEndDate->toString("yyyy-MM-ddTHH:mm:ss");
             }
             if ($merchantList != null) {
                 $params['aMerchantIds'] = $merchantList;
             }
             $params['iOffset'] = null;
             $params['iLimit'] = $this->_pageSize;
             $clickStats = $this->_apiClient->getClickStats($params);
             if (count($clickStats->getClickStatsReturn) > 0) {
                 $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($clickStats->getClickStatsReturn, $this->_clickConverterConfiguration));
                 $iteration = self::calculeIterationNumber($clickStats->getClickStatsCountReturn->iRowsAvailable, $this->_pageSize);
                 unset($clickStats);
                 for ($j = 1; $j < $iteration; $j++) {
                     $params['iOffset'] = $this->_pageSize * $j;
                     $clickStats = $this->_apiClient->getClickStats($params);
                     $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($clickStats->getClickStatsReturn, $this->_clickConverterConfiguration));
                     unset($clickStats);
                     gc_collect_cycles();
                 }
             }
             $params['iOffset'] = null;
             $impressionStats = $this->_apiClient->getImpressionStats($params);
             if (count($impressionStats->getImpressionStatsReturn) > 0) {
                 $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($impressionStats->getImpressionStatsReturn, $this->_impressionConverterConfiguration));
                 $iteration = self::calculeIterationNumber($impressionStats->getImpressionStatsCountReturn->iRowsAvailable, $this->_pageSize);
                 unset($impressionStats);
                 for ($j = 1; $j < $iteration; $j++) {
                     $params['iOffset'] = $this->_pageSize * $j;
                     $impressionStats = $this->_apiClient->getImpressionStats($params);
                     $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($impressionStats->getImpressionStatsReturn, $this->_impressionConverterConfiguration));
                     unset($impressionStats);
                     gc_collect_cycles();
                 }
             }
             $transactionDateArray = array();
             foreach ($transactionList as $merchantId => $data) {
                 $transactionDateArray = array_merge($transactionDateArray, Oara_Utilities::getDayFromArray($merchantId, $transactionList, $auxStartDate));
             }
             if (count($transactionDateArray) > 0) {
                 $groupMap = self::groupOverview($groupMap, $transactionDateArray);
             }
             foreach ($groupMap as $merchant => $overview) {
                 $overview['merchantId'] = $merchant;
                 $overview['date'] = $auxStartDate->toString("yyyy-MM-dd HH:mm:ss");
                 if (Oara_Utilities::checkRegister($overview)) {
                     $totalOverview[] = $overview;
                 }
             }
         }
     }
     return $totalOverview;
 }
Exemple #5
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Base#getTransactionList($merchantId,$dStartDate,$dEndDate)
  */
 public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null)
 {
     $totalTransactions = array();
     $dStartDate = clone $dStartDate;
     $dStartDate->setHour("00");
     $dStartDate->setMinute("00");
     $dStartDate->setSecond("00");
     $dEndDate = clone $dEndDate;
     $dEndDate->setHour("23");
     $dEndDate->setMinute("59");
     $dEndDate->setSecond("59");
     //Set the webservice
     $publisherStatisticsServiceUrl = 'https://api.affili.net/V2.0/PublisherStatistics.svc?wsdl';
     $publisherStatisticsService = new Oara_Import_Soap_Client($publisherStatisticsServiceUrl, array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 'soap_version' => SOAP_1_1));
     $iterationNumber = self::calculeIterationNumber(count($merchantList), 100);
     for ($currentIteration = 0; $currentIteration < $iterationNumber; $currentIteration++) {
         $merchantListSlice = array_slice($merchantList, 100 * $currentIteration, 100);
         $merchantListAux = array();
         foreach ($merchantListSlice as $merchant) {
             $merchantListAux[] = (string) $merchant;
         }
         //Call the function
         $params = array('StartDate' => strtotime($dStartDate->toString("yyyy-MM-dd")), 'EndDate' => strtotime($dEndDate->toString("yyyy-MM-dd")), 'TransactionStatus' => 'All', 'ProgramIds' => $merchantListAux, 'SubId' => '', 'ProgramTypes' => 'All', 'MaximumRecords' => '0', 'ValuationType' => 'DateOfRegistration');
         $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params);
         if (isset($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord) && !is_array($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord)) {
             $transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord = array($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord);
         }
         if (isset($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord)) {
             $transactionList = Oara_Utilities::soapConverter($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord, $this->_transactionConverterConfiguration);
             foreach ($transactionList as $transaction) {
                 //$transaction['merchantId'] = 3901;
                 if ($transaction['status'] == 'Confirmed') {
                     $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
                 } else {
                     if ($transaction['status'] == 'Open') {
                         $transaction['status'] = Oara_Utilities::STATUS_PENDING;
                     } else {
                         if ($transaction['status'] == 'Cancelled') {
                             $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
                         }
                     }
                 }
                 $totalTransactions[] = $transaction;
             }
         }
     }
     return $totalTransactions;
 }
Exemple #6
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Base#getMerchantList()
  */
 public function getMerchantList($merchantMap = array())
 {
     $this->_advertisersCampaings = array();
     $merchantsImport = $this->_apiClient->GetCampaigns($this->_exportMerchantParameters);
     if (!isset($merchantsImport->campaigns) || !isset($merchantsImport->campaigns->campaign)) {
         sleep(60);
         throw new Exception('Error advertisers not found');
     }
     $this->merchantList = Oara_Utilities::soapConverter($merchantsImport->campaigns->campaign, $this->_merchantConverterConfiguration);
     foreach ($merchantsImport->campaigns->campaign as $campaing) {
         if (!isset($this->_advertisersCampaings[$campaing->advertiserid])) {
             $this->_advertisersCampaings[$campaing->advertiserid] = $campaing->campaignid;
         } else {
             $this->_advertisersCampaings[$campaing->advertiserid] .= ',' . $campaing->campaignid;
         }
     }
     return $this->merchantList;
 }
Exemple #7
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Publisher_Base#getMerchantList()
  */
 public function getMerchantList()
 {
     $merchantList = array();
     foreach ($this->_campaignMap as $campaignKey => $campaignValue) {
         $merchants = $this->_soapClient->getProgramsWithMembershipStatus($this->_exportMerchantParameters['username'], $this->_exportMerchantParameters['password'], $campaignKey);
         foreach ($merchants as $merchant) {
             if ($merchant->programMembershipStatusName == 'Live' || $merchant->programMembershipStatusName == 'Joined') {
                 $merchantList[$merchant->programID] = $merchant;
             }
         }
     }
     $merchantList = Oara_Utilities::soapConverter($merchantList, $this->_merchantConverterConfiguration);
     return $merchantList;
 }