首页 > 解决方案 > 获取系统当前使用的增值税的正确方法是什么

问题描述

我想计算采购收据页面上所有商品的增值税。我可以使用 BQL 选择正确的 TaxRev 类我想知道系统是否有一个静态类,我可以在其中获得相同的值。与 Accessinfo 相同,将具有用户 ID。

using PX.Data;
using PX.Objects.TX;

namespace PX.Objects.PO
{
    // Acuminator disable once PX1016 ExtensionDoesNotDeclareIsActiveMethod extension should be constantly active
    public class POReceiptEntry_Extension : PXGraphExtension<POReceiptEntry>
    {
        #region Event Handlers

        protected void POReceipt_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            var row = (POReceipt)e.Row;
            if (row is null) return;
            
            decimal totalVat = 0;
            decimal totalUnitCost = 0;

            foreach (POReceiptLine item in Base.transactions.Select())
            {
                if (item.UnitCost is null || item.Qty is null) continue;
                
                totalUnitCost += item.UnitCost.Value * item.Qty.Value;  
            }

            // TODO remove hard coded 0.15 below
            totalVat = totalUnitCost * (decimal)0.15;

            // cache.SetValueExt<POReceiptExt.usrTotalVAT>(row, totalVat);
            // cache.SetValueExt<POReceiptExt.usrTotalInclVAT>(row, totalUnitCost);

        }

        #endregion
    }
}

标签: acumatica

解决方案


没有“全球”或“系统范围”的增值税税率。它在库存项目级别定义 - 作为 InventoryItem.TaxCategoryID,它还取决于在供应商位置级别定义的税区。对于不同的合作伙伴,同一项目可以有不同的增值税金额,甚至可以免征增值税。

POReceiptTax 和 POReceiptTaxTran 已从较新版本的 Acumatica 的收据中删除,确定它们的一个技巧是创建一个具有相同供应商和项目的虚拟采购订单并检查那里的增值税,但您不应该在 RowSelected 中计算它们。


推荐阅读