覆蓋客戶的賬單到聯絡人和賬單到地址資訊
當你需要覆蓋客戶的 Bill-To Contact 和 Bill-To Address 資訊時,第一步是為 Customer DAC 的 IsBillContSameAsMain 和 IsBillSameAsMain 屬性設定正確的值。在更新 IsBillContSameAsMain 或 IsBillSameAsMain 屬性以將當前 Same as Main 欄位值提交到快取後,不要忘記立即在 Customer 快取上呼叫 Update()
方法。 **** **** ****** ****** ******
下一步是在分配任何欄位值之前在 BillContact 和 BillAddress 資料檢視上呼叫 Select()
方法。還建議將 Select()
方法的結果分配給 BillContact 和 BillAddress 資料檢視的 Current 屬性,以保證你的程式碼分別修改 Contact 和 Address PXCache 中的當前記錄。
public class CustomerMaintExt : PXGraphExtension<CustomerMaint>
{
public PXAction<Customer> UpdateBillingAddress;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Update Bill-To Info")]
protected void updateBillingAddress()
{
Customer currentCustomer = Base.BAccount.Current;
if (currentCustomer.IsBillContSameAsMain != true)
{
currentCustomer.IsBillContSameAsMain = true;
Base.BAccount.Update(currentCustomer);
}
else
{
currentCustomer.IsBillContSameAsMain = false;
Base.BAccount.Update(currentCustomer);
Contact billContact = Base.BillContact.Current = Base.BillContact.Select();
billContact.FullName = "ABC Holdings Inc";
billContact.Phone1 = "+1 (212) 532-9574";
Base.BillContact.Update(billContact);
}
if (currentCustomer.IsBillSameAsMain != true)
{
currentCustomer.IsBillSameAsMain = true;
Base.CurrentCustomer.Update(currentCustomer);
}
else
{
currentCustomer.IsBillSameAsMain = false;
Base.CurrentCustomer.Update(currentCustomer);
Address billAddress = Base.BillAddress.Current = Base.BillAddress.Select();
billAddress.AddressLine1 = "65 Broadway";
billAddress.AddressLine2 = "Office Suite 187";
billAddress.City = "New York";
billAddress.CountryID = "US";
billAddress = Base.BillAddress.Update(billAddress);
billAddress.State = "NY";
billAddress.PostalCode = "10004";
Base.BillAddress.Update(billAddress);
}
Base.Actions.PressSave();
}
}