Ejemplo n.º 1
0
        internal bool Arquivamento(Arquivar arquivar)
        {
            if (arquivar.SetorId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarSetorOrigemObrigatorio);
            }

            if (arquivar.ObjetivoId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarObjetivoObrigatorio);
            }

            if (arquivar.ArquivoId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarArquivoObrigatorio);
            }

            if (arquivar.EstanteId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarEstanteObrigatorio);
            }

            if (arquivar.PrateleiraModoId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarPrateleiraObrigatorio);
            }

            if (arquivar.PrateleiraId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarIdentificacaoObrigatoria);
            }

            return(Validacao.EhValido);
        }
Ejemplo n.º 2
0
        internal bool Arquivar(Arquivar arquivar, List <Tramitacao> tramitacoes)
        {
            if (arquivar.SetorId <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarSetorOrigemObrigatorio);
                return(Validacao.EhValido);
            }

            Arquivamento(arquivar);

            if (!Validacao.EhValido)
            {
                return(Validacao.EhValido);
            }

            if (tramitacoes.Count <= 0)
            {
                Validacao.Add(Mensagem.Arquivamento.ArquivarProtocoloObrigatorio);
            }

            foreach (Tramitacao tramitacao in tramitacoes)
            {
                Arquivar(tramitacao);
            }

            return(Validacao.EhValido);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        internal Arquivar ObterArquivamentoAutomatico(string despacho, int objetivoId, BancoDeDados banco = null)
        {
            Arquivar arquivar = new Arquivar();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
									select  a.id          arquivo_id,
											a.nome        arquivo_nome,
											te.id         estante_id,
											te.nome       estante_nome,
											tp.id         prateleira_id,
											tp.identificacao       prateleira_nome,
											s.id          setor_id,
											s.nome        setor_nome
										from {0}tab_tramitacao_arquivo        a,
											 {0}tab_tramitacao_arq_estante    te,
											 {0}tab_tramitacao_arq_prateleira tp,
											 {0}tab_setor                     s
										where te.arquivo = a.id
										and tp.arquivo = a.id
										and tp.estante = te.id
										and s.id = a.setor
										and a.arquivar_automatico = 1
										and rownum = 1"                                        , EsquemaBanco);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        arquivar.ArquivoId   = Convert.ToInt32(reader["arquivo_id"]);
                        arquivar.ArquivoNome = reader["arquivo_nome"].ToString();

                        arquivar.EstanteId   = Convert.ToInt32(reader["estante_id"]);
                        arquivar.EstanteNome = reader["estante_nome"].ToString();

                        arquivar.PrateleiraId     = Convert.ToInt32(reader["prateleira_id"]);
                        arquivar.PrateleiraModoId = arquivar.PrateleiraId;
                        arquivar.PrateleiraNome   = reader["prateleira_nome"].ToString();

                        arquivar.SetorId   = Convert.ToInt32(reader["setor_id"]);
                        arquivar.SetorNome = reader["setor_nome"].ToString();

                        arquivar.ObjetivoId = objetivoId;
                        arquivar.Despacho   = despacho;
                    }

                    reader.Close();
                }
            }

            return(arquivar);
        }
Ejemplo n.º 6
0
        public bool Arquivar(Arquivar arquivar, List <Tramitacao> tramitacoes)
        {
            try
            {
                arquivar.DataArquivamento.Data = DateTime.Today;
                arquivar.Funcionario.Id        = User.FuncionarioId;

                foreach (Tramitacao tramitacao in tramitacoes)
                {
                    tramitacao.Arquivamento      = arquivar;
                    tramitacao.Objetivo.Id       = arquivar.ObjetivoId;
                    tramitacao.Despacho          = arquivar.Despacho;
                    tramitacao.Tipo              = (int)eTramitacaoTipo.Normal;
                    tramitacao.SituacaoId        = (int)eTramitacaoSituacao.Arquivado;
                    tramitacao.Executor.Id       = User.FuncionarioId;
                    tramitacao.Remetente.Id      = User.FuncionarioId;
                    tramitacao.RemetenteSetor.Id = arquivar.SetorId;
                }

                if (_validar.Arquivar(arquivar, tramitacoes))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();
                        foreach (Tramitacao tramitacao in tramitacoes)
                        {
                            _da.Arquivar(tramitacao);
                        }

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.Arquivamento.ArquivarSucesso);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(Validacao.EhValido);
        }
Ejemplo n.º 7
0
        internal Arquivar ObterArquivamento(int tramitacaoId, BancoDeDados banco = null)
        {
            Arquivar arquivar = new Arquivar();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
									select f.id          funcionario_id,
											f.nome        funcionario_nome,
											ta.tramitacao tamitacao_id,
											a.id          arquivo_id,
											a.nome        arquivo_nome,
											te.id         estante_id,
											te.nome       estante_nome,
											tp.id         prateleira_id,
											tp.identificacao       prateleira_nome,
											s.id          setor_id,
											s.nome        setor_nome
										from {0}tab_funcionario               f,
											 {0}tab_tramitacao                t,
											 {0}tab_tramitacao_arquivar       ta,
											 {0}tab_tramitacao_arquivo        a,
											 {0}tab_tramitacao_arq_estante    te,
											 {0}tab_tramitacao_arq_prateleira tp,
											 {0}tab_setor                     s
										where te.id = ta.estante
										and tp.id = ta.prateleira
										and a.id = ta.arquivo
										and s.id = a.setor
										and t.id = ta.tramitacao
										and f.id = t.remetente
										and ta.tramitacao = :tramitacaoid"                                        , EsquemaBanco);

                comando.AdicionarParametroEntrada("tramitacaoid", tramitacaoId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        arquivar.ArquivoId   = Convert.ToInt32(reader["arquivo_id"]);
                        arquivar.ArquivoNome = reader["arquivo_nome"].ToString();

                        arquivar.EstanteId   = Convert.ToInt32(reader["estante_id"]);
                        arquivar.EstanteNome = reader["estante_nome"].ToString();

                        arquivar.PrateleiraId   = Convert.ToInt32(reader["prateleira_id"]);
                        arquivar.PrateleiraNome = reader["prateleira_nome"].ToString();

                        arquivar.SetorId   = Convert.ToInt32(reader["setor_id"]);
                        arquivar.SetorNome = reader["setor_nome"].ToString();

                        arquivar.Funcionario.Id   = Convert.ToInt32(reader["funcionario_id"]);
                        arquivar.Funcionario.Nome = reader["funcionario_nome"].ToString();
                    }

                    reader.Close();
                }
            }

            return(arquivar);
        }