【问题标题】:Tax Amount is not updating in sales order when creating programmatically以编程方式创建时,销售订单中的税额未更新
【发布时间】:2020-02-15 02:19:09
【问题描述】:

当我们尝试以编程方式创建销售订单时,税额字段未保存该值。我用的是人工税。从屏幕上它工作正常,但在尝试从代码创建值时没有采用,即使我试图在创建订单后向字段提供值,它也会恢复为 0。

这里是我用来更新税额的代码。

orderTax.CuryTaxAmt = tax;
sOOrderEntry.Taxes.Cache.Update(orderTax);
sOOrderEntry.Document.SetValueExt<SOOrder.curyTaxTotal>(sOOrderEntry.Document.Current, tax);
orderTotal = sOOrderEntry.Document.Current.OrderTotal + orderTax.CuryTaxAmt;
sOOrderEntry.Document.SetValueExt<SOOrder.curyOrderTotal>(sOOrderEntry.Document.Current, orderTotal);
sOOrderEntry.Document.Cache.Update(sOOrderEntry.Document.Current);

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    在销售订单字段中更新税额不是一个好主意。 销售订单中的 CuryTaxTotal 字段是计算字段。它是根据 SOtaxTran 线计算的。 因此,为了更新销售订单中的税额,您实际上需要将 SOtaxTran 行插入 SOOrderEntry 图的 Taxes 视图中。

    类似的东西:

    //indicate that taxes are inserted in manual mode
    TaxAttribute.SetTaxCalc<SOLine.taxCategoryID>(graph.Transactions.Cache, null, TaxCalc.ManualCalc); 
    // insert SOTaxTran
    SOTaxTran newTaxTran= new SOTaxTran();
    newTaxTran.TaxRate = 0.1; //put your actual values here
    newTaxTran.CuryTaxableAmt =  100; //put your actual values here
    newTaxTran.CuryTaxAmt =  10; //put your actual values here
    var taxTran = graph.Taxes.Insert(newTaxTran);
    

    【讨论】:

    • 这是一个已知问题,确实应该有一种方法来强制刷新公式总计 IMO。
    猜你喜欢
    • 2021-02-16
    • 2021-04-25
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多