protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { calFechaPublicacion.SelectedDate = DateTime.Today; calFechaPublicacion.VisibleDate = calFechaPublicacion.SelectedDate; ddlArticulo.DataSource = LogicaArticulo.ListarArticulos(); ddlArticulo.DataTextField = "ATexto"; ddlArticulo.DataValueField = "Id"; ddlArticulo.DataBind(); if (ddlArticulo.Items.Count == 0) { lblMensaje.Text = "¡Atención! No hay artículos disponibles."; } } txtNumero.Focus(); } catch (ExcepcionSistema ex) { lblMensaje.Text = "¡Error! " + ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al cargar la página."; } }
protected void btnDarBaja_Click(object sender, EventArgs e) { try { int id; try { id = Convert.ToInt32(txtId.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Id no es un número entero válido."); } LogicaArticulo.DarBajaArticulo(id); limpiarFormulario(); lblMensaje.Text = "☺¡Artículo dado de baja con éxito!"; } catch (ExcepcionSistema ex) { lblMensaje.Text = ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al dar de baja el artículo."; } }
protected void cargarArticulos() { if (ddlFuente.SelectedIndex != -1) { List <Articulo> articulos = LogicaArticulo.ListarArticulosXFuente(Convert.ToInt32(ddlFuente.SelectedValue)); List <Articulo> ar = new List <Articulo>(); foreach (Articulo a in articulos) { if (!pertenece(ar, a)) { ar.Add(a); } } grdArticulos.DataSource = ar; grdArticulos.DataBind(); lblMensaje.Text = ""; if (ar.Count == 0) { lblMensaje.Text = "No se han encontrado resultados para tu búsqueda "; } } }
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 { Panel2.Visible = false; List <Articulo> Articulos = LogicaArticulo.Listar(false); DataTable dtArticulos = new DataTable(); dtArticulos.Columns.Add(new DataColumn("CodigoBarras")); dtArticulos.Columns.Add(new DataColumn("Imagen")); dtArticulos.Columns.Add(new DataColumn("Nombre")); dtArticulos.Columns.Add(new DataColumn("Precio")); dtArticulos.Columns.Add(new DataColumn("Stock")); dtArticulos.Columns.Add(new DataColumn("Categoria")); foreach (Articulo a in Articulos) { DataRow drwArticulos = dtArticulos.NewRow(); drwArticulos["CodigoBarras"] = a.CodigoBarras; drwArticulos["Imagen"] = a.Imagen; drwArticulos["Nombre"] = a.Nombre; drwArticulos["Precio"] = a.Precio; drwArticulos["Stock"] = a.Stock; CategoriaArticulo categoria = a.Categoria; drwArticulos["categoria"] = categoria.Nombre; dtArticulos.Rows.Add(drwArticulos); } gvArticulos.DataSource = dtArticulos; if (Session["CodigoArticulo"] != null) { gvArticulos.PageIndex = ultimaPagina; } gvArticulos.DataBind(); } catch (ApplicationException ex) { lblMensaje.ForeColor = System.Drawing.Color.Red; lblMensaje.Text = "¡Error! " + ex.Message; } catch { lblMensaje.ForeColor = System.Drawing.Color.Red; lblMensaje.Text = "¡Error! Al cargar la pagina, no se encontro el repositorio de base de datos."; } }
protected void btnModificar_Click(object sender, EventArgs e) { try { int id; try { id = Convert.ToInt32(txtId.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Id no es un número entero válido."); } Fuente fuente = LogicaFuente.BuscarFuente(Convert.ToInt32(ddlFuente.SelectedValue)); string seccion = txtSeccion.Text; bool imagenIlustrativa = chkImagenIlustrativa.Checked; decimal costo; try { costo = Convert.ToDecimal(txtCosto.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Costo no es un número decimal válido."); } string contenido = txtContenido.Text; Articulo articulo = new Articulo(id, seccion, imagenIlustrativa, costo, contenido, fuente); LogicaArticulo.ModificarArticulo(articulo); limpiarFormulario(); lblMensaje.Text = "☺¡Artículo modificado con éxito!"; } catch (ExcepcionSistema ex) { lblMensaje.Text = ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al modificar el artículo."; } }
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."; } }
protected void btnModificar_Click(object sender, EventArgs e) { try { int numero; try { numero = Convert.ToInt32(txtNumero.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Id no es un número entero válido."); } DateTime fechaPublicacion = calFechaPublicacion.SelectedDate; Edicion edicion = new Edicion(numero, fechaPublicacion); Articulo articulo; foreach (ListItem li in lstArticulos.Items) { articulo = LogicaArticulo.BuscarArticulo(Convert.ToInt32(li.Value)); edicion.AgregarArticulo(articulo); } LogicaEdicion.ModificarEdicion(edicion); limpiarFormulario(); lblMensaje.Text = "☺¡Edición modificada con éxito!"; } catch (ExcepcionSistema ex) { lblMensaje.Text = "¡Error! " + ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al modificar la edición."; } }
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"); } }
protected void btnDarAlta_Click(object sender, EventArgs e) { try { Fuente fuente = LogicaFuente.BuscarFuente(Convert.ToInt32(ddlFuente.SelectedValue)); string seccion = txtSeccion.Text; bool imagenIlustrativa = chkImagenIlustrativa.Checked; decimal costo; try { costo = Convert.ToDecimal(txtCosto.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Costo no es un número decimal válido."); } string contenido = txtContenido.Text; Articulo articulo = new Articulo(0, seccion, imagenIlustrativa, costo, contenido, fuente); int id; LogicaArticulo.DarAltaArticulo(articulo, out id); limpiarFormulario(); txtId.Text = id.ToString(); lblMensaje.Text = "☺¡Artículo dado de alta con éxito con Id: " + id + "!"; txtId.Focus(); } catch (ExcepcionSistema ex) { lblMensaje.Text = ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al dar de alta el artículo."; } }
protected void CargarGridXBsqueda() { string nombreBuscado = "%" + (string)Session["NombreBuscado"] + "%"; bool tipoBusqueda = false; if (ddlOrdenXPrecio.SelectedValue == "SinOrdenar") { ddlOrdenXCategoria.Enabled = false; } List <Articulo> articulos = LogicaArticulo.BuscarXNombre(nombreBuscado, tipoBusqueda); seleccionDeOrdenamiento = "MayorAMenor"; if (ddlOrdenXPrecio.SelectedValue == "MenorAMayor") { seleccionDeOrdenamiento = "MenorAMayor"; tipoBusqueda = true; articulos = LogicaArticulo.BuscarXNombre(nombreBuscado, tipoBusqueda); } if (articulos.Count == 0) //si la categoria no tiene articulos se muestra un mensaje y se vacia el gridview anterior { DataTable dtSinArticulos = new DataTable(); gvArticulos.DataSource = dtSinArticulos; gvArticulos.DataBind(); Panel1.Visible = true; lblBuscando.Text = ((string)Session["NombreBuscado"]).ToUpper(); throw new ExcepcionPresentacion("No se encontro ningun articulo con el nombre: " + ((string)Session["NombreBuscado"]).ToUpper()); } Cargar1(articulos); Panel1.Visible = true; lblBuscando.Text = ((string)Session["NombreBuscado"]).ToUpper(); Session.Remove("CodigoArticulo"); Session["SeleccionDeOrenamiento"] = seleccionDeOrdenamiento; }
protected void btnBuscar_Click(object sender, EventArgs e) { try { int id; try { id = Convert.ToInt32(txtId.Text); } catch (Exception ex) { throw new ExcepcionPresentacion("El Id no es un número entero válido."); } limpiarFormulario(); Articulo articulo = LogicaArticulo.BuscarArticulo(id); txtId.Text = articulo.Id.ToString(); ddlFuente.SelectedValue = articulo.Fuente.Id.ToString(); txtSeccion.Text = articulo.Seccion; chkImagenIlustrativa.Checked = articulo.ImagenIlustrativa; txtCosto.Text = articulo.Costo.ToString(); txtContenido.Text = articulo.Contenido; lblMensaje.Text = "☺¡Artículo encontrado!"; txtId.Focus(); } catch (ExcepcionSistema ex) { lblMensaje.Text = ex.Message; } catch (Exception ex) { lblMensaje.Text = "¡Error! Ocurrió un error al buscar el artículo."; } }
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 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 CargarGridView() { string categoria = ddlCategorias.SelectedValue; List <Articulo> Articulos = LogicaArticulo.ListarTodosLosArticulos(); bool ordenamiento; //variable para definir el ordenamiento por precio que tenga el grid view en la consulta a la base de datos if (categoria == "Todas") { if (ddlOrdenXPrecio.SelectedValue == "MayorAMenor") { ordenamiento = true; seleccionDeOrdenamiento = "MayorAMenor"; Articulos = LogicaArticulo.Listar(ordenamiento); } if (ddlOrdenXPrecio.SelectedValue == "MenorAMayor") { ordenamiento = false; seleccionDeOrdenamiento = "MenorAMayor"; Articulos = LogicaArticulo.Listar(ordenamiento); } if (ddlOrdenXCategoria.SelectedValue == "A - Z") { seleccionDeOrdenamiento = "A - Z"; Articulos = LogicaArticulo.ListarArticulosGruposCategoria(true); } if (ddlOrdenXCategoria.SelectedValue == "Z - A") { seleccionDeOrdenamiento = "Z - A"; Articulos = LogicaArticulo.ListarArticulosGruposCategoria(false); } if (ddlOrdenXPrecio.SelectedValue == "SinOrdenar" && ddlOrdenXCategoria.SelectedValue == "SinOrdenar") { seleccionDeOrdenamiento = "SinOrdenar"; } Session["SeleccionDeOrenamiento"] = seleccionDeOrdenamiento; Cargar1(Articulos); } else { Articulos = LogicaArticulo.ListarXCategoriaDesordenado(categoria); if (ddlOrdenXPrecio.SelectedValue == "MayorAMenor") { ordenamiento = true; seleccionDeOrdenamiento = "MayorAMenor"; Articulos = LogicaArticulo.ListarXCategoria(categoria, ordenamiento); } if (ddlOrdenXPrecio.SelectedValue == "MenorAMayor") { ordenamiento = false; seleccionDeOrdenamiento = "MenorAMayor"; Articulos = LogicaArticulo.ListarXCategoria(categoria, ordenamiento); } if (Articulos.Count == 0) //si la categoria no tiene articulos se muestra un mensaje y se vacia el gridview anterior { DataTable dtSinArticulos = new DataTable(); gvArticulos.DataSource = dtSinArticulos; gvArticulos.DataBind(); throw new ExcepcionPresentacion("La categoria no tiene ningun articulo."); } if (ddlOrdenXPrecio.SelectedValue == "SinOrdenar" && ddlOrdenXCategoria.SelectedValue == "SinOrdenar") { seleccionDeOrdenamiento = "SinOrdenar"; } Session["SeleccionDeOrenamiento"] = seleccionDeOrdenamiento; Cargar1(Articulos); } }
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."; } }