public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_consultaAuditoria ");

            /// USER [ execute ]

            StringBuilder sb = new StringBuilder();

            string obs  = input_cont_dca.get_st_obs(),
                   nome = input_cont_dca.get_st_user();

            long nu_oper = 0,
                 val     = 0;

            // ## Se existe operador específico

            if (input_cont_dca.get_nu_oper().Length > 0)
            {
                nu_oper = Convert.ToInt32(input_cont_dca.get_nu_oper());
            }

            LOG_Audit aud_log = new LOG_Audit(this);

            bool ReqObs  = true;
            bool ReqNome = true;

            if (obs.Length == 0)
            {
                ReqObs = false;
            }
            if (nome.Length == 0)
            {
                ReqNome = false;
            }

            // ## Para datas especificas

            if (input_cont_dca.get_dt_ini().Length > 0 &&
                input_cont_dca.get_dt_fim().Length > 0)
            {
                if (!aud_log.select_rows_dt_ini_fim(input_cont_dca.get_dt_ini(),
                                                    input_cont_dca.get_dt_fim()))
                {
                    return(true);
                }
            }

            // ## Se somente data de inicio

            else if (input_cont_dca.get_dt_ini().Length > 0)
            {
                if (!aud_log.select_rows_dt_ini(input_cont_dca.get_dt_ini()))
                {
                    return(true);
                }
            }

            // ## Se somente data final

            else if (input_cont_dca.get_dt_fim().Length > 0)
            {
                if (!aud_log.select_rows_dt_fim(input_cont_dca.get_dt_fim()))
                {
                    return(true);
                }
            }

            // ## Se tiver alguma obs especifica

            else if (obs.Length > 0)
            {
                ReqObs = false;

                if (!aud_log.select_rows_obs(obs))
                {
                    return(true);
                }
            }

            // ## Seleciona tudo...

            else
            {
                if (!aud_log.selectAll())
                {
                    return(true);
                }
            }

            // ## Tabela auxiliar de operadores

            Hashtable hshOpers = new Hashtable();

            if (user.get_tg_nivel() == TipoUsuario.Administrador ||
                user.get_tg_nivel() == TipoUsuario.AdminGift)
            {
                // ## Para caso de administradores, filtrar somente
                // ## transações de seus usuários

                T_Usuario user_tb = new T_Usuario(this);

                if (user_tb.select_rows_empresa(user.get_st_empresa()))
                {
                    while (user_tb.fetch())
                    {
                        // ## indexa

                        hshOpers [user_tb.get_identity()] = "*";
                    }
                }
            }

            // ## busca registros selecionados

            while (aud_log.fetch())
            {
                val = aud_log.get_int_tg_operacao();

                // ## Confere se operador está dentro de uma
                // ## determinada empresa

                if (hshOpers.Count > 0)
                {
                    if (hshOpers [aud_log.get_fk_usuario()] == null)
                    {
                        continue;
                    }
                }

                // ## Confere operador especifico

                if (nu_oper > 0)
                {
                    if (val != nu_oper)
                    {
                        continue;
                    }
                }

                // ## Confere se Obs deve ser filtrada

                if (ReqObs)
                {
                    if (!aud_log.get_st_observacao().Contains(obs))
                    {
                        continue;
                    }
                }

                // ## Busca usuário em questão

                if (!user.selectIdentity(aud_log.get_fk_usuario()))
                {
                    continue;
                }

                // ## Se for nome em especifico

                if (ReqNome)
                {
                    if (!user.get_st_nome().Contains(nome))
                    {
                        continue;
                    }
                }

                // ## Copia dados para memória

                DadosAuditoria da = new DadosAuditoria();

                da.set_nu_oper(aud_log.get_tg_operacao());
                da.set_dt_operacao(aud_log.get_dt_operacao());
                da.set_st_usuario(user.get_st_nome());
                da.set_st_obs(aud_log.get_st_observacao());
                da.set_id_link(aud_log.get_fk_generic());

                DataPortable tmp = da as DataPortable;

                sb.Append(MemorySave(ref tmp));
                sb.Append(",");
            }

            // ## gera bloco de identificadores

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(true);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            output_st_csv_audit = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaAuditoria ");

            return(true);
        }