Exemplo n.º 1
0
        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];
                }
            }
        }
Exemplo n.º 2
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();
                }
            }
        }
Exemplo n.º 3
0
        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);
                    }
                }
            }
        }