// GET: Payment/Renew public ActionResult Renew(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Enrollment currentEnrollment = db.Enrollments.Find(id); if (currentEnrollment == null) { return(HttpNotFound()); } // Creating an empty payment to pass the enrollment ID to the hidden input var model = new PaymentAdminRenewViewModel(); model.EnrollmentID = (int)id; model.Enrollment = currentEnrollment; model.Date = DateTime.Now; // Initilializing the payment date as now because is paying at this moment model.StartDate = DateTime.Now; // Changing the new starting date model.ExpirationDate = Classes.Utility.AddDate(DateTime.Now, currentEnrollment.Membership.Duration); // Changing the new expiration date model.AllPayments = GetPayments(currentEnrollment); return(View(model)); }
public ActionResult Renew([Bind(Include = "EnrollmentID,Date,StartDate,ExpirationDate,PaymentMethod,Amount,Notes")] PaymentAdminRenewViewModel model) { // Re-populating the last payments in case the view has to be displayed again var currentEnrollment = db.Enrollments.Find(model.EnrollmentID); model.Enrollment = currentEnrollment; model.AllPayments = GetPayments(currentEnrollment); if (ModelState.IsValid) { var currentUser = userManager.FindById(User.Identity.GetUserId()); if (currentEnrollment == null) { return(View(model)); } currentEnrollment.RenewalNumber++; currentEnrollment.StartDate = model.StartDate; currentEnrollment.ExpirationDate = model.ExpirationDate; currentEnrollment.ModifDate = DateTime.Now; currentEnrollment.ModifUserName = currentUser.UserName; db.Entry(currentEnrollment).State = EntityState.Modified; Payment payment = new Payment { Enrollment = currentEnrollment, Amount = model.Amount, Type = PaymentType.PAYMENT_RENEW, Date = model.Date, PaymentMethod = model.PaymentMethod, PayingMonth = "0", RenewalNumber = currentEnrollment.RenewalNumber, Notes = model.Notes, CreationDate = DateTime.Now, CreationUserName = currentUser.UserName, ModifDate = DateTime.Now, ModifUserName = currentUser.UserName }; db.Payments.Add(payment); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }