Oara\Network\Publisher\Dgm::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();
        $transactionXml = $this->_apiClient->GetSales($this->_user, $this->_pass, 0, 'all', 'validated', $dStartDate->format("Y-m-d"), $dEndDate->format("Y-m-d"));
        $xmlObject = new \SimpleXMLElement($transactionXml);
        if ($xmlObject->attributes()->status != 'error') {
            $campaignIdList = array();
            foreach ($merchantList as $merchantId) {
                if (isset($this->_advertisersCampaings[(string) $merchantId])) {
                    $campaingList = \explode(",", $this->_advertisersCampaings[(string) $merchantId]);
                    foreach ($campaingList as $campaignId) {
                        $campaignIdList[$campaignId] = $merchantId;
                    }
                }
            }
            foreach ($xmlObject->sales->sale as $sale) {
                if (isset($campaignIdList[(string) $sale->Campaignid])) {
                    $transaction = array();
                    $transaction['unique_id'] = (string) $sale->OrderID;
                    $transaction['merchantId'] = $campaignIdList[(string) $sale->CampaignID];
                    $transaction['date'] = (string) $sale->SaleDate;
                    if ((string) $sale->CompanyID != null) {
                        $transaction['custom_id'] = (string) $sale->CompanyID;
                    }
                    if ((string) $sale->SaleStatus == 'Approved') {
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                    } else {
                        if ((string) $sale->SaleStatus == 'Pending') {
                            $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                        } else {
                            if ((string) $sale->SaleStatus == 'Deleted') {
                                $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                            }
                        }
                    }
                    $transaction['amount'] = (string) $sale->SaleValue;
                    $transaction['commission'] = (string) $sale->SaleCommission;
                    $totalTransactions[] = $transaction;
                }
            }
        }
        return $totalTransactions;
    }