protected virtual void EMailSyncPolicy_ContactsClass_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated sel) { if (sel != null) { sel(cache, e); } EMailSyncPolicy row = e.Row as EMailSyncPolicy; CRContactClass cClass = ContactClass.SelectSingle(); if (cClass != null && !String.IsNullOrWhiteSpace(cClass.DefaultOwner)) { cache.RaiseExceptionHandling <EMailSyncPolicy.contactsClass>(row, row.ContactsClass, new PXSetPropertyException(Messages.EmailExchangeContactClassWarning, PXErrorLevel.Warning)); } }
protected virtual void EMailSyncPolicy_ContactsClass_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated sel) { if (sel != null) { sel(cache, e); } EMailSyncPolicy row = e.Row as EMailSyncPolicy; CRContactClass cClass = ContactClass.SelectSingle(); if (cClass != null && ( (row.ContactsFilter == PXEmailSyncContactsFilter.OwnerCode && (!cClass.OwnerIsCreatedUser ?? false)) || (row.ContactsFilter == PXEmailSyncContactsFilter.WorkgroupCode && (!cClass.DefaultOwnerWorkgroup ?? false)) ) ) { cache.RaiseExceptionHandling <EMailSyncPolicy.contactsClass>(row, row.ContactsClass, new PXSetPropertyException(Messages.EmailExchangeContactClassWarning, PXErrorLevel.Warning)); } }
protected override Contact CreateMaster(ContactMaint graph, ContactConversionOptions _) { var entity = Documents.Current; var param = ContactInfo.Current; var docContact = Contacts.Current ?? Contacts.SelectSingle(); var docContactMethod = ContactMethod.Current ?? ContactMethod.SelectSingle(); var docAddress = Addresses.Current ?? Addresses.SelectSingle(); Contact contact = new Contact { ContactType = ContactTypesAttribute.Person, ParentBAccountID = entity.ParentBAccountID }; MapContact(docContact, contact); MapConsentable(docContact, contact); contact.FirstName = param.FirstName; contact.LastName = param.LastName; contact.Salutation = param.Salutation; contact.Phone1 = param.Phone1; contact.Phone1Type = param.Phone1Type; contact.EMail = param.Email; contact.ContactType = ContactTypesAttribute.Person; contact.ParentBAccountID = entity.ParentBAccountID; contact.BAccountID = entity.BAccountID; contact.Source = entity.Source; MapContactMethod(docContactMethod, contact); var address = (Address)graph.AddressCurrent.Cache.CreateInstance(); address = graph.AddressCurrent.Insert(address); contact = graph.Contact.Insert(contact); contact.ClassID = param.ContactClass; CRContactClass cls = PXSelect < CRContactClass, Where < CRContactClass.classID, Equal <Required <CRContactClass.classID> > > > .SelectSingleBound(graph, null, contact.ClassID); if (cls?.DefaultOwner == CRDefaultOwnerAttribute.Source) { contact.WorkgroupID = entity.WorkgroupID; contact.OwnerID = entity.OwnerID; } MapAddress(docAddress, address); address = (Address)graph.AddressCurrent.Cache.Update(address); contact.DefAddressID = address.AddressID; contact = graph.Contact.Update(contact); ReverseDocumentUpdate(graph, contact); FillRelations(graph.Relations, contact); FillAttributes(graph.Answers, contact); TransferActivities(graph, contact); // Copy Note text and Files references CRSetup setup = PXSetupOptional <CRSetup> .Select(graph); PXNoteAttribute.CopyNoteAndFiles(graph.Caches <TMain>(), Documents.Cache.GetMain(entity), graph.Contact.Cache, contact, setup); return(graph.Contact.Update(contact)); }