Ejemplo n.º 1
0
        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);
            }
        }