/** * (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"); $dStartDate = clone $dStartDate; $dStartDate->setHour("00"); $dStartDate->setMinute("00"); $dStartDate->setSecond("00"); $dEndDate = clone $dEndDate; $dEndDate->setHour("23"); $dEndDate->setMinute("59"); $dEndDate->setSecond("59"); $params = $this->_credentialsParameters; $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"); $overviewList = $this->_apiClient->getAffiliateAggregateStatistics($params['client'], $params['password'], $params['add_code'], $auxStartDate->toString("yyyy-MM-dd"), $auxStartDate->toString("yyyy-MM-dd")); if (!preg_match("/No Results found/", $overviewList, $matches)) { $overviewList = str_replace(array("£"), array("£"), $overviewList); $xmlObj = simplexml_load_string($overviewList); foreach ($xmlObj->children() as $overview) { $merchantId = (string) $overview->campaign_id; if (in_array($merchantId, $merchantList)) { $obj = array(); $obj['merchantId'] = $merchantId; $obj['date'] = $auxStartDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['status'] = Oara_Utilities::STATUS_CONFIRMED; $obj['click_number'] = 0; if ((string) $overview->clicks != null) { $obj['click_number'] = (string) $overview->clicks; } $obj['impression_number'] = 0; if ((string) $overview->impressions != null) { $obj['impression_number'] = (string) $overview->impressions; } $obj['transaction_number'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_declined_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_confirmed_value'] = Oara_Utilities::parseDouble((string) $overview->sales); $obj['transaction_confirmed_commission'] = Oara_Utilities::parseDouble((string) $overview->payout); if ($obj['transaction_confirmed_value'] != 0 || $obj['transaction_confirmed_commission'] != 0) { $obj['transaction_number']++; } if (Oara_Utilities::checkRegister($obj)) { $totalOverview[] = $obj; } } } } } return $totalOverview; }
private function getOverviewReportRecursive($transactionArray, $id, $dStartDate, $dEndDate) { $overviewArray = array(); $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('startDay', $dStartDate->toString("d")); $overviewExport[] = new Oara_Curl_Parameter('startMonth', (int) $dStartDate->toString("M") - 1); $overviewExport[] = new Oara_Curl_Parameter('startYear', $dStartDate->toString("yyyy")); $overviewExport[] = new Oara_Curl_Parameter('endDay', $dEndDate->toString("d")); $overviewExport[] = new Oara_Curl_Parameter('endMonth', (int) $dEndDate->toString("M") - 1); $overviewExport[] = new Oara_Curl_Parameter('endYear', $dEndDate->toString("yyyy")); $overviewExport[] = new Oara_Curl_Parameter('idbox_store_id', $id); $urls = array(); $urls[] = new Oara_Curl_Request($this->_networkServer . "/gp/associates/network/reports/report.html?", $overviewExport); $exportReport = $this->_client->get($urls); $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); for ($j = 2; $j < $num; $j++) { $overviewExportArray = str_getcsv($exportData[$j], "\t"); $obj = array(); $obj['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[0], "yyyy/MM/dd HH:mm:ss"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = 0; if (!isset($overviewExportArray[1])) { throw new Exception("Request failed"); } $obj['click_number'] = $overviewExportArray[1]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate); unset($overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } return $overviewArray; }
/** * (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"); //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)); $transactionList = Oara_Utilities::transactionMapPerDay($transactionList); foreach ($merchantList as $merchantId) { //Call the function $params = array('StartDate' => strtotime($auxStartDate->toString("yyyy-MM-dd")), 'EndDate' => strtotime($auxEndDate->toString("yyyy-MM-dd")), 'ProgramId' => (string) $merchantId, 'SubId' => '', 'ProgramTypes' => 'All', 'ValuationType' => 'DateOfRegistration'); $overviewList = self::affilinetCall('overview', $publisherStatisticsService, $params); if (isset($overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord) && !is_array($overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord)) { $overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord = array($overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord); } if (isset($overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord)) { foreach ($overviewList->DailyStatisticsRecords->DailyStatisticRecords->DailyStatisticsRecord as $overviewDay) { $overview = array(); $overview['date'] = $overviewDay->Date; $overview['merchantId'] = $merchantId; $overview['click_number'] = $overviewDay->PayPerClick->Clicks + $overviewDay->PayPerSaleLead->Clicks + $overviewDay->CombinedPrograms->Clicks; $overview['impression_number'] = $overviewDay->PayPerClick->Views + $overviewDay->PayPerSaleLead->Views + $overviewDay->CombinedPrograms->Views; $overview['transaction_confirmed_value'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_commission'] = 0; $overviewDate = new Zend_Date($overviewDay->Date, "dd-MM-yyyy HH:mm:ss"); $transactionArray = Oara_Utilities::getDayFromArray($merchantId, $transactionList, $overviewDate); $overview['transaction_number'] = count($transactionArray); foreach ($transactionArray as $transaction) { if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $totalOverview[] = $overview; } } } } return $totalOverview; }
/** * (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; }
/** * (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) { $totalOverviews = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $mothOverviewUrls = array(); $valuesFormExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); if ($this->_dateFormat == 'dd/MM/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dStartDate->toString('dd/MM/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dEndDate->toString('dd/MM/yy')); } else { if ($this->_dateFormat == 'M/d/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dStartDate->toString('M/d/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dEndDate->toString('M/d/yy')); } else { if ($this->_dateFormat == 'd/MM/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dStartDate->toString('d/MM/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dEndDate->toString('d/MM/yy')); } else { if ($this->_dateFormat == 'tt.MM.uu') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dStartDate->toString('dd.MM.yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dEndDate->toString('dd.MM.yy')); } else { throw new Exception("\n Date Format not supported " . $this->_dateFormat . "\n"); } } } } $urls = array(); $urls[] = new Oara_Curl_Request('http://www.tradedoubler.com/pan/aReport3Internal.action?', $valuesFormExport); $exportReport = $this->_client->get($urls); $exportReport[0] = self::checkReportError($exportReport[0], $urls[0]); $exportData = str_getcsv($exportReport[0], "\r\n"); $num = count($exportData); if ($num > 3) { $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = sizeof($dateArray); for ($i = 0; $i < $dateArraySize; $i++) { $valuesFormExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); if ($this->_dateFormat == 'dd/MM/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dateArray[$i]->toString('dd/MM/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dateArray[$i]->toString('dd/MM/yy')); } else { if ($this->_dateFormat == 'M/d/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dateArray[$i]->toString('M/d/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dateArray[$i]->toString('M/d/yy')); } else { if ($this->_dateFormat == 'd/MM/yy') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dateArray[$i]->toString('d/MM/yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dateArray[$i]->toString('d/MM/yy')); } else { if ($this->_dateFormat == 'tt.MM.uu') { $valuesFormExport[] = new Oara_Curl_Parameter('startDate', $dateArray[$i]->toString('dd.MM.yy')); $valuesFormExport[] = new Oara_Curl_Parameter('endDate', $dateArray[$i]->toString('dd.MM.yy')); } else { throw new Exception("\n Date Format not supported " . $this->_dateFormat . "\n"); } } } } $mothOverviewUrls[] = new Oara_Curl_Request('http://www.tradedoubler.com/pan/aReport3Internal.action?', $valuesFormExport); } } $exportReport = $this->_client->get($mothOverviewUrls); $exportReportNumber = count($exportReport); for ($i = 0; $i < $exportReportNumber; $i++) { $exportReport[$i] = self::checkReportError($exportReport[$i], $mothOverviewUrls[$i]); $exportData = str_getcsv($exportReport[$i], "\r\n"); $num = count($exportData); for ($j = 2; $j < $num - 1; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ";"); $parameter = $mothOverviewUrls[$i]->getParameter(39); $overviewDate = $parameter->getValue(); if ($this->_dateFormat == 'dd/MM/yy') { $overviewDate = new Zend_Date($overviewDate, "dd/MM/yy"); } else { if ($this->_dateFormat == 'M/d/yy') { $overviewDate = new Zend_Date($overviewDate, "M/d/yy"); } else { if ($this->_dateFormat == 'd/MM/yy') { $overviewDate = new Zend_Date($overviewDate, "d/MM/yy"); } else { if ($this->_dateFormat == 'tt.MM.uu') { $overviewDate = new Zend_Date($overviewDate, "dd.MM.yy"); } else { throw new Exception("\n Date Format not supported " . $this->_dateFormat . "\n"); } } } } if (!isset($overviewExportArray[2])) { throw new Exception('Problem getting overview\\n\\n'); } if ($overviewDate->compare($dStartDate) >= 0 && $overviewDate->compare($dEndDate) <= 0 && isset($overviewExportArray[2]) && in_array((int) $overviewExportArray[2], $merchantList)) { $overview = array(); $overview['merchantId'] = (int) $overviewExportArray[2]; $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[4]; $overview['impression_number'] = (int) $overviewExportArray[3]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $totalOverviews[] = $overview; } } } } return $totalOverviews; }
/** * (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"); $auxEndDate->addDay(1); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); foreach ($merchantList as $merchantId) { $overviewList = $this->_apiClient->getReportBasic($auxStartDate->toString("yyyy-MM-dd"), $auxEndDate->toString("yyyy-MM-dd"), 'trackingDate', null, $merchantId, null, null, null, null, array('day')); if ($overviewList->total > 0) { foreach ($overviewList->reportItems->reportItem as $overview) { $obj = array(); $obj['merchantId'] = $merchantId; $overviewDate = new Zend_Date($overview->day, "yyyy-MM-dd"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = $overview->total->viewCount; $obj['click_number'] = $overview->total->clickCount; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $totalOverview[] = $obj; } } } unset($overviewList); gc_collect_cycles(); } return $totalOverview; }
/** * * Get the overview for this affiliates due that maybe we have to retrieve the data twice * @param array $matches * @param array $totalTransactions */ private function getOverview($matches, $totalOverview, $merchantList, $parameter, $transactionArray) { $matches[1] = preg_replace(array("/\\\\x25/", "/&/"), array('%', '&'), $matches[1]); $overviewDate = $parameter->getValue(); $overviewDate = new Zend_Date($overviewDate, "M/d/yyyy"); $urls = array(); $urls[] = new Oara_Curl_Request('https://analytics.linksynergy.com/SynergyAnalytics/' . $matches[1], array()); $exportReport = $this->_client->get($urls); $exportData = str_getcsv(iconv('UTF-16', 'UTF-8', $exportReport[0]), "\n"); $num = count($exportData); for ($j = 1; $j < $num; $j++) { $overviewData = str_getcsv($exportData[$j], "\t"); if (in_array((int) $overviewData[0], $merchantList)) { $overview = array(); $overview['merchantId'] = (int) $overviewData[0]; $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewData[3]; $overview['impression_number'] = (int) $overviewData[2]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $totalOverview[] = $overview; } } } return $totalOverview; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId,$dStartDate,$dEndDate) */ public function getOverviewList($transactionList = array(), $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $totalOverview = array(); //At first, we need to be sure that there are some data. $transactionList = self::transactionMapPerDay($transactionList); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = count($dateArray); $auxStartDate = clone $dStartDate; $auxStartDate->setHour("00"); $auxStartDate->setMinute("00"); $auxStartDate->setSecond("00"); $auxEndDate = clone $dEndDate; $auxEndDate->setHour("23"); $auxEndDate->setMinute("59"); $auxEndDate->setSecond("59"); $groupMap = array(); foreach ($this->_campaignMap as $campaignKey => $campaignValue) { $overviewList = $this->_soapClient->getProgramReport($auxStartDate->getIso(), $auxEndDate->getIso(), $campaignKey, $this->_exportOverviewParameters['username'], $this->_exportOverviewParameters['password']); $exist = false; $j = 0; while ($j < count($overviewList) && !$exist) { if (in_array($overviewList[$j]->programID, $merchantList)) { $exist = true; } $j++; } if ($exist) { for ($i = 0; $i < $dateArraySize; $i++) { $auxStartDayDate = clone $dateArray[$i]; $auxStartDayDate->setHour("00"); $auxStartDayDate->setMinute("00"); $auxStartDayDate->setSecond("00"); $auxEndDayDate = clone $dateArray[$i]; $auxEndDayDate->setHour("23"); $auxEndDayDate->setMinute("59"); $auxEndDayDate->setSecond("59"); $overviewList = $this->_soapClient->getProgramReport($auxStartDayDate->getIso(), $auxEndDayDate->getIso(), $campaignKey, $this->_exportOverviewParameters['username'], $this->_exportOverviewParameters['password']); for ($j = 0; $j < count($overviewList); $j++) { if (in_array($overviewList[$j]->programID, $merchantList)) { $overviewArray = array(); $overviewArray['merchantId'] = $overviewList[$j]->programID; $overviewArray['date'] = $auxStartDayDate->toString("yyyy-MM-dd HH:mm:ss"); $overviewArray['click_number'] = $overviewList[$j]->clickTotals; $overviewArray['impression_number'] = $overviewList[$j]->viewTotals; $transactionDateArray = self::getDayFromArray($overviewArray['merchantId'], $campaignKey, $transactionList, $auxStartDayDate); $overviewArray['transaction_number'] = 0; $overviewArray['transaction_confirmed_value'] = 0; $overviewArray['transaction_confirmed_commission'] = 0; $overviewArray['transaction_pending_value'] = 0; $overviewArray['transaction_pending_commission'] = 0; $overviewArray['transaction_declined_value'] = 0; $overviewArray['transaction_declined_commission'] = 0; foreach ($transactionDateArray as $transaction) { if (!isset($transaction['amount'])) { $transaction['amount'] = 0; } if (!isset($transaction['commission'])) { $transaction['commission'] = 0; } $overviewArray['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overviewArray['transaction_confirmed_value'] += $transaction['amount']; $overviewArray['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overviewArray['transaction_pending_value'] += $transaction['amount']; $overviewArray['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overviewArray['transaction_declined_value'] += $transaction['amount']; $overviewArray['transaction_declined_commission'] += $transaction['commission']; } } } } $groupMap = self::groupOverview($groupMap, $overviewArray); } } } } } foreach ($groupMap as $merchant => $overviewPerDate) { foreach ($overviewPerDate as $date => $overview) { if (Oara_Utilities::checkRegister($overview)) { $totalOverview[] = $overview; } } } return $totalOverview; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Interface#getOverviewList($aMerchantIds, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $overviewArray = array(); $firstDayMonth = new Zend_Date(); $firstDayMonth->setDay(1); $firstDayMonth->setHour("00"); $firstDayMonth->setMinute("00"); $firstDayMonth->setSecond("00"); $modeArray = array("AdSense for Content", "AdSense for Search", "AdSense for Feeds", "AdSense for Domains"); $valuesExport = array(); $valuesExport[] = new Oara_Curl_Parameter('d', $dStartDate->toString("yyyy/M/d") . "-" . $dEndDate->toString("yyyy/M/d")); $valuesExportReport[] = new Oara_Curl_Parameter('ag', 'date'); $valuesExport[] = new Oara_Curl_Parameter('oc', 'earnings'); $valuesExport[] = new Oara_Curl_Parameter('oo', 'descending'); $valuesExport[] = new Oara_Curl_Parameter('hl', 'en_GB'); $urls = array(); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFCYAdSense for Content'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFSYAdSense for Search'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFFYAdSense for Feeds'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFDYAdSense for Domains'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $content = $this->_client->post($urls); for ($i = 0; $i < count($content); $i++) { $exportData = str_getcsv(@iconv('UTF-16', 'UTF-8', $content[$i]), "\n"); for ($j = 1; $j < count($exportData); $j++) { $overviewExportArray = str_getcsv($exportData[$j], "\t"); $obj = array(); $obj['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[0], "yyyy-MM-dd"); $overviewDate->setHour("00"); $overviewDate->setMinute("00"); $overviewDate->setSecond("00"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['link'] = $modeArray[$i]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $obj['impression_number'] = (int) Oara_Utilities::parseDouble($overviewExportArray[1]); $obj['click_number'] = Oara_Utilities::parseDouble($overviewExportArray[2]); if ($firstDayMonth->compare($overviewDate) <= 0) { $obj['transaction_pending_commission'] = Oara_Utilities::parseDouble($overviewExportArray[6]); $obj['transaction_pending_value'] = Oara_Utilities::parseDouble($overviewExportArray[6]); } else { $obj['transaction_confirmed_commission'] = Oara_Utilities::parseDouble($overviewExportArray[6]); $obj['transaction_confirmed_value'] = Oara_Utilities::parseDouble($overviewExportArray[6]); } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } unset($urls); return $overviewArray; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Interface#getOverviewList($aMerchantIds, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $overviewArray = array(); $transactionArray = array(); $mothOverviewUrls = array(); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('from_year', $dStartDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('from_month', $dStartDate->get(Zend_Date::MONTH)); $valuesFromExport[] = new Oara_Curl_Parameter('from_day', $dStartDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('to_year', $dEndDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('to_month', $dEndDate->get(Zend_Date::MONTH)); $valuesFromExport[] = new Oara_Curl_Parameter('to_day', $dEndDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('prog_id', '0'); $urls = array(); $urls[] = new Oara_Curl_Request('http://users.buy.at/ma/index.php/affiliateReport/dailySummary?', $valuesFromExport); $exportReport = $this->_client->get($urls); $exportData = str_getcsv($exportReport[0], "\r\n"); if (self::checkOverview($exportData)) { $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); foreach ($merchantList as $idMerchant) { $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('from_year', $dStartDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('from_month', $dStartDate->get(Zend_Date::MONTH)); $valuesFromExport[] = new Oara_Curl_Parameter('from_day', $dStartDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('to_year', $dEndDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('to_month', $dEndDate->get(Zend_Date::MONTH)); $valuesFromExport[] = new Oara_Curl_Parameter('to_day', $dEndDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('prog_id', $idMerchant); $mothOverviewUrls[] = new Oara_Curl_Request('http://users.buy.at/ma/index.php/affiliateReport/dailySummary?', $valuesFromExport); } } if (count($mothOverviewUrls) > 0) { $exportReport = $this->_client->get($mothOverviewUrls); $exportReportNumber = count($exportReport); for ($i = 0; $i < $exportReportNumber; $i++) { $exportData = str_getcsv($exportReport[$i], "\r\n"); $num = count($exportData); if (self::checkOverview($exportData)) { for ($j = 1; $j < $num; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ","); $parameter = $mothOverviewUrls[$i]->getParameter(21); $parameterMerchantId = $parameter->getValue(); $obj = array(); $obj['merchantId'] = $parameterMerchantId; $overviewDate = new Zend_Date($overviewExportArray[0], "yyyy-MM-dd"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = 0; $obj['click_number'] = $overviewExportArray[1]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } } } return $overviewArray; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFromExport[] = new Oara_Curl_Parameter('fromPeriod', $dStartDate->toString("yyyy-MM-dd")); $valuesFromExport[] = new Oara_Curl_Parameter('toPeriod', $dEndDate->toString("yyyy-MM-dd")); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.affutd.com/en/traffic-stats/advertiser', array()); $exportReport = $this->_client->get($urls); $dom = new Zend_Dom_Query($exportReport[0]); $campaignOption = $dom->query('option[label="DEFAULT"]'); $campaignOption = $campaignOption->current(); $valuesFromExport[] = new Oara_Curl_Parameter('campaign', $campaignOption->getAttribute('value')); $hiddenParam = $dom->query('#jsonCampaigns'); $hiddenParam = $hiddenParam->current(); $valuesFromExport[] = new Oara_Curl_Parameter($hiddenParam->getAttribute('id'), $hiddenParam->getAttribute('value')); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.affutd.com/en/traffic-stats/advertiser', $valuesFromExport); $exportReport = $this->_client->post($urls); $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); for ($i = 1; $i < $num - 1; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ","); if (isset($this->_merchantMap[$overviewExportArray[0]]) && in_array($this->_merchantMap[$overviewExportArray[0]], $merchantList)) { $overview = array(); $overview['merchantId'] = $this->_merchantMap[$overviewExportArray[0]]; $overviewDate = new Zend_Date($overviewExportArray[1], 'yyyy-MM-dd', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[8]; $overview['impression_number'] = (int) $overviewExportArray[9]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } } return $overviewArray; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFromExport[] = new Oara_Curl_Parameter('fromDate', $dStartDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('until', $dEndDate->toString("dd/MM/yyyy")); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.ladbrokes.com/aff_man', $valuesFromExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $tableList = $dom->query('#results_table'); $exportData = self::htmlToCsv(self::DOMinnerHTML($tableList->current())); $num = count($exportData); for ($i = 2; $i < $num - 2; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ";"); $overview = array(); $overview['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[0], 'dd-MM-yy', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[3]; $overview['impression_number'] = (int) $overviewExportArray[2]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } return $overviewArray; }
/** * (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(); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('campaignID', self::getAdvertisersCampaigns($merchantList)); $valuesFromExport[] = new Oara_Curl_Parameter('fromDate', $dStartDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('toDate', $dEndDate->toString("dd/MM/yyyy")); $urls = array(); $urls[] = new Oara_Curl_Request('http://www.dgmpro.com/affiliates/cfc/dgmreports.cfc?method=getSummaryCSV', $valuesFromExport); $exportReport = $this->_curlClient->post($urls); $reportUrl = null; if (preg_match("/<filelocation>(.*)<\\/filelocation>/", $exportReport[0], $matches)) { $reportUrl = trim($matches[1]); } else { throw new Exception('No transaction report found'); } $urls = array(); $urls[] = new Oara_Curl_Request($reportUrl, array()); $exportReport = $this->_curlClient->get($urls); $exportData = str_getcsv($exportReport[0], "\n"); if (self::checkOverview($exportData)) { $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $iteration = self::calculeIterationNumber(count($merchantList), $this->_pageSize); for ($it = 0; $it < $iteration; $it++) { $merchantStartIndex = $this->_pageSize * $it; if (count($merchantList) > $this->_pageSize * ($it + 1)) { $merchantEndIndex = $this->_pageSize * ($it + 1); } else { $merchantEndIndex = count($merchantList); } $urls = array(); for ($merchantIndex = $merchantStartIndex; $merchantIndex < $merchantEndIndex; $merchantIndex++) { $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('campaignID', self::getAdvertisersCampaigns(array($merchantList[$merchantIndex]))); $valuesFromExport[] = new Oara_Curl_Parameter('fromDate', $dStartDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('toDate', $dEndDate->toString("dd/MM/yyyy")); $urls[] = new Oara_Curl_Request('http://www.dgmpro.com/affiliates/cfc/dgmreports.cfc?method=getSummaryCSV', $valuesFromExport); } $exportReportUrl = $this->_curlClient->post($urls); $urls = array(); for ($i = 0; $i < count($exportReportUrl); $i++) { $reportUrl = null; if (preg_match("/<filelocation>(.*)<\\/filelocation>/", $exportReportUrl[$i], $matches)) { $reportUrl = trim($matches[1]); $urls[] = new Oara_Curl_Request($reportUrl, array()); } else { throw new Exception('No transaction report found'); } } $overviewRegisters = $this->_curlClient->get($urls); for ($i = 0; $i < count($overviewRegisters); $i++) { $exportData = str_getcsv($overviewRegisters[$i], "\n"); for ($j = 7; $j < count($exportData) - 2; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ","); $overview = array(); $overview['merchantId'] = $merchantList[$i]; $transactionDate = new Zend_Date($overviewExportArray[0], 'dd-MMM-yyyy HH:mm:ss', 'en_GB'); $overview['date'] = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[2]; $overview['impression_number'] = (int) $overviewExportArray[1]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $transactionDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $totalOverview[] = $overview; } } } } } return $totalOverview; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $urls = array(); foreach ($merchantList as $merchantId) { $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('program', $merchantId); $overviewExport[] = new Oara_Curl_Parameter('period', $dStartDate->toString("yyyyMMdd") . "-" . $dEndDate->toString("yyyyMMdd")); $urls[] = new Oara_Curl_Request('http://publisher.daisycon.com/en/affiliatemarketing/stats/month/?', $overviewExport); } $exportReport = $this->_client->get($urls); for ($i = 1; $i < count($exportReport); $i++) { $exportData = str_getcsv($exportReport[$i], "\r\n"); $num = count($exportData); $overviewDate = clone $dStartDate; $overviewDate->setHour(0); $overviewDate->setMinute(0); $overviewDate->setSecond(0); for ($j = 1; $j < $num; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ";"); $obj = array(); $urlParams = $urls[$i]->getParameters(); $obj['merchantId'] = $urlParams[6]->getValue(); $overviewDate->setDay($overviewExportArray[0]); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = 0; $obj['click_number'] = $overviewExportArray[1]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } return $overviewArray; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $mothOverviewUrls = array(); foreach (array_keys($this->_websiteList) as $websiteId) { $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = sizeof($dateArray); for ($i = 0; $i < $dateArraySize; $i++) { $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('AfID', $websiteId); $overviewExport[] = new Oara_Curl_Parameter('RptDate', $dateArray[$i]->toString("dd-MM-yyyy")); $mothOverviewUrls[] = new Oara_Curl_Request('http://www.clixgalore.co.uk/AffiliateSummaryStatsPopup.asp?', $overviewExport); } } $exportReport = $this->_client->get($mothOverviewUrls); for ($i = 0; $i < count($exportReport); $i++) { if (!preg_match("/No clicks\\/transactions have been sent!/", $exportReport[$i])) { $dom = new Zend_Dom_Query($exportReport[$i]); $results = $dom->query('table'); $count = count($results); $tableNode = null; for ($j = 0; $j < $count; $j++) { $node = $results->next(); if ($j == 1) { $tableNode = $node; break; } } $exportData = self::htmlToCsv(self::DOMinnerHTML($tableNode)); for ($j = 1; $j < count($exportData); $j++) { $overviewExportArray = str_getcsv($exportData[$j], ";"); if (isset($this->_merchantMap[$overviewExportArray[0]]) && in_array((int) $this->_merchantMap[$overviewExportArray[0]], $merchantList)) { $obj = array(); $obj['merchantId'] = $this->_merchantMap[$overviewExportArray[0]]; $overviewDate = new Zend_Date($mothOverviewUrls[$i]->getParameter(2)->getValue(), "dd-MM-yyyy HH:mm:ss"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = $overviewExportArray[4]; $obj['click_number'] = $overviewExportArray[6]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } } } return $overviewArray; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $mothOverviewUrls = array(); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = sizeof($dateArray); for ($i = 0; $i < $dateArraySize; $i++) { $valuesFormExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFormExport[] = new Oara_Curl_Parameter('datefrom', $dateArray[$i]->toString("yyyy-MM-dd")); $valuesFormExport[] = new Oara_Curl_Parameter('dateto', $dateArray[$i]->toString("yyyy-MM-dd")); $mothUrls[] = new Oara_Curl_Request('https://accounts.skimlinks.com/reports_export.php?', $valuesFormExport); } $exportReport = $this->_client->get($mothUrls); $exportReportNumber = count($exportReport); for ($i = 0; $i < $exportReportNumber; $i++) { $exportData = str_getcsv($exportReport[$i], "\n"); $num = count($exportData); for ($j = 1; $j < $num - 5; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ","); if (Oara_Utilities::parseDouble($overviewExportArray[2]) != 0 && isset($this->_merchantMap[$overviewExportArray[0]]) && in_array($this->_merchantMap[$overviewExportArray[0]], $merchantList)) { $overview = array(); $overview['merchantId'] = $this->_merchantMap[$overviewExportArray[0]]; $overviewDate = new Zend_Date($mothUrls[$i]->getParameter(5)->getValue(), 'yyyy-MM-dd', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[1]; $overview['impression_number'] = 0; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } } } return $overviewArray; }
/** * (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) { $totalOverviews = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $startDate = $dStartDate->toString('dd/MM/yyyy'); $endDate = $dEndDate->toString('dd/MM/yyyy'); $valuesFormExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); //$valuesFormExport[] = new Oara_Curl_Parameter('merchant', '0'); $valuesFormExport[] = new Oara_Curl_Parameter('datefrom', $startDate); $valuesFormExport[] = new Oara_Curl_Parameter('dateto', $endDate); $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . 'reports/remote.aspx?', $valuesFormExport); $exportReport = $this->_client->get($urls); $exportData = array(); $exportData = str_getcsv($exportReport[0], "\r\n"); $num = count($exportData); if ($num > 1) { for ($j = 1; $j < $num; $j++) { $overviewExportArray = str_getcsv($exportData[$j], ","); if (isset($this->_merchantMap[$overviewExportArray[1]]) && in_array((int) $this->_merchantMap[$overviewExportArray[1]], $merchantList)) { $overview = array(); $merchantId = $this->_merchantMap[$overviewExportArray[1]]; $overview['merchantId'] = $merchantId; $overviewDate = new Zend_Date($overviewExportArray[0], "dd/MM/yyyy"); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[3]; $overview['impression_number'] = (int) $overviewExportArray[4]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $totalOverviews[] = $overview; } } } } return $totalOverviews; }
/** * (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) { self::logIn(); $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $epcStartDate = clone $dStartDate; $epcStartDate->addDay(1); $epcEndDate = clone $dEndDate; $epcEndDate->addDay(1); $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('epc_start_date', $epcStartDate->toString("MM/dd/yy")); $overviewExport[] = new Oara_Curl_Parameter('epc_start_date_month', $epcStartDate->toString("MM")); $overviewExport[] = new Oara_Curl_Parameter('epc_start_date_day', $epcStartDate->toString("dd")); $overviewExport[] = new Oara_Curl_Parameter('epc_start_date_year', $epcStartDate->toString("yyyy")); $overviewExport[] = new Oara_Curl_Parameter('epc_end_date', $epcEndDate->toString("MM/dd/yy")); $overviewExport[] = new Oara_Curl_Parameter('epc_end_date_month', $epcEndDate->toString("MM")); $overviewExport[] = new Oara_Curl_Parameter('epc_end_date_day', $epcEndDate->toString("dd")); $overviewExport[] = new Oara_Curl_Parameter('epc_end_date_year', $epcEndDate->toString("yyyy")); $overviewByDateArray = array(); $try = 0; $done = false; while (!$done && $try < 5) { try { $urls = array(); $urls[] = new Oara_Curl_Request('https://publisher.ebaypartnernetwork.com/PublisherReportsTx?', $overviewExport); $exportReport = $this->_client->get($urls); $exportData = str_getcsv($exportReport[0], "\n"); $overviewByDateArray = array_merge($overviewByDateArray, self::getOverviewReportRecursive($exportData)); $done = true; } catch (Exception $e) { $try++; } } if ($try == 5) { echo $exportReport[0]; throw new Exception("Couldn't get overview "); } // Ad clicks and transactions for this day foreach ($overviewByDateArray as $date => $obj) { $overviewDate = new Zend_Date($date, "yyyy/MM/dd"); $returnObject = self::getDayFromArray($obj['merchantId'], $transactionArray, $overviewDate, true); $transactionDateArray = $returnObject->resultArray; $transactionArray = $returnObject->dateArray; unset($overviewDate); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_value'] += $transaction['amount']; $obj['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_value'] += $transaction['amount']; $obj['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_value'] += $transaction['amount']; $obj['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } //Add transactions foreach ($transactionArray as $merchantId => $merchantTransaction) { foreach ($merchantTransaction as $date => $transactionList) { $overview = array(); $overview['merchantId'] = $merchantId; $overviewDate = new Zend_Date($date, "yyyy-MM-dd"); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); unset($overviewDate); $overview['click_number'] = 0; $overview['impression_number'] = 0; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; foreach ($transactionList as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } $overviewArray[] = $overview; } } return $overviewArray; }
/** * (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(); $urls = array(); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('startyear', $dStartDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('startmonth', (int) $dStartDate->get(Zend_Date::MONTH) - 1); $valuesFromExport[] = new Oara_Curl_Parameter('startday', $dStartDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('endyear', $dEndDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('endmonth', (int) $dEndDate->get(Zend_Date::MONTH) - 1); $valuesFromExport[] = new Oara_Curl_Parameter('endday', $dEndDate->get(Zend_Date::DAY)); $urls[] = new Oara_Curl_Request('https://members.cj.com/member/' . $this->_memberId . '/publisher/report/performance.do?', $valuesFromExport); $exportReport = $this->_client->get($urls); $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); if ($num > 1) { $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); foreach ($dateArray as $currentStartDate) { $groupMap = array(); $urls = array(); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFromExport[] = new Oara_Curl_Parameter('startyear', $currentStartDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('startmonth', (int) $currentStartDate->get(Zend_Date::MONTH) - 1); $valuesFromExport[] = new Oara_Curl_Parameter('startday', $currentStartDate->get(Zend_Date::DAY)); $valuesFromExport[] = new Oara_Curl_Parameter('endyear', $currentStartDate->get(Zend_Date::YEAR)); $valuesFromExport[] = new Oara_Curl_Parameter('endmonth', (int) $currentStartDate->get(Zend_Date::MONTH) - 1); $valuesFromExport[] = new Oara_Curl_Parameter('endday', $currentStartDate->get(Zend_Date::DAY)); $urls[] = new Oara_Curl_Request('https://members.cj.com/member/' . $this->_memberId . '/publisher/report/performance.do?', $valuesFromExport); $exportReport = $this->_client->get($urls); $clickImpressionsArray = array(); if (!preg_match("/error/i", $exportReport[0], $matches)) { $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); for ($i = 1; $i < $num; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ","); if (isset($this->_merchantMap[$overviewExportArray[0]]) && in_array((int) $this->_merchantMap[$overviewExportArray[0]], $merchantList)) { $obj = array(); $obj['merchantId'] = $this->_merchantMap[$overviewExportArray[0]]; $obj['date'] = $currentStartDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['click_number'] = $overviewExportArray[6]; $obj['impression_number'] = $overviewExportArray[7]; $clickImpressionsArray[] = $obj; } } } else { echo "Warning overview could fail for the day " . $currentStartDate->toString("dd/MM/yyyy") . " \n\n"; } $groupMap = self::groupOverview($groupMap, $clickImpressionsArray); $transactionDateArray = array(); foreach ($transactionArray as $merchantId => $data) { $transactionDateArray = array_merge($transactionDateArray, Oara_Utilities::getDayFromArray($merchantId, $transactionArray, $currentStartDate)); } if (count($transactionDateArray) > 0) { $groupMap = self::groupOverview($groupMap, $transactionDateArray); } foreach ($groupMap as $merchant => $groupOverview) { $groupOverview['merchantId'] = $merchant; $groupOverview['date'] = $currentStartDate->toString("yyyy-MM-dd HH:mm:ss"); if (Oara_Utilities::checkRegister($groupOverview)) { $totalOverview[] = $groupOverview; } } } } return $totalOverview; }
/** * (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) { $overviewArray = array(); $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('StartYear', $dStartDate->get(Zend_Date::YEAR)); $overviewExport[] = new Oara_Curl_Parameter('StartMonth', $dStartDate->get(Zend_Date::MONTH)); $overviewExport[] = new Oara_Curl_Parameter('StartDay', $dStartDate->get(Zend_Date::DAY)); $overviewExport[] = new Oara_Curl_Parameter('EndYear', $dEndDate->get(Zend_Date::YEAR)); $overviewExport[] = new Oara_Curl_Parameter('EndMonth', $dEndDate->get(Zend_Date::MONTH)); $overviewExport[] = new Oara_Curl_Parameter('EndDay', $dEndDate->get(Zend_Date::DAY)); $overviewExport[] = new Oara_Curl_Parameter('Merchant', '0'); $urls = array(); $urls[] = new Oara_Curl_Request('http://admin.omgpm.com/v2/Reports/Affiliate/DailyExport.aspx?', $overviewExport); $exportReport = $this->_client->get($urls); $xml = self::loadXml($exportReport[0]); if (isset($xml->Report->Detail_Collection->Detail)) { $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = sizeof($dateArray); $urls = array(); for ($i = 0; $i < $dateArraySize; $i++) { $overviewExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $overviewExport[] = new Oara_Curl_Parameter('StartYear', $dateArray[$i]->get(Zend_Date::YEAR)); $overviewExport[] = new Oara_Curl_Parameter('StartMonth', $dateArray[$i]->get(Zend_Date::MONTH)); $overviewExport[] = new Oara_Curl_Parameter('StartDay', $dateArray[$i]->get(Zend_Date::DAY)); $overviewExport[] = new Oara_Curl_Parameter('EndYear', $dateArray[$i]->get(Zend_Date::YEAR)); $overviewExport[] = new Oara_Curl_Parameter('EndMonth', $dateArray[$i]->get(Zend_Date::MONTH)); $overviewExport[] = new Oara_Curl_Parameter('EndDay', $dateArray[$i]->get(Zend_Date::DAY)); $overviewExport[] = new Oara_Curl_Parameter('Merchant', '0'); $urls[] = new Oara_Curl_Request('http://admin.omgpm.com/v2/Reports/Affiliate/DailyExport.aspx?', $overviewExport); } $exportReport = $this->_client->get($urls); $exportReportNumber = count($exportReport); for ($i = 0; $i < $exportReportNumber; $i++) { $groupMerchantOverview = array(); $xml = self::loadXml($exportReport[$i]); if (isset($xml->Report->Detail_Collection->Detail)) { $overviewList = $xml->Report->Detail_Collection->Detail; $overviewListAux = $xml->Report->Detail_Collection->Detail; foreach ($overviewList as $overview) { if (isset($this->_merchantMap[self::findAttribute($overview, 'Merchant')]) && in_array((int) $this->_merchantMap[self::findAttribute($overview, 'Merchant')], $merchantList)) { $merchantId = $this->_merchantMap[self::findAttribute($overview, 'Merchant')]; if (!in_array($merchantId, $groupMerchantOverview)) { $groupMerchantOverview[] = $merchantId; $obj = array(); $obj['merchantId'] = $merchantId; $obj['date'] = $dateArray[$i]->toString("yyyy-MM-dd HH:mm:ss"); $obj['impression_number'] = 0; $obj['click_number'] = 0; foreach ($overviewListAux as $overviewAux) { if (isset($this->_merchantMap[self::findAttribute($overviewAux, 'Merchant')]) && in_array((int) $this->_merchantMap[self::findAttribute($overviewAux, 'Merchant')], $merchantList)) { $merchantIdAux = $this->_merchantMap[self::findAttribute($overviewAux, 'Merchant')]; if ($merchantId == $merchantIdAux) { $obj['impression_number'] += self::findAttribute($overviewAux, 'Impressions'); $obj['click_number'] += self::findAttribute($overviewAux, 'Clicks'); } } } $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($obj['merchantId'], $transactionArray, $dateArray[$i]); foreach ($transactionDateArray as $transaction) { $obj['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $obj['transaction_confirmed_commission'] += (double) $transaction['commission']; $obj['transaction_confirmed_value'] += (double) $transaction['amount']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $obj['transaction_pending_commission'] += (double) $transaction['commission']; $obj['transaction_pending_value'] += (double) $transaction['amount']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $obj['transaction_declined_commission'] += (double) $transaction['commission']; $obj['transaction_declined_value'] += (double) $transaction['amount']; } } } } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } } } } } return $overviewArray; }
/** * (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) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00%24m_mainPlaceholder%24m_periodFromField_hidden', "%3CDateChooser%20Value%3D%22" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("d") . "%22%3E%3C/DateChooser%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00xmxmainPlaceholderxmxperiodFromField_input', $dStartDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00_m_mainPlaceholder_m_periodFromField_DrpPnl_Calendar1', "%3Cx%20PostData%3D%22" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("d") . "%22%3E%3C/x%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00%24m_mainPlaceholder%24m_periodToField_hidden', "%3CDateChooser%20Value%3D%22" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("d") . "%22%3E%3C/DateChooser%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00xmxmainPlaceholderxmxperiodToField_input', $dEndDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00_m_mainPlaceholder_m_periodToField_DrpPnl_Calendar1', "%3Cx%20PostData%3D%22" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("d") . "%22%3E%3C/x%3E"); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.bet365affiliates.com/Members/Members/Statistics/Default.aspx', array()); $exportReport = $this->_client->get($urls); $forbiddenList = array('ctl00$m_mainPlaceholder$m_periodFromField_hidden', 'ctl00_m_mainPlaceholder_m_periodFromField_DrpPnl_Calendar1', 'ctl00$m_mainPlaceholder$m_periodToField_hidden', 'ctl00_m_mainPlaceholder_m_periodToField_DrpPnl_Calendar1'); $dom = new Zend_Dom_Query($exportReport[0]); $hiddenList = $dom->query('input[type="hidden"]'); foreach ($hiddenList as $hidden) { if (!in_array($hidden->getAttribute("name"), $forbiddenList)) { $valuesFromExport[] = new Oara_Curl_Parameter($hidden->getAttribute("name"), $hidden->getAttribute("value")); } } $urls = array(); $urls[] = new Oara_Curl_Request('https://www.bet365affiliates.com/Members/Members/Statistics/Default.aspx', $valuesFromExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $tableList = $dom->query('table'); $exportData = self::htmlToCsv(self::DOMinnerHTML($tableList->current())); $num = count($exportData); for ($i = 2; $i < $num - 1; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ";"); $overview = array(); $overview['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[1], 'dd-MM-yyyy', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[2]; $overview['impression_number'] = 0; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } return $overviewArray; }