public static int Atualizar(Tramitacao tra) { int erro = 0; try { IDbConnection objConexao; IDbCommand objComando; objConexao = Mapped.Connection(); string sql = "update tra_tramitacao set tra_localAtual=?localAtual, tra_localAnterior=?localAnterior, " + "tra_localEnviado=?localAtual, tra_dataEnvio=?dataEnvio, fun_cod=?fun_cod, cod_fun=?cod_fun where tra_cod=?codigo;"; objComando = Mapped.Command(sql, objConexao); objComando.Parameters.Add(Mapped.Parameter("?localAtual", tra.Tra_localAtual)); objComando.Parameters.Add(Mapped.Parameter("?localAnterior", tra.Tra_localAnteriror)); objComando.Parameters.Add(Mapped.Parameter("?dataEnvio", tra.Tra_dataEnvio)); objComando.Parameters.Add(Mapped.Parameter("?fun_cod", tra.Funcionario.Fun_cod)); objComando.Parameters.Add(Mapped.Parameter("?cod_fun", tra.Cod_fun)); objComando.Parameters.Add(Mapped.Parameter("?codigo", tra.Tra_cod)); objComando.ExecuteNonQuery(); objComando.Dispose(); objConexao.Dispose(); objConexao.Close(); } catch (Exception e) { erro = -2; } return(erro); }
public Exception Receber_Processo(Tramitacao Reg) { Processo_Data obj = new Processo_Data(_connection); Exception ex = obj.Receber_Processo(Reg); return(ex); }
public Exception Enviar_Processo(Tramitacao reg) { Processo_Data obj = new Processo_Data(_connection); Exception ex = obj.Enviar_Processo(reg); return(ex); }
public ActionResult Receive(ProcessoViewModel model) { Processo_bll protocoloRepository = new Processo_bll(_connection); if (model.Despacho_Codigo == null) { model.Despacho_Codigo = 0; } if (Session["hashid"] != null) { if (model.Despacho_Codigo > 0) { Tramitacao reg = new Tramitacao() { Ano = (short)model.Ano, Numero = model.Numero, Seq = (byte)model.Seq, Despacho = (short)model.Despacho_Codigo, Userid = Convert.ToInt32(Session["hashid"]), Datahora = DateTime.Now, Ccusto = (short)model.CCusto_Codigo }; Exception ex = protocoloRepository.Receber_Processo(reg); if (ex != null) { ViewBag.Result = "Ocorreu um erro no recebimento do processo"; } } } model.Numero_Ano = model.Numero.ToString() + "-" + Functions.RetornaDvProcesso(model.Numero) + "/" + model.Ano.ToString(); return(RedirectToAction("Tramite_Processo2", new { Ano = Functions.Encrypt(model.Ano.ToString()), Numero = Functions.Encrypt(model.Numero.ToString()) })); }
public Exception Alterar_Tramite(Tramitacao Reg) { Processo_Data obj = new Processo_Data(_connection); Exception ex = obj.Alterar_Tramite(Reg); return(ex); }
public ActionResult Obs(ProcessoViewModel model) { Processo_bll protocoloRepository = new Processo_bll(_connection); if (Session["hashid"] == null) { return(Json(Url.Action("Login_gti", "Home"))); } Tramitacao reg = new Tramitacao() { Ano = (short)model.Ano, Numero = model.Numero, Seq = (byte)model.Seq, Obs = model.ObsGeral, Obsinterna = model.ObsInterna }; Exception ex = protocoloRepository.Alterar_Obs(reg.Ano, reg.Numero, reg.Seq, reg.Obs, reg.Obsinterna); if (ex != null) { ViewBag.Result = "Ocorreu um erro na observação do trâmite"; } model.Numero_Ano = model.Numero.ToString() + "-" + Functions.RetornaDvProcesso(model.Numero) + "/" + model.Ano.ToString(); return(RedirectToAction("Tramite_Processo2", new { Ano = Functions.Encrypt(model.Ano.ToString()), Numero = Functions.Encrypt(model.Numero.ToString()) })); }
internal void Cancelar(Tramitacao tramitacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Atualizar o tid para a nova ação Comando comando = bancoDeDados.CriarComando(@"update {0}tab_tramitacao c set c.situacao = :situacao, c.tid = :tid where c.id = :id", EsquemaBanco); comando.AdicionarParametroEntrada("id", tramitacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("situacao", (int)eTramitacaoSituacao.Tramitando, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Histórico Historico.Gerar(tramitacao.Id, eHistoricoArtefato.tramitacao, eHistoricoAcao.cancelar, bancoDeDados); #endregion #region Cancelar tramitaçao de processo/documento comando = bancoDeDados.CriarComando(@"begin delete from {0}tab_tramitacao_arquivar e where e.tramitacao = :id; delete from {0}tab_tramitacao_externo e where e.tramitacao = :id; delete from {0}tab_tramitacao t where t.id = :id; end;" , EsquemaBanco); comando.AdicionarParametroEntrada("id", tramitacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion bancoDeDados.Commit(); } }
protected void lnkDevolver_Click(object sender, EventArgs e) { FunMod fmp = (FunMod)Session["funcionario"]; Funcionario fun = FuncionarioDB.Select(Convert.ToInt32(lblNumeroRedator.Text)); Tramitacao tra = new Tramitacao(); tra.Funcionario = new Funcionario(); tra.Tra_cod = Convert.ToInt32(lblTramitacao.Text); tra.Tra_localAtual = fun.Setor.Set_nome; tra.Tra_localAnteriror = lblLocalAnterior.Text; string data = DateTime.Now.ToString(); data = data.Substring(0, 10); tra.Tra_dataEnvio = data; tra.Funcionario.Fun_cod = Convert.ToInt32(lblNumeroRedator.Text); tra.Cod_fun = fmp.Funcionario.Fun_cod; switch (TramitacaoDB.Atualizar(tra)) { case 0: Response.Redirect("../paginas/Process.aspx?pro=" + Request.QueryString["pro"].Replace(" ", "+")); break; case -2: break; } }
public Tramitacao ObterTramitacoes(int setorId, int funcionarioId) { //id do funcionário usa o passado pelo parametro, caso contrario obtem o logado int funcionario = funcionarioId > 0 ? funcionarioId : User.FuncionarioId; Tramitacao tramitacoes = null; tramitacoes = new Tramitacao(); ListarTramitacaoFiltro filtro; #region Processo em minha posse filtro = new ListarTramitacaoFiltro() { EmposseId = funcionario, EmposseSetorId = setorId }; if (funcionarioId != User.FuncionarioId) { filtro.RegistradorDestinatarioSetorId = User.FuncionarioId; } tramitacoes.ProtocolosPosse = FiltrarEmPosse(filtro).Itens; #endregion #region Enviados para mim filtro = new ListarTramitacaoFiltro() { DestinatarioId = funcionario, DestinatarioSetorId = setorId }; tramitacoes.ProtocolosReceber = Filtrar(filtro).Itens; #endregion #region Enviados para o meu setor filtro = new ListarTramitacaoFiltro() { DestinatarioNulo = true, DestinatarioSetorId = setorId }; filtro.FuncionarioSetorDestinoId = User.FuncionarioId; tramitacoes.ProtocolosReceberSetor = Filtrar(filtro).Itens; #endregion #region Processo enviado por mim filtro = new ListarTramitacaoFiltro() { RemetenteId = funcionarioId, RemetenteSetorId = setorId }; tramitacoes.ProtocolosEnviado = Filtrar(filtro).Itens; #endregion return(tramitacoes); }
protected void btOkEnviar_Click(object sender, EventArgs e) { lblMsgEnviar.Text = ""; if (DespachoListEnviar.SelectedIndex == 0) { lblMsgEnviar.Text = "Selecione um despacho!"; return; } lblMsg.Text = ""; Processo_bll processo_Class = new Processo_bll("GTIconnection"); int seq = Convert.ToInt32(SeqEnviarLabel.Text); Tramitacao linha = processo_Class.Dados_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, seq); Tramitacao reg = new Tramitacao() { Ano = linha.Ano, Numero = linha.Numero, Seq = linha.Seq, Despacho = Convert.ToInt16(DespachoListEnviar.SelectedValue), Datahora = linha.Datahora, Userid = linha.Userid, Ccusto = linha.Ccusto, Dataenvio = DateTime.Now, Userid2 = gtiCore.pUserId }; Exception ex = processo_Class.Enviar_Processo(reg); if (ex != null) { throw ex.InnerException; } divModalEnviar.Visible = false; Carrega_Grid(); }
public static void Enviar(string texto, int numero) { FunMod fmp = (FunMod)HttpContext.Current.Session["funcionario"]; int codigo = fmp.Funcionario.Fun_cod; string pagina = Convert.ToString(HttpContext.Current.Request.Url); string data = DateTime.Now.ToString(); data = data.Substring(0, 10); Observacao obs = new Observacao(); Funcionario fun = new Funcionario(); Tramitacao tra = new Tramitacao(); obs.Funcionario = fun; obs.Tramitacao = tra; obs.Obs_valor = texto; obs.Obs_dataObservacao = data; obs.Tramitacao.Tra_cod = numero; obs.Funcionario.Fun_cod = codigo; if (texto != "") { ObservacaoDB.Insert(obs); } }
public ActionResult Send(ProcessoViewModel model) { Processo_bll protocoloRepository = new Processo_bll(_connection); if (Session["hashid"] != null) { List <TramiteStruct> _regOld = protocoloRepository.DadosTramite((short)model.Ano, model.Numero, model.Seq); Tramitacao reg = new Tramitacao() { Ano = (short)model.Ano, Numero = model.Numero, Seq = (byte)model.Seq, Despacho = model.Despacho_Codigo == null?(short)999: (short)model.Despacho_Codigo, Userid = _regOld[0].Userid1, Datahora = Convert.ToDateTime(_regOld[0].DataEntrada + " " + _regOld[0].HoraEntrada), Ccusto = _regOld[0].CentroCustoCodigo, Dataenvio = DateTime.Now, Userid2 = Convert.ToInt32(Session["hashid"]) }; Exception ex = protocoloRepository.Enviar_Processo(reg); if (ex != null) { ViewBag.Result = "Ocorreu um erro no envio do processo"; } } model.Numero_Ano = model.Numero.ToString() + "-" + Functions.RetornaDvProcesso(model.Numero) + "/" + model.Ano.ToString(); return(RedirectToAction("Tramite_Processo2", new { Ano = Functions.Encrypt(model.Ano.ToString()), Numero = Functions.Encrypt(model.Numero.ToString()) })); }
public ProtocoloJsonVM(Tramitacao tramitacao) { Id = tramitacao.Protocolo.Id; IsProcesso = tramitacao.Protocolo.IsProcesso; Numero = tramitacao.Protocolo.Numero; HistorioId = tramitacao.HistoricoId; TramitacaoId = tramitacao.Id; }
internal void Desarquivar(Tramitacao tramitacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Atualiza a tabela transacional Comando comando = bancoDeDados.CriarComando(@"update {0}tab_tramitacao t set t.situacao = :situacao, t.remetente = null, t.data_envio = null, t.objetivo = null, t.remetente_setor = t.destinatario_setor, t.destinatario = :destinatario, t.destinatario_setor = :destinatario_setor where t.id = :id " , EsquemaBanco); comando.AdicionarParametroEntrada("id", tramitacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("situacao", (int)eTramitacaoSituacao.Tramitando, DbType.Int32); comando.AdicionarParametroEntrada("destinatario", tramitacao.Destinatario.Id > 0 ? (int?)tramitacao.Destinatario.Id : null, DbType.Int32); comando.AdicionarParametroEntrada("destinatario_setor", tramitacao.DestinatarioSetor.Id > 0 ? (int?)tramitacao.DestinatarioSetor.Id : null, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Histórico Historico.Gerar(tramitacao.Id, eHistoricoArtefato.tramitacao, eHistoricoAcao.desarquivar, bancoDeDados); #endregion #region Atualizar o id da ultima tramitação no protocolo comando = bancoDeDados.CriarComando(@"begin " + " update {0}tab_protocolo p set p.tramitacao = (select max(id) id from {0}hst_tramitacao h where h.protocolo_id = :protocolo), " + " p.setor = :setor, p.emposse = :emposse where p.id = :protocolo;" + " update {0}lst_protocolo p set p.tramitacao = (select max(id) id from {0}hst_tramitacao h where h.protocolo_id = :protocolo), " + " p.setor_id = :setor, p.emposse_id = :emposse where p.protocolo_id = :protocolo; end;", EsquemaBanco); comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32); comando.AdicionarParametroEntrada("setor", tramitacao.DestinatarioSetor.Id, DbType.Int32); comando.AdicionarParametroEntrada("emposse", tramitacao.Destinatario.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Finalizar a tramitaçao de processo/documento List <String> lista = new List <string>(); lista.Add("delete from {0}tab_tramitacao_arquivar e where e.tramitacao = :id;"); lista.Add("delete from {0}tab_tramitacao t where t.id = :id;"); comando = bancoDeDados.CriarComando(@"begin " + string.Join(" ", lista) + "end;", EsquemaBanco); comando.AdicionarParametroEntrada("id", tramitacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion bancoDeDados.Commit(); } }
public async Task <Tramitacao> criarTramitacao(Tramitacao tramit) { if (tramit != null) { _contexto.Update(tramit); await _contexto.SaveChangesAsync(); } return(tramit); }
internal bool Arquivar(Tramitacao tramitacao) { // Valida se processo está apensado/juntado if (_busProtocolo.VerificarProtocoloAssociado(tramitacao.Protocolo.Id.Value)) { Validacao.Add(tramitacao.Protocolo.IsProcesso?Mensagem.Arquivamento.ArquivarProcessoApensadoNaoPodeSerArquivado:Mensagem.Arquivamento.ArquivarDocumentoJuntadoNaoPodeSerArquivado); } return(Validacao.EhValido); }
internal void EnviarExterno(Tramitacao tramitacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Enviar processos/documentos bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao a (id, protocolo, tipo, objetivo, situacao, despacho, executor, remetente, remetente_setor, destinatario, destinatario_setor, tid, data_envio) values ({0}seq_tramitacao.nextval, :protocolo, :tipo, :objetivo, :situacao, :despacho, :executor, :remetente, :remetente_setor, :destinatario, :destinatario_setor, :tid, sysdate) returning a.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo", tramitacao.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("objetivo", tramitacao.Objetivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("situacao", tramitacao.SituacaoId, DbType.Int32); comando.AdicionarParametroEntClob("despacho", tramitacao.Despacho); comando.AdicionarParametroEntrada("executor", tramitacao.Executor.Id, DbType.Int32); comando.AdicionarParametroEntrada("remetente", tramitacao.Remetente.Id, DbType.Int32); comando.AdicionarParametroEntrada("remetente_setor", tramitacao.RemetenteSetor.Id, DbType.Int32); comando.AdicionarParametroEntrada("destinatario", tramitacao.Destinatario.Id > 0 ? (int?)tramitacao.Destinatario.Id : null, DbType.Int32); comando.AdicionarParametroEntrada("destinatario_setor", tramitacao.DestinatarioSetor.Id > 0 ? (int?)tramitacao.DestinatarioSetor.Id : null, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); int id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Enviar tramitação externa comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_externo t (id, tramitacao, orgao, funcionario, tid) values ({0}seq_tramitacao_externo.nextval, :tramitacao, :orgao, :funcionario, :tid) " , EsquemaBanco); comando.AdicionarParametroEntrada("tramitacao", id, DbType.Int32); comando.AdicionarParametroEntrada("orgao", tramitacao.OrgaoExterno.Id, DbType.Int32); comando.AdicionarParametroEntrada("funcionario", tramitacao.Destinatario.Nome, DbType.String); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); #endregion #endregion #region Histórico Historico.Gerar(id, eHistoricoArtefato.tramitacao, eHistoricoAcao.enviarexterno, bancoDeDados); #endregion bancoDeDados.Commit(); } }
public void SetorOrigem(Tramitacao tramitacao) { if (_da.ObterSetorProtocolo(tramitacao.Protocolo.Id.Value) != tramitacao.RemetenteSetor.Id) { Validacao.Add(Mensagem.Tramitacao.SetorInvalido(tramitacao.Protocolo.Numero)); } if (!_busProtocolo.EmPosse(tramitacao.Protocolo.Id.Value, tramitacao.Remetente.Id)) { Validacao.Add(Mensagem.Tramitacao.FuncionarioNaoPossuiPosseProtocolo(tramitacao.Protocolo.Numero)); } }
public void Cancelar(Tramitacao tramitacao, bool permissaoTramitar) { tramitacao = Obter(tramitacao.Id); if (_validar.Cancelar(tramitacao, permissaoTramitar)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Cancelar(tramitacao); } } }
public bool ValidarRedirecionamentoReceber(Tramitacao tramitacao, bool permissaoTramitar) { bool registro = false; _validar.RegraSetor(tramitacao.DestinatarioSetor.Id, permissaoTramitar); if (_da.ObterTipoSetor(tramitacao.DestinatarioSetor.Id) == 2) { if (_da.Registrador(User.FuncionarioId, tramitacao.DestinatarioSetor.Id)) { registro = true; } } return(registro); }
public bool Cancelar(Tramitacao tramitacao, bool permissaoTramitar) { if (!tramitacao.Protocolo.Id.HasValue) { Validacao.Add(Mensagem.Tramitacao.ProtocoloJaTramitado(tramitacao.Protocolo.IsProcesso ? "processo" : "documento", tramitacao.Protocolo.Numero, "cancelado")); return(Validacao.EhValido); } if (tramitacao.Executor.Id != tramitacao.Remetente.Id && !_da.Registrador(User.FuncionarioId, tramitacao.RemetenteSetor.Id)) { Validacao.Add(Msg.CancelarTramitacaoRegistro); return(Validacao.EhValido); } RegraSetor(tramitacao.RemetenteSetor.Id, permissaoTramitar); return(Validacao.EhValido); }
public JsonResult Receber(int Ano, int Numero, int Seq, int Despacho, int CentroCusto) { Processo_bll protocoloRepository = new Processo_bll(_connection); int _user = Convert.ToInt32(Functions.Decrypt(Request.Cookies["2uC*"].Value)); Tramitacao reg = new Tramitacao() { Ano = (short)Ano, Numero = Numero, Seq = (byte)Seq, Despacho = (short)Despacho, Userid = _user, Datahora = DateTime.Now, Ccusto = (short)CentroCusto }; Exception ex = protocoloRepository.Receber_Processo(reg); string Numero_Ano = Numero.ToString() + "-" + Functions.RetornaDvProcesso(Numero) + "/" + Ano.ToString(); return(Json(Url.Action("Processo_trm", "Processo", new { p = Functions.Encrypt(Numero_Ano) }))); }
protected void lnkTramitar_Click(object sender, EventArgs e) { FunMod fmp = (FunMod)Session["funcionario"]; int codigo = Convert.ToInt32(ddlLocal.SelectedValue), fun_cod = 0; DataSet ds = new DataSet(); ds = TramitacaoDB.ConsultaUsuario(codigo); foreach (DataRow dr in ds.Tables[0].Rows) { fun_cod = Convert.ToInt32(dr["fun_cod"]); } Tramitacao tra = new Tramitacao(); tra.Funcionario = new Funcionario(); string data = DateTime.Now.ToString(); data = data.Substring(0, 10); tra.Tra_cod = Convert.ToInt32(lblTramitacao.Text); tra.Funcionario.Fun_cod = fun_cod; tra.Cod_fun = fmp.Funcionario.Fun_cod; tra.Tra_localAtual = ddlLocal.SelectedItem.Text; tra.Tra_dataEnvio = data; tra.Tra_localAnteriror = lblLocalAnterior.Text; switch (TramitacaoDB.Atualizar(tra)) { case 0: break; case -2: break; } }
public async Task <IActionResult> Inserir( [FromServices] ITramitacaoDal tramitacaoDal, [FromBody] Tramitacao body ) { try { Tramitacao retorno = await tramitacaoDal.criarTramitacao(body); if (retorno.IdTramitacao != 0) { return(Ok(retorno)); } else { return(Ok(new { message = "Nenhuma tramitação inserida." })); } } catch (System.Exception ex) { return(BadRequest(new { message = ex.Message })); } }
protected void btOkReceber_Click(object sender, EventArgs e) { lblMsg.Text = ""; Processo_bll processo_Class = new Processo_bll("GTIconnection"); int ccusto; int seq = Convert.ToInt32(SeqReceberLabel.Text); bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, seq); if (_existeTramite) { Tramitacao linha = processo_Class.Dados_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, seq); ccusto = linha.Ccusto; } else { ccusto = processo_Class.Retorna_CCusto_TramiteCC(_numeroProcesso.Ano, _numeroProcesso.Numero, seq); } Tramitacao reg = new Tramitacao() { Ano = (short)_numeroProcesso.Ano, Numero = _numeroProcesso.Numero, Seq = Convert.ToByte(SeqReceberLabel.Text), Despacho = Convert.ToInt16(DespachoListReceber.SelectedValue), Datahora = DateTime.Now, Userid = gtiCore.pUserId, Ccusto = (short)ccusto }; Exception ex = processo_Class.Receber_Processo(reg); if (ex != null) { throw ex.InnerException; } divModalReceber.Visible = false; Carrega_Grid(); }
protected void grdMain_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) { short ccusto = 0; int Seq = Convert.ToInt32(e.CommandArgument) + 1; Processo_bll processo_Class = new Processo_bll("GTIconnection"); int _ccusto = processo_Class.Retorna_CCusto_TramiteCC(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); List <UsuariocentroCusto> _listaCC = processo_Class.ListaCentrocustoUsuario(Convert.ToInt32(gtiCore.pUserId)); bool _find = false; foreach (UsuariocentroCusto item in _listaCC) { if (item.Codigo == _ccusto) { _find = true; break; } } if (!_find && e.CommandName != "cmdObs") { lblMsg.Text = "Você não tem permissão para tramitar neste local."; return; } if (e.CommandName == "cmdReceber") { if (Seq > 1) { bool _existeTramiteAnterior = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq - 1); if (!_existeTramiteAnterior) { lblMsg.Text = "Local anterior não tramitado."; return; } else { Tramitacao linha = processo_Class.Dados_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq - 1); if (linha.Dataenvio == null) { lblMsg.Text = "Local anterior não tramitado."; return; } } bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (_existeTramite) { lblMsg.Text = "Este local já foi tramitado."; return; } } else { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (_existeTramite) { lblMsg.Text = "Este local já foi tramitado."; return; } } List <Despacho> Lista = processo_Class.Lista_Despacho(); DespachoListReceber.DataSource = Lista; DespachoListReceber.DataTextField = "Descricao"; DespachoListReceber.DataValueField = "Codigo"; DespachoListReceber.DataBind(); SeqReceberLabel.Text = Seq.ToString(); divModalReceber.Visible = true; } else { if (e.CommandName == "cmdEnviar") { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (!_existeTramite) { lblMsg.Text = "Este processo ainda não foi recebido neste local."; return; } else { Tramitacao linha = processo_Class.Dados_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); ccusto = (short)linha.Despacho; if (linha.Datahora == null) { lblMsg.Text = "Este processo ainda não foi recebido neste local."; return; } else { if (linha.Dataenvio != null) { lblMsg.Text = "Processo já enviado deste local."; return; } } } List <Despacho> Lista = processo_Class.Lista_Despacho(); DespachoListEnviar.DataSource = Lista; DespachoListEnviar.DataTextField = "Descricao"; DespachoListEnviar.DataValueField = "Codigo"; DespachoListEnviar.DataBind(); try { DespachoListEnviar.SelectedValue = ccusto.ToString(); } catch (Exception) { } SeqEnviarLabel.Text = Seq.ToString(); divModalEnviar.Visible = true; } else { if (e.CommandName == "cmdAcima") { if (Seq == 1) { return; } else { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (_existeTramite) { lblMsg.Text = "Este local já foi tramitado."; return; } else { _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq - 1); if (_existeTramite) { lblMsg.Text = "O local anterior já foi tramitado."; return; } else { Exception ex = processo_Class.Move_Sequencia_Tramite_Acima(_numeroProcesso.Numero, _numeroProcesso.Ano, Seq); if (ex == null) { Response.Redirect(Request.RawUrl, true); } } } } } else { if (e.CommandName == "cmdAbaixo") { if (Seq > grdMain.Rows.Count - 1) { return; } else { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (_existeTramite) { lblMsg.Text = "Este local já foi tramitado."; return; } else { Exception ex = processo_Class.Move_Sequencia_Tramite_Abaixo(_numeroProcesso.Numero, _numeroProcesso.Ano, Seq); if (ex == null) { Response.Redirect(Request.RawUrl, true); } } } } else { if (e.CommandName == "cmdInserir") { if (Seq > grdMain.Rows.Count - 1) { return; } else { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq + 1); if (_existeTramite) { lblMsg.Text = "O próximo local já foi tramitado."; return; } else { List <Centrocusto> Lista = processo_Class.Lista_Local(true, false); LocalListInserir.DataSource = Lista; LocalListInserir.DataTextField = "Descricao"; LocalListInserir.DataValueField = "Codigo"; LocalListInserir.DataBind(); SeqInserirLabel.Text = Seq.ToString(); divModalInserir.Visible = true; } } } else { if (e.CommandName == "cmdRemover") { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (_existeTramite) { lblMsg.Text = "Este local já foi tramitado e não pode ser removido."; } else { Exception ex = processo_Class.Remover_Local(_numeroProcesso.Numero, _numeroProcesso.Ano, Seq); Response.Redirect(Request.RawUrl, true); } } else { if (e.CommandName == "cmdObs") { bool _existeTramite = processo_Class.Existe_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); if (!_existeTramite) { lblMsg.Text = "Este local ainda não foi tramitado."; } else { foreach (UsuariocentroCusto item in _listaCC) { if (item.Codigo == _ccusto) { _find = true; break; } } Tramitacao _tramite = processo_Class.Dados_Tramite(_numeroProcesso.Ano, _numeroProcesso.Numero, Seq); ObsGeralText.Text = _tramite.Obs ?? ""; ObsInternoText.Text = _tramite.Obsinterna ?? ""; btOkObs.Enabled = _find; SeqObsLabel.Text = Seq.ToString(); ObsGeralText.Visible = true; ObsInternoText.Visible = false; divModalObs.Visible = true; } } } } } } } } }
internal Resultados <Tramitacao> FiltrarHistorico(Filtro <ListarTramitacaoFiltro> filtros, BancoDeDados banco = null) { Resultados <Tramitacao> retorno = new Resultados <Tramitacao>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { string comandtxt = string.Empty; string esquema = (string.IsNullOrEmpty(EsquemaBanco) ? "" : "."); Comando comando = bancoDeDados.CriarComando(""); #region Adicionando Filtros #region Filtros de protocolo comandtxt += comando.FiltroAnd("t.protocolo_id", "protocolo_id", filtros.Dados.Protocolo.Id); comandtxt += comando.FiltroAnd("t.protocolo", "protocolo", filtros.Dados.ProtocoloTipo); comandtxt += comando.FiltroAnd("t.protocolo_numero", "numero", filtros.Dados.Protocolo.Numero); comandtxt += comando.FiltroAnd("t.protocolo_ano", "ano", filtros.Dados.Protocolo.Ano); #endregion comandtxt += comando.FiltroAnd("t.remetente_id", "remetente_id", filtros.Dados.RemetenteId); comandtxt += comando.FiltroAnd("t.remetente_setor_id", "remetente_setor_id", filtros.Dados.RemetenteSetorId); comandtxt += comando.FiltroAnd("t.destinatario_id", "destinatario_id", filtros.Dados.DestinatarioId); comandtxt += comando.FiltroAnd("t.destinatario_setor_id", "destinatario_setor_id", filtros.Dados.DestinatarioSetorId); comandtxt += comando.FiltroIn("t.destinatario_setor_id", String.Format("select s.setor from {0}tab_funcionario_setor s where s.funcionario = :funcionario_setor_destino", esquema), "funcionario_setor_destino", filtros.Dados.FuncionarioSetorDestinoId); comandtxt += comando.FiltroIn("t.destinatario_setor_id", String.Format("select s.setor from {0}tab_funcionario_setor s, {0}tab_tramitacao_setor_func fs where fs.funcionario = s.funcionario and s.funcionario = :registrador_setor", esquema), "registrador_setor", filtros.Dados.RegistradorDestinatarioSetorId); comandtxt += comando.FiltroIn("t.destinatario_setor_id", String.Format(@"select s.setor from {0}tab_funcionario_setor s, {0}tab_tramitacao_setor_func fs where fs.funcionario = s.funcionario and s.funcionario = :emposse_registrador", esquema), "emposse_registrador", filtros.Dados.RegistradorDestinatarioId, "or t.destinatario_id = :emposse_registrador"); List <String> ordenar = new List <String>(); List <String> colunas = new List <String>() { "protocolo_numero,protocolo_ano", "protocolo", "data_envio", "objetivo_texto" }; if (filtros.OdenarPor > 0) { ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1)); } else { ordenar.Add("protocolo_numero,protocolo_ano"); } #endregion #region Quantidade de registro do resultado comando.DbCommand.CommandText = String.Format(@"select count(*) from {0}lst_hst_tramitacao t where t.id > 0" + comandtxt, esquema); retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)); comando.DbCommand.CommandText = String.Format(@"select t.id, t.tid, t.tramitacao_id, t.tramitacao_hst_id, t.protocolo, t.protocolo_id, t.protocolo_numero, t.protocolo_ano, t.protocolo_numero_completo, t.protocolo_tipo_texto, t.remetente_id, t.remetente_tid, t.remetente_nome, t.remetente_setor_id, t.remetente_setor_sigla, t.remetente_setor_nome, t.destinatario_id, t.destinatario_tid, t.destinatario_nome, t.destinatario_setor_id, t.destinatario_setor_sigla, t.destinatario_setor_nome, t.objetivo_id, t.objetivo_texto, t.situacao_id, t.situacao_texto, t.acao_executada, (select aa.texto from {0}lov_historico_artefatos_acoes a, {0}lov_historico_acao aa where a.acao = aa.id and a.id = t.acao_executada) acao_executada_texto, t.data_envio, t.data_execucao data_recebimento from {0}lst_hst_tramitacao t where t.id > 0" + comandtxt + DaHelper.Ordenar(colunas, ordenar), esquema); #endregion using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { #region Adicionando os dados na classe de retorno Tramitacao tramitacao; while (reader.Read()) { tramitacao = new Tramitacao(); tramitacao.Id = Convert.ToInt32(reader["tramitacao_id"]); tramitacao.HistoricoId = Convert.ToInt32(reader["tramitacao_hst_id"]); tramitacao.DataEnvio.Data = Convert.IsDBNull(reader["data_envio"]) ? null : (DateTime?)Convert.ToDateTime(reader["data_envio"]); tramitacao.DataRecebido.Data = Convert.IsDBNull(reader["data_recebimento"]) ? null : (DateTime?)Convert.ToDateTime(reader["data_recebimento"]); tramitacao.DataExecucao.Data = tramitacao.DataRecebido.Data; tramitacao.Tid = reader["tid"].ToString(); if (reader["objetivo_id"] != null && !Convert.IsDBNull(reader["objetivo_id"])) { tramitacao.Objetivo.Id = Convert.ToInt32(reader["objetivo_id"]); tramitacao.Objetivo.Texto = Convert.ToString(reader["objetivo_texto"]); } if (reader["remetente_id"] != null && !Convert.IsDBNull(reader["remetente_id"])) { tramitacao.Remetente.Id = Convert.ToInt32(reader["remetente_id"]); } tramitacao.Remetente.Nome = reader["remetente_nome"].ToString(); if (reader["remetente_setor_id"] != null && !Convert.IsDBNull(reader["remetente_setor_id"])) { tramitacao.RemetenteSetor.Id = Convert.ToInt32(reader["remetente_setor_id"]); } tramitacao.RemetenteSetor.Sigla = Convert.ToString(reader["remetente_setor_sigla"]); tramitacao.RemetenteSetor.Nome = Convert.ToString(reader["remetente_setor_nome"]); if (reader["destinatario_id"] != null && !Convert.IsDBNull(reader["destinatario_id"])) { tramitacao.Destinatario.Id = Convert.ToInt32(reader["destinatario_id"]); } tramitacao.Destinatario.Nome = Convert.ToString(reader["destinatario_nome"]); if (reader["destinatario_setor_id"] != null && !Convert.IsDBNull(reader["destinatario_setor_id"])) { tramitacao.DestinatarioSetor.Id = Convert.ToInt32(reader["destinatario_setor_id"]); } tramitacao.DestinatarioSetor.Sigla = Convert.ToString(reader["destinatario_setor_sigla"]); tramitacao.DestinatarioSetor.Nome = Convert.ToString(reader["destinatario_setor_nome"]); tramitacao.IsExisteHistorico = (reader["tramitacao_hst_id"] != null && !Convert.IsDBNull(reader["tramitacao_hst_id"])); tramitacao.Protocolo.IsProcesso = (reader["protocolo"] != null && reader["protocolo"].ToString() == "1"); tramitacao.Protocolo.Id = Convert.ToInt32(reader["protocolo_id"]); tramitacao.Protocolo.NumeroProtocolo = Convert.ToInt32(reader["protocolo_numero"]); tramitacao.Protocolo.Ano = Convert.ToInt32(reader["protocolo_ano"]); tramitacao.Protocolo.Tipo.Texto = reader["protocolo_tipo_texto"].ToString(); if (reader["acao_executada"] != null && !Convert.IsDBNull(reader["acao_executada"])) { tramitacao.AcaoId = Convert.ToInt32(reader["acao_executada"]); tramitacao.AcaoExecutada = reader["acao_executada_texto"].ToString(); } retorno.Itens.Add(tramitacao); } reader.Close(); #endregion } } return(retorno); }
internal void Arquivar(Tramitacao tramitacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Enviar processos/documentos bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao a (id, protocolo, tipo, objetivo, situacao, despacho, executor, remetente, remetente_setor, destinatario_setor, tid, data_envio) values ({0}seq_tramitacao.nextval, :protocolo, :tipo, :objetivo, :situacao, :despacho, :executor, :remetente, :remetente_setor, :destinatario_setor, :tid, sysdate) returning a.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo", tramitacao.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("objetivo", tramitacao.Objetivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("situacao", tramitacao.SituacaoId, DbType.Int32); comando.AdicionarParametroEntClob("despacho", tramitacao.Despacho); comando.AdicionarParametroEntrada("executor", tramitacao.Executor.Id, DbType.Int32); comando.AdicionarParametroEntrada("remetente", tramitacao.Remetente.Id, DbType.Int32); comando.AdicionarParametroEntrada("remetente_setor", tramitacao.RemetenteSetor.Id, DbType.Int32); comando.AdicionarParametroEntrada("destinatario_setor", tramitacao.DestinatarioSetor.Id > 0 ? (int?)tramitacao.DestinatarioSetor.Id : null, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); int id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Arquivar comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arquivar(id, tramitacao, arquivo, estante, prateleira, tid) values ({0}seq_tramitacao_arquivar.nextval, :tramitacao, :arquivo, :estante, :prateleira, :tid)" , EsquemaBanco); comando.AdicionarParametroEntrada("tramitacao", id, DbType.Int32); comando.AdicionarParametroEntrada("arquivo", tramitacao.Arquivamento.ArquivoId, DbType.Int32); comando.AdicionarParametroEntrada("estante", tramitacao.Arquivamento.EstanteId, DbType.Int32); comando.AdicionarParametroEntrada("prateleira", tramitacao.Arquivamento.PrateleiraId, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Atualizar Posse comando = bancoDeDados.CriarComandoPlSql(@"begin update {0}tab_protocolo p set p.setor = null, p.emposse = null where p.id = :protocolo; update {0}lst_protocolo p set p.setor_id = null, p.emposse_id = null where p.protocolo_id = :protocolo; end;" , EsquemaBanco); comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #endregion #region Histórico Historico.Gerar(id, eHistoricoArtefato.tramitacao, eHistoricoAcao.arquivar, bancoDeDados); #endregion bancoDeDados.Commit(); } }
private void BtOKEnvRec_Click(object sender, EventArgs e) { Exception ex = null; bool bReceber = lblEnvRec.Text == "Recebimento de Processo" ? true : false; Processo_bll clsProcesso = new Processo_bll(_connection); int Ano = clsProcesso.ExtractAnoProcesso(lblNumProc.Text); int Numero = clsProcesso.ExtractNumeroProcessoNoDV(lblNumProc.Text); int Seq = Convert.ToInt16(lvMain.SelectedItems[0].SubItems[1].Text); short CCusto = Convert.ToInt16(lvMain.SelectedItems[0].SubItems[2].Text); DateTime Data = Convert.ToDateTime(lblData.Text); DateTime Hora = Convert.ToDateTime(lblHora.Text); DateTime DataHora = new DateTime(Data.Year, Data.Month, Data.Day, Hora.Hour, Hora.Second, Hora.Second); short? CodDespacho = cmbDespacho2.SelectedIndex == -1 ? Convert.ToInt16(0) : Convert.ToInt16(cmbDespacho2.SelectedValue); Sistema_bll Sistema_Class = new Sistema_bll(_connection); Tramitacao reg = new Tramitacao { Ano = Convert.ToInt16(Ano), Numero = Numero, Seq = Convert.ToByte(Seq), Ccusto = CCusto, Datahora = DataHora, Despacho = CodDespacho == 0 ? null : CodDespacho }; if (bReceber) { if (cmbFuncionario.SelectedIndex == -1) { MessageBox.Show("Selecione um funcionário", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { GtiTypes.CustomListBoxItem selectedItem = (GtiTypes.CustomListBoxItem)cmbFuncionario.SelectedItem; reg.Userid = selectedItem._value; if (reg.Userid < 999) { reg.Userid = Sistema_Class.Retorna_User_LoginId("F" + Convert.ToInt32(reg.Userid).ToString("000")); } else { reg.Userid = Sistema_Class.Retorna_User_LoginId(gtiCore.Retorna_Last_User()); } ex = clsProcesso.Excluir_Tramite(Ano, Numero, Seq); if (ex != null) { ErrorBox eBox = new ErrorBox("Erro!", ex.Message, ex); eBox.ShowDialog(); } ex = clsProcesso.Incluir_Tramite(reg); if (ex != null) { ErrorBox eBox = new ErrorBox("Erro!", ex.Message, ex); eBox.ShowDialog(); } } } else { if (CodDespacho == 0) { MessageBox.Show("Selecione um despacho para o trâmite.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } reg.Dataenvio = DataHora; GtiTypes.CustomListBoxItem selectedItem = (GtiTypes.CustomListBoxItem)cmbFuncionario.SelectedItem; reg.Userid2 = selectedItem._value; if (reg.Userid2 < 999) { reg.Userid2 = Sistema_Class.Retorna_User_LoginId("F" + Convert.ToInt32(reg.Userid2).ToString("000")); } else { reg.Userid2 = Sistema_Class.Retorna_User_LoginId(gtiCore.Retorna_Last_User()); } ex = clsProcesso.Alterar_Tramite(reg); if (ex != null) { ErrorBox eBox = new ErrorBox("Erro!", ex.Message, ex); eBox.ShowDialog(); } } CarregaTramite(); LockForm(true); SetButtonState(); pnlEnvRec.Hide(); lvMain.Enabled = true; }
internal Tramitacao Obter(int id, BancoDeDados banco = null) { Tramitacao tramitacao = new Tramitacao(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Tramitacao Comando comando = bancoDeDados.CriarComando(@"select t.tramitacao_hst_id, t.tramitacao_id id, t.protocolo, t.protocolo_id, t.protocolo_tid, t.protocolo_numero, t.protocolo_ano, t.protocolo_numero_completo, t.protocolo_numero_autuacao, t.protocolo_tipo_id, t.protocolo_tipo_texto, t.remetente_id, t.remetente_tid, t.remetente_nome, t.remetente_setor_id, t.remetente_setor_sigla, t.remetente_setor_nome, t.destinatario_id, t.destinatario_tid, t.destinatario_nome, t.destinatario_setor_id, t.destinatario_setor_sigla, t.destinatario_setor_nome, t.objetivo_id, t.objetivo_texto, t.situacao_id, t.situacao_texto, t.data_execucao data_recebimento, t.data_envio, t.data_execucao, t.despacho, t.remetente_municipio_nome, t.remetente_estado_sigla, t.destinatario_municipio_nome,t.destinatario_estado_sigla, t.orgao_externo_id, t.orgao_externo_nome, a.executor, t.tid from {0}tab_tramitacao a, {0}lst_hst_tramitacao t where a.tid = t.tid and a.id = t.tramitacao_id and a.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { tramitacao.Id = id; if (reader["tramitacao_hst_id"] != null && !Convert.IsDBNull(reader["tramitacao_hst_id"])) { tramitacao.HistoricoId = Convert.ToInt32(reader["tramitacao_hst_id"]); } tramitacao.Tid = reader["tid"].ToString(); tramitacao.DataEnvio.Data = Convert.IsDBNull(reader["data_envio"]) ? null : (DateTime?)Convert.ToDateTime(reader["data_envio"]); tramitacao.Despacho = reader["despacho"].ToString(); tramitacao.Protocolo.NumeroProtocolo = Convert.ToInt32(reader["protocolo_numero"]); tramitacao.Protocolo.Ano = Convert.ToInt32(reader["protocolo_ano"]); tramitacao.Protocolo.Tipo.Texto = reader["protocolo_tipo_texto"].ToString(); if (reader["protocolo_id"] != null && !Convert.IsDBNull(reader["protocolo_id"])) { tramitacao.Protocolo.Id = Convert.ToInt32(reader["protocolo_id"]); tramitacao.Protocolo.IsProcesso = reader["protocolo"].ToString() == "1"; } if (reader["objetivo_id"] != null && !Convert.IsDBNull(reader["objetivo_id"])) { tramitacao.Objetivo.Id = Convert.ToInt32(reader["objetivo_id"]); tramitacao.Objetivo.Texto = reader["objetivo_texto"].ToString(); } if (reader["remetente_id"] != null && !Convert.IsDBNull(reader["remetente_id"])) { tramitacao.Remetente.Id = Convert.ToInt32(reader["remetente_id"]); } tramitacao.Remetente.Nome = reader["remetente_nome"].ToString(); if (reader["destinatario_id"] != null && !Convert.IsDBNull(reader["destinatario_id"])) { tramitacao.Destinatario.Id = Convert.ToInt32(reader["destinatario_id"]); } tramitacao.Destinatario.Nome = reader["destinatario_nome"].ToString(); if (reader["remetente_setor_id"] != null && !Convert.IsDBNull(reader["remetente_setor_id"])) { tramitacao.RemetenteSetor.Id = Convert.ToInt32(reader["remetente_setor_id"]); } tramitacao.RemetenteSetor.Nome = reader["remetente_setor_nome"].ToString(); if (reader["destinatario_setor_id"] != null && !Convert.IsDBNull(reader["destinatario_setor_id"])) { tramitacao.DestinatarioSetor.Id = Convert.ToInt32(reader["destinatario_setor_id"]); } tramitacao.DestinatarioSetor.Nome = reader["destinatario_setor_nome"].ToString(); if (reader["situacao_id"] != null && !Convert.IsDBNull(reader["situacao_id"])) { tramitacao.SituacaoId = Convert.ToInt32(reader["situacao_id"]); } if (reader["orgao_externo_id"] != null && !Convert.IsDBNull(reader["orgao_externo_id"])) { tramitacao.OrgaoExterno.Id = Convert.ToInt32(reader["orgao_externo_id"]); } tramitacao.OrgaoExterno.Texto = reader["orgao_externo_nome"].ToString(); if (reader["executor"] != null && !Convert.IsDBNull(reader["executor"])) { tramitacao.Executor.Id = Convert.ToInt32(reader["executor"]); } } reader.Close(); } #endregion } return(tramitacao); }