public ActionResult CargarProductoUnico()
        {
            ProductosCompraDTO _oProducto = TempData["oProductoUnico"] as ProductosCompraDTO;

            TempData.Keep("oProductoUnico");

            TempData["lValidarCompraUnica"] = true;

            return(PartialView(_oProducto));
        }
Beispiel #2
0
        /// <summary>
        /// Método para obtener el producto desde la compra directa
        /// </summary>
        /// <param name="iIdProducto"></param>
        /// <param name="iCantidad"></param>
        /// <returns></returns>
        public ProductosCompraDTO ObtenerProductoCompraDirecta(int iIdProducto, int iCantidad)
        {
            ProductosCompraDTO _oProducto = db.tblCat_Producto.AsNoTracking().Where(p => p.iIdProducto == iIdProducto).Select(p => new ProductosCompraDTO
            {
                iIdProducto        = p.iIdProducto,
                iCantidadSeleccion = iCantidad,
                dPrecioTotal       = (iCantidad * p.dPrecio),
                cNombre            = p.cNombre,
                cImagen            = p.cImagen
            }).FirstOrDefault();

            return(_oProducto);
        }
        public ActionResult Inicio()
        {
            if (Session["iIdCliente"] != null)
            {
                if (TempData["lValidarCompra"] != null)
                {
                    if (TempData["iIdProductoCompra"] == null)
                    {
                        int iIdCarrito = carrito.ObtenerCarrito(Convert.ToInt32(Session["iIdCliente"]));

                        ViewBag.iTotalProductos = carrito.ObtenerTotalProductos(iIdCarrito);

                        ViewBag.dSubTotalPrecio = carrito.ObtenerTotalPrecio(iIdCarrito);

                        ViewBag.dTotalPrecio = carrito.ObtenerTotalPrecio(iIdCarrito) + 50;

                        List <ProductosCompraDTO> _lstProductos = compra.ObtenerProductosCompra(iIdCarrito);

                        return(View(_lstProductos));
                    }
                    else
                    {
                        int iCantidad = Convert.ToInt32(Request["iCantidad"]);

                        ProductosCompraDTO _oProducto = compra.ObtenerProductoCompraDirecta(Convert.ToInt32(TempData["iIdProductoCompra"]), iCantidad);

                        TempData["oProductoUnico"] = _oProducto;

                        ViewBag.iTotalProductos = iCantidad;

                        ViewBag.dSubTotalPrecio = _oProducto.dPrecioTotal;

                        ViewBag.dTotalPrecio = _oProducto.dPrecioTotal + 50;

                        ViewBag.lValidarCompraDirecta = true;

                        return(View());
                    }
                }
                else
                {
                    return(RedirectToAction("Inicio", "Producto"));
                }
            }
            else
            {
                TempData["lConexion"] = true;

                return(RedirectToAction("Inicio", "Producto"));
            }
        }
Beispiel #4
0
        /// <summary>
        /// Método para realizar la compra de un producto
        /// </summary>
        /// <param name="oProducto">Objeto con los datos del producto</param>
        /// <param name="iIdCompra">ID de la compra</param>
        public void RealizarCompraDirecta(ProductosCompraDTO oProducto, int iIdCompra)
        {
            tbl_DetalleCompra _oDetalleCompra = new tbl_DetalleCompra()
            {
                iIdCompra   = iIdCompra,
                iIdProducto = oProducto.iIdProducto,
                iCantidad   = oProducto.iCantidadSeleccion
            };

            db.Entry(_oDetalleCompra).State = EntityState.Added;

            tblCat_Producto _oProducto = db.tblCat_Producto.AsNoTracking().FirstOrDefault(p => p.iIdProducto == _oDetalleCompra.iIdProducto);

            _oProducto.iCantidad -= _oDetalleCompra.iCantidad;

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

            db.SaveChanges();
        }
        public JsonResult RealizarCompra()
        {
            string cMensaje;
            string cIcono;

            try
            {
                Nullable <bool> lValidarCompraUnica = TempData["lValidarCompraUnica"] as Nullable <bool>;
                if (lValidarCompraUnica != true)
                {
                    string        _cCompra = Request["oCompra"];
                    tblCat_Compra _oCompra = JsonConvert.DeserializeObject <tblCat_Compra>(_cCompra);

                    int iIdCliente = Convert.ToInt32(Session["iIdCliente"]);

                    int iIdCompra = compra.AgregarCompra(iIdCliente, _oCompra);

                    int iIdCarrito = carrito.ObtenerCarrito(Convert.ToInt32(Session["iIdCliente"]));

                    compra.RealizarCompraCarrito(iIdCarrito, iIdCompra);

                    carrito.VaciarCarrito(iIdCarrito);

                    MailMessage _mmMensaje = generar.GenerarPDF(iIdCompra);

                    generar.EnviarCorreo(_mmMensaje);

                    cMensaje = "Se ha realizado la compra!";
                    cIcono   = "success";
                }
                else if (lValidarCompraUnica == true)
                {
                    string        _cCompra = Request["oCompra"];
                    tblCat_Compra _oCompra = JsonConvert.DeserializeObject <tblCat_Compra>(_cCompra);

                    int iIdCliente = Convert.ToInt32(Session["iIdCliente"]);

                    int iIdCompra = compra.AgregarCompra(iIdCliente, _oCompra);

                    ProductosCompraDTO _oProducto = TempData["oProductoUnico"] as ProductosCompraDTO;

                    compra.RealizarCompraDirecta(_oProducto, iIdCompra);

                    MailMessage _mmMensaje = generar.GenerarPDF(iIdCompra);

                    generar.EnviarCorreo(_mmMensaje);

                    cMensaje = "Se ha realizado la compra!";
                    cIcono   = "success";
                }
                else
                {
                    cMensaje = "Ha ocurrido un error";
                    cIcono   = "error";
                }
            }
            catch (Exception e)
            {
                cMensaje = e.Message;
                cIcono   = "error";
            }

            return(Json(new { cMensaje, cIcono }));
        }