覆蓋銷售訂單的收單方聯絡人和收單方地址資訊

要為銷售訂單指定收單方聯絡人收單方地址資訊,你應始終先在 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();
    }
}