public ActionResult Deposit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } int checkDays = (DateTime.Now - passBook.ChangeDate).Days; ViewBag.Active = "false"; if (checkDays >= passBook.Term.MinDate || checkDays == 0) { ViewBag.Active = "true"; } Session["passbookid"] = id; ViewBag.Acronym = passBook.Acronym; return(View()); }
public ActionResult Withdraw(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } int checkDays = (DateTime.Now - passBook.ChangeDate).Days; if (checkDays < 15) { //Error message } ViewBag.PbId = id; ViewBag.Acronym = passBook.Acronym; ViewBag.PassBookId = new SelectList(db.PassBooks, "Id", "Acronym"); return(View()); }
public ActionResult ConfirmWithdraw(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } ViewBag.PassbookId = id; ViewBag.Acronym = passBook.Acronym; ViewBag.TermendDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); ViewBag.DemandRate = passBook.DemandInterestRate; return(View()); }
public ActionResult Close(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } ViewBag.PbId = id; var res = Calculate(passBook.Id, "close"); ViewBag.Acronym = passBook.Acronym; ViewBag.Principal = passBook.Principal; ViewBag.Balance = passBook.Balance; ViewBag.Interest = res.interest; ViewBag.InterestKKH = res.interestKKH; ViewBag.Total = passBook.Balance + (decimal)res.interest + (decimal)res.interestKKH; return(View()); }
public ActionResult Withdraw(TransactionDetail obj) { int AccountNumber = Convert.ToInt32(obj.AccountNumber); var AccData2 = _context.Accounts.Where(x => x.AccountNumber == AccountNumber).FirstOrDefault(); TransactionDetail AccData = new TransactionDetail(); PassBook AccData3 = new PassBook(); if (AccData2 != null) { AccData2.AccountNumber = obj.AccountNumber; AccData2.Balance = AccData2.Balance - obj.Amount; // AccData.TimeofTransaction = DateTime.Now; _context.Entry(AccData2).State = EntityState.Modified; _context.SaveChanges(); } AccData.AccountNumber = AccData2.AccountNumber; AccData.Amount = obj.Amount; AccData.TimeofTransaction = DateTime.Now; AccData3.AccountNumber = AccData2.AccountNumber; AccData3.Amount = obj.Amount; AccData3.TimeofTransaction = DateTime.Now; AccData3.Mode = "Withdraw"; _context.TransactionDetails.Add(AccData); _context.SaveChanges(); _context.PassBooks.Add(AccData3); _context.SaveChanges(); TempData["Message"] = " Amount Withdrawl of Rs. " + Convert.ToString(AccData.Amount) + " was Successful "; return(RedirectToAction("../Home/Redirect")); }
private dynamic Calculate(int id, string action) { PassBook passBook = db.PassBooks.SingleOrDefault(n => n.Id == id); double rate = passBook.InterestRate, demandrate = passBook.DemandInterestRate; double interest = 0, interestKKH = 0; int checkDays = (DateTime.Now - passBook.ChangeDate).Days; if (checkDays < passBook.Term.MinDate) { //Tính lãi suất không kỳ hạn interestKKH = ((double)passBook.Balance * (demandrate / 100) / 360) * checkDays; } else if (checkDays == passBook.Term.MinDate) { //Tính lãi suất đúng kỳ hạn interest = ((double)passBook.Balance * (rate / 100) / 360) * passBook.Term.MinDate; } else { //Tính lãi suất đúng kỳ hạn + lãi suất không kỳ hạn int checkTerms = checkDays / passBook.Term.MinDate; double currentBal = (double)passBook.Balance; DateTime changeDate = passBook.ChangeDate; //Vòng lặp tính lãi suất mỗi lần đúng kỳ hạn for (int i = 0; i < checkTerms; i++) { interest = (currentBal * (rate / 100) / 360) * passBook.Term.MinDate; changeDate = changeDate.AddDays(passBook.Term.MinDate); if (action == "AutoTermEnd") { PassbookDetail pbDetail = new PassbookDetail(); pbDetail.PassbookId = id; pbDetail.Action = "Lãi kỳ hạn"; pbDetail.ActionDate = changeDate; pbDetail.Balance = decimal.Parse(currentBal.ToString("F")); pbDetail.Amount = decimal.Parse(interest.ToString("F")); pbDetail.Surplus = decimal.Parse((currentBal + interest).ToString("F")); pbDetail.Status = 1; db.PassbookDetails.Add(pbDetail); } currentBal += interest; } passBook.ChangeDate = changeDate; passBook.Balance = decimal.Parse(currentBal.ToString("F")); passBook.TermEnd = 1; interestKKH = (currentBal * (demandrate / 100) / 360) * (checkDays - (passBook.Term.MinDate * checkTerms)); } interest = double.Parse(interest.ToString("F")); interestKKH = double.Parse(interestKKH.ToString("F")); var res = new { interest, interestKKH }; return(res); }
public JsonResult CheckTerm(string pbid, string strdepdate) { int a = 0; string result = ""; DateTime depdate = new DateTime(2000, 01, 01); if (!String.IsNullOrEmpty(pbid)) { a = int.Parse(pbid); PassBook passBook = db.PassBooks.Find(a); if (!String.IsNullOrEmpty(strdepdate)) { depdate = DateTime.Parse(strdepdate); } int checkDays = (depdate - passBook.OpenDate).Days; if (checkDays == 0 || checkDays == passBook.Term.MinDate) { result = "yes"; } else { result = "no"; } } return(Json(new { result }, JsonRequestBehavior.AllowGet)); }
public JsonResult CheckTerm(string pbid, string strwitdate) { int a = 0; string result = "", acronym = ""; decimal balance = 0; DateTime depdate = new DateTime(2000, 01, 01); if (!String.IsNullOrEmpty(pbid)) { a = int.Parse(pbid); PassBook passBook = db.PassBooks.Find(a); balance = passBook.Balance; if (!String.IsNullOrEmpty(strwitdate)) { depdate = DateTime.Parse(strwitdate); } int checkDays = (depdate - passBook.OpenDate).Days; if (checkDays >= passBook.Term.MinDate) { result = "yes"; if (passBook.Term.Acronym == "KKH") { acronym = "KKH"; } } else { result = "no"; } } return(Json(new { result, acronym, balance }, JsonRequestBehavior.AllowGet)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } var res = BuildList(); ViewBag.IpList = res.iplist; ViewBag.TermEndList = res.termendlist; ViewBag.BankId = new SelectList(db.Banks, "Id", "Acronym", passBook.BankId); ViewBag.TermId = new SelectList(db.Terms, "Id", "Acronym", passBook.TermId); return(View(passBook)); }
public void WithdrawTests() { int pbid = 0; PassBook pbtest = dbtest.PassBooks.FirstOrDefault(n => n.Balance > 100005 && n.Status == 1); if (pbtest != null) { pbid = pbtest.Id; Withdraw withdraw1 = new Withdraw(); withdraw1.PassBookId = pbid; withdraw1.Amount = 0; string err1 = "Nhập số tiền rút !"; JsonResult result1 = pbcontroller.Withdraw(withdraw1) as JsonResult; string msg1 = GetLogMsg(result1).msg; Assert.AreEqual(err1, msg1); System.Diagnostics.Debug.WriteLine("Case 1: " + msg1); Withdraw withdraw2 = new Withdraw(); withdraw2.PassBookId = pbid; withdraw2.Amount = dbtest.PassBooks.Find(withdraw2.PassBookId).Balance + 1; string err2 = "Số tiền rút không thể lớn hơn số dư hiện tại !"; JsonResult result2 = pbcontroller.Withdraw(withdraw2) as JsonResult; string msg2 = GetLogMsg(result2).msg; Assert.AreEqual(err2, msg2); System.Diagnostics.Debug.WriteLine("Case 2: " + msg2); Withdraw withdraw3 = new Withdraw(); withdraw3.PassBookId = pbid; withdraw3.Amount = 10000; string err3 = "Số tiền rút không thể nhỏ hơn 100.000 !"; JsonResult result3 = pbcontroller.Withdraw(withdraw3) as JsonResult; string msg3 = GetLogMsg(result3).msg; Assert.AreEqual(err3, msg3); System.Diagnostics.Debug.WriteLine("Case 3: " + msg3); Withdraw withdraw4 = new Withdraw(); withdraw4.PassBookId = pbid; withdraw4.Amount = 100005; string err4 = "Đơn vị tiền nhỏ nhất là 50.000 !"; JsonResult result4 = pbcontroller.Withdraw(withdraw4) as JsonResult; string msg4 = GetLogMsg(result4).msg; Assert.AreEqual(err4, msg4); System.Diagnostics.Debug.WriteLine("Case 4: " + msg4); Withdraw withdraw5 = new Withdraw(); withdraw5.PassBookId = pbid; withdraw5.Amount = 100000; string err5 = "completed"; JsonResult result5 = pbcontroller.Withdraw(withdraw5) as JsonResult; string msg5 = GetLogMsg(result5).msg; Assert.AreEqual(err5, msg5); System.Diagnostics.Debug.WriteLine("Case 5: " + msg5); } else { Assert.IsNull(pbtest); } }
public ActionResult DeleteConfirmed(int id) { PassBook passBook = db.PassBooks.Find(id); passBook.Status = 0; db.Entry(passBook).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,BankId,TermId,CustomerId,Acronym,Balance,OpenDate,InterestPayment,TermEnd,Status,Principal,ChangeDate,InterestRate,DemandInterestRate")] PassBook passBook) { if (ModelState.IsValid) { db.Entry(passBook).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.BankId = new SelectList(db.Banks, "Id", "Acronym", passBook.BankId); ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Acronym", passBook.CustomerId); ViewBag.TermId = new SelectList(db.Terms, "Id", "Acronym", passBook.TermId); return(View(passBook)); }
public void TestPassbookDetails() { PassBook pb = new PassBook(); pb.AccountNumber = 1010; pb.Amount = 10; pb.TimeofTransaction = new DateTime(2020, 09, 02); pb.Mode = "Deposit"; Assert.AreEqual(pb.AccountNumber, 1010); Assert.AreEqual(pb.Amount, 200); Assert.AreEqual(pb.TimeofTransaction, new DateTime(2020, 09, 02)); Assert.AreEqual(pb.Mode, "Deposit"); }
private dynamic Calculate(int id, DateTime witdate, decimal amount) { PassBook passBook = db.PassBooks.SingleOrDefault(n => n.Id == id); double rate = passBook.InterestRate, demandrate = passBook.DemandInterestRate; double interest = 0, interestKKH = 0; int checkDays = (witdate - passBook.ChangeDate).Days; if (checkDays < passBook.Term.MinDate) { //Tính lãi suất không kỳ hạn interestKKH = ((double)amount * (demandrate / 100) / 360) * checkDays; } else if (checkDays == passBook.Term.MinDate) { //Tính lãi suất đúng kỳ hạn interest = ((double)amount * (rate / 100) / 360) * passBook.Term.MinDate; } else { //Tính lãi suất đúng kỳ hạn + lãi suất không kỳ hạn if (passBook.Term.Acronym == "KKH") { passBook.Term.MinDate = 360; } int checkTerms = checkDays / passBook.Term.MinDate; double currentBal = (double)amount; DateTime changeDate = passBook.ChangeDate; //Vòng lặp tính lãi suất mỗi lần đúng kỳ hạn for (int i = 0; i < checkTerms; i++) { interest = (currentBal * (rate / 100) / 360) * passBook.Term.MinDate; changeDate = changeDate.AddDays(passBook.Term.MinDate); currentBal += interest; } passBook.ChangeDate = changeDate; passBook.Balance = decimal.Parse(currentBal.ToString("F")); passBook.TermEnd = 1; interestKKH = (currentBal * (demandrate / 100) / 360) * (checkDays - (passBook.Term.MinDate * checkTerms)); } interest = double.Parse(interest.ToString("F")); interestKKH = double.Parse(interestKKH.ToString("F")); var res = new { interest, interestKKH }; return(res); }
// GET: Admin/PassBooks/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); if (passBook == null) { return(HttpNotFound()); } return(View(passBook)); }
public ActionResult Transfer(TransactionDetail obj, string YourItemName) { //int AccountNumber1 = Convert.ToInt32(TempData["AccountNumber1"]); int AccountNumber1 = Convert.ToInt32(YourItemName); int AccountNumber = Convert.ToInt32(obj.AccountNumber); var AccData2 = _context.Accounts.Where(x => x.AccountNumber == AccountNumber).FirstOrDefault(); var AccData4 = _context.Accounts.Where(x => x.AccountNumber == AccountNumber1).FirstOrDefault(); TransactionDetail AccData = new TransactionDetail(); PassBook AccData3 = new PassBook(); PassBook AccData5 = new PassBook(); TransactionDetail AccData6 = new TransactionDetail(); if (AccData2 != null) { AccData2.AccountNumber = obj.AccountNumber; AccData2.Balance = AccData2.Balance - obj.Amount; AccData4.Balance = AccData4.Balance + obj.Amount; // AccData.TimeofTransaction = DateTime.Now; _context.Entry(AccData2).State = EntityState.Modified; _context.Entry(AccData4).State = EntityState.Modified; _context.SaveChanges(); } AccData.AccountNumber = AccData2.AccountNumber; AccData.Amount = obj.Amount; AccData.TimeofTransaction = DateTime.Now; AccData6.AccountNumber = AccountNumber1; AccData6.Amount = obj.Amount; AccData6.TimeofTransaction = DateTime.Now; AccData3.AccountNumber = AccData2.AccountNumber; AccData3.Amount = obj.Amount; AccData3.TimeofTransaction = DateTime.Now; AccData3.Mode = "Transfer Sent to " + Convert.ToString(AccData4.FirstName); AccData5.AccountNumber = AccountNumber1; AccData5.Amount = obj.Amount; AccData5.TimeofTransaction = DateTime.Now; AccData5.Mode = "Transfer Recived from " + Convert.ToString(AccData2.FirstName); _context.TransactionDetails.Add(AccData); _context.TransactionDetails.Add(AccData6); _context.PassBooks.Add(AccData3); _context.PassBooks.Add(AccData5); _context.SaveChanges(); TempData["Message"] = " Amount is Successfully transfered to " + Convert.ToString(AccData4.FirstName) + " from " + Convert.ToString(AccData2.FirstName); return(RedirectToAction("../Home/Redirect")); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); int userid = 0; if (Session["userid"] != null) { userid = int.Parse(Session["userid"].ToString()); } else { return(RedirectToAction("Login", "Home")); } if (passBook == null || passBook.CustomerId != userid) { return(HttpNotFound()); } var res = BuildList(); string status = null; switch (passBook.Status) { case 1: status = "Đang mở"; break; case 2: status = "Đã đóng"; break; default: status = "Chưa xác định"; break; } var ir = FindIR(passBook.BankId, passBook.TermId); ViewBag.Status = status; ViewBag.IRP = res.iplist[passBook.InterestPayment - 1].Text; ViewBag.TermEnd = res.termendlist[(passBook.TermEnd ?? 1) - 1].Text; ViewBag.Rate = ir.rate; ViewBag.DemandRate = ir.demandrate; return(View(passBook)); }
// GET: Admin/PassBooks/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); if (passBook == null) { return(HttpNotFound()); } ViewBag.BankId = new SelectList(db.Banks, "Id", "Acronym", passBook.BankId); ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Acronym", passBook.CustomerId); ViewBag.TermId = new SelectList(db.Terms, "Id", "Acronym", passBook.TermId); return(View(passBook)); }
// GET: Admin/PassBooks/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PassBook passBook = db.PassBooks.Find(id); if (passBook == null) { return(HttpNotFound()); } int depcount = db.Deposits.Where(n => n.PassBookId == passBook.Id && n.Status == 1).Count(); int witcount = db.Withdraws.Where(n => n.PassBookId == passBook.Id && n.Status == 1).Count(); ViewBag.DepCount = depcount; ViewBag.WitCount = witcount; return(View(passBook)); }
public ActionResult Create([Bind(Include = "Id,PassBookId,Acronym,DepositDate,Amount,Status")] Deposit deposit) { string msg = null, msgacronym = null, msgpbid = null, msgdepdate = null, msgamount = null; DateTime mindate = new DateTime(2000, 01, 01); if (String.IsNullOrEmpty(deposit.Acronym)) { msgacronym = "Nhập mã phiếu gởi !"; } else { int depcount = db.Deposits.Where(n => n.Acronym == deposit.Acronym).Count(); if (depcount > 0) { msgacronym = "Phiếu gởi này đã tồn tại !"; } } if (deposit.PassBookId == 0) { msgpbid = "Chưa có sổ tiết kiệm !"; } if (deposit.Amount == 0) { msgamount = "Nhập số tiền gửi !"; } else if (deposit.Amount < 100000) { msgamount = "Số tiền gửi tối thiểu là 100.000 !"; } else if (deposit.Amount % 50000 > 0) { msgamount = "Đơn vị tiền nhỏ nhất là 50.000 !"; } if (deposit.DepositDate < mindate) { msgdepdate = "Ngày gửi không thể nhỏ hơn 01/01/2000 !"; } else if (deposit.DepositDate > DateTime.Now) { msgdepdate = "Ngày gửi không thể lớn hơn ngày hiện tại !"; } else if (deposit.PassBookId != 0) { PassBook passBook = db.PassBooks.Find(deposit.PassBookId); if (deposit.DepositDate < passBook.OpenDate) { msgdepdate = "Ngày gửi không thể nhỏ hơn ngày mở sổ !"; } } if (msgacronym == null && msgpbid == null && msgdepdate == null && msgamount == null) { msg = "completed"; deposit.Status = 1; db.Deposits.Add(deposit); PassBook passBook = db.PassBooks.Find(deposit.PassBookId); passBook.Balance += deposit.Amount; db.SaveChanges(); int depid = 0; depid = deposit.Id; return(Json(new { depid, msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgacronym, msgpbid, msgdepdate, msgamount }, JsonRequestBehavior.AllowGet)); }
public ActionResult Create([Bind(Include = "Id,PassBookId,Acronym,WithdrawDate,Amount,Status")] Withdraw withdraw) { string msg = null, msgacronym = null, msgpbid = null, msgwitdate = null, msgamount = null; DateTime mindate = new DateTime(2000, 01, 01); if (String.IsNullOrEmpty(withdraw.Acronym)) { msgacronym = "Nhập mã phiếu rút !"; } else { int witcount = db.Withdraws.Where(n => n.Acronym == withdraw.Acronym).Count(); if (witcount > 0) { msgacronym = "Phiếu rút này đã tồn tại !"; } } if (withdraw.PassBookId == 0) { msgpbid = "Chưa có sổ tiết kiệm !"; } if (withdraw.Amount == 0) { msgamount = "Nhập số tiền rút !"; } else if (withdraw.Amount < 0) { msgamount = "Số tiền rút không thể nhỏ hơn 0 !"; } //else if (withdraw.Amount % 50000 > 0) //{ // msgamount = "Đơn vị tiền nhỏ nhất là 50.000 !"; //} else if (withdraw.PassBookId != 0) { PassBook passBook = db.PassBooks.Find(withdraw.PassBookId); if (withdraw.Amount > passBook.Balance) { msgamount = "Số tiền rút không thể lớn hơn số dư hiện có : " + passBook.Balance; } } if (withdraw.WithdrawDate < mindate) { msgwitdate = "Ngày rút không thể nhỏ hơn 01/01/2000 !"; } else if (withdraw.WithdrawDate > DateTime.Now) { msgwitdate = "Ngày rút không thể lớn hơn ngày hiện tại !"; } else if (withdraw.PassBookId != 0) { PassBook passBook = db.PassBooks.Find(withdraw.PassBookId); if (withdraw.WithdrawDate < passBook.OpenDate) { msgwitdate = "Ngày rút không thể nhỏ hơn ngày mở sổ !"; } } if (msgacronym == null && msgpbid == null && msgwitdate == null && msgamount == null) { msg = "completed"; withdraw.Status = 1; db.Withdraws.Add(withdraw); PassBook passBook = db.PassBooks.Find(withdraw.PassBookId); passBook.Balance -= withdraw.Amount; if (passBook.Balance == 0) { passBook.Status = 2; } db.SaveChanges(); var res = Calculate(withdraw.PassBookId, withdraw.WithdrawDate, withdraw.Amount); decimal interest = (decimal)res.interest; decimal interestKKH = (decimal)res.interestKKH; int witid = 0; witid = withdraw.Id; return(Json(new { witid, msg, interest, interestKKH }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgacronym, msgpbid, msgwitdate, msgamount }, JsonRequestBehavior.AllowGet)); }
public ActionResult Close([Bind(Include = "Id,PassBookId,Acronym,WithdrawDate,Amount,Status")] Withdraw withdraw) { withdraw.Acronym = "C_TESTING"; withdraw.WithdrawDate = DateTime.Now; withdraw.Status = 1; string msg = null; PassBook passBook = db.PassBooks.SingleOrDefault(n => n.Id == withdraw.PassBookId); if (ModelState.IsValid) { int checkDays = (DateTime.Now - passBook.ChangeDate).Days; //Tính lãi suất var res = Calculate(withdraw.PassBookId, "close"); decimal interest = 0, demandinterest = 0; interest = decimal.Parse(res.interest.ToString("F")); demandinterest = decimal.Parse(res.interestKKH.ToString("F")); if (checkDays == passBook.Term.MinDate) { PassbookDetail pbDetail2 = new PassbookDetail(); pbDetail2.PassbookId = passBook.Id; pbDetail2.ActionDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); pbDetail2.Action = "Lãi kỳ hạn"; pbDetail2.Balance = passBook.Balance; pbDetail2.Amount = interest; pbDetail2.Surplus = pbDetail2.Balance + interest; pbDetail2.Status = 1; db.PassbookDetails.Add(pbDetail2); } else if (checkDays < passBook.Term.MinDate) { PassbookDetail pbDetail3 = new PassbookDetail(); pbDetail3.PassbookId = passBook.Id; pbDetail3.ActionDate = DateTime.Now; pbDetail3.Action = "Lãi KKH"; pbDetail3.Balance = passBook.Balance; pbDetail3.Amount = demandinterest; pbDetail3.Surplus = pbDetail3.Balance + demandinterest; pbDetail3.Status = 1; db.PassbookDetails.Add(pbDetail3); } //Add PassbookDetail PassbookDetail pbDetail = new PassbookDetail(); pbDetail.PassbookId = passBook.Id; pbDetail.ActionDate = DateTime.Now; pbDetail.Action = "Tất toán"; pbDetail.Balance = passBook.Balance + interest + demandinterest; pbDetail.Amount = -pbDetail.Balance; pbDetail.Surplus = 0; pbDetail.Status = 2; db.PassbookDetails.Add(pbDetail); withdraw.Amount = pbDetail.Balance; //Edit Passbook details passBook.Balance = 0; passBook.ChangeDate = DateTime.Now; passBook.TermEnd = 3; passBook.Status = 2; msg = "completed"; db.Withdraws.Add(withdraw); db.SaveChanges(); return(Json(new { msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msg }, JsonRequestBehavior.AllowGet)); }
public ActionResult Withdraw([Bind(Include = "Id,PassBookId,Acronym,WithdrawDate,Amount,Status")] Withdraw withdraw) { withdraw.Acronym = "W_TESTING"; withdraw.WithdrawDate = DateTime.Now; withdraw.Status = 1; string msgamount = null, msg = null; PassBook passBook = db.PassBooks.SingleOrDefault(n => n.Id == withdraw.PassBookId); int checkDays = (DateTime.Now - passBook.ChangeDate).Days; if (withdraw.Amount == 0) { msgamount = "Nhập số tiền rút !"; } else if (withdraw.Amount > passBook.Balance) { msgamount = "Số tiền rút không thể lớn hơn số dư hiện tại !"; } else if (withdraw.Amount < 100000) { //Error message msgamount = "Số tiền rút không thể nhỏ hơn 100.000 !"; } else if (withdraw.Amount % 50000 > 0) { msgamount = "Đơn vị tiền nhỏ nhất là 50.000 !"; } else { msg = "completed"; db.Withdraws.Add(withdraw); decimal interest = 0; if (checkDays == passBook.Term.MinDate && passBook.TermEnd == 1) { interest = decimal.Parse(Calculate(withdraw.PassBookId, "withdraw").interest.ToString("F")); PassbookDetail pbDetail2 = new PassbookDetail(); pbDetail2.PassbookId = passBook.Id; pbDetail2.ActionDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); pbDetail2.Action = "Lãi kỳ hạn"; pbDetail2.Balance = passBook.Balance; pbDetail2.Amount = interest; pbDetail2.Surplus = pbDetail2.Balance + interest; pbDetail2.Status = 1; db.PassbookDetails.Add(pbDetail2); passBook.ChangeDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); } PassbookDetail pbDetail = new PassbookDetail(); pbDetail.PassbookId = passBook.Id; pbDetail.ActionDate = DateTime.Now; pbDetail.Action = "Rút một phần"; pbDetail.Balance = passBook.Balance + interest; pbDetail.Amount = -withdraw.Amount; pbDetail.Surplus = pbDetail.Balance - withdraw.Amount; pbDetail.Status = 2; db.PassbookDetails.Add(pbDetail); decimal demandinterest = decimal.Parse((((double)withdraw.Amount * (passBook.DemandInterestRate / 100) / 360) * checkDays).ToString("F")); PassbookDetail pbDetail3 = new PassbookDetail(); pbDetail3.PassbookId = passBook.Id; pbDetail3.ActionDate = DateTime.Now; pbDetail3.Action = "Lãi khi rút"; pbDetail3.Balance = passBook.Balance + interest - withdraw.Amount; pbDetail3.Amount = demandinterest; pbDetail3.Surplus = pbDetail3.Balance + demandinterest; pbDetail3.Status = 2; db.PassbookDetails.Add(pbDetail3); passBook.Balance += (interest - withdraw.Amount + demandinterest); db.SaveChanges(); return(Json(new { msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgamount }, JsonRequestBehavior.AllowGet)); }
public ActionResult Deposit([Bind(Include = "Id,PassBookId,Acronym,DepositDate,Amount,Status")] Deposit deposit) { deposit.PassBookId = int.Parse(Session["passbookid"].ToString()); deposit.Acronym = "D_TESTING"; deposit.DepositDate = DateTime.Now; deposit.Status = 1; string msgamount = null, msg = null; if (deposit.Amount == 0) { msgamount = "Nhập số tiền gửi !"; } else if (deposit.Amount < 100000) { //Error message msgamount = "Số tiền gửi không thể nhỏ hơn 100.000 !"; } else if (deposit.Amount % 50000 > 0) { msgamount = "Đơn vị tiền nhỏ nhất là 50.000 !"; } else { msg = "completed"; db.Deposits.Add(deposit); PassBook passBook = db.PassBooks.SingleOrDefault(n => n.Id == deposit.PassBookId); decimal interest = 0; int checkDays = (DateTime.Now - passBook.ChangeDate).Days; if (checkDays == passBook.Term.MinDate && passBook.TermEnd == 1) { interest = decimal.Parse(Calculate(deposit.PassBookId, "deposit").interest.ToString("F")); PassbookDetail pbDetail2 = new PassbookDetail(); pbDetail2.PassbookId = passBook.Id; pbDetail2.ActionDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); pbDetail2.Action = "Lãi kỳ hạn"; pbDetail2.Balance = passBook.Balance; pbDetail2.Amount = interest; pbDetail2.Surplus = pbDetail2.Balance + interest; pbDetail2.Status = 1; db.PassbookDetails.Add(pbDetail2); passBook.ChangeDate = passBook.ChangeDate.AddDays(passBook.Term.MinDate); } PassbookDetail pbDetail = new PassbookDetail(); pbDetail.PassbookId = passBook.Id; pbDetail.ActionDate = DateTime.Now; pbDetail.Action = "Gửi thêm"; pbDetail.Balance = passBook.Balance + interest; pbDetail.Amount = deposit.Amount; pbDetail.Surplus = pbDetail.Balance + deposit.Amount; pbDetail.Status = 1; db.PassbookDetails.Add(pbDetail); passBook.Balance += (interest + deposit.Amount); db.SaveChanges(); return(Json(new { msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgamount }, JsonRequestBehavior.AllowGet)); }
public ActionResult Edit([Bind(Include = "Id,BankId,TermId,CustomerId,Acronym,Balance,InterestRate,DemandInterestRate,OpenDate,InterestPayment,TermEnd,Status,Principal,ChangeDate")] PassBook passBook, string acrbank) { string msg = null, msgbankid = null, msgtermid = null, msgir = null, msgdemandir = null, msgacronym = null, msgprincipal = null, msgopendate = null, msgchangedate = null; DateTime mindate = new DateTime(2000, 01, 01); if (acrbank.Length < 2) { msgbankid = "Nhập tên ngân hàng viết tắt từ 2 đến 20 ký tự"; } else { var bank = db.Banks.FirstOrDefault(n => n.Acronym == acrbank); if (bank != null) { passBook.BankId = bank.Id; } else { Bank newbank = new Bank(); newbank.Acronym = acrbank; newbank.Name = acrbank; newbank.Status = 1; db.Banks.Add(newbank); passBook.BankId = newbank.Id; } } if (passBook.TermId == 0) { msgtermid = "Chọn loại kỳ hạn !"; } if (passBook.InterestRate == 0) { msgir = "Nhập lãi suất !"; } else if (passBook.InterestRate > 100) { msgir = "Lãi suất không thể lớn hơn 100 %"; } if (passBook.DemandInterestRate == 0) { passBook.DemandInterestRate = 0.05; Term term = db.Terms.Find(passBook.TermId); if (term.Acronym == "KKH") { if (passBook.Term.Acronym == "KKH") { passBook.DemandInterestRate = passBook.InterestRate; } } } else if (passBook.DemandInterestRate > 100) { msgdemandir = "Lãi suất không thể lớn hơn 100 %"; } if (String.IsNullOrEmpty(passBook.Acronym)) { msgacronym = "Nhập mã sổ !"; } else { var oldPb = db.PassBooks.Where(n => n.Id == passBook.Id); var pbexc = db.PassBooks.Except(oldPb); int pbcount = pbexc.Where(n => n.Acronym == passBook.Acronym && n.Status == 1 && n.CustomerId == passBook.CustomerId).Count(); if (pbcount > 0) { msgacronym = "Sổ này đang mở !"; } } if (passBook.Principal == 0) { msgprincipal = "Nhập số tiền gửi !"; } else if (passBook.Principal < 1000000) { msgprincipal = "Số tiền gửi không thể nhỏ hơn 1.000.000 !"; } else if (passBook.Principal % 50000 > 0) { msgprincipal = "Đơn vị tiền nhỏ nhất là 50.000 !"; } if (passBook.OpenDate < mindate) { msgopendate = "Ngày gửi không thể nhỏ hơn 01/01/2000 !"; } else if (passBook.OpenDate > DateTime.Now) { msgopendate = "Ngày gửi không thể lớn hơn ngày hiện tại !"; } if (passBook.ChangeDate < mindate) { msgchangedate = "Ngày bắt đầu tính lãi không thể nhỏ hơn 01/01/2000 !"; } else if (passBook.ChangeDate > DateTime.Now) { msgchangedate = "Ngày bắt đầu tính lãi không thể lớn hơn ngày hiện tại !"; } else if (passBook.ChangeDate < passBook.OpenDate) { msgchangedate = "Ngày bắt đầu tính lãi không thể nhỏ hơn ngày gửi !"; } if (msgbankid == null && msgtermid == null && msgir == null && msgdemandir == null && msgacronym == null && msgprincipal == null && msgopendate == null && msgchangedate == null) { msg = "completed"; passBook.Balance = passBook.Principal; passBook.Status = 1; db.Entry(passBook).State = EntityState.Modified; db.SaveChanges(); return(Json(new { msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgbankid, msgtermid, msgir, msgdemandir, msgacronym, msgprincipal, msgopendate, msgchangedate }, JsonRequestBehavior.AllowGet)); }
public ActionResult Create([Bind(Include = "Id,BankId,TermId,CustomerId,Acronym,Balance,OpenDate,InterestPayment,TermEnd,Status,Principal,ChangeDate,InterestRate,DemandInterestRate")] PassBook passBook) { string msg = null, msgcustid = null, msgtermid = null, msgacronym = null, msgprincipal = null, msgopendate = null; DateTime mindate = new DateTime(2000, 01, 01); if (passBook.TermId == 0) { msgtermid = "Chọn loại kỳ hạn !"; } if (String.IsNullOrEmpty(passBook.Acronym)) { msgacronym = "Nhập mã sổ !"; } else { int pbcount = db.PassBooks.Where(n => n.Acronym == passBook.Acronym).Count(); if (pbcount > 0) { msgacronym = "Sổ này đã tồn tại !"; } } if (passBook.Principal == 0) { msgprincipal = "Nhập số tiền gửi !"; } else if (passBook.Principal < 1000000) { msgprincipal = "Số tiền gửi không thể nhỏ hơn 1.000.000 !"; } else if (passBook.Principal % 50000 > 0) { msgprincipal = "Đơn vị tiền nhỏ nhất là 50.000 !"; } if (passBook.OpenDate < mindate) { msgopendate = "Ngày gửi không thể nhỏ hơn 01/01/2000 !"; } else if (passBook.OpenDate > DateTime.Now) { msgopendate = "Ngày gửi không thể lớn hơn ngày hiện tại !"; } if (msgcustid == null && msgtermid == null && msgacronym == null && msgprincipal == null && msgopendate == null) { msg = "completed"; var res = FindIR(passBook.TermId); passBook.BankId = db.Banks.FirstOrDefault(n => n.Status == 2).Id; passBook.InterestRate = res.rate; passBook.DemandInterestRate = res.demandrate; passBook.InterestPayment = 1; passBook.TermEnd = 1; passBook.Balance = passBook.Principal; passBook.ChangeDate = passBook.OpenDate; passBook.Status = 1; db.PassBooks.Add(passBook); db.SaveChanges(); int pbid = 0; pbid = passBook.Id; return(Json(new { pbid, msg }, JsonRequestBehavior.AllowGet)); } return(Json(new { msgcustid, msgtermid, msgacronym, msgprincipal, msgopendate }, JsonRequestBehavior.AllowGet)); }