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)"; }
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"; } }
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)"; }
public DataSet BindfinancialData_grid() { incomeB = incomeD.GetIncomeDetail(); expenseB = expenseD.GetExpenseDetail(); expenseT = InsertExpenseManage(expenseB, incomeB); DataSet data = expDAL.getFinancialPlanData(); return(data); }
public void UpdateIncome(IncomeSourceBO incomeB) { try { income.UpdateIncomeDetail(incomeB); } catch (Exception ex) { ex.GetType(); } }
public Int32 InsertIncomeDetail(IncomeSourceBO income) { int result; try { connection.Open(); user.emailID = HttpContext.Current.Session["userName"].ToString(); SqlCommand cmd = new SqlCommand("select registration_no from customer_register where customer_mail_Id='" + user.emailID + "'", connection); SqlDataReader data = cmd.ExecuteReader(CommandBehavior.CloseConnection); data.Read(); SqlCommand command = new SqlCommand("sp_insert_financial_income", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@registration_no", data.GetValue(0)); command.Parameters.AddWithValue("@bank_account", income.bankAccount); command.Parameters.AddWithValue("@job_income", income.jobIncome); command.Parameters.AddWithValue("@rental_income", income.rentalIncome); command.Parameters.AddWithValue("@retirement_pension", income.retirementPension); command.Parameters.AddWithValue("@social_security", income.socialSecurity); command.Parameters.AddWithValue("@other_sources", income.otherSources); 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 Int32 UpdateIncomeDetail(IncomeSourceBO income) { int result; try { connection.Open(); SqlCommand command = new SqlCommand("sp_update_financial_income", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@bank_account", income.bankAccount); command.Parameters.AddWithValue("@job_income", income.jobIncome); command.Parameters.AddWithValue("@rental_income", income.rentalIncome); command.Parameters.AddWithValue("@retirement_pension", income.retirementPension); command.Parameters.AddWithValue("@social_security", income.socialSecurity); command.Parameters.AddWithValue("@other_sources", income.otherSources); 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); }
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); }