Oara\Network\Publisher\PostAffiliatePro::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();
        //----------------------------------------------
        // get recordset of list of transactions
        $request = new \Pap_Api_TransactionsGrid($this->_session);
        // set filter
        $request->addFilter('dateinserted', 'D>=', $dStartDate->format("Y-m-d"));
        $request->addFilter('dateinserted', 'D<=', $dEndDate->format("Y-m-d"));
        $request->setLimit(0, 100);
        $request->setSorting('t_orderid', false);
        $request->sendNow();
        $grid = $request->getGrid();
        $recordset = $grid->getRecordset();
        // iterate through the records
        foreach ($recordset as $rec) {
            $transaction = array();
            $transaction['merchantId'] = 1;
            $transaction['unique_id'] = $rec->get('id');
            $transaction['date'] = $rec->get('dateinserted');
            $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
            $transaction['amount'] = \Oara\Utilities::parseDouble($rec->get('totalcost'));
            $transaction['commission'] = \Oara\Utilities::parseDouble($rec->get('commission'));
            $totalTransactions[] = $transaction;
        }
        //----------------------------------------------
        // in case there are more than 30 records total
        // we should load and display the rest of the records
        // in the cycle
        $totalRecords = $grid->getTotalCount();
        $maxRecords = $recordset->getSize();
        if ($maxRecords > 0) {
            $cycles = \ceil($totalRecords / $maxRecords);
            for ($i = 1; $i < $cycles; $i++) {
                // now get next 30 records
                $request->setLimit($i * $maxRecords, $maxRecords);
                $request->sendNow();
                $recordset = $request->getGrid()->getRecordset();
                // iterate through the records
                foreach ($recordset as $rec) {
                    $transaction = array();
                    $transaction['merchantId'] = 1;
                    $transaction['unique_id'] = $rec->get('id');
                    $transaction['date'] = $rec->get('dateinserted');
                    if ($rec->get('rstatus') == 'D') {
                        $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                    } else {
                        if ($rec->get('rstatus') == 'P') {
                            $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                        } else {
                            if ($rec->get('rstatus') == 'A') {
                                $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                            }
                        }
                    }
                    $transaction['amount'] = \Oara\Utilities::parseDouble($rec->get('totalcost'));
                    $transaction['commission'] = \Oara\Utilities::parseDouble($rec->get('commission'));
                    $totalTransactions[] = $transaction;
                }
            }
        }
        return $totalTransactions;
    }