Как отключить автоматический перевод заказа в конечное состояние?
Вопрос:
Просим помочь в разрешении кейса.
Подготовка:
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
}
После этого сохранить изменения.
В результате не будет отрабатывать базовая логика.