public ActionResult Create([Bind(Include = "BookingId,userId,PickUpDate,ReturnDate,Percentage,BasicPrice,price,ReturnId,Booking_Cost,status,CarId,MilageIn,MilageOut")] CarHiring carHiring) { var userName = User.Identity.GetUserName(); carHiring.userId = userName; var customers = db.Customers.Where(p => p.Email == userName).FirstOrDefault(); var millage = db.Cars.Where(x => x.CarId == carHiring.CarId).FirstOrDefault(); if (ModelState.IsValid) { carHiring.CustomerName = customers.FirstName; carHiring.CustomerSurname = customers.LastName; carHiring.MilageOut = millage.CurrentMilage; carHiring.numOfDays = Convert.ToInt32(logic.CalcNum_of_Days(carHiring)); carHiring.BasicPrice = logic.calcBasicCharge(carHiring); carHiring.Deposit = carHiring.calcDeposite(); carHiring.Percentage = logic.calcPercentage(carHiring); db.CarHirings.Add(carHiring); db.SaveChanges(); return(RedirectToAction("ConfrimHire", "CarHirings", new { id = carHiring.BookingId })); } ViewBag.CarId = new SelectList(db.Cars, "CarId", "Description", carHiring.CarId); return(View(carHiring)); }
public decimal CalcNum_of_Days(CarHiring carHiring) { TimeSpan difference = carHiring.ReturnDate.Subtract(carHiring.PickUpDate); var Days = difference.TotalDays; return(Convert.ToDecimal(Days)); }
public ActionResult ReturnVehicle(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CarHiring carHiring = db.CarHirings.Find(id); ViewBag.pick = carHiring.PickUpDate.Date; ViewBag.retur = carHiring.ReturnDate.Date; ViewBag.userID = carHiring.userId; ViewBag.status = carHiring.status; ViewBag.bookID = carHiring.BookingId; ViewBag.Deposit = carHiring.Deposit; ViewBag.BasicPrice = carHiring.BasicPrice; ViewBag.numOfDays = carHiring.numOfDays; ViewBag.Percentage = carHiring.Percentage; ViewBag.CustomerName = carHiring.CustomerName; ViewBag.CustomerSurname = carHiring.CustomerSurname; if (carHiring == null) { return(HttpNotFound()); } ViewBag.CarId = new SelectList(db.Cars, "CarId", "Description", carHiring.CarId); return(View(carHiring)); }
public ActionResult DeleteConfirmed(int id) { CarHiring carHiring = db.CarHirings.Find(id); db.CarHirings.Remove(carHiring); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult ConfirmCollection(int?id) { CarHiring carHiring = db.CarHirings.Find(id); carHiring.status = "Picked Up"; db.Entry(carHiring).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); }
public decimal calcExtraKMCost(CarHiring carHiring) { if (calcUsedKM(carHiring.CarId, carHiring.MilageIn) > calcFreeKM(carHiring)) { return((calcUsedKM(carHiring.CarId, carHiring.MilageIn) - calcFreeKM(carHiring)) * GetKiloRate(carHiring.CarId)); } else { return(0); } }
public ActionResult Edit([Bind(Include = "BookingId,userId,PickUpDate,ReturnDate,Percentage,BasicPrice,price,ReturnId,Booking_Cost,status,CarId,MilageIn,MilageOut")] CarHiring carHiring) { if (ModelState.IsValid) { db.Entry(carHiring).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("ReturnVehicle", "CarHirings", new { id = carHiring.BookingId })); } ViewBag.CarId = new SelectList(db.Cars, "CarId", "Description", carHiring.CarId); return(View(carHiring)); }
public ActionResult ConfirmPickUp(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CarHiring carHiring = db.CarHirings.Find(id); if (carHiring == null) { return(HttpNotFound()); } return(View(carHiring)); }
public ActionResult AvailableCar(int?id) { CarHiring carHiring = db.CarHirings.Find(id); carHiring.status = "Complete"; carHiring.Booking_Cost = logic.calcGrandTotal(carHiring); Car car = db.Cars.ToList().Find(x => x.CarId == carHiring.CarId); car.Status = "Available"; db.Entry(carHiring).State = EntityState.Modified; db.Entry(car).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "Cars")); }
public decimal calcKMRate(CarHiring carHiring) { var kiloRat = (from c in db.Cars where c.CarId == carHiring.CarId select c.KilometerRate).FirstOrDefault(); decimal kr = (kiloRat) * calcExtraKMCost(carHiring); if (calcUsedKM(carHiring.CarId, carHiring.MilageIn) > calcFreeKM(carHiring)) { return(kr); } else { return(kr = 0); } }
// GET: CarHirings/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CarHiring carHiring = db.CarHirings.Find(id); if (carHiring == null) { return(HttpNotFound()); } ViewBag.CarId = new SelectList(db.Cars, "CarId", "Description", carHiring.CarId); return(View(carHiring)); }
public decimal calcFreeKM(CarHiring carHiring) { return(GetFreeKM(carHiring.CarId) * CalcNum_of_Days(carHiring)); }
public decimal calcBasicCharge(CarHiring carHiring) { return(CalcNum_of_Days(carHiring) * GetCostperday(carHiring.CarId)); }
public decimal calcPercentage(CarHiring carHiring) { return(carHiring.BasicPrice - (carHiring.BasicPrice * (carHiring.Percentage / 100))); }
public decimal calcGrandTotal(CarHiring carHiring) { return(calcBasicCharge(carHiring) + calcKMRate(carHiring)); }
//public ActionResult pay(int? id) //{ // StudentApplication studentApplication = db.Studentapplications.Find(id); // var priceId = db.ClassFees.Where(p => p.ClassNameId == studentApplication.ClassNameId).Select(p => p.FeeTypeId).FirstOrDefault(); // var price = db.FeeTypes.Where(p => p.Id == priceId).Select(p => p.FeeAmount).FirstOrDefault(); // studentApplication.Status = "Paid"; // db.Entry(studentApplication).State = EntityState.Modified; // // db.Studentapplications.Add(studentApplication); // db.SaveChanges(); // return RedirectToAction("Index2"); //} public ActionResult OnceOff(int?id) { var onceOffRequest = new PayFastRequest(this.payFastSettings.PassPhrase); // Merchant Details onceOffRequest.merchant_id = this.payFastSettings.MerchantId; onceOffRequest.merchant_key = this.payFastSettings.MerchantKey; onceOffRequest.return_url = this.payFastSettings.ReturnUrl; onceOffRequest.cancel_url = this.payFastSettings.CancelUrl; onceOffRequest.notify_url = this.payFastSettings.NotifyUrl; // Buyer Details onceOffRequest.email_address = "*****@*****.**"; //onceOffRequest.email_address = "*****@*****.**"; // Transaction Details CarHiring carHiring = db.CarHirings.Find(id); carHiring.status = "Paid"; db.Entry(carHiring).State = EntityState.Modified; db.SaveChanges(); Car car = db.Cars.ToList().Find(x => x.CarId == carHiring.CarId); car.Status = "Not Available"; db.Entry(car).State = EntityState.Modified; db.SaveChanges(); onceOffRequest.m_payment_id = ""; onceOffRequest.amount = Convert.ToDouble(carHiring.Deposit); onceOffRequest.item_name = "Car Hire Payment"; onceOffRequest.item_description = "Some details about the once off payment"; var userName = User.Identity.GetUserName(); var mailTo = new List <MailAddress>(); mailTo.Add(new MailAddress(userName, carHiring.CustomerName)); var body = $"Dear {carHiring.CustomerName} {carHiring.CustomerSurname} <br/><br/>" + $"Your car hiring was successful, please see details below: <br/><br/>" + $"Hire Date:{System.DateTime.Now.Date} \n" + $"Pick-Up Date: {carHiring.PickUpDate}\n" + $"Return-Date: {carHiring.ReturnDate}\n" + $"Number Of Days: {carHiring.numOfDays}\n" + $"Deposit: {carHiring.Deposit}\n" + $"Daily Cost: {carHiring.car.Cost_Per_Day}\n" + $"Vehicle: {carHiring.car.carMake.CarMakeType} {carHiring.car.carModel.CarModelType}\n" + $"Transmission: {carHiring.car.transmission.TransmissionType}\n" + $"Fuel: {carHiring.car.fuel.FuelType}<br/>" + $"Regards,<br/><br/> Bright Ideas <br/> ."; LindaniDrivingSchool.Logic.EmailService emailService = new LindaniDrivingSchool.Logic.EmailService(); emailService.SendEmail(new EmailContent() { mailTo = mailTo, mailCc = new List <MailAddress>(), mailSubject = "Application Statement | Ref No.:" + carHiring.BookingId, mailBody = body, mailFooter = "<br/> Many Thanks, <br/> <b>Bright Ideas</b>", mailPriority = MailPriority.High, mailAttachments = new List <Attachment>() }); // Transaction Options onceOffRequest.email_confirmation = true; onceOffRequest.confirmation_address = "*****@*****.**"; var redirectUrl = $"{this.payFastSettings.ProcessUrl}{onceOffRequest.ToString()}"; return(Redirect(redirectUrl)); }