Exemplo n.º 1
0
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            long codigoBarras;

            try
            {
                codigoBarras = Convert.ToInt64(txtCodigoBarras.Text.Trim());
            }
            catch
            {
                throw new ExcepcionPresentacion("El Código de barras no es válido.");
            }

            buscar = false;//busca solo los articulos no eliminados de la base de datos

            Articulo articulo = LogicaArticulo.Buscar(codigoBarras, buscar);

            if (articulo != null)
            {
                txtNombre.Text              = articulo.Nombre;
                txtPrecio.Text              = articulo.Precio.ToString();
                txtStock.Text               = articulo.Stock.ToString();
                txtDescripcion.Text         = articulo.Descripcion;
                imgImagen.ImageUrl          = articulo.Imagen;
                ddlCategorias.SelectedValue = articulo.Categoria.Nombre;

                AparecerDesaparecerBotonesBuscarNoNULL();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Articulo Encontrado!";
            }
            else
            {
                AparecerDesaparecerBotonesBuscarNULL();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "No se encontró ningún Articulo con el Código de Barras " + codigoBarras + ", si lo desea puede agregar un articulo con ese codigo.";
            }
        }
        catch (ApplicationException ex)
        {
            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡ERROR! " + ex.Message;
        }
        catch
        {
            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡ERROR! Se produjo un error al buscar el Articulo.";
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Response.CacheControl = "no-cache";

            if (Session["CodigoArticulo"] == null)
            {
                Session["Mensaje"] = "¡ERROR! Para acceder a los detalles de articulos debe seleccionar un link de detalles.";
                Response.Redirect("~/Error.aspx");
            }

            long codigo = (long)Session["CodigoArticulo"];
            bool buscar = false;

            Articulo          articulo  = LogicaArticulo.Buscar(codigo, buscar);
            CategoriaArticulo categoria = articulo.Categoria;

            if (articulo != null)
            {
                txtcodigoBarras.Text = articulo.CodigoBarras.ToString();
                lblNombre.Text       = articulo.Nombre;
                txtPrecio.Text       = "USD " + articulo.Precio.ToString() + "   Contado.";
                txtStock.Text        = articulo.Stock.ToString();
                lblDescripcion.Text  = articulo.Descripcion;
                txtCategoria.Text    = articulo.Categoria.Nombre;
                imgFoto.ImageUrl     = articulo.Imagen;
            }
            else
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "No se encontró el articulo con el código de barras " + codigo + ".";
            }

            Panel2.Visible = false;
        }
        catch (ApplicationException ex)
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! " + ex.Message;
        }
        catch
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! No se pudo mostrar el articulo.";
        }
    }
Exemplo n.º 3
0
    protected void gvArticulos_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AgregarCarrito")
        {
            List <LineaPedido> lineasDePedido = new List <LineaPedido>();

            if ((List <LineaPedido>)Session["CarritoLineaPedido"] != null)
            {
                lineasDePedido = (List <LineaPedido>)Session["CarritoLineaPedido"];
            }

            LineaPedido nuevaLinea = new LineaPedido();

            int         index          = Convert.ToInt32(e.CommandArgument);
            GridViewRow row            = gvArticulos.Rows[index];
            long        codigoArticulo = Convert.ToInt64(row.Cells[0].Text);

            Articulo articulo = LogicaArticulo.Buscar(codigoArticulo, false);

            if (articulo.Stock >= 1)
            {
                nuevaLinea.Cantidad = 1;
            }
            else
            {
                lblAgregado.ForeColor = System.Drawing.Color.Red;
                lblAgregado.Text      = "Lo sentimos pero ya no hay stock de el producto.";
                Panel2.Visible        = true;
            }

            nuevaLinea.Numero    = lineasDePedido.Count;
            nuevaLinea.PArticulo = articulo;

            lineasDePedido.Add(nuevaLinea);

            Session["CarritoLineaPedido"] = lineasDePedido;

            lblAgregado.ForeColor = System.Drawing.Color.Green;
            lblAgregado.Text      = "Producto Agregado con exito a su carrito de compras.";
            Panel2.Visible        = true;
            //Response.Redirect("~/Ofertas.aspx");
        }
    }
