Публикация

Как отключить автоматический перевод заказа в конечное состояние?

Вопрос:

Просим помочь в разрешении кейса.



Подготовка:

1. Индикатор процесса заблокирован на переходы. http://prntscr.com/ky1p4w

2. Поле состояние заказа = заблокировано для всех.



Шаги воспроизведения:

Если пользователь устанавливает значение стандартных полей как:

- Состояние поставки = поставлен полностью

-- Состояние оплаты = оплачен полностью

Заказ автоматически принимает состояние = Завершен.



Что сделали:

- Посмотрели большинство процессов, которые могут это поведение воспроизводить - не нашли это.

- Поискали в системных настройках - на нашли.

- Поискали в бизнес правилах/кейсах объекта заказ - не нашли.



Это поведение хотели бы изменить так, чтобы состояние заказа не изменялось в этих случаях. Это настраивается стандартными способами или остается только путь к модификации страницы? 

 

Ответ:

Согласно базовой логике приложения, то заказ является завершенным если оплата прошла полностью и доставка была доставлена (по логике никаких данных больше вносить нет необходимости).

Ниже код метода, который отвечает за функционал:

 

                                                setClosedOrder: function() {

                                                                                                if (!this.get("IsEntityInitialized")) {

                                                                                                                return;

                                                                                                }

                                                                                                var paymentStatus = this.get("PaymentStatus");

                                                                                                var deliveryStatus = this.get("DeliveryStatus");

                                                                                                if (paymentStatus && deliveryStatus &&

                                                                                                                                (paymentStatus.value === OrderConfigurationConstants.Order.PaymentStatus.Paid) &&

                                                                                                                                (deliveryStatus.value === OrderConfigurationConstants.Order.DeliveryStatus.Delivery)) {

                                                                                                                this.loadLookupDisplayValue("Status", OrderConfigurationConstants.Order.OrderStatus.Closed);

                                                                                                }

                                                                                },

 

Если Вы не хотите использовать данную логику, то можете переопределить метод.

В пользовательской схеме «OrderPageV2» (пакет Custom) в секции methods написать следующий код:

 

                                                setClosedOrder: function() {

                                                                Terrasoft.EmptyFn

                                                }

 

После этого сохранить изменения.

В результате не будет отрабатывать базовая логика.

Нравится

Поделиться

0 комментариев
Показать все комментарии