public ActionResult RankAdvancement(int id)
        {
            var currentPeriod = Exigo.GetCurrentPeriod(PeriodTypes.Default);

            int result;

            using (var context = Exigo.Sql())
            {
                result = context.Query <int>(@"
                    SELECT 
                        ISNULL(pv.PaidRankID, 1)	
                    FROM
	                    PeriodVolumes pv		                            
                    WHERE pv.CustomerID = @customerid
	                    AND pv.PeriodTypeID = @periodtypeid
	                    AND pv.PeriodID = @periodid
                ", new
                {
                    customerid   = id,
                    periodtypeid = currentPeriod.PeriodTypeID,
                    periodid     = currentPeriod.PeriodID
                }).FirstOrDefault();
            }

            var paidRankID = 1;

            if (result > 0)
            {
                paidRankID = result;
            }

            var ranks = Exigo.GetRanks().ToList();

            if (ranks.Last().RankID != paidRankID)
            {
                paidRankID = ranks.OrderBy(c => c.RankID).Where(c => c.RankID > paidRankID).FirstOrDefault().RankID;
            }

            var model = Exigo.GetCustomerRankQualifications(new GetCustomerRankQualificationsRequest
            {
                CustomerID   = id,
                PeriodTypeID = PeriodTypes.Default,
                RankID       = paidRankID
            });

            return(PartialView("Partials/RankAdvancement", model));
        }
        public ActionResult Rank()
        {
            var model = new RankViewModel();

            model.Ranks = Exigo.GetRanks().OrderBy(c => c.RankID);

            var currentperiod = Exigo.GetCurrentPeriod(PeriodTypes.Default);

            model.CurrentRank = Exigo.GetCustomerVolumes(new GetCustomerVolumesRequest
            {
                CustomerID   = Identity.Current.CustomerID,
                PeriodTypeID = currentperiod.PeriodTypeID,
                PeriodID     = currentperiod.PeriodID
            }).PayableAsRank;

            return(View(model));
        }
Example #3
0
        public ActionResult Rank()
        {
            var model = new RankViewModel();

            //Pull in all the ranks
            model.Ranks = Exigo.GetRanks().OrderBy(c => c.RankID);

            var currentperiod = Exigo.GetCurrentPeriod(PeriodTypes.Default);

            //Get the current rank from the current paid as rank from the current commission period
            model.CurrentRank = Exigo.GetCustomerVolumes(new GetCustomerVolumesRequest
            {
                CustomerID   = Identity.Current.CustomerID,
                PeriodTypeID = currentperiod.PeriodTypeID,
                PeriodID     = currentperiod.PeriodID
            }).PayableAsRank;

            //Get the next rank so we can jump to the next qualification
            model.NextRank = model.Ranks.OrderBy(c => c.RankID).Where(c => c.RankID > model.CurrentRank.RankID).FirstOrDefault();
            return(View(model));
        }
        public ActionResult Index()
        {
            var model    = new AccountOverviewViewModel();
            var customer = Exigo.GetCustomer(Identity.Current.CustomerID);

            model.Enroller = customer.Enroller;
            model.Sponsor  = customer.Sponsor;
            var website = Exigo.GetCustomerSite(Identity.Current.CustomerID);
            var socialNetworksResponse = Exigo.WebService().GetCustomerSocialNetworks(new GetCustomerSocialNetworksRequest()
            {
                CustomerID = Identity.Current.CustomerID
            });

            // Social NetWorks
            foreach (var network in socialNetworksResponse.CustomerSocialNetwork)
            {
                switch (network.SocialNetworkID)
                {
                case (int)SocialNetworks.Facebook: model.FacebookUrl = network.Url; break;

                case (int)SocialNetworks.Twitter: model.TwitterUrl = network.Url; break;

                case (int)SocialNetworks.YouTube: model.YouTubeUrl = network.Url; break;

                case (int)SocialNetworks.Blog: model.BlogUrl = network.Url; break;
                }
            }


            //Basic Info
            model.CustomerID  = customer.CustomerID;
            model.FirstName   = customer.FirstName;
            model.LastName    = customer.LastName;
            model.Email       = customer.Email;
            model.WebAlias    = website.WebAlias;
            model.LoginName   = customer.LoginName;
            model.LanguageID  = customer.LanguageID;
            model.CreatedDate = customer.CreatedDate;


            // Team Placement
            var currentPeriod    = Exigo.GetCurrentPeriod(PeriodTypes.Default);
            var placementOptions = new List <SelectListItem>();
            var volumes          = Exigo.GetCustomerVolumes(new GetCustomerVolumesRequest()
            {
                CustomerID   = Identity.Current.CustomerID,
                PeriodID     = currentPeriod.PeriodID,
                PeriodTypeID = PeriodTypes.Default
            });
            var canSeeTeamOne   = (volumes.Volume50 > 0);
            var canSeeTeamTwo   = (volumes.Volume51 > 0);
            var canSeeTeamThree = (volumes.Volume52 > 0);
            var canSeeTeamFour  = (volumes.Volume53 > 0);
            var canSeeTeamFive  = (volumes.Volume54 > 0);

            model.TeamPlacementPreferenceID = customer.Field1;

            // Only show available teams. If none available, default to team one
            if (canSeeTeamOne || (canSeeTeamOne == false && canSeeTeamTwo == false && canSeeTeamThree == false && canSeeTeamFour == false && canSeeTeamFive == false))
            {
                placementOptions.Add(new SelectListItem {
                    Text = Resources.Common.Team + " 1", Value = "1"
                });
            }
            if (canSeeTeamTwo)
            {
                placementOptions.Add(new SelectListItem {
                    Text = Resources.Common.Team + " 2", Value = "2"
                });
            }
            if (canSeeTeamThree)
            {
                placementOptions.Add(new SelectListItem {
                    Text = Resources.Common.Team + " 3", Value = "3"
                });
            }
            if (canSeeTeamFour)
            {
                placementOptions.Add(new SelectListItem {
                    Text = Resources.Common.Team + " 4", Value = "4"
                });
            }
            if (canSeeTeamFive)
            {
                placementOptions.Add(new SelectListItem {
                    Text = Resources.Common.Team + " 5", Value = "5"
                });
            }
            model.TeamPlacementPreferenceOptions = placementOptions;

            // Set the description for the user's team to be displayed
            if (model.TeamPlacementPreferenceID != "")
            {
                model.TeamPlacementPreference = Resources.Common.Team + " " + model.TeamPlacementPreferenceID;
            }
            // If somehow the customer does not have a value in thier Field1, default the description to the first available option
            else
            {
                var firstAvailableTeamNumber = placementOptions.OrderBy(c => c.Value).FirstOrDefault().Value;
                model.TeamPlacementPreference = Resources.Common.Team + " " + firstAvailableTeamNumber;
            }


            // Tax ID - Added try catch around this because it fails from time to time and kills the entire page - Mike M.
            try
            {
                var request = new Common.Api.ExigoWebService.GetCustomReportRequest();
                request.ReportID   = 3;
                request.Parameters = new List <ParameterRequest>
                {
                    new ParameterRequest {
                        ParameterName = "CustomerID", Value = Identity.Current.CustomerID
                    }
                }.ToArray();
                var taxIDResponse = Exigo.WebService().GetCustomReport(request);
                var taxId         = taxIDResponse.ReportData.Tables[0].Rows[0][0].ToString();
                model.TaxIDIsSet  = (taxId != "");
                model.MaskedTaxID = taxId;
            }
            catch (Exception ex)
            {
            }

            // Contact
            model.PrimaryPhone   = customer.PrimaryPhone;
            model.SecondaryPhone = customer.SecondaryPhone;
            model.MobilePhone    = customer.MobilePhone;
            model.Fax            = customer.Fax;
            model.Addresses      = customer.Addresses;


            // Customer Site
            model.CustomerSite.FirstName      = website.FirstName;
            model.CustomerSite.LastName       = website.LastName;
            model.CustomerSite.Email          = website.Email;
            model.CustomerSite.PrimaryPhone   = website.PrimaryPhone;
            model.CustomerSite.SecondaryPhone = website.SecondaryPhone;
            model.CustomerSite.Fax            = website.Fax;

            model.CustomerSite.Notes1 = website.Notes1;
            model.CustomerSite.Notes2 = website.Notes2;
            model.CustomerSite.Notes3 = website.Notes3;
            model.CustomerSite.Notes4 = website.Notes4;

            model.CustomerSite.Address.Address1 = website.Address.Address1;
            model.CustomerSite.Address.Address2 = website.Address.Address2;
            model.CustomerSite.Address.Country  = website.Address.Country;
            model.CustomerSite.Address.City     = website.Address.City;
            model.CustomerSite.Address.State    = website.Address.State;
            model.CustomerSite.Address.Zip      = website.Address.Zip;


            // Opt in
            model.IsOptedIn = customer.IsOptedIn;

            // Annual Membership
            model.Membership = Exigo.GetCustomerAutoOrders(new GetCustomerAutoOrdersRequest
            {
                CustomerID                = Identity.Current.CustomerID,
                IncludeDetails            = true,
                IncludePaymentMethods     = true,
                IncludeInactiveAutoOrders = true
            }).Where(v => v.Details.Any(d => d.ItemCode == "IAANNUALRENEWAL")).FirstOrDefault();

            model.ActiveMembership = model.Membership != null ? "Scheduled" + @model.Membership.NextRunDate : "No Renewal Scheduled";

            // Get the available languages
            model.Languages = Exigo.GetLanguages();


            return(View(model));
        }