Oara\Network\Publisher\Etrader::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();
        $page = 1;
        $continue = true;
        while ($continue) {
            $valuesFormExport = array();
            $valuesFormExport[] = new \Oara\Curl\Parameter('dateFrom', $dStartDate->format("d/m/Y"));
            $valuesFormExport[] = new \Oara\Curl\Parameter('dateTo', $dEndDate->format("d/m/Y"));
            $valuesFormExport[] = new \Oara\Curl\Parameter('startIndex', $page);
            $valuesFormExport[] = new \Oara\Curl\Parameter('numberOfPages', '1');
            $urls = array();
            $urls[] = new \Oara\Curl\Request('https://etrader.kalahari.com/view/affiliate/transactionreport', $valuesFormExport);
            $exportReport = $this->_client->post($urls);
            $doc = new \DOMDocument();
            @$doc->loadHTML($exportReport[0]);
            $xpath = new \DOMXPath($doc);
            $results = $xpath->query('//table');
            $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($results->item(0)));
            if (\preg_match("/No results found/", $exportData[1])) {
                break;
            } else {
                $page++;
            }
            for ($j = 1; $j < \count($exportData); $j++) {
                $transactionDetail = \str_getcsv($exportData[$j], ";");
                $transaction = array();
                $transaction['merchantId'] = "1";
                if (\preg_match("/Order dispatched: ([0-9]+) /", $transactionDetail[2], $match)) {
                    $transaction['custom_id'] = $match[1];
                }
                $date = \DateTime::createFromFormat("d M Y", $transactionDetail[0]);
                $transaction['date'] = $date->format("Y-m-d 00:00:00");
                $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                if ($transactionDetail[3] != null) {
                    $transaction['amount'] = \Oara\Utilities::parseDouble($transactionDetail[3]);
                    $transaction['commission'] = \Oara\Utilities::parseDouble($transactionDetail[3]);
                } else {
                    if ($transactionDetail[4] != null) {
                        $transaction['amount'] = \Oara\Utilities::parseDouble($transactionDetail[4]);
                        $transaction['commission'] = \Oara\Utilities::parseDouble($transactionDetail[4]);
                    }
                }
                $totalTransactions[] = $transaction;
            }
        }
        return $totalTransactions;
    }