/// <summary> /// Se encarga de seleccionar un Articulo de acuerdo al ID ingresado /// </summary> ///<param name="id">EL ID unico del Articulo a consultar</param> ///<returns>Objeto de tipo Articulo</returns> public static Articulo SeleccionarPorId(int id) { using (IDataBase db = FactoryDatabase.CreateDefaultDataBase()) { SqlCommand comando = new SqlCommand(); comando.CommandType = System.Data.CommandType.StoredProcedure; comando.CommandText = "PA_SeleccionarArticuloPorID"; comando.Parameters.AddWithValue("@id", id); DataSet ds = db.ExecuteDataSet(comando); foreach (DataRow dr in ds.Tables[0].Rows) { Articulo art = null; //Se crea el objeto transporte de acuerdo a su tipo FactoryArticulo fa = new FactoryArticulo(); art = fa.CrearArticulo((SeleccionarTipoArticuloPorID((int)dr["TIPO_ARTICULO_ID"]))); // Se agregan las propiedades especificas de cada if (art is Producto) { (art as Producto).Precio = (double)dr["PRECIO"]; } if (art is CupoDescuento) { (art as CupoDescuento).PorcentajeDescuento = ((int)dr["CUPON_DESCUENTO_PORCENTAJE"]) / 100.0d; (art as CupoDescuento).FechaVencimiento = (DateTime)dr["FECHA_VENCIMIENTO"]; (art as CupoDescuento).Codigo_QR = dr["CODIGO_QR"].ToString(); } if (art is CuponProductoGratis) { (art as CuponProductoGratis).IDProducto = (int)dr["PRODUCTO_GRATIS_ID"]; (art as CuponProductoGratis).FechaVencimiento = (DateTime)dr["FECHA_VENCIMIENTO"]; (art as CuponProductoGratis).Codigo_QR = dr["CODIGO_QR"].ToString(); } art.Id = (int)dr["ARTICULO_ID"]; art.UsuarioId = (int)dr["USUARIO_ID"]; art.Descripcion = dr["DESCRIPCION"].ToString(); art.Fotografia = Util.ConvertirImagen((byte[])dr["FOTOGRAFIA"]); art.Nombre = dr["NOMBRE"].ToString(); art.Activo = dr["Activo"].ToString().ToLower().Equals("activo"); return(art); } } return(null); }
private void btnGuardar_Click(object sender, EventArgs e) { try { if (btnGuardar.Text.Equals("Guardar")) { if (Validar()) { FactoryArticulo fArticulo = new FactoryArticulo(); ArticuloLN articuloLN = new ArticuloLN(); Articulo _Articulo = null; // Obtener las propiedades generales string nombre = txtNombre.Text; string descripcion = txtDescripcion.Text; Image imagen = pbImagen.Image; // Crear el objeto articulo dependiendo de los seleccionado por el usuario if (rbProducto.Checked) { _Articulo = fArticulo.CrearArticulo(TipoArticulo.Producto); // Obtener las propiedades unicas double precio = Convert.ToDouble(txtPrecio.Text); _Articulo.Nombre = nombre; _Articulo.Descripcion = descripcion; _Articulo.Fotografia = imagen; (_Articulo as Producto).Precio = precio; // Insertar el producto a la base de datos articuloLN.InsertarProducto((_Articulo as Producto), _Negocio.Id); } if (rbDescuento.Checked) { _Articulo = fArticulo.CrearArticulo(TipoArticulo.CuponDescuento); // Obtener las propiedades unicas string codigoQRDesc = Util.DecodificarQR(pbQR.Image); DateTime fechaV = dtpFechaV.Value; double porcenteje = Convert.ToDouble(txtPorcentaje.Text); _Articulo.Nombre = nombre; _Articulo.Descripcion = descripcion; _Articulo.Fotografia = imagen; (_Articulo as CupoDescuento).FechaVencimiento = fechaV; (_Articulo as CupoDescuento).Codigo_QR = codigoQRDesc; (_Articulo as CupoDescuento).PorcentajeDescuento = porcenteje; // Insertar el producto a la base de datos articuloLN.InsertarCuponDescuento((_Articulo as CupoDescuento), _Negocio.Id); } if (rbProductoGratis.Checked) { _Articulo = fArticulo.CrearArticulo(TipoArticulo.CuponProductoGratis); // Obtener las propiedades unicas string codigoQRGratis = Util.DecodificarQR(pbQR2.Image); DateTime fechaV = dtpFechaV2.Value; int productoId = (int)cmbProductos.SelectedValue; _Articulo.Nombre = nombre; _Articulo.Descripcion = descripcion; _Articulo.Fotografia = imagen; (_Articulo as CuponProductoGratis).FechaVencimiento = fechaV; (_Articulo as CuponProductoGratis).Codigo_QR = codigoQRGratis; (_Articulo as CuponProductoGratis).IDProducto = productoId; // Insertar el producto a la base de datos articuloLN.InsertarCuponProd((_Articulo as CuponProductoGratis), _Negocio.Id); } MessageBox.Show(this, "Agregado exitosamente", "Felicidades", MessageBoxButtons.OK, MessageBoxIcon.Information); log.Info("El negocio: " + _Negocio.Nombre + " agrego un nuevo producto"); Refrescar(); } else { MessageBox.Show(this, "Ocurrió un error al validar los campos, asegurese de que todos los campos esten correctos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { if (Validar()) { // Obtener las propiedades generales string nombre = txtNombre.Text; string descripcion = txtDescripcion.Text; Image imagen = pbImagen.Image; // Crear el objeto articulo dependiendo de los seleccionado por el usuario if (rbProducto.Checked) { // Obtener las propiedades unicas double precio = Convert.ToDouble(txtPrecio.Text); articulo.Nombre = nombre; articulo.Descripcion = descripcion; articulo.Fotografia = imagen; (articulo as Producto).Precio = precio; // Insertar el producto a la base de datos articuloLN.ActualizarProducto((articulo as Producto)); } if (rbDescuento.Checked) { // Obtener las propiedades unicas string codigoQRDesc = Util.DecodificarQR(pbQR.Image); DateTime fechaV = dtpFechaV.Value; double porcenteje = Convert.ToDouble(txtPorcentaje.Text); articulo.Nombre = nombre; articulo.Descripcion = descripcion; articulo.Fotografia = imagen; (articulo as CupoDescuento).FechaVencimiento = fechaV; (articulo as CupoDescuento).Codigo_QR = codigoQRDesc; (articulo as CupoDescuento).PorcentajeDescuento = porcenteje; // Insertar el producto a la base de datos articuloLN.ActualizarCuponDescuento((articulo as CupoDescuento)); } if (rbProductoGratis.Checked) { // Obtener las propiedades unicas string codigoQRGratis = Util.DecodificarQR(pbQR2.Image); DateTime fechaV = dtpFechaV2.Value; int productoId = (int)cmbProductos.SelectedValue; articulo.Nombre = nombre; articulo.Descripcion = descripcion; articulo.Fotografia = imagen; (articulo as CuponProductoGratis).FechaVencimiento = fechaV; (articulo as CuponProductoGratis).Codigo_QR = codigoQRGratis; (articulo as CuponProductoGratis).IDProducto = productoId; // Insertar el producto a la base de datos articuloLN.ActualizarCuponProd((articulo as CuponProductoGratis)); } MessageBox.Show(this, "Actualizado exitosamente", "Felicidades", MessageBoxButtons.OK, MessageBoxIcon.Information); log.Info("El negocio: " + _Negocio.Nombre + " modifico un producto"); Refrescar(); } else { MessageBox.Show(this, "Ocurrió un error al validar los campos, asegurese de que todos los campos esten correctos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } LimpiarCampos(); tabControl.SelectedIndex = 0; } catch (Exception error) { MessageBox.Show(this, "Ocurrió un error al validar los campos, asegurese de que todos los campos esten correctos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); StringBuilder msg = new StringBuilder(); msg.AppendFormat("No se pudo guardar/actualizar el producto\n"); msg.AppendFormat("Message: {0}\n", error.Message); msg.AppendFormat("Source: {0}\n", error.Source); msg.AppendFormat("Data: {0}\n", error.Data); //Salvar el error en el log log.Error(msg.ToString()); } }