• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/component/receivepaymenthelper.php
  • Класс: BitrixSalesCenterComponentReceivePaymentHelper
  • Вызов: ReceivePaymentHelper::getSendingMethodDescByType
static function getSendingMethodDescByType(string $type, string $mode, ?Payment $payment = null): ?array
{
	if ($type === 'sms')
	{
		$lastPaymentSms = null;
		$provider = null;
		$availableProviders = self::getAvailableSmsProviderIds();
		$defaultProvider = $availableProviders[0] ?? '';

		if ($payment && $mode === 'view')
		{
			$lastPaymentSmsParams = self::getLastPaymentSmsParams();
			if (is_array($lastPaymentSmsParams))
			{
				if (isset($lastPaymentSmsParams['SENDER_ID']))
				{
					$provider = $lastPaymentSmsParams['SENDER_ID'];
				}

				if (isset($lastPaymentSmsParams['MESSAGE_BODY']))
				{
					$lastPaymentSms = $lastPaymentSmsParams['MESSAGE_BODY'];
				}
			}
		}
		else
		{
			$userOptions = CUserOptions::GetOption('salescenter', 'payment_sms_provider_options');
			if (is_array($userOptions) && isset($userOptions['latest_selected_provider']))
			{
				$provider = $userOptions['latest_selected_provider'];
			}
		}

		return [
			'provider' => in_array($provider, $availableProviders) ? $provider : $defaultProvider,
			'text' => $lastPaymentSms ?? BitrixSalesCenterIntegrationCrmManager::getInstance()->getSmsTemplate(),
			'defaultText' => BitrixSalesCenterIntegrationCrmManager::getInstance()->getDefaultSmsTemplate(),
			'defaultTextWrapped' => BitrixSalesCenterIntegrationCrmManager::getInstance()->getDefaultWrappedSmsTemplate(),
			'sent' => (bool)$lastPaymentSms,
			'text_modes' => BitrixSalesCenterIntegrationCrmManager::getInstance()->getAllSmsTemplates(),
		];
	}

	if ($type === 'chat')
	{
		return [
			'text' => BitrixSalesCenterIntegrationImOpenLinesManager::getInstance()->getImMessagePreview(),
			'text_modes' => BitrixSalesCenterIntegrationImOpenLinesManager::getInstance()->getAllImMessagePreviews(),
		];
	}

	return null;
}