private function getTransactionsXml($restUrl, $merchantList)
{
$totalTransactions = array();
$merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
$response = self::apiCall($restUrl);
$xml = \simplexml_load_string($response, null, LIBXML_NOERROR | LIBXML_NOWARNING);
if (isset($xml->commissions->commission)) {
foreach ($xml->commissions->commission as $singleTransaction) {
if (\count($this->_sitesAllowed) == 0 || \in_array((int) self::findAttribute($singleTransaction, 'website-id'), $this->_sitesAllowed)) {
if (isset($merchantIdList[(int) self::findAttribute($singleTransaction, 'cid')])) {
$type = self::findAttribute($singleTransaction, 'action-type');
if (!$this->_includeBonus && $type == "bonus") {
continue;
}
$transaction = array();
$transaction['unique_id'] = self::findAttribute($singleTransaction, 'original-action-id');
$transaction['action'] = self::findAttribute($singleTransaction, 'action-type');
$transaction['merchantId'] = self::findAttribute($singleTransaction, 'cid');
$transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", \substr(self::findAttribute($singleTransaction, 'event-date'), 0, 19));
$transaction['date'] = $transactionDate->format("Y-m-d H:i:s");
if (self::findAttribute($singleTransaction, 'sid') != null) {
$transaction['custom_id'] = self::findAttribute($singleTransaction, 'sid');
}
$transaction['amount'] = \Oara\Utilities::parseDouble(self::findAttribute($singleTransaction, 'sale-amount'));
$transaction['commission'] = \Oara\Utilities::parseDouble(self::findAttribute($singleTransaction, 'commission-amount'));
if (self::findAttribute($singleTransaction, 'action-status') == 'locked' || self::findAttribute($singleTransaction, 'action-status') == 'closed') {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
if (self::findAttribute($singleTransaction, 'action-status') == 'extended' || self::findAttribute($singleTransaction, 'action-status') == 'new') {
$transaction['status'] = \Oara\Utilities::STATUS_PENDING;
} else {
if (self::findAttribute($singleTransaction, 'action-status') == 'corrected') {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
}
}
}
if ($transaction['commission'] == 0) {
$transaction['status'] = \Oara\Utilities::STATUS_PENDING;
}
if ($transaction['amount'] < 0 || $transaction['commission'] < 0) {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
$transaction['amount'] = \abs($transaction['amount']);
$transaction['commission'] = \abs($transaction['commission']);
}
$totalTransactions[] = $transaction;
}
}
}
}
return $totalTransactions;
}