/// <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"); }*/ }
protected void btnSaveHistory_ClickAction(object sender, EventArgs e) { ILead CurrentLead = this.BindingSource.Current as ILead; //TAC Code Here to Create the Linked Activity. // Create Activity Record Sage.Entity.Interfaces.IHistory History = Sage.Platform.EntityFactory.Create <Sage.Entity.Interfaces.IHistory>(); //History.AccountId = oppfulfiltask.Opportunity.Account.Id.ToString(); //History.AccountName = oppfulfiltask.Opportunity.Account.AccountName; //History.OpportunityId = oppfulfiltask.Opportunity.Id.ToString(); //History.OpportunityName = oppfulfiltask.Opportunity.Description; //todo.ContactId = histContactID; //todo.ContactName = histContactName; History.LeadId = CurrentLead.Id.ToString(); History.LeadName = CurrentLead.LeadNameFirstLast; History.Type = HistoryType.atPhoneCall; //todo.Category = histCategory; // get the current user as a User Sage.SalesLogix.Security.SLXUserService usersvc = (Sage.SalesLogix.Security.SLXUserService)Sage.Platform.Application.ApplicationContext.Current.Services.Get <Sage.Platform.Security.IUserService>(); Sage.Entity.Interfaces.IUser user = usersvc.GetUser(); History.UserId = user.Id.ToString(); History.Duration = 5; History.StartDate = System.DateTime.UtcNow.AddMinutes(-5); History.OriginalDate = System.DateTime.UtcNow.AddMinutes(-5); History.CompletedDate = System.DateTime.UtcNow; History.CompletedUser = user.Id.ToString(); History.Description = Left(Description.PickListValue, 64); History.LongNotes = Notes.Text; History.Notes = Left(Notes.Text, 255); History.Timeless = false; History.Result = Left(Result.PickListValue, 64); History.ResultCode = "COMP"; try { History.Save(); //ListBox lbFollowUp = FindCompActControl("FollowUp") as ListBox; //if (lbFollowUp == null) return false; //CheckBox cxCarryOverNotes = FindCompActControl("CarryOverNotes") as CheckBox; //if (cxCarryOverNotes == null) return false; //CheckBox cxCarryOverAttachments = FindCompActControl("CarryOverAttachments") as CheckBox; //if (cxCarryOverAttachments == null) return false; if (CurrentLead.FirstName == null && CurrentLead.LastName == null) { CurrentLead.FirstName = "No"; CurrentLead.LastName = "Name"; } CurrentLead.CfxLastCallResult = Left(Result.PickListValue, 64); CurrentLead.ModifyUser = user.Id.ToString(); // Force Modify User and Modify Date to be set CurrentLead.ModifyDate = DateTime.UtcNow; CurrentLead.ValidateLead(); CurrentLead.Save(); //Refresh if (this.PageWorkItem != null) { Sage.Platform.WebPortal.Services.IPanelRefreshService refresher = PageWorkItem.Services.Get <Sage.Platform.WebPortal.Services.IPanelRefreshService>(); if (refresher != null) { refresher.RefreshAll(); } else { Response.Redirect(Request.Url.ToString()); } } if (Followup.Checked) { Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("type", "atPhoneCall"); //if (cxCarryOverNotes.Checked || cxCarryOverAttachments.Checked) //{ args.Add("historyid", History.Id.ToString()); //} //if (cxCarryOverNotes.Checkeod) //{ args.Add("carryovernotes", "true"); //} //if (cxCarryOverAttachments.Checked) //{ // args.Add("carryoverattachments", "true"); //} args.Add("aid", History.AccountId); args.Add("cid", History.ContactId); args.Add("oid", History.OpportunityId); args.Add("tid", History.TicketId); args.Add("lid", History.LeadId); args.Add("leadname", History.LeadName); args.Add("description", History.Description); // if we're in batch mode (multiple complete from ActivityReminders) // pass that fact on to ScheduleActivity, so it can link to next activity in batch Link.ScheduleActivity(args); } //=================================================== // Initialize //=================================================== Result.PickListValue = String.Empty; Description.PickListValue = String.Empty; Notes.Text = String.Empty; Followup.Checked = false; } catch (Exception) { //Exception But Continue } }