private DataTable InformacionDePromocionesAsociadasAlProducto()
        {
            DataTable ODatos = null;

            try
            {
                ProductoPromocionEN oRegistroEN = new ProductoPromocionEN();
                ProductoPromocionLN oRegistroLN = new ProductoPromocionLN();

                oRegistroEN.oProductoEN.idProducto = ValorLlavePrimariaEntidad;
                oRegistroEN.OrderBy = " Order By FechaDeFinalizacion desc ";

                if (oRegistroLN.ListadoPromocionesXProducto(oRegistroEN, Program.oDatosDeConexion))
                {
                    ODatos = oRegistroLN.TraerDatos();
                    return(ODatos);
                }
                else
                {
                    throw new ArgumentException(oRegistroLN.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Información de los productos asociados", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(ODatos);
            }
        }
        private void Actualizar()
        {
            try
            {
                if (LosDatosIngresadosSonCorrectos())
                {
                    ProductoPromocionEN oRegistroEN = InformacionDeLaPromocionDelProducto();
                    ProductoPromocionLN oRegistroLN = new ProductoPromocionLN();

                    if (oRegistroLN.ValidarFechaDelRegistro(oRegistroEN, Program.oDatosDeConexion, "ACTUALIZAR"))
                    {
                        MessageBox.Show(oRegistroLN.Error, "Actualizar información", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (oRegistroLN.Actualizar(oRegistroEN, Program.oDatosDeConexion))
                    {
                        if (chkCerrarVentana.Checked == true)
                        {
                            this.Close();
                        }
                        else
                        {
                            CrearyYPoblarColumnasDGVPromociones();
                            LimpiarControles();
                        }
                    }
                    else
                    {
                        throw new ArgumentException(oRegistroLN.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Guardar el registro", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void Eliminar()
        {
            try
            {
                if (dgvListar.Rows.Count > 0)
                {
                    if (EvaluarDataGridView(dgvListar))
                    {
                        string Mensaje = DescripcionDetallaDGV(dgvListar);
                        MessageBox.Show(Mensaje, "Registros a procesar", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        int RowsProcesar = dgvListar.Rows.Count;

                        if (RowsProcesar > 0)
                        {
                            int indice = 0;
                            int TotalDeFilasMarcadasParaEliminar = TotalDeFilasMarcadas(dgvListar, "Eliminar");
                            //Aqui Volvemos dinamica El codigo poniendo el valor de la llave primaria
                            string NombreLavePrimariaDetalle = "idProductoPromocion";

                            while (indice <= dgvListar.Rows.Count - 1)
                            {
                                DataGridViewRow Fila = dgvListar.Rows[indice];

                                int ValorDelaLLavePrimaria;

                                int.TryParse(Fila.Cells[NombreLavePrimariaDetalle].Value.ToString(), out ValorDelaLLavePrimaria);
                                Boolean Eliminar = Convert.ToBoolean(Fila.Cells["Eliminar"].Value);

                                if (ValorDelaLLavePrimaria == 0 && Eliminar == false)
                                {
                                    indice++;
                                    continue;
                                }

                                ProductoPromocionEN oRegistroEN = InformacionDeLaPromocion(Fila);
                                ProductoPromocionLN oRegistroLN = new ProductoPromocionLN();

                                string Operacion = "";

                                //El orden es importante porque si un usuario agrego una nueva persona pero lo marco para eliminar, no hacemos nada, solo lo quitamos de la lista.
                                if (ValorDelaLLavePrimaria == 0 && Eliminar == true)
                                {
                                    Operacion = "ELIMINAR FILA EN GRILLA";
                                }
                                //VALIDAREMOS PARA PODER ELIMINAR EL REGISTRO....
                                else if (ValorDelaLLavePrimaria > 0 && Eliminar == true)
                                {
                                    Operacion = "ELIMINAR";
                                }

                                else if (ValorDelaLLavePrimaria >= 0 && Eliminar == false)
                                {
                                    Operacion = "NINGUNA";
                                }

                                //Validaciones
                                if (Operacion == "ELIMINAR FILA EN GRILLA")
                                {
                                    dgvListar.Rows.Remove(Fila);
                                    if (dgvListar.RowCount <= 0)
                                    {
                                        indice++;
                                    }
                                    continue;
                                }

                                if (Operacion == "NINGUNA")
                                {
                                    indice++;
                                    continue;
                                }

                                if (Operacion == "ELIMINAR")
                                {
                                    if (oRegistroLN.Eliminar(oRegistroEN, Program.oDatosDeConexion))
                                    {
                                        dgvListar.Rows.Remove(Fila);
                                        oRegistroEN = null;
                                        oRegistroLN = null;
                                        if (dgvListar.RowCount <= 0)
                                        {
                                            indice++;
                                        }
                                        continue;
                                    }
                                    else
                                    {
                                        this.Cursor = Cursors.Default;
                                        throw new ArgumentException(oRegistroLN.Error);
                                    }
                                }
                            }
                        }
                    }
                }
            }catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }