void rme_MaterialEmpaqueSeleccionado(object sender, MaterialEmpaqueSeleccionadoEventArgs e)
 {
     BLT_Material_Empaque_x_Producto blt_Material_Empaque_x_Producto = new BLT_Material_Empaque_x_Producto();
     if (!blt_Material_Empaque_x_Producto.fnExsT_Material_Empaque_x_Producto(txt_Codigo_Producto.Text, e.MaterialEmpaqueSeleccionado.Codigo_Material_Empaque,int.Parse(txt_Tamaño_Lote.Text))) {
         BOT_Material_Empaque me = e.MaterialEmpaqueSeleccionado;
         BOT_Material_Empaque_x_Producto bot_Material_Empaque_x_Producto = new BOT_Material_Empaque_x_Producto();
         bot_Material_Empaque_x_Producto.Codigo_Producto = txt_Codigo_Producto.Text;
         bot_Material_Empaque_x_Producto.Codigo_Material_Empaque = e.MaterialEmpaqueSeleccionado.Codigo_Material_Empaque;
         bot_Material_Empaque_x_Producto.Tamaño_Lote = Convert.ToInt32(txt_Tamaño_Lote.Text);
         bot_Material_Empaque_x_Producto.Lote_Fabricacion = DateTime.Now.Year.ToString() + ((DateTime.Now.Month.ToString().Length == 1) ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString()) + ((DateTime.Now.Day.ToString().Length == 1) ? "0" + DateTime.Now.Day.ToString() : DateTime.Now.Day.ToString());
         if (blt_Material_Empaque_x_Producto.fnInsUpdT_Material_Empaque_x_Producto(bot_Material_Empaque_x_Producto)) {
             CargaMaterialesXProducto();
         }
     }
     else {
         MessageBox.Show("Material ya se encuentra asignado a dicho producto", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
        private void btn_Aceptar_2_Click(object sender, EventArgs e)
        {
            List<BOT_Material_Empaque> data_Material_Empaque = dgv_Cantidad_Material_x_Producto.DataSource as List<BOT_Material_Empaque>;

            if (txt_Tamaño_Lote.Text == "" || dgv_Cantidad_Material_x_Producto.Rows.Count == 0)
            {
                MessageBox.Show("Debe de Ingresar el Tamaño del Lote y luego los Materiales de Empaque que conformaran el Producto elegido.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txt_Tamaño_Lote.Focus();
            }
            else
            {
                //
                List<BOT_Material_Empaque_x_Producto> list_Material_Empaque_x_Producto = new List<BOT_Material_Empaque_x_Producto>();
                foreach (BOT_Material_Empaque oMaterial_Empaque in data_Material_Empaque)
                {
                    BOT_Material_Empaque_x_Producto oMaterial_Empaque_x_Producto = new BOT_Material_Empaque_x_Producto();
                    oMaterial_Empaque_x_Producto.Codigo_Producto = txt_Codigo_Producto.Text;
                    oMaterial_Empaque_x_Producto.Codigo_Material_Empaque = oMaterial_Empaque.Codigo_Material_Empaque;
                    oMaterial_Empaque_x_Producto.Cantidad_Pedida = Convert.ToDecimal(oMaterial_Empaque.Cantidad_Pedida);
                    oMaterial_Empaque_x_Producto.Unidad_Medida = oMaterial_Empaque.Unidad_Medida;
                    oMaterial_Empaque_x_Producto.Tamaño_Lote = Int32.Parse(txt_Tamaño_Lote.Text);
                    oMaterial_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto = oMaterial_Empaque.CodigoMaterialEmpaquexProducto;
                    //DateTime dLote = DateTime.Now;
                    oMaterial_Empaque_x_Producto.Lote_Fabricacion = DateTime.Now.Year.ToString() + ((DateTime.Now.Month.ToString().Length == 1) ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString()) + ((DateTime.Now.Day.ToString().Length == 1) ? "0" + DateTime.Now.Day.ToString() : DateTime.Now.Day.ToString());
                    BLT_Material_Empaque_x_Producto blt_Material_Empaque_x_Producto = new BLT_Material_Empaque_x_Producto();
                    blt_Material_Empaque_x_Producto.fnInsUpdT_Material_Empaque_x_Producto(oMaterial_Empaque_x_Producto);
                }
                CargaMaterialesXProducto();
            }
        }
        public Boolean fnUpdT_Material_Empaque_x_Producto(BOT_Material_Empaque_x_Producto poBOT_Material_Empaque_x_Producto)
        {
            Boolean lbResultado=true ;
            //conexion
            SqlTransaction loTx ;
            SqlConnection loCn = new SqlConnection();
            loCn.ConnectionString = ClassCadena.fnConexion();
            //parametros

            SqlParameter[] par = new SqlParameter[5];
            par[0] = new SqlParameter("@Codigo_Material_Empaque_x_Producto",System.Data.SqlDbType.VarChar,10);
            ValidateAndInsertValue(par[0],poBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto);
            par[1] = new SqlParameter("@Codigo_Producto",System.Data.SqlDbType.VarChar,10);
            ValidateAndInsertValue(par[1],poBOT_Material_Empaque_x_Producto.Codigo_Producto);
            //par[2] = new SqlParameter("@Lote_Fabricacion",System.Data.SqlDbType.VarChar,10);
            //ValidateAndInsertValue(par[2],poBOT_Material_Empaque_x_Producto.Lote_Fabricacion);
            par[2] = new SqlParameter("@Tamaño_Lote",System.Data.SqlDbType.Int);
            ValidateAndInsertValue(par[2],poBOT_Material_Empaque_x_Producto.Tamaño_Lote);
            par[3] = new SqlParameter("@Codigo_Material_Empaque",System.Data.SqlDbType.VarChar,10);
            ValidateAndInsertValue(par[3],poBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque);
            par[4] = new SqlParameter("@Cantidad_Pedida",System.Data.SqlDbType.Decimal);
            ValidateAndInsertValue(par[4],poBOT_Material_Empaque_x_Producto.Cantidad_Pedida);

            loCn.Open();
            loTx = loCn.BeginTransaction();
            try
            {
                SqlHelper.ExecuteNonQuery(loTx, CommandType.StoredProcedure, "usp_UpdT_Material_Empaque_x_Producto", par);
                loTx.Commit();
            }
            catch (Exception e)
            {
                lbResultado=false;
                loTx.Rollback();
                //throw e;
            }
            finally
            {
                loCn.Close();
                loCn.Dispose();
            }

            return lbResultado;
        }
        public List<BOT_Material_Empaque_x_Producto> fnSelT_Material_Empaque_x_ProductoDin(string psWhere,string psOrder)
        {
            List<BOT_Material_Empaque_x_Producto> loList = new List<BOT_Material_Empaque_x_Producto>();
            SqlParameter[] par = new SqlParameter[2];
            par[0] = new SqlParameter("@WhereCondition",System.Data.SqlDbType.VarChar,500);
            par[0].Value= psWhere;
            par[1] = new SqlParameter("@OrderByExpression",System.Data.SqlDbType.VarChar,250);
            par[1].Value= psOrder;
            object value;//------------------------- 1
            try
            {
                SqlDataReader loDr = SqlHelper.ExecuteReader(ClassCadena.fnConexion(), CommandType.StoredProcedure, "usp_SelT_Material_Empaque_x_ProductosDin",par);
                while (loDr.Read())
                {
                    BOT_Material_Empaque_x_Producto loBOT_Material_Empaque_x_Producto=new BOT_Material_Empaque_x_Producto();
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque_x_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Tamaño_Lote"));
                    loBOT_Material_Empaque_x_Producto.Tamaño_Lote = value != System.DBNull.Value ? (Int32)value : default(Int32);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Cantidad_Pedida"));
                    loBOT_Material_Empaque_x_Producto.Cantidad_Pedida = value != System.DBNull.Value ? (Decimal)value : default(Decimal);
                    loList.Add(loBOT_Material_Empaque_x_Producto);
                }
                loDr.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {

            }
            return loList;
        }
        public List<BOT_Material_Empaque_x_Producto> fnSelT_Material_Empaque_x_ProductoAll()
        {
            List<BOT_Material_Empaque_x_Producto> loList = new List<BOT_Material_Empaque_x_Producto>();
            object value;
            try
            {
                SqlDataReader loDr = SqlHelper.ExecuteReader(ClassCadena.fnConexion(), CommandType.StoredProcedure, "usp_SelT_Material_Empaque_x_ProductosAll");
                while (loDr.Read())
                {
                    BOT_Material_Empaque_x_Producto loBOT_Material_Empaque_x_Producto=new BOT_Material_Empaque_x_Producto();
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque_x_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Lote_Fabricacion"));
                    loBOT_Material_Empaque_x_Producto.Lote_Fabricacion = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Tamaño_Lote"));
                    loBOT_Material_Empaque_x_Producto.Tamaño_Lote = value != System.DBNull.Value ? (Int32)value : default(Int32);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Cantidad_Pedida"));
                    loBOT_Material_Empaque_x_Producto.Cantidad_Pedida = value != System.DBNull.Value ? (Decimal)value : default(Decimal);
                    loList.Add(loBOT_Material_Empaque_x_Producto);
                }
                loDr.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {

            }
            return loList;
        }
        public BOT_Material_Empaque_x_Producto fnSelT_Material_Empaque_x_Producto(String psCodigo_Material_Empaque_x_Producto)
        {
            BOT_Material_Empaque_x_Producto loBOT_Material_Empaque_x_Producto = new BOT_Material_Empaque_x_Producto();
            //parametros

            SqlParameter[] par = new SqlParameter[1];
            par[0] = new SqlParameter("@Codigo_Material_Empaque_x_Producto",System.Data.SqlDbType.VarChar,10);
            par[0].Value= psCodigo_Material_Empaque_x_Producto;
            object value;
            try
            {
                SqlDataReader loDr = SqlHelper.ExecuteReader(ClassCadena.fnConexion(), CommandType.StoredProcedure, "usp_SelT_Material_Empaque_x_Producto", par);
                while(loDr.Read()){//----------------------------------------------------- AQUI
                    if (loDr != null)
                    {
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque_x_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Producto"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Producto = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Lote_Fabricacion"));
                    loBOT_Material_Empaque_x_Producto.Lote_Fabricacion = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Tamaño_Lote"));
                    loBOT_Material_Empaque_x_Producto.Tamaño_Lote = value != System.DBNull.Value ? (Int32)value : default(Int32);
                    value = loDr.GetValue(loDr.GetOrdinal("Codigo_Material_Empaque"));
                    loBOT_Material_Empaque_x_Producto.Codigo_Material_Empaque = value != System.DBNull.Value ? (String)value : default(String);
                    value = loDr.GetValue(loDr.GetOrdinal("Cantidad_Pedida"));
                    loBOT_Material_Empaque_x_Producto.Cantidad_Pedida = value != System.DBNull.Value ? (Decimal)value : default(Decimal);

                    }
                }
                loDr.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {

            }
            return loBOT_Material_Empaque_x_Producto;
        }
 public Boolean fnUpdT_Material_Empaque_x_Producto(BOT_Material_Empaque_x_Producto poBOT_Material_Empaque_x_Producto)
 {
     BDAT_Material_Empaque_x_Producto loBDAT_Material_Empaque_x_Producto=new BDAT_Material_Empaque_x_Producto();
     return loBDAT_Material_Empaque_x_Producto.fnUpdT_Material_Empaque_x_Producto(poBOT_Material_Empaque_x_Producto);
 }