Exemplo n.º 4
0
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        switch (opcion)
        {
        case "Modificar":
            try
            {
                long codigoBarras = Convert.ToInt64(txtCodigoBarras.Text.Trim());

                string nombre = txtNombre.Text.Trim();

                if (string.IsNullOrEmpty(nombre))
                {
                    throw new ExcepcionLogica("El Nombre del articulo no puede quedar vacío.");
                }

                double precio;

                try
                {
                    precio = Convert.ToDouble(txtPrecio.Text.Trim());
                }
                catch
                {
                    throw new ExcepcionPresentacion("El Precio no es válido.");
                }

                int stock;

                try
                {
                    stock = Convert.ToInt32(txtStock.Text.Trim());
                }
                catch
                {
                    throw new ExcepcionPresentacion("El Stock no es válido.");
                }

                string descripcion = txtDescripcion.Text.Trim();

                if (string.IsNullOrEmpty(descripcion))
                {
                    throw new ExcepcionLogica("La descripcion del articulo no puede quedar vacía.");
                }

                string nombreCategoria = ddlCategorias.SelectedValue;

                if (nombreCategoria == "Ninguno")
                {
                    throw new ExcepcionPresentacion("Debe seleccionar una categoria de la lista.");
                }

                bool buscarCategoria        = false;
                CategoriaArticulo categoria = LogicaCategoriaArticulo.Buscar(nombreCategoria, buscarCategoria);

                buscar = false;
                Articulo articuloImagen = LogicaArticulo.Buscar(codigoBarras, buscar);

                string origenImagen  = fuOrigenImagen.PostedFile.FileName;
                string destinoImagen = articuloImagen.Imagen;     //si no se proporciona una direccion de imagen queda la que tenia anteriormente

                if (origenImagen != string.Empty)
                {
                    string eliminarImagen = Server.MapPath(articuloImagen.Imagen);

                    if (System.IO.File.Exists(eliminarImagen) == true)
                    {
                        System.IO.File.Delete(eliminarImagen);
                    }

                    string nombreImagen = txtCodigoBarras.Text.Trim() + System.IO.Path.GetFileName(origenImagen);
                    destinoImagen = Server.MapPath("~/uploads/articulos/") + nombreImagen;

                    System.IO.File.Copy(origenImagen, destinoImagen, true);

                    destinoImagen = "~/uploads/articulos/" + nombreImagen;
                }

                bool eliminado = false;

                Articulo articulo = new Articulo(codigoBarras, nombre, precio, stock, descripcion, destinoImagen, categoria, eliminado);

                LogicaArticulo.Modificar(articulo);

                AparecerDesaparecerBotonesAceptar();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Articulo modificado con éxito!";
            }

            catch (ApplicationException ex)
            {
                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! " + ex.Message;
            }

            catch
            {
                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! No se pudo modificar el Articulo.";
            }
            break;

        case "Eliminar":
            try
            {
                long codigoBarras = Convert.ToInt64(txtCodigoBarras.Text.Trim());

                string nombre = txtNombre.Text.Trim();

                bool     buscarArticulo = false;
                Articulo articuloImagen = LogicaArticulo.Buscar(codigoBarras, buscarArticulo);

                LogicaArticulo.Eliminar(codigoBarras);

                string eliminarImagen = Server.MapPath(articuloImagen.Imagen);

                if (System.IO.File.Exists(eliminarImagen) == true)
                {
                    System.IO.File.Delete(eliminarImagen);
                }

                AparecerDesaparecerBotonesAceptar();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Articulo eliminado con éxito!";
            }
            catch (ApplicationException ex)
            {
                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! " + ex.Message;
            }

            catch
            {
                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! No se pudo eliminar el Articulo.";
            }
            break;
        }
    }
