private void rdProductoCompuesto_CheckedChanged(object sender, EventArgs e) { DataTable data = Produto_compuesto.getCompuestos(); if (data == null) { Funciones.mError(this, ""); } else { dt_RecetaDetalle.DataSource = data; } }
//boton guardar producto private void btn_guardar_Click(object sender, EventArgs e) { MensajeError v = new MensajeError(); //variables de producto int id = 0, categoria = 2; float p_venta = 0, p_costo = 0; string nombre = "Sin nombre", descripcion = "Sin descripción"; //VALIDACIONES - CONVERSIONES // conversion del id a int, validacion que no sea null try { id = Convert.ToInt32(txtId.Text); v.setResultado(true); } catch (Exception) { v.setResultado(false); v.mensaje_error("Error con el CÓDIGO del producto, no puede estar en blanco\n"); } //validacion longitud > 2 nombre producto if (Funciones.length(txtNombre.Text.Trim())) { nombre = txtNombre.Text.Trim(); } else { v.setResultado(false); v.mensaje_error("NOMBRE de producto incorrecto, debe contener al menos 3 carácteres\n"); } //validacion longitud > 2 descripcion producto en caso que tenga if (Funciones.isNull(txtDescripcion.Text.Trim())) { descripcion = "Sin descripción"; } else { if (Funciones.length(txtDescripcion.Text.Trim())) { descripcion = txtDescripcion.Text.Trim(); } else { v.setResultado(false); v.mensaje_error("DESCRIPCIÓN de producto incorrecto, debe contener al menos 3 carácteres\n"); } } // conversion de la categoria a int try { categoria = Convert.ToInt32(comboCategoria.SelectedValue); } catch (Exception) { v.setResultado(false); v.mensaje_error("Error al seleccionar la CATEGORÍA\n"); } // conversion del precio de venta a float try { p_venta = float.Parse(txtPrecioVenta.Text, CultureInfo.InvariantCulture.NumberFormat); if (p_venta == 0 && rdbtnSi.Checked) { v.setResultado(false); v.mensaje_error("El precio de VENTA no puede ser '0.00', utilize solo un '.' para los decimales\n"); } } catch (Exception) { v.setResultado(false); v.mensaje_error("El precio de VENTA no puede estar vacío, utilize '.' para los decimales\n"); } // conversion del precio de costo a float en caso que tenga if (Funciones.isNull(txtPrecioCosto.Text.Trim())) { p_costo = 0; } else { try { p_costo = float.Parse(txtPrecioCosto.Text, CultureInfo.InvariantCulture.NumberFormat); } catch (Exception ex) { v.setResultado(false); v.mensaje_error("Utilize '.' para los decimales, en el precio de COSTO\n"); } } if (rb_simple.Checked) //si se esta ingresando un producto simple se crea un objeto Producto_simple { string marca = "Sin marca"; int stock = 0, stock_min = 0; //validacion longitud > 2 marca producto en caso que tenga if (Funciones.isNull(txtMarca.Text.Trim())) { marca = "Sin marca"; } else { if (Funciones.length(txtMarca.Text.Trim())) { marca = txtMarca.Text.Trim(); } else { v.setResultado(false); v.mensaje_error("MARCA de producto incorrecta, debe contener al menos 3 carácteres\n"); } } // conversion del sotck a int en caso que tenga if (Funciones.isNull(txtStock.Text)) { stock = 0; } else { try { stock = Convert.ToInt32(txtStock.Text); } catch (Exception) { v.setResultado(false); v.mensaje_error("El STOCK deber ser un número entero\n"); } } // conversion del sotck minimo a int en caso que tenga if (Funciones.isNull(txtStockMinimo.Text)) { stock_min = 0; } else { try { stock = Convert.ToInt32(txtStockMinimo.Text); } catch (Exception) { v.setResultado(false); v.mensaje_error("El STOCK MÍNIMO deber ser un número entero\n"); } } // SI LAS VALIDACIONES SON CORRECTAS CREA UN OBJETO PRODUCTO_SIMPLE Y LO GUARDA DE LO CONTRARIO MUESTRA LOS MENSAJES DE ERROR if (v.getResultado()) { Producto_simple ps = new Producto_simple(id, nombre, descripcion, categoria, p_venta, p_costo, rdbtnSi.Checked, marca, stock, stock_min); if (Bandera1 == 1) { if (ps.updateProductoSimple()) { Funciones.mOk(this, "Producto modificado correctamente"); this.DialogResult = DialogResult.OK; this.Close(); } else { Funciones.mError(this, "Error al modificar el producto"); } } else { if (ps.guardar()) { Funciones.mOk(this, "Producto guardado correctamente"); inicializarDatos(); ActualizarProductos(); } else { Funciones.mError(this, "Error al guardar el producto"); } } } else { Funciones.mError(this, v.toString()); } } else { if (v.getResultado()) { Produto_compuesto pc = new Produto_compuesto(id, nombre, descripcion, categoria, p_venta, p_costo, rdbtnSi.Checked); if (Bandera1 == 1) { if (pc.updateProductoCompuesto()) { if (Funciones.mConsulta(this, "Producto modificado correctamente\nDesea cargar una receta para este producto?")) { panel_producto.Enabled = false; pane_receta.Enabled = true; this.DialogResult = DialogResult.OK; } else { this.DialogResult = DialogResult.OK; this.Close(); } } else { Funciones.mError(this, "Error al modificar el producto"); } } else { if (pc.GuardarProducto_compuesto()) { Funciones.mOk(this, "Producto guardado correctamente"); pane_receta.Enabled = true; txtNombreReceta.Text = "Mi receta"; panel_producto.Enabled = false; txtNombre_producto.Text = txtNombre.Text; } else { Funciones.mError(this, "Error al guardar el producto"); } } } else { Funciones.mError(this, v.toString()); } } }