Oara\Network\Publisher\AffiliateWindow::getTransactionList PHP Метод

getTransactionList() публичный Метод

public getTransactionList ( null $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null ) : array
$merchantList null
$dStartDate DateTime
$dEndDate DateTime
Результат array
    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;
    }