Ejemplo n.º 1
0
        async Task PushTabbedLeadPage(Account lead = null)
        {
            LeadDetailViewModel viewModel = new LeadDetailViewModel(Navigation, lead);

            var leadDetailPage = new LeadDetailPage()
            {
                BindingContext = viewModel,
                Title          = TextResources.Details,
            };

            if (Device.OS == TargetPlatform.iOS)
            {
                leadDetailPage.Icon = Icon = new FileImageSource()
                {
                    File = "LeadDetailTab"
                }
            }
            ;


            if (lead != null)
            {
                leadDetailPage.Title = lead.Company;
            }
            else
            {
                leadDetailPage.Title = "New Investment";
            }

            leadDetailPage.ToolbarItems.Add(
                new ToolbarItem(TextResources.Save, "save.png", async() =>
            {
                if (string.IsNullOrWhiteSpace(viewModel.Lead.Company))
                {
                    await DisplayAlert("Missing Information", "Please fill in the lead's company to continue", "OK");
                    return;
                }

                var answer =
                    await DisplayAlert(
                        title: TextResources.Leads_SaveConfirmTitle,
                        message: TextResources.Leads_SaveConfirmDescription,
                        accept: TextResources.Save,
                        cancel: TextResources.Cancel);

                if (answer)
                {
                    viewModel.SaveLeadCommand.Execute(null);

                    await Navigation.PopAsync();
                }
            }));


            await Navigation.PushAsync(leadDetailPage);
        }
    }
        public LeadDetailPage(LeadDetailViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = this.viewModel = viewModel;

            foreach (var property in viewModel.ProjectLeadDto.Data)
            {
                LeadProperties.Children.Add(new Label
                {
                    Text = $"{property.Key}: {property.Value}"
                });
            }
        }
Ejemplo n.º 3
0
        async Task PushTabbedLeadPage(Account lead = null)
        {
            LeadDetailViewModel viewModel = new LeadDetailViewModel(Navigation, lead);

            TabbedPage tabbedPage = new TabbedPage();

            tabbedPage.ToolbarItems.Add(
                new ToolbarItem(TextResources.Save, null, async() =>
            {
                var answer =
                    await DisplayAlert(
                        title: TextResources.Leads_SaveConfirmTitle,
                        message: TextResources.Leads_SaveConfirmDescription,
                        accept: TextResources.Save,
                        cancel: TextResources.Cancel);

                if (answer)
                {
                    viewModel.SaveLeadCommand.Execute(null);

                    await Navigation.PopModalAsync();
                }
            }));

            tabbedPage.ToolbarItems.Add(
                new ToolbarItem(TextResources.Exit, null, async() =>
            {
                {
                    var answer =
                        await DisplayAlert(
                            title: TextResources.Leads_ExitConfirmTitle,
                            message: TextResources.Leads_ExitConfirmDescription,
                            accept: TextResources.Exit_and_Discard,
                            cancel: TextResources.Cancel);

                    if (answer)
                    {
                        await Navigation.PopModalAsync();
                    }
                }
            }));

            tabbedPage.Children.Add(new LeadDetailPage()
            {
                BindingContext = viewModel,
                Title          = TextResources.Details,
                Icon           = new FileImageSource()
                {
                    File = "LeadDetailTab"
                }                                                           // only used on iOS
            });

            tabbedPage.Children.Add(new LeadContactDetailPage()
            {
                BindingContext = viewModel,
                Title          = TextResources.Contact,
                Icon           = new FileImageSource()
                {
                    File = "LeadContactDetailTab"
                }                                                                  // only used on iOS
            });

            NavigationPage navPage = new NavigationPage(tabbedPage);

            await Navigation.PushModalAsync(navPage);
        }
Ejemplo n.º 4
0
        // 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));
        }