BxPaymentGridSbsList.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup Payment Payment
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. require_once('BxPaymentGridSbsAdministration.php');
  12. class BxPaymentGridSbsList extends BxPaymentGridSbsAdministration
  13. {
  14. protected $_aProvidersAttached;
  15. public function __construct ($aOptions, $oTemplate = false)
  16. {
  17. parent::__construct ($aOptions, $oTemplate);
  18. $this->_sManageType = 'common';
  19. $this->_aProvidersAttached = array();
  20. }
  21. public function getCode ($isDisplayHeader = true)
  22. {
  23. if(empty($this->_aQueryAppend['client_id']) || $this->_aQueryAppend['client_id'] != bx_get_logged_profile_id())
  24. return '';
  25. return parent::getCode($isDisplayHeader);
  26. }
  27. protected function _getActionActions ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
  28. {
  29. if(in_array($aRow['status'], ['cancel', 'canceled']))
  30. return '';
  31. $sMenuObject = $this->_oModule->_oConfig->getObject('menu_sbs_actions');
  32. if($this->_bIsApi) {
  33. $aParams = [];
  34. if($sType == 'single' && ($sFieldId = $this->_aOptions['field_id']) && isset($aRow[$sFieldId]))
  35. $aParams['pending_id'] = (int)$aRow[$sFieldId];
  36. return array_merge($a, ['name' => $sKey, 'type' => 'menu', 'action' => $sKey, 'params' => $aParams, 'object' => $sMenuObject]);
  37. }
  38. $sJsCode = '';
  39. if(!empty($aRow['seller_id']) && !empty($aRow['provider']) && !in_array($aRow['provider'], $this->_aProvidersAttached)) {
  40. $oProvider = $this->_oModule->getObjectProvider($aRow['provider'], $aRow['seller_id']);
  41. if($oProvider) {
  42. $oProvider->addJsCss();
  43. $sMethodName = 'getJsCode';
  44. if(method_exists($oProvider, $sMethodName))
  45. $sJsCode = $oProvider->$sMethodName();
  46. $this->_aProvidersAttached[] = $aRow['provider'];
  47. }
  48. }
  49. unset($a['attr']['bx_grid_action_single']);
  50. $a['attr'] = array_merge($a['attr'], [
  51. "onclick" => "bx_menu_popup('" . $sMenuObject . "', this, {id: 'bx-payment-subscription-" . $aRow['id'] . "'}, {id: " . $aRow['id'] . ", grid: '" . $this->_sObject . "'});"
  52. ]);
  53. return $sJsCode . parent::_getActionDefault($sType, $sKey, $a, false, $isDisabled, $aRow);
  54. }
  55. protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
  56. {
  57. if(empty($this->_aQueryAppend['client_id']))
  58. return array();
  59. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `client_id`=?", $this->_aQueryAppend['client_id']);
  60. return parent::_getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
  61. }
  62. }
  63. /** @} */