覆盖销售订单的收单方联系人和收单方地址信息
要为销售订单指定收单方联系人和收单方地址信息,你应始终先在 Billing_Contact 和 Billing_Address 数据视图中调用 Select()
方法,然后再指定任何字段值。还建议将 Select()
方法的结果分配给 Billing_Contact 和 Billing_Address 数据视图的 Current 属性,以保证你的代码分别修改 SOBillingContact 和 SOBillingAddress PXCache 中的当前记录。
当你需要覆盖销售订单的收单方联系人和地址信息时,请在 SOBillingContact DAC 和 SOBillingAddress DAC 上为 OverrideContact 和 OverrideAddress 属性设置正确的值。在更新 OverrideContact 和 OverrideAddress 属性以提交更改后,不要忘记在 SOBillingContact 和 SOBillingAddress 缓存上调用 Update()
方法。完成后,你可以继续为销售订单指定收单联系人和地址信息。 **** **** **** **** ****** ******
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public PXAction<SOOrder> UpdateBillingAddress;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Update Bill-To Info")]
protected void updateBillingAddress()
{
SOBillingContact contact = Base.Billing_Contact.Current = Base.Billing_Contact.Select();
if (contact.OverrideContact == true)
{
contact.OverrideContact = false;
Base.Billing_Contact.Update(contact);
}
else
{
contact.OverrideContact = true;
contact = Base.Billing_Contact.Update(contact);
if (contact == null)
{
contact = Base.Billing_Contact.Current;
}
contact.Phone1 = "+1 (908) 643-0281";
contact.Email = "sales@usabartend.con";
Base.Billing_Contact.Update(contact);
}
SOBillingAddress address = Base.Billing_Address.Current = Base.Billing_Address.Select();
if (address.OverrideAddress == true)
{
address.OverrideAddress = false;
Base.Billing_Address.Update(address);
}
else
{
address.OverrideAddress = true;
address = Base.Billing_Address.Update(address);
if (address == null)
{
address = Base.Billing_Address.Current;
}
address.AddressLine1 = "201 Lower Notch Rd";
address.AddressLine2 = "Office Suite 1936";
address.City = "Little Falls";
address.CountryID = "US";
address = Base.Billing_Address.Update(address);
address.State = "NJ";
address.PostalCode = "07425";
Base.Billing_Address.Update(address);
}
Base.Actions.PressSave();
}
}