private ProductoSustitutosEN InformacionDelProductoSustituto(DataGridViewRow Fila)
        {
            ProductoSustitutosEN oRegistroEN = new ProductoSustitutosEN();

            int idSustituto;

            int.TryParse(Fila.Cells["idSustituto"].Value.ToString(), out idSustituto);

            oRegistroEN.oSutitutoEN.idProducto     = idSustituto;
            oRegistroEN.oSutitutoEN.Codigo         = Fila.Cells["Codigo"].Value.ToString();
            oRegistroEN.oSutitutoEN.CodigoDeBarra  = Fila.Cells["CodigoDeBarra"].Value.ToString();
            oRegistroEN.oSutitutoEN.Nombre         = Fila.Cells["Nombre"].Value.ToString();
            oRegistroEN.oSutitutoEN.NombreGenerico = Fila.Cells["NombreGenerico"].Value.ToString();

            int idProductoSustitutos;

            int.TryParse(Fila.Cells["idProductoSustitutos"].Value.ToString(), out idProductoSustitutos);
            oRegistroEN.idProductoSustitutos = idProductoSustitutos;

            oRegistroEN.oProductoEN.idProducto    = ValorLlavePrimariaEntidad;
            oRegistroEN.oProductoEN.Nombre        = NombreDelProducto;
            oRegistroEN.oProductoEN.Codigo        = CodigoProducto;
            oRegistroEN.oProductoEN.CodigoDeBarra = CodigoDeBarraDelProducto;

            /*Informacion general*/
            oRegistroEN.oLoginEN              = Program.oLoginEN;
            oRegistroEN.idUsuarioDeCreacion   = Program.oLoginEN.idUsuario;
            oRegistroEN.idUsuarioModificacion = Program.oLoginEN.idUsuario;
            oRegistroEN.FechaDeCreacion       = System.DateTime.Now;
            oRegistroEN.FechaDeModificacion   = System.DateTime.Now;

            return(oRegistroEN);
        }
        private DataTable InformacionDeLosContendoresPorSeccion()
        {
            DataTable ODatos = null;

            try
            {
                ProductoSustitutosEN oRegistroEN = new ProductoSustitutosEN();
                ProductoSustitutosLN oRegistroLN = new ProductoSustitutosLN();

                oRegistroEN.oProductoEN.idProducto = ValorLlavePrimariaEntidad;
                oRegistroEN.OrderBy = " Order By p.Nombre asc ";

                if (oRegistroLN.ListadoDeProductosXIdProducto(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);
            }
        }
示例#3
0
        private string InformacionDelRegistro(ProductoSustitutosEN oRegistroEN)
        {
            string Cadena = @"idProductoSustitutos: {0}, idProducto: {1}, idSustituto: {2}, idUsuarioDeCreacion: {3}, FechaDeCreacion: {4}, idUsuarioModificacion: {5}, FechaDeModificacion: {6}";

            Cadena = string.Format(Cadena, oRegistroEN.idProductoSustitutos, oRegistroEN.oProductoEN.idProducto, oRegistroEN.oSutitutoEN.idProducto, oRegistroEN.idUsuarioDeCreacion, oRegistroEN.FechaDeCreacion, oRegistroEN.idUsuarioModificacion, oRegistroEN.FechaDeModificacion);
            Cadena = Cadena.Replace(",", Environment.NewLine);
            return(Cadena);
        }
示例#4
0
        public bool Eliminar(ProductoSustitutosEN oRegistroEN, DatosDeConexionEN oDatos)
        {
            oTransaccionesAD = new TransaccionesAD();

            try
            {
                Cnn = new MySqlConnection(TraerCadenaDeConexion(oDatos));
                Cnn.Open();

                Comando             = new MySqlCommand();
                Comando.Connection  = Cnn;
                Comando.CommandType = CommandType.Text;

                Consultas           = @"Delete from ProductoSustitutos Where idProductoSustitutos = @idProductoSustitutos;";
                Comando.CommandText = Consultas;

                Comando.Parameters.Add(new MySqlParameter("@idProductoSustitutos", MySqlDbType.Int32)).Value = oRegistroEN.idProductoSustitutos;

                Comando.ExecuteNonQuery();

                DescripcionDeOperacion = string.Format("El registro fue Eliminado Correctamente. {0} {1}", Environment.NewLine, InformacionDelRegistro(oRegistroEN));

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "Eliminar", "Elminar Registro", "CORRECTO");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(true);
            }
            catch (Exception ex)
            {
                this.Error = ex.Message;

                DescripcionDeOperacion = string.Format("Se produjo el seguiente error: '{2}' al eliminar el registro. {0} {1} ", Environment.NewLine, InformacionDelRegistro(oRegistroEN), ex.Message);

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "Eliminar", "Eliminar Registro", "ERROR");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(false);
            }
            finally
            {
                if (Cnn != null)
                {
                    if (Cnn.State == ConnectionState.Open)
                    {
                        Cnn.Close();
                    }
                }

                Cnn              = null;
                Comando          = null;
                Adaptador        = null;
                oTransaccionesAD = null;
            }
        }
 public bool ListadoDeProductosXIdProducto(ProductoSustitutosEN oREgistroEN, DatosDeConexionEN oDatos)
 {
     if (oProductoSustitutosAD.ListadoDeProductosXIdProducto(oREgistroEN, oDatos))
     {
         Error = string.Empty;
         return(true);
     }
     else
     {
         Error = oProductoSustitutosAD.Error;
         return(false);
     }
 }
 public bool Agregar(ProductoSustitutosEN oREgistroEN, DatosDeConexionEN oDatos)
 {
     if (oProductoSustitutosAD.Agregar(oREgistroEN, oDatos))
     {
         Error = string.Empty;
         return(true);
     }
     else
     {
         Error = oProductoSustitutosAD.Error;
         return(false);
     }
 }
 public bool ValidarSiElRegistroEstaVinculado(ProductoSustitutosEN oREgistroEN, DatosDeConexionEN oDatos, string TipoDeOperacion)
 {
     if (oProductoSustitutosAD.ValidarSiElRegistroEstaVinculado(oREgistroEN, oDatos, TipoDeOperacion))
     {
         Error = oProductoSustitutosAD.Error;
         return(true);
     }
     else
     {
         Error = string.Empty;
         return(false);
     }
 }
示例#8
0
        public bool ListadoParaReportes(ProductoSustitutosEN oRegistroEN, DatosDeConexionEN oDatos)
        {
            try
            {
                Cnn = new MySqlConnection(TraerCadenaDeConexion(oDatos));
                Cnn.Open();

                Comando             = new MySqlCommand();
                Comando.Connection  = Cnn;
                Comando.CommandType = CommandType.Text;

                Consultas           = string.Format(@"SELECT ps.idProductoSustitutos, ps.idProducto, ps.idSustituto, 
	                ps.Nombre as 'Producto', NombreGenerico, NombreComun, Descripcion,
                    ps.idUsuarioDeCreacion, ps.FechaDeCreacion, u.Nombre as 'UsuarioDeCreacion',
	                ps.idUsuarioModificacion, ps.FechaDeModificacion, u1.Nombre as 'UsuarioDeModificacion'
                 FROM  productosustitutos as ps
                 inner join producto as p on p.idProducto = ps.idSustituto
                inner join usuario as u on u.idUsuario = ps.idUsuarioDeCreacion
                left join usuario as u1 on u1.idUsuario = ps.idUsuarioModificacion
                Where idProductoSustitutos > 0 {0} {1} ", oRegistroEN.Where, oRegistroEN.OrderBy);
                Comando.CommandText = Consultas;

                Adaptador = new MySqlDataAdapter();
                DT        = new DataTable();

                Adaptador.SelectCommand = Comando;
                Adaptador.Fill(DT);

                return(true);
            }
            catch (Exception ex)
            {
                this.Error = ex.Message;

                return(false);
            }
            finally
            {
                if (Cnn != null)
                {
                    if (Cnn.State == ConnectionState.Open)
                    {
                        Cnn.Close();
                    }
                }

                Cnn       = null;
                Comando   = null;
                Adaptador = null;
            }
        }
        public bool Eliminar(ProductoSustitutosEN oREgistroEN, DatosDeConexionEN oDatos)
        {
            if (string.IsNullOrEmpty(oREgistroEN.idProductoSustitutos.ToString()) || oREgistroEN.idProductoSustitutos == 0)
            {
                this.Error = @"Se debe de seleccionar un elemento de la lista";
                return(false);
            }

            if (oProductoSustitutosAD.Eliminar(oREgistroEN, oDatos))
            {
                Error = string.Empty;
                return(true);
            }
            else
            {
                Error = oProductoSustitutosAD.Error;
                return(false);
            }
        }
示例#10
0
        private TransaccionesEN InformacionDelaTransaccion(ProductoSustitutosEN oProductoSustitutos, String TipoDeOperacion, String Descripcion, String Estado)
        {
            TransaccionesEN oRegistroEN = new TransaccionesEN();

            oRegistroEN.idregistro      = oProductoSustitutos.idProductoSustitutos;
            oRegistroEN.Modelo          = "ProductoSustitutosAD";
            oRegistroEN.Modulo          = "Producto";
            oRegistroEN.Tabla           = "ProductoSustitutos";
            oRegistroEN.tipodeoperacion = TipoDeOperacion;
            oRegistroEN.Estado          = Estado;
            oRegistroEN.ip                    = oProductoSustitutos.oLoginEN.NumeroIP;
            oRegistroEN.idusuario             = oProductoSustitutos.oLoginEN.idUsuario;
            oRegistroEN.idusuarioaprueba      = oProductoSustitutos.oLoginEN.idUsuario;
            oRegistroEN.descripciondelusuario = DescripcionDeOperacion;
            oRegistroEN.descripcioninterna    = Descripcion;
            oRegistroEN.NombreDelEquipo       = oProductoSustitutos.oLoginEN.NombreDelComputador;

            return(oRegistroEN);
        }
示例#11
0
        public bool ValidarRegistroDuplicado(ProductoSustitutosEN oRegistroEN, DatosDeConexionEN oDatos, string TipoDeOperacion)
        {
            oTransaccionesAD = new TransaccionesAD();

            try
            {
                Cnn = new MySqlConnection(TraerCadenaDeConexion(oDatos));
                Cnn.Open();

                Comando             = new MySqlCommand();
                Comando.Connection  = Cnn;
                Comando.CommandType = CommandType.Text;

                switch (TipoDeOperacion.Trim().ToUpper())
                {
                case "AGREGAR":

                    Consultas = @"SELECT CASE WHEN EXISTS(Select idProductoSustitutos from ProductoSustitutos where idProducto = @idProducto AND idSustituto = @idSustituto) THEN 1 ELSE 0 END AS 'RES'";
                    Comando.Parameters.Add(new MySqlParameter("@idProducto", MySqlDbType.Int32)).Value  = oRegistroEN.oProductoEN.idProducto;
                    Comando.Parameters.Add(new MySqlParameter("@idSustituto", MySqlDbType.Int32)).Value = oRegistroEN.oSutitutoEN.idProducto;

                    break;

                case "ACTUALIZAR":

                    Consultas = @"SELECT CASE WHEN EXISTS(Select idProductoSustitutos from ProductoSustitutos where idProducto = @idProducto AND idSustituto = @idSustituto and idProductoSustitutos <> @idProductoSustitutos) THEN 1 ELSE 0 END AS 'RES'";
                    Comando.Parameters.Add(new MySqlParameter("@idProducto", MySqlDbType.Int32)).Value           = oRegistroEN.oProductoEN.idProducto;
                    Comando.Parameters.Add(new MySqlParameter("@idSustituto", MySqlDbType.Int32)).Value          = oRegistroEN.oSutitutoEN.idProducto;
                    Comando.Parameters.Add(new MySqlParameter("@idProductoSustitutos", MySqlDbType.Int32)).Value = oRegistroEN.idProductoSustitutos;

                    break;

                default:
                    throw new ArgumentException("La aperación solicitada no esta disponible");
                }

                Comando.CommandText = Consultas;

                Adaptador = new MySqlDataAdapter();
                DT        = new DataTable();

                Adaptador.SelectCommand = Comando;
                Adaptador.Fill(DT);

                if (Convert.ToInt32(DT.Rows[0]["RES"].ToString()) > 0)
                {
                    DescripcionDeOperacion = string.Format("Ya existe información del Registro dentro de nuestro sistema: {0} {1}", Environment.NewLine, InformacionDelRegistro(oRegistroEN));
                    this.Error             = DescripcionDeOperacion;
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                this.Error = ex.Message;

                DescripcionDeOperacion = string.Format("Se produjo el seguiente error: '{2}' al validar el registro. {0} {1} ", Environment.NewLine, InformacionDelRegistro(oRegistroEN), ex.Message);

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "VALIDAR", "REGISTRO DUPLICADO DENTRO DE LA BASE DE DATOS", "ERROR");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(false);
            }
            finally
            {
                if (Cnn != null)
                {
                    if (Cnn.State == ConnectionState.Open)
                    {
                        Cnn.Close();
                    }
                }

                Cnn              = null;
                Comando          = null;
                Adaptador        = null;
                oTransaccionesAD = null;
            }
        }
示例#12
0
        public bool ValidarSiElRegistroEstaVinculado(ProductoSustitutosEN oRegistroEN, DatosDeConexionEN oDatos, string TipoDeOperacion)
        {
            oTransaccionesAD = new TransaccionesAD();

            try
            {
                Cnn = new MySqlConnection(TraerCadenaDeConexion(oDatos));
                Cnn.Open();

                Comando             = new MySqlCommand();
                Comando.Connection  = Cnn;
                Comando.CommandType = CommandType.StoredProcedure;
                Comando.CommandText = "ValidarSiElRegistroEstaVinculado";

                Comando.Parameters.Add(new MySqlParameter("@CampoABuscar_", MySqlDbType.VarChar, 200)).Value = "idProductoSustitutos";
                Comando.Parameters.Add(new MySqlParameter("@ValorCampoABuscar", MySqlDbType.Int32)).Value    = oRegistroEN.idProductoSustitutos;
                Comando.Parameters.Add(new MySqlParameter("@ExcluirTabla_", MySqlDbType.VarChar, 200)).Value = string.Empty;

                Adaptador = new MySqlDataAdapter();
                DT        = new DataTable();

                Adaptador.SelectCommand = Comando;
                Adaptador.Fill(DT);

                if (DT.Rows[0].ItemArray[0].ToString().ToUpper() == "NINGUNA".ToUpper())
                {
                    return(false);
                }
                else
                {
                    this.Error             = String.Format("La Operación: '{1}', {0} no se puede completar por que el registro: {0} '{2}', {0} se encuentra asociado con: {0} {3}", Environment.NewLine, TipoDeOperacion, InformacionDelRegistro(oRegistroEN), oTransaccionesAD.ConvertirValorDeLaCadena(DT.Rows[0].ItemArray[0].ToString()));
                    DescripcionDeOperacion = this.Error;

                    //Agregamos la Transacción....
                    TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "VALIDAR", "VALIDAR SI EL REGISTRO ESTA VINCULADO", "CORRECTO");
                    oTransaccionesAD.Agregar(oTran, oDatos);

                    return(true);
                }
            }
            catch (Exception ex)
            {
                this.Error = ex.Message;

                DescripcionDeOperacion = string.Format("Se produjo el seguiente error: '{2}' al validar el registro. {0} {1} ", Environment.NewLine, InformacionDelRegistro(oRegistroEN), ex.Message);

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "VALIDAR", "VALIDAR SI EL REGISTRO ESTA VINCULADO", "ERROR");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(false);
            }
            finally
            {
                if (Cnn != null)
                {
                    if (Cnn.State == ConnectionState.Open)
                    {
                        Cnn.Close();
                    }
                }

                Cnn              = null;
                Comando          = null;
                Adaptador        = null;
                oTransaccionesAD = null;
            }
        }
