Oara\Network\Publisher\NetAffiliation::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();
        $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        $valuesFormExport = array();
        $valuesFormExport[] = new \Oara\Curl\Parameter('authl', $this->_credentials["user"]);
        $valuesFormExport[] = new \Oara\Curl\Parameter('authv', $this->_credentials["apipassword"]);
        $valuesFormExport[] = new \Oara\Curl\Parameter('champs', 'idprogramme,date,etat,argann,montant,gains,monnaie,idsite');
        $valuesFormExport[] = new \Oara\Curl\Parameter('debut', $dStartDate->format("Y-m-d"));
        $valuesFormExport[] = new \Oara\Curl\Parameter('fin', $dEndDate->format("Y-m-d"));
        $urls = array();
        $urls[] = new \Oara\Curl\Request('https://stat.netaffiliation.com/requete.php?', $valuesFormExport);
        $exportReport = $this->_client->get($urls);
        //sales
        $exportData = str_getcsv($exportReport[0], "\n");
        $num = count($exportData);
        for ($i = 1; $i < $num; $i++) {
            $transactionExportArray = str_getcsv($exportData[$i], ";");
            if (\count($this->_sitesAllowed) == 0 || \in_array($transactionExportArray[7], $this->_sitesAllowed)) {
                if (isset($merchantIdList[$transactionExportArray[0]])) {
                    $transaction = array();
                    $transaction['merchantId'] = $transactionExportArray[0];
                    \preg_match("/(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})/", $transactionExportArray[1], $date);
                    $transaction['date'] = $date[0];
                    if ($transactionExportArray[3] != null) {
                        $transaction['custom_id'] = $transactionExportArray[3];
                    }
                    if (\strstr($transactionExportArray[2], 'v')) {
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                    } else {
                        if (\strstr($transactionExportArray[2], 'r')) {
                            $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                        } else {
                            if (\strstr($transactionExportArray[2], 'a')) {
                                $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                            } else {
                                throw new \Exception("Status not found");
                            }
                        }
                    }
                    $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[5]);
                    $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[5]);
                    $totalTransactions[] = $transaction;
                }
            }
        }
        return $totalTransactions;
    }