public ActionResult Details(int id) { try { var organization = _db.Organizations.Find(id); var syncedInfo = new OrganizationSyncedInfo(); if (organization.OrganizationSyncedInfo != null) { syncedInfo = _db.OrganizationSyncedInfos.First(x => x.MerId == id); } var leadSalesFunnelChecker = new LeadSalesFunnelChecker(id); var model = new OrganizationDetailsViewModel() { Organization = organization, OrganizationDetails = _db.OrganizationDetails.First(od => od.MerId == id), MerDeliveryDetails = _db.MerDeliveryDetails.First(mdd => mdd.MerId == id), OrganizationSyncedInfo = syncedInfo, OrganizationBusinessUnits = _db.Organizations.Where(o => o.VAT == organization.VAT && o.SubjectBusinessUnit != ""), Contacts = _db.Contacts.Where(c => c.OrganizationId == id), CampaignsFor = _db.Campaigns.Where(c => c.RelatedCompanyId == id), AcquireEmails = _db.AcquireEmails.Where(a => a.RelatedOrganizationId == id), Educations = _db.Educations.Where(e => e.RelatedOrganizationId == id), Opportunities = _db.Opportunities.Where(op => op.RelatedOrganizationId == id), OpportunitiesCount = _db.Opportunities.Count(op => op.RelatedOrganizationId == id), Leads = _db.Leads.Where(l => l.RelatedOrganizationId == id), LeadsCount = _db.Leads.Count(l => l.RelatedOrganizationId == id), ClickVoxQuoteRequests = _db.ClickVoxQuoteRequests.Where(q => q.RelatedOrganizationId == id).OrderByDescending(q => q.InsertDate), Quotes = _db.Quotes.Where(q => q.RelatedOrganizationId == id), ContractDrafts = _db.ContractDrafts.Where(d => d.RelatedOrganizationId == id), Contracts = _db.Contracts.Where(c => c.RelatedOrganizationId == id).OrderByDescending(c => c.MerId), TicketsAsReceiver = _db.DeliveryTicketModels.Where(t => t.ReceiverId == id).OrderByDescending(t => t.SentDate), TicketsAsReceiverCount = _db.DeliveryTicketModels.Where(t => t.ReceiverId == id).OrderByDescending(t => t.SentDate).Count(), TicketsAsSender = _db.DeliveryTicketModels.Where(t => t.SenderId == id).OrderByDescending(t => t.SentDate), TicketsAsSenderCount = _db.DeliveryTicketModels.Where(t => t.SenderId == id).OrderByDescending(t => t.SentDate).Count(), Attributes = _db.OrganizationAttributes.Where(a => a.OrganizationId == id).OrderBy(a => a.AttributeClass), Activities = _db.ActivityLogs.Where(al => al.Module == ActivityLog.ModuleEnum.Organizations && al.ReferenceId == id).OrderByDescending(al => al.InsertDate), ActivitiesCount = _db.ActivityLogs.Count(al => al.Module == ActivityLog.ModuleEnum.Organizations && al.ReferenceId == id), LeadSalesFunnelChecker = leadSalesFunnelChecker }; return(View(model)); } catch (FormatException) { return(View("ErrorWrongInputFormat")); } }
// GET: Sales/Leads/Details/5 public ActionResult Details(int id) { Lead lead = _db.Leads.Find(id); string relatedCampaignName = String.Empty; if (lead == null) { return(HttpNotFound()); } var relatedSalesContacts = _db.Contacts.Where(c => c.Organization.MerId == lead.RelatedOrganizationId && c.ContactType == Contact.ContactTypeEnum.Sales); var relatedLeadNotes = _db.LeadNotes.Where(n => n.RelatedLeadId == lead.LeadId).OrderByDescending(n => n.InsertDate); var relatedLeadActivities = _db.ActivityLogs.Where(a => a.ReferenceId == lead.LeadId && a.Module == ModuleEnum.Leads).OrderByDescending(a => a.InsertDate); var relatedAcquireEmailBasesCampaign = _db.Campaigns.Where(c => c.CampaignType == Campaigns.Models.Campaign.CampaignTypeEnum.EmailBases && c.CampaignStatus == Campaigns.Models.Campaign.CampaignStatusEnum.Start && c.RelatedCompanyId == lead.RelatedOrganization.MerId); if (lead.RelatedCampaignId != null) { var relatedCampaign = _db.Campaigns.First(c => c.CampaignId == lead.RelatedCampaignId); relatedCampaignName = relatedCampaign.CampaignName; } var users = _db.Users.Select(u => u); //var _LastLeadNote = (from n in db.LeadNotes // where n.RelatedLeadId == lead.LeadId // select n).OrderByDescending(n => n.InsertDate).Select(n => n.Note).First().ToString(); var salesNoteTemplates = new List <ListItem> { new ListItem { Value = @"razloženo funkcioniranje servisa (opis onoga što se dogodi nakon što korisnik klikne pošalji eRačun)", Text = @"razloženo funkcioniranje servisa (opis onoga što se dogodi nakon što korisnik klikne pošalji eRačun)" }, new ListItem { Value = @"argumentirana korisnička podrška -- ažuriranje mailova (90% uspješnost), slanje tipske obavijesti, zvanje za preuzimanje (97% uspješnost)", Text = @"argumentirana korisnička podrška -- ažuriranje mailova (90% uspješnost), slanje tipske obavijesti, zvanje za preuzimanje (97% uspješnost)" }, new ListItem { Value = @"objašnjena tehnička pozadina s ERPom", Text = @"objašnjena tehnička pozadina s ERPom" }, new ListItem { Value = @"objašnjena tehnička pozadina s eRa aplikacijom", Text = @"objašnjena tehnička pozadina s eRa aplikacijom" }, new ListItem { Value = @"razložena potvrda primitka, pretraživanje i arhiviranje", Text = @"razložena potvrda primitka, pretraživanje i arhiviranje" }, new ListItem { Value = @"istaknuta jednostavnost uvođenja (kod izgovora nemamo vremena, prostora, u restrukturiranju smo)", Text = @"istaknuta jednostavnost uvođenja (kod izgovora nemamo vremena, prostora, u restrukturiranju smo)" }, new ListItem { Value = @"osvježen kontakt i iznesene novosti", Text = @"osvježen kontakt i iznesene novosti" }, new ListItem { Value = @"izvršen kvalitetan presing", Text = @"izvršen kvalitetan presing" }, new ListItem { Value = @"izvršen salesforce (isticanje benefita uz forzu)", Text = @"izvršen salesforce (isticanje benefita uz forzu)" }, new ListItem { Value = @"poslan mail ps (prijedlog suradnje)", Text = @"poslan mail ps (prijedlog suradnje)" }, new ListItem { Value = @"kreirati i odaslati PND", Text = @"kreirati i odaslati PND" }, new ListItem { Value = @"kreirati i odaslati UO", Text = @"kreirati i odaslati UO" }, new ListItem { Value = @"održan sastanak, poslan FU", Text = @"održan sastanak, poslan FU" }, new ListItem { Value = @"objašnjena zakonska pozadina i pravovaljanost eRačuna", Text = @"objašnjena zakonska pozadina i pravovaljanost eRačuna" }, new ListItem { Value = @"kontaktirani za uvođenje zaprimanja", Text = @"kontaktirani za uvođenje zaprimanja" }, new ListItem { Value = @"obrazložio slanje privitaka", Text = @"obrazložio slanje privitaka" }, new ListItem { Value = @"obrazložio procesnu pokrivenost primatelja te odagnao brige i strahove u vezi preuzimanja od strane njihovih kupaca", Text = @"obrazložio procesnu pokrivenost primatelja te odagnao brige i strahove u vezi preuzimanja od strane njihovih kupaca" } }; var rejectReasonList = new List <ListItem> { new ListItem { Value = @"0", Text = @"Ne želi navesti" }, new ListItem { Value = @"1", Text = @"Nema interesa za uslugu" }, new ListItem { Value = @"2", Text = @"Previsoka cijena" }, new ListItem { Value = @"3", Text = @"Neadekvatna ponuda" }, new ListItem { Value = @"4", Text = @"Koristi drugog posrednika" }, new ListItem { Value = @"5", Text = @"Nedostatak vremena za pokretanje projekta" }, new ListItem { Value = @"6", Text = @"Dio strane grupacije / Strano vlasništvo" }, new ListItem { Value = @"7", Text = @"Drugo / Ostalo" }, }; var leadSalesFunnelChecker = new LeadSalesFunnelChecker(lead.RelatedOrganization.MerId); var leadDetails = new LeadDetailViewModel() { Lead = lead, RelatedCampaignName = relatedCampaignName, RelatedSalesContacts = relatedSalesContacts, RelatedLeadNotes = relatedLeadNotes, RelatedLeadActivities = relatedLeadActivities, Users = users, SalesNoteTemplates = salesNoteTemplates, RejectReasons = rejectReasonList, RelatedQuotes = _db.Quotes.Where(x => x.RelatedLeadId == id), LeadSalesFunnelChecker = leadSalesFunnelChecker }; if (relatedAcquireEmailBasesCampaign.Count() != 0) { leadDetails.RelatedAcquireEmailBasesCampaignId = relatedAcquireEmailBasesCampaign.First().CampaignId; } return(View(leadDetails)); }