ref #91590 Добавлены провеки валюты пр иустановке и настройке модуля.
Добавлена верстка для вывода сообщений
This commit is contained in:
parent
8ce4f5d6c6
commit
abf7e6df3e
4 changed files with 56 additions and 12 deletions
|
@ -1438,6 +1438,8 @@ class intaro_retailcrm extends CModule
|
|||
|
||||
try {
|
||||
$result = $client->makeRequest('/reference/sites', 'GET');
|
||||
$bitrixSites = RCrmActions::getSitesList();
|
||||
$bitrixBaseCurrency = CCurrency::GetBaseCurrency();
|
||||
} catch (CurlException $e) {
|
||||
RCrmActions::eventLog(
|
||||
'intaro.retailcrm/install/index.php', 'RetailCrm\ApiClient::sitesList',
|
||||
|
@ -1445,21 +1447,38 @@ class intaro_retailcrm extends CModule
|
|||
);
|
||||
|
||||
$res['errCode'] = 'ERR_' . $e->getCode();
|
||||
}
|
||||
|
||||
if (!isset($result) || $result->getStatusCode() == 200) {
|
||||
ConfigProvider::setApiVersion(self::V5);
|
||||
|
||||
$res['sitesList'] = $APPLICATION->ConvertCharsetArray(
|
||||
$result->sites,
|
||||
'utf-8',
|
||||
SITE_CHARSET
|
||||
);
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
$res['errCode'] = 'ERR_METHOD_NOT_FOUND';
|
||||
//Проверка, что был получен корректный ответ
|
||||
if (isset($result) && $result->getStatusCode() == 200) {
|
||||
//Проверка количества магазинов, доступных по апи
|
||||
if (count($bitrixSites) < count($result->sites)) {
|
||||
$res['errCode'] = 'ERR_COUNT_SITES';
|
||||
}
|
||||
|
||||
//Проверка совпадения базовой валюты CMS
|
||||
if (!isset($res)) {
|
||||
foreach ($result->sites as $site) {
|
||||
if ($site['currency'] !== $bitrixBaseCurrency) {
|
||||
$res['errCode'] = 'ERR_CURRENCY_SITES';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($res)) {
|
||||
ConfigProvider::setApiVersion(self::V5);
|
||||
|
||||
$res['sitesList'] = $APPLICATION->ConvertCharsetArray(
|
||||
$result->sites,
|
||||
'utf-8',
|
||||
SITE_CHARSET
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$res['errCode'] = 'ERR_METHOD_NOT_FOUND';
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ $MESS ['ERR_403'] = 'Неверный apiKey.';
|
|||
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
|
||||
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
|
||||
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.';
|
||||
$MESS ['ERR_COUNT_SITES'] = 'По введенному ключу апи доступно больше магазинов, чем существует в cms';
|
||||
$MESS ['ERR_CURRENCY_SITES'] = 'Базовая валюта отличается от валюты магазина в CRM';
|
||||
//$MESS ['URL_NOT_FOUND'] = 'В настройках одного или нескольких сайтов не заполнено поле "URL сервера".';
|
||||
$MESS ['INFO_1'] = 'Введите адрес экземпляра RetailCRM (например, https://demo.retailcrm.ru) и API-ключ.';
|
||||
$MESS ['INFO_2'] = 'API-ключ можно сгенерировать при регистрации магазина в RetailCRM (Администрирование > Интеграция).';
|
||||
|
|
|
@ -27,6 +27,8 @@ $MESS ['ORDER_UPLOAD_INFO'] = 'Для загрузки всех заказов
|
|||
$MESS ['INTEGRATION_PAYMENT_LIST'] = 'Для интеграционных оплат статус не передаётся';
|
||||
$MESS ['INTEGRATIONS'] = ' (интеграционная)';
|
||||
|
||||
$MESS ['ERR_CURRENCY_SITES'] = 'Базовая валюта отличается от валюты магазина в CRM!';
|
||||
|
||||
$MESS ['ICRM_OPTIONS_SUBMIT_TITLE'] = 'Сохранить настройки';
|
||||
$MESS ['ICRM_OPTIONS_SUBMIT_VALUE'] = 'Сохранить';
|
||||
|
||||
|
|
|
@ -1061,6 +1061,15 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
$currencyOption = COption::GetOptionString($mid, $CRM_CURRENCY, 0) ?: $baseCurrency;
|
||||
$currencyList = \Bitrix\Currency\CurrencyManager::getCurrencyList();
|
||||
|
||||
$errCurrency = null;
|
||||
|
||||
foreach ($arResult['sitesList'] as $site) {
|
||||
if ($site['currency'] !== $baseCurrency) {
|
||||
$errCurrency['site'] = ' (' . $site['name'] . ')';
|
||||
$errCurrency['errorText'] = 'ERR_CURRENCY_SITES';
|
||||
}
|
||||
}
|
||||
|
||||
$customFields = [['code' => '__default_empty_value__', 'name' => GetMessage('SELECT_VALUE')]];
|
||||
$crmCouponFieldOption = COption::GetOptionString($mid, $CRM_COUPON_FIELD, 0) ?: null;
|
||||
$page = 1;
|
||||
|
@ -1462,7 +1471,8 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
<tr class="heading">
|
||||
<td colspan="2"><b><?php echo GetMessage('ICRM_CONN_SETTINGS'); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<tr >
|
||||
<td width="50%" class="adm-detail-content-cell-l"><?php echo GetMessage('ICRM_API_HOST'); ?></td>
|
||||
<td width="50%" class="adm-detail-content-cell-r"><input type="text" id="api_host" name="api_host" value="<?php echo $api_host; ?>"></td>
|
||||
</tr>
|
||||
|
@ -1470,6 +1480,17 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
<td width="50%" class="adm-detail-content-cell-l"><?php echo GetMessage('ICRM_API_KEY'); ?></td>
|
||||
<td width="50%" class="adm-detail-content-cell-r"><input type="text" id="api_key" name="api_key" value="<?php echo $api_key; ?>"></td>
|
||||
</tr>
|
||||
|
||||
<?php if ($errCurrency): ?>
|
||||
<tr align="center">
|
||||
<td colspan="2">
|
||||
<strong style="color:red" >
|
||||
<?php echo GetMessage($errCurrency['errorText']) . $errCurrency['site']; ?>
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count($arResult['arSites']) > 1): ?>
|
||||
<tr class="heading">
|
||||
<td colspan="2" style="background-color: transparent;">
|
||||
|
|
Loading…
Add table
Reference in a new issue