使用Acumatica以编程方式重新计算税收
我们在SOOrderEntry屏幕上有一个自定义复选框,我们希望在有人输入行项目后使用该复选框更改销售订单上的税务管辖权。原因是,如果客户不在本州,但将亲自到商店提货,他们将需要支付商店所在地的当地税,而不是州税。如果订单已发货,则应缴纳客户所在地的税费 我们遇到的问题是,当我们在输入行项目之前设置税区ID时,它会正常工作并创建正确的税。如果用户更改复选框值,则税款仍将是来自原始税区的税款,而不是屏幕上当前反映的税款 我们在SOOrderEntry图上发现了一些方法,这些方法似乎是用于重新计算税收的,但它们对于Avalara和thow来说是异常的,因为我们在这个系统中没有使用Avalara,只有Acumatica的内部税收引擎 当订单上的税区发生变化时,有没有办法让Acumatica重新计算税款 任何帮助都将不胜感激,我们在帮助文档或试错方面没有取得多大进展 代码不多,但这里有几行代码:使用Acumatica以编程方式重新计算税收,acumatica,avalara,Acumatica,Avalara,我们在SOOrderEntry屏幕上有一个自定义复选框,我们希望在有人输入行项目后使用该复选框更改销售订单上的税务管辖权。原因是,如果客户不在本州,但将亲自到商店提货,他们将需要支付商店所在地的当地税,而不是州税。如果订单已发货,则应缴纳客户所在地的税费 我们遇到的问题是,当我们在输入行项目之前设置税区ID时,它会正常工作并创建正确的税。如果用户更改复选框值,则税款仍将是来自原始税区的税款,而不是屏幕上当前反映的税款 我们在SOOrderEntry图上发现了一些方法,这些方法似乎是用于重新计算税
// Customer Pickup, update sales tax on the order
Location branchLoc = PXSelectJoin<Location,
InnerJoin<Branch, On<Location.bAccountID, Equal<Branch.bAccountID>>>,
Where<Branch.branchID, Equal<Required<SOOrder.branchID>>>>
.Select(Base, order.BranchID);
cache.SetValue<SOOrder.overrideTaxZone>(order, true);
cache.SetValue<SOOrder.taxZoneID>(order, branchLoc.VTaxZoneID);
//客户提货,更新订单的销售税
位置branchLoc=PXSelectJoin
.选择(基本,订单.BranchID);
SetValue(顺序,true);
SetValue(order,branchLoc.VTaxZoneID);
TaxAttrbibute将区域更新事件处理程序添加到销售订单的TaxZoneID_字段更新事件中。
要触发此事件,应使用
cache.SetValueExt<SOOrder.taxZoneID>(order, branchLoc.VTaxZoneID);
cache.SetValueExt(order,branchLoc.VTaxZoneID);
与SetValue方法不同,SetValueExt方法在设置字段值时引发事件。谢谢!成功了。