public bool Insertar(BE_GES_PLANABASTECIMIENTO e_Cabecera, List <BE_GES_PLANABASTECIMIENTODET> l_Detalle)
        {
            int              n_fila     = 0;
            bool             booOk      = false;
            DatosMySql       xMiFuncion = new DatosMySql();
            MySqlTransaction trans;

            trans = mysConec.BeginTransaction();

            try
            {
                if (xMiFuncion.StoreEjecutar("ges_planabastecimiento_insertar", e_Cabecera, mysConec, 1) == true)
                {
                    for (n_fila = 0; n_fila <= l_Detalle.Count - 1; n_fila++)
                    {
                        // AGREGAMOS LOS ITEMS
                        l_Detalle[n_fila].n_idplaaba = Convert.ToInt32(xMiFuncion.intIdGenerado);
                        if (xMiFuncion.StoreEjecutar("ges_planabastecimientodet_insertar", l_Detalle[n_fila], mysConec, null) == true)
                        {
                            booOk = true;
                        }
                        else
                        {
                            booOcurrioError = xMiFuncion.booOcurrioError;
                            StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                            IntErrorNumber  = xMiFuncion.IntErrorNumber;
                            booOk           = false;
                            trans.Rollback();
                            return(booOk);
                        }
                    }
                }
                else
                {
                    booOcurrioError = xMiFuncion.booOcurrioError;
                    StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                    IntErrorNumber  = xMiFuncion.IntErrorNumber;
                    booOk           = false;
                    trans.Rollback();
                    return(booOk);
                }
                trans.Commit();
                return(booOk);
            }
            catch (Exception exc)
            {
                // SI SUCEDE UN ERROR DEVOLVEMOS FALSO
                booOcurrioError = xMiFuncion.booOcurrioError;
                StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                IntErrorNumber  = xMiFuncion.IntErrorNumber;
                booOk           = false;
                trans.Rollback();
                return(booOk);
            }
        }
        void VerRegistro(int n_IdRegistro)
        {
            DataTable dtPro      = new DataTable();
            DataTable dtInter    = new DataTable();
            DataTable dtTodo     = new DataTable();
            DataTable dtProIns   = new DataTable();
            DataTable dtInterIns = new DataTable();
            DataTable dtTodoIns  = new DataTable();

            CN_ges_planproduccion o_plapro = new CN_ges_planproduccion();
            BE_GES_PLANPRODUCCION e_plapro = new BE_GES_PLANPRODUCCION();
            DataTable             dtres    = new DataTable();

            FgProd.Rows.Count  = 2;
            FgInter.Rows.Count = 2;
            FgTodo.Rows.Count  = 2;

            FgProdIns.Rows.Count  = 2;
            FgInterIns.Rows.Count = 2;
            FgTodoIns.Rows.Count  = 2;

            objCabecera.mysConec = mysConec;
            objCabecera.TraerRegistro(n_IdRegistro);

            BE_CABECERA = objCabecera.e_Cabecera;
            dtPro       = objCabecera.dtProducto;
            dtInter     = objCabecera.dtIntermedio;
            dtTodo      = objCabecera.dtTodo;
            dtProIns    = objCabecera.dtProductoIns;
            dtInterIns  = objCabecera.dtIntermedioIns;
            dtTodoIns   = objCabecera.dtTodoIns;

            TxtDes.Text             = BE_CABECERA.c_des;
            TxtFchIni.Text          = Convert.ToDateTime(BE_CABECERA.d_fchini).ToString("dd/MM/yyyy");
            TxtFchFin.Text          = Convert.ToDateTime(BE_CABECERA.d_fchfin).ToString("dd/MM/yyyy");
            LblIdPlaVen.Text        = BE_CABECERA.n_idplapro.ToString();
            CboMesIni.SelectedValue = BE_CABECERA.n_mesini;

            o_plapro.mysConec = mysConec;
            o_plapro.TraerRegistro(BE_CABECERA.n_idplapro);
            e_plapro       = o_plapro.e_Cabecera;
            TxtPlaVen.Text = e_plapro.c_des;
            o_plapro       = null;

            llenarFlex(FgProd, dtPro, BE_CABECERA.n_mesini);
            llenarFlex(FgInter, dtInter, BE_CABECERA.n_mesini);
            llenarFlex(FgTodo, dtTodo, BE_CABECERA.n_mesini);

            llenarFlex(FgProdIns, dtProIns, BE_CABECERA.n_mesini);
            llenarFlex(FgInterIns, dtInterIns, BE_CABECERA.n_mesini);
            llenarFlex(FgTodoIns, dtTodoIns, BE_CABECERA.n_mesini);

            Tab2.SelectedIndex = 0;
        }
        public bool Actualizar(BE_GES_PLANABASTECIMIENTO e_Cabecera, List <BE_GES_PLANABASTECIMIENTODET> l_Detalle)
        {
            int              n_fila     = 0;
            bool             booOk      = false;
            DatosMySql       xMiFuncion = new DatosMySql();
            MySqlTransaction trans;

            trans = mysConec.BeginTransaction();
            string[,] arrParametros2 = new string[1, 3] {
                { "n_idplan", "System.INT16", e_Cabecera.n_id.ToString() }
            };
            try
            {
                // ELIMINAMOS EL DETALLE
                if (xMiFuncion.StoreEjecutar("ges_planabastecimientodet_delete", arrParametros2, mysConec) == false)
                {
                    booOcurrioError = xMiFuncion.booOcurrioError;
                    StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                    IntErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(booOk);
                }

                if (xMiFuncion.StoreEjecutar("ges_planabastecimiento_actualizar", e_Cabecera, mysConec, null) == true)
                {
                    for (n_fila = 0; n_fila <= l_Detalle.Count - 1; n_fila++)
                    {
                        // AGREGAMOS LOS ITEMS
                        l_Detalle[n_fila].n_idplaaba = e_Cabecera.n_id;
                        if (xMiFuncion.StoreEjecutar("ges_planabastecimientodet_insertar", l_Detalle[n_fila], mysConec, null) == true)
                        {
                            booOk = true;
                        }
                        else
                        {
                            booOcurrioError = xMiFuncion.booOcurrioError;
                            StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                            IntErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(booOk);
                        }
                    }
                }
                else
                {
                    booOcurrioError = xMiFuncion.booOcurrioError;
                    StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                    IntErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(booOk);
                }
                trans.Commit();
                return(booOk);
            }
            catch (Exception exc)
            {
                // SI SUCEDE UN ERROR DEVOLVEMOS FALSO
                booOcurrioError = xMiFuncion.booOcurrioError;
                StrErrorMensaje = xMiFuncion.StrErrorMensaje;
                IntErrorNumber  = xMiFuncion.IntErrorNumber;
                trans.Rollback();
                return(booOk);
            }
        }
        private void BtnExportarExcel_Click(object sender, EventArgs e)
        {
            try
            {
                int n_IdRegistro = Convert.ToInt32(DgLista.Columns["n_id"].CellValue(DgLista.Row).ToString());

                objCabecera.mysConec = mysConec;
                objCabecera.TraerRegistro(n_IdRegistro);

                BE_CABECERA = objCabecera.e_Cabecera;

                //dtPro
                var results = objCabecera.dtProducto.AsEnumerable().Select(row => new
                {
                    c_codpro  = row["c_codpro"],
                    c_despro  = row["c_despro"],
                    c_abrpre  = row["c_abrpre"],
                    Enero     = row["Enero"],
                    Febrero   = row["Febrero"],
                    Marzo     = row["Marzo"],
                    Abril     = row["Abril"],
                    Mayo      = row["Mayo"],
                    Junio     = row["Junio"],
                    Julio     = row["Julio"],
                    Agosto    = row["Agosto"],
                    Setiembre = row["Setiembre"],
                    Octubre   = row["Octubre"],
                    Noviembre = row["Noviembre"],
                    Diciembre = row["Diciembre"],
                    n_canpro  = row["n_canpro"]
                }).ToList();
                string    jsonResults = JsonConvert.SerializeObject(results);
                DataTable dtPro       = JsonConvert.DeserializeObject <DataTable>(jsonResults);
                dtPro.Columns[0].ColumnName  = "Codigo";
                dtPro.Columns[1].ColumnName  = "Descripcion";
                dtPro.Columns[2].ColumnName  = "Unidad";
                dtPro.Columns[15].ColumnName = "Total";

                //dtInter
                var results_dtInter = objCabecera.dtIntermedio.AsEnumerable().Select(row => new
                {
                    c_codpro  = row["c_codpro"],
                    c_despro  = row["c_despro"],
                    c_abrpre  = row["c_abrpre"],
                    Enero     = row["Enero"],
                    Febrero   = row["Febrero"],
                    Marzo     = row["Marzo"],
                    Abril     = row["Abril"],
                    Mayo      = row["Mayo"],
                    Junio     = row["Junio"],
                    Julio     = row["Julio"],
                    Agosto    = row["Agosto"],
                    Setiembre = row["Setiembre"],
                    Octubre   = row["Octubre"],
                    Noviembre = row["Noviembre"],
                    Diciembre = row["Diciembre"],
                    n_canpro  = row["n_canpro"]
                }).ToList();
                string    jsonResults_dtInter = JsonConvert.SerializeObject(results_dtInter);
                DataTable dtInter             = JsonConvert.DeserializeObject <DataTable>(jsonResults_dtInter);
                dtInter.Columns[0].ColumnName  = "Codigo";
                dtInter.Columns[1].ColumnName  = "Descripcion";
                dtInter.Columns[2].ColumnName  = "Unidad";
                dtInter.Columns[15].ColumnName = "Total";

                //dtTodo
                var results_dtTodo = objCabecera.dtTodo.AsEnumerable().Select(row => new
                {
                    c_codpro  = row["c_codpro"],
                    c_despro  = row["c_despro"],
                    c_abrpre  = row["c_abrpre"],
                    Enero     = row["Enero"],
                    Febrero   = row["Febrero"],
                    Marzo     = row["Marzo"],
                    Abril     = row["Abril"],
                    Mayo      = row["Mayo"],
                    Junio     = row["Junio"],
                    Julio     = row["Julio"],
                    Agosto    = row["Agosto"],
                    Setiembre = row["Setiembre"],
                    Octubre   = row["Octubre"],
                    Noviembre = row["Noviembre"],
                    Diciembre = row["Diciembre"],
                    n_canpro  = row["n_canpro"]
                }).ToList();
                string    jsonResults_dtTodo = JsonConvert.SerializeObject(results_dtTodo);
                DataTable dtTodo             = JsonConvert.DeserializeObject <DataTable>(jsonResults_dtTodo);
                dtTodo.Columns[0].ColumnName  = "Codigo";
                dtTodo.Columns[1].ColumnName  = "Descripcion";
                dtTodo.Columns[2].ColumnName  = "Unidad";
                dtTodo.Columns[15].ColumnName = "Total";

                //dtProIns
                var results_dtProIns = objCabecera.dtProductoIns.AsEnumerable().Select(i => new
                {
                    c_codpro  = i["c_codpro"],
                    c_despro  = i["c_despro"],
                    c_abrpre  = i["c_abrpre"],
                    Enero     = i["Enero"],
                    Febrero   = i["Febrero"],
                    Marzo     = i["Marzo"],
                    Abril     = i["Abril"],
                    Mayo      = i["Mayo"],
                    Junio     = i["Junio"],
                    Julio     = i["Julio"],
                    Agosto    = i["Agosto"],
                    Setiembre = i["Setiembre"],
                    Octubre   = i["Octubre"],
                    Noviembre = i["Noviembre"],
                    Diciembre = i["Diciembre"],
                    n_canpro  = i["n_canpro"]
                }).ToList();
                string    jsonResults_dtProIns = JsonConvert.SerializeObject(results_dtProIns);
                DataTable dtProIns             = JsonConvert.DeserializeObject <DataTable>(jsonResults_dtProIns);
                dtProIns.Columns[0].ColumnName  = "Codigo";
                dtProIns.Columns[1].ColumnName  = "Descripcion";
                dtProIns.Columns[2].ColumnName  = "Unidad";
                dtProIns.Columns[15].ColumnName = "Total";

                //dtInterIns
                var results_dtInterIns = objCabecera.dtIntermedioIns.AsEnumerable().Select(i => new
                {
                    c_codpro  = i["c_codpro"],
                    c_despro  = i["c_despro"],
                    c_abrpre  = i["c_abrpre"],
                    Enero     = i["Enero"],
                    Febrero   = i["Febrero"],
                    Marzo     = i["Marzo"],
                    Abril     = i["Abril"],
                    Mayo      = i["Mayo"],
                    Junio     = i["Junio"],
                    Julio     = i["Julio"],
                    Agosto    = i["Agosto"],
                    Setiembre = i["Setiembre"],
                    Octubre   = i["Octubre"],
                    Noviembre = i["Noviembre"],
                    Diciembre = i["Diciembre"],
                    n_canpro  = i["n_canpro"]
                }).ToList();
                string    jsonResults_dtInterIns = JsonConvert.SerializeObject(results_dtInterIns);
                DataTable dtInterIns             = JsonConvert.DeserializeObject <DataTable>(jsonResults_dtInterIns);
                dtInterIns.Columns[0].ColumnName  = "Codigo";
                dtInterIns.Columns[1].ColumnName  = "Descripcion";
                dtInterIns.Columns[2].ColumnName  = "Unidad";
                dtInterIns.Columns[15].ColumnName = "Total";

                //dtTodoIns
                var results_dtTodoIns = objCabecera.dtTodoIns.AsEnumerable().Select(i => new
                {
                    c_codpro  = i["c_codpro"],
                    c_despro  = i["c_despro"],
                    c_abrpre  = i["c_abrpre"],
                    Enero     = i["Enero"],
                    Febrero   = i["Febrero"],
                    Marzo     = i["Marzo"],
                    Abril     = i["Abril"],
                    Mayo      = i["Mayo"],
                    Junio     = i["Junio"],
                    Julio     = i["Julio"],
                    Agosto    = i["Agosto"],
                    Setiembre = i["Setiembre"],
                    Octubre   = i["Octubre"],
                    Noviembre = i["Noviembre"],
                    Diciembre = i["Diciembre"],
                    n_canpro  = i["n_canpro"]
                }).ToList();
                string    jsonResults_dtTodoIns = JsonConvert.SerializeObject(results_dtTodoIns);
                DataTable dtTodoIns             = JsonConvert.DeserializeObject <DataTable>(jsonResults_dtTodoIns);
                dtTodoIns.Columns[0].ColumnName  = "Codigo";
                dtTodoIns.Columns[1].ColumnName  = "Descripcion";
                dtTodoIns.Columns[2].ColumnName  = "Unidad";
                dtTodoIns.Columns[15].ColumnName = "Total";

                List <DataTable> tables = new List <DataTable>();
                dtPro.TableName = "Terminados";
                tables.Add(dtPro);
                dtInter.TableName = "Intermedios";
                tables.Add(dtInter);
                dtTodo.TableName = "Todo";
                tables.Add(dtTodo);
                dtProIns.TableName = "Insumos Terminados";
                tables.Add(dtProIns);
                dtInterIns.TableName = "Insumos Intermedios";
                tables.Add(dtInterIns);
                dtTodoIns.TableName = "Insumos Todo";
                tables.Add(dtTodoIns);

                funDbGrid.DT_List_ExporExcel(tables);
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Error el exportar los registros: {0} ", ex.Message), "Exportar Excel", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }