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);
        }
Example #2
0
        // 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);
        }