public ActionResult AsignarUsuario() { string correo = Request["txtCorreo"].ToString(); Cupones cupones = db.Cupones.Find(Session["idCupon"]); Usuario usuario = db.Usuario.Where(x => x.correoElectronico == correo && x.idNivel == cupones.idNivel).FirstOrDefault(); if (usuario == null) { TempData["Mensaje"] = "El usuario especificado no cumple con los requisitos"; return(RedirectToAction("AsignarUsuario", new { id = cupones.idCupones })); } else { Cupones_Usuario cupones_Usuario = new Cupones_Usuario(); cupones_Usuario.idCupones = cupones.idCupones; cupones_Usuario.idUsuario = usuario.idUsuario; cupones_Usuario.estado = true; try { db.Cupones_Usuarios.Add(cupones_Usuario); db.SaveChanges(); TempData["Mensaje"] = "Cupón asignado a usuario con éxito"; return(RedirectToAction("ListaCupones")); } catch { TempData["Mensaje"] = "El cupón seleccionado ya se encuentra asignado al usuario"; return(RedirectToAction("ListaCupones")); } } }
/// <summary> /// Realiza el proceso de insertar el detalle del pedido a las bases de datos /// una vez que el usuario se encuentre registrado y con sesión activa /// de lo contrario será redireccionado al inicio de sesión /// </summary> /// <param name="id">Identificador del pedido que se está enviando</param> /// <returns></returns> public ActionResult FormalizarCompra(int?id) { //Si el usuario no está logueado no puede continuar con la formalización if (Session["Usuario"] == null) { return(RedirectToAction("InicioClientes", "Usuario")); } else { if (id == null) { TempData["Mensaje"] = "El pedido especificado no está disponible"; return(View("CarritoPrevia")); } //Encontrando el pedido para asociarlo Pedido pedido = Context.Pedido.Find(id); if (pedido == null) { TempData["Mensaje"] = "El pedido no se encuantra reservado"; return(View("CarritoPrevia")); } //Recorriendo el carrito para llenar un detalle por cada producto que se quiere registrar foreach (var item in Session["Carrito"] as List <CarritoItem> ) { Detalle_Pedido detalle_Pedido = new Detalle_Pedido(); detalle_Pedido.idPedido = pedido.idPedido; detalle_Pedido.idProducto = item.Producto.idProducto; detalle_Pedido.cantidad = item.Cantidad; detalle_Pedido.descuento = Convert.ToDecimal(Session["Descuento"]); Context.Detalle_Pedido.Add(detalle_Pedido); } Context.SaveChanges(); //Cambiando el estado del pedido para colocarlo en procesado pedido.estado = true; Context.Entry(pedido).State = System.Data.Entity.EntityState.Modified; Context.SaveChanges(); //Marcando como usado el cupón utilizado en la compra if (Session["Cupones"] != null) { foreach (var item in Session["Cupones"] as List <Cupones> ) { Cupones_Usuario cupones_Usuario = Context.Cupones_Usuarios.Find(item.idCupones, Session["Usuario"]); cupones_Usuario.estado = false; Context.Entry(cupones_Usuario).State = System.Data.Entity.EntityState.Modified; } Context.SaveChanges(); } //Guardando el estado de la compra Session["Compra"] = "Finalizado"; //Eliminando los elementos del carrito Session.Remove("Carrito"); //Mensaje de confirmación TempData["Mensaje"] = "Pedido realizado con éxito, gracias por su compra!"; return(RedirectToAction("MuestraProductos", "Productos")); } }