Oara\Network\Publisher\Globelink::getTransactionList PHP Method

getTransactionList() public method

public getTransactionList ( null $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null ) : array
$merchantList null
$dStartDate DateTime
$dEndDate DateTime
return array
    public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
    {
        $totalTransactions = array();
        $urls = array();
        $valuesFormExport = array();
        $urls[] = new \Oara\Curl\Request('http://affiliate.globelink.co.uk/home/', $valuesFormExport);
        $exportReport = $this->_client->get($urls);
        $commmisionUrl = "";
        if (\preg_match("/\\/profile\\/(.*)\\/sales/", $exportReport[0], $matches)) {
            $commmisionUrl = "http://affiliate.globelink.co.uk/profile/" . $matches[1] . "/sales/?";
        }
        $auxTransactionList = array();
        $page = 1;
        $exit = false;
        while (!$exit) {
            $urls = array();
            $valuesFormExport = array();
            $valuesFormExport[] = new \Oara\Curl\Parameter('page', $page);
            $valuesFormExport[] = new \Oara\Curl\Parameter('count', 20);
            $urls[] = new \Oara\Curl\Request($commmisionUrl, $valuesFormExport);
            $exportReport = $this->_client->get($urls);
            $doc = new \DOMDocument();
            @$doc->loadHTML($exportReport[0]);
            $xpath = new \DOMXPath($doc);
            $results = $xpath->query('//*[contains(concat(" ", normalize-space(@class), " "), " affs-list-r ")]');
            foreach ($results as $line) {
                $auxTransaction = array();
                foreach ($line->childNodes as $attribute) {
                    $value = \trim((string) $attribute->nodeValue);
                    if (\strlen($value) > 0) {
                        $auxTransaction[] = $value != "n/a" ? $value : '';
                    }
                }
                $auxTransactionList[] = $auxTransaction;
            }
            if (\preg_match("/<li><span>&raquo;<\\/span><\\/li>/", $exportReport[0])) {
                $exit = true;
            }
            $page++;
        }
        foreach ($auxTransactionList as $auxTransaction) {
            if ($dStartDate->format("Y-m-d H:i:s") <= $auxTransaction[0] && $dEndDate->format("Y-m-d H:i:s") >= $auxTransaction[0]) {
                $transaction = array();
                $transaction['merchantId'] = 1;
                $transaction['date'] = $auxTransaction[0];
                $transaction['unique_id'] = $auxTransaction[1];
                if (strstr($auxTransaction[6], 'No')) {
                    $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                } else {
                    if (strstr($auxTransaction[6], 'Yes')) {
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                    }
                }
                $transaction['amount'] = $auxTransaction[3];
                $transaction['commission'] = $auxTransaction[4];
                $totalTransactions[] = $transaction;
            }
        }
        return $totalTransactions;
    }