1
0
Fork 0
mirror of synced 2025-04-06 15:23:32 +03:00

Compare commits

..

8 commits

14 changed files with 134 additions and 1199 deletions

View file

@ -49,7 +49,7 @@ jobs:
run: composer validate run: composer validate
- name: Cache Composer packages - name: Cache Composer packages
id: composer-cache id: composer-cache
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: vendor path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}

View file

@ -1,3 +1,28 @@
## 2025-03-26 v6.6.11
- Исправлена передача габаритов при выгрузке заказов по агенту
## 2025-03-25 v6.6.10
- Исправлено некорректное изменение статуса оплаты отмененных заказов
## 2025-03-04 v6.6.9
- Исправлено обновление модуля
## 2025-03-03 v6.6.8
- Исправлена ошибка экспорта дополнительных свойств товаров
## 2025-02-04 v6.6.7
- Исправлена ошибка установки модуля на PHP 8.0
## 2025-01-29 v6.6.6
- Поддержка нулевой закупочной стоимости при генерации каталога
## 2025-01-28 v6.6.5
- Исправлена ошибка редактирования интеграционных доставок при активации опции передачи статусов интеграционных оплат
## 2025-01-27 v6.6.4
- Исправлено некорректное удаление признака применения промокода при изменении состава заказа в CRM
## 2025-01-14 v6.6.3 ## 2025-01-14 v6.6.3
- Исправлены ошибки при обновлении модуля - Исправлены ошибки при обновлении модуля

View file

