internal void CargarMateriales(string cd_Producto, string tamañoLote)
 {
     dgv_Material_Empaque.AutoGenerateColumns = false;
     BLT_Material_Empaque_x_Producto blt_Material_Empaque_x_Producto = new BLT_Material_Empaque_x_Producto();
     List<BOT_Material_Empaque_x_Producto> list_oMEP = new List<BOT_Material_Empaque_x_Producto>();
     list_oMEP = blt_Material_Empaque_x_Producto.fnSelT_Material_Empaque_x_ProductoDin("Codigo_Producto = '" + cd_Producto + "' and Tamaño_Lote = '" + tamañoLote + "'", "");
     foreach (BOT_Material_Empaque_x_Producto oMEP in list_oMEP)
     {
         BLT_Material_Empaque bl_ME = new BLT_Material_Empaque();
         BOT_Material_Empaque oME = new BOT_Material_Empaque();
         oME = bl_ME.fnSelT_Material_Empaque(oMEP.Codigo_Material_Empaque);
         oMEP.Nombre_Material_Empaque = oME.Nombre_Material_Empaque;
         oMEP.Unidad_Medida = oME.Unidad_Medida;
     }
     dgv_Material_Empaque.DataSource = list_oMEP;
 }
 internal void CargaMaterialesXProducto()
 {
     dgv_Cantidad_Material_x_Producto.DataSource = null;
     BLT_Material_Empaque blt_Material_Empaque = new BLT_Material_Empaque();
     BLT_Material_Empaque_x_Producto blt_Material_Empaque_x_Producto = new BLT_Material_Empaque_x_Producto();
     List<BOT_Material_Empaque> list_oME = new List<BOT_Material_Empaque>();
     List<BOT_Material_Empaque_x_Producto> list_OMEP = new List<BOT_Material_Empaque_x_Producto>();
     list_OMEP = blt_Material_Empaque_x_Producto.fnSelT_Material_Empaque_x_ProductoDin("Codigo_Producto = '" + txt_Codigo_Producto.Text + "' and Tamaño_Lote = " + txt_Tamaño_Lote.Text, "");
     if (list_OMEP.Count != 0) {
         foreach (BOT_Material_Empaque_x_Producto oMEP in list_OMEP) {
             BOT_Material_Empaque oME = new BOT_Material_Empaque();
             oME = blt_Material_Empaque.fnSelT_Material_Empaque(oMEP.Codigo_Material_Empaque);
             oME.Cantidad_Pedida = oMEP.Cantidad_Pedida;
             oME.CodigoMaterialEmpaquexProducto = oMEP.Codigo_Material_Empaque_x_Producto;
             list_oME.Add(oME);
         }
         dgv_Cantidad_Material_x_Producto.AutoGenerateColumns = false;
         dgv_Cantidad_Material_x_Producto.DataSource = list_oME;
     }
     else {
         MessageBox.Show("El producto no tiene asignados materiales de empaque", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
        private void btn_Buscar_Producto_Click(object sender, EventArgs e)
        {
            if (txt_Codigo_Producto.Text == "")
            {
                Form_SeleccionarProducto fSelProducto = new Form_SeleccionarProducto(false);
                fSelProducto.ProductoSeleccionado += new ProductoSeleccionadoEventHandler(fSelProducto_ProductoSeleccionado);
                fSelProducto.ShowDialog();
            }
            else
            {
                CargarProducto(txt_Codigo_Producto.Text);
            }

            BLT_Material_Empaque_x_Producto blt_material_empaque_x_producto = new BLT_Material_Empaque_x_Producto();
            cbx_Tamaño_Lote.DataSource = blt_material_empaque_x_producto.fnSelT_Material_Empaque_x_Producto_Tamaño_Lote(txt_Codigo_Producto.Text);
            cbx_Tamaño_Lote.SelectedIndex = -1;
        }
        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();
            }
        }
 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_Eliminar_Click(object sender, EventArgs e)
 {
     BOT_Material_Empaque bot_MaterialEmpaque = dgv_Cantidad_Material_x_Producto.CurrentRow.DataBoundItem as BOT_Material_Empaque;
     DialogResult result = MessageBox.Show(const_msgEliminarMaterialEmpaque, "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
     if (result == DialogResult.Yes)
     {
         BLT_Material_Empaque_x_Producto blt_Material_Empaque_x_Producto = new BLT_Material_Empaque_x_Producto();
         BOT_Material_Empaque_x_Producto bot_Material_Empaque_x_Producto;
         bot_Material_Empaque_x_Producto = blt_Material_Empaque_x_Producto.fnSelT_Material_Empaque_x_Producto(bot_MaterialEmpaque.CodigoMaterialEmpaquexProducto);
         bool _resultado = true;
         if (bot_Material_Empaque_x_Producto != null)
         {
             _resultado = blt_Material_Empaque_x_Producto.fnDelT_Material_Empaque_x_Producto(bot_Material_Empaque_x_Producto.Codigo_Material_Empaque_x_Producto);
         }
         if (_resultado)
         {
             CargaMaterialesXProducto();
         }
     }
 }