Recherche…


Introduction

Dans cette rubrique, vous allez apprendre à modifier les informations de contact et d'adresse via du code sur différents écrans dans Acumatica.

Spécifiez les informations de contact et d'adresse pour un nouvel employé

Pour spécifier les informations de contact et d'adresse pour un employé, vous devez toujours appeler la méthode Select() sur les vues de données de contact et d' adresse avant d'affecter des valeurs de champ. Il est également recommandé d'attribuer le résultat de la méthode Select() à la propriété Current des vues de données Contact et Address pour garantir que votre code modifie respectivement l'enregistrement actuel dans Contact et 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();

Lors de l'insertion d'un nouvel employé, employeeMaintGraph.Contact.Current renvoie toujours l'enregistrement de contact principal lorsque l'enregistrement de contact est automatiquement inséré dans le cache et devient donc disponible via la propriété Current de PXCache / Data View. L'utilisation de la méthode Select() est un peu plus générique car elle fonctionnera dans tous les scénarios possibles, que vous ayez besoin d'insérer un nouvel employé ou de mettre à jour un existant.

Remplacer les informations de contact de facturation et d'adresse de facturation pour un client

Lorsque vous devez remplacer les informations de contact de facturation et d' adresse de facturation pour un client, la toute première étape consiste à définir des valeurs correctes pour les propriétés IsBillContSameAsMain et IsBillSameAsMain du DAC client . N'oubliez pas d'invoquer la méthode Update() sur le cache du client juste après avoir mis à jour la propriété IsBillContSameAsMain ou IsBillSameAsMain pour valider la valeur de champ Same as Main actuelle dans le cache.

L'étape suivante consiste à appeler la méthode Select() sur les vues de données BillContact et BillAddress avant d'affecter des valeurs de champ. Il est également recommandé d'affecter le résultat de Select() méthode pour la propriété actuelle de vues de données BillContact et BillAddress pour garantir que votre code modifie l'enregistrement en cours Contact et adresse PXCache respectivement.

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

Remplacer les informations de contact de facturation et d'adresse de facturation pour une commande client

Pour spécifier les informations de contact de facturation et d' adresse de facturation pour une commande client , vous devez toujours invoquer d'abord la méthode Select() sur les vues de données Billing_Contact et Billing_Address avant d'affecter des valeurs de champ. Il est également recommandé d'affecter le résultat de Select() méthode pour la propriété actuelle de vues de données Billing_Contact et Billing_Address pour garantir que votre code modifie l'enregistrement en cours dans SOBillingContact et SOBillingAddress PXCache respectivement.

Lorsque vous devez remplacer les informations de contact et d'adresse de facturation pour une commande client , définissez les valeurs correctes pour les propriétés OverrideContact et OverrideAddress sur le DAC SOBillingContact et le DAC SOBillingAddress . N'oubliez pas d'invoquer la méthode Update() sur les caches SOBillingContact et SOBillingAddress juste après avoir mis à jour les propriétés OverrideContact et OverrideAddress pour valider les modifications. Une fois cela fait, vous pouvez aller de l'avant et spécifier le contact de facturation et les informations d'adresse pour une commande client.

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow