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."; } }
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."; } }
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."; } }
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; } }
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; } }