public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
{
$totalTransactions = array();
$merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
$valuesFormExport = array();
$urls = array();
$urls[] = new \Oara\Curl\Request('http://system.fashiontraffic.com/stats/lead_report', $valuesFormExport);
$exportReport = $this->_client->post($urls);
$doc = new \DOMDocument();
@$doc->loadHTML($exportReport[0]);
$xpath = new \DOMXPath($doc);
$results = $xpath->query('//input[@name="data[_Token][key]"]');
foreach ($results as $values) {
$valuesFormExport[] = new \Oara\Curl\Parameter($values->getAttribute("name"), $values->getAttribute("value"));
}
$results = $xpath->query('//input[@name="data[_Token][fields]"]');
foreach ($results as $values) {
$valuesFormExport[] = new \Oara\Curl\Parameter($values->getAttribute("name"), $values->getAttribute("value"));
}
$valuesFormExport[] = new \Oara\Curl\Parameter("_method", 'POST');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][page]", '');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.offer_id');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.datetime');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.ad_id');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.source');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info1');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info2');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info3');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info4');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info5');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.conversion_payout');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.conversion_status');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][search][field]", '');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][search][value]", '');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][timezone]", 'America/New_York');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][preset_date_range]", 'other');
$valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][start_date]", $dStartDate->format("Y-m-d"));
$valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][end_date]", $dEndDate->format("Y-m-d"));
$urls = array();
$urls[] = new \Oara\Curl\Request('http://system.fashiontraffic.com/stats/lead_report', $valuesFormExport);
$exportReport = $this->_client->post($urls);
$csvUrl = null;
if (\preg_match("/report:(.*).csv/", $exportReport[0], $match)) {
$csvUrl = "http://system.fashiontraffic.com/stats/conversion_report/report:{$match[1]}.csv";
}
$valuesFormExport = array();
$urls = array();
$urls[] = new \Oara\Curl\Request($csvUrl, $valuesFormExport);
$exportReport = $this->_client->get($urls);
$exportData = \str_getcsv($exportReport[0], "\n");
$num = \count($exportData);
for ($i = 1; $i < $num; $i++) {
$transactionExportArray = \str_getcsv($exportData[$i], ",");
if (isset($merchantIdList[(int) $transactionExportArray[0]])) {
$transaction = array();
$merchantId = (int) $transactionExportArray[0];
$transaction['merchantId'] = $merchantId;
$transaction['date'] = $transactionExportArray[1];
if ($transactionExportArray[5] != null) {
$transaction['custom_id'] = $transactionExportArray[5];
}
if ($transactionExportArray[10] == 'approved') {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
if ($transactionExportArray[10] == 'rejected') {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
} else {
throw new \Exception("Status {$transactionExportArray[10]} unknown");
}
}
$transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[9]);
$transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[9]);
$totalTransactions[] = $transaction;
}
}
return $totalTransactions;
}