Exemple #1
0
        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);
        }