public Decimal AdicionarGrupoEmpresarialConEmpresas(String NOMBRE
            , List<grupoEmpresarial> listEmpresas)
        {
            Decimal ID_GRUPOEMPRESARIAL = 0;

            Boolean correcto = true;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                ID_GRUPOEMPRESARIAL = AdicionarGrupoEmpresarial(NOMBRE, conexion);

                if (ID_GRUPOEMPRESARIAL <= 0)
                {
                    correcto = false;
                    conexion.DeshacerTransaccion();
                    ID_GRUPOEMPRESARIAL = 0;
                }
                else
                {
                    if (listEmpresas.Count > 0)
                    {
                        cliente _cliente = new cliente(Empresa, Usuario);

                        foreach (grupoEmpresarial empresa in listEmpresas)
                        {
                            if (_cliente.ActualizarGrupoEmpresarialCliente(empresa.ID_EMPRESA, ID_GRUPOEMPRESARIAL, conexion) == false)
                            {
                                correcto = false;
                                conexion.DeshacerTransaccion();
                                ID_GRUPOEMPRESARIAL = 0;
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch
            {
                conexion.DeshacerTransaccion();
                ID_GRUPOEMPRESARIAL = 0;
                correcto = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return ID_GRUPOEMPRESARIAL;
        }
        public Boolean ActualizarGrupoEmpresarialConEMpresas(Decimal ID_GRUPOEMPRESARIAL
            , String NOMBRE
            , List<grupoEmpresarial> listaEmpresas)
        {
            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            Boolean correcto = true;
            try
            {
                if (ActualizarGrupoEmpresarial(ID_GRUPOEMPRESARIAL, NOMBRE, conexion) == false)
                {
                    conexion.DeshacerTransaccion();
                    correcto = false;
                }
                else
                {
                    cliente _cliente = new cliente(Empresa, Usuario);
                    DataTable tablaEmpresasAsociadas = _cliente.ObtenerEmpresasAsociadasAGrupo(ID_GRUPOEMPRESARIAL, conexion);

                    Boolean existeEmpresa = false;

                    if (tablaEmpresasAsociadas.Rows.Count > 0)
                    {
                        foreach (DataRow fila in tablaEmpresasAsociadas.Rows)
                        {
                            existeEmpresa = false;

                            foreach (grupoEmpresarial empresa in listaEmpresas)
                            {
                                if (empresa.ID_EMPRESA == Convert.ToDecimal(fila["ID_EMPRESA"]))
                                {
                                    existeEmpresa = true;
                                    break;
                                }
                            }

                            if (existeEmpresa == false)
                            {
                                if (_cliente.DesligarEmpresaDeGrupoEmpresarial(Convert.ToDecimal(fila["ID_EMPRESA"]), conexion) == false)
                                {
                                    conexion.DeshacerTransaccion();
                                    correcto = false;
                                    break;
                                }
                            }
                        }
                    }

                    if (correcto == true)
                    {
                        foreach (grupoEmpresarial empresa in listaEmpresas)
                        {
                            if (_cliente.ActualizarGrupoEmpresarialCliente(empresa.ID_EMPRESA, ID_GRUPOEMPRESARIAL, conexion) == false)
                            {
                                correcto = false;
                                conexion.DeshacerTransaccion();
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                correcto = false;
                MensajeError = ex.Message;
            }
            finally
            {
                conexion.Desconectar();
            }

            return correcto;
        }