protected void btnAgregar_Click(object sender, EventArgs e)
    {
        try
        {
            string nombre = txtNombre.Text.Trim();

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

            string descripcion = txtDescripcion.Text.Trim();

            if (string.IsNullOrEmpty(descripcion))
            {
                throw new ExcepcionLogica("La descripción de la categoria no puede quedar vacía.");
            }

            bool eliminado = false;

            CategoriaArticulo categoria = new CategoriaArticulo(nombre, descripcion, eliminado);

            buscar = true; //bandera para buscar la categoria en caso de que la misma este eliminada (true)
            //de forma logica en la base de datos y poder reemplazarla o agregarla de manera normal

            CategoriaArticulo buscarCategoria = LogicaCategoriaArticulo.Buscar(nombre, buscar);

            if (buscarCategoria == null)
            {
                LogicaCategoriaArticulo.Agregar(categoria);
            }
            else
            {
                LogicaCategoriaArticulo.Modificar(categoria);
            }

            LimpiarFormulario();
            txtDescripcion.Enabled = false;

            Panel1.Visible       = true;
            lblMensaje.ForeColor = System.Drawing.Color.Green;
            lblMensaje.Text      = "¡Categoria agregada 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 agregar la categoria.";
        }
    }
예제 #2
0
    bool buscar          = false; // variable definida para determinar si el articulo que se quiere agregar esta eliminado de forma logica en la base de datos y poder reemplazarlo

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null || !(Session["Usuario"] is Administrador))
        {
            Session["Mensaje"] = "No tienes permiso para acceder a esta página.";
            Response.Redirect("~/Error.aspx");
        }

        txtCodigoBarras.Focus();

        try
        {
            if (!IsPostBack)
            {
                imgImagen.ImageUrl = "~/Imagenes/ImagenDefault.png";

                List <CategoriaArticulo> Categorias = LogicaCategoriaArticulo.Listar();

                if (Categorias.Count > 0)
                {
                    ddlCategorias.Items.Add(new ListItem("Seleccione Una Categoria", "Ninguno"));

                    foreach (CategoriaArticulo c in Categorias)
                    {
                        ddlCategorias.Items.Add(new ListItem(c.Nombre, c.Nombre));
                    }
                }
                else
                {
                    Session["Mensaje"] = "¡ERROR! No hay Categorias ingresadas.";
                    Response.Redirect("~/Error.aspx");
                }
            }
        }
        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! Al cargar la pagina.";
        }
    }
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            if (txtNombre.Text.Trim() == string.Empty)
            {
                throw new ExcepcionPresentacion("El nombre de la categoria a buscar no puede quedar vacío.");
            }

            string nombre = txtNombre.Text.Trim();

            buscar = false; // bandera para buscar categorias NO eliminadas logicamente en la base de datos

            CategoriaArticulo categoria = LogicaCategoriaArticulo.Buscar(nombre, buscar);

            if (categoria != null)
            {
                txtNombre.Text      = categoria.Nombre;
                txtDescripcion.Text = categoria.Descripcion;

                AparecerDesaparecerBotonesBuscarNoNULL();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Categoria Encontrada!";
            }
            else
            {
                AparecerDesaparecerBotonesBuscarEsNULL();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "No se encontró ningúna categoria con el nombre: '" + nombre + "', si desea puede Agregarla.";
            }
        }
        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 la categoria.";
        }
    }
예제 #4
0
    static string seleccionDeOrdenamiento = ""; //variable para guardar en sesion la categoria y que deje los valores anteriores cuando se va a detalles de productos y se hace click en volver

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Response.CacheControl = "no-cache";

            if (!IsPostBack) //carga el ddlCategorias si no es un Postback
            {
                List <CategoriaArticulo> Categorias = LogicaCategoriaArticulo.Listar();

                if (Categorias.Count > 0)
                {
                    ddlCategorias.Items.Add(new ListItem("Todas", "Todas"));

                    foreach (CategoriaArticulo c in Categorias)
                    {
                        ddlCategorias.Items.Add(new ListItem(c.Nombre, c.Nombre));
                    }
                }
                else
                {
                    throw new ExcepcionPresentacion("¡ERROR! No hay Categorias ingresadas.");
                }
            }

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

        catch
        {
            Panel2.Visible       = false;
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! Al cargar la pagina, no se encontro el repositorio de base de datos.";
        }
    }
예제 #5
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;
        }
    }
예제 #6
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.";
        }
    }
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        switch (opcion)
        {
        case "Modificar":
            try
            {
                string nombre = txtNombre.Text.Trim();

                string descripcion = txtDescripcion.Text.Trim();

                bool eliminado = false;

                CategoriaArticulo categoria = new CategoriaArticulo(nombre, descripcion, eliminado);

                LogicaCategoriaArticulo.Modificar(categoria);

                AparecerDesaparecerBotonesClickAceptar();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Categoria modificada 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 la categoria.";
            }
            break;

        case "Eliminar":
            try
            {
                string nombre = txtNombre.Text.Trim();

                LogicaCategoriaArticulo.Eliminar(nombre);

                AparecerDesaparecerBotonesClickAceptar();

                Panel1.Visible       = true;
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Categoria eliminada 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 la categoria.";
            }
            break;
        }
    }