खोज…


परिचय

इस विषय में, आप सीखेंगे कि एक्यूमैटिक के अंदर अलग-अलग स्क्रीन पर कोड के माध्यम से संपर्क और पते की जानकारी को कैसे संशोधित किया जाए।

एक नए कर्मचारी के लिए संपर्क और पता जानकारी निर्दिष्ट करें

किसी कर्मचारी के लिए संपर्क और पता जानकारी निर्दिष्ट करने के लिए, आपको हमेशा किसी भी फ़ील्ड मान निर्दिष्ट करने से पहले संपर्क और पता डेटा दृश्यों पर Select() विधि को लागू करना चाहिए। यह Select() लिए भी सिफारिश की जाती है कि Select() संपर्क और पते के डेटा विचारों के लिए पद्धति का परिणाम Select() वर्तमान संपत्ति को यह गारंटी देने के लिए कि आपका कोड क्रमशः संपर्क और पता 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();

जब एक नया कर्मचारी, employeeMaintGraph.Contact.Current सम्मिलित करता है, तो TheMainGraph.Contact.Current हमेशा मुख्य संपर्क रिकॉर्ड लौटाएगा क्योंकि संपर्क रिकॉर्ड स्वचालित रूप से कैश में डाला जाता है और इसलिए पीएक्सचे / डेटा व्यू की वर्तमान संपत्ति के माध्यम से उपलब्ध हो जाता है। Select() विधि का उपयोग थोड़ा अधिक सामान्य है क्योंकि यह सभी संभावित परिदृश्यों में काम करेगा, चाहे आपको नया कर्मचारी सम्मिलित करने की आवश्यकता हो या किसी मौजूदा को अपडेट करना हो।

ओवरराइड बिल-टू कांटैक्ट और बिल-टू एड्रेस इंफो फॉर ए कस्टमर

जब आपको किसी ग्राहक के लिए बिल-टू कॉन्टेक्ट और बिल-टू-एड्रेस जानकारी को ओवरराइड करने की आवश्यकता होती है, तो पहला कदम ग्राहक डीएसी के IsBillContSameAsMain और IsBillSameAsMain गुणों के लिए सही मान सेट करना है। आह्वान करने के लिए मत भूलना Update() ग्राहक कैश पर विधि सही होने के बाद आप IsBillContSameAsMain या IsBillSameAsMain संपत्ति कैश में मुख्य फ़ील्ड मान के रूप में वर्तमान एक ही प्रतिबद्ध करने के लिए अद्यतन किया गया।

आपका अगला कदम किसी भी फ़ील्ड मान निर्दिष्ट करने से पहले BillContact और BillAddress डेटा दृश्यों पर Select() विधि को लागू करना है। BillContact और BillAddress डेटा विचारों के Select() विधि के परिणाम को निर्दिष्ट करने के लिए भी सिफारिश की जाती है कि वर्तमान में यह गारंटी देने के लिए कि आपका कोड क्रमशः संपर्क और पता 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();
    }
}

सेल्स ऑर्डर के लिए बिल-टू कॉन्टेक्ट और बिल-टू एड्रेस इंफो को ओवरराइड करें

बिक्री आदेश के लिए बिल-टू कॉन्टेक्ट और बिल-टू एड्रेस जानकारी को निर्दिष्ट करने के लिए, आपको हमेशा किसी भी फ़ील्ड मान निर्दिष्ट करने से पहले Billing_Contact और Billing_Address डेटा दृश्यों पर Select() विधि करना चाहिए। यह भी का नतीजा आवंटित करने के लिए सिफारिश की है Select() है कि अपने कोड को संशोधित SOBillingContact और SOBillingAddress PXCache में मौजूदा रिकॉर्ड क्रमशः गारंटी करने के लिए Billing_Contact और Billing_Address डेटा दृश्य 'वर्तमान संपत्ति के लिए विधि।

जब आप ओवरराइड करने के लिए बिल प्राप्तकर्ता संपर्क और एक बिक्री आदेश के लिए पता जानकारी की आवश्यकता है, OverrideContact और SOBillingContact डीएसी पर OverrideAddress गुण और SOBillingAddress डीएसी के लिए सही मूल्यों की स्थापना की। परिवर्तनों को पूरा करने के लिए OverrideContact और OverrideAddress गुणों को अपडेट करने के बाद SOBillingContact और SOBillingAddress कैश पर Update() विधि को लागू करना न भूलें। एक बार यह पूरा हो जाने के बाद, आप आगे जा सकते हैं और बिक्री आदेश के लिए बिल-टू संपर्क और पते की जानकारी निर्दिष्ट कर सकते हैं।

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
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow