public ActionResult DeleteConfirmed(int id)
        {
            BoletaCabecera boletaCabecera = db.BoletaCabecera.Find(id);

            db.BoletaCabecera.Remove(boletaCabecera);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "BoletaCabeceraId,ReservaId,Fecha,ClienteId,Estado,Subtotal,Total")] BoletaCabecera boletaCabecera)
 {
     if (ModelState.IsValid)
     {
         db.Entry(boletaCabecera).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ClienteId = new SelectList(db.Cliente, "ClienteId", "Nombre", boletaCabecera.ClienteId);
     ViewBag.ReservaId = new SelectList(db.Reserva, "ReservaId", "ReservaId", boletaCabecera.ReservaId);
     return(View(boletaCabecera));
 }
        // GET: Manager/BoletaCabeceras/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BoletaCabecera boletaCabecera = db.BoletaCabecera.Find(id);

            if (boletaCabecera == null)
            {
                return(HttpNotFound());
            }
            return(View(boletaCabecera));
        }
        // GET: Manager/BoletaCabeceras/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BoletaCabecera boletaCabecera = db.BoletaCabecera.Find(id);

            if (boletaCabecera == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ClienteId = new SelectList(db.Cliente, "ClienteId", "Nombre", boletaCabecera.ClienteId);
            ViewBag.ReservaId = new SelectList(db.Reserva, "ReservaId", "ReservaId", boletaCabecera.ReservaId);
            return(View(boletaCabecera));
        }
        public ActionResult TerminarReserva(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var reserva = db.Reserva.Find(id);

            if (reserva != null)
            {
                reserva.ReservaEstadoId = EstadoReserva.Terminado;
            }
            db.SaveChanges();


            //Boleta generation

            var boletaCabecera = new BoletaCabecera()
            {
                ReservaId = reserva.ReservaId,
                Fecha     = DateTime.Today,
                ClienteId = (int)reserva.Vehiculo.ClienteId,
                Estado    = EstadoBoleta.Generado,
                Subtotal  = 0,
                Total     = 0
            };

            var boletaDetalles = new List <BoletaDetalle>();

            var boletaCabeceraDeReserva = new BoletaDetalle()
            {
                ServicioId = reserva.ServicioId,
                Cantidad   = 1,
                Total      = (decimal)reserva.Servicio.Costo
            };

            boletaDetalles.Add(boletaCabeceraDeReserva);

            foreach (var reservaServicios in db.ReservaServicios.Where(m => m.ReservaId == reserva.ReservaId).ToList())
            {
                var boletaCabeceraDeServicios = new BoletaDetalle()
                {
                    ServicioId = reservaServicios.ServicioId,
                    Cantidad   = (int)reservaServicios.Cantidad,
                    Total      = reservaServicios.Costo
                };
                boletaDetalles.Add(boletaCabeceraDeServicios);
            }

            foreach (var boletaDetalle in boletaDetalles)
            {
                boletaCabecera.Subtotal += boletaDetalle.Total;
            }
            boletaCabecera.Total = boletaCabecera.Subtotal * (1 + IGV.Valor);

            db.BoletaCabecera.Add(boletaCabecera);
            db.SaveChanges();
            foreach (var boletaDetalle in boletaDetalles)
            {
                boletaDetalle.BoletaCabeceraId = boletaCabecera.BoletaCabeceraId;
                db.BoletaDetalle.Add(boletaDetalle);
                db.SaveChanges();
            }

            return(RedirectToAction("Index", "Reservas"));
        }