public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
{
$totalTransactions = array();
$merchantListIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
foreach ($this->_campaignMap as $campaignKey => $campaignValue) {
try {
$transactionList = $this->_soapClient->getFullEarningsWithCurrency($dStartDate->format("Y-m-d\\TH:i:s"), $dEndDate->format("Y-m-d\\TH:i:s"), $campaignKey, $this->_user, $this->_password);
} catch (\Exception $e) {
if (\preg_match("/60 requests/", $e->getMessage())) {
\sleep(60);
$transactionList = $this->_soapClient->getFullEarningsWithCurrency($dStartDate->format("Y-m-d\\TH:i:s"), $dEndDate->format("Y-m-d\\TH:i:s"), $campaignKey, $this->_user, $this->_password);
}
}
foreach ($transactionList as $transactionObject) {
if (isset($merchantListIdList[$transactionObject->programID])) {
$transaction = array();
$transaction['merchantId'] = $transactionObject->programID;
$transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", $transactionObject->date);
$transaction["date"] = $transactionDate->format("Y-m-d H:i:s");
$transaction['unique_id'] = $transactionObject->transactionID;
if ($transactionObject->clickRef != null) {
$transaction['custom_id'] = $transactionObject->clickRef;
}
$transaction['status'] = null;
$transaction['amount'] = $transactionObject->saleValue;
$transaction['commission'] = $transactionObject->commission;
if ($transactionObject->paymentStatus == 'cleared' || $transactionObject->paymentStatus == 'paid') {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
if ($transactionObject->paymentStatus == 'notcleared') {
$transaction['status'] = \Oara\Utilities::STATUS_PENDING;
} else {
if ($transactionObject->paymentStatus == 'cancelled') {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
} else {
throw new \Exception('Error in the transaction status ' . $transactionObject->paymentStatus);
}
}
}
$transaction['currency'] = $transactionObject->currency;
$totalTransactions[] = $transaction;
}
}
}
return $totalTransactions;
}