예제 #1
0
        public void disminuirInventario()
        {
            //Disminuir el inventario del producto a facturar
            Producto p = new Producto();

            p.nombre           = productoDetallar.nombre;
            p.idProducto       = productoDetallar.idProducto;
            p.idCategoria      = productoDetallar.idCategoria;
            p.idProveedor      = productoDetallar.idProveedor;
            p.fechaIngreso     = productoDetallar.fechaIngreso;
            p.fechaVencimiento = productoDetallar.fechaVencimiento;
            p.estado           = productoDetallar.estado;
            p.precio           = precioDelProducto;
            p.cantidad         = nuevoInventario;
            prodl.ModificarProducto(p);
            nuevoInventario   = 0;
            precioDelProducto = 0;
        }
        private void btnModificarProducto_Click(object sender, EventArgs e)
        {
            //verificar si hay campos nulos
            if (txtCodigo.Text == "" || txtNombre.Text == "" || txtPrecio.Text == "")
            {
                lblMensaje.ForeColor = Color.Red;
                lblMensaje.Text      = "Por favor, complete los campos correspondientes para realizar su modificación";
            }
            else
            {
                Producto p1 = (Producto)dgvProducto.Rows[dgvProducto.SelectedRows[0].Index].DataBoundItem;

                //crear la instancia de producto
                Producto p = new Producto();
                p.idProducto = p1.idProducto;
                p.nombre     = txtNombre.Text;

                //si la cantidad de productos aumentó
                if (p1.cantidad < Convert.ToInt32(nudCantidad.Value))
                {
                    p.cantidad     = Convert.ToInt32(nudCantidad.Value);
                    p.fechaIngreso = DateTime.Now.ToString("dd/MM/yyyy");
                }
                else
                {
                    //si la cantidad de productos va a disminuir
                    if (p1.cantidad > Convert.ToInt32(nudCantidad.Value))
                    {
                        lblMensaje.ForeColor = Color.Red;
                        lblMensaje.Text      = "No es posible modificar la cantidad actual con otra cantidad menor";
                        return;
                    }
                    else
                    {
                        //si la cantidad de productos se mantiene igual
                        if (p1.cantidad == Convert.ToInt32(nudCantidad.Value))
                        {
                            p.cantidad     = p1.cantidad;
                            p.fechaIngreso = p1.fechaIngreso;
                        }
                    }
                }

                p.fechaVencimiento = dtpFechaVencimiento.Value.ToString("dd/MM/yyyy");
                p.idCategoria      = Convert.ToInt32(cboCategoria.SelectedValue);
                p.idProveedor      = cboProveedor.SelectedValue.ToString();

                if (cboEstado.SelectedIndex == 0)
                {
                    p.estado = p1.estado;
                }

                if (cboEstado.SelectedIndex == 1)
                {
                    p.estado = 1;
                }

                if (cboEstado.SelectedIndex == 2)
                {
                    p.estado = 2;
                }

                if (cboEstado.SelectedIndex == 3)
                {
                    p.estado = p1.estado;
                }

                try
                {
                    //verifica si el precio fue digitado con números
                    double preVal = Convert.ToDouble(txtPrecio.Text);

                    //verifica si el valor de ganancia sufrió un cambio y se vuelve a calcular el precio
                    if (ind == true)
                    {
                        p.precio = pl.precioRealProducto(Convert.ToDouble(txtPrecio.Text), Convert.ToDouble(nudGanancia.Value));
                    }
                    else
                    {
                        p.precio = p1.precio;
                    }

                    //modifica el producto
                    pl.ModificarProducto(p);
                    refrescar();
                    lblMensaje.ForeColor = Color.Green;
                    lblMensaje.Text      = "Producto modificado exitosamente";
                    ind = false;
                }
                catch (Exception)
                {
                    lblMensaje.ForeColor = Color.Red;
                    lblMensaje.Text      = "El campo precio debe contener valores numéricos";
                    return;
                }
            }
        }