private static void FillToDocumentContact(PXCache docContactCache, DocumentContact docContact, Contact contact)
        {
            if (contact == null || docContact == null)
            {
                return;
            }

            docContactCache.SetValue <DocumentContact.fullName>(docContact, contact.FullName);
            docContactCache.SetValue <DocumentContact.title>(docContact, contact.Title);
            docContactCache.SetValue <DocumentContact.firstName>(docContact, contact.FirstName);
            docContactCache.SetValue <DocumentContact.lastName>(docContact, contact.LastName);
            docContactCache.SetValue <DocumentContact.salutation>(docContact, contact.Salutation);
            docContactCache.SetValue <DocumentContact.attention>(docContact, contact.Attention);
            docContactCache.SetValue <DocumentContact.email>(docContact, contact.EMail);
            docContactCache.SetValue <DocumentContact.webSite>(docContact, contact.WebSite);
            docContactCache.SetValue <DocumentContact.phone1>(docContact, contact.Phone1);
            docContactCache.SetValue <DocumentContact.phone1Type>(docContact, contact.Phone1Type);
            docContactCache.SetValue <DocumentContact.phone2>(docContact, contact.Phone2);
            docContactCache.SetValue <DocumentContact.phone2Type>(docContact, contact.Phone2Type);
            docContactCache.SetValue <DocumentContact.phone3>(docContact, contact.Phone3);
            docContactCache.SetValue <DocumentContact.phone3Type>(docContact, contact.Phone3Type);
            docContactCache.SetValue <DocumentContact.fax>(docContact, contact.Fax);
            docContactCache.SetValue <DocumentContact.faxType>(docContact, contact.FaxType);

            docContactCache.SetValue <DocumentContact.consentAgreement>(docContact, contact.ConsentAgreement);
            docContactCache.SetValue <DocumentContact.consentDate>(docContact, contact.ConsentDate);
            docContactCache.SetValue <DocumentContact.consentExpirationDate>(docContact, contact.ConsentExpirationDate);
        }
        private void FillFromContact()
        {
            Contact relatedContact = PXSelect <
                Contact,
                Where <
                    Contact.contactID, Equal <Current <Document.refContactID> > > >
                                     .SelectSingleBound(Base, new[] { Documents.Current });

            Address relatedContactAddress = PXSelect <
                Address,
                Where <
                    Address.addressID, Equal <Current <Contact.defAddressID> > > >
                                            .SelectSingleBound(Base, new[] { relatedContact });

            DocumentContact docContact = Contacts.Cache.Current as DocumentContact;
            DocumentAddress docAddress = Addresses.SelectSingle(docContact.DefAddressID);

            FillToDocumentContact(Contacts.Cache, docContact, relatedContact);
            FillToDocumentAddress(Addresses.Cache, docAddress, relatedContactAddress);
        }