public System.Data.DataTable getSituacaoByPerfilAssuntoFluxo(string assunto, string processo, string centroCusto)
        {
            string idUsu = "";
            string fluxo = "";
            string sql = "";
            Assunto controleAssunto = new Assunto();
            FluxoAssuntoCtrl controleFlucoAssunto = new FluxoAssuntoCtrl();
            ObjetivoComumDeGastoCtrl controleObjetivo = new ObjetivoComumDeGastoCtrl();
            UsuariosControle controleUsuarios = new UsuariosControle();

            assunto = controleAssunto.GetAssuntoByNome(assunto);
            idUsu = controleUsuarios.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID.ToString();
            fluxo = controleFlucoAssunto.getFluxoAtual(processo);

            string objComumGastos = controleObjetivo.testeTelaOGC(fluxo, centroCusto);

            if (!objComumGastos.Equals("OBRIGAR"))
            {

                sql = "select distinct(sp.id), sp.descricao, ps.idfluxo, USU.per_isn " +
                                "from websituacaoprocesso sp " +
                                "join webperfilsituacao ps on ps.idsituacao = sp.id " +
                                "join sci_perfis_usuarios pu on pu.per_isn = ps.idperfil " +
                                "join sci_usuarios usu on pu.per_isn = USU.per_isn " +
                                "join webassuntosituacao assit on assit.idsituacao = sp.id " +
                                "where ((USU.usu_codigo  = " + idUsu + " and ps.idfluxo = " + fluxo + " and assit.idassunto = " + assunto + ") or " +
                                "(USU.usu_codigo  = " + idUsu + " and ps.idfluxo is null and assit.idassunto = " + assunto + ")) and "+
                                "( FLAG_SITUACAO_COMPRA IS NULL )";

            }
            else {
                sql = "select distinct(sp.id), sp.descricao, ps.idfluxo, usu.per_isn " +
                                "from websituacaoprocesso sp " +
                                "join webperfilsituacao ps on ps.idsituacao = sp.id " +
                                "join sci_perfis_usuarios pu on pu.per_isn = ps.idperfil " +
                                "join sci_usuarios usu on pu.per_isn = usu.per_isn " +
                                "join webassuntosituacao assit on assit.idsituacao = sp.id " +
                                "where ((usu.usu_codigo  = " + idUsu + " and ps.idfluxo = " + fluxo + " and assit.idassunto = " + assunto + ") or " +
                                "(usu.usu_codigo  = " + idUsu + " and ps.idfluxo is null and assit.idassunto = " + assunto + ")) and "+
                                "( FLAG_SITUACAO_COMPRA IS NOT NULL )";
            }

            System.Data.DataTable dt = AcessoDados.AcessoDados.dtable(sql);
            return dt;
        }
        protected void pcEncaminhar_WindowCallback(object source, DevExpress.Web.ASPxPopupControl.PopupWindowCallbackArgs e)
        {
            SituacaoCtrl controleSituacao = new SituacaoCtrl();
            CentroDeCustoCtrl controleCentroCusto = new CentroDeCustoCtrl();
            ObjetivoComumDeGastoCtrl controleObjetivo = new ObjetivoComumDeGastoCtrl();
            FluxoAssuntoCtrl controleFluxoAssunto = new FluxoAssuntoCtrl();

            //txtTeste.Text = GetSelectedRowValueRadioButton("ID", ASPxGridView2);
            //txtAssunto.Text = GetSelectedRowValueRadioButton("DESCRICAO", ASPxGridView2);
            //txtExercicio.Text = GetSelectedRowValueRadioButton("EXERCICIO", ASPxGridView2);

            List<object> dadosGrid = GetSelectRowValueRadioNovo("ID", "DESCRICAO", "EXERCICIO", "VALORDID", "TRAMITEID", ASPxGridView2);

            string valorDID = string.Empty;

            foreach (List<object> obj in dadosGrid)
            {
                txtTeste.Text = obj[0].ToString();
                txtAssunto.Text = obj[1].ToString();
                txtExercicio.Text = obj[2].ToString();
                valorDID = obj[3].ToString();
                txtTramiteID.Text = obj[4].ToString();
            }

            var ctrlTramite = new TramiteCtrl();
            txtTramiteIDBancoDados.Text = ctrlTramite.RetornaUltimoTramite(txtTeste.Text).ToString();

            Session.Remove("IDPROCESSO");
            Session.Add("IDPROCESSO", txtTeste.Text);

            string centroCusto = controleCentroCusto.getCentroCustoByProcessoNumero(int.Parse(txtTeste.Text)).ToString();
            txtCentroCusto.Text = centroCusto;

            cbbSituacao.DataSourceID = string.Empty;
            cbbSituacao.DataSource = controleSituacao.getSituacaoByPerfilAssuntoFluxo(txtAssunto.Text, txtTeste.Text, centroCusto);
            cbbSituacao.DataBind();
            if (cbbSituacao.Items.Count == 1)
            {
                cbbSituacao.SelectedIndex = 0;
            }

            ObjectDataSource3.SelectParameters["centroCusto"].DefaultValue = centroCusto;
            ObjectDataSource3.DataBind();
            gridDID.DataBind();
            //string valorDID = GetSelectedRowValueRadioButton("VALORDID", ASPxGridView2);

            ASPxTextBox1.Text = controleObjetivo.testeTelaOGC(controleFluxoAssunto.getFluxoAtual(txtTeste.Text), centroCusto);

            controleSituacao = null;
            controleCentroCusto = null;
            controleObjetivo = null;
            controleFluxoAssunto = null;
            GC.Collect();
        }