protected void getDataPieChart()
        {
            decimal[]      incomeArr1        = new decimal[5];
            string[]       incomeCat         = new string[5];
            decimal[]      incomevValues     = new decimal[5];
            decimal[]      incomePercentages = new decimal[10];
            string[]       income            = new string[] { "Job/Business Income", "Rental Income", "Retirement Pension", "Social Security", "Other sources" };
            ExpensesDAL    expDAL            = new ExpensesDAL();
            IncomeSourceBO incB   = new IncomeSourceBO();
            IncomeDAL      incDAL = new IncomeDAL();

            incB = incDAL.GetIncomeDetail();
            decimal   totalIncome = incB.jobIncome + incB.rentalIncome + incB.retirementPension + incB.socialSecurity + incB.otherSources;
            DataSet   ds          = new DataSet();
            DataTable dt          = new DataTable();

            incomeArr1 = incDAL.getDataOfIncome();
            for (int j = 0; j < 5; j++)
            {
                incomePercentages[j] = (decimal)(incomeArr1[j] / totalIncome) * 100;
            }

            int i;

            for (i = 0; i < 5; i++)
            {
                incomeCat[i]     = income[i];
                incomevValues[i] = incomePercentages[i];
            }
            Chart2.Series[0].Points.DataBindXY(incomeCat, incomevValues);
            Chart2.Series[0].Label      = "#PERCENT{P2}";
            Chart2.Series[0].LegendText = "#VALX (#PERCENT)";
        }
Exemple #2
0
        protected void getDataPieChart()
        {
            decimal[]      arr2        = new decimal[10];
            string[]       cat1        = new string[10];
            decimal[]      Values      = new decimal[10];
            decimal[]      percentages = new decimal[10];
            string[]       expenses    = new string[] { "House Rent", "Utilities", "Education", "Health", "Shopping", "Transport/Travel", "Entertainment", "Outside Eating", "EMI", "Other Expenses" };
            ExpensesDAL    expDAL      = new ExpensesDAL();
            IncomeSourceBO incB        = new IncomeSourceBO();
            IncomeDAL      incDAL      = new IncomeDAL();

            incB = incDAL.GetIncomeDetail();
            decimal   totalIncome = incB.bankAccount + incB.jobIncome + incB.rentalIncome + incB.retirementPension + incB.socialSecurity + incB.otherSources;
            DataSet   ds          = new DataSet();
            DataTable dt          = new DataTable();

            arr2 = expDAL.getExpenseData();
            for (int j = 0; j < 10; j++)
            {
                percentages[j] = (decimal)(arr2[j] / totalIncome) * 100;
            }


            int i;

            for (i = 0; i < 10; i++)
            {
                cat1[i]   = expenses[i];
                Values[i] = percentages[i];
            }
            Chart2.Series[0].Points.DataBindXY(cat1, Values);
            this.Chart2.Series[0]["PieLabelStyle"] = "Outside";
            Chart2.Series[0].Label      = "#PERCENT{P2}";
            Chart2.Series[0].LegendText = "#VALX (#PERCENT)";
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var var2 = Session["var1"];

            if (var2.Equals("FirstTime"))
            {
                UpdateExpense.Enabled = false;
                Session["var1"]       = "UK";
            }
            else if (var2.Equals("SecondTime"))
            {
                SubmitIncome.Enabled = false;

                incomeB           = incomeD.GetIncomeDetail();
                expenseB          = expenseD.GetExpenseDetail();
                Txtsaving.Text    = incomeB.bankAccount.ToString();
                Txtjob.Text       = incomeB.jobIncome.ToString();
                Txtrent.Text      = incomeB.rentalIncome.ToString();
                Txtpension.Text   = incomeB.retirementPension.ToString();
                Txtsocial.Text    = incomeB.socialSecurity.ToString();
                Txtother.Text     = incomeB.otherSources.ToString();
                Txthouserent.Text = expenseB.houseRent.ToString();
                Txtutility.Text   = expenseB.utilities.ToString();
                Txteducation.Text = expenseB.education.ToString();
                Txthealth.Text    = expenseB.health.ToString();
                Txtshopping.Text  = expenseB.shopping.ToString();
                Txttravel.Text    = expenseB.transport.ToString();
                Txtenter.Text     = expenseB.entertainment.ToString();
                Txthotel.Text     = expenseB.hotelBill.ToString();
                TxtEMI.Text       = expenseB.emiLoans.ToString();
                Txtotherexp.Text  = expenseB.otherExp.ToString();
                Session["var1"]   = "UK";
            }
        }
        public FinancialPlanResult financialPlanResult()
        {
            expenseB    = expenseD.GetExpenseDetail();
            incomeB     = incomeD.GetIncomeDetail();
            expenseT    = InsertExpenseManage(expenseB, incomeB);
            totalIncome = incomeB.bankAccount + incomeB.jobIncome + incomeB.rentalIncome + incomeB.retirementPension + incomeB.socialSecurity + incomeB.otherSources;
            decimal saving_value = (totalIncome * 10) / 100;



            decimal household_diff = expenseT.householdActual_percentage - expenseT.householdTh;

            if (household_diff > 0)
            {
                arrExpense[i] = household_diff;
                arrexpName[i] = "Household";
                i++;
            }
            else if (household_diff <= 0)
            {
                arrexpenseneg[m] = Math.Abs(household_diff);
                arrexpName1[m]   = "Household";
                m++;
            }
            decimal health_diff = expenseT.healthActual_percentage - expenseT.healthTh;

            if (health_diff > 0)
            {
                arrExpense[i] = health_diff;
                arrexpName[i] = "Health";
                i++;
            }
            else if (health_diff <= 0)
            {
                arrexpenseneg[m] = Math.Abs(health_diff);
                arrexpName1[m]   = "Health";
                m++;
            }
            decimal education_diff = expenseT.educationActual_percentage - expenseT.educationTH;

            if (education_diff > 0)
            {
                arrExpense[i] = education_diff;
                arrexpName[i] = "Education";
                i++;
            }
            else if (education_diff <= 0)
            {
                arrexpenseneg[m] = Math.Abs(education_diff);
                arrexpName1[m]   = "Education";
                m++;
            }
            decimal travel_diff = expenseT.travelActual_percentage - expenseT.travelTH;

            if (travel_diff > 0)
            {
                arrExpense[i] = travel_diff;
                arrexpName[i] = "Travel";
                i++;
            }
            else if (travel_diff <= 0)
            {
                arrexpenseneg[m] = Math.Abs(travel_diff);
                arrexpName1[m]   = "Travel";
                m++;
            }
            decimal lifestyle_diff = expenseT.lifestyleActual_percentage - expenseT.lifestyleTH;

            if (lifestyle_diff > 0)
            {
                arrExpense[i] = lifestyle_diff;
                arrexpName[i] = "Lifestyle";
                i++;
            }
            else if (lifestyle_diff <= 0)
            {
                arrexpenseneg[m] = Math.Abs(lifestyle_diff);
                arrexpName1[m]   = "Lifestyle";
                m++;
            }
            int size = i;

            Array.Sort(arrExpense, arrexpName);
            Array.Reverse(arrExpense);
            Array.Reverse(arrexpName);
            for (int j = 0; j < size; j++)
            {
                result[i] = arrExpense[i];
            }

            decimal totalExpensePercentage = expenseT.householdActual_percentage + expenseT.healthActual_percentage + expenseT.educationActual_percentage + expenseT.travelActual_percentage + expenseT.lifestyleActual_percentage;
            decimal savingdiff             = basicSaving - (100 - totalExpensePercentage);

            savingRemain = 66 - totalExpensePercentage;

            for (int n = 0; n < m; n++)                      //adjusting priority expense types percentages
            {
                // temp= arrexpenseneg[n];
                while (arrexpenseneg[n] != 0)
                {
                    for (int l = 0; l < size; l++)
                    {
                        if (arrExpense[l] >= arrexpenseneg[n])
                        {
                            arrExpense[l]    = arrExpense[l] - arrexpenseneg[n];
                            arrexpenseneg[n] = 0;
                        }
                        else if (arrExpense[l] < arrexpenseneg[n] && arrExpense[l] != 0)
                        {
                            arrexpenseneg[n] = arrexpenseneg[n] - arrExpense[l];
                            arrExpense[l]    = 0;
                        }
                    }
                    if (savingRemain > 0)
                    {
                        savingRemain     = savingRemain - arrexpenseneg[n];
                        arrexpenseneg[n] = 0;
                    }
                }
            }
            for (int p = 0; p < size; p++)                    //Adding remaining percentages of all types of expenses to basic saving percentages
            {
                if (arrExpense[p] > 0)
                {
                    basicSaving = basicSaving + arrExpense[p];
                    //arrExpense[p]=0;
                }
            }
            //}

            for (int u = 0; u < size; u++)
            {
                string value = arrexpName[u];

                switch (value)
                {
                case "Household":
                {
                    if (arrExpense[u] > 0)
                    {
                        planResult.householdPlan_percentage   = (decimal)expenseT.householdTh;
                        planResult.householdPlan_value        = (decimal)(totalIncome * planResult.householdPlan_percentage) / 100;
                        planResult.householdSavingPersentages = (decimal)arrExpense[u];
                        planResult.householdSavingAmount      = (decimal)(totalIncome * planResult.householdSavingPersentages) / 100;
                    }
                    else if (arrExpense[u] == 0)
                    {
                        planResult.householdPlan_percentage   = (decimal)expenseT.householdTh;
                        planResult.householdPlan_value        = (decimal)(totalIncome * planResult.householdPlan_percentage) / 100;
                        planResult.householdSavingPersentages = (decimal)0;
                        planResult.householdSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Health":
                {
                    if (arrExpense[u] > 0)
                    {
                        planResult.healthPlan_percentage   = (decimal)expenseT.healthTh - arrexpenseneg[u];
                        planResult.healthPlan_value        = (decimal)(totalIncome * planResult.healthPlan_percentage) / 100;
                        planResult.healthSavingPersentages = (decimal)arrExpense[u];
                        planResult.healthSavingAmount      = (decimal)(totalIncome * planResult.healthSavingPersentages) / 100;
                    }
                    else if (arrExpense[u] == 0)
                    {
                        planResult.healthPlan_percentage   = (decimal)expenseT.healthTh - arrexpenseneg[u];
                        planResult.healthPlan_value        = (decimal)(totalIncome * planResult.healthPlan_percentage) / 100;
                        planResult.healthSavingPersentages = (decimal)0;
                        planResult.healthSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Education":
                {
                    if (arrExpense[u] > 0)
                    {
                        planResult.educationPlan_percentage   = (decimal)expenseT.educationTH - arrexpenseneg[u];
                        planResult.educationPlan_value        = (decimal)(totalIncome * planResult.educationPlan_percentage) / 100;
                        planResult.educationSavingPersentages = (decimal)arrExpense[u];
                        planResult.educationSavingAmount      = (decimal)(totalIncome * planResult.educationSavingPersentages) / 100;
                    }
                    else if (arrExpense[u] == 0)
                    {
                        planResult.educationPlan_percentage   = (decimal)expenseT.educationTH - arrexpenseneg[u];
                        planResult.educationPlan_value        = (decimal)(totalIncome * planResult.educationPlan_percentage) / 100;
                        planResult.educationSavingPersentages = (decimal)0;
                        planResult.educationSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Travel":
                {
                    if (arrExpense[u] > 0)
                    {
                        planResult.travelPlan_percentage   = (decimal)expenseT.travelTH - arrexpenseneg[u];
                        planResult.travelPlan_value        = (decimal)(totalIncome * planResult.travelPlan_percentage) / 100;
                        planResult.travelSavingPersentages = (decimal)arrExpense[u];
                        planResult.travelSavingAmount      = (decimal)(totalIncome * planResult.travelSavingPersentages) / 100;
                    }
                    else if (arrExpense[u] == 0)
                    {
                        planResult.travelPlan_percentage   = (decimal)expenseT.travelTH - arrexpenseneg[u];
                        planResult.travelPlan_value        = (decimal)(totalIncome * planResult.travelPlan_percentage) / 100;
                        planResult.travelSavingPersentages = (decimal)0;
                        planResult.travelSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Lifestyle":
                {
                    if (arrExpense[u] > 0)
                    {
                        planResult.lifestylePlan_percentage   = (decimal)expenseT.lifestyleTH - arrexpenseneg[u];
                        planResult.lifestylePlan_value        = (decimal)(totalIncome * planResult.lifestylePlan_percentage) / 100;
                        planResult.lifestyleSavingPersentages = (decimal)arrExpense[u];
                        planResult.lifestyleSavingAmount      = (decimal)(totalIncome * planResult.lifestyleSavingPersentages) / 100;
                    }
                    if (arrExpense[u] == 0)
                    {
                        planResult.lifestylePlan_percentage   = (decimal)expenseT.lifestyleTH - arrexpenseneg[u];
                        planResult.lifestylePlan_value        = (decimal)(totalIncome * planResult.lifestylePlan_percentage) / 100;
                        planResult.lifestyleSavingPersentages = (decimal)0;
                        planResult.lifestyleSavingAmount      = (decimal)0;
                    }
                }
                break;
                }
            }

            for (int u = 0; u < m; u++)
            {
                string value = arrexpName1[u];

                switch (value)
                {
                case "Household":
                {
                    if (arrexpenseneg[u] == 0)
                    {
                        planResult.householdPlan_percentage   = (decimal)expenseT.householdTh;
                        planResult.householdPlan_value        = (decimal)(totalIncome * planResult.householdPlan_percentage) / 100;
                        planResult.householdSavingPersentages = (decimal)0;
                        planResult.householdSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Health":
                {
                    if (arrexpenseneg[u] == 0)
                    {
                        planResult.healthPlan_percentage   = (decimal)expenseT.healthTh;
                        planResult.healthPlan_value        = (decimal)(totalIncome * planResult.healthPlan_percentage) / 100;
                        planResult.healthSavingPersentages = (decimal)0;
                        planResult.healthSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Education":
                {
                    if (arrexpenseneg[u] == 0)
                    {
                        planResult.educationPlan_percentage   = (decimal)expenseT.educationTH;
                        planResult.educationPlan_value        = (decimal)(totalIncome * planResult.educationPlan_percentage) / 100;
                        planResult.educationSavingPersentages = (decimal)0;
                        planResult.educationSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Travel":
                {
                    if (arrexpenseneg[u] == 0)
                    {
                        planResult.travelPlan_percentage   = (decimal)expenseT.travelTH;
                        planResult.travelPlan_value        = (decimal)(totalIncome * planResult.travelPlan_percentage) / 100;
                        planResult.travelSavingPersentages = (decimal)0;
                        planResult.travelSavingAmount      = (decimal)0;
                    }
                }
                break;

                case "Lifestyle":
                {
                    if (arrexpenseneg[u] == 0)
                    {
                        planResult.lifestylePlan_percentage   = (decimal)expenseT.lifestyleTH;
                        planResult.lifestylePlan_value        = (decimal)(totalIncome * planResult.lifestylePlan_percentage) / 100;
                        planResult.lifestyleSavingPersentages = (decimal)0;
                        planResult.lifestyleSavingAmount      = (decimal)0;
                    }
                }
                break;
                }
            }
            expDAL.UpdateExpense_PlanResult(planResult);
            return(planResult);
        }
Exemple #5
0
        public FinancialDecisionBO financialDecision(string loanType, decimal loanAmount, int targetMonths, decimal interestRate)
        {
            expenseB    = expenseD.GetExpenseDetail();
            incomeB     = incomeD.GetIncomeDetail();
            expenseT    = planCompute.InsertExpenseManage(expenseB, incomeB);
            totalIncome = incomeB.bankAccount + incomeB.jobIncome + incomeB.rentalIncome + incomeB.retirementPension + incomeB.socialSecurity + incomeB.otherSources;
            decimal saving_value              = (totalIncome * 34) / 100;
            decimal lastMonthexpense          = expenseT.householdActual_value + expenseT.healthActual_value + expenseT.educationActual_value + expenseT.travelActual_value + expenseT.lifestyleActual_value;
            decimal lastMonthexppercentage    = (lastMonthexpense / totalIncome) * 100;
            decimal lastMonthSavingAmount     = totalIncome - lastMonthexpense;
            decimal lastMonthSavingPercentage = 100 - lastMonthexppercentage;
            decimal maximum_saving            = (totalIncome * 50) / 100;

            decimal totalMonths          = (decimal)(loanAmount / saving_value);
            decimal annualinterestAmount = (decimal)(loanAmount * (interestRate / 100)) / 12;
            decimal interestAmount       = (decimal)annualinterestAmount * targetMonths;
            decimal totalTargetLoanAount = loanAmount + interestAmount;
            decimal loanEMI           = totalTargetLoanAount / targetMonths;
            decimal loanEMIpercentage = (loanEMI / totalIncome) * 100;

            financialD.targetMonths1           = targetMonths;
            financialD.interestRate            = interestRate;
            financialD.totalAmountwithInterest = totalTargetLoanAount;
            financialD.EMIamount = loanEMI;


            if ((decimal)34.00 < loanEMIpercentage && loanEMIpercentage <= (decimal)50.00) //More saving required for payignloan EMI
            {
                planResult1 = planCompute.financialPlanResult();
                decimal total = loanEMIpercentage - (decimal)34.00;
                financialD.savingDiffPercentage = total;
                financialD.savingDiffAmount     = (total * totalIncome) / 100;
                decimal estHouseholdTH = expenseT.householdTh - (decimal)(((decimal)((expenseT.householdTh / 66) * 100) * total) / 100);
                expenseT.householdTh = estHouseholdTH;
                decimal estHealthTH = expenseT.healthTh - (decimal)(((decimal)((expenseT.healthTh / 66) * 100) * total) / 100);
                expenseT.healthTh = estHealthTH;
                decimal estEducationTH = expenseT.educationTH - (decimal)(((decimal)((expenseT.educationTH / 66) * 100) * total) / 100);
                expenseT.educationTH = estEducationTH;
                decimal estTravelTH = expenseT.travelTH - (decimal)(((decimal)((expenseT.travelTH / 66) * 100) * total) / 100);
                expenseT.travelTH = estTravelTH;
                decimal estLifestyleTH = expenseT.lifestyleTH - (decimal)(((decimal)((expenseT.lifestyleTH / 66) * 100) * total) / 100);
                expenseT.lifestyleTH = estLifestyleTH;

                thresholdDifference();

                decimal totalExpensePercentage = expenseT.householdActual_percentage + expenseT.healthActual_percentage + expenseT.educationActual_percentage + expenseT.travelActual_percentage + expenseT.lifestyleActual_percentage;
                decimal savingdiff             = basicSaving - (100 - totalExpensePercentage);
                decimal totalTH = expenseT.householdTh + expenseT.healthTh + expenseT.educationTH + expenseT.lifestyleTH + expenseT.travelTH;
                savingRemain = totalTH - totalExpensePercentage;


                i = 0;

                for (int n = 0; n < m; n++)             //adjusting priority expense types percentages
                {
                    // temp= arrexpenseneg[n];
                    while (arrexpenseneg[n] != 0)
                    {
                        for (int l = 0; l < size; l++)
                        {
                            if (arrExpense[l] >= arrexpenseneg[n])
                            {
                                arrExpense[l]    = arrExpense[l] - arrexpenseneg[n];
                                arrexpenseneg[n] = 0;
                            }
                            else if (arrExpense[l] < arrexpenseneg[n] && arrExpense[l] != 0)
                            {
                                arrexpenseneg[n] = arrexpenseneg[n] - arrExpense[l];
                                arrExpense[l]    = 0;
                            }
                        }
                        savingRemain     = savingRemain - arrexpenseneg[n];
                        arrexpenseneg[n] = 0;
                    }
                }
                for (int p = 0; p < size; p++)           //Adding remaining percentages of all types of expenses to basic saving percentages
                {
                    if (arrExpense[p] > 0)
                    {
                        basicSaving = basicSaving + arrExpense[p];
                        //arrExpense[p]=0;
                    }
                }

                UpdatingExpenses(arrExpense, arrexpName, arrexpenseneg, arrexpName1);
            }
            else if ((decimal)34.00 >= loanEMIpercentage)                                                        //Loan EMI amount getting save easily
            {
                if (loanEMIpercentage > lastMonthSavingPercentage && lastMonthSavingPercentage < (decimal)34.00) //User need to save more amount as compare to last month and he/she may follow ideal financial plan
                {
                    decimal total = loanEMIpercentage - lastMonthSavingPercentage;
                    financialD.savingDiffPercentage = total;

                    financialD.savingDiffAmount = (total * totalIncome) / 100;
                    thresholdDifference();

                    i = 0;

                    while (total != 0)
                    {
                        if (arrExpense[i] >= total)
                        {
                            arrExpense[i] = arrExpense[i] - total;
                            total         = 0;
                        }
                        else if (arrExpense[i] < total)
                        {
                            total         = total - arrExpense[i];
                            arrExpense[i] = 0;
                            i++;
                        }
                    }
                    financialDecisionCompute(total);
                }
                else if (lastMonthSavingPercentage >= loanEMIpercentage && lastMonthSavingPercentage <= (decimal)34.00)// saving is enough to pay EMI of loan but user may follow ideal financial plan
                {
                    decimal total = (decimal)34.00 - lastMonthSavingPercentage;
                    financialD.savingDiffPercentage = (decimal)0.00;

                    financialD.savingDiffAmount = (decimal)0.00;
                    thresholdDifference();
                    financialDecisionCompute(total);
                }
                planResult1 = UpdatingExpenses(arrExpense, arrexpName, arrexpenseneg, arrexpName1);
            }

            expDAL.UpdateExpense_PlanResult(planResult1);
            return(financialD);
        }