private void rdProductoCompuesto_CheckedChanged(object sender, EventArgs e)
        {
            DataTable data = Produto_compuesto.getCompuestos();

            if (data == null)
            {
                Funciones.mError(this, "");
            }
            else
            {
                dt_RecetaDetalle.DataSource = data;
            }
        }
Exemple #2
0
        //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());
                }
            }
        }