首页 文章

使用Acumatica以编程方式重新计算税金

提问于
浏览
0

我们在SOOrderEntry屏幕上有一个自定义复选框,我们希望在有人输入订单项后更改销售订单的税收权限 . 这样做的原因是,如果客户在州外,但将亲自在商店取货,他们将需要在商店地点支付当地税,而不是州税 . 如果订单已发货,则税金将是客户所在地的税金 .

我们遇到的问题是,当我们在输入订单项之前设置税区ID时,它会正常运行并创建正确的税 . 如果用户更改了复选框值,则税金仍将是原始税区中的税金,而不是当前在屏幕上反映的税金 .

我们在SOOrderEntry图上发现了一些似乎用于重新计算税收的方法,但是对于Avalara而言,如果被调用则会产生异常,因为我们在这个系统中没有使用Avalara,只有Acumatica的内部税务引擎 .

当税区改变订单时,有没有办法让Acumatica重新计算税金?

我们非常感谢任何帮助,我们在帮助文档或反复试验方面没有取得多大进展 .

它的代码不多,但这里有几条线:

// 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);

1 回答

  • 1

    TaxAttrbibute将ZoneUpdated事件处理程序添加到销售订单的TaxZoneID_FieldUpdated事件 . 要触发此事件,您应该使用

    cache.SetValueExt<SOOrder.taxZoneID>(order, branchLoc.VTaxZoneID);
    

    与SetValue方法不同,SetValueExt方法在设置字段值时引发事件 .

相关问题