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