Exemplo n.º 5
0
    protected void btnAgregar_Click(object sender, EventArgs e)
    {
        try
        {
            long codigoBarras = 1;

            if (txtCodigoBarras.Text.Trim() != string.Empty)
            {
                codigoBarras = Convert.ToInt64(txtCodigoBarras.Text.Trim());
            }

            string nombre = txtNombre.Text.Trim();

            if (string.IsNullOrEmpty(nombre))
            {
                throw new ExcepcionLogica("El Nombre del articulo no puede quedar vacío.");
            }

            double precio;

            try
            {
                precio = Convert.ToDouble(txtPrecio.Text.Trim());
            }
            catch
            {
                throw new ExcepcionPresentacion("El Precio no es válido.");
            }

            int stock;

            try
            {
                stock = Convert.ToInt32(txtStock.Text.Trim());
            }
            catch
            {
                throw new ExcepcionPresentacion("El Stock no es válido.");
            }

            string descripcion = txtDescripcion.Text.Trim();

            if (string.IsNullOrEmpty(descripcion))
            {
                throw new ExcepcionLogica("La descripcion del articulo no puede quedar vacía.");
            }

            string nombreCategoria = ddlCategorias.SelectedValue;

            if (nombreCategoria == "Ninguno")
            {
                throw new ExcepcionPresentacion("Debe seleccionar una categoria de la lista.");
            }

            bool buscarCategoria        = false; //busca categorias no eliminadas de manera logica
            CategoriaArticulo categoria = LogicaCategoriaArticulo.Buscar(nombreCategoria, buscarCategoria);

            string origenImagen = fuOrigenImagen.PostedFile.FileName; //saca la ruta de donde se copia la imagen del Fileupload

            string destinoImagen;

            if (origenImagen != string.Empty)
            {
                string nombreImagen = txtCodigoBarras.Text.Trim() + System.IO.Path.GetFileName(origenImagen);//sacamos el codigo del articulo y se lo agregamos al nombre de la imagen

                string extension = nombreImagen.Substring(nombreImagen.Length - 4, 4);

                if (extension.ToLower() != ".jpg" && extension.ToLower() != ".png" && extension.ToLower() != ".bmp" && extension.ToLower() != "jpeg")
                {
                    throw new ExcepcionPresentacion("Formato de imagen no válido, coloque un archivo con extension: .jpg , .png , .bmp  o .jpeg ");
                }

                destinoImagen = Server.MapPath("~/uploads/articulos/") + nombreImagen; // ruta de destino donde se copiara la imagen

                System.IO.File.Copy(origenImagen, destinoImagen, true);                //copia la imagen y reemplaza si existe una con el mismo nombre

                destinoImagen = "~/uploads/articulos/" + nombreImagen;                 //generamos una ruta corta para la base de datos
            }
            else
            {
                throw new ExcepcionPresentacion("Debe seleccionar una imagen para el Articulo.");
            }

            bool eliminado = false;

            Articulo articulo = new Articulo(codigoBarras, nombre, precio, stock, descripcion, destinoImagen, categoria, eliminado);

            buscar = true; // busca los articulos aunque este eliminados de manera logica
            Articulo buscarArticulo = LogicaArticulo.Buscar(codigoBarras, buscar);

            if (buscarArticulo == null)
            {
                LogicaArticulo.Agregar(articulo);
            }
            else
            {
                LogicaArticulo.Modificar(articulo);
            }

            LimpiarFormulario();

            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Green;
            lblMensaje.Text      = "¡Articulo" + (stock > 1 ? "s" : "") + " agregado" + (stock > 1 ? "s" : "") + " con éxito! con el código de barras: " + codigoBarras;
        }
        catch (ApplicationException ex)
        {
            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! " + ex.Message;
        }

        catch
        {
            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! No se pudo agregar el Articulo.";
        }
    }
Exemplo n.º 6
0
    protected void gvArticulos_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AgregarCarrito")
        {
            try
            {
                if (Session["Usuario"] is Administrador)
                {
                    throw new ExcepcionPresentacion("Un administrador logueado no puede agregar productos al carrito de compras");
                }
                else
                {
                    List <LineaPedido> lineasDePedido = new List <LineaPedido>();

                    if ((List <LineaPedido>)Session["CarritoLineaPedido"] != null)
                    {
                        lineasDePedido = (List <LineaPedido>)Session["CarritoLineaPedido"];
                    }

                    LineaPedido nuevaLinea = new LineaPedido();

                    int         index          = Convert.ToInt32(e.CommandArgument);
                    GridViewRow row            = gvArticulos.Rows[index];
                    long        codigoArticulo = Convert.ToInt64(row.Cells[0].Text);

                    Articulo articulo = LogicaArticulo.Buscar(codigoArticulo, false);

                    int cantidadStockCarrito = 0;

                    foreach (LineaPedido lp in lineasDePedido)
                    {
                        if (lp.PArticulo.CodigoBarras == codigoArticulo)
                        {
                            cantidadStockCarrito += lp.Cantidad;
                        }
                    }

                    if (articulo.Stock > cantidadStockCarrito)
                    {
                        nuevaLinea.Cantidad = 1;

                        nuevaLinea.Numero    = lineasDePedido.Count;
                        nuevaLinea.PArticulo = articulo;

                        lineasDePedido.Add(nuevaLinea);

                        Session["CarritoLineaPedido"] = lineasDePedido;

                        lblAgregado.ForeColor = System.Drawing.Color.Green;
                        lblAgregado.Text      = "Producto Agregado con exito a su carrito de compras.";
                        Panel2.Visible        = true;
                    }
                    else
                    {
                        lblAgregado.ForeColor = System.Drawing.Color.Red;
                        lblAgregado.Text      = "Lo sentimos pero ya no hay stock de el producto.";
                        Panel2.Visible        = true;
                    }
                    //Response.Redirect("~/Default.aspx");
                }
            }
            catch (ApplicationException ex)
            {
                lblAgregado.ForeColor = System.Drawing.Color.Red;
                lblAgregado.Text      = "¡Error! " + ex.Message;
                Panel2.Visible        = true;
            }

            catch
            {
                lblAgregado.ForeColor = System.Drawing.Color.Red;
                lblAgregado.Text      = "¡Error! Al cargar la pagina.";
                Panel2.Visible        = true;
            }

            //Response.Redirect("~/Default.aspx");
        }
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            if (Session["Usuario"] is Administrador)
            {
                throw new ExcepcionPresentacion("Un administrador logueado no puede agregar productos al carrito de compras");
            }
            else
            {
                List <LineaPedido> lineasDePedido = (List <LineaPedido>)Session["CarritoLineaPedido"];

                LineaPedido nuevaLinea = new LineaPedido();

                long codigo = (long)Session["CodigoArticulo"];
                bool buscar = false;

                int cantidadSolicitada;

                try
                {
                    cantidadSolicitada = Convert.ToInt32(txtCantidad.Text.Trim());
                }
                catch
                {
                    throw new ExcepcionPresentacion("La cantidad solicitada del articulo no es correcta o esta vacia.");
                }

                Articulo articulo = LogicaArticulo.Buscar(codigo, buscar);

                int cantidadStockCarrito = 0;

                if (lineasDePedido != null)
                {
                    foreach (LineaPedido lp in lineasDePedido)
                    {
                        if (lp.PArticulo.CodigoBarras == articulo.CodigoBarras)
                        {
                            cantidadStockCarrito += lp.Cantidad;
                        }
                    }
                }

                if (articulo.Stock >= cantidadSolicitada && cantidadSolicitada > 0 && articulo.Stock > cantidadStockCarrito)
                {
                    nuevaLinea.Cantidad = cantidadSolicitada;
                }
                else
                {
                    throw new ExcepcionPresentacion("La cantidad solicitada no es correcta o sobrepasa el stock (" + articulo.Stock + " ) del producto.");
                }


                nuevaLinea.PArticulo = articulo;

                if (lineasDePedido != null)
                {
                    nuevaLinea.Numero = lineasDePedido.Count;
                    lineasDePedido.Add(nuevaLinea);
                }
                else
                {
                    nuevaLinea     = new LineaPedido(0, cantidadSolicitada, articulo);
                    lineasDePedido = new List <LineaPedido>();
                    lineasDePedido.Add(nuevaLinea);
                }



                Session["CarritoLineaPedido"] = lineasDePedido;

                Panel2.Visible        = true;
                lblAgregado.ForeColor = System.Drawing.Color.Green;
                lblAgregado.Text      = "Producto Agregado con exito a su carrito de compras.";
                lblMensaje.Text       = "";
                txtCantidad.Text      = "";
                //Response.Redirect("~/MostrarArticulo.aspx");
            }
        }
        catch (ApplicationException ex)
        {
            lblAgregado.ForeColor = System.Drawing.Color.Red;
            lblAgregado.Text      = "¡Error! " + ex.Message;
            Panel2.Visible        = true;
        }
        catch
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! No se pudo agregar el articulo al carrito.";
        }
    }