Quellcode durchsuchen

Ticket #456: Pages, menus, grids, etc.

AntonLV vor 10 Jahren
Ursprung
Commit
6dca7e8894

+ 12 - 4
inc/classes/BxDolPayments.php

@@ -219,6 +219,14 @@ class BxDolPayments extends BxDolFactory implements iBxDolSingleton
 		return BxDolService::call($this->_sActive, 'get_add_to_cart_link', $aSrvParams, 'Cart');
     }
 
+    public function getSubscriptionsUrl()
+    {
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscriptions_url', 'Subscriptions'))
+    		return '';
+
+    	return BxDolService::call($this->_sActive, 'get_subscriptions_url', array(), 'Subscriptions');
+    }
+
 	public function getSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
     {
     	if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_url', 'Cart'))
@@ -232,11 +240,11 @@ class BxDolPayments extends BxDolFactory implements iBxDolSingleton
      */
     public function getSubscribeJs($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
     {
-    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_js', 'Cart'))
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_js', 'Subscriptions'))
 			return array();
 
 		$aSrvParams = array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount);
-		return BxDolService::call($this->_sActive, 'get_subscribe_js', $aSrvParams, 'Cart');
+		return BxDolService::call($this->_sActive, 'get_subscribe_js', $aSrvParams, 'Subscriptions');
     }
 
     /**
@@ -244,11 +252,11 @@ class BxDolPayments extends BxDolFactory implements iBxDolSingleton
      */
     public function getSubscribeLink($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
     {
-		if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_link', 'Cart'))
+		if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_link', 'Subscriptions'))
 			return '';
 
 		$aSrvParams = array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount);
-		return BxDolService::call($this->_sActive, 'get_subscribe_link', $aSrvParams, 'Cart');
+		return BxDolService::call($this->_sActive, 'get_subscribe_link', $aSrvParams, 'Subscriptions');
     }
 
     public function initializeCheckout($iVendorId, $sProvider, $aItems = array())

+ 2 - 1
install/sql/system.sql

@@ -2995,7 +2995,8 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 -- notifications menu in account popup
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
 ('sys_account_notifications', 'system', 'cart', '_sys_menu_item_title_system_cart', '_sys_menu_item_title_cart', 'cart.php', '', '', 'cart-plus col-red3', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_cart_items_count";s:6:"params";a:0:{}s:5:"class";s:21:"TemplPaymentsServices";}', '', 2147483646, 1, 1, 1),
-('sys_account_notifications', 'system', 'orders', '_sys_menu_item_title_system_orders', '_sys_menu_item_title_orders', 'orders.php', '', '', 'cart-arrow-down col-green3', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_orders_count";s:6:"params";a:1:{i:0;s:3:"new";}s:5:"class";s:21:"TemplPaymentsServices";}', '', 2147483646, 1, 1, 2);
+('sys_account_notifications', 'system', 'subscriptions', '_sys_menu_item_title_system_subscriptions', '_sys_menu_item_title_subscriptions', 'subscriptions.php', '', '', 'money col-blue3', '', '', 2147483646, 1, 1, 2),
+('sys_account_notifications', 'system', 'orders', '_sys_menu_item_title_system_orders', '_sys_menu_item_title_orders', 'orders.php', '', '', 'cart-arrow-down col-green3', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:20:"get_orders_count";s:6:"params";a:1:{i:0;s:3:"new";}s:5:"class";s:21:"TemplPaymentsServices";}', '', 2147483646, 1, 1, 3);
 
 -- account settings menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES

+ 11 - 0
modules/base/payment/classes/BxBaseModPaymentCart.php

@@ -55,6 +55,17 @@ class BxBaseModPaymentCart extends BxDol
 		return $this->_oModule->_oTemplate->displayAddToCartLink($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect);
     }
 
+	public function serviceGetSubscriptionsUrl($iVendor = 0)
+    {
+    	if(!$this->_oModule->isLogged())
+            return '';
+
+		if($iVendor == 0)
+    		return $this->_oModule->_oConfig->getUrl('URL_SUBSCRIPTIONS');
+
+    	return  bx_append_url_params($this->_oModule->_oConfig->getUrl('URL_SUBSCRIPTIONS'), array('seller_id' => $iVendor));
+    }
+
 	public function serviceGetSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
     {
     	if(!$this->_oModule->isLogged())

+ 3 - 0
modules/base/payment/classes/BxBaseModPaymentConfig.php

@@ -52,6 +52,7 @@ class BxBaseModPaymentConfig extends BxBaseModGeneralConfig
 			'display_processed_add' => $this->_sName . '_form_processed_add',
 
 			'menu_cart_submenu' => $this->_sName . '_menu_cart_submenu',
+		    'menu_sbs_submenu' => $this->_sName . '_menu_sbs_submenu',
         	'menu_orders_submenu' => $this->_sName . '_menu_orders_submenu',
 
 			'grid_history' => $this->_sName . '_grid_orders_history',
@@ -59,6 +60,8 @@ class BxBaseModPaymentConfig extends BxBaseModGeneralConfig
 			'grid_pending' => $this->_sName . '_grid_orders_pending',
 			'grid_carts' => $this->_sName . '_grid_carts',
 			'grid_cart' => $this->_sName . '_grid_cart',
+			'grid_sbs_list' => $this->_sName . '_grid_sbs_list',
+			'grid_sbs_history' => $this->_sName . '_grid_sbs_history',
 		));
 
 		$this->_aPerPage = array();

+ 68 - 0
modules/base/payment/classes/BxBaseModPaymentSubscriptions.php

@@ -0,0 +1,68 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    BasePayment Base classes for Payment like modules
+ * @ingroup     TridentModules
+ *
+ * @{
+ */
+
+class BxBaseModPaymentSubscriptions extends BxDol
+{
+	protected $MODULE;
+	protected $_oModule;
+
+	function __construct()
+    {
+        parent::__construct();
+
+        $this->_oModule = BxDolModule::getInstance($this->MODULE);
+    }
+
+	public function serviceGetSubscriptionsUrl($iVendor = 0)
+    {
+    	if(!$this->_oModule->isLogged())
+            return '';
+
+		if($iVendor == 0)
+    		return $this->_oModule->_oConfig->getUrl('URL_SUBSCRIPTIONS');
+
+    	return  bx_append_url_params($this->_oModule->_oConfig->getUrl('URL_SUBSCRIPTIONS'), array('seller_id' => $iVendor));
+    }
+
+	public function serviceGetSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
+    {
+    	if(!$this->_oModule->isLogged())
+            return '';
+
+    	return  bx_append_url_params($this->_oModule->_oConfig->getUrl('URL_SUBSCRIBE'), array(
+    		'seller_id' => $iVendorId,
+    		'seller_provider' => $sVendorProvider,
+    		'module_id' => $mixedModuleId, 
+    		'item_id' => $iItemId,
+    		'item_count' => $iItemCount
+    	));
+    }
+
+	public function serviceGetSubscribeJs($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
+    {
+		$iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);
+        if(empty($iModuleId))
+            return '';
+
+        return $this->_oModule->_oTemplate->displaySubscribeJs($iVendorId, $sVendorProvider, $iModuleId, $iItemId, $iItemCount);
+    }
+
+	public function serviceGetSubscribeLink($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
+    {
+        $iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);
+        if(empty($iModuleId))
+            return '';
+
+		return $this->_oModule->_oTemplate->displaySubscribeLink($iVendorId, $sVendorProvider, $iModuleId, $iItemId, $iItemCount);
+    }
+}
+
+/** @} */

+ 2 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -1980,6 +1980,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_profile"><![CDATA[Profile]]></string>
 	<string name="_sys_menu_item_title_set_acl_level"><![CDATA[Set membership]]></string>
 	<string name="_sys_menu_item_title_studio"><![CDATA[Studio]]></string>
+	<string name="_sys_menu_item_title_subscriptions"><![CDATA[Subscriptions]]></string>
 	<string name="_sys_menu_item_title_system_about"><![CDATA[About]]></string>
 	<string name="_sys_menu_item_title_system_privacy"><![CDATA[Privacy]]></string>
 	<string name="_sys_menu_item_title_system_switch_language"><![CDATA[Language]]></string>
@@ -2010,6 +2011,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_system_search"><![CDATA[Search]]></string>
 	<string name="_sys_menu_item_title_system_set_acl_level"><![CDATA[Set membership]]></string>
 	<string name="_sys_menu_item_title_system_studio"><![CDATA[Studio]]></string>
+	<string name="_sys_menu_item_title_system_subscriptions"><![CDATA[Subscriptions]]></string>
 	<string name="_sys_menu_set_title_account"><![CDATA[Account]]></string>
 	<string name="_sys_menu_set_title_account_dashboard_manage_tools"><![CDATA[Account Dashboard Manage Tools]]></string>
 	<string name="_sys_menu_set_title_account_settings"><![CDATA[Account Settings]]></string>

+ 1 - 0
modules/boonex/payment/classes/BxPaymentConfig.php

@@ -23,6 +23,7 @@ class BxPaymentConfig extends BxBaseModPaymentConfig
         	'URL_CART' => 'page.php?i=payment-cart',
         	'URL_CART_CHECKOUT' => $sBaseUrl . 'initialize_checkout/' . BX_PAYMENT_TYPE_SINGLE . '/',
         	'URL_SUBSCRIBE' => $sBaseUrl . 'subscribe/',
+        	'URL_SUBSCRIPTIONS' => 'page.php?i=payment-sbs-list',
         	'URL_HISTORY' => 'page.php?i=payment-history',
         	'URL_ORDERS' => 'page.php?i=payment-orders',
         	'URL_DETAILS' => 'page.php?i=payment-details',

+ 21 - 0
modules/boonex/payment/classes/BxPaymentGridSbsHistory.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Payment Payment
+ * @ingroup     TridentModules
+ * 
+ * @{
+ */
+
+
+class BxPaymentGridSbsHistory extends BxPaymentGridHistory
+{
+    public function __construct ($aOptions, $oTemplate = false)
+    {
+        parent::__construct ($aOptions, $oTemplate);
+    }
+}
+
+/** @} */

+ 35 - 0
modules/boonex/payment/classes/BxPaymentGridSbsList.php

@@ -0,0 +1,35 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Payment Payment
+ * @ingroup     TridentModules
+ * 
+ * @{
+ */
+
+
+class BxPaymentGridSbsList extends BxBaseModPaymentGridOrders
+{
+    public function __construct ($aOptions, $oTemplate = false)
+    {
+    	$this->MODULE = 'bx_payment';
+
+        parent::__construct ($aOptions, $oTemplate);
+
+        $this->_sOrdersType = 'history';
+    }
+
+	protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
+    {
+		if(empty($this->_aQueryAppend['client_id']))
+			return array();
+
+		$this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `client_id`=?", $this->_aQueryAppend['client_id']);
+
+        return parent::_getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
+    }
+}
+
+/** @} */

+ 20 - 0
modules/boonex/payment/classes/BxPaymentPageSubscriptions.php

@@ -0,0 +1,20 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Payment Payment
+ * @ingroup     TridentModules
+ *
+ * @{
+ */
+
+class BxPaymentPageSubscriptions extends BxTemplPage
+{
+    public function __construct($aObject, $oTemplate = false)
+    {
+        parent::__construct($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 6 - 2
modules/boonex/payment/classes/BxPaymentProviderPayPal.php

@@ -86,8 +86,11 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
 
     public function finalizeCheckout(&$aData)
     {
-        if((!isset($aData['txn_type']) || $aData['txn_type'] != 'web_accept') && !isset($aData['tx']))
+        if((!isset($aData['txn_type']) || $aData['txn_type'] != 'web_accept') && !isset($aData['tx'])) {
+            $this->log('Finalize Checkout');
+            $this->log($aData);
         	return array('code' => 1, 'message' => $this->_sLangsPrefix . 'pp_err_no_data_given');
+        }
 
 		return $this->_registerCheckout($aData);
     }
@@ -231,7 +234,8 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
         }
 
 		if(!$sResponse) {
-			$this->log(curl_error($rConnect));
+		    $this->log('Validation Data: ' . curl_error($rConnect));
+            $this->log($sResponse);
 			curl_close($rConnect);
 
 			return array('code' => 6, 'message' => $this->_sLangsPrefix . 'err_cannot_validate');

+ 90 - 0
modules/boonex/payment/classes/BxPaymentSubscriptions.php

@@ -0,0 +1,90 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Payment Payment
+ * @ingroup     TridentModules
+ *
+ * @{
+ */
+
+class BxPaymentSubscriptions extends BxBaseModPaymentSubscriptions
+{
+    function __construct()
+    {
+    	$this->MODULE = 'bx_payment';
+
+    	parent::__construct();
+    }
+
+    /*
+     * Service methods
+     */
+    public function serviceGetBlockList()
+    {
+        return $this->_getBlock('list');
+    }
+
+    public function serviceGetBlockHistory()
+    {
+        bx_import('GridHistory', $this->_oModule->_aModule);
+        return $this->_getBlock('history');
+    }
+
+    public function serviceGetBlockDetails()
+    {
+        return $this->_getBlock('details');
+    }
+
+	public function serviceSubscribe($iSellerId, $sSellerProvider, $iModuleId, $iItemId, $iItemCount)
+    {
+    	$CNF = &$this->_oModule->_oConfig->CNF;
+
+    	$iClientId = $this->_oModule->getProfileId();
+
+    	$mixedResult = $this->_checkData($iClientId, $iSellerId, $iModuleId, $iItemId, $iItemCount);
+    	if($mixedResult !== true)
+    		return $mixedResult;
+
+        $aSellerProviders = $this->_oModule->_oDb->getVendorInfoProvidersRecurring($iSellerId);
+        if(empty($aSellerProviders))
+            return array('code' => 5, 'message' => _t($CNF['T']['ERR_NOT_ACCEPT_PAYMENTS']));
+
+        $aCartItem = array($iSellerId, $iModuleId, $iItemId, $iItemCount);
+        $sCartItem = $this->_oModule->_oConfig->descriptorA2S($aCartItem);
+
+		if(empty($sSellerProvider)) {
+			$sId = $this->_oModule->_oConfig->getHtmlIds('cart', 'providers_select') . BX_PAYMENT_TYPE_RECURRING;
+			$sTitle = _t($CNF['T']['POPUP_PROVIDERS_SELECT']);
+			return array('popup' => BxTemplStudioFunctions::getInstance()->popupBox($sId, $sTitle, $this->_oModule->_oTemplate->displayProvidersSelector($aCartItem, $aSellerProviders)));
+		}
+
+		$aProvider = $aSellerProviders[$sSellerProvider];
+        $mixedResult = $this->_oModule->serviceInitializeCheckout(BX_PAYMENT_TYPE_RECURRING, $iSellerId, $aProvider['name'], array($sCartItem));
+        if(is_string($mixedResult))
+        	return array('code' => 6, 'message' => _t($mixedResult));
+
+		return $mixedResult;
+    }
+
+    protected function _getBlock($sType)
+    {
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $sMethod = 'displayBlockSbs' . bx_gen_method_name($sType);
+        if(!method_exists($this->_oModule->_oTemplate, $sMethod))
+            return MsgBox(_t('_Empty'));
+
+    	$iUserId = $this->_oModule->getProfileId();
+        if(empty($iUserId))
+            return MsgBox(_t($CNF['T']['ERR_REQUIRED_LOGIN']));
+
+        return array(
+        	'content' => $this->_oModule->_oTemplate->$sMethod($iUserId),
+        	'menu' => $this->_oModule->_oConfig->getObject('menu_sbs_submenu')
+        );
+    }
+}
+
+/** @} */

+ 28 - 8
modules/boonex/payment/classes/BxPaymentTemplate.php

@@ -144,16 +144,22 @@ class BxPaymentTemplate extends BxBaseModPaymentTemplate
 
     public function displayBlockHistory($iClientId, $iSellerId)
     {
-    	$oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_history'));
-        if(!$oGrid || empty($iClientId))
-            return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
+        return $this->_displayBlockHistory('grid_history', $iClientId, $iSellerId);
+    }
 
-		$oGrid->addQueryParam('client_id', $iClientId);
-		if(!empty($iSellerId))
-			$oGrid->addQueryParam('seller_id', $iSellerId);
+    public function displayBlockSbsList($iClientId)
+    {
+        return $this->_displayBlockHistory('grid_sbs_list', $iClientId);
+    }
 
-		$this->addJsCssOrders();
-        return $this->displayJsCode('history') . $oGrid->getCode();
+    public function displayBlockSbsHistory($iClientId)
+    {
+        return $this->_displayBlockHistory('grid_sbs_history', $iClientId);
+    }
+
+    public function displayBlockSbsDetails($iClientId)
+    {
+        return 'Details would be here';
     }
 
 	public function displayBlockOrders($sType, $iSellerId)
@@ -313,6 +319,20 @@ class BxPaymentTemplate extends BxBaseModPaymentTemplate
         $sName = $this->_oConfig->getName();
         return BxDolModule::getInstance($sName);
     }
+
+    protected function _displayBlockHistory($sObject, $iClientId, $iSellerId = 0)
+    {
+    	$oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject($sObject));
+        if(!$oGrid || empty($iClientId))
+            return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
+
+		$oGrid->addQueryParam('client_id', $iClientId);
+		if(!empty($iSellerId))
+			$oGrid->addQueryParam('seller_id', $iSellerId);
+
+		$this->addJsCssOrders();
+        return $this->displayJsCode('history') . $oGrid->getCode();
+    }
 }
 
 /** @} */

+ 27 - 0
modules/boonex/payment/install/langs/en.xml

@@ -15,6 +15,18 @@
 	<string name="_bx_payment_page_block_title_carts"><![CDATA[Shopping Carts]]></string>
 	<string name="_bx_payment_page_block_title_cart"><![CDATA[{0}'s Shopping Cart]]></string>
 
+    <string name="_bx_payment_page_title_sys_sbs_list"><![CDATA[Subscriptions List]]></string>
+    <string name="_bx_payment_page_title_sbs_list"><![CDATA[Subscriptions]]></string>
+    <string name="_bx_payment_page_block_title_sbs_list"><![CDATA[Subscriptions]]></string>
+
+    <string name="_bx_payment_page_title_sys_sbs_history"><![CDATA[Subscriptions History]]></string>
+    <string name="_bx_payment_page_title_sbs_history"><![CDATA[Payment History]]></string>
+    <string name="_bx_payment_page_block_title_sbs_history"><![CDATA[Payment History]]></string>
+
+    <string name="_bx_payment_page_title_sys_sbs_details"><![CDATA[Subscriptions Details]]></string>
+    <string name="_bx_payment_page_title_sbs_details"><![CDATA[Billing Information]]></string>
+    <string name="_bx_payment_page_block_title_sbs_details"><![CDATA[Billing Information]]></string>
+
 	<string name="_bx_payment_page_title_sys_history"><![CDATA[Shopping History]]></string>
 	<string name="_bx_payment_page_title_history"><![CDATA[Shopping History]]></string>
 	<string name="_bx_payment_page_block_title_history"><![CDATA[Shopping History]]></string>
@@ -54,6 +66,15 @@
     <string name="_bx_payment_menu_item_title_system_cart_history"><![CDATA[Cart History]]></string>
     <string name="_bx_payment_menu_item_title_cart_history"><![CDATA[Cart History]]></string>
 
+    <string name="_bx_payment_menu_title_sbs_submenu"><![CDATA[Subscriptions Submenu]]></string>
+    <string name="_bx_payment_menu_set_title_sbs_submenu"><![CDATA[Subscriptions Submenu]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_list"><![CDATA[Subscriptions List]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_list"><![CDATA[Subscriptions]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_history"><![CDATA[Subscriptions History]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_history"><![CDATA[Payments History]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_details"><![CDATA[Subscriptions Details]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_details"><![CDATA[Billing Information]]></string>
+
 	<!-- GRIDS -->
 	<string name="_bx_payment_grid_column_title_ods_client_id"><![CDATA[Client]]></string>
 	<string name="_bx_payment_grid_column_title_ods_seller_id"><![CDATA[Seller]]></string>
@@ -61,6 +82,11 @@
 	<string name="_bx_payment_grid_column_title_ods_license"><![CDATA[License]]></string>
 	<string name="_bx_payment_grid_column_title_ods_amount"><![CDATA[Amount]]></string>
 	<string name="_bx_payment_grid_column_title_ods_date"><![CDATA[Date]]></string>
+	<string name="_bx_payment_grid_column_title_sbs_seller_id"><![CDATA[Seller]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_transaction"><![CDATA[Subscription]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_license"><![CDATA[License]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_amount"><![CDATA[Amount]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_date"><![CDATA[Date]]></string>
 	<string name="_bx_payment_grid_column_title_crts_vendor_id"><![CDATA[Vendor]]></string>
 	<string name="_bx_payment_grid_column_title_crts_items_count"><![CDATA[Count]]></string>
 	<string name="_bx_payment_grid_column_title_crts_items_price"><![CDATA[Price]]></string>
@@ -73,6 +99,7 @@
 	<string name="_bx_payment_grid_action_title_ods_cancel"><![CDATA[Cancel]]></string>
 	<string name="_bx_payment_grid_action_title_ods_process"><![CDATA[Process]]></string>
 	<string name="_bx_payment_grid_action_title_ods_view_order"><![CDATA[View]]></string>
+	<string name="_bx_payment_grid_action_title_sbs_view_order"><![CDATA[View]]></string>
 	<string name="_bx_payment_grid_action_title_crts_delete"><![CDATA[Delete]]></string>
 	<string name="_bx_payment_grid_action_title_crts_continue"><![CDATA[Continue]]></string>
 	<string name="_bx_payment_grid_action_title_crt_delete"><![CDATA[Delete]]></string>

+ 20 - 3
modules/boonex/payment/install/sql/enable.sql

@@ -22,6 +22,9 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 ('bx_payment_carts', '_bx_payment_page_title_sys_carts', '_bx_payment_page_title_carts', @sName, 5, 2147483647, 1, 'payment-carts', 'page.php?i=payment-carts', '', '', '', 0, 1, 0, 'BxPaymentPageCart', 'modules/boonex/payment/classes/BxPaymentPageCart.php'),
 ('bx_payment_cart', '_bx_payment_page_title_sys_cart', '_bx_payment_page_title_cart', @sName, 5, 2147483647, 1, 'payment-cart', 'page.php?i=payment-cart', '', '', '', 0, 1, 0, 'BxPaymentPageCart', 'modules/boonex/payment/classes/BxPaymentPageCart.php'),
 ('bx_payment_history', '_bx_payment_page_title_sys_history', '_bx_payment_page_title_history', @sName, 5, 2147483647, 1, 'payment-history', 'page.php?i=payment-history', '', '', '', 0, 1, 0, 'BxPaymentPageHistory', 'modules/boonex/payment/classes/BxPaymentPageHistory.php'),
+('bx_payment_sbs_list', '_bx_payment_page_title_sys_sbs_list', '_bx_payment_page_title_sbs_list', @sName, 5, 2147483647, 1, 'payment-sbs-list', 'page.php?i=payment-sbs-list', '', '', '', 0, 1, 0, 'BxPaymentPageSubscriptions', 'modules/boonex/payment/classes/BxPaymentPageSubscriptions.php'),
+('bx_payment_sbs_history', '_bx_payment_page_title_sys_sbs_history', '_bx_payment_page_title_sbs_history', @sName, 5, 2147483647, 1, 'payment-sbs-history', 'page.php?i=payment-sbs-history', '', '', '', 0, 1, 0, 'BxPaymentPageSubscriptions', 'modules/boonex/payment/classes/BxPaymentPageSubscriptions.php'),
+('bx_payment_sbs_details', '_bx_payment_page_title_sys_sbs_details', '_bx_payment_page_title_sbs_details', @sName, 5, 2147483647, 1, 'payment-sbs-details', 'page.php?i=payment-sbs-details', '', '', '', 0, 1, 0, 'BxPaymentPageSubscriptions', 'modules/boonex/payment/classes/BxPaymentPageSubscriptions.php'),
 ('bx_payment_orders', '_bx_payment_page_title_sys_orders', '_bx_payment_page_title_orders', @sName, 5, 2147483647, 1, 'payment-orders', 'page.php?i=payment-orders', '', '', '', 0, 1, 0, 'BxPaymentPageOrders', 'modules/boonex/payment/classes/BxPaymentPageOrders.php'),
 ('bx_payment_details', '_bx_payment_page_title_sys_details', '_bx_payment_page_title_details', @sName, 5, 2147483647, 1, 'payment-details', 'page.php?i=payment-details', '', '', '', 0, 1, 0, 'BxPaymentPageDetails', 'modules/boonex/payment/classes/BxPaymentPageDetails.php');
 
@@ -29,17 +32,19 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designb
 ('bx_payment_join', 1, @sName, '_bx_payment_page_block_title_join', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:14:"get_block_join";s:6:"params";a:0:{}s:5:"class";s:4:"Join";}', 0, 0, 1),
 
 ('bx_payment_carts', 1, @sName, '_bx_payment_page_block_title_carts', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:15:"get_block_carts";s:6:"params";a:0:{}s:5:"class";s:4:"Cart";}', 0, 0, 1),
-
 ('bx_payment_cart', 1, @sName, '_bx_payment_page_block_title_cart', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:14:"get_block_cart";s:6:"params";a:0:{}s:5:"class";s:4:"Cart";}', 0, 0, 1),
-
 ('bx_payment_history', 1, @sName, '_bx_payment_page_block_title_history', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:22:"get_block_cart_history";s:6:"params";a:0:{}s:5:"class";s:4:"Cart";}', 0, 0, 1),
 
+('bx_payment_sbs_list', 1, @sName, '_bx_payment_page_block_title_sbs_list', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:14:"get_block_list";s:6:"params";a:0:{}s:5:"class";s:13:"Subscriptions";}', 0, 0, 1),
+('bx_payment_sbs_history', 1, @sName, '_bx_payment_page_block_title_sbs_history', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:17:"get_block_history";s:6:"params";a:0:{}s:5:"class";s:13:"Subscriptions";}', 0, 0, 1),
+('bx_payment_sbs_details', 1, @sName, '_bx_payment_page_block_title_sbs_details', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:17:"get_block_details";s:6:"params";a:0:{}s:5:"class";s:13:"Subscriptions";}', 0, 0, 1),
+
 ('bx_payment_orders', 1, @sName, '_bx_payment_page_block_title_orders', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:16:"get_block_orders";s:6:"params";a:0:{}s:5:"class";s:6:"Orders";}', 0, 0, 1),
 
 ('bx_payment_details', 1, @sName, '_bx_payment_page_block_title_details', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:10:"bx_payment";s:6:"method";s:17:"get_block_details";s:6:"params";a:0:{}s:5:"class";s:7:"Details";}', 0, 0, 1);
 
 
--- MENUS
+-- MENU: cart submenu
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_payment_menu_cart_submenu', '_bx_payment_menu_title_cart_submenu', 'bx_payment_menu_cart_submenu', 'bx_payment', 6, 0, 1, '', '');
 
@@ -50,7 +55,19 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_payment_menu_cart_submenu', 'bx_payment', 'cart', '_bx_payment_menu_item_title_system_cart', '_bx_payment_menu_item_title_cart', 'page.php?i=payment-carts', '', '_self', '', '', '', 2147483647, 1, 0, 1, 1),
 ('bx_payment_menu_cart_submenu', 'bx_payment', 'cart-history', '_bx_payment_menu_item_title_system_cart_history', '_bx_payment_menu_item_title_cart_history', 'page.php?i=payment-history', '', '_self', '', '', '', 2147483647, 1, 0, 1, 2);
 
+-- MENU: subscriptions submenu
+INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
+('bx_payment_menu_sbs_submenu', '_bx_payment_menu_title_sbs_submenu', 'bx_payment_menu_sbs_submenu', 'bx_payment', 6, 0, 1, '', '');
+
+INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
+('bx_payment_menu_sbs_submenu', 'bx_payment', '_bx_payment_menu_set_title_sbs_submenu', 0);
+
+INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES 
+('bx_payment_menu_sbs_submenu', 'bx_payment', 'sbs-list', '_bx_payment_menu_item_title_system_sbs_list', '_bx_payment_menu_item_title_sbs_list', 'page.php?i=payment-sbs-list', '', '_self', '', '', '', 2147483647, 1, 0, 1, 1),
+('bx_payment_menu_sbs_submenu', 'bx_payment', 'sbs-history', '_bx_payment_menu_item_title_system_sbs_history', '_bx_payment_menu_item_title_sbs_history', 'page.php?i=payment-sbs-history', '', '_self', '', '', '', 2147483647, 1, 0, 1, 2),
+('bx_payment_menu_sbs_submenu', 'bx_payment', 'sbs-details', '_bx_payment_menu_item_title_system_sbs_details', '_bx_payment_menu_item_title_sbs_details', 'page.php?i=payment-sbs-details', '', '_self', '', '', '', 2147483647, 1, 0, 1, 3);
 
+-- MENU: orders submenu
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_payment_menu_orders_submenu', '_bx_payment_menu_title_orders_submenu', 'bx_payment_menu_orders_submenu', 'bx_payment', 6, 0, 1, '', '');
 

+ 20 - 1
modules/boonex/payment/install/sql/install.sql

@@ -177,7 +177,10 @@ INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `fie
 ('bx_payment_grid_carts', 'Array', '', '', 'vendor_id', '', '', '', 20, NULL, 'start', '', '', '', 'like', '', '', 2147483647, 'BxPaymentGridCarts', 'modules/boonex/payment/classes/BxPaymentGridCarts.php'),
 ('bx_payment_grid_cart', 'Array', '', '', 'descriptor', '', '', '', 20, NULL, 'start', '', 'title,description', '', 'like', '', '', 2147483647, 'BxPaymentGridCart', 'modules/boonex/payment/classes/BxPaymentGridCart.php'),
 
-('bx_payment_grid_orders_history', 'Sql', 'SELECT `tt`.`id` AS `id`, `tt`.`seller_id` AS `seller_id`, `ttp`.`order` AS `transaction`, `tt`.`license` AS `license`, `tt`.`amount` AS `amount`, `tt`.`date` AS `date` FROM `bx_payment_transactions` AS `tt` LEFT JOIN `bx_payment_transactions_pending` AS `ttp` ON `tt`.`pending_id`=`ttp`.`id` WHERE 1 ', 'bx_payment_transactions', 'id', 'date', '', '', 100, NULL, 'start', '', 'ttp`.`order,tt`.`license,tt`.`amount,tt`.`date', '', 'auto', '', '', 2147483647, 'BxPaymentGridHistory', 'modules/boonex/payment/classes/BxPaymentGridHistory.php'),
+('bx_payment_grid_sbs_list', 'Sql', 'SELECT `id`, `seller_id`, `amount`, `order` AS `transaction`, `date` FROM `bx_payment_transactions_pending` WHERE 1 AND `type`=''recurring'' AND `order`<>'''' AND `error_code`=''0'' ', 'bx_payment_transactions_pending', 'id', 'date', '', '', 100, NULL, 'start', '', 'order,amount,date', '', 'auto', '', '', 2147483647, 'BxPaymentGridSbsList', 'modules/boonex/payment/classes/BxPaymentGridSbsList.php'),
+('bx_payment_grid_sbs_history', 'Sql', 'SELECT `tt`.`id` AS `id`, `tt`.`seller_id` AS `seller_id`, `ttp`.`order` AS `transaction`, `tt`.`license` AS `license`, `tt`.`amount` AS `amount`, `tt`.`date` AS `date` FROM `bx_payment_transactions` AS `tt` LEFT JOIN `bx_payment_transactions_pending` AS `ttp` ON `tt`.`pending_id`=`ttp`.`id` WHERE 1 AND `ttp`.`type`=''recurring'' ', 'bx_payment_transactions', 'id', 'date', '', '', 100, NULL, 'start', '', 'ttp`.`order,tt`.`license,tt`.`amount,tt`.`date', '', 'auto', '', '', 2147483647, 'BxPaymentGridSbsHistory', 'modules/boonex/payment/classes/BxPaymentGridSbsHistory.php'),
+
+('bx_payment_grid_orders_history', 'Sql', 'SELECT `tt`.`id` AS `id`, `tt`.`seller_id` AS `seller_id`, `ttp`.`order` AS `transaction`, `tt`.`license` AS `license`, `tt`.`amount` AS `amount`, `tt`.`date` AS `date` FROM `bx_payment_transactions` AS `tt` LEFT JOIN `bx_payment_transactions_pending` AS `ttp` ON `tt`.`pending_id`=`ttp`.`id` WHERE 1 AND `ttp`.`type`=''single'' ', 'bx_payment_transactions', 'id', 'date', '', '', 100, NULL, 'start', '', 'ttp`.`order,tt`.`license,tt`.`amount,tt`.`date', '', 'auto', '', '', 2147483647, 'BxPaymentGridHistory', 'modules/boonex/payment/classes/BxPaymentGridHistory.php'),
 ('bx_payment_grid_orders_processed', 'Sql', 'SELECT `tt`.`id` AS `id`, `tt`.`client_id` AS `client_id`, `tt`.`seller_id` AS `seller_id`, `tt`.`module_id` AS `module_id`, `tt`.`item_id` AS `item_id`, `tt`.`item_count` AS `item_count`, `ttp`.`order` AS `transaction`, `ttp`.`error_msg` AS `error_msg`, `ttp`.`provider` AS `provider`, `tt`.`license` AS `license`, `tt`.`amount` AS `amount`, `tt`.`date` AS `date` FROM `bx_payment_transactions` AS `tt` LEFT JOIN `bx_payment_transactions_pending` AS `ttp` ON `tt`.`pending_id`=`ttp`.`id` WHERE 1 ', 'bx_payment_transactions', 'id', 'date', '', '', 100, NULL, 'start', '', 'ttp`.`order,tt`.`license,tt`.`amount,tt`.`date', '', 'auto', '', '', 2147483647, 'BxPaymentGridProcessed', 'modules/boonex/payment/classes/BxPaymentGridProcessed.php'),
 ('bx_payment_grid_orders_pending', 'Sql', 'SELECT `tt`.`id` AS `id`, `tt`.`client_id` AS `client_id`, `tt`.`seller_id` AS `seller_id`, `tt`.`items` AS `items`, `tt`.`amount` AS `amount`, `tt`.`order` AS `transaction`, `tt`.`error_msg` AS `error_msg`, `tt`.`provider` AS `provider`, `tt`.`date` AS `date` FROM `bx_payment_transactions_pending` AS `tt` WHERE 1 AND (ISNULL(`tt`.`order`) OR (NOT ISNULL(`tt`.`order`) AND `tt`.`error_code`<>''0'')) ', 'bx_payment_transactions_pending', 'id', 'date', '', '', 100, NULL, 'start', '', 'tt`.`order,tt`.`amount,tt`.`date', '', 'auto', '', '', 2147483647, 'BxPaymentGridPending', 'modules/boonex/payment/classes/BxPaymentGridPending.php');
 
@@ -195,6 +198,20 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 ('bx_payment_grid_cart', 'price_single', '_bx_payment_grid_column_title_crt_price', '10%', 0, '16', '', 5),
 ('bx_payment_grid_cart', 'actions', '', '18%', 0, '', '', 6),
 
+('bx_payment_grid_sbs_list', 'checkbox', '', '2%', 0, '', '', 1),
+('bx_payment_grid_sbs_list', 'seller_id', '_bx_payment_grid_column_title_sbs_seller_id', '25%', 0, '24', '', 2),
+('bx_payment_grid_sbs_list', 'transaction', '_bx_payment_grid_column_title_sbs_transaction', '30%', 0, '36', '', 3),
+('bx_payment_grid_sbs_list', 'amount', '_bx_payment_grid_column_title_sbs_amount', '10%', 0, '16', '', 5),
+('bx_payment_grid_sbs_list', 'date', '_bx_payment_grid_column_title_sbs_date', '15%', 0, '16', '', 5),
+('bx_payment_grid_sbs_list', 'actions', '', '18%', 0, '', '', 6),
+
+('bx_payment_grid_sbs_history', 'seller_id', '_bx_payment_grid_column_title_sbs_seller_id', '24%', 0, '20', '', 1),
+('bx_payment_grid_sbs_history', 'transaction', '_bx_payment_grid_column_title_sbs_transaction', '22%', 0, '18', '', 2),
+('bx_payment_grid_sbs_history', 'license', '_bx_payment_grid_column_title_sbs_license', '22%', 0, '18', '', 3),
+('bx_payment_grid_sbs_history', 'amount', '_bx_payment_grid_column_title_sbs_amount', '10%', 1, '10', '', 4),
+('bx_payment_grid_sbs_history', 'date', '_bx_payment_grid_column_title_sbs_date', '10%', 0, '10', '', 5),
+('bx_payment_grid_sbs_history', 'actions', '', '12%', 0, '', '', 6),
+
 ('bx_payment_grid_orders_history', 'seller_id', '_bx_payment_grid_column_title_ods_seller_id', '24%', 0, '20', '', 1),
 ('bx_payment_grid_orders_history', 'transaction', '_bx_payment_grid_column_title_ods_transaction', '22%', 0, '18', '', 2),
 ('bx_payment_grid_orders_history', 'license', '_bx_payment_grid_column_title_ods_license', '22%', 0, '18', '', 3),
@@ -225,6 +242,8 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_payment_grid_cart', 'bulk', 'delete', '_bx_payment_grid_action_title_crt_delete', '', 0, 1, 1),
 ('bx_payment_grid_cart', 'single', 'delete', '_bx_payment_grid_action_title_crt_delete', 'remove', 1, 1, 1),
 
+('bx_payment_grid_sbs_history', 'single', 'view_order', '_bx_payment_grid_action_title_sbs_view_order', 'ellipsis-h', 1, 0, 1),
+
 ('bx_payment_grid_orders_history', 'single', 'view_order', '_bx_payment_grid_action_title_ods_view_order', 'ellipsis-h', 1, 0, 1),
 
 ('bx_payment_grid_orders_processed', 'independent', 'add', '_bx_payment_grid_action_title_ods_add', '', 0, 0, 1),

+ 27 - 0
modules/boonex/russian/data/langs/bx_payment/ru.xml

@@ -15,6 +15,18 @@
 	<string name="_bx_payment_page_block_title_carts"><![CDATA[Корзины]]></string>
 	<string name="_bx_payment_page_block_title_cart"><![CDATA[Корзина продавца {0}]]></string>
 
+    <string name="_bx_payment_page_title_sys_sbs_list"><![CDATA[Лист подписок]]></string>
+    <string name="_bx_payment_page_title_sbs_list"><![CDATA[Подписки]]></string>
+    <string name="_bx_payment_page_block_title_sbs_list"><![CDATA[Подписки]]></string>
+
+    <string name="_bx_payment_page_title_sys_sbs_history"><![CDATA[История подписок]]></string>
+    <string name="_bx_payment_page_title_sbs_history"><![CDATA[История выплат]]></string>
+    <string name="_bx_payment_page_block_title_sbs_history"><![CDATA[История выплат]]></string>
+
+    <string name="_bx_payment_page_title_sys_sbs_details"><![CDATA[Детали подписок]]></string>
+    <string name="_bx_payment_page_title_sbs_details"><![CDATA[Платежная информация]]></string>
+    <string name="_bx_payment_page_block_title_sbs_details"><![CDATA[Платежная информация]]></string>
+
 	<string name="_bx_payment_page_title_sys_history"><![CDATA[История покупок]]></string>
 	<string name="_bx_payment_page_title_history"><![CDATA[История покупок]]></string>
 	<string name="_bx_payment_page_block_title_history"><![CDATA[История покупок]]></string>
@@ -54,6 +66,15 @@
     <string name="_bx_payment_menu_item_title_system_cart_history"><![CDATA[История покупок]]></string>
     <string name="_bx_payment_menu_item_title_cart_history"><![CDATA[История покупок]]></string>
 
+    <string name="_bx_payment_menu_title_sbs_submenu"><![CDATA[Подменю подписок]]></string>
+    <string name="_bx_payment_menu_set_title_sbs_submenu"><![CDATA[Подменю подписок]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_list"><![CDATA[Лист подписок]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_list"><![CDATA[Подписки]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_history"><![CDATA[История подписок]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_history"><![CDATA[История выплат]]></string>
+    <string name="_bx_payment_menu_item_title_system_sbs_details"><![CDATA[Детали подписок]]></string>
+    <string name="_bx_payment_menu_item_title_sbs_details"><![CDATA[Платежная информация]]></string>
+
 	<!-- GRIDS -->
 	<string name="_bx_payment_grid_column_title_ods_client_id"><![CDATA[Покупатель]]></string>
 	<string name="_bx_payment_grid_column_title_ods_seller_id"><![CDATA[Продавец]]></string>
@@ -61,6 +82,11 @@
 	<string name="_bx_payment_grid_column_title_ods_license"><![CDATA[Лицензия]]></string>
 	<string name="_bx_payment_grid_column_title_ods_amount"><![CDATA[Сумма]]></string>
 	<string name="_bx_payment_grid_column_title_ods_date"><![CDATA[Дата]]></string>
+	<string name="_bx_payment_grid_column_title_sbs_seller_id"><![CDATA[Продавец]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_transaction"><![CDATA[Подписка]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_license"><![CDATA[Лицензия]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_amount"><![CDATA[Сумма]]></string>
+    <string name="_bx_payment_grid_column_title_sbs_date"><![CDATA[Дата]]></string>
 	<string name="_bx_payment_grid_column_title_crts_vendor_id"><![CDATA[Продавец]]></string>
 	<string name="_bx_payment_grid_column_title_crts_items_count"><![CDATA[Количество]]></string>
 	<string name="_bx_payment_grid_column_title_crts_items_price"><![CDATA[Цена]]></string>
@@ -73,6 +99,7 @@
 	<string name="_bx_payment_grid_action_title_ods_cancel"><![CDATA[Отмена]]></string>
 	<string name="_bx_payment_grid_action_title_ods_process"><![CDATA[Обработать]]></string>
 	<string name="_bx_payment_grid_action_title_ods_view_order"><![CDATA[Детали заказа]]></string>
+	<string name="_bx_payment_grid_action_title_sbs_view_order"><![CDATA[Детали выплаты]]></string>
 	<string name="_bx_payment_grid_action_title_crts_delete"><![CDATA[Удалить]]></string>
 	<string name="_bx_payment_grid_action_title_crts_continue"><![CDATA[Продолжить]]></string>
 	<string name="_bx_payment_grid_action_title_crt_delete"><![CDATA[Удалить]]></string>

+ 2 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -1978,6 +1978,7 @@
 	<string name="_sys_menu_item_title_profile"><![CDATA[Профиль]]></string>
 	<string name="_sys_menu_item_title_set_acl_level"><![CDATA[Назначить членство]]></string>
 	<string name="_sys_menu_item_title_studio"><![CDATA[Студия]]></string>
+	<string name="_sys_menu_item_title_subscriptions"><![CDATA[Подписки]]></string>
 	<string name="_sys_menu_item_title_system_about"><![CDATA[Об...]]></string>
 	<string name="_sys_menu_item_title_system_privacy"><![CDATA[Конфиденциальность]]></string>
 	<string name="_sys_menu_item_title_system_switch_language"><![CDATA[Язык]]></string>
@@ -2008,6 +2009,7 @@
 	<string name="_sys_menu_item_title_system_search"><![CDATA[Поиск]]></string>
 	<string name="_sys_menu_item_title_system_set_acl_level"><![CDATA[Назначить членство]]></string>
 	<string name="_sys_menu_item_title_system_studio"><![CDATA[Студия]]></string>
+	<string name="_sys_menu_item_title_system_subscriptions"><![CDATA[Подписки]]></string>
 	<string name="_sys_menu_set_title_account"><![CDATA[Аккаунт]]></string>
 	<string name="_sys_menu_set_title_account_dashboard_manage_tools"><![CDATA[Инструменты управления Панелью Аккаунта]]></string>
 	<string name="_sys_menu_set_title_account_settings"><![CDATA[Настройки Аккаунта]]></string>

+ 24 - 0
subscriptions.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+require_once('./inc/header.inc.php');
+require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
+
+bx_import('BxDolLanguages');
+
+check_logged();
+
+$sUrl = BxDolPayments::getInstance()->getSubscriptionsUrl();
+if(empty($sUrl))
+	BxDolTemplate::getInstance()->displayPageNotFound();
+
+header('Location: ' . $sUrl);
+exit;
+
+/** @} */