示例#1
0
        public static LoanEMI GetLoanEMIByEMINumber(List <LoanEMI> theLoanEMIChart, int emiNumber)
        {
            LoanEMI TheLoanEMI = new LoanEMI();

            var TheLoanEMIChart = from LoanEMIChart in theLoanEMIChart
                                  where LoanEMIChart.EMINumber == emiNumber
                                  select LoanEMIChart;

            foreach (LoanEMI EachEMI in TheLoanEMIChart)
            {
                TheLoanEMI = EachEMI;
            }

            return(TheLoanEMI);
        }
示例#2
0
        public static LoanEMI GetLoanEMIByEMINumber(decimal rateOfInterest, decimal tenureInMonths, decimal loanAmount, int emiNumber)
        {
            LoanEMI TheLoanEMI = new LoanEMI();

            var TheLoanEMIChart = from LoanEMIChart in GetLoanEMIChart(rateOfInterest, tenureInMonths, loanAmount)
                                  where LoanEMIChart.EMINumber == emiNumber
                                  select LoanEMIChart;

            foreach (LoanEMI EachEMI in TheLoanEMIChart)
            {
                TheLoanEMI = EachEMI;
            }

            return(TheLoanEMI);
        }
示例#3
0
        public static LoanEMI GetLoanSettlement(decimal rateOfInterest, decimal tenureInMonths, decimal loanAmount, int installmentsPaid)
        {
            decimal TotalInterestAmountDue = (from LoanEMIChart in GetLoanEMIChart(rateOfInterest, tenureInMonths, loanAmount)
                                              where LoanEMIChart.EMINumber > installmentsPaid && LoanEMIChart.EMINumber <= 12
                                              select LoanEMIChart.InterestAmount).Sum();

            decimal TotalPrincipalAmountDue = (from LoanEMIChart in GetLoanEMIChart(rateOfInterest, tenureInMonths, loanAmount)
                                               where LoanEMIChart.EMINumber == installmentsPaid
                                               select LoanEMIChart.BalanceDue).First();
            LoanEMI TheLoanEMI = new LoanEMI();

            TheLoanEMI.EMINumber          = installmentsPaid + 1;
            TheLoanEMI.EMIAmount          = TheLoanEMI.PrincipalReduction + TheLoanEMI.InterestAmount;
            TheLoanEMI.PrincipalReduction = TotalPrincipalAmountDue;
            TheLoanEMI.InterestAmount     = TotalInterestAmountDue;
            TheLoanEMI.BalanceDue         = 0;
            TheLoanEMI.RoundOff           = 0;

            return(TheLoanEMI);
        }
示例#4
0
        public static List <LoanEMI> GetLoanEMIChart(decimal rateOfInterest, decimal tenureInMonths, decimal loanAmount)
        {
            List <LoanEMI> TheLoanEMIChart = new List <LoanEMI>();

            double RateOfInterest  = double.Parse(((rateOfInterest / 100) / 12).ToString());
            double Tenure          = double.Parse(tenureInMonths.ToString());
            double PrincipalAmount = double.Parse(loanAmount.ToString());

            double EMIAmount       = Math.Round(GetLoanEMIAmount(double.Parse(rateOfInterest.ToString()), Tenure, PrincipalAmount), 0);
            double EMIInterest     = 0;
            double EMIPrincipal    = 0;
            double EMIOutstandings = PrincipalAmount;

            double TotalInterestPayable  = 0;
            double TotalPrincipalPayable = 0;
            double TotalPayable          = 0;

            for (int Counter = 1; Counter <= Tenure; Counter++)
            {
                if (Counter < Tenure)
                {
                    EMIInterest     = Math.Round((EMIOutstandings * RateOfInterest), 0);
                    EMIPrincipal    = EMIAmount - EMIInterest;
                    EMIOutstandings = Math.Round((EMIOutstandings - EMIPrincipal), 0);

                    TotalInterestPayable  = TotalInterestPayable + EMIInterest;
                    TotalPrincipalPayable = TotalPrincipalPayable + EMIPrincipal;
                    TotalPayable          = TotalPrincipalPayable + TotalInterestPayable;

                    LoanEMI TheLoanEMI = new LoanEMI
                    {
                        EMINumber             = Counter,
                        EMIAmount             = decimal.Parse(EMIAmount.ToString()),
                        InterestAmount        = decimal.Parse(EMIInterest.ToString()),
                        PrincipalReduction    = decimal.Parse(EMIPrincipal.ToString()),
                        BalanceDue            = decimal.Parse(EMIOutstandings.ToString()),
                        TotalInterestPayable  = decimal.Parse(TotalInterestPayable.ToString()),
                        TotalPrincipalPayable = decimal.Parse(TotalPrincipalPayable.ToString()),
                        TotalPayable          = decimal.Parse(TotalPayable.ToString()),
                        RoundOff = 0
                    };

                    TheLoanEMIChart.Add(TheLoanEMI);
                }
                else
                {
                    EMIInterest     = Math.Round((EMIOutstandings * RateOfInterest), 0);
                    EMIPrincipal    = EMIAmount - EMIInterest;
                    EMIOutstandings = Math.Round((EMIOutstandings - EMIPrincipal), 0);

                    EMIInterest  = EMIInterest - EMIOutstandings;
                    EMIPrincipal = EMIPrincipal + EMIOutstandings;

                    TotalInterestPayable  = TotalInterestPayable + EMIInterest;
                    TotalPrincipalPayable = TotalPrincipalPayable + EMIPrincipal;
                    TotalPayable          = TotalPrincipalPayable + TotalInterestPayable;

                    LoanEMI TheLoanEMI = new LoanEMI
                    {
                        EMINumber             = Counter,
                        EMIAmount             = decimal.Parse(EMIAmount.ToString()),
                        InterestAmount        = decimal.Parse(EMIInterest.ToString()),
                        PrincipalReduction    = decimal.Parse(EMIPrincipal.ToString()),
                        BalanceDue            = 0,
                        TotalInterestPayable  = decimal.Parse(TotalInterestPayable.ToString()),
                        TotalPrincipalPayable = decimal.Parse(TotalPrincipalPayable.ToString()),
                        TotalPayable          = decimal.Parse(TotalPayable.ToString()),
                        RoundOff = decimal.Parse(EMIOutstandings.ToString())
                    };

                    TheLoanEMIChart.Add(TheLoanEMI);
                }
            }

            return(TheLoanEMIChart);
        }