Переопределить GetItemPriceValue для RecurringPrice - PullRequest
0 голосов
/ 24 августа 2018

Я добавил опцию периодической цены в опцию периодической цены элемента контракта из шагов автоматизации.

enter image description here

А вот так выглядит страница позиции контракта.

enter image description here

Теперь я хочу использовать периодическую цену позиции контракта, если я выберу «Использовать периодическую цену» в качестве параметра периодической цены в клиентеРаздел "Сведения о контракте".

enter image description here

Для этого я попытался переопределить формулу поля 'FixedRecurringPriceVal' в ContractDetail DAC.

using NonStockItemRecurringPriceSetup;

[PXDecimal(6)]    
[PXFormula(typeof(    
        Switch<    
        Case<Where<Parent<ContractItem.fixedRecurringPriceOption>, Equal<customRecurringPrice>>, decimal1>,    
        GetItemPriceValue<
            ContractDetail.contractID,
            ContractDetail.contractItemID,
            ContractDetailType.ContractDetail,
            ContractDetail.fixedRecurringPriceOption,
            Selector<ContractDetail.contractItemID, ContractItem.recurringItemID>,
            ContractDetail.fixedRecurringPrice,
            ContractDetail.basePriceVal,
            ContractDetail.qty,
            Switch<
                Case<Where<Parent<Contract.status>, Equal<Contract.status.draft>,
                Or<Parent<Contract.status>, Equal<Contract.status.pendingActivation>>>,
                IsNull<Parent<Contract.activationDate>, Parent<Contract.startDate>>,
            Case<Where<Parent<Contract.status>, Equal<Contract.status.active>,
                Or<Parent<Contract.status>, Equal<Contract.status.inUpgrade>>>,
                IsNull<Parent<ContractBillingSchedule.nextDate>, Current<AccessInfo.businessDate>>,
            Case<Where<Parent<Contract.status>, Equal<Contract.status.expired>>,
                IsNull<Parent<ContractBillingSchedule.nextDate>, Parent<Contract.expireDate>>,
            Case<Where<Parent<Contract.status>, Equal<Contract.status.canceled>>,
            IsNull<Parent<Contract.terminationDate>, Current<AccessInfo.businessDate>>>>>>,
            Current<AccessInfo.businessDate>>>>))]
[PXUIField(DisplayName = "Recurring Price")]

Я пробовал со значением 1, если для параметра «Повторяющаяся цена» выбрано «Использовать повторяющуюся цену».Но это не сработало.

enter image description here

Спасибо.

...