AntonLV 5 лет назад
Родитель
Сommit
283b0fc03e
2 измененных файлов с 49 добавлено и 0 удалено
  1. 18 0
      inc/classes/BxDolPayments.php
  2. 31 0
      modules/boonex/payment/classes/BxPaymentOrders.php

+ 18 - 0
inc/classes/BxDolPayments.php

@@ -445,6 +445,24 @@ class BxDolPayments extends BxDolFactory implements iBxDolSingleton
         return bx_srv($this->_sActive, 'prolong_subscription', $aSrvParams);
     }
 
+    public function processOrder($iSellerId, $iClientId, $iModuleId, $aItems, $sType, $sOrder)
+    {
+        if(!BxDolRequest::serviceExists($this->_sActive, 'process_order', 'Orders'))
+            return false;
+
+        $aSrvParams = array($iSellerId, $iClientId, $iModuleId, $aItems, $sType, $sOrder);
+        return bx_srv($this->_sActive, 'process_order', $aSrvParams, 'Orders');
+    }
+
+    public function processOrderByPending($iPendingId, $sOrder)
+    {
+        if(!BxDolRequest::serviceExists($this->_sActive, 'process_order_by_pending', 'Orders'))
+            return false;
+
+        $aSrvParams = array($iPendingId, $sOrder);
+        return bx_srv($this->_sActive, 'process_order_by_pending', $aSrvParams, 'Orders');
+    }
+
     public function generateLicense()
     {
         if(!BxDolRequest::serviceExists($this->_sActive, 'generate_license'))

+ 31 - 0
modules/boonex/payment/classes/BxPaymentOrders.php

@@ -143,6 +143,37 @@ class BxPaymentOrders extends BxBaseModPaymentOrders
         return $this->_oModule->_oDb->getOrderPending(array('type' => 'mixed', 'conditions' => $aConditions));
     }
 
+    public function serviceProcessOrder($iSellerId, $iClientId, $iModuleId, $aItems, $sType, $sOrder)
+    {
+        $mixedResult = $this->addOrder(array(
+            'client_id' => $iClientId,
+            'seller_id' => $iSellerId,
+            'provider' => 'manual',
+            'type' => $sType,
+            'order' => $sOrder,
+            'error_code' => 0,
+            'error_msg' => 'Manually processed',        		
+            'module_id' => $iModuleId,
+            'items' => $aItems
+        ));
+
+        if(is_array($mixedResult))
+            return false;
+
+        return $this->_oModule->registerPayment((int)$mixedResult);
+    }
+
+    public function serviceProcessOrderByPending($iPendingId, $sOrder)
+    {
+        $this->_oModule->_oDb->updateOrderPending($iPendingId, array(
+            'order' => $sOrder,
+            'error_code' => 0,
+            'error_msg' => 'Manually processed'
+        ));
+
+        return $this->_oModule->registerPayment($iPendingId);
+    }
+
     public function addOrder($aData)
     {
         $iSellerId = isset($aData['seller_id']) ? (int)$aData['seller_id'] : $this->_oModule->getProfileId();