簡體   English   中英

使用 Acumatica 以編程方式重新計算稅收

[英]Programmatically recalculate taxes with Acumatica

我們在 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);

TaxAttrbibute 將 ZoneUpdated 事件處理程序添加到銷售訂單的 TaxZoneID_FieldUpdated 事件。 要觸發此事件,您應該使用

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

與 SetValue 方法不同,SetValueExt 方法在設置字段值時會引發事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM