示例#1
0
        // GET: Inventory
        public ActionResult Details(int id)
        {
            var repo      = VehicleRepositoryFactory.GetRepository();
            var salesRepo = SalesInformationRepositoryFactory.GetRepository();
            var sales     = salesRepo.GetSales();
            var model     = repo.GetVehicleDetails(id);
            var available = repo.GetVehicleItems();

            model.IsSold = sales.Any(m => m.VehicleID == id);

            return(View(model));
        }
示例#2
0
        public ActionResult SalesReport()
        {
            var repo = SalesInformationRepositoryFactory.GetRepository();

            SalesReportViewModel model = new SalesReportViewModel();

            var userRepo = UsersRepositoryFactory.GetRepository();

            var users = userRepo.GetAll();

            var usernames = (from user in users
                             select user.LastName);

            model.Users = new SelectList(usernames);

            return(View(model));
        }
        public IEnumerable <VehicleItem> GetVehicleItems()
        {
            List <VehicleItem> vehicleItems = new List <VehicleItem>();

            var repo = VehicleRepositoryFactory.GetRepository();

            var vehicles = repo.GetAll();

            var salesRepo = SalesInformationRepositoryFactory.GetRepository();

            var sales = salesRepo.GetSales();

            var bodyRepo = BodyTypesRepositoryFactory.GetRepository();

            var bodyTypes = bodyRepo.GetAll();

            var makeRepo = CarMakesRepositoryFactory.GetRepository();

            var makes = makeRepo.GetAll();

            var modelRepo = CarModelItemRepositoryFactory.GetRepository();

            var models = modelRepo.GetAll();

            var transRepo = TransmissionTypesRepositoryFactory.GetRepository();

            var transTypes = transRepo.GetAll();

            var extColorRepo = ExtColorsRepositoryFactory.GetRepository();

            var extColors = extColorRepo.GetAll();

            var intColorRepo = IntColorsRepositoryFactory.GetRepository();

            var intColors = intColorRepo.GetAll();

            var items = from v in vehicles
                        join make in makes on v.MakeID equals make.MakeID
                        join model in models on v.ModelID equals model.ModelID
                        join body in bodyTypes on v.BodyTypeID equals body.BodyTypeID
                        join tran in transTypes on v.TransmissionID equals tran.TransmissionID
                        join ext in extColors on v.ExtColorID equals ext.ExtColorID
                        join color in intColors on v.IntColorID equals color.IntColorID
                        select new VehicleItem {
                VehicleID            = v.VehicleID,
                SalesTypeID          = v.SalesTypeID,
                YearBuilt            = v.YearBuilt,
                MakeName             = make.MakeName,
                ModelName            = model.ModelName,
                BodyTypeName         = body.BodyTypeName,
                TransmissionTypeName = tran.TransmissionTypeName,
                ExtColorName         = ext.ExtColorName,
                IntColorName         = color.IntColorName,
                Mileage            = v.Mileage,
                VINNumber          = v.VINNumber,
                SalesPrice         = v.SalesPrice,
                MSRP               = v.MSRP,
                VehicleDescription = v.VehicleDescription,
                ImageFileName      = v.ImageFileName
            };

            List <VehicleItem> vitems = items.ToList();

            return(vitems);
        }
示例#4
0
        public ActionResult InsertSalesInformation(PurchaseSalesInfoViewModel model)
        {
            var inventory = VehicleRepositoryFactory.GetRepository();

            var vech = inventory.GetVehicleDetails(model.VehicleID);

            if (model.PurchasePrice >= vech.MSRP)
            {
                ModelState.AddModelError("PurchasePrice", "Purchase price cannot be greater than MSRP");
            }
            if (decimal.ToDouble(model.PurchasePrice) < ((decimal.ToDouble(vech.SalesPrice) * 0.95)))
            {
                ModelState.AddModelError("PurchasePrice", "Purchase price cannot be less than 95% of sales price");
            }

            if (ModelState.IsValid)
            {
                var repo = SalesInformationRepositoryFactory.GetRepository();

                SalesInformation sale = new SalesInformation();

                sale.VehicleID = model.VehicleID;

                sale.CustomerName = model.CustomerName;

                sale.CustomerPhone = model.CustomerPhone;

                sale.CustomerEmail = model.CustomerEmail;

                sale.CustomerStreet1 = model.CustomerStreet1;

                sale.CustomerStreet2 = model.CustomerStreet2;

                sale.CustomerCity = model.CustomerCity;

                sale.CustomerState = model.CustomerState;

                sale.CustomerZip = model.CustomerZip;

                sale.PurchasePrice = model.PurchasePrice;

                sale.PurchaseTypeID = model.PurchaseTypeID;

                var id = User.Identity.GetUserId();

                sale.Id = id;

                DateTime today = DateTime.Today;

                sale.PurchaseDate = today;

                repo.Insert(sale);

                return(RedirectToAction("Index"));
            }
            else
            {
                var repo = VehicleRepositoryFactory.GetRepository();

                var car = repo.GetVehicleDetails(model.VehicleID);

                model.YearBuilt            = car.YearBuilt;
                model.MakeName             = car.MakeName;
                model.ModelName            = car.ModelName;
                model.ImageFileName        = car.ImageFileName;
                model.BodyTypeName         = car.BodyTypeName;
                model.TransmissionTypeName = car.TransmissionTypeName;
                model.ExtColorName         = car.ExtColorName;
                model.IntColorName         = car.IntColorName;
                model.Mileage            = car.Mileage;
                model.VINNumber          = car.VINNumber;
                model.SalesPrice         = car.SalesPrice;
                model.MSRP               = car.MSRP;
                model.VehicleDescription = car.VehicleDescription;

                return(View("Purchase", model));
            }
        }
