public ActionResult Index(NeedsViewModel vm)
        {
            try
            {
                //min 25,000
                //max 500,000
                //25,000 increments

                //calculate needs
                decimal insuredNeedsRate = Decimal.Divide(1.06M, 1.03M) - 1.00M;
                decimal spouseTaxRate    = 0.25M;
                decimal inflationRate    = 0.03M;

                var numKidsNeedFunding = GetDefaultIfNull(vm.numKidsNeedFunding);
                var collegeFunding     = Decimal.Multiply(numKidsNeedFunding, (vm.schoolType == SCHOOLTYPES_PUBLIC ? 75772.00M : 169676.00M));

                var lumpSumNeedsAtDeath = GetDefaultIfNull(vm.finalExpenses) + GetDefaultIfNull(vm.otherDebtExpenses) + GetDefaultIfNull(vm.mortgageExpenses) + collegeFunding;

                var     incomeNeeds = vm.totalAnnualIncome;
                decimal currentInvestmentCapital = GetDefaultIfNull(vm.currentRetirementSavings) + GetDefaultIfNull(vm.currentSavings);
                decimal existingLifeInsurance    = GetDefaultIfNull(vm.existingLifeInsuranceValue);

                decimal presentValueOfSpouseIncomeNeeds = Math.Abs(BusinessRulesClass.CalculatePresentValueOfIncomeNeeds(inflationRate, vm.spouseTotalAnnualIncome == null ? 0.0M : Decimal.Multiply((1 - spouseTaxRate), GetDefaultIfNull(vm.spouseTotalAnnualIncome)),
                                                                                                                         vm.spouseYearsOfIncomeLeft == null ? 0 : vm.spouseYearsOfIncomeLeft.Value));
                decimal presentValueOfIncomeNeeds = BusinessRulesClass.CalculatePresentValueOfIncomeNeeds(insuredNeedsRate, Decimal.Multiply(-1.0M, (GetDefaultIfNull(vm.totalAnnualIncome))),
                                                                                                          vm.yearsOfIncomeLeft == null ? 0 : vm.yearsOfIncomeLeft.Value);

                var overallNeeds = BusinessRulesClass.CalculateOverallNeeds(presentValueOfIncomeNeeds,
                                                                            lumpSumNeedsAtDeath,
                                                                            currentInvestmentCapital,
                                                                            existingLifeInsurance,
                                                                            presentValueOfSpouseIncomeNeeds);
                var nm = new NeedsModel()
                {
                    collegeFunding           = collegeFunding,
                    currentInvestmentCapital = currentInvestmentCapital,
                    existingLifeInsurance    = existingLifeInsurance,
                    incomeNeeds                     = GetDefaultIfNull(incomeNeeds),
                    lumpSumNeedsAtDeath             = lumpSumNeedsAtDeath,
                    overallNeeds                    = overallNeeds,
                    presentValueOfIncomeNeeds       = presentValueOfIncomeNeeds,
                    presentValueOfSpouseIncomeNeeds = presentValueOfSpouseIncomeNeeds
                };

                vm.CoverageAmount = this.GetOverallNeedsBasedOnBand(overallNeeds);
                vm.needsModel     = nm;

                return(View(vm)); //send to view with the results
            }
            catch (Exception ex)
            {
                TempData["ErrorMessage"] = ex.Message;
                var msg = "There was an error during the needs calculation.";
                vm.ViewMessages.Add(msg);
                return(View(vm));
            }
        }
Example #2
0
        public ActionResult Index(QuoteViewModel vm)
        {
            try
            {
                // Determine eligibility
                EligibilityInfo eligibility = BusinessRulesClass.IsEligible(vm.Age, vm.stateInfo.Name, vm.tobacco, vm.health, null == vm.ReplacementPolicy ? false : vm.ReplacementPolicy.Value);

                // If eligible build XML and send to firelight
                if (eligibility.IsEligible)
                {
                    // Build XMLs
                    var client = new NewBusinessService.NewBusinessClient("CustomBinding_NewBusiness");
                    var txLife = Create103(vm);
                    NewBusinessService.TXLife response = client.SubmitNewBusinessApplication(txLife);

                    var code = response.TXLifeResponse[0].TransResult.ResultCode.Value; //response code??
                    if (code == "RESULT_SUCCESS")
                    {
                        //redirect to url
                        string url = String.Format("https://uat.firelighteapp.com/EGApp/PassiveCall.aspx?O=3138&C=D2C&refid={0}", response.TXLifeResponse[0].TransRefGUID ?? String.Empty);
                        return(Redirect(url));
                    }
                    else
                    {
                        //failed
                        var msg = response.TXLifeResponse[0].TransResult.ResultInfo[0].ResultInfoDesc;
                        vm.ViewMessages.Add("Web Service Returned a Failure Code: " + msg);
                        return(View(vm));
                    }
                }
                else
                {
                    TempData["ContactViewModel"] = new ContactViewModel {
                        DenialMessage = eligibility.EligibilityMessage, IsReplacementReject = eligibility.IsReplacememtReject, State = eligibility.State
                    };
                    return(RedirectToActionPermanent("Contact", "Contact"));
                }
            }
            catch (Exception ex)
            {
                TempData["ErrorMessage"] = ex.Message;
                var msg = "There was an error connecting to the application portal.";
                vm.ViewMessages.Add(msg);
                return(View(vm));
            }
        }
        public ActionResult Index(string fn, string email, string ph, int j)
        {
            if (fn != null && email != null && ph != null && j != 0)
            {
                ContactModel cmodl = new ContactModel()
                {
                    firstName     = fn,
                    email         = email,
                    phone         = ph,
                    state         = (QuoteViewModel.GetStateInfoFromTC(j) == null ? "" : QuoteViewModel.GetStateInfoFromTC(j).Name),
                    denialMessage = BusinessRulesClass.MedicalRejectMessage()
                };

                //data being posted from I.T.
                this.SendContactEmail(cmodl);
                return(RedirectPermanent("~/pages/thankyou"));
            }
            else
            {
                return(View("Contact"));
            }
        }
Example #4
0
        public ActionResult Index(NeedsViewModel vm)
        {
            try
            {
                // Determine eligibility
                //EligibilityInfo eligibility = BusinessRulesClass.IsEligible(vm.Age, vm.stateInfo.Name, vm.tobacco, vm.health, null == vm.ReplacementPolicy ? false : vm.ReplacementPolicy.Value);

                //if (eligibility.IsEligible)
                //{
                //min 25,000
                //max 500,000
                //25,000 increments

                //calculate needs
                decimal insuredNeedsRate = Decimal.Divide(1.06M, 1.03M) - 1.00M;
                decimal spouseTaxRate    = 0.25M;
                decimal inflationRate    = 0.03M;

                var numKidsNeedFunding = GetDefaultIfNull(vm.numKidsNeedFunding);
                var collegeFunding     = Decimal.Multiply(numKidsNeedFunding, (vm.schoolType == "PUBLIC" ? 75772.00M : 169676.00M));

                var lumpSumNeedsAtDeath = GetDefaultIfNull(vm.finalExpenses) + GetDefaultIfNull(vm.otherDebtExpenses) + GetDefaultIfNull(vm.mortgageExpenses) + collegeFunding;

                var     incomeNeeds = vm.totalAnnualIncome;
                decimal currentInvestmentCapital = GetDefaultIfNull(vm.currentRetirementSavings) + GetDefaultIfNull(vm.currentSavings);
                decimal existingLifeInsurance    = GetDefaultIfNull(vm.existingLifeInsuranceValue);

                decimal presentValueOfSpouseIncomeNeeds = Math.Abs(BusinessRulesClass.CalculatePresentValueOfIncomeNeeds(inflationRate, vm.spouseTotalAnnualIncome == null ? 0.0M : Decimal.Multiply((1 - spouseTaxRate), GetDefaultIfNull(vm.spouseTotalAnnualIncome)),
                                                                                                                         vm.spouseYearsOfIncomeLeft == null ? 0 : vm.spouseYearsOfIncomeLeft.Value));
                decimal presentValueOfIncomeNeeds = BusinessRulesClass.CalculatePresentValueOfIncomeNeeds(insuredNeedsRate, Decimal.Multiply(-1.0M, (GetDefaultIfNull(vm.totalAnnualIncome))),
                                                                                                          vm.yearsOfIncomeLeft == null ? 0 : vm.yearsOfIncomeLeft.Value);

                var overallNeeds = BusinessRulesClass.CalculateOverallNeeds(presentValueOfIncomeNeeds,
                                                                            lumpSumNeedsAtDeath,
                                                                            currentInvestmentCapital,
                                                                            existingLifeInsurance,
                                                                            presentValueOfSpouseIncomeNeeds);
                var nm = new NeedsModel()
                {
                    collegeFunding           = collegeFunding,
                    currentInvestmentCapital = currentInvestmentCapital,
                    existingLifeInsurance    = existingLifeInsurance,
                    incomeNeeds                     = GetDefaultIfNull(incomeNeeds),
                    lumpSumNeedsAtDeath             = lumpSumNeedsAtDeath,
                    overallNeeds                    = overallNeeds,
                    presentValueOfIncomeNeeds       = presentValueOfIncomeNeeds,
                    presentValueOfSpouseIncomeNeeds = presentValueOfSpouseIncomeNeeds
                };

                vm.CoverageAmount = this.GetOverallNeedsBasedOnBand(overallNeeds);
                vm.needsModel     = nm;

                return(View(vm));    //send to view with the results

                /*}
                 * else
                 * {
                 *  TempData["ContactViewModel"] = new ContactViewModel { DenialMessage = eligibility.EligibilityMessage, IsReplacementReject = eligibility.IsReplacememtReject, State = eligibility.State };
                 *  return RedirectToActionPermanent("Contact", "Contact");
                 * }*/
            }
            catch (Exception ex)
            {
                TempData["ErrorMessage"] = ex.Message;
                var msg = "There was an error during the needs calculation.";
                vm.ViewMessages.Add(msg);
                return(View(vm));
            }
        }
Example #5
0
        public ActionResult Index(QuoteViewModel vm)
        {
            try
            {
                //if coverage supplied, limit coverage to max of 1,000,000 based on age
                decimal maxCoverage = 0M;
                maxCoverage = QuoteViewModel.GetMaxCoverageBasedOnAge(vm.Age);

                vm.CoverageAmount = vm.CoverageAmount > maxCoverage ? maxCoverage : vm.CoverageAmount; //update coverage based on max

                /*
                 * //override coverage based on health and smoker status
                 * if ((vm.health == "OLI_UNWRITE_RATED" || vm.health == "OLI_UNWRITE_POOR") && vm.tobacco == "OLI_TOBACCO_CURRENT")
                 *  vm.CoverageAmount = 750000M;
                 */

                //override coverage based on risk class
                if (vm.Age < 56 && vm.CoverageAmount < 525000M && (vm.riskClass.TC == (int)QuoteViewModel.RiskClasses.RATED_TOBACCO ||
                                                                   vm.riskClass.TC == (int)QuoteViewModel.RiskClasses.RATED2_NONTOBACCO ||
                                                                   vm.riskClass.TC == (int)QuoteViewModel.RiskClasses.RATED2_TOBACCO))
                {
                    vm.CoverageAmount = 525000M;
                }

                // Determine eligibility
                EligibilityInfo eligibility = BusinessRulesClass.IsEligible(vm.Age, vm.stateInfo.Name, vm.tobacco, vm.health, null == vm.ReplacementPolicy ? false : vm.ReplacementPolicy.Value);

                // If eligible build XML and send to firelight
                if (eligibility.IsEligible)
                {
                    // Build XMLs
                    var client  = new NewBusinessService.NewBusinessClient("CustomBinding_NewBusiness");
                    var addrUri = client.Endpoint.Address.Uri;
                    var newUri  = String.Format(addrUri.ToString(), Session["GCId"] ?? "");

                    var newAddress = new System.ServiceModel.EndpointAddress(newUri);
                    client.Endpoint.Address = newAddress;

                    var txLife = Create103(vm);
                    NewBusinessService.TXLife response = client.SubmitNewBusinessApplication(txLife);

                    var code = response.TXLifeResponse[0].TransResult.ResultCode.Value; //response code??
                    if (code == "RESULT_SUCCESS")
                    {
                        //redirect to url
#if DEBUG
                        string url = String.Format("https://staging.firelighteapp.com/egapp/PassiveCall.aspx?O=3138&C=D2C&refid={0}", response.TXLifeResponse[0].TransRefGUID ?? String.Empty, Session["GCId"] ?? String.Empty);
#else
                        string url = String.Format("https://www.firelighteapp.com/EGApp/PassiveCall.aspx?O=3138&C=D2C&refid={0}&GAT=UA-97044577-1&GAC={1}", response.TXLifeResponse[0].TransRefGUID ?? String.Empty, Session["GCId"] ?? String.Empty);
#endif
                        return(Redirect(url));
                    }

                    else
                    {
                        //failed
                        var msg = response.TXLifeResponse[0].TransResult.ResultInfo[0].ResultInfoDesc;
                        vm.ViewMessages.Add("Web Service Returned a Failure Code: " + msg);
                        return(View(vm));
                    }
                }
                else
                {
                    TempData["ContactViewModel"] = new Models.ContactModel {
                        denialMessage = eligibility.EligibilityMessage, isReplacementReject = eligibility.IsReplacememtReject, state = eligibility.State
                    };
                    return(RedirectToActionPermanent("Contact", "Contact"));
                }
            }
            catch (Exception ex)
            {
                TempData["ErrorMessage"] = ex.Message;
                var msg = "There was an error connecting to the application portal.";
                vm.ViewMessages.Add(msg);
                return(View(vm));
            }
        }