Я бы хотел переопределить логику «Бесплатный товар» в форме заказа на продажу. У меня есть функция, которая рассчитывает окончательную цену на основе ряда критериев, поэтому я хотел бы, чтобы она не стирала поле «Цена за единицу».
Я создал следующий код:
protected void SOLine_IsFree_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
if(InvokeBaseHandler != null) InvokeBaseHandler(cache, e);
SOLine row = e.Row as SOLine;
// My Price calculation formula goes here.
}
Это работает, но, конечно, следующая строка запускает код по умолчанию:
if(InvokeBaseHandler != null) InvokeBaseHandler(cache, e);
Но если я уберу его, я могу поставить галочку (и он работает), но я не смогу снять галочку. Попытка отменить проверку, кажется, ничего не делает. Я попытался установить значение этого в коде, подумав, может быть, в этом проблема. Также попытался продублировать код, который был запущен по умолчанию и ничего.
Заранее спасибо.