public static string Persistir(PROCESSO proc, string op) { if (op == "new") { string numeroProcesso = string.Empty; UsuariosControle ctrlUsu = new UsuariosControle(); TramiteCtrl controleTramite = new TramiteCtrl(); AcessoDados.AcessoDados.abrirConn(); string sqlGenID = "select gen_id(GEN_WEBPROCESSO_ID,1) from rdb$database"; FirebirdSql.Data.FirebirdClient.FbDataReader drGenPRO = AcessoDados.AcessoDados.DataReader(sqlGenID); while (drGenPRO.Read()) { proc._IDPROC = int.Parse(drGenPRO["GEN_ID"].ToString()); } AcessoDados.AcessoDados.fecharConn(); proc.Env._ID = EnvolvidoCtrl.Persistir(proc.Env); string exercicio = Configuracoes.Dados.getExercicioAtual(); string numProcesso = Configuracoes.Dados.getNumeroProcesso(); string sqlProcesso = "insert into WEBPROCESSO(ID,NUMERO,IDASSUNTO,IDPREFEITURA,CORPO,DATAHORACADASTRO,NOOUTROSISTEMA,RESPONSAVEL,IDENVOLVIDO,IDPRIORIDADE,EXERCICIO)VALUES" + "(" + proc._IDPROC + ",'" + numProcesso + "'," + proc._IDASSUNTO + "," + proc._IDPREFEITURA + ",'" + proc._CORPO + "','" + DateTime.Now.ToShortDateString().Replace("/", ".") + "'," + "'" + proc._NOOUTROSISTEMA + "','" + proc._RESPONSAVEL + "',"+ proc.Env._ID+","+ proc.Prio._id+",'"+ exercicio +"')"; AcessoDados.AcessoDados.executar(sqlProcesso); //proc._NUMERO = proc._IDPROC.ToString() + exercicio;// DateTime.Now.Year; proc._NUMERO = numProcesso; //1º registro do tramite Tramite tra = new Tramite(); tra._dataEnvio = DateTime.Now; tra._dataRecebimento = DateTime.Now; tra._despacho = null; tra.UsuOrigem.UsuarioID = ctrlUsu.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; tra.UsuDestino.UsuarioID = tra.UsuOrigem.UsuarioID; tra.UndFuncOrigem.ID = UndFuncionalCtrl.getUndFuncByUsuID(tra.UsuOrigem.UsuarioID.ToString()); tra.UndFuncDestino.ID = tra.UndFuncOrigem.ID; tra.Proc._IDPROC = proc._IDPROC; tra.Fluxo._ID = FluxoAssuntoCtrl.getPrimeiroFluxo("1")._ID; tra.Situacao._id = 46;//Novo Fluxo Maranguape //tra.Situacao._id = 1; //Velho Fluxo controleTramite.TramitarProcesso(tra); //2º registro do tramite //Tramite tra2 = new Tramite(); //tra2._dataEnvio = DateTime.Now; //tra2._despacho = null; //tra2.UsuOrigem.UsuarioID = UsuariosControle.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; //tra2.UndFuncOrigem.ID = UndFuncionalCtrl.getUndFuncByUsuID(tra.UsuOrigem.UsuarioID.ToString()); //tra2.UndFuncDestino.ID = FluxoAssuntoCtrl.getPrimeiroFluxo("1").UndFunc.ID; //tra2.Fluxo._ID = FluxoAssuntoCtrl.getPrimeiroFluxo("1")._ID; //tra2.Proc._IDPROC = proc._IDPROC; //tra2.Situacao._id = 1; //TramiteCtrl.TramitarProcesso(tra2); } else { if(op == "edt") { } } return proc._NUMERO; }
//Grava os dados do DID Finalizado e persiste no tramite public string[] gravaDID(string procNumero) { //retorno[0] = Mensagem; //retorno[1] = Numero do processo; int procID = 0; string[] retorno = new string[2]; var conn = new FbConnection(); conn = Persist.GetConn.getConn(); using (conn) { conn.Open(); string query = "Select id from webprocesso where numero =" + procNumero; var cmd = new FbCommand(query, conn); var dr = cmd.ExecuteReader(); while (dr.Read()) { procID = (int)dr["id"]; } } var tramiteCtrl = new TramiteCtrl(); if (!tramiteCtrl.processoTemPrimeiroTramite(procID.ToString())) { string idUsu = ""; string idUndFunc = ""; string undOrc = ""; var usuarioCtrl = new UsuariosControle(); var controleTramite = new TramiteCtrl(); var usuarioInfo = usuarioCtrl.getSessionUsuarioInfo(); idUsu = usuarioInfo.Item2; idUndFunc = usuarioInfo.Item3; undOrc = usuarioInfo.Item4; var tra = new Tramite(); tra._dataEnvio = DateTime.Now; tra._dataRecebimento = DateTime.Now; tra._despacho = null; tra.UsuOrigem.UsuarioID = int.Parse(idUsu); tra.UsuDestino.UsuarioID = int.Parse(idUsu); tra.UndFuncOrigem.ID = int.Parse(idUndFunc); tra.UndFuncDestino.ID = int.Parse(idUndFunc); tra.Proc._IDPROC = procID; tra.Fluxo._ID = FluxoAssuntoCtrl.getPrimeiroFluxo("1")._ID; tra.Situacao._id = 46;//Novo Fluxo Maranguape controleTramite.TramitarProcesso(tra); } retorno[0] = "Processo "+ procNumero + " gravado com sucesso!!!"; retorno[1] = procNumero; return retorno; }
protected void btnRetornar_Click(object sender, EventArgs e) { string idProc = GetSelectedRowValueRadioButton("ID"); TramiteCtrl controleTramite = new TramiteCtrl(); controleTramite.MarcarComoRecebido(idProc); DataSource.DataBind(); Grid.DataBind(); }
public static string Persistir(PROCESSO proc, string op, string procPai, string tipoLiqPag, double valor, string notaFiscal, string dataLiquidacao, string dataAceiteNF) { if (op == "new") { UsuariosControle ctrlUsu = new UsuariosControle(); TramiteCtrl controleTramite = new TramiteCtrl(); AcessoDados.AcessoDados.abrirConn(); string sqlGenID = "select gen_id(GEN_WEBPROCESSO_ID,1) from rdb$database"; FirebirdSql.Data.FirebirdClient.FbDataReader drGenPRO = AcessoDados.AcessoDados.DataReader(sqlGenID); while (drGenPRO.Read()) { proc._IDPROC = int.Parse(drGenPRO["GEN_ID"].ToString()); } AcessoDados.AcessoDados.fecharConn(); proc.Env._ID = EnvolvidoCtrl.Persistir(proc.Env); string exercicio = Configuracoes.Dados.getExercicioAtual(); string numProcesso = Configuracoes.Dados.getNumeroProcesso(); string sqlProcesso = "insert into WEBPROCESSO(ID,NUMERO,IDASSUNTO,IDPREFEITURA,CORPO,DATAHORACADASTRO,NOOUTROSISTEMA,RESPONSAVEL,IDENVOLVIDO,IDPRIORIDADE,IDPROCESSOPAI,TIPOLIQPAG)VALUES" + "(" + proc._IDPROC + ",'" + numProcesso + "'," + proc._IDASSUNTO + "," + proc._IDPREFEITURA + ",'" + proc._CORPO + "','" + DateTime.Now.ToShortDateString().Replace("/", ".") + "'," + "'" + proc._NOOUTROSISTEMA + "','" + proc._RESPONSAVEL + "'," + proc.Env._ID + "," + proc.Prio._id + ","+ procPai +",'"+ tipoLiqPag +"')"; AcessoDados.AcessoDados.executar(sqlProcesso); proc._NUMERO = numProcesso; //1º registro do tramite Tramite tra = new Tramite(); tra._dataEnvio = DateTime.Now; tra._dataRecebimento = DateTime.Now; tra._despacho = null; tra.UsuOrigem.UsuarioID = ctrlUsu.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; tra.UsuDestino.UsuarioID = tra.UsuOrigem.UsuarioID; tra.UndFuncOrigem.ID = UndFuncionalCtrl.getUndFuncByUsuID(tra.UsuOrigem.UsuarioID.ToString()); tra.UndFuncDestino.ID = tra.UndFuncOrigem.ID; tra.Proc._IDPROC = proc._IDPROC; tra.Fluxo._ID = FluxoAssuntoCtrl.getPrimeiroFluxo(proc._IDASSUNTO.ToString())._ID; switch (tipoLiqPag) { case "L": tra.valor_liq = valor; tra.valor_pag = 0; tra.Situacao._id = 47; //Novo Fluxo Maranguape //tra.Situacao._id = 24; tra.notaFiscal = notaFiscal; tra.dataLiquidacao = dataLiquidacao; tra.dataAceiteNF = dataAceiteNF; break; case "P": tra.valor_liq = 0; tra.valor_pag = valor; //tra.Situacao._id = 1; tra.Situacao._id = 50;// Novo Fluxo Maranguape tra.dataPagamento = dataLiquidacao; break; } controleTramite.TramitarProcesso(tra); } else { if (op == "edt") { } } return proc._NUMERO; }
protected void btnEncaminharFooter_Click(object sender, EventArgs e) { TramiteCtrl controleTramite = new TramiteCtrl(); Assunto controleAssunto = new Assunto(); UndFuncionalCtrl controleUndFuncional = new UndFuncionalCtrl(); UsuariosControle ctrlUsu = new UsuariosControle(); Model.Tramite tramite = new Model.Tramite(); tramite._dataEnvio = DateTime.Now; tramite._despacho = txtDespacho.Text; tramite.Situacao._id = int.Parse(cbbSituacao.Value.ToString()); tramite.Proc._IDPROC = int.Parse(txtTeste.Text); tramite.UndFuncDestino.ID = int.Parse(cbbUnidadeFuncional.SelectedItem.Value.ToString()); tramite.UndFuncOrigem.ID = int.Parse(controleUndFuncional.getUnidadeFuncionalAtual(txtTeste.Text)); tramite.UsuOrigem.UsuarioID = ctrlUsu.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; if (cbbUsuario.SelectedItem != null) { tramite.UsuDestino.UsuarioID = int.Parse(cbbUsuario.SelectedItem.Value.ToString()); } if (controleAssunto.AssuntoTemFluxo(controleAssunto.GetAssuntoByNome(txtAssunto.Text))) { tramite.Fluxo._ID = controleUndFuncional.getProximoFluxoByProcesso(txtTeste.Text, cbbSituacao.Value.ToString(), cbbUnidadeFuncional.SelectedItem.Value.ToString()); } controleTramite.TramitarProcesso(tramite); DataSource.DataBind(); Grid.DataBind(); }
protected void btnReceber_Click(object sender, EventArgs e) { List<object> values = GetSelectedRowValues("ID"); foreach (object obj in values) { TramiteCtrl controleTramite = new TramiteCtrl(); controleTramite.MarcarComoRecebido(obj.ToString()); } DataSource.DataBind(); Grid.DataBind(); }
protected void btnCancelar_Click(object sender, EventArgs e) { TramiteCtrl controleTramite = new TramiteCtrl(); string idProc = GetSelectedRowValueRadioButton("ID"); controleTramite.DeletaTramite(controleTramite.RetornaUltimoTramite(idProc)); DataSource.DataBind(); Grid.DataBind(); controleTramite = 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(); }
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 btnRetornar_Click(object sender, EventArgs e) { string idProc = GetSelectedRowValueRadioButton("ID", ASPxGridView5); TramiteCtrl controleTramite = new TramiteCtrl(); controleTramite.MarcarComoRecebido(idProc); sqlOrgaosExternos.DataBind(); ASPxGridView5.DataBind(); }
protected void btnReceber_Click(object sender, EventArgs e) { List<object> values = GetSelectedRowValues("ID", ASPxGridView1); foreach (object obj in values) { TramiteCtrl controleTramite = new TramiteCtrl(); controleTramite.MarcarComoRecebido(obj.ToString()); } ASPxGridView1.DataBind(); sqlDSCXEntrada.DataBind(); }
protected void ASPxCallback2_Callback(object source, DevExpress.Web.ASPxCallback.CallbackEventArgs e) { if (string.IsNullOrEmpty(DIDLPCtrl.getSituacaoLiquidacao(e.Parameter.ToString().ToString())) && e.Parameter.ToString() != "EncaminharLiquidacao") { Assunto controleAssunto = new Assunto(); TramiteCtrl controleTramite = new TramiteCtrl(); Model.Tramite tramite = new Model.Tramite(); UndFuncionalCtrl controleUndFuncional = new UndFuncionalCtrl(); UsuariosControle controleUsuarios = new UsuariosControle(); tramite._dataEnvio = DateTime.Now; tramite._despacho = txtDespacho.Text; tramite.Situacao._id = int.Parse(cbbSituacao.Value.ToString()); tramite.Proc._IDPROC = int.Parse(txtTeste.Text); tramite.UndFuncDestino.ID = int.Parse(cbbUnidadeFuncional.Value.ToString()); tramite.UndFuncOrigem.ID = int.Parse(controleUndFuncional.getUnidadeFuncionalAtual(txtTeste.Text)); tramite.UsuOrigem.UsuarioID = controleUsuarios.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; if (cbbUsuario.SelectedItem != null) { tramite.UsuDestino.UsuarioID = int.Parse(cbbUsuario.SelectedItem.Value.ToString()); } if (controleAssunto.AssuntoTemFluxo(controleAssunto.GetAssuntoByNome(txtAssunto.Text))) { tramite.Fluxo._ID = controleUndFuncional.getProximoFluxoByProcesso(txtTeste.Text, cbbSituacao.Value.ToString(), cbbUnidadeFuncional.Value.ToString()); } controleTramite.TramitarProcesso(tramite); sqlDSCXAnalise.DataBind(); ASPxGridView2.DataBind(); controleAssunto = null; controleTramite = null; controleUndFuncional = null; controleUsuarios = null; tramite = null; GC.Collect(); e.Result = "EncaminhadoSemLiquidacao|"; } else { if (e.Parameter.ToString() == "EncaminharLiquidacao") { Assunto controleAssunto = new Assunto(); TramiteCtrl controleTramite = new TramiteCtrl(); Model.Tramite tramite = new Model.Tramite(); UndFuncionalCtrl controleUndFuncional = new UndFuncionalCtrl(); UsuariosControle controleUsuarios = new UsuariosControle(); tramite._dataEnvio = DateTime.Now; tramite._despacho = txtDespacho.Text; tramite.Situacao._id = int.Parse(cbbSituacao.Value.ToString()); tramite.Proc._IDPROC = int.Parse(txtTeste.Text); tramite.UndFuncDestino.ID = int.Parse(cbbUnidadeFuncional.Value.ToString()); tramite.UndFuncOrigem.ID = int.Parse(controleUndFuncional.getUnidadeFuncionalAtual(txtTeste.Text)); tramite.UsuOrigem.UsuarioID = controleUsuarios.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).UsuarioID; tramite.valor_liq = float.Parse(txtValor.Text); tramite.notaFiscal = txtNota.Text; tramite.dataLiquidacao = txtData.Text; tramite.dataAceiteNF = txtDataRecebimentoNota.Text; tramite.liqResponsavel = controleUsuarios.GetUsuarioByLogin(HttpContext.Current.Session["pUId"].ToString()).Nome; if (cbbUsuario.SelectedItem != null) { tramite.UsuDestino.UsuarioID = int.Parse(cbbUsuario.SelectedItem.Value.ToString()); } if (controleAssunto.AssuntoTemFluxo(controleAssunto.GetAssuntoByNome(txtAssunto.Text))) { tramite.Fluxo._ID = controleUndFuncional.getProximoFluxoByProcesso(txtTeste.Text, cbbSituacao.Value.ToString(), cbbUnidadeFuncional.Value.ToString()); } tramite.contasPagadoras = (DataTable)Session["ContasBanco"]; controleTramite.TramitarProcesso(tramite); Model.Envolvidos env = new Model.Envolvidos(); env._ID = EnvolvidoCtrl.getEnvolvidoByProcessoNumero(txtProcNumero.Value.ToString())._ID; env._banco = txtBanco.Value.ToString(); env._agencia = txtAgencia.Value.ToString(); env._DVagencia = txtDVAG.Value.ToString(); env._conta = txtConta.Value.ToString(); env._DVconta = txtDVCC.Value.ToString(); EnvolvidoCtrl.GravaDadosBancarios(env); ProcessoCtrl.GravaMesReferenciaByProcesso(txtProcNumero.Value.ToString(), txtMesReferencia.Value.ToString()); sqlDSCXAnalise.DataBind(); ASPxGridView2.DataBind(); controleAssunto = null; controleTramite = null; controleUndFuncional = null; controleUsuarios = null; tramite = null; GC.Collect(); e.Result = "EncaminhadoLiquidacao|" + txtTeste.Text; } else { if (!string.IsNullOrEmpty(DIDLPCtrl.getSituacaoLiquidacao(e.Parameter.ToString().ToString()))) { e.Result = "MostrarLiquidacao"; } } } }
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; }