Sök…


Introduktion

I det här ämnet kommer du att lära dig hur du ändrar kontakt- och adressinformation genom kod på olika skärmar i Acumatica.

Ange kontakt- och adressinformation för en ny anställd

För att ange kontakt- och adressinfo för en anställd bör du alltid åberopa metoden Select() vyn Kontakt- och adressdata innan du tilldelar fältvärden. Det rekommenderas också att tilldela resultatet av Select() metod för att kontakten och adressuppgifter utsikt Current egendom för att garantera att din kod ändrar den aktuella posten i Kontakt och adress PXCache respektive.

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();

När du sätter in en ny anställd, kommer employeeMaintGraph.Contact.Current alltid att returnera huvudkontaktposten eftersom kontaktposten automatiskt infogas i cachen och därför blir tillgänglig via den aktuella egenskapen i PXCache / Data View. Användningen av metoden Select() är lite mer generisk eftersom den fungerar i alla möjliga scenarier, oavsett om du behöver infoga en ny anställd eller uppdatera en befintlig.

Överträffa Bill-To-kontakt- och Bill-To-adressinfo för en kund

När du behöver åsidosätta Bill-To Contact- och Bill-To Address-information för en kund är det första steget att ställa in korrekta värden för egenskaperna IsBillContSameAsMain och IsBillSameAsMain i Customer DAC. Glöm inte att åberopa Update() i kundcachen cache direkt efter att du har uppdaterat IsBillContSameAsMain eller IsBillSameAsMain- egenskapen för att begå det aktuella samma som huvudfältets värde i cachen.

Ditt nästa steg är att påkalla metoden Select() i BillContact- och BillAddress-datavyerna innan du tilldelar några fältvärden. Det rekommenderas också att tilldela resultatet av metoden Select() till BillContact- och BillAddress-datavyernas aktuella egenskap för att garantera att din kod ändrar den aktuella posten i Contact respektive Adress 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();
    }
}

Överträffa Bill-To-kontakt och Bill-To-adressinfo för en försäljningsorder

För att ange Bill-To Contact- och Bill-To Address-information för en försäljningsorder ska du alltid åberopa metoden Select()Billing_Contact- och Billing_Address-datavyerna innan du tilldelar fältvärden. Det rekommenderas också att tilldela resultatet av metoden Select() till datavisningarna Billing_Contact och Billing_Address ' Aktuell egenskap för att garantera att din kod modifierar den aktuella posten i SOBillingContact respektive SOBillingAddress PXCache.

När du behöver åsidosätta Bill-To-kontakt- och adressinfo för en försäljningsorder bestämmer du korrekta värden för egenskaperna OverrideContact och OverrideAddress i SOBillingContact DAC och SOBillingAddress DAC. Glöm inte att åberopa Update() -metoden i SOBillingContact- och SOBillingAddress-cacharna direkt efter att du har uppdaterat OverrideContact- och OverrideAddress- egenskaperna för att utföra ändringarna. När detta är gjort kan du gå vidare och ange Bill-To-kontakt och adressinformation för en försäljningsorder.

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();
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow