【问题标题】:fiscal area in the supplier information tab of the purchase order采购订单供应商信息选项卡中的财务范围
【发布时间】:2022-12-03 03:26:14
【问题描述】:

能帮帮我吗,我正在适配修改税区代码,但是税种没有更新,我漏掉了什么或者改税区的时候怎么修改相关的税种?

这是我的代码,通过我正在做的这个事件。

protected void POLine_SiteID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
        var row = (POLine)e.Row;
        var head = Base.Document.Current;
        if (head == null) return;
        if (row != null && row.OrderType == POOrderType.RegularOrder)
        {

     POLine line = PXSelect<POLine, Where<POLine.orderType,
                            Equal<Required<POLine.orderType>>,
                            And<POLine.orderNbr, Equal<Required<POLine.orderNbr>>>>>.Select(Base, row.OrderType, row.OrderNbr);

            bool? xchange = false;
            if (line != null)
            {
                INSite site = PXSelect<INSite, Where<INSite.siteID,
                              Equal<Required<INSite.siteID>>>>.Select(Base, line.SiteID);
                if (site != null && line.SiteID == site.SiteID)
                {
                    var ext = site.GetExtension<INSiteExt>();
                    if (ext != null)
                    {
                        head.TaxZoneID = ext.UsrTaxZone;
                        xchange = true;
                    }
                }
                if (xchange == true)
                {
                    foreach (PEMclTaxZone zone in PXSelect<PEMclTaxZone,
                    Where<PEMclTaxZone.taxZoneID, Equal<Required<PEMclTaxZone.taxZoneID>>,
                     And<PEMclTaxZone.taxCategoryID, Equal<Required<PEMclTaxZone.taxCategoryID>>>>>.Select(Base, head.TaxZoneID, line.TaxCategoryID))
                    {
                        if (zone != null)
                        {
                            foreach (POTaxTran potax in PXSelect<POTaxTran,
                                Where<POTaxTran.orderType, Equal<Required<POTaxTran.orderType>>,
                                And<POTaxTran.orderNbr, Equal<Required<POTaxTran.orderNbr>>>>>.Select(Base, head.OrderType, head.OrderNbr))
                            {
                                if (potax != null)
                                {

                                    potax.TaxID = zone.Taxid;
                                    potax.TaxZoneID = zone.TaxZoneID;
                                    Base.Taxes.Cache.Update(potax);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

当我手动选择税收区域时,两个元素在税收网格中注册,如果我按事件执行它只更新最后一个,我按照代码跟踪它并且我看到如果它更新,但是,它不会反映在税网。

在这里,我用图像展示证据。 此步骤与不起作用的事件有关。

步骤1

第2步:

第 3 步:

手动选择税区,从同一选项卡中选择。 步骤1:

第2步:

这就是它应该进行的方式,这就是我希望活动要做的事情。

请告诉我我在活动中失败了什么,我希望我已经清楚了,谢谢。

【问题讨论】:

  • 我认为文档的大部分税收逻辑都在税收延期中。看看您是否可以找到一个采购订单并扩展它并在那里进行更改。
  • 你不会有一个小例子,它会对我有很大帮助,感谢你回答我的问题。

标签: acumatica acumatica-kb acumos


【解决方案1】:

抓住这些的功能是税区扩展。您可能想要覆盖 POOrderEntry 的 GetDefaultTaxZone 函数

    [PXOverride]
    public virtual string GetDefaultTaxZone(POOrder row,
       Func<POOrder, string> baseMethod)
    {
        //logic before base function
        baseMethod(row);
        //logic after base function
    }

如果您不想运行任何代码,请随意复制初始函数并且不要调用 baseMethod 委托。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    相关资源
    最近更新 更多