void ICustomerDataReader.ReadData(Dictionary <string, string> aData)
        {
            PXResult <Customer, CR.Address, CR.Contact> result = null;

            if (_customerID != 0)
            {
                result = (PXResult <Customer, CR.Address, CR.Contact>) PXSelectJoin <Customer,
                                                                                     LeftJoin <CR.Address, On <CR.Address.addressID, Equal <Customer.defBillAddressID> >,
                                                                                               LeftJoin <CR.Contact, On <CR.Contact.contactID, Equal <Customer.defBillContactID> > > >,
                                                                                     Where <Customer.bAccountID, Equal <Required <Customer.bAccountID> > > > .Select(_graph, _customerID);
            }
            else if (!string.IsNullOrEmpty(_customerCD))
            {
                result = (PXResult <Customer, CR.Address, CR.Contact>) PXSelectJoin <Customer,
                                                                                     LeftJoin <CR.Address, On <CR.Address.addressID, Equal <Customer.defBillAddressID> >,
                                                                                               LeftJoin <CR.Contact, On <CR.Contact.contactID, Equal <Customer.defBillContactID> > > >,
                                                                                     Where <Customer.acctCD, Equal <Required <Customer.acctCD> > > > .Select(_graph, _customerCD);
            }
            PXResult <CustomerPaymentMethod> pmResult = PXSelect <CustomerPaymentMethod,
                                                                  Where <CustomerPaymentMethod.pMInstanceID, Equal <Required <CustomerPaymentMethod.pMInstanceID> > > >
                                                        .Select(_graph, _pminstanceID);

            if (result != null)
            {
                CustomerPaymentMethod customerPaymentMethod = pmResult;
                Customer customer = result;

                Address billAddress = null;
                Address address     = PXSelect <Address, Where <Address.addressID, Equal <Required <Address.addressID> > > > .Select(_graph,
                                                                                                                                     customerPaymentMethod.BillAddressID);

                billAddress = address ?? result;

                Contact billContact = null;
                Contact contact     = PXSelect <Contact, Where <CR.Contact.contactID, Equal <Required <Contact.contactID> > > > .Select(_graph,
                                                                                                                                        customerPaymentMethod.BillContactID);

                billContact = contact ?? result;

                aData[key_CustomerCD]   = (_prefixForCustomerCD ?? String.Empty) + (customer.AcctCD ?? String.Empty);
                aData[key_CustomerName] = customer.AcctName;

                if (pmResult != null && !string.IsNullOrEmpty(((CustomerPaymentMethod)pmResult).CustomerCCPID))
                {
                    aData[Key_Customer_CCProcessingID] = ((CustomerPaymentMethod)pmResult).CustomerCCPID;
                }

                aData[key_Country]    = billAddress?.CountryID;
                aData[key_State]      = billAddress?.State;
                aData[key_City]       = billAddress?.City;
                aData[key_Address]    = CCProcessingHelper.ExtractStreetAddress(billAddress);
                aData[key_PostalCode] = billAddress?.PostalCode;

                aData[key_Customer_FirstName] = billContact?.FirstName;
                aData[key_Customer_LastName]  = billContact?.LastName;
                aData[key_Phone] = billContact?.Phone1;
                aData[key_Fax]   = billContact?.Fax;
                aData[key_Email] = billContact?.EMail;
            }
        }