Example #1
0
        public async Task <ActionResult> Order(OrderCarViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            model.Error = "";
            Car car = db.Cars.Find(model.Kenteken);

            if (car == null)
            {
                return(HttpNotFound());
            }
            Invoice invoice = null;

            /*if(invoice != null && !invoice.InleverDatum.HasValue)
             * {
             *  //terug HttpNotFound();
             * }else */
            if (model.VanafDatum.Date < DateTime.Now.Date)
            {
                //Je kan alleen in de toekomst bestellen!
                model.Error = "U probeert een bestelling in het verleden te maken!";
            }
            else if (model.TotDatum.Date < model.VanafDatum.Date)
            {
                //Hoger dan vanafdatum
                model.Error = "De datum van het terugbrengen moet hoger zijn dan de vanaf wanneer datum!";
            }
            else if ((model.TotDatum.Date - model.VanafDatum.Date).Days < 1)
            {
                //Minimaal een dag
                model.Error = "Uw bestelling moet minstens 1 dag of hoger zijn";
            }
            else if (db.Invoices.OrderByDescending(x => x.InvoiceId).FirstOrDefault(x => x.Kenteken == car.Kenteken &&
                                                                                    //((@vanafDatum >= i.VanafDatum AND @vanafDatum <= i.TotDatum) OR (@totDatum >= i.VanafDatum AND @totDatum <= i.TotDatum))
                                                                                    ((x.VanafDatum >= model.VanafDatum && x.VanafDatum <= model.TotDatum) || (x.TotDatum >= model.VanafDatum && x.TotDatum <= model.TotDatum))) != null)
            {
                //De auto is niet beschikbaar.
                model.Error = "Deze auto is helaas al vehuurd!";
            }
            else
            {
                //Alles gecontrolleerd??
                invoice = db.Invoices.Add(new Invoice()
                {
                    Kenteken     = car.Kenteken,
                    InleverDatum = null,
                    VanafDatum   = model.VanafDatum.Date,
                    TotDatum     = model.TotDatum.Date,
                    UserId       = User.Identity.GetUserId(),
                    Datum        = DateTime.Now.Date
                });
                db.SaveChanges();
                //Doorverwijzen naar naar de factuur.
                return(RedirectToAction("View/" + invoice.InvoiceId.ToString(), "Invoice"));
            }
            return(View(model));
        }
Example #2
0
        private void PrintOrderCars(OrderCarViewModel orderCar, Document doc, PdfPTable table)
        {
            var fontForCells    = new Font(baseFont, 10);
            var fontForCellBold = new Font(baseFont, 10, Font.BOLD);

            table.AddCell(new PdfPCell(new Phrase(orderCar.CarName, fontForCells))
            {
                HorizontalAlignment = Element.ALIGN_CENTER
            });

            table.AddCell(new PdfPCell(new Phrase(orderCar.Amount.ToString(), fontForCells))
            {
                HorizontalAlignment = Element.ALIGN_CENTER
            });

            var carDetails = context.CarDetails
                             .Where(rec => rec.CarId == orderCar.CarId)
                             .Select(rec => new CarDetailViewModel
            {
                Amount     = rec.Amount,
                DetailName = rec.Detail.DetailName,
                DetailId   = rec.DetailId
            }).ToList();

            var tableDetail = new PdfPTable(2);
            var cellDet     = new PdfPCell {
                Colspan = 2, HorizontalAlignment = Element.ALIGN_CENTER
            };

            tableDetail.AddCell(cellDet);
            tableDetail.SetTotalWidth(new float[] { 60, 40 });


            tableDetail.AddCell(new PdfPCell(new Phrase("Название", fontForCellBold))
            {
                HorizontalAlignment = Element.ALIGN_CENTER
            });

            tableDetail.AddCell(new PdfPCell(new Phrase("Количество", fontForCellBold))
            {
                HorizontalAlignment = Element.ALIGN_CENTER
            });

            foreach (var carDetail in carDetails)
            {
                PrintCarDetails(carDetail, tableDetail);
            }

            table.AddCell(tableDetail);
        }
        public ActionResult AddCarPost()
        {
            var order = (OrderViewModel)Session["Order"];
            var car   = new OrderCarViewModel
            {
                CarId   = int.Parse(Request["Id"]),
                CarName = carService.GetElement(int.Parse(Request["Id"])).CarName,
                Amount  = int.Parse(Request["Amount"])
            };

            order.OrderCars.Add(car);
            Session["Order"] = order;
            return(RedirectToAction("Index"));
        }
Example #4
0
        public ActionResult Order(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Car car = db.Cars.Find(id);

            if (car == null)
            {
                return(HttpNotFound());
            }
            OrderCarViewModel orderViewModel = new OrderCarViewModel()
            {
                Kenteken = car.Kenteken
            };

            return(View(orderViewModel));
        }