public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
{
$totalTransactions = array();
$dStartDate = clone $dStartDate;
$dStartDate->setTime(0, 0, 0);
$dEndDate = clone $dEndDate;
$dEndDate->setTime(23, 59, 59);
$params = array();
$params['sDateType'] = 'transaction';
if ($merchantList != null) {
$merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
$params['aMerchantIds'] = \array_keys($merchantIdList);
}
if ($dStartDate != null) {
$params['dStartDate'] = $dStartDate->format("Y-m-d\\TH:i:s");
}
if ($dEndDate != null) {
$params['dEndDate'] = $dEndDate->format("Y-m-d\\TH:i:s");
}
$params['iOffset'] = null;
$params['iLimit'] = $this->_pageSize;
$transactionList = $this->_apiClient->getTransactionList($params);
if (\sizeof($transactionList->getTransactionListReturn) > 0) {
$iteration = self::getIterationNumber($transactionList->getTransactionListCountReturn->iRowsAvailable, $this->_pageSize);
unset($transactionList);
for ($j = 0; $j < $iteration; $j++) {
$params['iOffset'] = $this->_pageSize * $j;
$transactionList = $this->_apiClient->getTransactionList($params);
foreach ($transactionList->getTransactionListReturn as $transactionObject) {
if ($transactionObject->sType != 'bonus' || $transactionObject->sType == 'bonus' && $this->_includeBonus) {
$transaction = array();
$transaction['unique_id'] = $transactionObject->iId;
$transaction['merchantId'] = $transactionObject->iMerchantId;
$date = new \DateTime($transactionObject->dTransactionDate);
$transaction['date'] = $date->format("Y-m-d H:i:s");
if (isset($transactionObject->sClickref) && $transactionObject->sClickref != null) {
$transaction['custom_id'] = $transactionObject->sClickref;
}
$transaction['type'] = $transactionObject->sType;
$transaction['status'] = $transactionObject->sStatus;
$transaction['amount'] = $transactionObject->mSaleAmount->dAmount;
$transaction['commission'] = $transactionObject->mCommissionAmount->dAmount;
if (isset($transactionObject->aTransactionParts)) {
$transactionPart = \current($transactionObject->aTransactionParts);
$transaction['currency'] = $transactionPart->mCommissionAmount->sCurrency;
}
$totalTransactions[] = $transaction;
}
}
unset($transactionList);
\gc_collect_cycles();
}
}
return $totalTransactions;
}