自定义重复价格价值

时间:2018-06-12 12:14:39

标签: acumatica

我在“自动化步骤”页面中为“合同项目的重复价格选项”添加了另一个选项。 enter image description here

合同项目页面: enter image description here

所以,现在,如果我选择使用重复价格,它将从我在非库存物品页面中创建的自定义字段中获取值。 enter image description here

这是我的自定义公式,用于计算Contract Item页面的FixedRecurringPriceVal字段。

[PXFormula(typeof(Switch<
                    Case<Where<ContractItem.recurringItemID, IsNotNull>,
                        Switch<
                            Case<Where<ContractItem.fixedRecurringPriceOption, Equal<customRecurringPrice>>, IsNull<NullIf<Selector<ContractItem.recurringItemID, InventoryItemExt.usrRecurringPrice>, Null>,
                                Switch<Case<Where<ContractItem.curyID, Equal<Current<Company.baseCuryID>>>, NullIf<Selector<ContractItem.recurringItemID, Null>, Null>>, Null>>,
                            Case<Where<ContractItem.fixedRecurringPriceOption, Equal<PriceOption.basePercent>>, Div<Mult<ContractItem.fixedRecurringPrice, ContractItem.basePriceVal>, decimal100>,
                            Case<Where<ContractItem.fixedRecurringPriceOption, Equal<PriceOption.itemPrice>>, IsNull<NullIf<Selector<ContractItem.recurringItemID, ARSalesPrice.salesPrice>, decimal0>,
                                Switch<Case<Where<ContractItem.curyID, Equal<Current<Company.baseCuryID>>>, NullIf<Selector<ContractItem.recurringItemID, InventoryItem.basePrice>, decimal0>>, Null>>,
                            Case<Where<ContractItem.fixedRecurringPriceOption, Equal<PriceOption.itemPercent>>, Div<Mult<ContractItem.fixedRecurringPrice, IsNull<NullIf<Selector<ContractItem.recurringItemID, ARSalesPrice.salesPrice>, decimal0>,
                                Switch<Case<Where<ContractItem.curyID, Equal<Current<Company.baseCuryID>>>, NullIf<Selector<ContractItem.recurringItemID, InventoryItem.basePrice>, decimal0>>, Null>>>, decimal100>>>>>,
                            ContractItem.fixedRecurringPrice>>,
                    decimal0>))]

作为参考,这是我的静态值类:

using System;
using PX.Data;

namespace NonStockItemRecurringPriceSetup
{
  public class customRecurringPrice : Constant<string>
  {
    public customRecurringPrice():base("r"){;}
  }
}

现在,它按预期更新了Contract Item页面的FixedRecurringPriceVal。

但是,在“客户合同”页面中,当我选择新合同的合同模板时,如果我在合同项目页面中选择了“使用重复价格”作为定价选项,则正在计算合同项目中的重复价格,否则它会被正确计算。

当我查看ContractDetail DAC时,我得到了下面的FixedRecurringPriceVal公式,我在定制方面遇到了问题。

public abstract class fixedRecurringPriceVal : IBqlField { }
        [PXDecimal(6)]
        [PXFormula(typeof(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")]
        public decimal? FixedRecurringPriceVal
        {
            get;
            set;
        }

现在,当我选择合约模板时,如果固定价格重复期权在网格中为“使用重复价格”,我需要帮助才能从非库存项目的“自定义重复价格”自定义字段中获取值。

enter image description here

谢谢。

0 个答案:

没有答案