Esempio n. 1
0
        public LeadMaint()
        {
            PXUIFieldAttribute.SetRequired <Contact.status>(Lead.Cache, true);
            PXUIFieldAttribute.SetRequired <Contact.lastName>(Lead.Cache, true);

            PXUIFieldAttribute.SetDisplayName <BAccount.acctCD>(bAccountBasic.Cache, Messages.BAccountCD);
            PXUIFieldAttribute.SetDisplayName <BAccount.acctName>(bAccountBasic.Cache, Messages.BAccountName);

            PXUIFieldAttribute.SetEnabled <Contact.assignDate>(Lead.Cache, Lead.Cache.Current, false);

            Activities.GetNewEmailAddress =
                () =>
            {
                var contact = Lead.Current;
                return(contact != null && !string.IsNullOrWhiteSpace(contact.EMail)
                                                ? PXDBEmailAttribute.FormatAddressesWithSingleDisplayName(contact.EMail, contact.DisplayName)
                                                : String.Empty);
            };
            if (this.IsImport && !this.IsExport)
            {
                Lead.WhereNew <Where <Contact.contactType, Equal <ContactTypesAttribute.lead> > >();
                Lead.OrderByNew <OrderBy <Asc <Contact.majorStatus, Desc <Contact.duplicateStatus, Asc <Contact.contactID> > > > >();
            }
            PXUIFieldAttribute.SetVisible <CRMarketingListMember.format>(Subscriptions.Cache, null, false);
        }
Esempio n. 2
0
        public ContactMaint()
        {
            PXUIFieldAttribute.SetRequired <Contact.lastName>(Contact.Cache, true);

            PXUIFieldAttribute.SetDisplayName <BAccountR.acctCD>(Caches[typeof(BAccountR)], Messages.BAccountCD);
            PXUIFieldAttribute.SetDisplayName <BAccountR.acctName>(Caches[typeof(BAccountR)], Messages.BAccountName);

            // HACK graph can contain separate caches for BAccount and BAccountR, so force display names for BAccount cache
            PXUIFieldAttribute.SetDisplayName <BAccount.acctCD>(Caches[typeof(BAccount)], Messages.BAccountCD);
            PXUIFieldAttribute.SetDisplayName <BAccount.acctName>(Caches[typeof(BAccount)], Messages.BAccountName);

            Activities.GetNewEmailAddress =
                () =>
            {
                var contact = Contact.Current;
                return(contact != null && !string.IsNullOrWhiteSpace(contact.EMail)
                                                ? PXDBEmailAttribute.FormatAddressesWithSingleDisplayName(contact.EMail, contact.DisplayName)
                                                : String.Empty);
            };

            PXUIFieldAttribute.SetEnabled <EPLoginTypeAllowsRole.rolename>(Roles.Cache, null, false);
            Roles.Cache.AllowInsert = false;
            Roles.Cache.AllowDelete = false;
            PXUIFieldAttribute.SetVisible <CRMarketingListMember.format>(Subscriptions.Cache, null, false);

            PXUIFieldAttribute.SetVisible <Contact.languageID>(ContactCurrent.Cache, null, PXDBLocalizableStringAttribute.HasMultipleLocales);
        }
 public static string ParceAddresses(EmailAddressType[] addresses)
 {
     if (addresses == null || addresses.Length <= 0)
     {
         return(null);
     }
     return(PXDBEmailAttribute.ToString(addresses.Select(_ => new MailAddress(_.EmailAddress, _.Name))));
 }
        private static void FillMailCC(PXGraph graph, CRSMEmail message, Guid?refNoteId)
        {
            if (refNoteId == null)
            {
                return;
            }

            message.MailCc = PXDBEmailAttribute.AppendAddresses(message.MailCc, CRRelationsList <CRRelation.refNoteID> .GetEmailsForCC(graph, refNoteId.Value));
        }
