parent
401e92d8b6
commit
27a7092a0c
3 changed files with 34 additions and 21 deletions
|
@ -140,7 +140,8 @@ $MESS ['TEXT_ADDRESS_LABEL'] = 'Address (line)';
|
|||
|
||||
$MESS ['SYNC_INTEGRATION_PAYMENT'] = 'Activate synchronization of integrated payments';
|
||||
$MESS ['DESCRIPTION_AUTO_PAYMENT_TYPE'] = 'Automatically created payment type for integration substitution (Bitrix)';
|
||||
$MESS ['SUBSTITUTED_PAYMENT'] = '(Substituted Bitrix)';
|
||||
$MESS ['NO_INTEGRATION_PAYMENT'] = '(Non-integrated)';
|
||||
$MESS ['ERR_CHECK_JOURNAL'] = 'Error while saving. Details in the event log';
|
||||
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Integration payment linkage error';
|
||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'When correlating CMS and CRM integration payments, a regular payment is created on the system side to which orders will be linked';
|
||||
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'For this option to work correctly, the api key needs access to receive and edit reference book';
|
||||
|
|
|
@ -199,7 +199,8 @@ $MESS ['TEXT_ADDRESS_LABEL'] = 'Адрес (строкой)';
|
|||
|
||||
$MESS ['SYNC_INTEGRATION_PAYMENT'] = 'Активировать синхронизацию интегрированных типов оплат';
|
||||
$MESS ['DESCRIPTION_AUTO_PAYMENT_TYPE'] = 'Автоматически созданный тип оплаты для подмены интеграционной (Bitrix)';
|
||||
$MESS ['SUBSTITUTED_PAYMENT'] = '(Подменённый Bitrix)';
|
||||
$MESS ['NO_INTEGRATION_PAYMENT'] = '(Не интегрированная)';
|
||||
$MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий';
|
||||
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка связи интеграционных оплат';
|
||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При соотнесении интеграционных оплат CMS и CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы';
|
||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При соотношении интеграционных оплат CMS и CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы.';
|
||||
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции, апи-ключу необходимы доступы на получение и редактирование справочников';
|
||||
|
|
|
@ -68,6 +68,7 @@ $CRM_CART = 'cart';
|
|||
$MODULE_DEACTIVATE = 'module_deactivate';
|
||||
$AGENTS_DEACTIVATE = 'agents_deactivate';
|
||||
$EVENTS_DEACTIVATE = 'events_deactivate';
|
||||
$CRM_PART_SUBSTITUTED_PAYMENT_CODE = '-not-integration';
|
||||
|
||||
if (!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog')) {
|
||||
return;
|
||||
|
@ -783,11 +784,6 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
$CRM_DELIVERY_TYPES_ARR,
|
||||
serialize(RCrmActions::clearArr(is_array($deliveryTypesArr) ? $deliveryTypesArr : []))
|
||||
);
|
||||
COption::SetOptionString(
|
||||
$mid,
|
||||
$CRM_PAYMENT_TYPES,
|
||||
serialize(RCrmActions::clearArr(is_array($paymentTypesArr) ? $paymentTypesArr : []))
|
||||
);
|
||||
COption::SetOptionString(
|
||||
$mid,
|
||||
$CRM_PAYMENT_STATUSES,
|
||||
|
@ -838,30 +834,34 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
|
||||
$syncIntegrationPayment = htmlspecialchars(trim($_POST['sync-integration-payment'])) ?: 'N';
|
||||
|
||||
if ($syncIntegrationPayment === 'Y') {
|
||||
ConfigProvider::setSyncIntegrationPayment($syncIntegrationPayment);
|
||||
ConfigProvider::setSyncIntegrationPayment($syncIntegrationPayment);
|
||||
|
||||
if ($syncIntegrationPayment === 'Y') {
|
||||
$crmCodePaymentList = array_column($arResult['paymentTypesList'], 'code');
|
||||
|
||||
foreach (RetailcrmConfigProvider::getIntegrationPaymentTypes() as $integrationPayment) {
|
||||
if (in_array($integrationPayment, $paymentTypesArr)) {
|
||||
$originalPayment = $arResult['paymentTypesList'][$integrationPayment];
|
||||
$codePayment = $integrationPayment . '-not-integration';
|
||||
$sites = $siteListArr !== [] ? array_values($siteListArr) : array_keys($availableSites);
|
||||
$sites = array_filter($sites, function ($site) {return $site !== null;});
|
||||
$codePayment = $integrationPayment . $CRM_PART_SUBSTITUTED_PAYMENT_CODE;
|
||||
|
||||
$response = $api->paymentTypesEdit([
|
||||
'name' => $originalPayment['name'] . ' ' . GetMessage('SUBSTITUTED_PAYMENT'),
|
||||
'name' => $originalPayment['name'] . ' ' . GetMessage('NO_INTEGRATION_PAYMENT'),
|
||||
'code' => $codePayment,
|
||||
'active' => true,
|
||||
'description' => GetMessage('DESCRIPTION_AUTO_PAYMENT_TYPE'),
|
||||
'sites' => $sites,
|
||||
'sites' => $originalPayment['sites'],
|
||||
'paymentStatuses' => $originalPayment['paymentStatuses']
|
||||
]);
|
||||
|
||||
$statusCode = $response->getStatusCode();
|
||||
|
||||
if ($statusCode !== 200 && $statusCode !== 201) {
|
||||
if ($response->isSuccessful()) {
|
||||
$listKeys = array_keys($paymentTypesArr, $integrationPayment);
|
||||
|
||||
foreach ($listKeys as $key) {
|
||||
$paymentTypesArr[$key] = $codePayment;
|
||||
}
|
||||
} else {
|
||||
RCrmActions::eventLog(
|
||||
'Retailcrm::options.php',
|
||||
'syncIntegrationPayment',
|
||||
|
@ -874,6 +874,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
}
|
||||
}
|
||||
|
||||
COption::SetOptionString(
|
||||
$mid,
|
||||
$CRM_PAYMENT_TYPES,
|
||||
serialize(RCrmActions::clearArr(is_array($paymentTypesArr) ? $paymentTypesArr : []))
|
||||
);
|
||||
|
||||
COption::SetOptionString(
|
||||
$mid,
|
||||
$CRM_COUPON_FIELD,
|
||||
|
@ -1139,9 +1145,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
$api->paymentTypesList()->paymentTypes
|
||||
);
|
||||
|
||||
$arResult['paymentTypesList'] = array_filter($arResult['paymentTypesList'], function ($payment) {
|
||||
return strripos($payment['code'], '-not-integration') === false;
|
||||
});
|
||||
$arResult['paymentTypesList'] = array_filter(
|
||||
$arResult['paymentTypesList'],
|
||||
function ($payment) use ($CRM_PART_SUBSTITUTED_PAYMENT_CODE) {
|
||||
return strripos($payment['code'], $CRM_PART_SUBSTITUTED_PAYMENT_CODE) === false;
|
||||
}
|
||||
);
|
||||
|
||||
$arResult['deliveryTypesList'] = RetailCrmService::getAvailableTypes(
|
||||
$availableSites,
|
||||
|
@ -1913,7 +1922,8 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
<select name="payment-type-<?php echo $bitrixPaymentType['ID']; ?>" class="typeselect">
|
||||
<option value="" selected=""></option>
|
||||
<?php foreach ($arResult['paymentTypesList'] as $paymentType): ?>
|
||||
<option value="<?php echo $paymentType['code']; ?>" <?php if ($optionsPayTypes[$bitrixPaymentType['ID']] === $paymentType['code']) {
|
||||
<option value="<?php echo $paymentType['code']; ?>"
|
||||
<?php if (explode($CRM_PART_SUBSTITUTED_PAYMENT_CODE, $optionsPayTypes[$bitrixPaymentType['ID']])[0] === $paymentType['code']) {
|
||||
echo 'selected';
|
||||
} ?>>
|
||||
<?php echo $APPLICATION->ConvertCharset($paymentType['name'], 'utf-8', SITE_CHARSET); ?>
|
||||
|
@ -3275,7 +3285,8 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
echo 'style="display: none;"';
|
||||
} ?>>
|
||||
<td class="option-head" colspan="2">
|
||||
<b><?php echo GetMessage('INTEGRATION_PAYMENT_LABEL'); ?></b>
|
||||
<p><b><?php echo GetMessage('INTEGRATION_PAYMENT_LABEL'); ?></b></p>
|
||||
<p><b><?php echo GetMessage('NEED_PERMISSIONS_REFERENCE_LABEL'); ?></b></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue