Exemplo n.º 1
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 Int32 InsertExpenseDetail(ExpensesBO expense)
        {
            connection.Open();
            SqlDataReader data;
            int           result;

            try
            {
                user.emailID = HttpContext.Current.Session["userName"].ToString();
                SqlCommand cmd = new SqlCommand("select registration_no from customer_register where customer_mail_Id='" + user.emailID + "'", connection);
                data = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                data.Read();
                SqlCommand command = new SqlCommand("sp_insert_Expenses", connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@registration_no", data.GetValue(0));
                command.Parameters.AddWithValue("@house_rent", expense.houseRent);
                command.Parameters.AddWithValue("@utilities", expense.utilities);
                command.Parameters.AddWithValue("@education", expense.education);
                command.Parameters.AddWithValue("@health", expense.health);
                command.Parameters.AddWithValue("@shopping", expense.shopping);
                command.Parameters.AddWithValue("@transport", expense.transport);
                command.Parameters.AddWithValue("@entertainment", expense.entertainment);
                command.Parameters.AddWithValue("@hotel_bill", expense.hotelBill);
                command.Parameters.AddWithValue("@EMI_loans", expense.emiLoans);
                command.Parameters.AddWithValue("@other_expenses", expense.otherExp);
                data.Close();


                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                result = command.ExecuteNonQuery();
                command.Dispose();
                if (result > 0)
                {
                    return(result);
                }
                else
                {
                    return(0);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                if (connection.State != ConnectionState.Closed)
                {
                    connection.Close();
                }
            }
        }
        public DataSet BindfinancialData_grid()
        {
            incomeB  = incomeD.GetIncomeDetail();
            expenseB = expenseD.GetExpenseDetail();
            expenseT = InsertExpenseManage(expenseB, incomeB);


            DataSet data = expDAL.getFinancialPlanData();

            return(data);
        }
 public void UpdateExpense(ExpensesBO expenseB)
 {
     try
     {
         expense.UpdateExpenseDetail(expenseB);
     }
     catch (Exception ex)
     {
         ex.GetType();
     }
 }
 public void InsertExpense(ExpensesBO expenseB)
 {
     try
     {
         expense.InsertExpenseDetail(expenseB);
     }
     catch (Exception ex)
     {
         ex.GetType();
     }
 }
        public Int32 UpdateExpenseDetail(ExpensesBO expense)
        {
            int result;

            connection.Open();
            try
            {
                SqlCommand command = new SqlCommand("sp_update_expenses", connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@house_rent", expense.houseRent);
                command.Parameters.AddWithValue("@utilities", expense.utilities);
                command.Parameters.AddWithValue("@education", expense.education);
                command.Parameters.AddWithValue("@health", expense.health);
                command.Parameters.AddWithValue("@shopping", expense.shopping);
                command.Parameters.AddWithValue("@transport", expense.transport);
                command.Parameters.AddWithValue("@entertainment", expense.entertainment);
                command.Parameters.AddWithValue("@hotel_bill", expense.hotelBill);
                command.Parameters.AddWithValue("@EMI_loans", expense.emiLoans);
                command.Parameters.AddWithValue("@other_expenses", expense.otherExp);


                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                result = command.ExecuteNonQuery();
                command.Dispose();
                if (result > 0)
                {
                    return(result);
                }
                else
                {
                    return(0);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                if (connection.State != ConnectionState.Closed)
                {
                    connection.Close();
                }
            }
        }
        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);
        }
        public ExpenseTypes InsertExpenseManage(ExpensesBO expB, IncomeSourceBO incB)
        {
            if (prt2 == "" && prt1 == "")
            {
                normatThreshold();
            }
            else
            {
                setThreshold();
            }
            try
            {
                totalIncome = incB.bankAccount + incB.jobIncome + incB.rentalIncome + incB.retirementPension + incB.socialSecurity + incB.otherSources;
                if (expB.education == 0) // Distribute education expense threshold over all other expenses threshold
                {
                    decimal houseper = (decimal)((houseHoldTH / 66) * 100);
                    houseHoldTH                         = houseHoldTH + ((houseper * educationTH) / 100);
                    expenseT.householdTh                = houseHoldTH;
                    expenseT.householdActual_value      = expB.houseRent + expB.utilities;
                    expenseT.householdActual_percentage = (expenseT.householdActual_value / totalIncome) * 100;
                    expenseT.householdTh_value          = (houseHoldTH * totalIncome) / 100;

                    decimal healthper = (decimal)((healthTH / 66) * 100);
                    healthTH                         = healthTH + ((healthper * educationTH) / 100);
                    expenseT.healthTh                = healthTH;
                    expenseT.healthActual_value      = expB.health;
                    expenseT.healthActual_percentage = (expB.health / totalIncome) * 100;
                    expenseT.healthTh_value          = (healthTH * totalIncome) / 100;

                    decimal travelper = (decimal)((educationTH / 66) * 100);
                    travelTH                         = travelTH + ((travelper * educationTH) / 100);
                    expenseT.travelTH                = travelTH;
                    expenseT.travelActual_value      = expB.transport;
                    expenseT.travelActual_percentage = (expB.transport / totalIncome) * 100;
                    expenseT.travelTh_value          = (travelTH * totalIncome) / 100;

                    decimal lifestyleper = (decimal)((travelTH / 66) * 100);
                    lifestyleTH                         = lifestyleTH + ((lifestyleper * educationTH) / 100);
                    expenseT.lifestyleTH                = lifestyleTH;
                    expenseT.lifestyleActual_value      = expB.emiLoans + expB.entertainment + expB.hotelBill + expB.shopping + expB.otherExp;
                    expenseT.lifestyleActual_percentage = (expenseT.lifestyleActual_value / totalIncome) * 100;
                    expenseT.lifestyleTh_value          = (lifestyleTH * totalIncome) / 100;


                    expenseT.educationActual_value      = 0;
                    expenseT.educationActual_percentage = 0;
                    expenseT.educationTh_value          = 0;
                    expenseT.educationTH = 0;
                    upTH.thresholdUpdateforfour(houseHoldTH, healthTH, travelTH, lifestyleTH);
                }
                else
                {
                    upTH.UpdatepriorityThreshold(houseHoldTH, healthTH, educationTH, travelTH, lifestyleTH);


                    expenseT.householdActual_value      = expB.houseRent + expB.utilities;
                    expenseT.householdActual_percentage = (expenseT.householdActual_value / totalIncome) * 100;
                    expenseT.householdTh_value          = (houseHoldTH * totalIncome) / 100;
                    expenseT.householdTh = houseHoldTH;

                    expenseT.healthActual_value      = expB.health;
                    expenseT.healthActual_percentage = (expB.health / totalIncome) * 100;
                    expenseT.healthTh_value          = (healthTH * totalIncome) / 100;
                    expenseT.healthTh = healthTH;

                    expenseT.educationActual_value      = expB.education;
                    expenseT.educationActual_percentage = (expB.education / totalIncome) * 100;
                    expenseT.educationTh_value          = (educationTH * totalIncome) / 100;
                    expenseT.educationTH = educationTH;

                    expenseT.travelActual_value      = expB.transport;
                    expenseT.travelActual_percentage = (expB.transport / totalIncome) * 100;
                    expenseT.travelTh_value          = (travelTH * totalIncome) / 100;
                    expenseT.travelTH = travelTH;

                    expenseT.lifestyleActual_value      = expB.emiLoans + expB.entertainment + expB.hotelBill + expB.shopping + expB.otherExp;
                    expenseT.lifestyleActual_percentage = (expenseT.lifestyleActual_value / totalIncome) * 100;
                    expenseT.lifestyleTh_value          = (lifestyleTH * totalIncome) / 100;
                    expenseT.lifestyleTH = lifestyleTH;
                }
                expDAL.UpdateExpense_PlanDetail(expenseT);
            }
            catch (Exception ex)
            {
                ex.GetType();
            }
            return(expenseT);
        }
Exemplo n.º 9
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);
        }