Esempio n. 5
0
        protected void SendCopyMessageToInside(PXGraph graph, EMailAccount account, CRSMEmail message, IEnumerable <MailAddress> addresses)
        {
            var cache = graph.Caches[message.GetType()];
            var copy  = (CRSMEmail)cache.CreateCopy(message);

            copy.NoteID       = null;
            copy.EmailNoteID  = null;
            copy.IsIncome     = false;
            copy.ParentNoteID = message.NoteID;
            MailAddress address = null;

            copy.MailFrom = EmailParser.TryParse(message.MailFrom, out address)
                                ? new MailAddress(account.Address, address.DisplayName).ToString()
                                : account.Address;
            copy.MailTo    = PXDBEmailAttribute.ToString(addresses);          //TODO: need add address description
            copy.MailCc    = null;
            copy.MailBcc   = null;
            copy.MailReply = copy.MailFrom;
            copy.MPStatus  = MailStatusListAttribute.PreProcess;
            copy.ClassID   = CRActivityClass.EmailRouting;
            new AddInfoEmailProcessor().Process(new EmailProcessEventArgs(graph, account, copy));
            copy.RefNoteID  = null;
            copy.BAccountID = null;
            copy.ContactID  = null;
            copy.Pop3UID    = null;
            copy.ImapUID    = null;
            var imcUid = Guid.NewGuid();

            copy.ImcUID      = imcUid;
            copy.MessageId   = this.GetType().Name + "_" + imcUid.ToString().Replace("-", string.Empty);
            copy.OwnerID     = null;
            copy.WorkgroupID = null;

            copy = (CRSMEmail)cache.CreateCopy(cache.Insert(copy));

            //Update owner and reset owner if employee not found
            copy.OwnerID = message.OwnerID;
            try
            {
                cache.Update(copy);
            }
            catch (PXSetPropertyException)
            {
                copy.OwnerID = null;
                copy         = (CRSMEmail)cache.CreateCopy(cache.Update(copy));
            }

            copy.IsPrivate   = message.IsPrivate;
            copy.WorkgroupID = message.WorkgroupID;

            var noteFiles = PXNoteAttribute.GetFileNotes(cache, message);

            if (noteFiles != null)
            {
                PXNoteAttribute.SetFileNotes(cache, copy, noteFiles);
            }
        }
Esempio n. 6
0
        protected static string MergeAddressList(CRSMEmail email, string addressList, string sourceList)
        {
            if (string.IsNullOrEmpty(addressList))
            {
                return(sourceList);
            }

            List <MailAddress> result = new List <MailAddress>();
            var index = new HashSet <string>();

            foreach (MailAddress address in EmailParser.ParseAddresses(addressList))
            {
                if (index.Contains(address.Address))
                {
                    continue;
                }
                if (email.MailTo != null && email.MailTo.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                if (email.MailCc != null && email.MailCc.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                if (email.MailBcc != null && email.MailBcc.Contains(address.Address, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                index.Add(address.Address);

                result.Add(address);
            }
            return(result.Count == 0
                ? sourceList
                : string.IsNullOrEmpty(sourceList)
                    ? PXDBEmailAttribute.ToString(result)
                    : PXDBEmailAttribute.AppendAddresses(sourceList, PXDBEmailAttribute.ToString(result)));
        }
Esempio n. 7
0
        public ProjectTaskEntry()
        {
            if (Setup.Current == null)
            {
                throw new PXException(Messages.SetupNotConfigured);
            }

            Activities.GetNewEmailAddress =
                () =>
            {
                PMProject current = Project.Select();
                if (current != null)
                {
                    Contact customerContact = PXSelectJoin <Contact, InnerJoin <BAccount, On <BAccount.defContactID, Equal <Contact.contactID> > >, Where <BAccount.bAccountID, Equal <Required <BAccount.bAccountID> > > > .Select(this, current.CustomerID);

                    if (customerContact != null && !string.IsNullOrWhiteSpace(customerContact.EMail))
                    {
                        return(PXDBEmailAttribute.FormatAddressesWithSingleDisplayName(customerContact.EMail, customerContact.DisplayName));
                    }
                }
                return(String.Empty);
            };
        }
Esempio n. 8
0
        protected List <MailAddress> GenerateAddress(Contact employeeContact, Users user)
        {
            string displayName = null;
            string address     = null;

            if (user != null && user.PKID != null)
            {
                var userDisplayName = user.FullName.With(_ => _.Trim());
                if (!string.IsNullOrEmpty(userDisplayName))
                {
                    displayName = userDisplayName;
                }
                var userAddress = user.Email.With(_ => _.Trim());
                if (!string.IsNullOrEmpty(userAddress))
                {
                    address = userAddress;
                }
            }
            if (employeeContact != null && employeeContact.BAccountID != null)
            {
                var employeeDisplayName = employeeContact.DisplayName.With(_ => _.Trim());
                if (!string.IsNullOrEmpty(employeeDisplayName))
                {
                    displayName = employeeDisplayName;
                }
                var employeeAddress = employeeContact.EMail.With(_ => _.Trim());
                if (!string.IsNullOrEmpty(employeeAddress))
                {
                    address = employeeAddress;
                }
            }
            return(string.IsNullOrEmpty(address)
                                ? null
                                : EmailParser.ParseAddresses(
                       PXDBEmailAttribute.FormatAddressesWithSingleDisplayName(address, displayName)
                       ));
        }