Version Notes
- currency issue fixed
- status of partial refunds fixed
- stable version
Download this release
Release Info
| Developer | Quality Unit, LLC |
| Extension | Qualityunit_Pap |
| Version | 1.0.2 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.1 to 1.0.2
app/code/local/Qualityunit/Pap/Block/Saletracking.php
CHANGED
|
@@ -53,6 +53,7 @@ class Qualityunit_Pap_Block_SaleTracking extends Mage_Core_Block_Text {
|
|
| 53 |
sale$i.setTotalCost('".$item['totalcost']."');
|
| 54 |
sale$i.setOrderID('".$item['orderid']."($i)');
|
| 55 |
sale$i.setProductID('".$item['productid']."');
|
|
|
|
| 56 |
sale$i.setCurrency('".(Mage::app()->getStore()->getBaseCurrencyCode())."');\n";
|
| 57 |
|
| 58 |
if (!empty($item['data1'])) $sale_tracker .= "sale$i.setData1('".$item['data1']."');\n";
|
| 53 |
sale$i.setTotalCost('".$item['totalcost']."');
|
| 54 |
sale$i.setOrderID('".$item['orderid']."($i)');
|
| 55 |
sale$i.setProductID('".$item['productid']."');
|
| 56 |
+
sale$i.setStatus('".$item['status']."');
|
| 57 |
sale$i.setCurrency('".(Mage::app()->getStore()->getBaseCurrencyCode())."');\n";
|
| 58 |
|
| 59 |
if (!empty($item['data1'])) $sale_tracker .= "sale$i.setData1('".$item['data1']."');\n";
|
app/code/local/Qualityunit/Pap/Model/Observer.php
CHANGED
|
@@ -12,31 +12,41 @@ class Qualityunit_Pap_Model_Observer {
|
|
| 12 |
if (!$config->isConfigured()) return false;
|
| 13 |
|
| 14 |
try {
|
| 15 |
-
|
|
|
|
| 16 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->pending);
|
|
|
|
| 17 |
}
|
| 18 |
|
| 19 |
if ($order->getStatus() == 'canceled') {
|
| 20 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->declined);
|
|
|
|
| 21 |
}
|
| 22 |
|
| 23 |
// refund
|
| 24 |
-
if (
|
| 25 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->declined);
|
|
|
|
| 26 |
}
|
| 27 |
|
| 28 |
-
|
| 29 |
-
if (
|
| 30 |
-
Mage::getModel('pap/pap')->setOrderStatus($order, $this->pending);
|
| 31 |
-
}
|
| 32 |
-
|
| 33 |
-
if($order->getStatus() == 'complete') {
|
| 34 |
if ($order->getBaseTotalPaid() > 0) { // was paid
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
| 36 |
}
|
| 37 |
else { // completed but not paid
|
| 38 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->pending);
|
| 39 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
}
|
| 41 |
}
|
| 42 |
catch (Exception $e) {
|
|
@@ -46,6 +56,20 @@ class Qualityunit_Pap_Model_Observer {
|
|
| 46 |
return $this;
|
| 47 |
}
|
| 48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
public function thankYouPageViewed($observer) {
|
| 50 |
$quoteId = Mage::getSingleton('checkout/session')->getLastQuoteId();
|
| 51 |
$block = Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('pap_saletracking');
|
| 12 |
if (!$config->isConfigured()) return false;
|
| 13 |
|
| 14 |
try {
|
| 15 |
+
Mage::log("Transaction status changed to ".$order->getStatus());
|
| 16 |
+
if ($order->getStatus() == 'holded' || $order->getStatus() == 'pending') {
|
| 17 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->pending);
|
| 18 |
+
return $this;
|
| 19 |
}
|
| 20 |
|
| 21 |
if ($order->getStatus() == 'canceled') {
|
| 22 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->declined);
|
| 23 |
+
return $this;
|
| 24 |
}
|
| 25 |
|
| 26 |
// refund
|
| 27 |
+
if ($order->getStatus() == 'closed') {
|
| 28 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->declined);
|
| 29 |
+
return $this;
|
| 30 |
}
|
| 31 |
|
| 32 |
+
$refunded = array();
|
| 33 |
+
if ($order->getStatus() == 'complete') {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
if ($order->getBaseTotalPaid() > 0) { // was paid
|
| 35 |
+
if ($order->getBaseTotalRefunded() > 0) { // partial refund handling
|
| 36 |
+
$refunded = $this->getRefundedItemIDs($order);
|
| 37 |
+
}
|
| 38 |
+
Mage::getModel('pap/pap')->setOrderStatus($order, $this->approved, $refunded);
|
| 39 |
}
|
| 40 |
else { // completed but not paid
|
| 41 |
Mage::getModel('pap/pap')->setOrderStatus($order, $this->pending);
|
| 42 |
}
|
| 43 |
+
return $this;
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
// if we are here, it's probably a partial refund
|
| 47 |
+
if ($order->getBaseTotalRefunded() > 0 || $order->getBaseTotalCanceled() > 0) {
|
| 48 |
+
$refunded = $this->getRefundedItemIDs($order);
|
| 49 |
+
Mage::getModel('pap/pap')->setOrderStatus($order, $this->declined, $refunded);
|
| 50 |
}
|
| 51 |
}
|
| 52 |
catch (Exception $e) {
|
| 56 |
return $this;
|
| 57 |
}
|
| 58 |
|
| 59 |
+
private function getRefundedItemIDs($order) {
|
| 60 |
+
$refunded = array();
|
| 61 |
+
$items = $order->getAllVisibleItems();
|
| 62 |
+
|
| 63 |
+
foreach($items as $i=>$item) {
|
| 64 |
+
if ($item->getStatus() == 'Refunded') {
|
| 65 |
+
$productid = $item->getProductId();
|
| 66 |
+
$product = Mage::getModel('catalog/product')->load($productid);
|
| 67 |
+
$refunded[$i] = $product->getSku();
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
return $refunded;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
public function thankYouPageViewed($observer) {
|
| 74 |
$quoteId = Mage::getSingleton('checkout/session')->getLastQuoteId();
|
| 75 |
$block = Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('pap_saletracking');
|
app/code/local/Qualityunit/Pap/Model/Pap.php
CHANGED
|
@@ -5,12 +5,6 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 5 |
public $pending = 'P';
|
| 6 |
public $approved = 'A';
|
| 7 |
|
| 8 |
-
/*protected function _init($resourceModel) {
|
| 9 |
-
Mage::getSingleton('pap/config')->includePapAPI();
|
| 10 |
-
|
| 11 |
-
$this->_setResourceModel($resourceModel);
|
| 12 |
-
}*/
|
| 13 |
-
|
| 14 |
public function getSession() {
|
| 15 |
if (($this->papSession != '') && ($this->papSession != null)) {
|
| 16 |
return $this->papSession;
|
|
@@ -32,7 +26,7 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 32 |
return $this->papSession;
|
| 33 |
}
|
| 34 |
|
| 35 |
-
public function setOrderStatus($order, $status) {
|
| 36 |
Mage::log('Postaffiliatepro: Changing status of order '.$order->getIncrementId()." to '$status'");
|
| 37 |
$session = $this->getSession();
|
| 38 |
|
|
@@ -42,46 +36,99 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 42 |
}
|
| 43 |
|
| 44 |
$request = new Pap_Api_TransactionsGrid($session);
|
| 45 |
-
|
| 46 |
$request->addFilter('orderid', Gpf_Data_Filter::LIKE, $order->getIncrementId().'(%');
|
| 47 |
-
$request->
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
$transaction = new Pap_Api_Transaction($session);
|
| 54 |
-
if ($
|
| 55 |
-
$
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
$
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
$transaction->approveByOrderId('');
|
| 63 |
}
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
for ($i = 0; $i < $loop; $i++) {
|
| 69 |
-
$transaction->setOrderID($order->getIncrementId()."($i)");
|
| 70 |
$transaction->declineByOrderId('');
|
| 71 |
}
|
| 72 |
}
|
| 73 |
return;
|
| 74 |
}
|
| 75 |
|
| 76 |
-
|
| 77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
$
|
| 82 |
-
|
| 83 |
-
|
|
|
|
| 84 |
}
|
|
|
|
| 85 |
}
|
| 86 |
|
| 87 |
public function getOrderSaleDetails($order) {
|
|
@@ -91,9 +138,11 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 91 |
$couponcode = $quote->getCouponCode();
|
| 92 |
|
| 93 |
$sales = array();
|
|
|
|
| 94 |
|
| 95 |
if ($config->getPerProduct()) { // per product tracking
|
| 96 |
$items = $order->getAllVisibleItems();
|
|
|
|
| 97 |
foreach($items as $i=>$item) {
|
| 98 |
$productid = $item->getProductId();
|
| 99 |
$product = Mage::getModel('catalog/product')->load($productid);
|
|
@@ -106,6 +155,7 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 106 |
$sales[$i]['orderid'] = $order->getIncrementId();
|
| 107 |
$sales[$i]['productid'] = $product->getSku();
|
| 108 |
$sales[$i]['couponcode'] = $couponcode;
|
|
|
|
| 109 |
|
| 110 |
for ($n = 1; $n < 6; $n++) {
|
| 111 |
if ($config->getData($n)) {
|
|
@@ -117,13 +167,14 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 117 |
else { // per order tracking
|
| 118 |
$sales[0] = array();
|
| 119 |
|
| 120 |
-
$subtotal = $order->
|
| 121 |
$discount = abs($order->getBaseDiscountAmount());
|
| 122 |
|
| 123 |
$sales[0]['totalcost'] = $subtotal - $discount;
|
| 124 |
$sales[0]['orderid'] = $order->getIncrementId();
|
| 125 |
$sales[0]['productid'] = null;
|
| 126 |
$sales[0]['couponcode'] = $couponcode;
|
|
|
|
| 127 |
|
| 128 |
for ($n = 1; $n < 6; $n++) {
|
| 129 |
if ($config->getData($n)) {
|
|
@@ -178,6 +229,7 @@ class Qualityunit_Pap_Model_Pap extends Mage_Core_Model_Abstract {
|
|
| 178 |
$sale->setTotalCost($item['totalcost']);
|
| 179 |
$sale->setOrderID($item['orderid']."($i)");
|
| 180 |
$sale->setProductID($item['productid']);
|
|
|
|
| 181 |
if ($item['couponcode']) $sale->setCouponCode($item['couponcode']);
|
| 182 |
if ($item['data1']) $sale->setData1($item['data1']);
|
| 183 |
if ($item['data2']) $sale->setData2($item['data2']);
|
| 5 |
public $pending = 'P';
|
| 6 |
public $approved = 'A';
|
| 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
public function getSession() {
|
| 9 |
if (($this->papSession != '') && ($this->papSession != null)) {
|
| 10 |
return $this->papSession;
|
| 26 |
return $this->papSession;
|
| 27 |
}
|
| 28 |
|
| 29 |
+
public function setOrderStatus($order, $status, $refunded = array()) {
|
| 30 |
Mage::log('Postaffiliatepro: Changing status of order '.$order->getIncrementId()." to '$status'");
|
| 31 |
$session = $this->getSession();
|
| 32 |
|
| 36 |
}
|
| 37 |
|
| 38 |
$request = new Pap_Api_TransactionsGrid($session);
|
|
|
|
| 39 |
$request->addFilter('orderid', Gpf_Data_Filter::LIKE, $order->getIncrementId().'(%');
|
| 40 |
+
$request->setLimit(0, 900);
|
| 41 |
+
try {
|
| 42 |
+
$request->sendNow();
|
| 43 |
+
$grid = $request->getGrid();
|
| 44 |
+
$recordset = $grid->getRecordset();
|
| 45 |
+
|
| 46 |
+
$ids = array();
|
| 47 |
+
$refundIDs = array();
|
| 48 |
+
$approveIDs = array();
|
| 49 |
+
foreach($recordset as $record) {
|
| 50 |
+
if (count($refunded)) {
|
| 51 |
+
if ($status == 'A') {
|
| 52 |
+
if (in_array($record->get('productid'), $refunded)) {
|
| 53 |
+
$refundIDs[] = $record->get('id');
|
| 54 |
+
}
|
| 55 |
+
else {
|
| 56 |
+
$approveIDs[] = $record->get('id');
|
| 57 |
+
}
|
| 58 |
+
continue;
|
| 59 |
+
}
|
| 60 |
+
elseif ($status == 'D') {
|
| 61 |
+
if (in_array($record->get('productid'), $refunded)) {
|
| 62 |
+
$refundIDs[] = $record->get('id');
|
| 63 |
+
}
|
| 64 |
+
continue;
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
$ids[] = $record->get('id');
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
catch (Exception $e) {
|
| 71 |
+
Mage::log('An API error while searching for the order with postfix: '.$e->getMessage());
|
| 72 |
+
return false;
|
| 73 |
+
}
|
| 74 |
|
| 75 |
$transaction = new Pap_Api_Transaction($session);
|
| 76 |
+
if (count($refundIDs) == 0 && count($approveIDs) == 0 && count($ids) == 0) {
|
| 77 |
+
$items = $order->getAllVisibleItems();
|
| 78 |
+
foreach ($items as $i => $item) {
|
| 79 |
+
$productid = $item->getProductId();
|
| 80 |
+
$product = Mage::getModel('catalog/product')->load($productid);
|
| 81 |
+
|
| 82 |
+
$transaction->setOrderID($order->getIncrementId()."($i)");
|
| 83 |
+
if ($status == $this->approved) {
|
| 84 |
+
if (count($refunded) && in_array($product->getSku(), $refunded)) { // if we are refunding only specific order items
|
| 85 |
+
$transaction->declineByOrderId('');
|
| 86 |
+
continue;
|
| 87 |
+
}
|
| 88 |
$transaction->approveByOrderId('');
|
| 89 |
}
|
| 90 |
+
if ($status == $this->declined) {
|
| 91 |
+
if (count($refunded) && !in_array($product->getSku(), $refunded)) { // if we are refunding only specific order items
|
| 92 |
+
continue;
|
| 93 |
+
}
|
|
|
|
|
|
|
| 94 |
$transaction->declineByOrderId('');
|
| 95 |
}
|
| 96 |
}
|
| 97 |
return;
|
| 98 |
}
|
| 99 |
|
| 100 |
+
try {
|
| 101 |
+
Mage::log('We will be changing status of IDs: '.print_r($ids,true));
|
| 102 |
+
$request = new Gpf_Rpc_FormRequest('Pap_Merchants_Transaction_TransactionsForm', 'changeStatus', $session);
|
| 103 |
+
if (!empty($refundIDs)) {
|
| 104 |
+
$request->addParam('ids',new Gpf_Rpc_Array($refundIDs));
|
| 105 |
+
$request->addParam('status','D');
|
| 106 |
+
$request->sendNow();
|
| 107 |
+
}
|
| 108 |
+
if (!empty($approveIDs)) {
|
| 109 |
+
$request->addParam('ids',new Gpf_Rpc_Array($approveIDs));
|
| 110 |
+
$request->addParam('status','A');
|
| 111 |
+
$request->sendNow();
|
| 112 |
+
}
|
| 113 |
+
$request->addParam('ids',new Gpf_Rpc_Array($ids));
|
| 114 |
+
$request->addParam('status',$status);
|
| 115 |
+
$request->sendNow();
|
| 116 |
+
return true;
|
| 117 |
+
}
|
| 118 |
+
catch (Exception $e) {
|
| 119 |
+
Mage::log('API error while status changing: '.$e->getMessage());
|
| 120 |
+
return false;
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
|
| 124 |
+
private function getStatus($state) {
|
| 125 |
+
if ($state === Mage_Sales_Model_Order::STATE_PENDING_PAYMENT || $state === Mage_Sales_Model_Order::STATE_NEW || $state === Mage_Sales_Model_Order::STATE_PROCESSING) {
|
| 126 |
+
return $this->pending;
|
| 127 |
+
}
|
| 128 |
+
if ($state === Mage_Sales_Model_Order::STATE_COMPLETE) {
|
| 129 |
+
return $this->approved;
|
| 130 |
}
|
| 131 |
+
return $this->declined;
|
| 132 |
}
|
| 133 |
|
| 134 |
public function getOrderSaleDetails($order) {
|
| 138 |
$couponcode = $quote->getCouponCode();
|
| 139 |
|
| 140 |
$sales = array();
|
| 141 |
+
$status = $this->getStatus($order->getState());
|
| 142 |
|
| 143 |
if ($config->getPerProduct()) { // per product tracking
|
| 144 |
$items = $order->getAllVisibleItems();
|
| 145 |
+
|
| 146 |
foreach($items as $i=>$item) {
|
| 147 |
$productid = $item->getProductId();
|
| 148 |
$product = Mage::getModel('catalog/product')->load($productid);
|
| 155 |
$sales[$i]['orderid'] = $order->getIncrementId();
|
| 156 |
$sales[$i]['productid'] = $product->getSku();
|
| 157 |
$sales[$i]['couponcode'] = $couponcode;
|
| 158 |
+
$sales[$i]['status'] = $status;
|
| 159 |
|
| 160 |
for ($n = 1; $n < 6; $n++) {
|
| 161 |
if ($config->getData($n)) {
|
| 167 |
else { // per order tracking
|
| 168 |
$sales[0] = array();
|
| 169 |
|
| 170 |
+
$subtotal = $order->getBaseSubtotal();
|
| 171 |
$discount = abs($order->getBaseDiscountAmount());
|
| 172 |
|
| 173 |
$sales[0]['totalcost'] = $subtotal - $discount;
|
| 174 |
$sales[0]['orderid'] = $order->getIncrementId();
|
| 175 |
$sales[0]['productid'] = null;
|
| 176 |
$sales[0]['couponcode'] = $couponcode;
|
| 177 |
+
$sales[0]['status'] = $status;
|
| 178 |
|
| 179 |
for ($n = 1; $n < 6; $n++) {
|
| 180 |
if ($config->getData($n)) {
|
| 229 |
$sale->setTotalCost($item['totalcost']);
|
| 230 |
$sale->setOrderID($item['orderid']."($i)");
|
| 231 |
$sale->setProductID($item['productid']);
|
| 232 |
+
$sale->setStatus($item['status']);
|
| 233 |
if ($item['couponcode']) $sale->setCouponCode($item['couponcode']);
|
| 234 |
if ($item['data1']) $sale->setData1($item['data1']);
|
| 235 |
if ($item['data2']) $sale->setData2($item['data2']);
|
lib/PAP/PapApi.class.php
CHANGED
|
@@ -9,8 +9,8 @@
|
|
| 9 |
* Version 1.0 (the "License"); you may not use this file except in compliance
|
| 10 |
* with the License. You may obtain a copy of the License at
|
| 11 |
* http://www.qualityunit.com/licenses/gpf
|
| 12 |
-
* Generated on: 2015-
|
| 13 |
-
* PAP version: 5.
|
| 14 |
*
|
| 15 |
*/
|
| 16 |
|
|
@@ -2210,6 +2210,11 @@ if (!class_exists('Gpf_Rpc_Form', false)) {
|
|
| 2210 |
return $record->get(self::FIELD_VALUE);
|
| 2211 |
}
|
| 2212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2213 |
public function getFieldError($name) {
|
| 2214 |
$record = $this->fields->getRecord($name);
|
| 2215 |
return $record->get(self::FIELD_ERROR);
|
|
@@ -3547,7 +3552,7 @@ if (!class_exists('Gpf_Api_Session', false)) {
|
|
| 3547 |
* @return boolean true if user was successfully logged
|
| 3548 |
*/
|
| 3549 |
private function authenticateRequest($username, $password, $authtoken, $roleType = self::MERCHANT, $languageCode = null) {
|
| 3550 |
-
$request = new Gpf_Rpc_FormRequest(
|
| 3551 |
$request->setUrl($this->url);
|
| 3552 |
if ($username != '' && $password != '') {
|
| 3553 |
$request->setField('username', $username);
|
|
@@ -3592,7 +3597,7 @@ if (!class_exists('Gpf_Api_Session', false)) {
|
|
| 3592 |
* @return string version of installed application
|
| 3593 |
*/
|
| 3594 |
public function getAppVersion() {
|
| 3595 |
-
$request = new Gpf_Rpc_FormRequest(
|
| 3596 |
$request->setUrl($this->url);
|
| 3597 |
|
| 3598 |
try {
|
|
@@ -3647,6 +3652,10 @@ if (!class_exists('Gpf_Api_Session', false)) {
|
|
| 3647 |
return $url . '&S=' . $this->getSessionId();
|
| 3648 |
}
|
| 3649 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3650 |
/**
|
| 3651 |
* Check API version
|
| 3652 |
* (has to be protected because of Drupal integration)
|
|
@@ -3710,6 +3719,11 @@ if (!class_exists('Gpf_Rpc_Json', false)) {
|
|
| 3710 |
* Behavior switch for Services_JSON::decode()
|
| 3711 |
*/
|
| 3712 |
const SERVICES_JSON_SUPPRESS_ERRORS = 32;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3713 |
|
| 3714 |
/**
|
| 3715 |
* constructs a new JSON instance
|
|
@@ -3731,6 +3745,8 @@ if (!class_exists('Gpf_Rpc_Json', false)) {
|
|
| 3731 |
{
|
| 3732 |
$this->use = $use;
|
| 3733 |
}
|
|
|
|
|
|
|
| 3734 |
|
| 3735 |
/**
|
| 3736 |
* convert a string from one UTF-16 char to one UTF-8 char
|
|
@@ -4387,6 +4403,21 @@ if (!class_exists('Gpf_Rpc_Json', false)) {
|
|
| 4387 |
}
|
| 4388 |
return false;
|
| 4389 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4390 |
}
|
| 4391 |
|
| 4392 |
class Gpf_Rpc_Json_Error {
|
|
@@ -4453,6 +4484,10 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4453 |
const FIELD_VALUE = "value";
|
| 4454 |
const FIELD_ERROR = "error";
|
| 4455 |
const FIELD_VALUES = "values";
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4456 |
|
| 4457 |
/**
|
| 4458 |
* @var Gpf_Data_IndexedRecordSet
|
|
@@ -4467,14 +4502,16 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4467 |
$header->add(self::FIELD_NAME);
|
| 4468 |
$header->add(self::FIELD_VALUE);
|
| 4469 |
$header->add(self::FIELD_VALUES);
|
|
|
|
| 4470 |
$header->add(self::FIELD_ERROR);
|
| 4471 |
|
| 4472 |
$this->fields->setHeader($header);
|
| 4473 |
}
|
| 4474 |
|
| 4475 |
-
public function setField($name, $value) {
|
| 4476 |
$record = $this->fields->createRecord($name);
|
| 4477 |
$record->set(self::FIELD_VALUE, $value);
|
|
|
|
| 4478 |
|
| 4479 |
$this->fields->add($record);
|
| 4480 |
}
|
|
@@ -4484,7 +4521,7 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4484 |
$record = $this->fields->getRecord($name);
|
| 4485 |
return $record->get(self::FIELD_VALUE);
|
| 4486 |
} catch(Exception $e) {
|
| 4487 |
-
return
|
| 4488 |
}
|
| 4489 |
}
|
| 4490 |
|
|
@@ -4525,7 +4562,7 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4525 |
protected function fillFieldsToGridRequest($request) {
|
| 4526 |
foreach($this->fields as $field) {
|
| 4527 |
if($field->get(self::FIELD_VALUE) != '') {
|
| 4528 |
-
$request->addFilter($field->get(self::FIELD_NAME),
|
| 4529 |
}
|
| 4530 |
}
|
| 4531 |
}
|
|
@@ -4587,7 +4624,7 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4587 |
$request = new Gpf_Rpc_FormRequest($this->class, $method, $this->session);
|
| 4588 |
$this->beforeCallRequest($request);
|
| 4589 |
foreach($this->getFields() as $field) {
|
| 4590 |
-
if($field->get(self::FIELD_VALUE)
|
| 4591 |
$request->setField($field->get(self::FIELD_NAME), $field->get(self::FIELD_VALUE));
|
| 4592 |
}
|
| 4593 |
}
|
|
@@ -4654,6 +4691,9 @@ if (!class_exists('Pap_Api_Object', false)) {
|
|
| 4654 |
|
| 4655 |
return $this->callRequest("add");
|
| 4656 |
}
|
|
|
|
|
|
|
|
|
|
| 4657 |
|
| 4658 |
protected function beforeCallRequest(Gpf_Rpc_FormRequest $request) {
|
| 4659 |
}
|
|
@@ -4694,11 +4734,7 @@ if (!class_exists('Pap_Api_BannersGrid', false)) {
|
|
| 4694 |
if (!class_exists('Pap_Api_Affiliate', false)) {
|
| 4695 |
class Pap_Api_Affiliate extends Pap_Api_Object {
|
| 4696 |
|
| 4697 |
-
const OPERATOR_EQUALS = '=';
|
| 4698 |
-
const OPERATOR_LIKE = 'L';
|
| 4699 |
-
|
| 4700 |
private $dataValues = null;
|
| 4701 |
-
private $equalsFields = array();
|
| 4702 |
|
| 4703 |
public function __construct(Gpf_Api_Session $session) {
|
| 4704 |
if($session->getRoleType() == Gpf_Api_Session::AFFILIATE) {
|
|
@@ -4709,20 +4745,9 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4709 |
|
| 4710 |
parent::__construct($session);
|
| 4711 |
|
| 4712 |
-
$this->addEqualField('username');
|
| 4713 |
-
|
| 4714 |
$this->getDataFields();
|
| 4715 |
}
|
| 4716 |
|
| 4717 |
-
private function addEqualField($name) {
|
| 4718 |
-
$this->equalsFields[] = $name;
|
| 4719 |
-
$testObj= new StdClass();
|
| 4720 |
-
}
|
| 4721 |
-
|
| 4722 |
-
private function getEqualFields() {
|
| 4723 |
-
return $this->equalsFields;
|
| 4724 |
-
}
|
| 4725 |
-
|
| 4726 |
public function getUserid() { return $this->getField("userid"); }
|
| 4727 |
public function setUserid($value) {
|
| 4728 |
$this->setField("userid", $value);
|
|
@@ -4731,11 +4756,8 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4731 |
|
| 4732 |
public function getRefid() { return $this->getField("refid"); }
|
| 4733 |
|
| 4734 |
-
public function setRefid($value, $operator = self::
|
| 4735 |
-
$this->setField('refid', $value);
|
| 4736 |
-
if ($operator == self::OPERATOR_EQUALS) {
|
| 4737 |
-
$this->addEqualField('refid');
|
| 4738 |
-
}
|
| 4739 |
}
|
| 4740 |
|
| 4741 |
public function getStatus() { return $this->getField("rstatus"); }
|
|
@@ -4753,13 +4775,12 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4753 |
public function getPhoto() { return $this->getField("photo"); }
|
| 4754 |
public function setPhoto($value) { $this->setField("photo", $value); }
|
| 4755 |
|
|
|
|
|
|
|
| 4756 |
public function getUsername() { return $this->getField("username"); }
|
| 4757 |
|
| 4758 |
-
public function setUsername($value, $operator = self::
|
| 4759 |
-
$this->setField('username', $value);
|
| 4760 |
-
if ($operator == self::OPERATOR_EQUALS) {
|
| 4761 |
-
$this->addEqualField('username');
|
| 4762 |
-
}
|
| 4763 |
}
|
| 4764 |
|
| 4765 |
public function getPassword() { return $this->getField("rpassword"); }
|
|
@@ -4767,20 +4788,14 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4767 |
|
| 4768 |
public function getFirstname() { return $this->getField("firstname"); }
|
| 4769 |
|
| 4770 |
-
public function setFirstname($value, $operator = self::
|
| 4771 |
-
$this->setField('firstname', $value);
|
| 4772 |
-
if ($operator == self::OPERATOR_EQUALS) {
|
| 4773 |
-
$this->addEqualField('firstname');
|
| 4774 |
-
}
|
| 4775 |
}
|
| 4776 |
|
| 4777 |
public function getLastname() { return $this->getField("lastname"); }
|
| 4778 |
|
| 4779 |
-
public function setLastname($value, $operator = self::
|
| 4780 |
-
$this->setField('lastname', $value);
|
| 4781 |
-
if ($operator == self::OPERATOR_EQUALS) {
|
| 4782 |
-
$this->addEqualField('lastname');
|
| 4783 |
-
}
|
| 4784 |
}
|
| 4785 |
|
| 4786 |
public function getParentUserId() { return $this->getField("parentuserid"); }
|
|
@@ -4792,18 +4807,19 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4792 |
public function getNotificationEmail() { return $this->getField("notificationemail"); }
|
| 4793 |
public function setNotificationEmail($value) { $this->setField("notificationemail", $value); }
|
| 4794 |
|
| 4795 |
-
public function
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4796 |
|
| 4797 |
public function getData($index) {
|
| 4798 |
$this->checkIndex($index);
|
| 4799 |
return $this->getField("data$index");
|
| 4800 |
}
|
| 4801 |
-
public function setData($index, $value, $operator = self::
|
| 4802 |
$this->checkIndex($index);
|
| 4803 |
-
$this->setField("data$index", $value);
|
| 4804 |
-
if ($operator == self::OPERATOR_EQUALS) {
|
| 4805 |
-
$this->addEqualField('data' . $index);
|
| 4806 |
-
}
|
| 4807 |
}
|
| 4808 |
|
| 4809 |
public function setPayoutOptionField($code, $value) {
|
|
@@ -4871,18 +4887,6 @@ if (!class_exists('Pap_Api_Affiliate', false)) {
|
|
| 4871 |
return new Pap_Api_AffiliatesGrid($this->getSession());
|
| 4872 |
}
|
| 4873 |
|
| 4874 |
-
protected function fillFieldsToGridRequest($request) {
|
| 4875 |
-
foreach(parent::getFields() as $field) {
|
| 4876 |
-
if($field->get(self::FIELD_VALUE) != '') {
|
| 4877 |
-
$operator = self::OPERATOR_LIKE;
|
| 4878 |
-
if (in_array($field->get(self::FIELD_NAME), $this->getEqualFields())) {
|
| 4879 |
-
$operator = self::OPERATOR_EQUALS;
|
| 4880 |
-
}
|
| 4881 |
-
$request->addFilter($field->get(self::FIELD_NAME), $operator, $field->get(self::FIELD_VALUE));
|
| 4882 |
-
}
|
| 4883 |
-
}
|
| 4884 |
-
}
|
| 4885 |
-
|
| 4886 |
/**
|
| 4887 |
* retrieves names and states of data1..data25 fields
|
| 4888 |
*
|
|
@@ -4971,6 +4975,8 @@ if (!class_exists('Pap_Api_TransactionsGrid', false)) {
|
|
| 4971 |
|
| 4972 |
if (!class_exists('Pap_Api_Transaction', false)) {
|
| 4973 |
class Pap_Api_Transaction extends Pap_Api_Object {
|
|
|
|
|
|
|
| 4974 |
|
| 4975 |
private $dataValues = null;
|
| 4976 |
|
|
@@ -5015,34 +5021,50 @@ if (!class_exists('Pap_Api_Transaction', false)) {
|
|
| 5015 |
public function setCountryCode($value) { $this->setField("countrycode", $value); }
|
| 5016 |
|
| 5017 |
public function getDateInserted() { return $this->getField("dateinserted"); }
|
| 5018 |
-
public function setDateInserted($value
|
|
|
|
|
|
|
| 5019 |
|
| 5020 |
public function getDateApproved() { return $this->getField("dateapproved"); }
|
| 5021 |
-
public function setDateApproved($value
|
|
|
|
|
|
|
| 5022 |
|
| 5023 |
public function getPayoutStatus() { return $this->getField("payoutstatus"); }
|
| 5024 |
public function setPayoutStatus($value) { $this->setField("payoutstatus", $value); }
|
| 5025 |
|
| 5026 |
public function getPayoutHistoryId() { return $this->getField("payouthistoryid"); }
|
| 5027 |
-
public function setPayoutHistoryId($value
|
|
|
|
|
|
|
| 5028 |
|
| 5029 |
public function getRefererUrl() { return $this->getField("refererurl"); }
|
| 5030 |
-
public function setRefererUrl($value
|
|
|
|
|
|
|
| 5031 |
|
| 5032 |
public function getIp() { return $this->getField("ip"); }
|
| 5033 |
-
public function setIp($value
|
|
|
|
|
|
|
| 5034 |
|
| 5035 |
public function getBrowser() { return $this->getField("browser"); }
|
| 5036 |
-
public function setBrowser($value
|
|
|
|
|
|
|
| 5037 |
|
| 5038 |
public function getCommission() { return $this->getField("commission"); }
|
| 5039 |
public function setCommission($value) { $this->setField("commission", $value); }
|
| 5040 |
|
| 5041 |
public function getOrderId() { return $this->getField("orderid"); }
|
| 5042 |
-
public function setOrderId($value
|
|
|
|
|
|
|
| 5043 |
|
| 5044 |
public function getProductId() { return $this->getField("productid"); }
|
| 5045 |
-
public function setProductId($value
|
|
|
|
|
|
|
| 5046 |
|
| 5047 |
public function getTotalCost() { return $this->getField("totalcost"); }
|
| 5048 |
public function setTotalCost($value) { $this->setField("totalcost", $value); }
|
|
@@ -5051,37 +5073,57 @@ if (!class_exists('Pap_Api_Transaction', false)) {
|
|
| 5051 |
public function setRecurringCommid($value) { $this->setField("recurringcommid", $value); }
|
| 5052 |
|
| 5053 |
public function getFirstClickTime() { return $this->getField("firstclicktime"); }
|
| 5054 |
-
public function setFirstClickTime($value
|
|
|
|
|
|
|
| 5055 |
|
| 5056 |
public function getFirstClickReferer() { return $this->getField("firstclickreferer"); }
|
| 5057 |
-
public function setFirstClickReferer($value
|
|
|
|
|
|
|
| 5058 |
|
| 5059 |
public function getFirstClickIp() { return $this->getField("firstclickip"); }
|
| 5060 |
-
public function setFirstClickIp($value
|
|
|
|
|
|
|
| 5061 |
|
| 5062 |
public function getFirstClickData1() { return $this->getField("firstclickdata1"); }
|
| 5063 |
-
public function setFirstClickData1($value
|
|
|
|
|
|
|
| 5064 |
|
| 5065 |
public function getFirstClickData2() { return $this->getField("firstclickdata2"); }
|
| 5066 |
-
public function setFirstClickData2($value
|
|
|
|
|
|
|
| 5067 |
|
| 5068 |
public function getClickCount() { return $this->getField("clickcount"); }
|
| 5069 |
public function setClickCount($value) { $this->setField("clickcount", $value); }
|
| 5070 |
|
| 5071 |
public function getLastClickTime() { return $this->getField("lastclicktime"); }
|
| 5072 |
-
public function setLastClickTime($value
|
|
|
|
|
|
|
| 5073 |
|
| 5074 |
public function getLastClickReferer() { return $this->getField("lastclickreferer"); }
|
| 5075 |
-
public function setLastClickReferer($value
|
|
|
|
|
|
|
| 5076 |
|
| 5077 |
public function getLastClickIp() { return $this->getField("lastclickip"); }
|
| 5078 |
-
public function setLastClickIp($value
|
|
|
|
|
|
|
| 5079 |
|
| 5080 |
public function getLastClickData1() { return $this->getField("lastclickdata1"); }
|
| 5081 |
-
public function setLastClickData1($value
|
|
|
|
|
|
|
| 5082 |
|
| 5083 |
public function getLastClickData2() { return $this->getField("lastclickdata2"); }
|
| 5084 |
-
public function setLastClickData2($value
|
|
|
|
|
|
|
| 5085 |
|
| 5086 |
public function getTrackMethod() { return $this->getField("trackmethod"); }
|
| 5087 |
public function setTrackMethod($value) { $this->setField("trackmethod", $value); }
|
|
@@ -5105,10 +5147,14 @@ if (!class_exists('Pap_Api_Transaction', false)) {
|
|
| 5105 |
public function setCommTypeId($value) { $this->setField("commtypeid", $value); }
|
| 5106 |
|
| 5107 |
public function getMerchantNote() { return $this->getField("merchantnote"); }
|
| 5108 |
-
public function setMerchantNote($value
|
|
|
|
|
|
|
| 5109 |
|
| 5110 |
public function getSystemNote() { return $this->getField("systemnote"); }
|
| 5111 |
-
public function setSystemNote($value
|
|
|
|
|
|
|
| 5112 |
|
| 5113 |
public function getParentTransactionId() { return $this->getField("parenttransid"); }
|
| 5114 |
public function setParentTransactionId($value) { $this->setField("parenttransid", $value); }
|
|
@@ -5117,9 +5163,9 @@ if (!class_exists('Pap_Api_Transaction', false)) {
|
|
| 5117 |
$this->checkIndex($index);
|
| 5118 |
return $this->getField("data$index");
|
| 5119 |
}
|
| 5120 |
-
public function setData($index, $value) {
|
| 5121 |
$this->checkIndex($index);
|
| 5122 |
-
$this->setField("data$index", $value);
|
| 5123 |
}
|
| 5124 |
|
| 5125 |
/**
|
|
@@ -5207,6 +5253,9 @@ if (!class_exists('Pap_Api_Transaction', false)) {
|
|
| 5207 |
if($this->getMultiTierCreation() == '') {
|
| 5208 |
$this->setMultiTierCreation('N');
|
| 5209 |
}
|
|
|
|
|
|
|
|
|
|
| 5210 |
}
|
| 5211 |
|
| 5212 |
protected function getPrimaryKey() {
|
|
@@ -6188,14 +6237,14 @@ if (!class_exists('Pap_Api_ClickTracker', false)) {
|
|
| 6188 |
|
| 6189 |
if (!class_exists('Pap_Api_RecurringCommission', false)) {
|
| 6190 |
class Pap_Api_RecurringCommission extends Pap_Api_Object {
|
| 6191 |
-
|
| 6192 |
public function __construct(Gpf_Api_Session $session) {
|
| 6193 |
parent::__construct($session);
|
| 6194 |
$this->class = 'Pap_Features_RecurringCommissions_RecurringCommissionsForm';
|
| 6195 |
}
|
| 6196 |
|
| 6197 |
-
public function setOrderId($value) {
|
| 6198 |
-
$this->setField('orderid', $value);
|
| 6199 |
}
|
| 6200 |
|
| 6201 |
public function setTotalCost($value) {
|
|
@@ -6212,8 +6261,8 @@ if (!class_exists('Pap_Api_RecurringCommission', false)) {
|
|
| 6212 |
|
| 6213 |
protected function getGridRequest() {
|
| 6214 |
return new Pap_Api_RecurringCommissionsGrid($this->getSession());
|
| 6215 |
-
}
|
| 6216 |
-
|
| 6217 |
public function createCommissions() {
|
| 6218 |
$request = new Gpf_Rpc_ActionRequest('Pap_Features_RecurringCommissions_RecurringCommissionsForm',
|
| 6219 |
'createCommissions', $this->getSession());
|
|
@@ -6229,6 +6278,19 @@ if (!class_exists('Pap_Api_RecurringCommission', false)) {
|
|
| 6229 |
throw new Gpf_Exception($action->getErrorMessage());
|
| 6230 |
}
|
| 6231 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6232 |
}
|
| 6233 |
|
| 6234 |
} //end Pap_Api_RecurringCommission
|
|
@@ -6367,6 +6429,19 @@ if (!class_exists('Pap_Api_PayoutsHistoryGrid', false)) {
|
|
| 6367 |
|
| 6368 |
} //end Pap_Api_PayoutsHistoryGrid
|
| 6369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6370 |
if (!class_exists('Gpf_Net_Http_Client', false)) {
|
| 6371 |
class Gpf_Net_Http_Client extends Gpf_Net_Http_ClientBase {
|
| 6372 |
|
|
@@ -6380,6 +6455,6 @@ if (!class_exists('Gpf_Net_Http_Client', false)) {
|
|
| 6380 |
}
|
| 6381 |
/*
|
| 6382 |
VERSION
|
| 6383 |
-
|
| 6384 |
*/
|
| 6385 |
?>
|
| 9 |
* Version 1.0 (the "License"); you may not use this file except in compliance
|
| 10 |
* with the License. You may obtain a copy of the License at
|
| 11 |
* http://www.qualityunit.com/licenses/gpf
|
| 12 |
+
* Generated on: 2015-10-29 10:16:38
|
| 13 |
+
* PAP version: 5.4.20.6, GPF version: 1.3.28.0
|
| 14 |
*
|
| 15 |
*/
|
| 16 |
|
| 2210 |
return $record->get(self::FIELD_VALUE);
|
| 2211 |
}
|
| 2212 |
|
| 2213 |
+
public function getFieldValues($name) {
|
| 2214 |
+
$record = $this->fields->getRecord($name);
|
| 2215 |
+
return $record->get(self::FIELD_VALUES);
|
| 2216 |
+
}
|
| 2217 |
+
|
| 2218 |
public function getFieldError($name) {
|
| 2219 |
$record = $this->fields->getRecord($name);
|
| 2220 |
return $record->get(self::FIELD_ERROR);
|
| 3552 |
* @return boolean true if user was successfully logged
|
| 3553 |
*/
|
| 3554 |
private function authenticateRequest($username, $password, $authtoken, $roleType = self::MERCHANT, $languageCode = null) {
|
| 3555 |
+
$request = new Gpf_Rpc_FormRequest($this->getAuthenticateClassName(), self::AUTHENTICATE_METHOD_NAME, $this);
|
| 3556 |
$request->setUrl($this->url);
|
| 3557 |
if ($username != '' && $password != '') {
|
| 3558 |
$request->setField('username', $username);
|
| 3597 |
* @return string version of installed application
|
| 3598 |
*/
|
| 3599 |
public function getAppVersion() {
|
| 3600 |
+
$request = new Gpf_Rpc_FormRequest($this->getAuthenticateClassName(), "getAppVersion");
|
| 3601 |
$request->setUrl($this->url);
|
| 3602 |
|
| 3603 |
try {
|
| 3652 |
return $url . '&S=' . $this->getSessionId();
|
| 3653 |
}
|
| 3654 |
|
| 3655 |
+
protected function getAuthenticateClassName() {
|
| 3656 |
+
return self::AUTHENTICATE_CLASS_NAME;
|
| 3657 |
+
}
|
| 3658 |
+
|
| 3659 |
/**
|
| 3660 |
* Check API version
|
| 3661 |
* (has to be protected because of Drupal integration)
|
| 3719 |
* Behavior switch for Services_JSON::decode()
|
| 3720 |
*/
|
| 3721 |
const SERVICES_JSON_SUPPRESS_ERRORS = 32;
|
| 3722 |
+
|
| 3723 |
+
/**
|
| 3724 |
+
* @var Gpf_Rpc_Json
|
| 3725 |
+
*/
|
| 3726 |
+
private static $instance;
|
| 3727 |
|
| 3728 |
/**
|
| 3729 |
* constructs a new JSON instance
|
| 3745 |
{
|
| 3746 |
$this->use = $use;
|
| 3747 |
}
|
| 3748 |
+
|
| 3749 |
+
|
| 3750 |
|
| 3751 |
/**
|
| 3752 |
* convert a string from one UTF-16 char to one UTF-8 char
|
| 4403 |
}
|
| 4404 |
return false;
|
| 4405 |
}
|
| 4406 |
+
|
| 4407 |
+
public static function encodeStatic($var) {
|
| 4408 |
+
return self::getInstance()->encode($var);
|
| 4409 |
+
}
|
| 4410 |
+
|
| 4411 |
+
public static function decodeStatic($var) {
|
| 4412 |
+
return self::getInstance()->decode($var);
|
| 4413 |
+
}
|
| 4414 |
+
|
| 4415 |
+
private static function getInstance() {
|
| 4416 |
+
if (self::$instance === null) {
|
| 4417 |
+
self::$instance = new self;
|
| 4418 |
+
}
|
| 4419 |
+
return self::$instance;
|
| 4420 |
+
}
|
| 4421 |
}
|
| 4422 |
|
| 4423 |
class Gpf_Rpc_Json_Error {
|
| 4484 |
const FIELD_VALUE = "value";
|
| 4485 |
const FIELD_ERROR = "error";
|
| 4486 |
const FIELD_VALUES = "values";
|
| 4487 |
+
const FIELD_OPERATOR = 'operator';
|
| 4488 |
+
|
| 4489 |
+
const OPERATOR_EQUALS = '=';
|
| 4490 |
+
const OPERATOR_LIKE = 'L';
|
| 4491 |
|
| 4492 |
/**
|
| 4493 |
* @var Gpf_Data_IndexedRecordSet
|
| 4502 |
$header->add(self::FIELD_NAME);
|
| 4503 |
$header->add(self::FIELD_VALUE);
|
| 4504 |
$header->add(self::FIELD_VALUES);
|
| 4505 |
+
$header->add(self::FIELD_OPERATOR);
|
| 4506 |
$header->add(self::FIELD_ERROR);
|
| 4507 |
|
| 4508 |
$this->fields->setHeader($header);
|
| 4509 |
}
|
| 4510 |
|
| 4511 |
+
public function setField($name, $value, $operator = self::OPERATOR_EQUALS) {
|
| 4512 |
$record = $this->fields->createRecord($name);
|
| 4513 |
$record->set(self::FIELD_VALUE, $value);
|
| 4514 |
+
$record->set(self::FIELD_OPERATOR, $operator);
|
| 4515 |
|
| 4516 |
$this->fields->add($record);
|
| 4517 |
}
|
| 4521 |
$record = $this->fields->getRecord($name);
|
| 4522 |
return $record->get(self::FIELD_VALUE);
|
| 4523 |
} catch(Exception $e) {
|
| 4524 |
+
return null;
|
| 4525 |
}
|
| 4526 |
}
|
| 4527 |
|
| 4562 |
protected function fillFieldsToGridRequest($request) {
|
| 4563 |
foreach($this->fields as $field) {
|
| 4564 |
if($field->get(self::FIELD_VALUE) != '') {
|
| 4565 |
+
$request->addFilter($field->get(self::FIELD_NAME), $field->get(self::FIELD_OPERATOR), $field->get(self::FIELD_VALUE));
|
| 4566 |
}
|
| 4567 |
}
|
| 4568 |
}
|
| 4624 |
$request = new Gpf_Rpc_FormRequest($this->class, $method, $this->session);
|
| 4625 |
$this->beforeCallRequest($request);
|
| 4626 |
foreach($this->getFields() as $field) {
|
| 4627 |
+
if($field->get(self::FIELD_VALUE) !== null) {
|
| 4628 |
$request->setField($field->get(self::FIELD_NAME), $field->get(self::FIELD_VALUE));
|
| 4629 |
}
|
| 4630 |
}
|
| 4691 |
|
| 4692 |
return $this->callRequest("add");
|
| 4693 |
}
|
| 4694 |
+
|
| 4695 |
+
protected function fillEmptyRecord() {
|
| 4696 |
+
}
|
| 4697 |
|
| 4698 |
protected function beforeCallRequest(Gpf_Rpc_FormRequest $request) {
|
| 4699 |
}
|
| 4734 |
if (!class_exists('Pap_Api_Affiliate', false)) {
|
| 4735 |
class Pap_Api_Affiliate extends Pap_Api_Object {
|
| 4736 |
|
|
|
|
|
|
|
|
|
|
| 4737 |
private $dataValues = null;
|
|
|
|
| 4738 |
|
| 4739 |
public function __construct(Gpf_Api_Session $session) {
|
| 4740 |
if($session->getRoleType() == Gpf_Api_Session::AFFILIATE) {
|
| 4745 |
|
| 4746 |
parent::__construct($session);
|
| 4747 |
|
|
|
|
|
|
|
| 4748 |
$this->getDataFields();
|
| 4749 |
}
|
| 4750 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4751 |
public function getUserid() { return $this->getField("userid"); }
|
| 4752 |
public function setUserid($value) {
|
| 4753 |
$this->setField("userid", $value);
|
| 4756 |
|
| 4757 |
public function getRefid() { return $this->getField("refid"); }
|
| 4758 |
|
| 4759 |
+
public function setRefid($value, $operator = self::OPERATOR_EQUALS) {
|
| 4760 |
+
$this->setField('refid', $value, $operator);
|
|
|
|
|
|
|
|
|
|
| 4761 |
}
|
| 4762 |
|
| 4763 |
public function getStatus() { return $this->getField("rstatus"); }
|
| 4775 |
public function getPhoto() { return $this->getField("photo"); }
|
| 4776 |
public function setPhoto($value) { $this->setField("photo", $value); }
|
| 4777 |
|
| 4778 |
+
public function getAuthToken() { return $this->getField('authtoken'); }
|
| 4779 |
+
|
| 4780 |
public function getUsername() { return $this->getField("username"); }
|
| 4781 |
|
| 4782 |
+
public function setUsername($value, $operator = self::OPERATOR_EQUALS) {
|
| 4783 |
+
$this->setField('username', $value, $operator);
|
|
|
|
|
|
|
|
|
|
| 4784 |
}
|
| 4785 |
|
| 4786 |
public function getPassword() { return $this->getField("rpassword"); }
|
| 4788 |
|
| 4789 |
public function getFirstname() { return $this->getField("firstname"); }
|
| 4790 |
|
| 4791 |
+
public function setFirstname($value, $operator = self::OPERATOR_EQUALS) {
|
| 4792 |
+
$this->setField('firstname', $value, $operator);
|
|
|
|
|
|
|
|
|
|
| 4793 |
}
|
| 4794 |
|
| 4795 |
public function getLastname() { return $this->getField("lastname"); }
|
| 4796 |
|
| 4797 |
+
public function setLastname($value, $operator = self::OPERATOR_EQUALS) {
|
| 4798 |
+
$this->setField('lastname', $value, $operator);
|
|
|
|
|
|
|
|
|
|
| 4799 |
}
|
| 4800 |
|
| 4801 |
public function getParentUserId() { return $this->getField("parentuserid"); }
|
| 4807 |
public function getNotificationEmail() { return $this->getField("notificationemail"); }
|
| 4808 |
public function setNotificationEmail($value) { $this->setField("notificationemail", $value); }
|
| 4809 |
|
| 4810 |
+
public function getLanguage() { return $this->getField('lang'); }
|
| 4811 |
+
public function setLanguage($value) { $this->setField('lang', $value); }
|
| 4812 |
+
|
| 4813 |
+
public function disableSignupBonus() { $this->setField('createSignupComm', Gpf::NO); }
|
| 4814 |
+
public function disableReferralCommissions() { $this->setField('createReferralComm', Gpf::NO); }
|
| 4815 |
|
| 4816 |
public function getData($index) {
|
| 4817 |
$this->checkIndex($index);
|
| 4818 |
return $this->getField("data$index");
|
| 4819 |
}
|
| 4820 |
+
public function setData($index, $value, $operator = self::OPERATOR_EQUALS) {
|
| 4821 |
$this->checkIndex($index);
|
| 4822 |
+
$this->setField("data$index", $value, $operator);
|
|
|
|
|
|
|
|
|
|
| 4823 |
}
|
| 4824 |
|
| 4825 |
public function setPayoutOptionField($code, $value) {
|
| 4887 |
return new Pap_Api_AffiliatesGrid($this->getSession());
|
| 4888 |
}
|
| 4889 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4890 |
/**
|
| 4891 |
* retrieves names and states of data1..data25 fields
|
| 4892 |
*
|
| 4975 |
|
| 4976 |
if (!class_exists('Pap_Api_Transaction', false)) {
|
| 4977 |
class Pap_Api_Transaction extends Pap_Api_Object {
|
| 4978 |
+
|
| 4979 |
+
const TRACKING_METHOD_MANUAL_COMMISSION = 'M';
|
| 4980 |
|
| 4981 |
private $dataValues = null;
|
| 4982 |
|
| 5021 |
public function setCountryCode($value) { $this->setField("countrycode", $value); }
|
| 5022 |
|
| 5023 |
public function getDateInserted() { return $this->getField("dateinserted"); }
|
| 5024 |
+
public function setDateInserted($value, $operator = self::OPERATOR_EQUALS) {
|
| 5025 |
+
$this->setField("dateinserted", $value, $operator);
|
| 5026 |
+
}
|
| 5027 |
|
| 5028 |
public function getDateApproved() { return $this->getField("dateapproved"); }
|
| 5029 |
+
public function setDateApproved($value, $operator = self::OPERATOR_EQUALS) {
|
| 5030 |
+
$this->setField("dateapproved", $value, $operator);
|
| 5031 |
+
}
|
| 5032 |
|
| 5033 |
public function getPayoutStatus() { return $this->getField("payoutstatus"); }
|
| 5034 |
public function setPayoutStatus($value) { $this->setField("payoutstatus", $value); }
|
| 5035 |
|
| 5036 |
public function getPayoutHistoryId() { return $this->getField("payouthistoryid"); }
|
| 5037 |
+
public function setPayoutHistoryId($value, $operator = self::OPERATOR_EQUALS) {
|
| 5038 |
+
$this->setField("payouthistoryid", $value, $operator);
|
| 5039 |
+
}
|
| 5040 |
|
| 5041 |
public function getRefererUrl() { return $this->getField("refererurl"); }
|
| 5042 |
+
public function setRefererUrl($value, $operator = self::OPERATOR_EQUALS) {
|
| 5043 |
+
$this->setField("refererurl", $value, $operator);
|
| 5044 |
+
}
|
| 5045 |
|
| 5046 |
public function getIp() { return $this->getField("ip"); }
|
| 5047 |
+
public function setIp($value, $operator = self::OPERATOR_EQUALS) {
|
| 5048 |
+
$this->setField("ip", $value, $operator);
|
| 5049 |
+
}
|
| 5050 |
|
| 5051 |
public function getBrowser() { return $this->getField("browser"); }
|
| 5052 |
+
public function setBrowser($value, $operator = self::OPERATOR_EQUALS) {
|
| 5053 |
+
$this->setField("browser", $value, $operator);
|
| 5054 |
+
}
|
| 5055 |
|
| 5056 |
public function getCommission() { return $this->getField("commission"); }
|
| 5057 |
public function setCommission($value) { $this->setField("commission", $value); }
|
| 5058 |
|
| 5059 |
public function getOrderId() { return $this->getField("orderid"); }
|
| 5060 |
+
public function setOrderId($value, $operator = self::OPERATOR_EQUALS) {
|
| 5061 |
+
$this->setField("orderid", $value, $operator);
|
| 5062 |
+
}
|
| 5063 |
|
| 5064 |
public function getProductId() { return $this->getField("productid"); }
|
| 5065 |
+
public function setProductId($value, $operator = self::OPERATOR_EQUALS) {
|
| 5066 |
+
$this->setField("productid", $value, $operator);
|
| 5067 |
+
}
|
| 5068 |
|
| 5069 |
public function getTotalCost() { return $this->getField("totalcost"); }
|
| 5070 |
public function setTotalCost($value) { $this->setField("totalcost", $value); }
|
| 5073 |
public function setRecurringCommid($value) { $this->setField("recurringcommid", $value); }
|
| 5074 |
|
| 5075 |
public function getFirstClickTime() { return $this->getField("firstclicktime"); }
|
| 5076 |
+
public function setFirstClickTime($value, $operator = self::OPERATOR_EQUALS) {
|
| 5077 |
+
$this->setField("firstclicktime", $value, $operator);
|
| 5078 |
+
}
|
| 5079 |
|
| 5080 |
public function getFirstClickReferer() { return $this->getField("firstclickreferer"); }
|
| 5081 |
+
public function setFirstClickReferer($value, $operator = self::OPERATOR_EQUALS) {
|
| 5082 |
+
$this->setField("firstclickreferer", $value, $operator);
|
| 5083 |
+
}
|
| 5084 |
|
| 5085 |
public function getFirstClickIp() { return $this->getField("firstclickip"); }
|
| 5086 |
+
public function setFirstClickIp($value, $operator = self::OPERATOR_EQUALS) {
|
| 5087 |
+
$this->setField("firstclickip", $value, $operator);
|
| 5088 |
+
}
|
| 5089 |
|
| 5090 |
public function getFirstClickData1() { return $this->getField("firstclickdata1"); }
|
| 5091 |
+
public function setFirstClickData1($value, $operator = self::OPERATOR_EQUALS) {
|
| 5092 |
+
$this->setField("firstclickdata1", $value, $operator);
|
| 5093 |
+
}
|
| 5094 |
|
| 5095 |
public function getFirstClickData2() { return $this->getField("firstclickdata2"); }
|
| 5096 |
+
public function setFirstClickData2($value, $operator = self::OPERATOR_EQUALS) {
|
| 5097 |
+
$this->setField("firstclickdata2", $value, $operator);
|
| 5098 |
+
}
|
| 5099 |
|
| 5100 |
public function getClickCount() { return $this->getField("clickcount"); }
|
| 5101 |
public function setClickCount($value) { $this->setField("clickcount", $value); }
|
| 5102 |
|
| 5103 |
public function getLastClickTime() { return $this->getField("lastclicktime"); }
|
| 5104 |
+
public function setLastClickTime($value, $operator = self::OPERATOR_EQUALS) {
|
| 5105 |
+
$this->setField("lastclicktime", $value, $operator);
|
| 5106 |
+
}
|
| 5107 |
|
| 5108 |
public function getLastClickReferer() { return $this->getField("lastclickreferer"); }
|
| 5109 |
+
public function setLastClickReferer($value, $operator = self::OPERATOR_EQUALS) {
|
| 5110 |
+
$this->setField("lastclickreferer", $value, $operator);
|
| 5111 |
+
}
|
| 5112 |
|
| 5113 |
public function getLastClickIp() { return $this->getField("lastclickip"); }
|
| 5114 |
+
public function setLastClickIp($value, $operator = self::OPERATOR_EQUALS) {
|
| 5115 |
+
$this->setField("lastclickip", $value, $operator);
|
| 5116 |
+
}
|
| 5117 |
|
| 5118 |
public function getLastClickData1() { return $this->getField("lastclickdata1"); }
|
| 5119 |
+
public function setLastClickData1($value, $operator = self::OPERATOR_EQUALS) {
|
| 5120 |
+
$this->setField("lastclickdata1", $value, $operator);
|
| 5121 |
+
}
|
| 5122 |
|
| 5123 |
public function getLastClickData2() { return $this->getField("lastclickdata2"); }
|
| 5124 |
+
public function setLastClickData2($value, $operator = self::OPERATOR_EQUALS) {
|
| 5125 |
+
$this->setField("lastclickdata2", $value, $operator);
|
| 5126 |
+
}
|
| 5127 |
|
| 5128 |
public function getTrackMethod() { return $this->getField("trackmethod"); }
|
| 5129 |
public function setTrackMethod($value) { $this->setField("trackmethod", $value); }
|
| 5147 |
public function setCommTypeId($value) { $this->setField("commtypeid", $value); }
|
| 5148 |
|
| 5149 |
public function getMerchantNote() { return $this->getField("merchantnote"); }
|
| 5150 |
+
public function setMerchantNote($value, $operator = self::OPERATOR_EQUALS) {
|
| 5151 |
+
$this->setField("merchantnote", $value, $operator);
|
| 5152 |
+
}
|
| 5153 |
|
| 5154 |
public function getSystemNote() { return $this->getField("systemnote"); }
|
| 5155 |
+
public function setSystemNote($value, $operator = self::OPERATOR_EQUALS) {
|
| 5156 |
+
$this->setField("systemnote", $value, $operator);
|
| 5157 |
+
}
|
| 5158 |
|
| 5159 |
public function getParentTransactionId() { return $this->getField("parenttransid"); }
|
| 5160 |
public function setParentTransactionId($value) { $this->setField("parenttransid", $value); }
|
| 5163 |
$this->checkIndex($index);
|
| 5164 |
return $this->getField("data$index");
|
| 5165 |
}
|
| 5166 |
+
public function setData($index, $value, $operator = self::OPERATOR_EQUALS) {
|
| 5167 |
$this->checkIndex($index);
|
| 5168 |
+
$this->setField("data$index", $value, $operator);
|
| 5169 |
}
|
| 5170 |
|
| 5171 |
/**
|
| 5253 |
if($this->getMultiTierCreation() == '') {
|
| 5254 |
$this->setMultiTierCreation('N');
|
| 5255 |
}
|
| 5256 |
+
if($this->getTrackMethod() == '') {
|
| 5257 |
+
$this->setTrackMethod(self::TRACKING_METHOD_MANUAL_COMMISSION);
|
| 5258 |
+
}
|
| 5259 |
}
|
| 5260 |
|
| 5261 |
protected function getPrimaryKey() {
|
| 6237 |
|
| 6238 |
if (!class_exists('Pap_Api_RecurringCommission', false)) {
|
| 6239 |
class Pap_Api_RecurringCommission extends Pap_Api_Object {
|
| 6240 |
+
|
| 6241 |
public function __construct(Gpf_Api_Session $session) {
|
| 6242 |
parent::__construct($session);
|
| 6243 |
$this->class = 'Pap_Features_RecurringCommissions_RecurringCommissionsForm';
|
| 6244 |
}
|
| 6245 |
|
| 6246 |
+
public function setOrderId($value, $operator = self::OPERATOR_EQUALS) {
|
| 6247 |
+
$this->setField('orderid', $value, $operator);
|
| 6248 |
}
|
| 6249 |
|
| 6250 |
public function setTotalCost($value) {
|
| 6261 |
|
| 6262 |
protected function getGridRequest() {
|
| 6263 |
return new Pap_Api_RecurringCommissionsGrid($this->getSession());
|
| 6264 |
+
}
|
| 6265 |
+
|
| 6266 |
public function createCommissions() {
|
| 6267 |
$request = new Gpf_Rpc_ActionRequest('Pap_Features_RecurringCommissions_RecurringCommissionsForm',
|
| 6268 |
'createCommissions', $this->getSession());
|
| 6278 |
throw new Gpf_Exception($action->getErrorMessage());
|
| 6279 |
}
|
| 6280 |
}
|
| 6281 |
+
|
| 6282 |
+
public function createCommissionsReturnIds() {
|
| 6283 |
+
$request = new Gpf_Rpc_DataRequest('Pap_Features_RecurringCommissions_RecurringCommissionsForm',
|
| 6284 |
+
'createCommissionsReturnIds', $this->getSession());
|
| 6285 |
+
$request->addParam('id', $this->getId());
|
| 6286 |
+
$request->addParam('orderid', $this->getField('orderid'));
|
| 6287 |
+
$request->addParam('totalcost', $this->getField('totalcost'));
|
| 6288 |
+
if ($this->getSession()->getSessionId() == '') {
|
| 6289 |
+
$request->addParam('initSession', Gpf::YES);
|
| 6290 |
+
}
|
| 6291 |
+
$request->sendNow();
|
| 6292 |
+
return $request->getData()->getValue(Gpf_Rpc_Action::IDS);
|
| 6293 |
+
}
|
| 6294 |
}
|
| 6295 |
|
| 6296 |
} //end Pap_Api_RecurringCommission
|
| 6429 |
|
| 6430 |
} //end Pap_Api_PayoutsHistoryGrid
|
| 6431 |
|
| 6432 |
+
if (!class_exists('Pap_Api_Session', false)) {
|
| 6433 |
+
class Pap_Api_Session extends Gpf_Api_Session {
|
| 6434 |
+
|
| 6435 |
+
const AUTHENTICATE_CLASS_NAME = 'Pap_Api_AuthService';
|
| 6436 |
+
|
| 6437 |
+
|
| 6438 |
+
protected function getAuthenticateClassName() {
|
| 6439 |
+
return self::AUTHENTICATE_CLASS_NAME;
|
| 6440 |
+
}
|
| 6441 |
+
}
|
| 6442 |
+
|
| 6443 |
+
} //end Pap_Api_Session
|
| 6444 |
+
|
| 6445 |
if (!class_exists('Gpf_Net_Http_Client', false)) {
|
| 6446 |
class Gpf_Net_Http_Client extends Gpf_Net_Http_ClientBase {
|
| 6447 |
|
| 6455 |
}
|
| 6456 |
/*
|
| 6457 |
VERSION
|
| 6458 |
+
dd3e251e05f78b1e2ce51e07991dc8f9
|
| 6459 |
*/
|
| 6460 |
?>
|
package.xml
CHANGED
|
@@ -1,19 +1,21 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Qualityunit_Pap</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
-
<stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>The module makes an integration with Post Affiliate Pro or Post Affiliate Network an easy thing. A simple configuration with all the needed options helps you to make it working in seconds.</summary>
|
| 10 |
<description>The module makes an integration with Post Affiliate Pro or Post Affiliate Network an easy thing. A simple configuration with all the needed options helps you to make it working in seconds.
|
| 11 |
The module integrates sales, supports per product tracking, Coupon tracking and Lifetime Commission tracking. It also automatically approves and declines commissions when transaction status is changed.</description>
|
| 12 |
-
<notes
|
|
|
|
|
|
|
| 13 |
<authors><author><name>Quality Unit, LLC</name><user>support</user><email>support@qualityunit.com</email></author></authors>
|
| 14 |
-
<date>2015-10
|
| 15 |
-
<time>
|
| 16 |
-
<contents><target name="magelocal"><dir name="Qualityunit"><dir name="Pap"><dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="a1a70e021c623040796d925afbf52324"/></dir></dir></dir></dir><file name="Clicktracking.php" hash="8ee426151206030457e080ef23ce953b"/><dir name="Paypal"><file name="Redirect.php" hash="c6c83477cfe5da045be89eff12b8e54d"/></dir><file name="Saletracking.php" hash="
|
| 17 |
<compatible/>
|
| 18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 19 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Qualityunit_Pap</name>
|
| 4 |
+
<version>1.0.2</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>The module makes an integration with Post Affiliate Pro or Post Affiliate Network an easy thing. A simple configuration with all the needed options helps you to make it working in seconds.</summary>
|
| 10 |
<description>The module makes an integration with Post Affiliate Pro or Post Affiliate Network an easy thing. A simple configuration with all the needed options helps you to make it working in seconds.
|
| 11 |
The module integrates sales, supports per product tracking, Coupon tracking and Lifetime Commission tracking. It also automatically approves and declines commissions when transaction status is changed.</description>
|
| 12 |
+
<notes>- currency issue fixed
|
| 13 |
+
- status of partial refunds fixed
|
| 14 |
+
- stable version</notes>
|
| 15 |
<authors><author><name>Quality Unit, LLC</name><user>support</user><email>support@qualityunit.com</email></author></authors>
|
| 16 |
+
<date>2015-11-10</date>
|
| 17 |
+
<time>13:04:31</time>
|
| 18 |
+
<contents><target name="magelocal"><dir name="Qualityunit"><dir name="Pap"><dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="a1a70e021c623040796d925afbf52324"/></dir></dir></dir></dir><file name="Clicktracking.php" hash="8ee426151206030457e080ef23ce953b"/><dir name="Paypal"><file name="Redirect.php" hash="c6c83477cfe5da045be89eff12b8e54d"/></dir><file name="Saletracking.php" hash="b7e5c50972b856a87c2d24903235e502"/></dir><dir name="Helper"><file name="Data.php" hash="6418f45f1484fd4f676933a8af96cef5"/></dir><dir name="Model"><dir name="Checkout"><file name="Observer.php" hash="eeeb25d90b801c6352568c25e3154942"/></dir><dir name="Config"><dir name="Source"><file name="CustomVariables.php" hash="491d5166055c6a7c9f03a0e3c92bdb7d"/><file name="TrackSales.php" hash="1af0c801457e4b31f55fde6ad12e7b67"/></dir></dir><file name="Config.php" hash="0a6d8bf59b6b89bb23305bdbb0a593c6"/><file name="Ipn.php" hash="410b6493a4f3fd451698d56bc0eced94"/><file name="Observer.php" hash="82e1daf72693410bc4619151d03554e7"/><file name="Pap.php" hash="d895b416806bbf6a64347047d4506a07"/><file name="Paypal.php" hash="39cbba74d089c1460f2404d8128cfb0b"/></dir><dir name="etc"><file name="config.xml" hash="83dfad5b4fcf7863e25f230ed96f3c50"/><file name="system.xml" hash="b62157df3c30e4496c635d203a33abe9"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pap.xml" hash="600ebb26e9af1c78ac0a5d22717d2cd2"/></dir><dir name="template"><dir name="pap"><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="cebb98c5c843a2921debea7cf98fdfe2"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pap.xml" hash="167eddd9fa705fba71f8d3d2992a43cc"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="pap.xml" hash="167eddd9fa705fba71f8d3d2992a43cc"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Qualityunit_Pap.xml" hash="2c0943ada797ca04b0b32b58de7257a2"/></dir></target><target name="magelib"><dir name="PAP"><file name="PapApi.class.php" hash="ce27fd295878c080532cb029ffa0c482"/></dir></target><target name="mage"><dir name="lib"><dir name="PAP"><file name="README.txt" hash="2a279f64825e116dfd29c73fee9dabc8"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="pap"><file name="pap.css" hash="ff8a88a99075753b4a0ea9004d579a42"/><file name="pap-tab.png" hash="eef09c5b3777189e05b1702c463a9a33"/><file name="pap-logo.png" hash="e9053c44287a8d84801451ed69ef2f09"/></dir></dir></dir></dir></target></contents>
|
| 19 |
<compatible/>
|
| 20 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 21 |
</package>
|
