Example #1
0
 /**
  * (non-PHPdoc)
  * @see Oara/Network/Oara_Network_Base#getPaymentHistory()
  */
 public function getPaymentHistory()
 {
     $paymentHistory = array();
     $startDate = new Zend_Date('01-01-2009', 'dd-MM-yyyy');
     $endDate = new Zend_Date();
     $dateArray = Oara_Utilities::monthsOfDifference($startDate, $endDate);
     for ($i = 0; $i < count($dateArray); $i++) {
         $dateMonth = $dateArray[$i];
         $obj = array();
         $obj['date'] = $dateMonth->toString("yyyy-MM-dd HH:mm:ss");
         $value = rand(1, 1300);
         $obj['value'] = $value;
         $obj['method'] = 'BACS';
         $obj['pid'] = $dateMonth->toString('yyyyMMdd');
         $paymentHistory[] = $obj;
     }
     return $paymentHistory;
 }
Example #2
0
 /**
  * (non-PHPdoc)
  * @see Oara/Network/Oara_Network_Publisher_Base#getPaymentHistory()
  */
 public function getPaymentHistory()
 {
     $paymentHistory = array();
     $filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2));
     $startDate = new Zend_Date("01-01-2012", "dd-MM-yyyy");
     $endDate = new Zend_Date();
     $dateList = Oara_Utilities::monthsOfDifference($startDate, $endDate);
     foreach ($dateList as $date) {
         $monthStartDate = clone $date;
         $monthEndDate = null;
         $monthEndDate = clone $date;
         $monthEndDate->setDay(1);
         $monthEndDate->addMonth(1);
         $monthEndDate->subDay(1);
         $monthEndDate->setHour(23);
         $monthEndDate->setMinute(59);
         $monthEndDate->setSecond(59);
         $valuesFromExport = array();
         $valuesFromExport[] = new Oara_Curl_Parameter('Begin_Date', $monthStartDate->toString("MM/dd/yyyy"));
         $valuesFromExport[] = new Oara_Curl_Parameter('End_Date', $monthEndDate->toString("MM/dd/yyyy"));
         $valuesFromExport[] = new Oara_Curl_Parameter('cd', "c");
         $valuesFromExport[] = new Oara_Curl_Parameter('disb', "false");
         $valuesFromExport[] = new Oara_Curl_Parameter('coll', "true");
         $valuesFromExport[] = new Oara_Curl_Parameter('transactionID', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('Begin_DatePN', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('Begin_DateCN', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('End_DatePN', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('End_DateCN', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('disbAcctIDRef', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('checkNumberID', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('paymentNum', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('sel_type', "OTH");
         $valuesFromExport[] = new Oara_Curl_Parameter('payStatusCat', "ALL_STATUSES");
         $valuesFromExport[] = new Oara_Curl_Parameter('amount', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('aggregatedCreditAmount', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('disbSiteIDManual', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('collSiteIDManual', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('agencyid', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('collbankAccount', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitInvoice', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitAccount', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitCustAccount', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitCustName', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitVendorNumber', "");
         $valuesFromExport[] = new Oara_Curl_Parameter('remitVendorName', "");
         $urls = array();
         $urls[] = new Oara_Curl_Request('https://secure.paymode.com/paymode/payment-DB-search.jsp?dataSource=1', $valuesFromExport);
         $exportReport = $this->_client->post($urls);
         if (!preg_match("/No payments were found/", $exportReport[0])) {
             $dom = new Zend_Dom_Query($exportReport[0]);
             $results = $dom->query('form[name="transform"] table');
             if (count($results) > 0) {
                 $tableCsv = self::htmlToCsv(self::DOMinnerHTML($results->current()));
                 $payment = array();
                 $paymentArray = str_getcsv($tableCsv[4], ";");
                 $payment['pid'] = $paymentArray[1];
                 $dateResult = $dom->query('form[name="collForm"] table');
                 if (count($dateResult) > 0) {
                     $dateCsv = self::htmlToCsv(self::DOMinnerHTML($dateResult->current()));
                     $dateArray = str_getcsv($dateCsv[2], ";");
                     $paymentDate = new Zend_Date($dateArray[1], 'dd-MMM-yyyy', 'en');
                     $payment['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss");
                     $paymentArray = str_getcsv($tableCsv[3], ";");
                     $payment['value'] = Oara_Utilities::parseDouble(preg_replace("/[^0-9\\.,]/", "", $paymentArray[3]));
                     $payment['method'] = "BACS";
                     $paymentHistory[] = $payment;
                 }
             } else {
                 $results = $dom->query('table[cellpadding="2"]');
                 foreach ($results as $table) {
                     $tableCsv = self::htmlToCsv(self::DOMinnerHTML($table));
                     $num = count($tableCsv);
                     for ($i = 1; $i < $num; $i++) {
                         $payment = array();
                         $paymentArray = str_getcsv($tableCsv[$i], ";");
                         $payment['pid'] = $paymentArray[0];
                         $paymentDate = new Zend_Date($paymentArray[3], 'MM/dd/yyyy', 'en');
                         $payment['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss");
                         $payment['value'] = Oara_Utilities::parseDouble($paymentArray[9]);
                         $payment['method'] = "BACS";
                         $paymentHistory[] = $payment;
                     }
                 }
             }
         }
     }
     return $paymentHistory;
 }
Example #3
0
 /**
  * The affjet cli , read the arguments and build the report requested
  * @param array arguments, Map of the cli arguments
  * * @param network, the affiliate network
  * @return none
  */
 public static function affjetCli($arguments, $network)
 {
     //Start date, the first two months ago
     $startDate = new Zend_Date($arguments['s'], "dd/MM/yyyy");
     $startDate->setHour(00);
     $startDate->setMinute(00);
     $startDate->setSecond(00);
     //Yesterday, some networks don't give us the data for the same day, then is the safer way to have our data
     $endDate = new Zend_Date($arguments['e'], "dd/MM/yyyy");
     $endDate->setHour(23);
     $endDate->setMinute(59);
     $endDate->setSecond(59);
     //are we connected?
     fwrite(STDERR, "\nAccessing to your account \n\n");
     if ($network->checkConnection()) {
         fwrite(STDERR, "Connected successfully \n\n");
         if (!isset($arguments['t']) || $arguments['t'] == 'payment') {
             fwrite(STDERR, "Getting payments, please wait \n\n");
             //Get all the payments for this network.
             $paymentsList = $network->getPaymentHistory();
             fwrite(STDERR, "Number of payments: " . count($paymentsList) . "\n\n");
             fwrite(STDERR, "------------------------------------------------------------------------\n");
             fwrite(STDERR, "ID\t\t\tDATE\t\t\t\t\tVALUE\n");
             fwrite(STDERR, "------------------------------------------------------------------------\n");
             foreach ($paymentsList as $payment) {
                 $paymentDate = new Zend_Date($payment['date'], "yyyy-MM-dd HH:mm:ss");
                 if ($paymentDate->compare($startDate) >= 0 && $paymentDate->compare($endDate) <= 0) {
                     fwrite(STDERR, $payment['pid'] . "\t\t\t" . $payment['date'] . "\t\t\t" . $payment['value'] . " \n");
                 }
             }
             if (isset($arguments['t']) && $arguments['t'] == 'payment') {
                 return null;
             }
         }
         //Get all the Merhcants
         fwrite(STDERR, "\nGetting merchants, please wait \n\n");
         $merchantList = $network->getMerchantList(array());
         if (!isset($arguments['t']) || $arguments['t'] == 'merchant') {
             fwrite(STDERR, "Number of merchants: " . count($merchantList) . "\n\n");
             fwrite(STDERR, "--------------------------------------------------\n");
             fwrite(STDERR, "ID\t\t\tNAME\n");
             fwrite(STDERR, "--------------------------------------------------\n");
             foreach ($merchantList as $merchant) {
                 fwrite(STDERR, $merchant['cid'] . "\t\t\t" . $merchant['name'] . " \n");
             }
             if (isset($arguments['t']) && $arguments['t'] == 'merchant') {
                 return null;
             }
         }
         // Building the array of merchant Id we want to retrieve data from.
         $merchantIdList = array();
         foreach ($merchantList as $merchant) {
             $merchantIdList[] = $merchant['cid'];
         }
         //If we have joined any merchant
         if (!empty($merchantIdList)) {
             $merchantMap = array();
             foreach ($merchantList as $merchant) {
                 $merchantMap[$merchant['name']] = $merchant['cid'];
             }
             //Split the dates monthly, Most of the network don't allow us to retrieve more than a month data
             $dateArray = Oara_Utilities::monthsOfDifference($startDate, $endDate);
             for ($i = 0; $i < count($dateArray); $i++) {
                 // Calculating the start and end date for the current month
                 $monthStartDate = clone $dateArray[$i];
                 $monthEndDate = null;
                 if ($i != count($dateArray) - 1) {
                     $monthEndDate = clone $dateArray[$i];
                     $monthEndDate->setDay(1);
                     $monthEndDate->addMonth(1);
                     $monthEndDate->subDay(1);
                 } else {
                     $monthEndDate = $endDate;
                 }
                 $monthEndDate->setHour(23);
                 $monthEndDate->setMinute(59);
                 $monthEndDate->setSecond(59);
                 fwrite(STDERR, "\n*Importing data from " . $monthStartDate->toString("dd-MM-yyyy HH:mm:ss") . " to " . $monthEndDate->toString("dd-MM-yyyy HH:mm:ss") . "\n\n");
                 fwrite(STDERR, "Getting transactions, please wait \n\n");
                 $transactionList = $network->getTransactionList($merchantIdList, $monthStartDate, $monthEndDate, $merchantMap);
                 if (!isset($arguments['t']) || $arguments['t'] == 'transaction') {
                     fwrite(STDERR, "Number of transactions: " . count($transactionList) . "\n\n");
                     $totalAmount = 0;
                     $totalCommission = 0;
                     foreach ($transactionList as $transaction) {
                         $totalAmount += $transaction['amount'];
                         $totalCommission += $transaction['commission'];
                     }
                     fwrite(STDERR, "--------------------------------------------------\n");
                     fwrite(STDERR, "TOTAL AMOUNT\t\t{$totalAmount}\n");
                     fwrite(STDERR, "TOTAL COMMISSION\t{$totalCommission}\n");
                     fwrite(STDERR, "--------------------------------------------------\n\n");
                 }
             }
         }
         fwrite(STDERR, "Import finished \n\n");
     } else {
         fwrite(STDERR, "Error connecting to the network, check credentials \n\n");
     }
 }
Example #4
0
 /**
  *  It returns the transactions for a payment
  * @see Oara_Network::paymentTransactions()
  */
 public function paymentTransactions($paymentId, $merchantList, $startDate)
 {
     $paymentTransactionList = array();
     $paymentHistory = Oara_Utilities::registerBubbleSort($this->_paymentHistory);
     $paymentStartDate = new Zend_Date($startDate, "yyyy-MM-dd HH:mm:ss");
     $paymentEndDate = null;
     $enc = false;
     $i = 0;
     $payment = null;
     while (!$enc && $i < count($paymentHistory)) {
         $payment = $paymentHistory[$i];
         if ($payment['pid'] == $paymentId) {
             $enc = true;
             $paymentEndDate = new Zend_Date($payment['date'], "yyyy-MM-dd HH:mm:ss");
         }
         $i++;
     }
     if ($enc && $paymentStartDate->compare($paymentEndDate) <= 0) {
         $totalTransactions = array();
         $dateArray = Oara_Utilities::monthsOfDifference(new Zend_Date($startDate, "yyyy-MM-dd HH:mm:ss"), $paymentEndDate);
         for ($i = 0; $i < count($dateArray); $i++) {
             $monthStartDate = clone $dateArray[$i];
             $monthEndDate = null;
             if ($i != count($dateArray) - 1) {
                 $monthEndDate = clone $dateArray[$i];
                 $monthEndDate->setDay(1);
                 $monthEndDate->addMonth(1);
                 $monthEndDate->subDay(1);
             } else {
                 $monthEndDate = $paymentEndDate;
             }
             $monthEndDate->setHour(23);
             $monthEndDate->setMinute(59);
             $monthEndDate->setSecond(59);
             echo "\n importing from " . $monthStartDate->toString("dd-MM-yyyy HH:mm:ss") . " to " . $monthEndDate->toString("dd-MM-yyyy HH:mm:ss") . "\n";
             $urls = array();
             $valuesFormExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters);
             $valuesFormExport[] = new Oara_Curl_Parameter('DateFrom', $monthStartDate->toString("yyyy-MM-dd"));
             $valuesFormExport[] = new Oara_Curl_Parameter('DateTo', $monthEndDate->toString("yyyy-MM-dd"));
             $urls[] = new Oara_Curl_Request('http://affiliate.paidonresults.com/api/transactions?', $valuesFormExport);
             $exportReport = $this->_client->get($urls);
             $exportData = str_getcsv($exportReport[0], "\r\n");
             $num = count($exportData);
             for ($i = 1; $i < $num; $i++) {
                 $transactionExportArray = str_getcsv($exportData[$i], ",");
                 $paid = $transactionExportArray[7] == "YES" ? true : false;
                 if (in_array($transactionExportArray[0], $merchantList) && $paid) {
                     $transactionDate = new Zend_Date($transactionExportArray[8], "dd/MM/yyyy HH:mm:ss");
                     echo $paymentEndDate->toString("yyyy-MM-dd") . "  " . $transactionDate->toString("yyyy-MM-dd") . "\n\n";
                     if ($paymentEndDate->toString("yyyy-MM-dd") == $transactionDate->toString("yyyy-MM-dd")) {
                         $paymentTransactionList[] = $transactionExportArray[2];
                     }
                 }
             }
         }
     }
     return $paymentTransactionList;
 }