public ActionResult Sales() { var context = new ApplicationDbContext(); var allSales = SaleRepositoryFactory.GetSaleRepository().GetSales(); var saleReport = new SaleReportAll(); var usersWithRoles = (from user in context.Users select new { UserId = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, Role = (from userRole in user.Roles join role in context.Roles on userRole.RoleId equals role.Id select role.Name).ToList() }).ToList().Select(p => new UsersVM() { UserID = p.UserId, FirstName = p.FirstName, LastName = p.LastName, Email = p.Email, Role = string.Join(",", p.Role) }).ToList(); var salesGroupedByUser = allSales.GroupBy(s => s.UserID); var listOfSaleReportsByUser = new List <SaleReportByUser>(); foreach (var saleGroup in salesGroupedByUser) { var user = UserManager.FindById(saleGroup.Key).FirstName + " " + UserManager.FindById(saleGroup.Key).LastName; int totalVehicles = 0; decimal totalSales = 0; foreach (var sale in saleGroup) { totalSales += sale.PurchasePrice; totalVehicles++; } var row = new SaleReportByUser() { User = user, TotalSales = totalSales, TotalVehicles = totalVehicles }; listOfSaleReportsByUser.Add(row); } saleReport.SalesByUser = listOfSaleReportsByUser; saleReport.UsersForDropDown = usersWithRoles; return(View(saleReport)); }
public ActionResult Sales() { ISaleRepository repo = SaleRepositoryFactory.GetRepository(); var salesReport = new SalesReportViewModel(); salesReport.Salespeople = repo.GetSalespeople(); return(View(salesReport)); }
public ActionResult Purchase(SaleVM sold) { var details = new DetailsVM(); details.Vehicle = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber); details.BodyStyles = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles(); details.Colors = ColorRepositoryFactory.GetColorRepository().GetColors(); details.Makes = MakeRepositoryFactory.GetMakeRepository().GetMakes(); details.Models = ModelRepositoryFactory.GetModelRepository().GetModels(); details.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions(); sold.Details = details; if (sold.Sale.Phone == null && sold.Sale.Email == null) { ModelState.AddModelError("", "You must enter a phone number or an email address."); } if (sold.Sale.Zipcode.Length > 5) { ModelState.AddModelError("", "Zipcode should only be 5 digits long, please."); } if (sold.Sale.PurchasePrice < ((sold.Details.Vehicle.MSRP * 95) * .01m)) { ModelState.AddModelError("", "Purchase price should not be lower than 95% vehicle MSRP, please recalculate."); } if (sold.Sale.PurchasePrice > sold.Details.Vehicle.MSRP) { ModelState.AddModelError("", "Purchase price should not be greater than MSRP, please recalculate."); } var repo = SaleRepositoryFactory.GetSaleRepository(); if (ModelState.IsValid) { sold.Sale.UserID = User.Identity.GetUserId(); sold.Sale.PurchaseDate = DateTime.Now; } var result = repo.Add(sold.Sale); if (result != null) { var vehicleToUpdate = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber); vehicleToUpdate.IsPurchased = true; vehicleToUpdate.IsFeatured = false; VehicleRepositoryFactory.GetVehicleRepository().Edit(vehicleToUpdate); return(View("Index")); } // assign sold.UserID to currently logged in user // assign sold.PurchaseDate to DateTime.Now // if saving the purchase is a success, update vehicle.IsPurchased to true and vehicle.IsFeatured to false; return(View()); }
public ActionResult CreateSale(Sale sale) { var saleRepo = SaleRepositoryFactory.GetRepository(); if (ModelState.IsValid) { saleRepo.Add(sale); return(RedirectToAction("Index")); } else { return(View(sale)); } }
public IHttpActionResult Sales(string salesperson = null, DateTime?fromDate = null, DateTime?toDate = null) { ISaleRepository repo = SaleRepositoryFactory.GetRepository(); SalesReportParametersModel parameters = new SalesReportParametersModel() { Salesperson = salesperson, FromDate = fromDate, ToDate = toDate }; var sales = repo.GetSales(parameters); return(Ok(sales)); }
public ActionResult Sales(string userID, DateTime?fromDate, DateTime?toDate) { if (fromDate == null) { fromDate = new DateTime(2000, 01, 01); } if (toDate == null) { toDate = new DateTime(2021, 01, 01); } var context = new ApplicationDbContext(); var allSales = SaleRepositoryFactory.GetSaleRepository().GetSales(); var saleReport = new SaleReportAll(); var usersWithRoles = (from user in context.Users select new { UserId = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, Role = (from userRole in user.Roles join role in context.Roles on userRole.RoleId equals role.Id select role.Name).ToList() }).ToList().Select(p => new UsersVM() { UserID = p.UserId, FirstName = p.FirstName, LastName = p.LastName, Email = p.Email, Role = string.Join(",", p.Role) }).ToList(); if (userID != "All") { var salesByUser = allSales.Where(s => s.UserID == userID).ToList(); var listOfSaleReports = new List <SaleReportByUser>(); int totalVehicles = 0; foreach (var sale in salesByUser) { var user = UserManager.FindById(userID).FirstName + " " + UserManager.FindById(userID).LastName; decimal totalSales = 0; if (sale.PurchaseDate < toDate && sale.PurchaseDate > fromDate) { totalSales += sale.PurchasePrice; totalVehicles++; } var saleReportForUser = new SaleReportByUser() { User = user, TotalSales = totalSales, TotalVehicles = totalVehicles }; listOfSaleReports.Add(saleReportForUser); } saleReport.SalesByUser = listOfSaleReports; saleReport.UsersForDropDown = usersWithRoles; saleReport.UserID = "All"; saleReport.fromDate = DateTime.MinValue; saleReport.toDate = DateTime.MaxValue; } else { var salesGroupedByUser = allSales.GroupBy(s => s.UserID); var listOfSaleReportsByUser = new List <SaleReportByUser>(); foreach (var saleGroup in salesGroupedByUser) { var user = UserManager.FindById(saleGroup.Key).FirstName + " " + UserManager.FindById(saleGroup.Key).LastName; int totalVehicles = 0; decimal totalSales = 0; foreach (var sale in saleGroup) { if (sale.PurchaseDate < toDate && sale.PurchaseDate > fromDate) { totalSales += sale.PurchasePrice; totalVehicles++; } } var row = new SaleReportByUser() { User = user, TotalSales = totalSales, TotalVehicles = totalVehicles }; listOfSaleReportsByUser.Add(row); } saleReport.SalesByUser = listOfSaleReportsByUser; saleReport.UsersForDropDown = usersWithRoles; saleReport.UserID = "All"; saleReport.fromDate = DateTime.MinValue; saleReport.toDate = DateTime.MaxValue; return(View(saleReport)); } return(View(saleReport)); }