覆盖销售订单的收单方联系人和收单方地址信息

要为销售订单指定收单方联系人收单方地址信息,你应始终先在 Billing_ContactBilling_Address 数据视图中调用 Select() 方法,然后再指定任何字段值。还建议将 Select() 方法的结果分配给 Billing_ContactBilling_Address 数据视图的 Current 属性,以保证你的代码分别修改 SOBillingContactSOBillingAddress PXCache 中的当前记录。

当你需要覆盖销售订单的收单方联系人和地址信息时,请在 SOBillingContact DAC 和 SOBillingAddress DAC 上为 OverrideContactOverrideAddress 属性设置正确的值。在更新 OverrideContactOverrideAddress 属性以提交更改后,不要忘记在 SOBillingContactSOBillingAddress 缓存上调用 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();
    }
}