示例#13
0
        public bool Agregar(ProductoSustitutosEN oRegistroEN, DatosDeConexionEN oDatos)
        {
            oTransaccionesAD = new TransaccionesAD();

            try
            {
                Cnn = new MySqlConnection(TraerCadenaDeConexion(oDatos));
                Cnn.Open();

                Comando             = new MySqlCommand();
                Comando.Connection  = Cnn;
                Comando.CommandType = CommandType.Text;

                Consultas = @"
                                
                INSERT INTO productosustitutos
                (idProducto, idSustituto, idUsuarioDeCreacion, FechaDeCreacion, 
                idUsuarioModificacion, FechaDeModificacion)
                VALUES
                (@idProducto, @idSustituto, @idUsuarioDeCreacion, current_timestamp(), 
                @idUsuarioModificacion, current_timestamp());

                Select last_insert_id() as 'ID';";

                Comando.CommandText = Consultas;

                Comando.Parameters.Add(new MySqlParameter("@idProducto", MySqlDbType.Int32)).Value            = oRegistroEN.oProductoEN.idProducto;
                Comando.Parameters.Add(new MySqlParameter("@idSustituto", MySqlDbType.Int32)).Value           = oRegistroEN.oSutitutoEN.idProducto;
                Comando.Parameters.Add(new MySqlParameter("@idUsuarioDeCreacion", MySqlDbType.Int32)).Value   = oRegistroEN.idUsuarioDeCreacion;
                Comando.Parameters.Add(new MySqlParameter("@idUsuarioModificacion", MySqlDbType.Int32)).Value = oRegistroEN.idUsuarioModificacion;

                Adaptador = new MySqlDataAdapter();
                DT        = new DataTable();

                Adaptador.SelectCommand = Comando;
                Adaptador.Fill(DT);

                oRegistroEN.idProductoSustitutos = Convert.ToInt32(DT.Rows[0].ItemArray[0].ToString());

                DescripcionDeOperacion = string.Format("El registro fue Insertado Correctamente. {0} {1}", Environment.NewLine, InformacionDelRegistro(oRegistroEN));

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "Agregar", "Agregar Nuevo Registro", "CORRECTO");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(true);
            }
            catch (Exception ex)
            {
                this.Error = ex.Message;

                DescripcionDeOperacion = string.Format("Se produjo el seguiente error: '{2}' al insertar el registro. {0} {1} ", Environment.NewLine, InformacionDelRegistro(oRegistroEN), ex.Message);

                //Agregamos la Transacción....
                TransaccionesEN oTran = InformacionDelaTransaccion(oRegistroEN, "Agregar", "Agregar Nuevo Registro", "ERROR");
                oTransaccionesAD.Agregar(oTran, oDatos);

                return(false);
            }
            finally {
                if (Cnn != null)
                {
                    if (Cnn.State == ConnectionState.Open)
                    {
                        Cnn.Close();
                    }
                }

                Cnn              = null;
                Comando          = null;
                Adaptador        = null;
                oTransaccionesAD = null;
            }
        }
        private bool InsertarActualizarOEliminarContenedor()
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;

                if (EvaluarDataGridView(dgvListar) == false)
                {
                    MessageBox.Show("No se encontró registros a procesar", "Evaluación de registros en la lista", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return(true);
                }
                else
                {
                    MessageBox.Show(DescripcionDetallaDelContenedor(dgvListar), "Registros a procesar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                int RowsContacto = dgvListar.Rows.Count;

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

                    while (indice <= dgvListar.Rows.Count - 1)
                    {
                        this.Cursor = Cursors.WaitCursor;


                        IncrementarBarraDeProgreso(IndiceProgreso + 1);
                        DataGridViewRow Fila = dgvListar.Rows[indice];

                        int ValorDelaLLavePrimaria;

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

                        if (ValorDelaLLavePrimaria == 0 && Actualizar == false)
                        {
                            if (Eliminar == true)
                            {
                                Fila.DefaultCellStyle.Font               = new Font(Font.Name, Font.Size, FontStyle.Regular);
                                Fila.DefaultCellStyle.ForeColor          = Color.Black;
                                Fila.DefaultCellStyle.SelectionForeColor = Color.Black;
                                Fila.Cells["Eliminar"].Value             = false;
                            }

                            indice++;
                            IndiceProgreso++;
                            continue;
                        }

                        if (LosDatosIngresadosEnGrillaSonCorrectos(Fila) == false)
                        {
                            if (indice < dgvListar.Rows.Count - 1)
                            {
                                if (MessageBox.Show("¿Desea continuar con los restantes registros a procesar?", "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                                {
                                    OcultarBarraDeProgreso();
                                    return(false);
                                }
                                else
                                {
                                    indice++;
                                    IndiceProgreso++;
                                    continue;
                                }
                            }
                            else
                            {
                                OcultarBarraDeProgreso();
                                return(false);
                            }
                        }

                        ProductoSustitutosEN oRegistroEN = InformacionDelProductoSustituto(Fila);
                        ProductoSustitutosLN oRegistroLN = new ProductoSustitutosLN();

                        //DETERMINAMOS LA OPERACION A REALIZAR
                        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 QUE LA LLAVE PRIMARIA SEA CERO Y EL CONTARO SEA MAYOR A CERO PARA UN NUEVO VINCULO ENTRE PROVEEDOR Y CONTACTO
                        else if (ValorDelaLLavePrimaria == 0)
                        {
                            Operacion = "AGREGAR";
                        }
                        //VALIDAREMOS PARA PODER ELIMINAR EL REGISTRO....
                        else if (ValorDelaLLavePrimaria > 0 && Eliminar == true)
                        {
                            Operacion = "ELIMINAR";
                        }
                        //VALIDAREMOS PARA PODER ACTUALIZAR EL REGISTRO
                        else if (ValorDelaLLavePrimaria > 0 && Actualizar == true)
                        {
                            Operacion = "ACTUALIZAR";
                        }
                        //NO EXISTE NINGUNA OPERACION
                        else if (ValorDelaLLavePrimaria >= 0 && Actualizar == false && Eliminar == false)
                        {
                            Operacion = "NINGUNA";
                        }

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

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

                        if (Operacion == "AGREGAR")
                        {
                            if (oRegistroLN.ValidarRegistroDuplicado(oRegistroEN, Program.oDatosDeConexion, Operacion))
                            {
                                OcultarBarraDeProgreso();
                                this.Cursor = Cursors.Default;
                                MessageBox.Show(oRegistroLN.Error, Operacion, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                return(false);
                            }
                        }

                        if (Operacion == "ACTUALIZAR")
                        {
                            if (oRegistroLN.ValidarRegistroDuplicado(oRegistroEN, Program.oDatosDeConexion, Operacion))
                            {
                                OcultarBarraDeProgreso();
                                this.Cursor = Cursors.Default;
                                MessageBox.Show(oRegistroLN.Error, Operacion, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                return(false);
                            }
                        }

                        if (Operacion == "ELIMINAR")
                        {
                            //if (oRegistrosLN.ExisteEmpleadoVinculadoAAuxiliaresDePlanillaGeneralDetalle(oRegistrosEN, Program.oDatosConexionesEN, "ELIMINAR"))
                            //{
                            //    this.Cursor = Cursors.Default;
                            //    DialogResult Respuesta = MessageBox.Show(oRegistrosLN.Error + "\n\n¿Desea continuar con el proceso de eliminación para los empleados restantes?", this.OperacionARealizar, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                            //    if (Respuesta == DialogResult.No)
                            //    {
                            //        OcultarBarraDeProgreso();
                            //        return false;
                            //    }
                            //    else
                            //    {
                            //        indice++;
                            //        indice_progreso++;
                            //        continue;
                            //    }
                            //}
                        }

                        //OPERACIONES
                        if (Operacion == "AGREGAR")
                        {
                            if (oRegistroLN.Agregar(oRegistroEN, Program.oDatosDeConexion))
                            {
                                Fila.Cells[NombreLavePrimariaDetalle].Value = oRegistroEN.idProductoSustitutos;
                                Fila.Cells["Actualizar"].Value = false;
                                oRegistroEN = null;
                                oRegistroLN = null;
                                indice++;
                                IndiceProgreso++;
                                continue;
                            }
                            else
                            {
                                OcultarBarraDeProgreso();
                                this.Cursor = Cursors.Default;
                                MessageBox.Show(oRegistroLN.Error, Operacion, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                oRegistroEN = null;
                                oRegistroLN = null;
                                return(false);
                            }
                        }

                        if (Operacion == "ACTUALIZAR")
                        {
                            if (oRegistroLN.Actualizar(oRegistroEN, Program.oDatosDeConexion))
                            {
                                dgvListar.Rows[Fila.Index].Cells["Actualizar"].Value = false;
                                oRegistroEN = null;
                                oRegistroLN = null;
                                indice++;
                                IndiceProgreso++;
                                continue;
                            }
                            else
                            {
                                this.Cursor = Cursors.Default;
                                MessageBox.Show(oRegistroLN.Error, Operacion, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                OcultarBarraDeProgreso();
                                oRegistroEN = null;
                                oRegistroLN = null;
                                return(false);
                            }
                        }

                        if (Operacion == "ELIMINAR")
                        {
                            if (oRegistroLN.Eliminar(oRegistroEN, Program.oDatosDeConexion))
                            {
                                dgvListar.Rows.Remove(Fila);
                                oRegistroEN = null;
                                oRegistroLN = null;
                                if (dgvListar.RowCount <= 0)
                                {
                                    indice++;
                                }
                                IndiceProgreso++;
                                continue;
                            }
                            else
                            {
                                OcultarBarraDeProgreso();
                                this.Cursor = Cursors.Default;
                                MessageBox.Show(oRegistroLN.Error, Operacion, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                oRegistroEN = null;
                                oRegistroLN = null;
                                return(false);
                            }
                        }

                        this.Cursor = Cursors.Default;
                    }

                    OcultarBarraDeProgreso();
                    return(true);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Información del Contenedor", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }