internal TramitacaoPosse ObterProtocoloPosse(int protocoloId, BancoDeDados banco = null) { TramitacaoPosse posse = new TramitacaoPosse(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select f.id funcionario_id, f.nome funcionario_nome, s.id setor_id, s.nome setor_nome from {0}tab_protocolo p, {0}tab_funcionario f, {0}tab_setor s where f.id(+) = p.emposse and s.id = p.setor and p.id = :protocolo_id" , EsquemaBanco); comando.AdicionarParametroEntrada("protocolo_id", protocoloId, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { posse.FuncionarioId = Convert.ToInt32(reader["funcionario_id"]); posse.FuncionarioNome = reader["funcionario_nome"].ToString(); posse.SetorId = Convert.ToInt32(reader["setor_id"]); posse.SetorNome = reader["setor_nome"].ToString(); } reader.Close(); } } return(posse); }
public ProtocoloLocalizacao ObterLocalizacao(Documento doc, ProtocoloLocalizacao localizacao = null) { ProtocoloLocalizacao loc = localizacao == null ? new ProtocoloLocalizacao() : localizacao; if (loc.ProcessoPaiId <= 0) { ProtocoloNumero processoPai = ProtocoloAssociado(doc.Id.GetValueOrDefault()) ?? new ProtocoloNumero(); if (processoPai.Id > 0) { loc.ProcessoPaiId = processoPai.Id; loc.ProcessoPaiNumero = processoPai.NumeroTexto; ProcessoBus _busProcesso = new ProcessoBus(); return(_busProcesso.ObterLocalizacao(loc.ProcessoPaiId, loc)); } } TramitacaoBus _busTramitacao = new TramitacaoBus(new TramitacaoValidar()); loc.Tramitacao.Id = _busTramitacao.ObterTramitacaoProtocolo(doc.Id.GetValueOrDefault()); if (loc.Tramitacao.Id > 0) { loc.Tramitacao = _busTramitacao.Obter(loc.Tramitacao.Id); if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.Arquivado) { loc.Localizacao = eLocalizacaoProtocolo.Arquivado; ArquivarBus _arquivarBus = new ArquivarBus(); Arquivar arquivamento = _arquivarBus.ObterArquivamento(loc.Tramitacao.Id); loc.ArquivoNome = arquivamento.ArquivoNome; } else if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.ParaOrgaoExterno) { loc.Localizacao = eLocalizacaoProtocolo.OrgaoExterno; loc.OrgaoExternoNome = loc.Tramitacao.OrgaoExterno.Texto; } else if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.Tramitando) { if (loc.Tramitacao.Destinatario.Id == 0) { loc.Localizacao = eLocalizacaoProtocolo.EnviadoParaSetor; } else { loc.Localizacao = eLocalizacaoProtocolo.EnviadoParaFuncionario; loc.FuncionarioDestinatarioNome = loc.Tramitacao.Destinatario.Nome; } } } else // se não existir tramitação, ele está na posse de algum funcionário { loc.Localizacao = eLocalizacaoProtocolo.PosseFuncionario; TramitacaoPosse posse = _busTramitacao.ObterProtocoloPosse(doc.Id.GetValueOrDefault()); loc.FuncionarioDestinatarioNome = posse.FuncionarioNome; loc.SetorDestinatarioNome = posse.SetorNome; } return(loc); }
// orgao externo // OU setor x // OU arquivo y // OU tramitando para setor j // OU tramitando para funcionario k no setor i // OU em posse do funcionario w no setor z // OU apensado/juntado a um processo public ProtocoloLocalizacao ObterLocalizacao(int processoId, ProtocoloLocalizacao localizacao = null) { ProtocoloLocalizacao loc = localizacao == null ? new ProtocoloLocalizacao() : localizacao; Processo proc = ObterSimplificado(processoId); if (loc.ProcessoPaiId <= 0) { int ApensadoEmProcessoId = ProcessoApensado(processoId); if (ApensadoEmProcessoId > 0) { loc.ProcessoPaiId = ApensadoEmProcessoId; loc.ProcessoPaiNumero = ObterSimplificado(loc.ProcessoPaiId).Numero; return(ObterLocalizacao(loc.ProcessoPaiId, loc)); } } TramitacaoBus _busTramitacao = new TramitacaoBus(); loc.Tramitacao.Id = _busTramitacao.ObterTramitacaoProtocolo(processoId); if (loc.Tramitacao.Id > 0) { loc.Tramitacao = _busTramitacao.Obter(loc.Tramitacao.Id); if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.Arquivado) { loc.Localizacao = eLocalizacaoProtocolo.Arquivado; ArquivarBus _arquivarBus = new ArquivarBus(); Arquivar arquivamento = _arquivarBus.ObterArquivamento(loc.Tramitacao.Id); loc.ArquivoNome = arquivamento.ArquivoNome; } else if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.ParaOrgaoExterno) { loc.Localizacao = eLocalizacaoProtocolo.OrgaoExterno; loc.OrgaoExternoNome = loc.Tramitacao.OrgaoExterno.Texto; } else if (loc.Tramitacao.SituacaoId == (int)eTramitacaoSituacao.Tramitando) { if (loc.Tramitacao.Destinatario.Id == 0) { loc.Localizacao = eLocalizacaoProtocolo.EnviadoParaSetor; } else { loc.Localizacao = eLocalizacaoProtocolo.EnviadoParaFuncionario; loc.FuncionarioDestinatarioNome = loc.Tramitacao.Destinatario.Nome; } } } else // se não existir tramitação, ele está na posse de algum funcionário { loc.Localizacao = eLocalizacaoProtocolo.PosseFuncionario; TramitacaoPosse posse = _busTramitacao.ObterProtocoloPosse(processoId); loc.FuncionarioDestinatarioNome = posse.FuncionarioNome; loc.SetorDestinatarioNome = posse.SetorNome; } return(loc); }