当通过REST调用创建销售订单时,适用的折扣不会自动应用,就像通过标准Acumatica屏幕创建折扣一样。折扣应适用,而不是“手册”-运行“重新计算价格”行动后,通过API创建将适用的折扣。
折扣代码是否必须在API调用中指定,或者是否有某种方法使它们像在屏幕上那样被自动应用?通过API接收到的订单被赋予一个唯一的订单类型,因此我们可以合理地对这些特定订单类型进行SOOrderEntry图的定制,当最初创建so以运行“重新计算价格”时,我也无法找到一种成功触发Base的方法。
发布于 2018-01-19 20:13:31
目前,通过Web或Import场景创建或更新的所有销售订单和AR发票都将完全跳过折扣。要通过Web启动折扣计算,您应该按照以下步骤进行:
发布于 2018-01-22 16:59:07
根据RuslanDev的回答和一些更改,这是在随后的API调用中实现并执行的操作:
public PXAction<SOOrder> RecalculateDiscountsFromImport;
[PXButton]
[PXUIField(DisplayName = "Recalculate Discounts",
MapEnableRights = PXCacheRights.Select,
MapViewRights = PXCacheRights.Select,
Visible = false)]
public void recalculateDiscountsFromImport()
{
foreach (SOLine line in Base.Transactions.Select())
{
DiscountEngine<SOLine>.RecalculateDiscountsLine<SOOrderDiscountDetail>(
Base.Transactions.Cache,
Base.Transactions,
line,
line,
Base.DiscountDetails,
Base.Document.Current.BranchID,
Base.Document.Current.CustomerLocationID,
Base.Document.Current.OrderDate.Value);
Base.Transactions.Update(line);
Base.Transactions.SetValueExt<SOLine.manualDisc>(line, false);
}
Base.Actions.PressSave();
}https://stackoverflow.com/questions/48348335
复制相似问题