Esempio n. 1
0
 private void CargaGrid() // Funcion encargada de cargar el Grid
 {
     DetalleDataGridView.DataSource = null;
     DetalleDataGridView.DataSource = this.Detalle;
     FormatoDataGridView();
     CalcularTotal();
     DetalleDataGridView.ClearSelection();
 }
Esempio n. 2
0
        private bool SiProductoExiste() //Valida si existe un producto en la factura
        {
            bool Existe   = false;
            int  Posicion = 0;

            foreach (DataGridViewRow Producto in DetalleDataGridView.Rows) //BUsca por el id del producto si este se encuentra en el detalle
            {
                if (ProductoIdNumericUpDown.Value == Convert.ToInt32(Producto.Cells["ProductoId"].Value))
                {
                    Existe   = true;
                    Posicion = Convert.ToInt32(Producto.Index);
                    break;
                }
            }

            if (Existe) //SI estan en el detalle entonces
            {
                var result = MessageBox.Show("Este producto ya se encuentra en la factura, ¿Desea modificarlo?", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                if (result == DialogResult.Yes)
                {
                    ProductoIdNumericUpDown.Value = Convert.ToInt32(DetalleDataGridView.Rows[Posicion].Cells["ProductoId"].Value);
                    DescripcionTextBox.Text       = DetalleDataGridView.Rows[Posicion].Cells["DescripcionProducto"].Value.ToString();
                    CantidadNumericUpDown.Value   = Convert.ToInt32(DetalleDataGridView.Rows[Posicion].Cells["Cantidad"].Value);
                    PrecioNumericUpDown.Value     = Convert.ToDecimal(DetalleDataGridView.Rows[Posicion].Cells["Precio"].Value);
                    ImporteTextBox.Text           = DetalleDataGridView.Rows[Posicion].Cells["Importe"].Value.ToString();
                    DetalleDataGridView.ClearSelection();

                    List <DetalleFacturas> items = new List <DetalleFacturas>(); //Crea una lista con todos los productos, exepto el que va a modificar
                    foreach (DataGridViewRow dr in DetalleDataGridView.Rows)     //Llena la lista
                    {
                        DetalleFacturas Producto = new DetalleFacturas();
                        Producto.ProductoId = (int)dr.Cells["ProductoId"].Value;
                        if (Producto.ProductoId != (int)ProductoIdNumericUpDown.Value)//Impide que el producto a modificar entre en la lista
                        {
                            Producto.DetalleFacturaId    = (int)dr.Cells["DetalleFacturaId"].Value;
                            Producto.FacturaId           = (int)dr.Cells["FacturaId"].Value;
                            Producto.Cantidad            = (int)dr.Cells["Cantidad"].Value;
                            Producto.DescripcionProducto = dr.Cells["DescripcionProducto"].Value.ToString();
                            Producto.Precio  = Convert.ToInt32(dr.Cells["Precio"].Value);
                            Producto.Importe = Convert.ToInt32(dr.Cells["Importe"].Value);

                            items.Add(Producto);
                        }
                    }

                    this.Detalle = items;//Iguala el detalle a la lista si el producto se va a modificar
                    CargaGrid();
                }
                else
                {
                    LimpiarProductoGroupBox();
                }
            }

            return(Existe);
        }