private void btnAgregarArt_Click(object sender, EventArgs e) { // Verifico que se hayan elegido punto de compra y almacén para poder continuar if (cboPunto.SelectedIndex == -1 || cboAlmacen.SelectedIndex == -1 || cboMotivos.SelectedIndex == -1) { // Informo que faltan los datos y devuelvo el control al usuario MessageBox.Show("Debe seleccionar Punto de Venta, Almacén y Condición de compra", "VERIFICAR", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Creo una variable que guarda el largo del vector de Ids int LargoInsumos = clsGlobales.InsumosSeleccionados.GetLength(0); int LargoProductos = clsGlobales.ProductosSeleccionados.GetLength(0); // Si la grilla tiene filas, cargo a las matrices las cantidades cargadas if (!(dgvDetalleOrden.RowCount == 0)) { // Comienzo a recorrer la grilla foreach (DataGridViewRow row in dgvDetalleOrden.Rows) { // Si el campo Cantidad no es nulo o 0, asigo el valor al elemento que corresponde en la matriz de ese elemento if (!(row.Cells["Cantidad"].Value == null || Convert.ToDecimal(row.Cells["Cantidad"].Value) == 0)) { // Si el artículo es de la tabla insumos if (row.Cells["Tabla"].Value.Equals("INSUMOS")) { // Recorro la matriz y cuando el Id del artículo coincida, le paso la cantidad for (int i = 0; i < LargoInsumos; i++) { // Si encuentro el Id de la fila en la matriz if (Convert.ToDouble(row.Cells["IdArticulo"].Value) == clsGlobales.InsumosSeleccionados[i, 0]) { // Asigo en valor de cantidad del vector a la columna de la grilla clsGlobales.InsumosSeleccionados[i, 1] = Convert.ToDouble(row.Cells["Cantidad"].Value); // salgo del for break; } } } // Si el artículo es de la tabla insumos if (row.Cells["Tabla"].Value.Equals("PRODUCTOS")) { // Recorro la matriz y cuando el Id del artículo coincida, le paso la cantidad for (int i = 0; i < LargoProductos; i++) { // Si encuentro el Id de la fila en la matriz if (Convert.ToDouble(row.Cells["IdArticulo"].Value) == clsGlobales.ProductosSeleccionados[i, 0]) { // Asigo en valor de cantidad del vector a la columna de la grilla clsGlobales.ProductosSeleccionados[i, 1] = Convert.ToDouble(row.Cells["Cantidad"].Value); // salgo del for break; } } } } } } // Vacío el source de la grilla dgvDetalleOrden.DataSource = null; // Creo un nuevo formulario de la clase y lo instancio frmArticulosBuscar myForm = new frmArticulosBuscar(true, true); // Muestro el formulario myForm.ShowDialog(); // Creo una variable que va a almacenar los Id de los proveedores seleccionados string sArt = ""; // Creo una variable que guarda el largo del vector de Ids LargoInsumos = clsGlobales.InsumosSeleccionados.GetLength(0); LargoProductos = clsGlobales.ProductosSeleccionados.GetLength(0); // Verifico el largo del vector con los Id para ver si tiene datos if (!(LargoInsumos == 0)) { // Le agrego una como a la cadena para agregarles nuevos // sArt = sArt + ","; // Recorro el vector y le paso los datos a mi string de Ids for (int i = 0; i < LargoInsumos; i++) { // Si no es el último if (!(i == LargoInsumos - 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.InsumosSeleccionados[i, 0].ToString() + ","; } // Si es el último else { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.InsumosSeleccionados[i, 0].ToString(); } } } if (!(LargoProductos == 0)) { // Pregunto si hay insumos en su vector if (LargoInsumos > 0) { // Le agrego una como a la cadena para agregarles nuevos sArt = sArt + ","; } // Recorro el vector y le paso los datos a mi string de Ids for (int i = 0; i < LargoProductos; i++) { // Si no es el último if (!(i == LargoProductos - 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.ProductosSeleccionados[i, 0].ToString() + ","; } // Si es el último else { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.ProductosSeleccionados[i, 0].ToString(); } } } // si hay cargados productos o insumos en los vectores if (!(clsGlobales.InsumosSeleccionados.Length == 0) || !(clsGlobales.ProductosSeleccionados.Length == 0)) { // Armo la cadena SQL myCadenaSQL = "select * from Articulos_Insumos_Productos where IdArticulo in (" + sArt + ")"; // Creo una tabla que me va a almacenar el resultado de la consulta DataTable myTabla = clsDataBD.GetSql(myCadenaSQL); // Evito que el dgv genere columnas automáticas dgvDetalleOrden.AutoGenerateColumns = false; // Asigno la tabla al source de la grilla de proveedores dgvDetalleOrden.DataSource = myTabla; // Habilito la carga de artículos if (dgvDetalleOrden.RowCount > 0 && !(Convert.ToInt32(cboPunto.SelectedValue) == -1) && !(Convert.ToInt32(cboAlmacen.SelectedValue) == -1) && !(Convert.ToInt32(cboMotivos.SelectedValue) == -1)) { gpbArticulos.Enabled = true; } // Si la grilla tiene artículos if (dgvDetalleOrden.RowCount > 0) { // Habilito el botón quitar btnQuitarArt.Enabled = true; // Creo un contador int fila = 1; // Recorro la grilla foreach (DataGridViewRow row in dgvDetalleOrden.Rows) { // Asigno el valor del contador al Item de la fila row.Cells["Item"].Value = fila; // Si el artículo es de la tabla insumos if (row.Cells["Tabla"].Value.Equals("INSUMOS")) { // Recorro el vector de insumos for (int i = 0; i < LargoInsumos; i++) { // Si el Id del articulo coincide con el del vector, le cargo la cartidad if (Convert.ToDouble(row.Cells["IdArticulo"].Value) == clsGlobales.InsumosSeleccionados[i, 0]) { // Asigo en valor de cantidad del vector a la columna de la grilla row.Cells["Cantidad"].Value = clsGlobales.InsumosSeleccionados[i, 1].ToString("#0.00"); // salgo del for break; } } } // Si el artículo es de la tabla productos if (row.Cells["Tabla"].Value.Equals("PRODUCTOS")) { // Recorro el vector de insumos for (int i = 0; i < LargoProductos; i++) { // Si el Id del articulo coincide con el del vector, le cargo la cartidad if (Convert.ToDouble(row.Cells["IdArticulo"].Value) == clsGlobales.ProductosSeleccionados[i, 0]) { // Asigo en valor de cantidad del vector a la columna de la grilla row.Cells["Cantidad"].Value = clsGlobales.ProductosSeleccionados[i, 1].ToString("#0.00"); // salgo del for break; } } } // Incremento el contador fila++; } // Habilito el botón aceptar btnAceptar.Enabled = true; // Paso el foco a la grilla dgvDetalleOrden.Focus(); // Pongo el foco en el campo cantidad dgvDetalleOrden.CurrentCell = dgvDetalleOrden["Cantidad", 0]; } } }
private void btnAgregarArt_Click(object sender, EventArgs e) { // Creo una variable que guarda el largo del vector de Ids int LargoInsumos = clsGlobales.InsumosSeleccionados.GetLength(0); int LargoProductos = clsGlobales.ProductosSeleccionados.GetLength(0); // Creo un nuevo formulario de la clase y lo instancio frmArticulosBuscar myForm = new frmArticulosBuscar(true, true); // Muestro el formulario myForm.ShowDialog(); // Creo una variable que va a almacenar los Id de los proveedores seleccionados string sArt = ""; // Creo una variable que guarda el largo del vector de Ids LargoInsumos = clsGlobales.InsumosSeleccionados.GetLength(0); LargoProductos = clsGlobales.ProductosSeleccionados.GetLength(0); // Verifico el largo del vector con los Id para ver si tiene datos if (!(LargoInsumos == 0)) { // Le agrego una como a la cadena para agregarles nuevos // sArt = sArt + ","; // Recorro el vector y le paso los datos a mi string de Ids for (int i = 0; i < LargoInsumos; i++) { // Si no es el último if (!(i == LargoInsumos - 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.InsumosSeleccionados[i, 0].ToString() + ","; } // Si es el último else { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.InsumosSeleccionados[i, 0].ToString(); } } } if (!(LargoProductos == 0)) { // Pregunto si hay insumos en su vector if (LargoInsumos > 0) { // Le agrego una como a la cadena para agregarles nuevos sArt = sArt + ","; } // Recorro el vector y le paso los datos a mi string de Ids for (int i = 0; i < LargoProductos; i++) { // Si no es el último if (!(i == LargoProductos - 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.ProductosSeleccionados[i, 0].ToString() + ","; } // Si es el último else { // Paso a string el Id del proveedor y lo ingreso a la cadena sArt = sArt + clsGlobales.ProductosSeleccionados[i, 0].ToString(); } } } // si hay cargados productos o insumos en los vectores if (!(clsGlobales.InsumosSeleccionados.Length == 0) || !(clsGlobales.ProductosSeleccionados.Length == 0)) { // Armo la cadena SQL myCadenaSQL = "select * from Articulos_Insumos_Productos_1 where IdArticulo in (" + sArt + ")"; // Creo una tabla que me va a almacenar el resultado de la consulta DataTable myTablaAux = clsDataBD.GetSql(myCadenaSQL); // Asigno la tabla al source de la grilla de proveedores /*int x = 0;*/ // Variables para formatear el pasaje de precio y cantidad a los datable y de ahí a la grilla double auxPrecio = 0; //Limpiar grilla detalle this.dgvDetalle.Rows.Clear(); // Bandera que me dice si el Id del artículo original está en el vector bool banderaOriginal = false; // recorro la nueva tabla de artículos y compara los Ids con los originales foreach (DataRow row in myTablaAux.Rows) { banderaOriginal = false; // Recorro la tabla original y compar los Id foreach (DataRow rowO in myTabla.Rows) { // Verifico los Ids de la grilla original con los datos de la selección de artículos // Si son iguales, quiere decir que el artículo seleccionado ya estaba en la grilla originial if (Convert.ToInt32(row["IdArticulo"]) == Convert.ToInt32(rowO["IdArticulo"])) { // Cambio el estado de la bandera banderaOriginal = true; } } auxPrecio = Convert.ToDouble(row["Precio"]); // Creo una nueva fila para la grilla dgvDetalle.Rows.Add(); // Cuento las filas de la grilla int Filas = dgvDetalle.Rows.Count; // Si la grilla no está vacía if (Filas > 0) { // Posiciono la grilla en la última fila dgvDetalle.CurrentCell = dgvDetalle[0, Filas - 1]; } //Cargo los datos a la grilla dgvDetalle.CurrentRow.Cells["IdArticulo"].Value = row["IdArticulo"]; dgvDetalle.CurrentRow.Cells["CodigoArticulo"].Value = row["CodigoArticulo"]; dgvDetalle.CurrentRow.Cells["Articulo"].Value = row["Articulo"]; dgvDetalle.CurrentRow.Cells["Unidad"].Value = row["AbreviaturaUnidad"]; dgvDetalle.CurrentRow.Cells["Stock"].Value = row["Stock"]; dgvDetalle.CurrentRow.Cells["Tabla"].Value = row["Tabla"]; // Si es una factura con órdenes de compra } // Asigno el source a la grilla //dgvDetalleFactura.DataSource = myTabla; // Si la grilla tiene artículos if (dgvDetalle.RowCount > 0) { // Habilito la carga de artículos gpbArticulos.Enabled = true; // Habilito el botón quitar btnQuitarArt.Enabled = true; // Creo un contador int fila = 1; // Recorro la grilla foreach (DataGridViewRow row in dgvDetalle.Rows) { // Asigno el valor del contador al Item de la fila row.Cells["Item"].Value = fila; // Incremento el contador fila++; } //Activar Botones this.ActivarBotones(); // Paso el foco a la grilla dgvDetalle.Focus(); } } }
private void txtCodigo_DoubleClick(object sender, EventArgs e) { // if (BanderaBuscar==true) { // Vacío de datos el vector de los Productos clsGlobales.ProductosSeleccionados = (double[, ])clsValida.ResizeMatriz(clsGlobales.ProductosSeleccionados, new int[] { 0, 2 }); // Vacío de datos el vector de los Productos clsGlobales.InsumosSeleccionados = (double[, ])clsValida.ResizeMatriz(clsGlobales.InsumosSeleccionados, new int[] { 0, 2 }); // Si la llamada viene desde Insumos if (Tipo == "INSUMOS") { frmArticulosBuscar myForm = new frmArticulosBuscar(true, false); myForm.ShowDialog(); int LargoInsumos = clsGlobales.InsumosSeleccionados.GetLength(0); // si hay cargados productos o insumos en los vectores if (!(clsGlobales.InsumosSeleccionados.Length / 2 == 0) && !((clsGlobales.InsumosSeleccionados.Length / 2) > 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena dIdArticulo = clsGlobales.InsumosSeleccionados[0, 0]; // Armo la cadena SQL string myCadenaSQL = "select * from Articulos_Insumos_Productos where IdArticulo = " + dIdArticulo; // Creo una tabla que me va a almacenar el resultado de la consulta DataTable myTablaAux = clsDataBD.GetSql(myCadenaSQL); // Recorro la tabla y paso los datos del Artículo a un datarow foreach (DataRow row in myTablaAux.Rows) { txtCodigo.Text = row["CodigoArticulo"].ToString(); txtProducto.Text = row["Articulo"].ToString(); } // Pongo el foco en el campo cantidad cboMotivo.Focus(); } else { MessageBox.Show("Debe seleccionarse un Artículo", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { frmArticulosBuscar myForm = new frmArticulosBuscar(false, true); myForm.ShowDialog(); int LargoProductos = clsGlobales.ProductosSeleccionados.GetLength(0); // si hay cargados productos o insumos en los vectores if (!(clsGlobales.ProductosSeleccionados.Length / 2 == 0) && !((clsGlobales.ProductosSeleccionados.Length / 2) > 1)) { // Paso a string el Id del proveedor y lo ingreso a la cadena dIdArticulo = clsGlobales.ProductosSeleccionados[0, 0]; // Armo la cadena SQL string myCadenaSQL = "select * from Articulos_Insumos_Productos where IdArticulo = " + dIdArticulo; // Creo una tabla que me va a almacenar el resultado de la consulta DataTable myTablaAux = clsDataBD.GetSql(myCadenaSQL); // Recorro la tabla y paso los datos del Artículo a un datarow foreach (DataRow row in myTablaAux.Rows) { txtCodigo.Text = row["CodigoArticulo"].ToString(); txtProducto.Text = row["Articulo"].ToString(); } // Pongo el foco en el campo cantidad cboMotivo.Focus(); } else { MessageBox.Show("Debe seleccionarse un Artículo", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }