1
0
Fork 0
mirror of synced 2025-04-11 05:00:55 +00:00
Исправлена проверка валюты при установке
Добавлено ограничение на необходимость соотношения хотя бы 1 магазина при мультивалютности
This commit is contained in:
Ivan Chaplygin 2024-01-09 12:48:42 +03:00
parent a66ec1d663
commit 429cea2b34
5 changed files with 14 additions and 2 deletions

View file

@ -376,15 +376,21 @@ class intaro_retailcrm extends CModule
if (count($arResult['arSites']) > 1) {
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, 0);
$isEmptySites = true;
foreach ($arResult['arSites'] as $site) {
$siteCode[$site['LID']] = null;
if ($_POST['sites-id-' . $site['LID']] && !empty($_POST['sites-id-' . $site['LID']])) {
$siteCode[$site['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $site['LID']]));
$isEmptySites = false;
}
}
if ($isEmptySites) {
$arResult['errCode'] = 'ERR_EMPTY_SITES_LIST';
}
$arResult['arCurrencySites'] = RCrmActions::getCurrencySites();
$result = $this->getReferenceShops($api_host, $api_key);
@ -397,9 +403,11 @@ class intaro_retailcrm extends CModule
foreach ($arResult['arSites'] as $bitrixSite) {
$LID = $bitrixSite['LID'] ?? null;
$cmsCurrency = $arResult['arCurrencySites'][$LID] ?? null;
$crmCurrency = $arResult['sitesList'][$siteCode[$LID]]['currency'] ?? null;
$arResult['errCode'] = CurrencyService::validateCurrency($cmsCurrency, $crmCurrency);
if (isset($arResult['sitesList'][$siteCode[$LID]])) {
$crmCurrency = $arResult['sitesList'][$siteCode[$LID]]['currency'] ?? null;
$arResult['errCode'] = CurrencyService::validateCurrency($cmsCurrency, $crmCurrency);
}
}
if (count($arResult['arSites']) != count($siteCode)) {

View file

@ -11,6 +11,7 @@ $MESS ['ERR_403'] = 'Wrong apiKey.';
$MESS ['ERR_0'] = 'Server connection timeout error.';
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Check availability of API methods for current key.';
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Match at least 1 store';
//$MESS ['URL_NOT_FOUND'] = 'One or more sites have empty "server URL" field.';
$MESS ['INFO_1'] = 'Enter the address of RetailCRM instance (for example, https://demo.retailcrm.ru) and API key.';
$MESS ['INFO_2'] = 'API key can be generated when the store is registered in RetailCRM (Administration > Integration).';

View file

@ -8,6 +8,7 @@ $MESS ['ERR_6'] = 'CRM address may be incorrect.';
$MESS ['ERR_403'] = 'Wrong apiKey.';
$MESS ['ERR_0'] = 'Server connection timeout error.';
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Match at least 1 store';
$MESS ['INFO_1'] = 'Set the correspondence between 1C-Bitrix and RetailCRM stores.';
$MESS ['INFO_2'] = 'All your stores in RetailCRM must have a common API key!';
$MESS ['ERR_CURRENCY_SITES'] = 'The currency of the site differs from the currency of the store in CRM.

View file

@ -11,6 +11,7 @@ $MESS ['ERR_403'] = 'Неверный apiKey.';
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.';
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Соотнесите хотя бы 1 магазин';
$MESS ['ERR_COUNT_SITES'] = 'Введенный вами API Ключ относится более чем к одному магазину.
Измените настройки доступа для API ключа, он должен работать только с одним магазином в CRM';
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.

View file

@ -8,6 +8,7 @@ $MESS ['ERR_6'] = 'Возможно неверно введен адрес Retai
$MESS ['ERR_403'] = 'Неверный apiKey.';
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Соотнесите хотя бы 1 магазин';
$MESS ['INFO_1'] = 'Задайте соответствия между Вашими магазинами в 1С-Битрикс и RetailCRM.';
$MESS ['INFO_2'] = 'У всех Ваших магазинов в RetailCRM должен быть общий API-ключ!';
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.