Exemplo n.º 1
0
        public IHttpActionResult PostBanquete(Banquete banquete)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Banquete.Add(banquete);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (BanqueteExists(banquete.idBanquete))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = banquete.idBanquete }, banquete));
        }
Exemplo n.º 2
0
        public ActionResult Create([Bind(Include = BIND_FIELDS)] Banquete banquete, string listServiciosSeleccionados)
        {
            //Se deserializa la lista de compras en un objeto
            JavaScriptSerializer          js = new JavaScriptSerializer();
            List <ServiciosEnReservacion> serviciosSeleccionados = js.Deserialize <List <ServiciosEnReservacion> >(listServiciosSeleccionados);

            //Se registran los servicios relacionados si existen
            if (serviciosSeleccionados != null && serviciosSeleccionados.Count > 0)
            {
                banquete.serviciosContratados = serviciosSeleccionados;
            }
            if (ModelState.IsValid)
            {
                banquete.fechaReservacion = DateTime.Now;
                db.Banquetes.Add(banquete);
                db.SaveChanges();
                return(RedirectToAction("Details", "Clientes", new { id = banquete.clienteID }));
            }

            //Si llega hasta aca, hubo un problema y se muestra la forma de nuevo
            Banquete newRes = prepararVista(banquete.clienteID);

            banquete.cliente     = newRes.cliente;
            ViewBag.failPostBack = true;
            return(View("Form_Banquete", banquete));
        }
Exemplo n.º 3
0
        public IHttpActionResult PutBanquete(int id, Banquete banquete)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != banquete.idBanquete)
            {
                return(BadRequest());
            }

            db.Entry(banquete).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BanqueteExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 4
0
        public IHttpActionResult GetBanquete(int id)
        {
            Banquete banquete = db.Banquete.Find(id);

            if (banquete == null)
            {
                return(NotFound());
            }

            return(Ok(banquete));
        }
Exemplo n.º 5
0
        private Banquete prepararVista(int clienteID = 0)
        {
            Banquete newReservacion = new Banquete();
            Cliente  cliente        = db.clientes.Find(clienteID);

            newReservacion.clienteID = clienteID;
            newReservacion.cliente   = cliente;
            ViewBag.servicios        = db.Servicios.Where(s => s.tipoDeEvento == Evento.TipoEvento.BANQUETE ||
                                                          s.tipoDeEvento == Evento.TipoEvento.CUALQUIERA).ToList();
            return(newReservacion);
        }
Exemplo n.º 6
0
        // GET: Banquetes/Create
        public ActionResult Create(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Banquete ban = prepararVista(id.Value);

            return(View("Form_Banquete", ban));
        }
Exemplo n.º 7
0
        public JsonResult checarConflictos(Banquete banquete)
        {
            //Se encuentran las reservaciones en conflicto
            List <Banquete> resFiltradas = banquete.reservacionesQueColisionan(db).ToList();

            //Se prepara la informacion para ser respondida como vista en JSON
            var resultado = (from res in resFiltradas
                             select new Banquete.VMBanquete(res)).ToList();

            var vmReservacionComprobada = new Banquete.VMBanquete(banquete);

            return(Json(resultado, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 8
0
        public IHttpActionResult DeleteBanquete(int id)
        {
            Banquete banquete = db.Banquete.Find(id);

            if (banquete == null)
            {
                return(NotFound());
            }

            db.Banquete.Remove(banquete);
            db.SaveChanges();

            return(Ok(banquete));
        }
Exemplo n.º 9
0
        // GET: Banquetes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Banquete banquete = db.Banquetes.Find(id);

            if (banquete == null)
            {
                return(HttpNotFound());
            }
            prepararVista();
            return(View("Form_Banquete", banquete));
        }
Exemplo n.º 10
0
        public FileResult descargarContrato(int?id, TipoDeContrato tipoContrato)
        {
            Evento evento       = db.eventos.Find(id);
            String rutaContrato = evento.ContratoPath;

            //Se hace una copia una instancia de contrato para ser modificada basada en una plantilla
            String nuevoContrato = Server.MapPath("~/App_Data/ContratoEnBlanco.docx");

            byte[] fileBytesContrato = System.IO.File.ReadAllBytes(Server.MapPath(rutaContrato));
            System.IO.File.WriteAllBytes(nuevoContrato, fileBytesContrato);

            var doc = DocX.Load(nuevoContrato);

            if (evento.tipoDeEvento == TipoEvento.RESERVACION)   //Si el evento es una reservacion de salon por arrendamiento
            {
                Reservacion res = ((Reservacion)evento);
                //Se cargan los datos desde el registro de reservacion
                Reservacion.VMDataContractReservacion dataContracts = new Reservacion.VMDataContractReservacion(res);
                if (tipoContrato == TipoDeContrato.KIDS)//CONTRATO VENTURA KIDS
                {
                    res.fillContratoA(dataContracts, ref doc);
                }
                else if (tipoContrato == TipoDeContrato.ARRENDAMIENTO)//CONTRATO MODIFICADO
                {
                    res.fillContratoB(dataContracts, ref doc);
                }
            }
            else if (evento.tipoDeEvento == TipoEvento.BANQUETE)
            {
                Banquete res = ((Banquete)evento);
                res.fillContratoA(ref doc); //Contrato para banquetes
            }

            doc.Save(); //Guardar documento en servidor

            //Descargar documento
            byte[] fileBytesNuevoContrato  = System.IO.File.ReadAllBytes(nuevoContrato);
            string nombreArchivoDescargado = evento.nombreTipoContrato.Replace(' ', '_').ToUpperInvariant() + "_" + evento.cliente.nombreCompleto.ToUpperInvariant();

            nombreArchivoDescargado = Regex.Replace(nombreArchivoDescargado, @"[^a-zA-z0-9 ]+", "") + ".docx";
            return(File(fileBytesNuevoContrato, System.Net.Mime.MediaTypeNames.Application.Octet, nombreArchivoDescargado));
        }
Exemplo n.º 11
0
        public ActionResult Edit([Bind(Include = BIND_FIELDS)] Banquete banquete, string listServiciosSeleccionados)
        {
            int numRegs = 0;

            if (ModelState.IsValid)
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                //Se eliminan la seleccion de servicios hecha anteriormente
                var serviciosEliminar = db.ServiciosEnReservaciones
                                        .Where(ser => ser.eventoID == banquete.eventoID);
                db.ServiciosEnReservaciones.RemoveRange(serviciosEliminar);

                numRegs = db.SaveChanges(); //Se guardan cambios
                //Se deserializa la lista de servicios seleccionados y sesiones modificadas
                List <ServiciosEnReservacion> serviciosSeleccionados = js.Deserialize <List <ServiciosEnReservacion> >(listServiciosSeleccionados);

                if (serviciosSeleccionados != null && serviciosSeleccionados.Count() > 0)
                {
                    //Se asocia nuevamente los servicios con el evento
                    serviciosSeleccionados.ForEach(ser => {
                        ser.eventoID        = banquete.eventoID;
                        db.Entry(ser).State = EntityState.Added;
                    });
                }

                db.Entry(banquete).State = EntityState.Modified;
                numRegs = db.SaveChanges();

                if (numRegs > 0) //Si la operacion fue satisfactoria, a los detalles del eventos
                {
                    return(RedirectToAction("Details", "Eventos", new { id = banquete.eventoID }));
                }
            }
            //Si llega aqui, es que hubo un error, se muestra nuevamente la forma
            Banquete newRes = prepararVista(banquete.clienteID);

            banquete.cliente = newRes.cliente;
            return(View("Form_Banquete", banquete));
        }