Oara\Network\Publisher\SilverTap::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();
        $startDate = $dStartDate->format('d/m/Y');
        $endDate = $dEndDate->format('d/m/Y');
        $marchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        $valueIndex = 9;
        $commissionIndex = 16;
        $statusIndex = 17;
        $valuesFormExport = array(new \Oara\Curl\Parameter('user', $this->_exportUser), new \Oara\Curl\Parameter('pwd', $this->_exportPassword), new \Oara\Curl\Parameter('report', 'AMSCommission_Breakdown'), new \Oara\Curl\Parameter('groupby', 'Programme'), new \Oara\Curl\Parameter('groupdate', 'Day'), new \Oara\Curl\Parameter('creative', ''), new \Oara\Curl\Parameter('CommOnly', '1'), new \Oara\Curl\Parameter('showimpressions', 'True'), new \Oara\Curl\Parameter('showclicks', 'True'), new \Oara\Curl\Parameter('showreferrals', 'True'), new \Oara\Curl\Parameter('showtransactionvalues', 'True'), new \Oara\Curl\Parameter('sort', 'Date asc'), new \Oara\Curl\Parameter('format', 'csv'));
        $valuesFormExport[] = new \Oara\Curl\Parameter('datefrom', $startDate);
        $valuesFormExport[] = new \Oara\Curl\Parameter('dateto', $endDate);
        $urls = array();
        $urls[] = new \Oara\Curl\Request($this->_serverUrl . 'reports/remote.aspx?', $valuesFormExport);
        $exportReport = $this->_client->get($urls);
        $exportData = \str_getcsv($exportReport[0], "\r\n");
        $num = \count($exportData);
        for ($i = 1; $i < $num; $i++) {
            $transactionExportArray = \str_getcsv($exportData[$i], ",");
            if (isset($marchantIdList[$transactionExportArray[4]])) {
                $transaction = array();
                $transaction['unique_id'] = \preg_replace('/\\D/', '', $transactionExportArray[0]);
                $transaction['merchantId'] = $transactionExportArray[4];
                $transactionDate = \DateTime::createFromFormat("d/m/Y H:i:s", $transactionExportArray[2]);
                $transaction['date'] = $transactionDate->format("Y-m-d H:i:s");
                if ($transactionExportArray[7] != null) {
                    $transaction['custom_id'] = $transactionExportArray[7];
                }
                if (\preg_match('/Unpaid Confirmed/', $transactionExportArray[$statusIndex]) || \preg_match('/Paid Confirmed/', $transactionExportArray[$statusIndex])) {
                    $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                } else {
                    if (\preg_match('/Unpaid Unconfirmed/', $transactionExportArray[$statusIndex])) {
                        $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                    } else {
                        if (\preg_match('/Unpaid Rejected/', $transactionExportArray[$statusIndex])) {
                            $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                        } else {
                            throw new \Exception("No Status supported " . $transactionExportArray[$statusIndex]);
                        }
                    }
                }
                $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[$valueIndex]);
                $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[$commissionIndex]);
                $totalTransactions[] = $transaction;
            }
        }
        return $totalTransactions;
    }