已要求我自定义使用“销售价格工作表”时计算单价的公式。他们希望对总的SO总数量打折,而不是对生产线数量打折。
如果订购了100个,则Widget1的单价为.80。 如果订购150件,则Widget2的单价为1.75。
销售订单第1行用于Widget1,单价为200 ...该行的单价为0.80。 销售订单第2行用于Widget2,单位数量为10 ...该行的单价为1.75,因为它基于等于210(超过150)的总单位数量。
我找不到覆盖它的计算代码。我有一个主意 /在OldUnitQty变量中存储SOLine unitqty /将SOLine不整洁更新为SOOrder unitqty /调用GetPriceCalculationScope /将SOLine unitqty设置回OldUnitQty
我不确定这是个好主意还是不确定。谁能给我一些如何做的指导?
答案 0 :(得分:0)
您可以处理unitqty更新事件(标头总数量已经更新),检查总数量是否大于150,并更新当前行的单位成本。 代码如下:
protected virtual void SOLine_OrderQty_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated del)
{
del?.Invoke(cache, e);
SOLine line = (SOLine)e.Row;
if (line != null)
{
if (Base.Document.OrderQty > ...)
{
line.CuryUnitPrice = ...;
}
}
}