acumatica
Modyfikacje danych kontaktowych i adresowych za pomocą kodu
Szukaj…
Wprowadzenie
W tym temacie dowiesz się, jak modyfikować dane kontaktowe i adresowe za pomocą kodu na różnych ekranach w programie Acumatica.
Podaj dane kontaktowe i adresowe dla nowego pracownika
Aby określić dane kontaktowe i adresowe dla pracownika, należy zawsze wywoływać metodę Select()
w widokach danych kontaktów i adresów przed przypisaniem jakichkolwiek wartości pól. Zaleca się również przypisanie wyniku metody Select()
do właściwości Current widoku danych kontaktu i adresu, aby zagwarantować, że kod zmodyfikuje bieżący rekord odpowiednio w PXCache kontaktu i adresu .
EmployeeMaint employeeMaintGraph = PXGraph.CreateInstance<EmployeeMaint>();
EPEmployee epEmployeeRow = new EPEmployee();
epEmployeeRow.AcctCD = "EMPLOYEE1";
epEmployeeRow = employeeMaintGraph.Employee.Insert(epEmployeeRow);
Contact contactRow = employeeMaintGraph.Contact.Current = employeeMaintGraph.Contact.Select();
contactRow.FirstName = "John";
contactRow.LastName = "Green";
employeeMaintGraph.Contact.Update(contactRow);
Address addressRow = employeeMaintGraph.Address.Current = employeeMaintGraph.Address.Select();
addressRow.CountryID = "US";
addressRow = employeeMaintGraph.Address.Update(addressRow);
addressRow.State = "DC";
employeeMaintGraph.Address.Update(addressRow);
epEmployeeRow.VendorClassID = "EMPSTAND";
epEmployeeRow.DepartmentID = "FINANCE";
employeeMaintGraph.Employee.Update(epEmployeeRow);
employeeMaintGraph.Actions.PressSave();
Podczas wstawiania nowego pracownika employeeMaintGraph.Contact.Current
zawsze zwróci główny rekord kontaktu, ponieważ rekord kontaktu zostanie automatycznie wstawiony do pamięci podręcznej, a zatem stanie się dostępny za pośrednictwem bieżącej właściwości PXCache / widoku danych. Zastosowanie metody Select()
jest nieco bardziej ogólne, ponieważ będzie działać we wszystkich możliwych scenariuszach, niezależnie od tego, czy musisz wstawić nowego pracownika, czy zaktualizować istniejący.
Zastąp kontakt rozliczeniowy i adres rozliczeniowy dla klienta
Gdy konieczne jest zastąpienie danych kontaktowych i adresowych faktur dla klienta, pierwszym krokiem jest ustawienie prawidłowych wartości właściwości IsBillContSameAsMain i IsBillSameAsMain klienta DAC. Nie zapomnij wywołać metody Update()
w pamięci podręcznej klienta zaraz po zaktualizowaniu właściwości IsBillContSameAsMain lub IsBillSameAsMain w celu zatwierdzenia bieżącej wartości pola Main jak w pamięci podręcznej.
Następnym krokiem jest wywołanie metody Select()
w widokach danych BillContact i BillAddress przed przypisaniem jakichkolwiek wartości pól. Zaleca się również, aby przypisać wynik Select()
metody do aktualnych majątkiem BillContact i BillAddress wyświetleń dane, aby zagwarantować, że modyfikuje kod bieżącego rekordu w Kontakt i adres PXCache odpowiednio.
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();
}
}
Zastąp kontakt rozliczeniowy i adres rozliczeniowy dla zamówienia sprzedaży
Aby określić dane kontaktowe do faktury i adres rozliczeniowy do zamówienia sprzedaży, zawsze należy najpierw wywołać metodę Select()
w widokach danych Billing_Contact i Billing_Address przed przypisaniem wartości pola. Zalecane jest również przypisanie wyniku metody Select()
do właściwości Billing_Contact i Billing_Address „ Current ”, aby zagwarantować, że kod zmodyfikuje bieżący rekord odpowiednio w SOBillingContact i SOBillingAddress PXCache.
Gdy konieczne jest zastąpienie informacji kontaktowych i adresowych dla zamówienia sprzedaży, ustaw prawidłowe wartości właściwości OverrideContact i OverrideAddress w DAC SOBillingContact i DAC SOBillingAddress . Nie zapomnij wywołać metody Update()
na pamięci podręcznej SOBillingContact i SOBillingAddress zaraz po zaktualizowaniu właściwości OverrideContact i OverrideAddress w celu zatwierdzenia zmian. Po wykonaniu tej czynności możesz podać dane kontaktowe i adres rozliczeniowy dla zamówienia sprzedaży.
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 = "[email protected]";
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();
}
}