/// <summary> /// Converts the lead to contact. /// </summary> /// <param name="sourceLead">The source lead.</param> /// <param name="accountId">The account ID.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="mergeRule">The merge rule.</param> private void ConvertLeadToContact(ILead sourceLead, string accountId, bool createOpportunity, string mergeRule) { if (accountId != null) { IAccount account = EntityFactory.GetById<IAccount>(accountId); if (account != null) { var keyGen = new SalesLogixEntityKeyGenerator(); string key = keyGen.GenerateIds(typeof(IContact), 1).FirstOrDefault(); IContact contact = EntityFactory.Create<IContact>(); ((IAssignableId)contact).Id = key; string leadHistoryId = sourceLead.SaveLeadHistory(); sourceLead.ConvertLeadToContact(contact, account, "Add Contact to this Account"); if (mergeRule.ToUpper().Equals("LEADWINS")) { sourceLead.ConvertLeadAddressToContactAddress(contact); } else { contact.Address.Address1 = account.Address.Address1; contact.Address.Address2 = account.Address.Address2; contact.Address.Address3 = account.Address.Address3; contact.Address.Address4 = account.Address.Address4; contact.Address.City = account.Address.City; contact.Address.Country = account.Address.Country; contact.Address.County = account.Address.County; contact.Address.Description = account.Address.Description; contact.Address.PostalCode = account.Address.PostalCode; contact.Address.Salutation = account.Address.Salutation; contact.Address.State = account.Address.State; contact.Address.TimeZone = account.Address.TimeZone; contact.Address.Type = account.Address.Type; contact.Address.GlobalSyncId = account.Address.GlobalSyncId; contact.Address.AppId = account.Address.AppId; contact.Address.Tick = account.Address.Tick; } sourceLead.MergeLeadWithAccount(account, mergeRule, contact); CreateContactLeadSource(sourceLead, contact); account.Save(); contact.Save(); IOpportunity opportunity = CreateOpportunity(createOpportunity, contact, sourceLead); IList<IAttachment> attachment = EntityFactory.GetRepository<IAttachment>().FindByProperty("LeadId", sourceLead.Id. ToString()); foreach (IAttachment attach in attachment) sourceLead.AddAttachmentsContactID(contact, account, null, attach); sourceLead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); sourceLead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTarget = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", sourceLead.Id.ToString()); foreach (ICampaignTarget ct in campaignTarget) sourceLead.ChangeCampaignTargetEntityID(contact, ct); ILeadHistory leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } sourceLead.Delete(); EntityContext.RemoveEntityHistory(typeof (ILead), sourceLead.Id); Response.Redirect( opportunity != null ? string.Format("Opportunity.aspx?entityid={0}", opportunity.Id) : string.Format("Contact.aspx?entityId={0}", contact.Id), false); } } }
/// <summary> /// Converts the lead to new account and contact. /// </summary> /// <param name="lead">The lead.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="options">The options.</param> private void ConvertLeadToNewAccountAndContact(ILead lead, bool createOpportunity, string options) { if (lead.LegalName != null) { string qry = "select LegalCompanyName from LegalMaster where LegalCompanyName ='" + lead.LegalName + "'"; Sage.Platform.Data.IDataService service1 = Sage.Platform.Application.ApplicationContext.Current.Services.Get<Sage.Platform.Data.IDataService>(); System.Data.OleDb.OleDbConnection conObj = new System.Data.OleDb.OleDbConnection(service1.GetConnectionString()); System.Data.OleDb.OleDbDataAdapter dataAdapterObj = new System.Data.OleDb.OleDbDataAdapter(qry, conObj); System.Data.DataTable dt = new System.Data.DataTable(); dataAdapterObj.Fill(dt); if (dt.Rows.Count > 0) { lblmsg.Text = lead.LegalName + ": legal Name is already exists"; return; } } //if (ddLSalesProcess.SelectedIndex > 0 || chkCreateOpportunity.Checked == false) //{ var keyGen = new SalesLogixEntityKeyGenerator(); string key = keyGen.GenerateIds(typeof(IContact), 1).FirstOrDefault(); IContact contact = EntityFactory.Create<IContact>(); ((IAssignableId)contact).Id = key; IAccount account = EntityFactory.Create<IAccount>(); account.Type = "LEAD"; lead.ConvertLeadToContact(contact, account, options); lead.ConvertLeadToAccount(account); lead.ConvertLeadAddressToAccountAddress(account); lead.ConvertLeadAddressToContactAddress(contact); contact.SaveContactAccount(account); IOpportunity opportunity = CreateOpportunity(createOpportunity, contact, lead); IUser usr = lead.AccountManager; IOwner own = lead.Owner; if (lkpBranchManager.LookupResultValue != null) { usr = (IUser)lkpBranchManager.LookupResultValue;//Sage.Platform.EntityFactory.GetById<IUser>(lkpBranchManager.LookupResultValue.ToString()); Sage.Platform.Data.IDataService service1 = Sage.Platform.Application.ApplicationContext.Current.Services.Get<Sage.Platform.Data.IDataService>(); System.Data.OleDb.OleDbConnection conObj = new System.Data.OleDb.OleDbConnection(service1.GetConnectionString()); System.Data.OleDb.OleDbDataAdapter dataAdapterObj3 = new System.Data.OleDb.OleDbDataAdapter("Select Optionvalue as DEFAULTSECCODEID from UserOptions where userid = '" + usr.Id.ToString() + "' and name ='InsertSecCodeID'", conObj); System.Data.DataTable dt3 = new System.Data.DataTable(); dataAdapterObj3.Fill(dt3); if (dt3.Rows.Count > 0) { Sage.Entity.Interfaces.IOwner objowner2 = Sage.Platform.EntityFactory.GetById<Sage.Entity.Interfaces.IOwner>((object)dt3.Rows[0][0].ToString()); own = objowner2; } } AddAttachmentsToLead(lead, account, contact, opportunity); lead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); lead.AddActivities(contact, account, opportunity); if(chkCreateOpportunity.Checked == true) account.Type = "Prospect"; else account.Type = "LEAD"; account.LegalName = lead.LegalName; Sage.Platform.Data.IDataService service2 = Sage.Platform.Application.ApplicationContext.Current.Services.Get<Sage.Platform.Data.IDataService>(); System.Data.OleDb.OleDbConnection conOb2 = new System.Data.OleDb.OleDbConnection(service2.GetConnectionString()); System.Data.OleDb.OleDbDataAdapter dataAdapterObj1 = new System.Data.OleDb.OleDbDataAdapter("Select INDSGMSTID From INDSGMST where CINDSGDESC = '" +lead.Industry+"' and CMKTSGDESC = '" +lead.MKTSegment +"'", conOb2); System.Data.DataTable dt1 = new System.Data.DataTable(); dataAdapterObj1.Fill(dt1); if (dt1.Rows.Count > 0) { account.SegmentmstID = dt1.Rows[0][0].ToString(); } //account.Industry = lead.Industry; //account.MktSegment = lead.MKTSegment; account.AccountManager = usr; account.Owner = own; contact.Owner = own; contact.AccountManager = usr; account.Status = "Active"; contact.Save(); account.Save(); IList<ICampaignTarget> campaignTargets = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", lead.Id.ToString()); foreach (ICampaignTarget campaignTarget in campaignTargets) lead.ChangeCampaignTargetEntityID(contact, campaignTarget); ILeadHistory leadHistory = EntityFactory.GetById<ILeadHistory>(lead.SaveLeadHistory()); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } //lead.Delete(); Sage.Entity.Interfaces.IOwner objowner = Sage.Platform.EntityFactory.GetById<Sage.Entity.Interfaces.IOwner>((object)"SYST00000002"); lead.Owner = objowner; lead.Status = "Converted"; lead.Save(); string url; if (opportunity != null) { opportunity.Status = "Active"; opportunity.BusinessPotential = lead.BussinessPortential; opportunity.AccountManager = usr; opportunity.Owner = own; opportunity.Save(); url = string.Format("Opportunity.aspx?entityid={0}", opportunity.Id); } else url = string.Format("Contact.aspx?entityId={0}", contact.Id); cmdConvert.Click += DialogService.CloseEventHappened; //Page.ClientScript.RegisterClientScriptBlock(GetType(), "sas", "<script>window.close();if (window.opener && !window.opener.closed) { window.opener.location='" + url + "'; }</script>", false); Response.Redirect( opportunity != null ? string.Format("Opportunity.aspx?entityid={0}", opportunity.Id) : string.Format("Contact.aspx?entityId={0}", contact.Id), false); /*} else { lblmsg.Text = "Please Select SalesProcess,Then Continue Convert Opportunity"; //throw new Sage.Platform.Application.ValidationException("The call to LeadSearchAndConvert.cmdConvert_Click() failed"); }*/ }
private void ConvertLeadToNewAccountAndContact(ILead lead, bool createOpportunity, string options) { //====================================================================== // CFX ssommerfeldt Copied from LeadSearchAndConvert.ascx.cs //====================================================================== IOpportunity opportunity = null; IContact contact = EntityFactory.Create<IContact>(); IAccount account = EntityFactory.Create<IAccount>(); string leadHistoryId = string.Empty; ILeadHistory leadHistory = null; EntityFactory.Create<ILeadHistory>(); leadHistoryId = lead.SaveLeadHistory(); lead.ConvertLeadToContact(contact, account, options); lead.ConvertLeadToAccount(account); lead.ConvertLeadAddressToAccountAddress(account); lead.ConvertLeadAddressToContactAddress(contact); account.Save(); //============================================================== // CFX Customized Below this line ssommerfeldt July 28, 2011 //=============================================================== // CFX quite often has contacts with no Person Name if (contact.FirstName == null && contact.LastName == null) { contact.FirstName = "No"; contact.LastName = "Name"; } try { contact.SaveContactAccount(account); } catch (Exception) { // throw; } //============================================================== // CFX Customized Below this line ssommerfeldt July 28, 2011 //=============================================================== if (createOpportunity) { opportunity = EntityFactory.Create<IOpportunity>(); opportunity.Account = contact.Account; opportunity.Description = string.Format(GetLocalResourceObject("Opportunity_Description").ToString(), lead.LeadNameLastFirst); opportunity.Owner = contact.Account.Owner; opportunity.AccountManager = contact.Account.AccountManager; opportunity.Save(); } AddAttachmentsToLead(lead, account, contact, opportunity); lead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); lead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTargets = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", lead.Id.ToString()); foreach (ICampaignTarget campaignTarget in campaignTargets) lead.ChangeCampaignTargetEntityID(contact, campaignTarget); leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } lead.Delete(); //EntityContext.RemoveEntityHistory(typeof(ILead), lead.Id); //if (opportunity != null) //{ // Response.Redirect(string.Format("Opportunity.aspx?entityid={0}", opportunity.Id), false); //} //else //{ // //Response.Redirect(string.Format("Contact.aspx?entityId={0}", contact.Id), false); //CFX // Response.Redirect(string.Format("Account.aspx?entityId={0}", account.Id), false); //} }
/// <summary> /// Converts the lead to new account and contact. /// </summary> /// <param name="lead">The lead.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="options">The options.</param> private void ConvertLeadToNewAccountAndContact(ILead lead, bool createOpportunity, string options) { IOpportunity opportunity = null; IContact contact = EntityFactory.Create<IContact>(); IAccount account = EntityFactory.Create<IAccount>(); string leadHistoryId = string.Empty; ILeadHistory leadHistory = null; EntityFactory.Create<ILeadHistory>(); leadHistoryId = lead.SaveLeadHistory(); lead.ConvertLeadToContact(contact, account, options); lead.ConvertLeadToAccount(account); lead.ConvertLeadAddressToAccountAddress(account); lead.ConvertLeadAddressToContactAddress(contact); account.Save(); //================================================== // CFX Code here //================================================== foreach (ILeadWebsite tmpWebsite in lead.LeadWebsites) { // Create Account Additional Website Record Sage.Entity.Interfaces.IAccountWebsite Acctwebsite = Sage.Platform.EntityFactory.Create<Sage.Entity.Interfaces.IAccountWebsite>(); Acctwebsite.Account = account; Acctwebsite.Notes = tmpWebsite.Notes; Acctwebsite.WebAddress = tmpWebsite.WebAddress; try { Acctwebsite.Save(); } catch (Exception) { //Exception But Continue } } // =========================================================== // End CFX Code //================================================================ contact.SaveContactAccount(account); if (createOpportunity) { opportunity = EntityFactory.Create<IOpportunity>(); opportunity.Account = contact.Account; opportunity.Description = string.Format(GetLocalResourceObject("Opportunity_Description").ToString(), lead.LeadNameLastFirst); opportunity.Owner = contact.Account.Owner; opportunity.AccountManager = contact.Account.AccountManager; opportunity.Save(); } AddAttachmentsToLead(lead, account, contact, opportunity); lead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); lead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTargets = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", lead.Id.ToString()); foreach (ICampaignTarget campaignTarget in campaignTargets) lead.ChangeCampaignTargetEntityID(contact, campaignTarget); leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } lead.Delete(); EntityContext.RemoveEntityHistory(typeof(ILead), lead.Id); if (opportunity != null) { Response.Redirect(string.Format("Opportunity.aspx?entityid={0}", opportunity.Id),false); } else { Response.Redirect(string.Format("Contact.aspx?entityId={0}", contact.Id), false); } }
/// <summary> /// Converts the lead to contact. /// </summary> /// <param name="sourceLead">The source lead.</param> /// <param name="accountID">The account ID.</param> private void ConvertLeadToContact(ILead sourceLead, string accountID, bool createOpportinity, string mergeRule) { if (accountID != null) { IAccount account = EntityFactory.GetById<IAccount>(accountID); if (account != null) { IContact contact = EntityFactory.Create<IContact>(); IOpportunity opportunity = null; ILeadHistory leadHistory = null; string leadHistoryId = string.Empty; leadHistoryId = sourceLead.SaveLeadHistory(); sourceLead.ConvertLeadToContact(contact, account, "Add Contact to this Account"); if (mergeRule.ToUpper().Equals("LEADWINS")) { sourceLead.ConvertLeadAddressToContactAddress(contact); //sourceLead.ConvertLeadAddressToAccountAddress(account); } else { contact.Address.Address1 = account.Address.Address1; contact.Address.Address2 = account.Address.Address2; contact.Address.Address3 = account.Address.Address3; contact.Address.Address4 = account.Address.Address4; contact.Address.City = account.Address.City; contact.Address.Country = account.Address.Country; contact.Address.County = account.Address.County; contact.Address.Description = account.Address.Description; contact.Address.PostalCode = account.Address.PostalCode; contact.Address.Salutation = account.Address.Salutation; contact.Address.State = account.Address.State; contact.Address.TimeZone = account.Address.TimeZone; contact.Address.Type = account.Address.Type; } sourceLead.MergeLeadWithAccount(account, mergeRule, contact); account.Save(); contact.Save(); if (createOpportinity) { opportunity = EntityFactory.Create<IOpportunity>(); opportunity.Account = contact.Account; opportunity.Description = string.Format("Opportunity for {0}", sourceLead.LeadNameLastFirst); opportunity.Owner = contact.Account.Owner; opportunity.AccountManager = contact.Account.AccountManager; opportunity.Save(); } IList<IAttachment> attachment = EntityFactory.GetRepository<IAttachment>().FindByProperty("LeadId", sourceLead.Id.ToString()); foreach (IAttachment attach in attachment) sourceLead.AddAttachmentsContactID(contact, account, null, attach); sourceLead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); sourceLead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTarget = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", sourceLead.Id.ToString()); foreach (ICampaignTarget ct in campaignTarget) sourceLead.ChangeCampaignTargetEntityID(contact, ct); leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } sourceLead.Delete(); EntityContext.RemoveEntityHistory(typeof(ILead), sourceLead.Id); if (opportunity != null) { Response.Redirect(string.Format("Opportunity.aspx?entityid={0}", opportunity.Id), false); } else { Response.Redirect(string.Format("Contact.aspx?entityId={0}", contact.Id),false); } } } }
/// <summary> /// Converts the lead to new account and contact. /// </summary> /// <param name="lead">The lead.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="options">The options.</param> private void ConvertLeadToNewAccountAndContact(ILead lead, bool createOpportunity, string options) { var keyGen = new SalesLogixEntityKeyGenerator(); string key = keyGen.GenerateIds(typeof(IContact), 1).FirstOrDefault(); IContact contact = EntityFactory.Create<IContact>(); ((IAssignableId)contact).Id = key; IAccount account = EntityFactory.Create<IAccount>(); lead.ConvertLeadToContact(contact, account, options); lead.ConvertLeadToAccount(account); lead.ConvertLeadAddressToAccountAddress(account); lead.ConvertLeadAddressToContactAddress(contact); contact.SaveContactAccount(account); IOpportunity opportunity = CreateOpportunity(createOpportunity, contact, lead); AddAttachmentsToLead(lead, account, contact, opportunity); lead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); lead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTargets = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", lead.Id.ToString()); foreach (ICampaignTarget campaignTarget in campaignTargets) lead.ChangeCampaignTargetEntityID(contact, campaignTarget); ILeadHistory leadHistory = EntityFactory.GetById<ILeadHistory>(lead.SaveLeadHistory()); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } lead.Delete(); EntityContext.RemoveEntityHistory(typeof(ILead), lead.Id); Response.Redirect( opportunity != null ? string.Format("Opportunity.aspx?entityid={0}", opportunity.Id) : string.Format("Contact.aspx?entityId={0}", contact.Id), false); }
/// <summary> /// Converts the lead to new account and contact. /// </summary> /// <param name="lead">The lead.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="options">The options.</param> private void ConvertLeadToNewAccountAndContact(ILead lead, bool createOpportunity, string options) { IOpportunity opportunity = null; IContact contact = EntityFactory.Create<IContact>(); IAccount account = EntityFactory.Create<IAccount>(); string leadHistoryId = string.Empty; ILeadHistory leadHistory = null; EntityFactory.Create<ILeadHistory>(); leadHistoryId = lead.SaveLeadHistory(); lead.ConvertLeadToContact(contact, account, options); lead.ConvertLeadToAccount(account); lead.ConvertLeadAddressToAccountAddress(account); lead.ConvertLeadAddressToContactAddress(contact); account.Save(); contact.SaveContactAccount(account); if (createOpportunity) { opportunity = EntityFactory.Create<IOpportunity>(); opportunity.Account = contact.Account; opportunity.Description = string.Format(GetLocalResourceObject("Opportunity_Description").ToString(), lead.LeadNameLastFirst); opportunity.Owner = contact.Account.Owner; opportunity.AccountManager = contact.Account.AccountManager; opportunity.Save(); } AddAttachmentsToLead(lead, account, contact, opportunity); lead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); lead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTargets = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", lead.Id.ToString()); foreach (ICampaignTarget campaignTarget in campaignTargets) lead.ChangeCampaignTargetEntityID(contact, campaignTarget); leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } lead.Delete(); EntityContext.RemoveEntityHistory(typeof(ILead), lead.Id); if (opportunity != null) { Response.Redirect(string.Format("Opportunity.aspx?entityid={0}", opportunity.Id),false); } else { Response.Redirect(string.Format("Contact.aspx?entityId={0}", contact.Id), false); } }