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(); }
protected void btnEncaminharFooterExterno_Click(object sender, EventArgs e) { Model.Tramite tramite = new Model.Tramite(); TramiteCtrl controleTramite = new TramiteCtrl(); FluxoAssuntoCtrl controleFluxoAssunto = new FluxoAssuntoCtrl(); UndFuncionalCtrl controleUndFuncional = new UndFuncionalCtrl(); UsuariosControle controleUsuarios = new UsuariosControle(); tramite._dataEnvio = DateTime.Now; tramite._despacho = txtEncaminhamentoExterno.Text; tramite.Situacao._id = int.Parse(cbbSituacaoExterno.SelectedItem.Value.ToString()); tramite.Proc._IDPROC = int.Parse(txtIDPROC.Text); tramite.UndFuncOrigem.ID = int.Parse(controleUndFuncional.getUnidadeFuncionalAtual(txtIDPROC.Text)); tramite.UsuOrigem.UsuarioID = controleUsuarios.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; tramite.Fluxo._ID = int.Parse(controleFluxoAssunto.getFluxoAtual(txtIDPROC.Text)); tramite._orgaoExterno = int.Parse(cbbOrgaoExterno.SelectedItem.Value.ToString()); controleTramite.TramitarProcesso(tramite); controleTramite = null; controleUndFuncional = null; controleUsuarios = null; controleFluxoAssunto = null; tramite = null; GC.Collect(); DataSource.DataBind(); Grid.DataBind(); }
public System.Data.DataTable getProximaUnidadeFuncionalByFluxoNova(string processoID, string idAssunto, string situacaoID, string undOrcID) { SituacaoCtrl controleSituacao = new SituacaoCtrl(); Assunto controleAssunto = new Assunto(); TramiteCtrl controleTramite = new TramiteCtrl(); FluxoAssuntoCtrl controleFluxoAssunto = new FluxoAssuntoCtrl(); string fluxoAtual = controleFluxoAssunto.getFluxoAtual(processoID); string unidCod = undOrcID.ToString().Substring(2, 2); string unidORG = undOrcID.ToString().Substring(0, 2); Situacao situacao = new Situacao(); List<string> UnidadesFuncionais = new List<string>(); string ordenacao = ""; string sqlAssunto = "select * from webassunto where id = " + idAssunto; //Verifica se Assunto tem fluxo definido FbConnection conn = Persist.GetConn.getConn(); conn.Open(); FbCommand cmdAssunto = new FbCommand(sqlAssunto, conn); FirebirdSql.Data.FirebirdClient.FbDataReader drAssunto = cmdAssunto.ExecuteReader(); while (drAssunto.Read()) { ordenacao = drAssunto["EXIGEORDENACAO"].ToString(); } drAssunto.Close(); drAssunto.Dispose(); cmdAssunto.Dispose(); if (!ordenacao.Equals("1")) //Se não tem fluxo definido... { string sqlUND = "Select * from webunidadefuncional where unidorccod = " + unidCod + " unidorcorg = " + unidORG; FbCommand cmdUND = new FbCommand(sqlUND, conn); FirebirdSql.Data.FirebirdClient.FbDataReader drUND = cmdUND.ExecuteReader(); while (drUND.Read()) { UnidadesFuncionais.Add(drUND["UNIDFUNCID"].ToString()); } drUND.Close(); drUND.Dispose(); cmdUND.Dispose(); } else//Se tem fluxo definido... { if (controleSituacao.ehFinalDeFluxo(situacaoID)) //Se Situação selecionada indicar fim de fluxo { UndFuncionalCtrl controleUndFuncional = new UndFuncionalCtrl(); string undFunc = controleUndFuncional.getUnidadeFuncionalArquivo(); UnidadesFuncionais.Add(undFunc); } else { if (controleSituacao.TramiteTemSituacaoDeExcessao(controleTramite.RetornaUltimoTramite(processoID).ToString())) //Se o tramite indica um Fluxo que não seja natural (volta à um passo a frente) { string FlagSituacaoVolta = ""; string sqlExcVolta = "Select FLAG_SITUACAO_VOLTA from WEBTRAMITE WHERE ID = " + controleTramite.RetornaUltimoTramite(processoID).ToString(); FbCommand cmdExcVolta = new FbCommand(sqlExcVolta, conn); FirebirdSql.Data.FirebirdClient.FbDataReader drEX = cmdExcVolta.ExecuteReader(); while (drEX.Read()) { FlagSituacaoVolta = drEX["FLAG_SITUACAO_VOLTA"].ToString(); } drEX.Close(); drEX.Dispose(); cmdExcVolta.Dispose(); string sqlExc = "select * from unidadeorcamentaria uo " + "join webunidadefuncional uf on uf.unidorccod = uo.undcodigo and uf.unidorcorg = uo.undcodorgao " + "join webfluxoassunto fa on fa.idundfuncional = uf.unidfuncid " + "where fa.fluxoID = " + FlagSituacaoVolta + " and fa.idassunto = " + idAssunto; FbCommand cmdExc = new FbCommand(sqlExc, conn); FirebirdSql.Data.FirebirdClient.FbDataReader dr = cmdExc.ExecuteReader(); while (dr.Read()) { UnidadesFuncionais.Add(dr["UNIDFUNCID"].ToString()); } dr.Close(); dr.Dispose(); cmdExc.Dispose(); } else { object situacaoRetorno = null; object flagOrigem = null; string sqlSituacao = "Select * from WEBSITUACAOPROCESSO WHERE ID = " + situacaoID; //Verifica situacao do processo selecionada pelo usuario FbConnection connSit = Persist.GetConn.getConn(); FbCommand cmdSituacao = new FbCommand(sqlSituacao, connSit); connSit.Open(); FirebirdSql.Data.FirebirdClient.FbDataReader drSituacao = cmdSituacao.ExecuteReader(); while (drSituacao.Read()) { situacaoRetorno = drSituacao["FLUXOID"]; flagOrigem = drSituacao["FLAGORIGEM"]; } connSit.Close(); drSituacao.Close(); drSituacao.Dispose(); cmdSituacao.Dispose(); if (!string.IsNullOrEmpty(flagOrigem.ToString())) { if (string.IsNullOrEmpty(situacaoRetorno.ToString())) { object unidFuncional = null; string sql = "select first 1 idundfuncorigem from webtramite where idprocesso = " + processoID + "ORDER BY ID ASC"; FbCommand cmd = new FbCommand(sql, conn); FirebirdSql.Data.FirebirdClient.FbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { unidFuncional = dr["IDUNDFUNCORIGEM"]; UnidadesFuncionais.Add(dr["IDUNDFUNCORIGEM"].ToString()); } dr.Close(); dr.Dispose(); cmd.Dispose(); } else {//ALTERACAO 04062014 object unidFuncional = null; string sql = "select (CASE WHEN IDUNDFUNCIONAL IS NULL THEN (select first 1 idundfuncorigem from webtramite where idprocesso = " + processoID + " ORDER BY ID ASC)"+ " ELSE IDUNDFUNCIONAL END) IDUNDFUNCIONAL from webfluxoassunto WHERE FLUXOID = " + situacaoRetorno; FbCommand cmd = new FbCommand(sql, conn); FirebirdSql.Data.FirebirdClient.FbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { unidFuncional = dr["IDUNDFUNCIONAL"]; UnidadesFuncionais.Add(dr["IDUNDFUNCIONAL"].ToString()); } dr.Close(); dr.Dispose(); cmd.Dispose(); } } else { if (string.IsNullOrEmpty(situacaoRetorno.ToString()))// Se não tem parametro de retorno definido -> Segue Fluxo normal { object unidFuncional = null; string sqlFluxo = "select fluxoID, ordem," + "(CASE WHEN idundfuncional IS NULL then (select first 1 TRA.idundfuncorigem from webtramite TRA where idprocesso = " + processoID + " order by id ASC) " + " ELSE " + " (select IDUNDFUNCIONAL from web_fluxo_filhos flf1 join webfluxoassunto flx1 on flx1.fluxoid = flf1.id_fluxo_filho " + " where flf1.id_fluxo_filho = flf.id_fluxo_filho and flf1.id_fluxo_pai = flf.id_fluxo_pai) END) UNDFUNC " + "from web_fluxo_filhos flf join webfluxoassunto flx on flf.id_fluxo_filho = flx.fluxoid " + "where flf.id_fluxo_pai = ( select first 1 FluxoID from webtramite tra where tra.idprocesso = " + processoID + " order by ID desc)"; //CORREÇÃO 21/03/2014 FbConnection connFlx = Persist.GetConn.getConn(); FbCommand cmd = new FbCommand(sqlFluxo, connFlx); connFlx.Open(); FirebirdSql.Data.FirebirdClient.FbDataReader drFluxo = cmd.ExecuteReader(); while (drFluxo.Read()) { unidFuncional = drFluxo["UNDFUNC"]; UnidadesFuncionais.Add(drFluxo["UNDFUNC"].ToString()); } connFlx.Close(); drFluxo.Close(); drFluxo.Dispose(); cmd.Dispose(); } else //Se a situacao selecionada tem paramtro de retorno definido -> Buscar a Unidade Funcional referente ao fluxo definido como retorno na situacao { object unidFuncional = null; string sqlRetorno = "Select " + "CASE WHEN IDUNDFUNCIONAL IS NULL THEN " + " (SELECT FIRST 1 TRA.idundfuncorigem FROM WEBTRAMITE TRA WHERE IDPROCESSO = " + processoID + ") " + " ELSE IDUNDFUNCIONAL end IDUNDFUNC " + "from WEBFLUXOASSUNTO where FLUXOID = " + situacaoRetorno.ToString(); FbCommand cmd = new FbCommand(sqlRetorno, conn); FirebirdSql.Data.FirebirdClient.FbDataReader drRet = cmd.ExecuteReader(); while (drRet.Read()) { unidFuncional = drRet["IDUNDFUNC"].ToString(); UnidadesFuncionais.Add(drRet["IDUNDFUNC"].ToString()); } drRet.Close(); drRet.Dispose(); cmd.Dispose(); } } } } conn.Close(); } System.Data.DataTable table = new System.Data.DataTable(); table.Columns.Add("UNIDFUNCID", typeof(string)); table.Columns.Add("UNIDFUNCNOME", typeof(string)); foreach (string UndFunc in UnidadesFuncionais) { UnidadeFuncional undFunc = new UnidadeFuncional(); undFunc = getUndFuncByID(UndFunc); System.Data.DataRow[] drow = table.Select("UNIDFUNCID =" + undFunc.ID); table.Rows.Add(undFunc.ID, undFunc.unidFuncNome); } conn.Close(); //conn.Dispose(); controleSituacao = null; controleAssunto = null; controleTramite = null; controleFluxoAssunto = null; situacao = null; return table; }