@ -1226,7 +1226,6 @@ class RetailCrmHistory
} }
if (array_key_exists('discountTotal_sum', $collectItems[$product['offer']['externalId']])) { if (array_key_exists('discountTotal_sum', $collectItems[$product['offer']['externalId']])) {
$item->setField('CUSTOM_PRICE', 'Y');
$item->setField('DISCOUNT_NAME', ''); $item->setField('DISCOUNT_NAME', '');
$item->setField('DISCOUNT_VALUE', ''); $item->setField('DISCOUNT_VALUE', '');
@ -1240,6 +1239,7 @@ class RetailCrmHistory
$price = self::truncate($price, 2); $price = self::truncate($price, 2);
} }
$item->markFieldCustom('PRICE');
$item->setField('PRICE', $price); $item->setField('PRICE', $price);
} }
@ -2062,7 +2062,7 @@ class RetailCrmHistory
$payment->delete(); $payment->delete();
} }
if ($paymentsCrm['totalSumm'] == $paySumm) { if ($paymentsCrm['totalSumm'] == $paySumm && $order->getField('CANCELED') !== 'Y') {
$order->setFieldNoDemand('PAYED', 'Y'); $order->setFieldNoDemand('PAYED', 'Y');
} else { } else {
$order->setFieldNoDemand('PAYED', 'N'); $order->setFieldNoDemand('PAYED', 'N');

View file

@ -358,7 +358,7 @@ class RetailCrmOrder
$order['items'][] = $item; $order['items'][] = $item;
if ($send && $dimensionsSetting === 'Y') { if ($dimensionsSetting === 'Y') {
$dimensions = RCrmActions::unserializeArrayRecursive($product['DIMENSIONS']); $dimensions = RCrmActions::unserializeArrayRecursive($product['DIMENSIONS']);
if ($dimensions !== false) { if ($dimensions !== false) {
@ -370,7 +370,7 @@ class RetailCrmOrder
} }
} }
if ($send && $dimensionsSetting === 'Y') { if ($dimensionsSetting === 'Y') {
$order['width'] = $width; $order['width'] = $width;
$order['height'] = $height; $order['height'] = $height;
$order['length'] = $length; $order['length'] = $length;

View file

@ -1 +1 @@
- Исправлены ошибки при обновлении модуля - Исправлена передача габаритов при выгрузке заказов по агенту

View file

@ -39,7 +39,7 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/retailcrm/exp
} }
global $PROFILE_ID; global $PROFILE_ID;
$settingService = SettingsService::getInstance([], '', $PROFILE_ID); $settingService = SettingsService::getInstance([], '', $PROFILE_ID ?? $profile_id);
$iblockPropertySku = []; $iblockPropertySku = [];
$iblockPropertySkuHl = []; $iblockPropertySkuHl = [];
$iblockPropertyUnitSku = []; $iblockPropertyUnitSku = [];

View file

@ -1,6 +1,6 @@
<?php <?php
$arModuleVersion = [ $arModuleVersion = [
'VERSION' => '6.6.3', 'VERSION' => '6.6.11',
'VERSION_DATE' => '2025-01-14 18:00:00' 'VERSION_DATE' => '2025-03-26 16:00:00'
]; ];

View file

@ -148,7 +148,7 @@ $MESS ['NO_INTEGRATION_PAYMENT'] = '(Non-integrated)';
$MESS ['ERR_CHECK_JOURNAL'] = 'Error while saving. Details in the event log'; $MESS ['ERR_CHECK_JOURNAL'] = 'Error while saving. Details in the event log';
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Error in comparing integration payments'; $MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Error in comparing integration payments';
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Error when updating payment methods for deliveries'; $MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Error when updating payment methods for deliveries';
$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 ['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. <br> If you have integration deliveries in your CRM, then you need to enable the new payment method in the integration settings';
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'For this option to work correctly, the api key needs access to receive and edit reference book'; $MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'For this option to work correctly, the api key needs access to receive and edit reference book';
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Fix customer registration date in CRM'; $MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Fix customer registration date in CRM';

View file

@ -213,7 +213,7 @@ $MESS ['NO_INTEGRATION_PAYMENT'] = '(Не интеграционная)';
$MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий'; $MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий';
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка при сопоставлении интеграционных оплат'; $MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка при сопоставлении интеграционных оплат';
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Ошибка при обновлении способов оплаты для доставок'; $MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Ошибка при обновлении способов оплаты для доставок';
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы.'; $MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы. <br> Если в вашей CRM используются интеграционные доставки, новый способ оплаты необходимо вручную активировать в настройках интеграций.';
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции апи-ключу необходимы доступы на получение и редактирование справочников'; $MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции апи-ключу необходимы доступы на получение и редактирование справочников';
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Исправление даты регистрации клиентов в CRM'; $MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Исправление даты регистрации клиентов в CRM';

View file

@ -18,7 +18,7 @@ namespace Intaro\RetailCrm\Component;
*/ */
class Constants class Constants
{ {
public const MODULE_VERSION = '6.6.3'; public const MODULE_VERSION = '6.6.11';
public const CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null'; public const CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null';
public const BITRIX_USER_ID_PREFIX = 'bitrixUserId-'; public const BITRIX_USER_ID_PREFIX = 'bitrixUserId-';
public const CRM_USERS_MAP = 'crm_users_map'; public const CRM_USERS_MAP = 'crm_users_map';

View file

@ -163,7 +163,7 @@ class IcmlWriter
$this->writeOptionalSimpleElement('vatRate', $offer->vatRate); $this->writeOptionalSimpleElement('vatRate', $offer->vatRate);
$this->writeOptionalSimpleElement('weight', $offer->weight); $this->writeOptionalSimpleElement('weight', $offer->weight);
$this->writeOptionalSimpleElement('dimensions', $offer->dimensions); $this->writeOptionalSimpleElement('dimensions', $offer->dimensions);
$this->writeOptionalSimpleElement('purchasePrice', $offer->purchasePrice); $this->writeOptionalPurchasePrice($offer->purchasePrice);
$this->writer->endElement(); $this->writer->endElement();
} }
@ -180,6 +180,16 @@ class IcmlWriter
} }
} }
/**
* Запись закупочной стоимости
*
* @param $value
*/
private function writeOptionalPurchasePrice($value): void
{
$this->writeSimpleElement('purchasePrice', !empty($value) ? $value : 0);
}
/** /**
* @param string $name * @param string $name
* @param $value * @param $value

View file

@ -178,13 +178,12 @@ class SettingsService
$customProps = []; $customProps = [];
foreach ($this->customPropList as $propsByCatalog) { foreach ($this->customPropList as $propsByCatalog) {
$customProps = array_merge($customProps, $propsByCatalog); foreach ($propsByCatalog as $code => $value) {
$customProps[$code] = $value;
}
} }
return [ return array_merge($this->defaultPropList, $customProps);
...$this->defaultPropList,
...$customProps
];
} }
private function getPriceTypes() private function getPriceTypes()

View file

@ -877,7 +877,9 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
$substitutionPaymentList[$integrationPayment] = $codePayment; $substitutionPaymentList[$integrationPayment] = $codePayment;
foreach ($originalPayment['deliveryTypes'] as $codeDelivery) { foreach ($originalPayment['deliveryTypes'] as $codeDelivery) {
if (!isset($arResult['deliveryTypesList'][$codeDelivery])) { if (!isset($arResult['deliveryTypesList'][$codeDelivery]) ||
isset($arResult['deliveryTypesList'][$codeDelivery]['integrationCode'])
) {
continue; continue;
} }

1259
intaro.retailcrm/updater.php Normal file → Executable file

File diff suppressed because it is too large Load diff