/// <summary> /// Busca el registro que contiene el ID pasado por parametro y lo elimina. /// </summary> /// <param name="_ID_CategoriaArticuloEliminar">Registro que se eliminará.</param> /// <param name="_InformacionDelError">Devuelve una cadena de texto con informacion para el usuario en caso de que el /// metodo devuelva null (debido a que ocurrio un error).</param> public int Borrar(int _ID_CategoriaArticuloEliminar, ref string _InformacionDelError) { using (BDRestauranteEntities BBDD = new BDRestauranteEntities()) { try { CategoriaArticulo ObjetoAEliminar = BBDD.CategoriaArticulo.SingleOrDefault(Identificador => Identificador.ID_CategoriaArticulo == _ID_CategoriaArticuloEliminar); if (ObjetoAEliminar != null) { BBDD.CategoriaArticulo.Remove(ObjetoAEliminar); return(BBDD.SaveChanges()); } else { return(0); } } catch (Exception Error) { _InformacionDelError = $"OCURRIO UN ERROR INESPERADO AL INTENTAR LISTAR LA INFORMACIÓN: {Error.Message}\r\n\r\n" + $"ORIGEN DEL ERROR: {Error.StackTrace}\r\n\r\n" + $"OBJETO QUE GENERÓ EL ERROR: {Error.Data}\r\n\r\n\r\n" + $"ENVIE AL PROGRAMADOR UNA FOTO DE ESTE MENSAJE CON UNA DESCRIPCION DE LO QUE HIZO ANTES DE QUE SE GENERARÁ " + $"ESTE ERROR PARA QUE SEA ARREGLADO."; return(0); } } }
public List <CategoriaArticulo> ListarCategoria() { List <CategoriaArticulo> lista = new List <CategoriaArticulo>(); CategoriaArticulo aux; AccesoDatosManager accesoDatos = new AccesoDatosManager(); try { accesoDatos.SetearConsulta("Select Id, Nombre from CATEGORIAS"); accesoDatos.AbrirConexion(); accesoDatos.EjecutarConsulta(); while (accesoDatos.Lector.Read()) { aux = new CategoriaArticulo(); aux.Id = (int)accesoDatos.Lector[0]; aux.Nombre = (string)accesoDatos.Lector[1]; //aux.Descripcion = (string)accesoDatos.Lector[2]; lista.Add(aux); } return(lista); } catch (Exception ex) { throw ex; } finally { accesoDatos.CerrarConexion(); } }
public CategoriaArticulo GetCategoria(int Id) { CategoriaArticulo aux = new CategoriaArticulo(); AccesoDatosManager accesoDatos = new AccesoDatosManager(); try { accesoDatos.SetearConsulta("Select Id, Nombre from CATEGORIAS where Id = @Id"); accesoDatos.Comando.Parameters.Clear(); accesoDatos.Comando.Parameters.AddWithValue("@Id", Id.ToString()); accesoDatos.AbrirConexion(); accesoDatos.EjecutarConsulta(); while (accesoDatos.Lector.Read()) { aux.Id = (Int32)accesoDatos.Lector[0]; aux.Nombre = (string)accesoDatos.Lector[1]; } return(aux); } catch (Exception ex) { throw ex; } finally { accesoDatos.CerrarConexion(); } }
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."; } }
/// <summary>Actualiza el estado de la categoria a activo/inactivo.</summary> /// <param name="_EstadoElemento">Enum que contrendra el numero del tipo de estado.</param> private void ActualizarEstadoCategoria(ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos _EstadoElemento) { bool ActualizoUnRegistro = false; ClsCategoriasArticulos Categoria = new ClsCategoriasArticulos(); CategoriaArticulo ActualizarCategoria = new CategoriaArticulo(); int TotalDeFilas = dgvEstadoCategoria.Rows.Count; for (int Indice = 0; Indice < TotalDeFilas; Indice++) { //Pregunto si la celda es diferente a null if (dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.Seleccionar].Value) { string InformacionDelError = string.Empty; ActualizarCategoria = Categoria.LeerPorNumero((int)dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.ID_Categoria].Value, ref InformacionDelError); ActualizarCategoria.ID_EstadoCategoriaArticulo = (int)_EstadoElemento; if (Categoria.Actualizar(ActualizarCategoria, ref InformacionDelError) != 0) { dgvEstadoCategoria.Rows.Remove(dgvEstadoCategoria.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; ActualizoUnRegistro = true; UltimaFilaSeleccionada = -1; } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } // Cargar los DGV y CMB solo si acutalizo un registro if (ActualizoUnRegistro) { if (_EstadoElemento == ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.Activo) { CargarDGVArticulos(ClsArticulos.ETipoListado.ArticulosActivosInactivos); } else { CargarDGVArticulos(ClsArticulos.ETipoListado.ArticulosActivosInactivos); } FormularioCargado = false; CargarCMBCategorias(); FormularioCargado = true; } }
public static CategoriaArticulo Buscar(string nombre, bool buscar) { SqlConnection conexion = null; SqlDataReader drCategoria = null; try { conexion = new SqlConnection(Conexion.CadenaConexion); if (buscar) { SqlCommand cmdBuscarCategoria = new SqlCommand("BuscarCategoriaSinDiscriminarEliminado", conexion); cmdBuscarCategoria.CommandType = CommandType.StoredProcedure; cmdBuscarCategoria.Parameters.AddWithValue("@nombre", nombre); conexion.Open(); drCategoria = cmdBuscarCategoria.ExecuteReader(); } else { SqlCommand cmdBuscarCategoria = new SqlCommand("BuscarCategoriasNoEliminada", conexion); cmdBuscarCategoria.CommandType = CommandType.StoredProcedure; cmdBuscarCategoria.Parameters.AddWithValue("@nombre", nombre); conexion.Open(); drCategoria = cmdBuscarCategoria.ExecuteReader(); } CategoriaArticulo categoria = null; if (drCategoria.Read()) { categoria = new CategoriaArticulo((string)drCategoria["Nombre"], (string)drCategoria["Descripcion"], (bool)drCategoria["Eliminado"]); } return(categoria); } finally { if (drCategoria != null) { drCategoria.Close(); } if (conexion != null) { conexion.Close(); } } }
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 Cargar2(int cantidadListado, List <Articulo> Articulos, DataTable dtArticulos) { if (cantidadListado == 0) // selecciona mostrar todos los articulos o la cantidad seleccionada { gvArticulos.PageSize = Articulos.Count; } else { gvArticulos.PageSize = cantidadListado; } try { 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(); Session["CategoriaSeleccionada"] = ddlCategorias.SelectedValue; } 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."; } }
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."; } }
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."; } }
public static void Validar(CategoriaArticulo categoria) { if (categoria == null) { throw new ExcepcionLogica("La categoria es nula,"); } if (categoria.Nombre.Length > 20) { throw new ExcepcionLogica("El nombre no puede tener más de 20 caracteres de longitud."); } if (categoria.Descripcion.Length > 1000) { throw new ExcepcionLogica("La descripción no puede tener más de 100 caracteres de longitud."); } }
/// <summary> /// Crea un nuevo registro a partir de los datos que contiene el objeto pasado por parametro. /// </summary> /// <param name="_CategoriaArticulo">Objeto que contiene los datos del nuevo registro que se creará.</param> ///<param name="_InformacionDelError">Devuelve una cadena de texto con informacion para el usuario en caso de que el /// metodo devuelva null (debido a que ocurrio un error).</param> public int Crear(CategoriaArticulo _CategoriaArticulo, ref string _InformacionDelError) { using (BDRestauranteEntities BBDD = new BDRestauranteEntities()) { try { BBDD.CategoriaArticulo.Add(_CategoriaArticulo); return(BBDD.SaveChanges()); } catch (Exception Error) { _InformacionDelError = $"OCURRIO UN ERROR INESPERADO AL INTENTAR LISTAR LA INFORMACIÓN: {Error.Message}\r\n\r\n" + $"ORIGEN DEL ERROR: {Error.StackTrace}\r\n\r\n" + $"OBJETO QUE GENERÓ EL ERROR: {Error.Data}\r\n\r\n\r\n" + $"ENVIE AL PROGRAMADOR UNA FOTO DE ESTE MENSAJE CON UNA DESCRIPCION DE LO QUE HIZO ANTES DE QUE SE GENERARÁ " + $"ESTE ERROR PARA QUE SEA ARREGLADO."; return(0); } } }
public static void Modificar(CategoriaArticulo categoria) { SqlConnection conexion = null; try { conexion = new SqlConnection(Conexion.CadenaConexion); SqlCommand cmdModificarCategoria = new SqlCommand("ModificarCategoria", conexion); cmdModificarCategoria.CommandType = CommandType.StoredProcedure; cmdModificarCategoria.Parameters.AddWithValue("@nombre", categoria.Nombre); cmdModificarCategoria.Parameters.AddWithValue("@descripcion", categoria.Descripcion); cmdModificarCategoria.Parameters.AddWithValue("@eliminado", categoria.Eliminado); SqlParameter retorno = new SqlParameter("@valorRetorno", SqlDbType.Int); retorno.Direction = ParameterDirection.ReturnValue; cmdModificarCategoria.Parameters.Add(retorno); conexion.Open(); int filasAfectadas = cmdModificarCategoria.ExecuteNonQuery(); if ((int)retorno.Value == 1) { throw new ExcepcionPersistencia("No existe una categoria con el nombre: " + categoria.Nombre); } if (filasAfectadas < 1) { throw new ExcepcionPersistencia("Ocurrio un Error al modificar la categoria: " + categoria.Nombre); } } finally { if (conexion != null) { conexion.Close(); } } }
public static List <CategoriaArticulo> Listar() { SqlConnection conexion = null; SqlDataReader drCategoria = null; try { conexion = new SqlConnection(Conexion.CadenaConexion); SqlCommand cmdListarCategorias = new SqlCommand("ListarCategorias", conexion); cmdListarCategorias.CommandType = CommandType.StoredProcedure; conexion.Open(); drCategoria = cmdListarCategorias.ExecuteReader(); List <CategoriaArticulo> Categorias = new List <CategoriaArticulo>(); CategoriaArticulo categoria; while (drCategoria.Read()) { categoria = new CategoriaArticulo((string)drCategoria["Nombre"], (string)drCategoria["Descripcion"], (bool)drCategoria["Eliminado"]); Categorias.Add(categoria); } return(Categorias); } finally { if (drCategoria != null) { drCategoria.Close(); } if (conexion != null) { conexion.Close(); } } }
public void ModificarCAtegoria(CategoriaArticulo categoria) { AccesoDatosManager accesoDatos = new AccesoDatosManager(); try { accesoDatos.SetearConsulta("update CATEGORIAS Set NOMBRE=@Nombre Where ID=" + categoria.Id); accesoDatos.Comando.Parameters.Clear(); accesoDatos.Comando.Parameters.AddWithValue("@NOMBRE", categoria.Nombre.ToString()); accesoDatos.AbrirConexion(); accesoDatos.EjecutarAccion(); } catch (Exception ex) { throw ex; } finally { accesoDatos.CerrarConexion(); } }
private void DgvEstadoCategoria_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex != -1) { using (FrmCrearCategoria FormModificaCategoria = new FrmCrearCategoria((int)dgvCategorias.Rows[e.RowIndex].Cells[(int)ENumColDGVCategorias.ID_Categoria].Value)) { FormModificaCategoria.ShowDialog(); if (FormModificaCategoria.DialogResult == DialogResult.OK) { string InformacionDelError = string.Empty; ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos(); CategoriaArticulo ActualizarCategoria = CategoriasArticulos.LeerPorNumero((int)dgvCategorias.Rows[e.RowIndex].Cells[(int)ENumColDGVCategorias.Categoria].Value, ref InformacionDelError); if (ActualizarCategoria != null) { dgvCategorias.Rows[e.RowIndex].Cells[(int)ENumColDGVCategorias.Categoria].Value = ActualizarCategoria.Nombre; if (ActualizarCategoria.ParaCocina == (int)ClsCategoriasArticulos.EParaCocina.Si) { dgvCategorias.Rows[e.RowIndex].Cells[(int)ENumColDGVCategorias.SeEnvianCocina].Value = "SI"; } else { dgvCategorias.Rows[e.RowIndex].Cells[(int)ENumColDGVCategorias.SeEnvianCocina].Value = "NO"; } dgvCategorias.Sort(dgvCategorias.Columns[(int)ENumColDGVCategorias.Categoria], ListSortDirection.Ascending); } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } }
public void AgregarCategoria(CategoriaArticulo categoria) { //SqlConnection conexion = new SqlConnection(); //SqlCommand comando = new SqlCommand(); AccesoDatosManager accesoDatos = new AccesoDatosManager(); try { accesoDatos.SetearConsulta("insert into CATEGORIAS ( Nombre, Descripcion) values (@Nombre, @Descripcion)"); accesoDatos.Comando.Parameters.Clear(); accesoDatos.Comando.Parameters.AddWithValue("@Nombre", categoria.Nombre.ToString()); accesoDatos.Comando.Parameters.AddWithValue("@Descripcion", categoria.Descripcion.ToString()); accesoDatos.AbrirConexion(); accesoDatos.EjecutarAccion(); } catch (Exception ex) { throw ex; } finally { accesoDatos.CerrarConexion(); } }
private void CargarCategoria() { btnAceptar.Visible = false; BtnGuardarCambios.Visible = true; string InformacionDelError = string.Empty; ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos(); CategoriaArticulo CargarCategoria = CategoriasArticulos.LeerPorNumero(ID_Categoria, ref InformacionDelError); if (CargarCategoria != null) { txtNombreCategoria.Text = CargarCategoria.Nombre; if (CargarCategoria.ParaCocina == (int)ClsCategoriasArticulos.EParaCocina.Si) { rbnCocinaNo.Checked = false; rbnCocinaSi.Checked = true; } else { rbnCocinaNo.Checked = true; rbnCocinaSi.Checked = false; } } else if (InformacionDelError == string.Empty) { MessageBox.Show("Fallo al cargar la categoria", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); Close(); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); Close(); } }
/// <summary>Carga la carta con todos los articulos activos (incluyendo a los que su categoria fue eliminada)</summary> private void CargarDGVCarta(ClsArticulos.ETipoListado _TipoDeListado) { if (FormularioCargado) { string NombreArticulo = string.Empty; int ID_CategoriaFiltro = 0; if (cmbCategoria.SelectedValue != null) { CategoriaArticulo CategoriaSeleccionada = (CategoriaArticulo)cmbCategoria.SelectedItem; ID_CategoriaFiltro = CategoriaSeleccionada.ID_CategoriaArticulo; } if (txtBuscarPorNombre.Text != TEXTO_VISUAL_BUSCAR) { NombreArticulo = txtBuscarPorNombre.Text; } dgvCarta.Rows.Clear(); string InformacionDelError = string.Empty; ClsArticulos Articulos = new ClsArticulos(); List <Articulo> ListarArticulosActivos = Articulos.LeerListado(_TipoDeListado, ref InformacionDelError, ClsArticulos.ETipoListado.ArticulosActivos, NombreArticulo, ID_CategoriaFiltro); if (ListarArticulosActivos != null) { foreach (Articulo Elemento in ListarArticulosActivos) { int NumeroDeFila = dgvCarta.Rows.Add(); dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.ID_Articulo].Value = Elemento.ID_Articulo; dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Nombre].Value = Elemento.Nombre; dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Descripcion].Value = Elemento.Descripcion; dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Categoria].Value = Elemento.CategoriaArticulo.Nombre; if (Elemento.Precio == null) { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = "NO TIENE"; } else { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = Elemento.Precio; } if (Elemento.PrecioDelivery == null) { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = "NO TIENE"; } else { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = Elemento.PrecioDelivery; } if (ArticulosDeCartaMarcados.Count > 0) { foreach (int ElementoSecundario in ArticulosDeCartaMarcados) { if (ElementoSecundario == Elemento.ID_Articulo) { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = true; ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, true); break; } else { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false; ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, false); } } } else { dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false; ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, false); } } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar los articulos"); MessageBox.Show($"Ocurrio un fallo al intentar cargar los articulos de la carta", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar los articulos"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } dgvCarta.ClearSelection(); }
private void BtnGuardarCambios_Click(object sender, EventArgs e) { bool DatosValidos = true; string RegistroDeErrores = string.Empty; int AnchoFormInformacion = 100; txtNombreCategoria.Text = txtNombreCategoria.Text.Trim(); if (txtNombreCategoria.Text.Length < 3) { DatosValidos = false; RegistroDeErrores += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n"; AnchoFormInformacion += 50; } if (VerificarCategoriaRepetida(txtNombreCategoria.Text, ID_Categoria)) { DatosValidos = false; RegistroDeErrores += "El nombre de la categoria ya esta en uso.\r\n\r\n"; AnchoFormInformacion += 50; } if (DatosValidos) { txtNombreCategoria.Text = txtNombreCategoria.Text.Substring(0, 1).ToUpper() + txtNombreCategoria.Text.Remove(0, 1).ToLower(); string InformacionDelError = string.Empty; ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos(); CategoriaArticulo ActualizarCategoria = CategoriasArticulos.LeerPorNumero(ID_Categoria, ref InformacionDelError); if (ActualizarCategoria != null) { ActualizarCategoria.Nombre = txtNombreCategoria.Text; if (rbnCocinaSi.Checked) { ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.Si; } else { ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.No; } ClsDetalles Detalles = new ClsDetalles(); List <Detalle> SeEstaUsuandoLaCategoria = Detalles.LeerListado(-1, ClsDetalles.ETipoDeListado.CategoriaEnUso, ref InformacionDelError, ID_Categoria); if (SeEstaUsuandoLaCategoria.Count == 0) { if (CategoriasArticulos.Actualizar(ActualizarCategoria, ref InformacionDelError) != 0) { DialogResult = DialogResult.OK; Close(); } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"No se puede editar la categoria porque " + $"se esta usando para algun pedido en este momento.", ClsColores.Blanco, 200, 300)) { FormInformacion.ShowDialog(); } } } } else { using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300)) { FormInformacion.ShowDialog(); } } }
private void BtnAceptar_Click(object sender, EventArgs e) { bool DatosValidos = true; string RegistroDeErrores = string.Empty; int AnchoFormInformacion = 100; txtNombreCategoria.Text = txtNombreCategoria.Text.Trim(); if (txtNombreCategoria.Text.Length < 3) { DatosValidos = false; RegistroDeErrores += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n"; AnchoFormInformacion += 50; } if (VerificarCategoriaRepetida(txtNombreCategoria.Text, ID_Categoria)) { DatosValidos = false; RegistroDeErrores += "El nombre de la categoria ya esta en uso.\r\n\r\n"; AnchoFormInformacion += 50; } if (DatosValidos) { txtNombreCategoria.Text = txtNombreCategoria.Text.Substring(0, 1).ToUpper() + txtNombreCategoria.Text.Remove(0, 1).ToLower(); string InformacionDelError = string.Empty; ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos(); CategoriaArticulo NuevaCategoria = new CategoriaArticulo(); NuevaCategoria.Nombre = txtNombreCategoria.Text; NuevaCategoria.ID_EstadoCategoriaArticulo = (int)ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.Activo; if (rbnCocinaSi.Checked) { NuevaCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.Si; } else { NuevaCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.No; } DialogResult Confirmar = DialogResult.Cancel; Confirmar = MessageBox.Show($"¿Estas seguro que quieres crear la categoria '{NuevaCategoria.Nombre}' con esa " + $"seleccion de categoria para cocina (si/no)?", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (Confirmar == DialogResult.OK) { if (CategoriasArticulos.Crear(NuevaCategoria, ref InformacionDelError) != 0) { DialogResult = DialogResult.OK; Close(); } else if (InformacionDelError == string.Empty) { MessageBox.Show("Fallo al crear la categoria", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } else { using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300)) { FormInformacion.ShowDialog(); } } }
private void BtnGuardarCambios_Click(object sender, EventArgs e) { bool DatosValidos = true; string RegistroDeErrores = string.Empty; int AnchoFormInformacion = 100; CategoriaArticulo CategoriaArticulo = null; txtNombreArticulo.Text = txtNombreArticulo.Text.Trim(); txtDescripcion.Text = txtDescripcion.Text.Trim(); txtPrecio.Text = txtPrecio.Text.Trim(); if (txtNombreArticulo.Text.Length < 3) { DatosValidos = false; RegistroDeErrores += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n"; AnchoFormInformacion += 50; } if (txtPrecio.Text != string.Empty) { if (txtPrecio.Text.Substring(0, 1) == "," || txtPrecio.Text.Substring(txtPrecio.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecio.Text) < 10) { DatosValidos = false; RegistroDeErrores += "El campo 'Precio' debe ser mayor a $10 (verifique tambien que no tenga la " + "coma del centavo al principio o al final).\r\n\r\n"; AnchoFormInformacion += 50; } } if (txtPrecioDelivery.Text != string.Empty) { if (txtPrecioDelivery.Text.Substring(0, 1) == "," || txtPrecioDelivery.Text.Substring(txtPrecioDelivery.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecioDelivery.Text) < 10) { DatosValidos = false; RegistroDeErrores += "El campo 'Precio delivery' debe ser mayor a $10 (verifique tambien que no tenga la " + "coma del centavo al principio o al final).\r\n\r\n"; AnchoFormInformacion += 50; } } if (cmbCategoria.SelectedItem != null) { CategoriaArticulo = (CategoriaArticulo)cmbCategoria.SelectedItem; } else { DatosValidos = false; RegistroDeErrores += "Seleccione una categoria.\r\n\r\n"; AnchoFormInformacion += 50; } if (VerificarArticuloRepetido(txtNombreArticulo.Text, ID_Articulo)) { DatosValidos = false; RegistroDeErrores += "El nombre del articulo ya se encuentra en uso.\r\n\r\n"; AnchoFormInformacion += 50; } if (txtPrecio.Text == string.Empty && txtPrecioDelivery.Text == string.Empty) { DatosValidos = false; RegistroDeErrores += "El articulo debe tener un precio para carta o delivery.\r\n\r\n"; AnchoFormInformacion += 50; } if (DatosValidos) { txtNombreArticulo.Text = txtNombreArticulo.Text.Substring(0, 1).ToUpper() + txtNombreArticulo.Text.Remove(0, 1).ToLower(); if (txtDescripcion.Text != string.Empty) { txtDescripcion.Text = txtDescripcion.Text.Substring(0, 1).ToUpper() + txtDescripcion.Text.Remove(0, 1).ToLower(); } string InformacionDelError = string.Empty; ClsArticulos Articulo = new ClsArticulos(); Articulo ActualizarArticulo = new Articulo(); ActualizarArticulo.ID_Articulo = ID_Articulo; ActualizarArticulo.Nombre = txtNombreArticulo.Text; ActualizarArticulo.Descripcion = txtDescripcion.Text; if (txtPrecio.Text == string.Empty) { ActualizarArticulo.Precio = null; } else { ActualizarArticulo.Precio = Math.Round(Convert.ToDouble(txtPrecio.Text), 2); } if (txtPrecioDelivery.Text == string.Empty) { ActualizarArticulo.PrecioDelivery = null; } else { ActualizarArticulo.PrecioDelivery = Math.Round(Convert.ToDouble(txtPrecioDelivery.Text), 2); } ActualizarArticulo.ID_EstadoArticulo = (int)ClsEstadosArticulos.EEstadosArticulos.Activo; ActualizarArticulo.ID_CategoriaArticulo = CategoriaArticulo.ID_CategoriaArticulo; if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0) { DialogResult = DialogResult.OK; Close(); } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 400)) { FormInformacion.ShowDialog(); } } }
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; } }
public static void Agregar(CategoriaArticulo categoria) { Validar(categoria); PersistenciaCategoriaArticulo.Agregar(categoria); }
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; } }
/// <summary>Carga los articulos activos/inactivos.</summary> private void CargarDGVArticulos(ClsArticulos.ETipoListado _TipoDeEstado) { if (FormularioCargado) { dgvEstadoArticulo.Rows.Clear(); string NombreArticulo = string.Empty; int ID_CategoriaFiltro = 0; if (cmbCategoria.SelectedValue != null) { CategoriaArticulo CategoriaSeleccionada = (CategoriaArticulo)cmbCategoria.SelectedItem; ID_CategoriaFiltro = CategoriaSeleccionada.ID_CategoriaArticulo; } if (txtBuscarPorNombre.Text != TEXTO_VISUAL_COMBOBOX) { NombreArticulo = txtBuscarPorNombre.Text; } string InformacionDelError = string.Empty; ClsArticulos Articulos = new ClsArticulos(); List <Articulo> ListarArticulosActivos = Articulos.LeerListado(ClsArticulos.ETipoListado.Filtro, ref InformacionDelError, _TipoDeEstado, NombreArticulo, ID_CategoriaFiltro); if (ListarArticulosActivos != null) { foreach (Articulo Elemento in ListarArticulosActivos) { int NumeroDeFila = dgvEstadoArticulo.Rows.Add(); dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.ID_Articulo].Value = Elemento.ID_Articulo; dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Nombre].Value = Elemento.Nombre; dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Descripcion].Value = Elemento.Descripcion; dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Categoria].Value = Elemento.CategoriaArticulo.Nombre; if (Elemento.Precio == null) { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.PrecioCarta].Value = "NO TIENE"; } else { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.PrecioCarta].Value = Elemento.Precio; } if (Elemento.PrecioDelivery == null) { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.PrecioDelivery].Value = "NO TIENE"; } else { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.PrecioDelivery].Value = Elemento.PrecioDelivery; } if (ArticulosDeCartaMarcados.Count > 0) { foreach (int ElementoSecundario in ArticulosDeCartaMarcados) { if (ElementoSecundario == Elemento.ID_Articulo) { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = true; ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, true); break; } else { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = false; ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, false); } } } else { dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = false; ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, false); } } UltimaFilaSeleccionada = -1; dgvEstadoArticulo.Sort(dgvEstadoArticulo.Columns[(int)ENumColDGVEstadoArticulo.Categoria], ListSortDirection.Ascending); dgvEstadoCategoria.ClearSelection(); } else if (InformacionDelError == string.Empty) { MessageBox.Show("Fallo al cargar los articulos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
public static void Modificar(CategoriaArticulo categoria) { Validar(categoria); PersistenciaCategoriaArticulo.Modificar(categoria); }