private void dataGridViewReqDisponibles_CellContentClick(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex == (int)Col_RequerimientoCab.SELECCIONA) { //CON CADA SELEECCION O DESELECCION, ACTUALIZO LOS ITEMS.... VOY TOMANDO TODOS LOS REQUERIMIENTOS_ITEM PARA PASARLO A STORED string _requerimientos = string.Empty; for (int i = 0; i < this.dataGridViewReqDisponibles.Rows.Count; i++) { DataGridViewCheckBoxCell cellSelecion = dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.SELECCIONA] as DataGridViewCheckBoxCell; if (Convert.ToBoolean(cellSelecion.Value)) { _requerimientos = (_requerimientos == string.Empty) ? dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.NRO_REQUERIMIENTO].Value.ToString() : _requerimientos + "," + dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.NRO_REQUERIMIENTO].Value.ToString(); } } //MUESTRO LA PALABRA DIARIO PARA QUE EL USUARIO SEPA QUE ES UN REQUERIMIENTO DIARIO // this.labelDiario.Visible = (Convert.ToBoolean(dataGridViewReqDisponibles.Rows[e.RowIndex].Cells[(int)Col_RequerimientoCab.DIARIO].Value)) ? true : false; _pedidoDiario = (Convert.ToBoolean(dataGridViewReqDisponibles.Rows[e.RowIndex].Cells[(int)Col_RequerimientoCab.DIARIO].Value)) ? true : false; this.textBoxLugarEntrega.Text = dataGridViewReqDisponibles.Rows[e.RowIndex].Cells[(int)Col_RequerimientoCab.LUGARENTREGA].Value.ToString(); BLL.Procedures.TRAEREQUERIMIENTOITEMVARIOS _item = new BLL.Procedures.TRAEREQUERIMIENTOITEMVARIOS(); this.dataGridViewDetalleReqDisponibles.Rows.Clear(); int indice; //TRAIGO LOS ITEMS DE ESTE REQUERIMIENTO CON NIVELAUT = 2 QUE SON LOS AUTORIZADOS foreach (Entities.Procedures.TRAEREQUERIMIENTOITEMVARIOS item in _item.ItemList(dataGridViewReqDisponibles.Rows[e.RowIndex].Cells[(int)Col_RequerimientoCab.CODEMP].Value.ToString(), _requerimientos, 2)) { indice = dataGridViewDetalleReqDisponibles.Rows.Add(); dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.CODEMPRESA].Value = item.codemp.ToString(); //DESCRIPCION DEL ARTICULO dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.NRO_REQUERIMIENTO].Value = item.requerimiento_id; //REQUERIMIENTO_ID dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.NRO_ITEM].Value = item.nroitem; //TRAE NRO ITEM dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.ARTICULO_ID].Value = item.articulo_id; //ID DEL ARTICULO dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.ARTICULO].Value = item.art_descgen; //DESCRIPCION DEL ARTICULO dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.UNIDAD_DE_MEDIDA].Value = item.unimed; //TRAE UNIMED dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.CANTIDAD].Value = item.cantidad.ToString().Replace(",", "."); //TRAE CANTIDAD dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.FECHA_DE_ENTREGA].Value = null; //item.fechaentrega.ToShortDateString();//FECHA DE ENTREGA // ahora recupero la fila del combo, para saber que fila debo llenar con la marca DataGridViewRow row = dataGridViewDetalleReqDisponibles.Rows[indice]; //this.dataGridViewReq.CurrentRow; DataGridViewComboBoxCell comboboxColumnSector = row.Cells[(int)Col_RequerimientoItem.MARCA] as DataGridViewComboBoxCell; CargarMarca(item.articulo_id, comboboxColumnSector); dataGridViewDetalleReqDisponibles.Rows[indice].Cells[(int)Col_RequerimientoItem.MARCA].Value = item.Marca;//MARCA } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void dataGridViewReqDisponibles_CellContentClick(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex == (int)Col_RequerimientoCab.SELECCIONA) { //CON CADA SELEECCION O DESELECCION, ACTUALIZO LOS ITEMS.... VOY TOMANDO TODOS LOS REQUERIMIENTOS_ITEM PARA PASARLO A STORED string _requerimientos = string.Empty; for (int i = 0; i < this.dataGridViewReqDisponibles.Rows.Count; i++) { DataGridViewCheckBoxCell cellSelecion = dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.SELECCIONA] as DataGridViewCheckBoxCell; if (Convert.ToBoolean(cellSelecion.Value)) { //GUARDO TODOS LOS REQUERIMIENTOS ID PARA LUEGO IR A BUSCAR LOS ITEMS _requerimientos = (_requerimientos == string.Empty) ? dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.NRO_REQUERIMIENTO].Value.ToString() : _requerimientos + "," + dataGridViewReqDisponibles.Rows[i].Cells[(int)Col_RequerimientoCab.NRO_REQUERIMIENTO].Value.ToString(); } } BLL.Procedures.TRAEREQUERIMIENTOITEMVARIOS _item = new BLL.Procedures.TRAEREQUERIMIENTOITEMVARIOS(); this.dataGridViewConsolidado.Rows.Clear(); int indice; this._itemsReq.Clear(); //TODOS LOS ITEMS DE TODOS LOS REQUERIMIENTOS SELECCIONADOS, LOS GUARDO EN UNA LISTA.. this._itemsReq = _item.ItemList(dataGridViewReqDisponibles.Rows[e.RowIndex].Cells[(int)Col_RequerimientoCab.CODEMP].Value.ToString(), _requerimientos, 2); //traigo todos los requerimientos autorizados //var groupsForIterate = (from item in _itemsReq // select item).ToList<Entities.Procedures.TRAEREQUERIMIENTOITEMVARIOS>().GroupBy(x => new { x.articulo_id, x.art_descgen, x.unimed }); var groupsForIterate = _itemsReq.GroupBy(x => new { x.articulo_id, x.art_descgen, x.unimed, x.Marca }); //RECORRO LA LISTA AGRUPADA foreach (var categ in groupsForIterate) { indice = dataGridViewConsolidado.Rows.Add(); dataGridViewConsolidado.Rows[indice].Cells[(int)Col_GridDetalle.ARTICULO].Value = categ.Key.articulo_id; dataGridViewConsolidado.Rows[indice].Cells[(int)Col_GridDetalle.DESCRIPCION].Value = categ.Key.art_descgen + " " + categ.Key.Marca; dataGridViewConsolidado.Rows[indice].Cells[(int)Col_GridDetalle.UNIDAD].Value = categ.Key.unimed; //ES LA FORMA DE SUMAR LAS CANTIDADES DE UN MISMO PRODUCTO dataGridViewConsolidado.Rows[indice].Cells[(int)Col_GridDetalle.CANTIDAD].Value = categ.Sum(x => x.cantidad).ToString().Replace(",", "."); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }