首页 文章

Acumatica:销售订单自定义计算不一致

提问于
浏览
0

通过一些帮助和大量的试验和错误,我能够创建一个允许以下内容的自定义:

销售订单汇总区域中的

  • "Total Profit"字段
    销售订单汇总区域中的
  • "GP %"字段
    销售订单详细信息区域中的
  • "Total Profit"字段(按行)
    销售订单详细信息区域中的
  • "GP %"字段(按行)

总利润=分机价格 - 分机成本GP%=(总利润/外部价格)* 100

这四个字段的计算在某些时候有效,但我注意到当我通过输入新行或使用Control Enter提交行时,然后返回并更改Ext . 成本,总利润和GP%不会更新 . 即使我保存并刷新它也会这样做 . 它似乎100%工作的唯一时间是我非常有条不紊地一步一步地进入它 . 但这不是计算开箱即用总数的方式 . 您在数量,价格等方面输入的订单无关紧要 - 开箱即用的总计会更新 . 如何在Acumatica中制作这样的四个自定义字段?

SOLine自定义字段(每个字段用空行分隔):

[PXDBCurrency(typeof(SOLine.curyInfoID), typeof(SOLineExt.usrTotalProfit))]
[PXUIField(DisplayName = "Total Profit", Enabled = false)]
[PXFormula(typeof(Sub<SOLine.curyLineAmt, SOLine.curyExtCost>))]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXFormula(null, typeof(SumCalc<SOOrderExt.usrCuryOrderTotalProfit>))]

[PXDBDecimal(4)]
[PXDefault(TypeCode.Decimal, "0.0")]

[PXFormula(typeof(Switch<Case<Where<SOLine.curyLineAmt, Equal<decimal0>>, decimal0>, Div<SOLineExt.usrTotalProfit, SOLine.curyLineAmt>>))]
[PXDefault(TypeCode.Decimal, "0.0")]

[PXUIField(DisplayName = "GP %", Enabled = false)] 
[PXFormula(typeof(Mult<SOLineExt.usrGPPercent, decimal100>))]
[PXDefault(TypeCode.Decimal, "0.0")]

SOOrder自定义字段(每个字段用空行分隔):

[PXDBCurrency(typeof(SOOrder.curyInfoID), typeof(SOOrderExt.usrOrderTotalProfit))] 
[PXUIField(DisplayName = "Total Profit", Enabled = false)] 
[PXDefault(TypeCode.Decimal, "0.0")]

[PXDBDecimal(4)]
[PXDefault(TypeCode.Decimal, "0.0")]

[PXFormula(typeof(Switch<Case<Where<SOOrder.curyOrderTotal, Equal<decimal0>>, decimal0>, Div<SOOrderExt.usrOrderTotalProfit, SOOrder.curyOrderTotal>>))]
[PXDefault(TypeCode.Decimal, "0.0")]

[PXUIField(DisplayName = "GP %", Enabled = false)] 
[PXFormula(typeof(Mult<SOOrderExt.usrOrderGPPercent, decimal100>))]

1 回答

  • 0

    PXFormula应该没有DAC扩展和自定义字段的问题 . 通过仅查看字段属性,很难分辨出问题所在 . 请至少使用DAC字段声明更新您的代码段,以便更清楚哪些属性属于哪个字段 .

相关问题