示例#5
0
        public IHttpActionResult SearchSalesReport(string user, string startDate, string endDate)
        {
            var repo = SalesInformationRepositoryFactory.GetRepository();

            var sales = repo.GetSales();

            List <SalesInformation> salesResults = new List <SalesInformation>();

            var userRepo = UsersRepositoryFactory.GetRepository();

            var users = userRepo.GetAll();

            var username = (from s in sales
                            where s.UserName.Contains(user)
                            select s.UserName).FirstOrDefault();

            if (user != "0")
            {
                salesResults = (from r in sales
                                where username == r.UserName
                                select r).ToList();

                if (salesResults.Count == 0)
                {
                    return(NotFound());
                }
            }
            else
            {
                salesResults = sales;
            }

            if (startDate != "0")
            {
                var beginDate = DateTime.Parse(startDate);

                var correctDate = beginDate.AddDays(1);

                var bDateResults = (from r in salesResults
                                    where r.PurchaseDate >= correctDate
                                    select r).ToList();

                salesResults = bDateResults;
            }
            if (endDate != "0")
            {
                var stopDate = DateTime.Parse(endDate);

                var cDate = stopDate.AddDays(1);

                var eDateResults = (from r in salesResults
                                    where r.PurchaseDate <= cDate
                                    select r).ToList();

                salesResults = eDateResults;
            }
            try
            {
                List <SalesReport> results = salesResults.GroupBy(s => s.Id)
                                             .Select(us => new SalesReport
                {
                    UserName      = us.Select(x => x.UserName).FirstOrDefault(),
                    TotalSales    = us.Sum(x => x.PurchasePrice),
                    TotalVehicles = us.Select(x => x.SalesID).Count(),
                    PurchaseDate  = us.Select(x => x.PurchaseDate).FirstOrDefault()
                }).ToList();

                return(Ok(results));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#6
0
        public List <VehicleInventoryReport> GetUsedInventoryReport()
        {
            List <VehicleInventoryReport> reports = new List <VehicleInventoryReport>();

            var repo = VehicleRepositoryFactory.GetRepository();

            var vehicles = repo.GetAll();

            var salesRepo = SalesInformationRepositoryFactory.GetRepository();

            var sales = salesRepo.GetSales();

            var salesTypeRepo = SalesTypeRepositoryFactory.GetRepository();

            var salesTypes = salesTypeRepo.GetAll();

            var bodyRepo = BodyTypesRepositoryFactory.GetRepository();

            var bodyTypes = bodyRepo.GetAll();

            var makeRepo = CarMakesRepositoryFactory.GetRepository();

            var makes = makeRepo.GetAll();

            var modelRepo = CarModelItemRepositoryFactory.GetRepository();

            var models = modelRepo.GetAll();

            var transRepo = TransmissionTypesRepositoryFactory.GetRepository();

            var transTypes = transRepo.GetAll();

            var extColorRepo = ExtColorsRepositoryFactory.GetRepository();

            var extColors = extColorRepo.GetAll();

            var intColorRepo = IntColorsRepositoryFactory.GetRepository();

            var intColors = intColorRepo.GetAll();

            var items = from v in vehicles
                        join sale in salesTypes on v.SalesTypeID equals sale.SalesTypeID
                        join make in makes on v.MakeID equals make.MakeID
                        join model in models on v.ModelID equals model.ModelID
                        join s in sales on v.VehicleID equals s.VehicleID
                        where v.SalesTypeID == 2
                        select new VehicleInventoryReport
            {
                VehicleID   = v.VehicleID,
                SalesTypeID = v.SalesTypeID,
                YearBuilt   = v.YearBuilt,
                MakeName    = make.MakeName,
                ModelName   = model.ModelName,
                Count       = sales.Select(x => x.SalesID).Count(),
                StockValue  = vehicles.Sum(x => x.MSRP)
            };

            List <VehicleInventoryReport> report = items.ToList();

            return(report);
        }