private void _numdoc_Properties_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                String numdo = "";
                if (_numdoc.Text.Trim().Length > 0)
                {
                    numdo = _numdoc.Text.Trim().PadLeft(10, '0');
                }
                _numdoc.Text = numdo;
                dgb_codigos.Focus();

                Add_Detalle();

                tb_me_movimientosdetBL BL = new tb_me_movimientosdetBL();
                tb_me_movimientosdet BE = new tb_me_movimientosdet();
                DataTable dt = new DataTable();
                BE.moduloid = modulo;
                BE.local = local;
                BE.tipodoc = Equivalencias.Left(cbo_tipodoc.Text,2);
                BE.serdoc = _serdoc.Text.Trim();
                BE.numdoc = _numdoc.Text.Trim();

                dt = BL.GetAll_datosdetalle(EmpresaID, BE).Tables[0];

                try
                {
                    if (dt.Rows.Count > 0)
                    {
                        int cont = 0;
                        foreach (DataRow fila in dt.Rows)
                        {
                            cont = cont + 1;
                            if (this.dgb_codigos.RowCount > 0)
                            {
                                int nFilaAnt = dgb_codigos.RowCount - 1;
                                if (cont > 1)
                                {
                                    TablaProductos = new DataTable();
                                    ArmarTabla();
                                    for (int j = 0; j < dgb_codigos.RowCount; j++)
                                    {
                                        row = TablaProductos.NewRow();
                                        row["productid"] = dgb_codigos.GetRowCellValue(j, "productid").ToString();
                                        row["productname"] = dgb_codigos.GetRowCellValue(j, "productname").ToString();
                                        row["nserie"] = dgb_codigos.GetRowCellValue(j, "nserie").ToString();
                                        row["lineaid"] = dgb_codigos.GetRowCellValue(j, "lineaid").ToString();
                                        row["lineaname"] = dgb_codigos.GetRowCellValue(j, "lineaname").ToString();
                                        row["grupoid"] = dgb_codigos.GetRowCellValue(j, "grupoid").ToString();
                                        row["gruponame"] = dgb_codigos.GetRowCellValue(j, "gruponame").ToString();
                                        row["subgrupoid"] = dgb_codigos.GetRowCellValue(j, "subgrupoid").ToString();
                                        row["subgrupoartic"] = dgb_codigos.GetRowCellValue(j, "subgrupoartic").ToString();
                                        row["cantidad"] = "1".ToString();
                                        TablaProductos.Rows.Add(row);
                                    }
                                    AddRowTable();
                                    mdi_dgbcodigos.DataSource = TablaProductos;

                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "productid", fila["productid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "productname", fila["productname"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "nserie", fila["nserie"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "lineaid", fila["lineaid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "lineaname", fila["lineaname"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "grupoid", fila["grupoid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "gruponame", fila["gruponame"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "subgrupoid", fila["subgrupoid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "subgrupoartic", fila["subgrupoartic"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt + 1, "cantidad","1".ToString());
                                }
                                else
                                {
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "productid", fila["productid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "productname", fila["productname"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "nserie", fila["nserie"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "lineaid", fila["lineaid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "lineaname", fila["lineaname"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "grupoid", fila["grupoid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "gruponame", fila["gruponame"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "subgrupoid", fila["subgrupoid"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "subgrupoartic", fila["subgrupoartic"].ToString());
                                    dgb_codigos.SetRowCellValue(nFilaAnt, "cantidad", "1".ToString());
                                }

                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
        }
        private void data_Tabladetallemovmov()
        {
            _cal_Igv();
            try
            {
                Decimal xxprecventa = 0, xxcostoultimo = 0, xxstock = 0, xxcostopromed = 0;
                griddetallemov.AutoGenerateColumns = false;

                tb_me_movimientosdetBL BL = new tb_me_movimientosdetBL();
                tb_me_movimientosdet BE = new tb_me_movimientosdet();
                DataTable dt = new DataTable();

                BE.moduloid = modulo;
                BE.local = local;
                BE.tipodoc = tipodoc.SelectedValue.ToString().Trim();
                BE.serdoc = serdoc.Text.Trim().PadLeft(4, '0');
                BE.numdoc = numdoc.Text.Trim().PadLeft(6, '0');

                dt = BL.GetAll_datosdetalle(EmpresaID, BE).Tables[0];

                //datos incluido IGV
                if (dt.Rows.Count > 0)
                {
                    statcostopromed = dt.Rows[0]["statcostopromed"].ToString();
                    tiptransac = dt.Rows[0]["tiptransac"].ToString();
                    incprec = dt.Rows[0]["incprec"].ToString().Trim();
                    //tipoperef = dt.Rows[0]["tipoperef"].ToString();
                }

                if (Tabladetallemov != null)
                {
                    Tabladetallemov.Clear();
                }

                foreach (DataRow fila in dt.Rows)
                {
                    tb_me_local_stockBL BL2 = new tb_me_local_stockBL();
                    tb_me_local_stock BE2 = new tb_me_local_stock();
                    DataTable dt2 = new DataTable();
                    BE2.moduloid = modulo;
                    BE2.local = local;
                    BE2.productid = fila["productid"].ToString();
                    dt2.Clear();
                    dt2 = BL2.GetAll(EmpresaID, BE2).Tables[0];

                    if (dt2.Rows.Count > 0)
                    {
                        if (almacaccionid.Trim() == "20" || almacaccionid.Trim() == "21")
                        {
                            lbl_valor.Text = "Cost.Prom";
                            xxprecventa = 0;// Convert.ToDecimal(dt2.Rows[0]["precventa"]);
                            xxcostopromed = Convert.ToDecimal(dt2.Rows[0]["costopromed"]);

                        }
                        else if (almacaccionid.Trim() == "10" || almacaccionid.Trim() == "11")
                        {
                            lbl_valor.Text = "Cost.Ultm";
                            xxcostoultimo = Convert.ToDecimal(dt2.Rows[0]["costoultimo"]);
                        }

                        xxstock = Convert.ToDecimal(dt2.Rows[0]["stock"]);
                    }

                    row = Tabladetallemov.NewRow();
                    row["itemref"] = fila["itemref"].ToString();
                    row["items"] = fila["items"].ToString();
                    row["productid"] = fila["productid"].ToString().Trim();
                    row["productname"] = fila["productname"].ToString().Trim();
                    row["rollo"] = fila["rollo"].ToString();
                    row["stock"] = xxstock;
                    row["stock_old"] = xxstock;
                    row["precventa"] = xxprecventa;
                    row["costoultimo"] = xxcostoultimo;
                    row["costopromed"] = xxcostopromed;
                    //row["cantidad"] = Math.Round(Convert.ToDecimal(fila["cantidad"]), 4);
                    //row["cantidad_c"] = Math.Round(Convert.ToDecimal(fila["cantidad_c"]), 4);

                    Decimal cantidad = Math.Round(Convert.ToDecimal(fila["cantidad"]), 4);
                    Decimal cantidadcta = Math.Round(Convert.ToDecimal(fila["cantidadcta"]), 4);
                    Decimal total;
                    total = cantidad - cantidadcta;

                    row["cantidad"] = total;

                    //row["cantidad_old"] = Math.Round(Convert.ToDecimal(fila["cantidad"]), 4);
                    row["cantidad_old"] = Convert.ToDecimal(fila["cantidad"]);

                    row["precunit"] = Math.Round(Convert.ToDecimal(Convert.ToDecimal(fila["precunit"]).ToString("###,###,##0.000000")), 6);

                    row["importfac"] = Math.Round(Convert.ToDecimal(fila["importfac"]), 2);

                    row["valor"] = Math.Round(Convert.ToDecimal(fila["valor"]), 6);
                    row["importe"] = Math.Round(Convert.ToDecimal(fila["importe"]), 6);
                    row["totimpto"] = Math.Round(Math.Round(Convert.ToDecimal(fila["importe"]), 6) * (Convert.ToDecimal(igv) / 100), 6);

                    row["almacaccionid"] = almacaccionid.Trim();
                    row["unmed"] = fila["unmed"].ToString().Trim();
                    row["nserie"] = fila["nserie"].ToString().Trim();
                    row["ubicacion"] = fila["ubicacion"].ToString().Trim();
                    row["nostock"] = xnostock;
                    Tabladetallemov.Rows.Add(row);

                }

                griddetallemov.DataSource = Tabladetallemov;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }