/// <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"); }*/ }
/// <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); }