Beispiel #1
0
        public ActionResult MortgageDetails()
        {
            if (Session["Customer"] == null)
            {
                return(RedirectToAction("Index"));
            }

            int Id = (int)Session["Customer"];

            List <MortgageItem> MIS = db.MortgageItems.Where(a => a.CustomerId == Id).ToList();
            MortgageItem        M   = new MortgageItem();

            if (MIS.Count > 0)
            {
                M = MIS[MIS.Count - 1];
            }


            return(View(M));
        }
Beispiel #2
0
        public ActionResult Payout(double Due, int Id)
        {
            MortgageItem MI = db.MortgageItems.Find(Id);
            Customer     C  = db.Customers.Find(MI.CustomerId);

            ViewBag.Name                = C.FullName;
            ViewBag.MortgageItem        = MI.Id;
            ViewBag.MortgageDescription = MI.ItemQuantity;

            PayOut payout = new PayOut();

            payout.PreviousLone       = Due;
            payout.MaturityOfThisLoan = MI.MaturityOfThisLoan;
            payout.Id                   = Id;
            payout.ItemQuantity         = MI.ItemQuantity;
            payout.Price                = MI.Price;
            payout.InterestRate         = MI.InterestRate;
            payout.InterestRatePerMonth = MI.InterestRatePerMonth;

            return(View(payout));
        }
Beispiel #3
0
        public ActionResult Payout(int Id, double PreviousLone, double Payout, double Discount, double Due, double InterestRate, double InterestRatePerMonth, DateTime MaturityOfThisLoan, string MortgageItemD, string ItemQuantity, double Price)
        {
            PayOut payOut = new PayOut();

            payOut.Id                   = Id;
            payOut.ItemQuantity         = ItemQuantity;
            payOut.PreviousLone         = PreviousLone;
            payOut.Payout               = Payout;
            payOut.Due                  = Due;
            payOut.MaturityOfThisLoan   = MaturityOfThisLoan;
            payOut.Price                = Price;
            payOut.Discount             = Discount;
            payOut.InterestRate         = InterestRate;
            payOut.InterestRatePerMonth = InterestRatePerMonth;
            payOut.MortgageItemD        = MortgageItemD;

            MortgageItem mortgageItem = db.MortgageItems.Find(payOut.Id);
            MortgageItem MINew        = db.MortgageItems.Find(payOut.Id);
            MortgageItem MIDelete     = db.MortgageItems.Find(payOut.Id);
            DateTime     MIDeleteMaturityOfThisLoan = DateTime.Now;

            MIDelete.MaturityOfThisLoan = MIDeleteMaturityOfThisLoan;
            MIDelete.Status             = false;

            db.Entry(MIDelete).State = EntityState.Modified;
            db.SaveChanges();



            Customer C = db.Customers.Find(MINew.CustomerId);

            ViewBag.Name                = C.FullName;
            ViewBag.MortgageItem        = MINew.Id;
            ViewBag.MortgageDescription = MINew.ItemQuantity;



            if (Due > 0)
            {
                mortgageItem.ItemQuantity       = payOut.ItemQuantity;
                mortgageItem.IssueDate          = DateTime.Now;
                mortgageItem.Price              = payOut.Price;
                mortgageItem.MaturityOfThisLoan = payOut.MaturityOfThisLoan;
                mortgageItem.Loan                 = payOut.Due;
                mortgageItem.Status               = true;
                mortgageItem.MortgageItemD        = MortgageItemD;
                mortgageItem.InterestRate         = InterestRate;
                mortgageItem.InterestRatePerMonth = InterestRatePerMonth;


                db.MortgageItems.Add(mortgageItem);
                db.SaveChanges();
            }


            //Deposite Add

            Deposite deposite = new Deposite();

            deposite.Amount        = Payout;
            deposite.CustomerId    = mortgageItem.CustomerId;
            deposite.Date          = MIDeleteMaturityOfThisLoan;
            deposite.DepositeId    = "N/A";
            deposite.TransectionId = "N/A";
            deposite.Type          = "Manual";
            db.Deposites.Add(deposite);
            db.SaveChanges();
            if (Discount > 0)
            {
                Deposite deposite2 = new Deposite();

                deposite2.Amount        = Discount;
                deposite2.CustomerId    = mortgageItem.CustomerId;
                deposite2.Date          = MIDeleteMaturityOfThisLoan;
                deposite2.DepositeId    = 1 + DateTime.Now.ToString() + mortgageItem.CustomerId.ToString();
                deposite2.TransectionId = 1 + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                deposite2.Type          = "Discount";
                db.Deposites.Add(deposite2);
                db.SaveChanges();
            }



            ViewBag.Message = "Successfully Payed Out!";


            return(View(payOut));
        }
        private void UpdateMaturity(int p)

        {
            Customer customer       = db.Customers.Find(p);
            string   mobileOrUserId = customer.MobileNo;



            List <MortgageItem> MRS = db.MortgageItems.Where(a => a.Customer.MobileNo == mobileOrUserId || a.Customer.UserId == mobileOrUserId).Where(a => a.Status == true && a.MaturityOfThisLoan >= DateTime.Now).OrderBy(a => a.IssueDate).ToList();
            List <Deposite>     Dps = db.Deposites.Where(a => a.Customer.MobileNo == mobileOrUserId || a.Customer.UserId == mobileOrUserId).ToList();



            double amount       = 0;
            double Deposite     = 0;
            double Interest     = 0;
            double Price        = 0;
            int    MID          = 0;
            double InterestRate = 0;

            DateTime DT = DateTime.Now;


            if (MRS.Count > 0)
            {
                foreach (var M in MRS)
                {
                    amount = amount + M.Loan;


                    int DayCount = Convert.ToInt32((DateTime.Now - M.IssueDate).TotalDays);

                    double MonthlyI = M.InterestRate / 30;
                    DT           = M.IssueDate;
                    InterestRate = M.InterestRatePerMonth;
                    MID          = M.Id;

                    Interest = Interest + M.Loan * (MonthlyI / 100) * DayCount;

                    Price = M.Price;
                }
            }


            //Deposite Calculation



            foreach (var Dp in Dps)
            {
                if (Dp.Date >= DT)
                {
                    Deposite = Deposite + Dp.Amount;;
                }
            }
            double Due = Price - (amount + Interest - Deposite);



            int month = Convert.ToInt32(Due / InterestRate);

            if (Due % InterestRate > 0)
            {
                month = month + 1;
            }

            DateTime Date = DateTime.Now;

            int RealYear  = Convert.ToInt32(month / 12);
            int RealMonth = month % 12;

            int YearNow  = Date.Year;
            int MonthNow = Date.Month;
            int DayNow   = Date.Day;

            YearNow  = YearNow + RealYear;
            MonthNow = MonthNow + RealMonth;

            if (MonthNow > 12)
            {
                YearNow  = YearNow + 1;
                MonthNow = MonthNow - 12;
            }

            DateTime Maturity = new DateTime(YearNow, MonthNow, DayNow);


            MortgageItem MI = db.MortgageItems.Find(MID);

            MI.MaturityOfThisLoan = Maturity;

            db.Entry(MI).State = EntityState.Modified;
            db.SaveChanges();
        }