private void Tabla_detOC2()
        {
            Decimal xxprecventa = 0, xxcostoultimo = 0, xxstock = 0, xxcostopromed = 0;
            griddetallemov.AutoGenerateColumns = false;

            var BL = new tb_cm_ordendecompradetBL();
            var BE = new tb_cm_ordendecompradet();
            var dt = new DataTable();

            BE.moduloid = "0100";
            BE.local = "001";
            BE.tipodoc = tipref.SelectedValue.ToString();
            BE.serdoc = serref.Text.Trim();
            BE.numdoc = numdococ1.Text.Trim() + numdococ.Text.Trim();

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

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow fila in dt.Rows)
                {
                    var BL2 = new tb_60local_stockBL();
                    var BE2 = new tb_60local_stock();
                    var dt2 = new DataTable();

                    BE2.moduloid = modulo;
                    BE2.productid = fila["productid"].ToString();

                    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 = 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"]);
                    }

                    tipoperacionid.Text = "COMPRA";
                    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();

                    var cantidad_c = Math.Round(Convert.ToDecimal(fila["cantidad_c"]), 4);
                    var cantidadcta_c = Math.Round(Convert.ToDecimal(fila["cantidadcta_c"]), 4);

                    if (tipref.SelectedIndex != -1)
                    {
                        var stock_old = Math.Round(Convert.ToDecimal(fila["cantidad_c"]), 4);
                        var total = cantidad_c - cantidadcta_c;
                        row["stock_old"] = total;
                        row["stock"] = stock_old - total;
                    }
                    else
                    {
                        row["stock"] = xxstock;
                        row["stock_old"] = xxstock;
                    }

                    row["precventa"] = xxprecventa;
                    row["costoultimo"] = xxcostoultimo;
                    row["costopromed"] = xxcostopromed;

                    Decimal saldo;
                    saldo = cantidad_c - cantidadcta_c;
                    row["cantidad"] = saldo;
                    row["cantidad_old"] = Math.Round(Convert.ToDecimal(fila["cantidad"]), 4);
                    row["precunit"] = Math.Round(Convert.ToDecimal(Convert.ToDecimal(fila["precunit_c"]).ToString("###,###,##0.000000")), 6);
                    var precunit = Math.Round(Convert.ToDecimal(Convert.ToDecimal(fila["precunit_c"]).ToString("###,###,##0.000000")), 6);
                    Decimal importe;
                    importe = cantidad_c * precunit;

                    row["importfac"] = importe;
                    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(18) / 100), 6);
                    row["almacaccionid"] = almacaccionid.Trim();
                    Tabladetallemov.Rows.Add(row);
                    griddetallemov.DataSource = Tabladetallemov;
                }
                _RecalculoGrid();
            }
            else
            {
                MessageBox.Show("    !!!... Informacion de la Orden ...!!! \n" +
                                "\n » La Orden Todabia no ha Sido Generada " +
                                "\n » O la Orden esta Generada en Otra Guia " +
                                "\n\n »» Verifica Tus Ordenes Pendientes  ", "Localizando Orden", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                tipref.Enabled = true;
                tipref.SelectedIndex = -1;
                tipref.Enabled = true;
                numdococ1.Text = "2014";
                numdococ.Text = string.Empty;
                return;
            }
        }
        private void Tabla_detOC2()
        {
            Decimal xxprecventa = 0, xxcostoultimo = 0, xxstock = 0, xxcostopromed = 0;
            griddetallemov.AutoGenerateColumns = false;

            tb_cm_ordendecompradetBL BL = new tb_cm_ordendecompradetBL();
            tb_cm_ordendecompradet BE = new tb_cm_ordendecompradet();
            DataTable dt = new DataTable();

            BE.moduloid = "0100";
            BE.local = "001";
            BE.tipodoc = tipref.SelectedValue.ToString();
            BE.serdoc = serref.Text.Trim();   // Vendria Ser el Modulo de Cada Almacen
            BE.numdoc = numdococ1.Text.Trim() + numdococ.Text.Trim();  // Correlativo de Cada Orden de Compra

            Tabladetallemov = BL.GetAll2(EmpresaID, BE).Tables[0];

            if (Tabladetallemov.Rows.Count > 0)
            {
                if (local == Tabladetallemov.Rows[0]["localdes"].ToString().Trim())
                {
                    #region *** Bloqueo Temporal

                    //foreach (DataRow fila in dt.Rows)
                    //{
                    //    tb_60local_stockBL BL2 = new tb_60local_stockBL();
                    //    tb_60local_stock BE2 = new tb_60local_stock();
                    //    DataTable dt2 = new DataTable();

                    //    BE2.moduloid = modulo;
                    //    BE2.productid = fila["productid"].ToString();

                    //    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 = 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"]);
                    //    }

                    //    tipoperacionid.Text = "COMPRA";
                    //    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();

                    //    Decimal cantidad_c = Math.Round(Convert.ToDecimal(fila["cantidad_c"]), 4);
                    //    Decimal cantidadcta_c = Math.Round(Convert.ToDecimal(fila["cantidadcta_c"]), 4);

                    //    if (tipref.SelectedIndex != -1)
                    //    {
                    //        Decimal stock_old = Math.Round(Convert.ToDecimal(fila["cantidad_c"]), 4);
                    //        Decimal total = cantidad_c - cantidadcta_c;
                    //        row["stock_old"] = total;
                    //        row["stock"] = stock_old - total;
                    //    }
                    //    else
                    //    {
                    //        row["stock"] = xxstock;
                    //        row["stock_old"] = xxstock;
                    //    }

                    //    row["precventa"] = xxprecventa;
                    //    row["costoultimo"] = xxcostoultimo;
                    //    row["costopromed"] = xxcostopromed;

                    //    Decimal saldo;
                    //    saldo = cantidad_c - cantidadcta_c;
                    //    row["cantidad"] = saldo;
                    //    row["cantidad_old"] = Math.Round(Convert.ToDecimal(fila["cantidad"]), 4);
                    //    row["precunit"] = Math.Round(Convert.ToDecimal(Convert.ToDecimal(fila["precunit_c"]).ToString("###,###,##0.000000")), 6);
                    //    Decimal precunit = Math.Round(Convert.ToDecimal(Convert.ToDecimal(fila["precunit_c"]).ToString("###,###,##0.000000")), 6);
                    //    Decimal importe;
                    //    importe = cantidad_c * precunit;

                    //    row["importfac"] = importe;
                    //    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(18) / 100), 6);
                    //    row["almacaccionid"] = almacaccionid.Trim();
                    //    //row["ubicacion"] = fila["ubicacion"].ToString().Trim();
                    //    Tabladetallemov.Rows.Add(row);
                    //}
                    #endregion

                    griddetallemov.DataSource = Tabladetallemov;
                    //_RecalculoGrid();
                    calcular_totales();
                }
                else
                {
                    MessageBox.Show("    !!!... Informacion de la Orden ...!!! \n" +
                                    "\n » La Orden Todabia no ha Sido Generada " +
                                    "\n » O la Orden esta Generada en Otra Guia " +
                                    "\n\n »» Verifica Tus Ordenes Pendientes  ", "Localizando Orden", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                    tipref.Enabled = true;
                    tipref.SelectedIndex = -1;
                    tipref.Enabled = true;
                    numdococ1.Text = Convert.ToString(DateTime.Today.Year);
                    numdococ.Text = "";
                    return;
                }
            }
        }