【发布时间】:2020-03-05 00:57:34
【问题描述】:
我们需要将送货地址以外的地址传递给外部税收计算方法来计算税收。 我将地址存储在一个简单的自定义表中,并在销售订单中选择它,并将其复制到销售发票中以计算税款。
GetAddress 被覆盖以将自定义地址传递给 Avalar,这在 Acumatica 2018 中运行良好,但在 Acumatica 2019 中却无法正常运行。
在 2019 年,我曾尝试在
上覆盖 GetAddress 函数public class SOOrderEntryExternalTax_Extension : PXGraphExtension<SOOrderEntryExternalTax, SOOrderEntry>
{
#region Event Handlers
[PXOverride]
public IAddressBase GetToAddress(SOOrder order, Func<SOOrder, IAddressBase> methodBase)
{
var shipAddress = methodBase(order);
if (shipAddress != null)
{
CYBProjectDataNameSpace.CYB_PROJECTS CYBProject = PXSelectorAttribute.Select<SOOrderExt.usrProjectId>(Base.Document.Cache, order) as CYBProjectDataNameSpace.CYB_PROJECTS;
//shipAddress.AddressLine1 = CYBProject.Cyb_address;
shipAddress.AddressLine2 = "";
shipAddress.AddressLine3 = "";
shipAddress.City = CYBProject.Cyb_pcity;
shipAddress.State = CYBProject.Cyb_pstate;
shipAddress.PostalCode = CYBProject.Cyb_pzcode;
shipAddress.CountryID = CYBProject.Cyb_pcountry;
}
return shipAddress;
}
#endregion
}
在 AR 发票中
[PXOverride]
public IAddressBase GetToAddress(ARInvoice invoice, Func<ARInvoice, IAddressBase> methodBase)
{
var shipAddress = methodBase(invoice);
if (shipAddress != null)
{
CYBProjectDataNameSpace.CYB_PROJECTS CYBProject = PXSelectorAttribute.Select<ARRegisterExt.usrProjectId>(Base.Document.Cache, invoice) as CYBProjectDataNameSpace.CYB_PROJECTS;
if (CYBProject != null)
{
//shipAddress.AddressLine1 = CYBProject.Cyb_address;
shipAddress.AddressLine2 = "";
shipAddress.AddressLine3 = "";
shipAddress.City = CYBProject.Cyb_pcity;
shipAddress.State = CYBProject.Cyb_pstate;
shipAddress.PostalCode = CYBProject.Cyb_pzcode;
shipAddress.CountryID = CYBProject.Cyb_pcountry;
}
}
return shipAddress;
}
#endregion
}
自定义代码不起作用。
如何解决这个问题?
【问题讨论】:
标签: acumatica