acumatica
Modifiche al contatto e informazioni sull'indirizzo tramite codice
Ricerca…
introduzione
In questo argomento, imparerai come modificare le informazioni di contatto e indirizzo tramite codice su diverse schermate all'interno di Acumatica.
Specificare le informazioni di contatto e indirizzo per un nuovo dipendente
Per specificare le informazioni di contatto e indirizzo per un dipendente, è necessario sempre richiamare il metodo Select()
nelle viste dati Contact e Address prima di assegnare qualsiasi valore di campo. Si consiglia inoltre di assegnare il risultato del metodo Select()
alla proprietà Current delle viste dei dati Contact e Address per garantire che il codice modifichi il record corrente rispettivamente in Contact e Address PXCache.
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();
Quando si inserisce un nuovo dipendente, employeeMaintGraph.Contact.Current
restituirà sempre il record del contatto principale poiché il record del contatto viene automaticamente inserito nella cache e pertanto diventa disponibile tramite la proprietà Current di PXCache / Data View. L'uso del metodo Select()
è un po 'più generico poiché funzionerà in tutti gli scenari possibili, sia che sia necessario inserire un nuovo Impiegato o aggiornare uno esistente.
Sostituisci le informazioni di contatto Bill-To e indirizzo Bill-To per un cliente
Quando è necessario sovrascrivere le informazioni di contatto Bill-To e indirizzo Bill-To per un cliente, il primo passaggio consiste nell'impostare i valori corretti per le proprietà IsBillContSameAsMain e IsBillSameAsMain del DAC cliente . Non dimenticare di invocare il metodo Update()
sulla cache del cliente subito dopo aver aggiornato IsBillContSameAsMain o la proprietà IsBillSameAsMain per salvare nella cache lo stesso valore del campo Main .
Il prossimo passo è invocare il metodo Select()
sulle viste dei dati BillContact e BillAddress prima di assegnare qualsiasi valore di campo. Si consiglia inoltre di assegnare il risultato del metodo Select()
alla proprietà Current delle viste dati BillContact e BillAddress per garantire che il codice modifichi il record corrente rispettivamente in Contact e 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();
}
}
Ignora le informazioni di contatto Bill-To e indirizzo di fatturazione per un ordine cliente
Per specificare le informazioni sull'indirizzo Bill-To e sull'indirizzo Bill-To per un ordine cliente , è sempre necessario prima richiamare il metodo Select()
nelle viste dati Billing_Contact e Billing_Address prima di assegnare qualsiasi valore di campo. Si consiglia inoltre di assegnare il risultato del metodo Select()
alla proprietà Current delle proprietà dei dati Billing_Contact e Billing_Address per garantire che il codice modifichi il record corrente rispettivamente in SOBillingContact e SOBillingAddress PXCache.
Quando è necessario sostituire le informazioni Bill-To e Indirizzo per un ordine cliente , impostare i valori corretti per le proprietà OverrideContact e OverrideAddress sul DAC SOBillingContact e sul DAC SOBillingAddress . Non dimenticare di invocare il metodo Update()
sulle cache SOBillingContact e SOBillingAddress subito dopo aver aggiornato le proprietà OverrideContact e OverrideAddress per confermare le modifiche. Una volta fatto, è possibile andare avanti e specificare le informazioni di contatto e indirizzo di fatturazione per un ordine di vendita.
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();
}
}