private bool Duplicado(DossieEsperado dossieEsperado)
        {
            var dossieExistente = this.dossieEsperadoRepositorio.ObterDossie(dossieEsperado);

            if (dossieExistente != null && dossieExistente != dossieEsperado)
            {
                throw new RegraDeNegocioException("Dossiê já cadastrado");
            }

            return(false);
        }
예제 #2
0
        public DossieEsperado Atualizacao(DossieEsperado dossieCriado, DossieEsperado dossieCadastrado)
        {
            dossieCadastrado.MatriculaAgente = dossieCriado.MatriculaAgente;
            dossieCadastrado.NumeroContrato  = dossieCriado.NumeroContrato;
            dossieCadastrado.Hipoteca        = dossieCriado.Hipoteca;
            dossieCadastrado.NomeDoMutuario  = dossieCriado.NomeDoMutuario;
            dossieCadastrado.CodigoDeBarras  = dossieCriado.CodigoDeBarras;
            dossieCadastrado.UfArquivo       = dossieCriado.UfArquivo;
            dossieCadastrado.Situacao        = dossieCriado.Situacao;
            dossieCadastrado.Identificacao   = dossieCriado.Identificacao;

            return(dossieCadastrado);
        }
예제 #3
0
        public void AddPendenciaDeDossie(ArquivoColeta arquivoDeColeta, DossieEsperado dossieNoBanco, DossieEsperado dossieEsperadoNovo)
        {
            var pendenciaNova = this.CriarPendencia(arquivoDeColeta, PendenciaColeta.TipoDossie, string.Empty);

            pendenciaNova.ProcessoBd = dossieNoBanco.IdentificacaoFormatada();
            pendenciaNova.FolderBd   = dossieNoBanco.CodigoDeBarras;
            pendenciaNova.CaixaBd    = dossieNoBanco.Pacote.Identificacao;
            pendenciaNova.StatusBd   = dossieNoBanco.LoteStatus();
            pendenciaNova.ColetaBd   = dossieNoBanco.Coleta;

            pendenciaNova.ProcessoCsv = dossieEsperadoNovo.IdentificacaoFormatada();
            pendenciaNova.FolderCsv   = dossieEsperadoNovo.CodigoDeBarras;
            pendenciaNova.CaixaCsv    = dossieEsperadoNovo.Identificacao;
        }
예제 #4
0
        public void Executar(string acaoLogDossieEsperado,
                             DossieEsperado dossieEsperado,
                             string observacao)
        {
            var logDossieEsperado = new LogDossieEsperado
            {
                Acao           = acaoLogDossieEsperado,
                DataRegistro   = DateTime.Now,
                Usuario        = (Usuario)this.userSession.UsuarioAtual,
                DossieEsperado = dossieEsperado,
                Observacao     = observacao
            };

            this.logDossieEsperadoRepositorio.Salvar(logDossieEsperado);
        }
예제 #5
0
        public DossieEsperado Criar(string[] colunas, int caixaId)
        {
            var dossieEsperado = new DossieEsperado()
            {
                MatriculaAgente = this.ObterMatriculaAgente(colunas[2]),
                NumeroContrato  = this.ObterNumeroContrato(colunas[2]),
                Hipoteca        = this.ObterNumeroHipoteca(colunas[2]),
                NomeDoMutuario  = null,
                CodigoDeBarras  = colunas[1],
                UfArquivo       = colunas[3],
                Situacao        = "DC",
                Identificacao   = this.ObterCaixa(colunas[0]),
                PacoteId        = caixaId
            };

            return(dossieEsperado);
        }
예제 #6
0
 private Ocorrencia GerarOcorrencia(DossieEsperado dossieEsperado, Ocorrencia ocorrencia)
 {
     return(new Ocorrencia
     {
         OcorrenciaPaiId = ocorrencia.Id,
         DataRegistro = ocorrencia.DataRegistro,
         Status = ocorrencia.Status,
         Tipo = ocorrencia.Tipo,
         Pacote = ocorrencia.Pacote,
         DossieEsperado = dossieEsperado,
         Documento = ocorrencia.Documento,
         Lote = dossieEsperado.Lote(),
         UsuarioRegistro = ocorrencia.UsuarioRegistro,
         UsuarioResponsavel = ocorrencia.UsuarioResponsavel,
         Observacao = ocorrencia.Observacao,
         GrupoId = ocorrencia.GrupoId
     });
 }
        private DossieEsperado ObterAtualizado(DossieEsperado dossieEsperado)
        {
            var dossieNoBanco = this.dossieEsperadoRepositorio.ObterComLotes(dossieEsperado.Id);

            if (dossieNoBanco.NaoTemConteudo())
            {
                this.dossieEsperadoRepositorio.Salvar(dossieEsperado);
                return(dossieEsperado);
            }

            dossieNoBanco.NumeroContrato  = dossieEsperado.NumeroContrato;
            dossieNoBanco.MatriculaAgente = dossieEsperado.MatriculaAgente;
            dossieNoBanco.CodigoDeBarras  = dossieEsperado.CodigoDeBarras;
            dossieNoBanco.Hipoteca        = dossieEsperado.Hipoteca;
            dossieNoBanco.NomeDoMutuario  = dossieEsperado.NomeDoMutuario;
            dossieNoBanco.UfArquivo       = dossieEsperado.UfArquivo;

            this.dossieEsperadoRepositorio.Salvar(dossieNoBanco);

            return(dossieNoBanco);
        }
        public DossieEsperado Executar(DossieEsperado dossieEsperado)
        {
            if (this.Duplicado(dossieEsperado))
            {
                return(null);
            }

            if (dossieEsperado.Id < 1)
            {
                dossieEsperado.Situacao = "DC";
                dossieEsperado.Status   = "N";
            }

            var dossieAtualizado = this.ObterAtualizado(dossieEsperado);

            var processo = dossieAtualizado.Processo();

            if (processo.NaoTemConteudo() == false)
            {
                this.processoRepositorio.AlterarIdentificacao(processo.Id, dossieAtualizado.IdentificacaoFormatada(), dossieAtualizado.CodigoDeBarra());
            }

            return(dossieAtualizado);
        }
예제 #9
0
        public IList <Processo> Pesquisar(PesquisaDossieViewModel filtros)
        {
            Processo         processo         = null;
            Lote             lote             = null;
            Pacote           pacote           = null;
            PacoteProcessado pacoteProcessado = null;
            DossieEsperado   dossieEsperado   = null;
            Ocorrencia       ultimaOcorrencia = null;

            var query = this.Session.QueryOver <Processo>(() => processo)
                        .JoinAlias(() => processo.Lote, () => lote)
                        .JoinAlias(() => lote.Pacote, () => pacote)
                        .Left.JoinAlias(() => lote.PacoteProcessado, () => pacoteProcessado)
                        .JoinAlias(() => lote.DossieEsperado, () => dossieEsperado)
                        .Fetch(x => x.Lote).Eager
                        .Fetch(x => x.Lote.Pacote).Eager
                        .Fetch(x => x.Lote.PacoteProcessado).Eager
                        .Fetch(x => x.Lote.DossieEsperado).Eager
                        .Fetch(x => x.Lote.LoteCef).Eager
                        .Left.JoinAlias(() => lote.DossieEsperado.UltimaOcorrencia, () => ultimaOcorrencia)
                        .Fetch(x => x.Lote.DossieEsperado.UltimaOcorrencia).Eager;

            ////if (string.IsNullOrEmpty(filtros.DataInicio) == false)
            ////{
            ////    query.Where(() => lote.DataCriacao >= filtros.ObjetoDataInicio());
            ////}

            ////if (string.IsNullOrEmpty(filtros.DataFim) == false)
            ////{
            ////    query.Where(() => lote.DataCriacao < filtros.ObjetoDataFim().AddDays(1));
            ////}

            ////if (string.IsNullOrEmpty(filtros.DataInicioMovimento) == false)
            ////{
            ////    query.Where(() => pacoteProcessado.ArquivoRecebidoEm >= filtros.ObjetoDataInicioMovimento());
            ////}

            ////if (string.IsNullOrEmpty(filtros.DataFimMovimento) == false)
            ////{
            ////    query.Where(() => pacoteProcessado.ArquivoRecebidoEm < filtros.ObjetoDataFimMovimento().AddDays(1));
            ////}

            if (string.IsNullOrEmpty(filtros.Identificacao) == false)
            {
                query.WhereRestrictionOn(() => lote.Identificacao).IsLike(".%" + filtros.Identificacao + "%-", MatchMode.Anywhere);
            }

            if (string.IsNullOrEmpty(filtros.IdentificacaoCompleta) == false)
            {
                query.Where(() => processo.Identificacao == filtros.IdentificacaoCompleta);
            }

            if (filtros.LoteId > 0)
            {
                query.Where(() => processo.Lote.Id == filtros.LoteId);
            }

            if (filtros.ProcessoId > 0)
            {
                query.Where(() => processo.Id == filtros.ProcessoId);
            }

            if (string.IsNullOrEmpty(filtros.FolderCompleto) == false)
            {
                query.Where(() => dossieEsperado.CodigoDeBarras == filtros.FolderCompleto);
            }

            if (string.IsNullOrEmpty(filtros.Agente) == false)
            {
                query.WhereRestrictionOn(x => x.Identificacao).IsLike(filtros.Agente + "%.", MatchMode.Anywhere);
            }

            if (string.IsNullOrEmpty(filtros.Contrato) == false)
            {
                query.WhereRestrictionOn(() => processo.Identificacao).IsInsensitiveLike(filtros.Contrato.ToUpper(), MatchMode.Anywhere);
            }

            if (filtros.TipoProcessoId > 0)
            {
                query.Where(() => processo.TipoDeProcesso.Id == filtros.TipoProcessoId);
            }

            if (string.IsNullOrEmpty(filtros.Caixa) == false)
            {
                query.WhereRestrictionOn(() => pacote.Identificacao).IsLike("%" + filtros.Caixa.ToUpper() + "%", MatchMode.Anywhere);
            }

            if (string.IsNullOrEmpty(filtros.Folder) == false)
            {
                query.WhereRestrictionOn(() => dossieEsperado.CodigoDeBarras).IsLike("%" + filtros.Folder.ToUpper() + "%", MatchMode.Anywhere);
            }

            if (filtros.ColetaId > 0)
            {
                query.Where(() => pacote.Coleta.Id == filtros.ColetaId);
            }

            if (filtros.LotecefId > 0)
            {
                query.Where(() => lote.LoteCef.Id == filtros.LotecefId);
            }

            if (string.IsNullOrEmpty(filtros.Fase) == false)
            {
                query.Where(() => lote.Status == LoteStatus.ObterPorSigla(filtros.Fase));
            }

            ////if (filtros.UltimoLoteId > 0)
            ////{
            ////    if (filtros.TipoDeOrdenacao == "A")
            ////    {
            ////        query.Where(() => lote.Id > filtros.UltimoLoteId);
            ////    }
            ////    else
            ////    {
            ////        query.Where(() => lote.Id < filtros.UltimoLoteId);
            ////    }
            ////}

            query.Where(() => lote.Status != LoteStatus.Excluido && lote.Status != LoteStatus.Erro);

            switch (filtros.ColunaDeOrdenacao)
            {
            case "tipo":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => processo.TipoDeProcesso.Id).Asc();
                }
                else
                {
                    query.OrderBy(() => processo.TipoDeProcesso.Id).Desc();
                }

                break;

            case "identificacao":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => processo.Identificacao).Asc();
                }
                else
                {
                    query.OrderBy(() => processo.Identificacao).Desc();
                }

                break;

            case "caixa":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => pacote.Identificacao).Asc();
                }
                else
                {
                    query.OrderBy(() => pacote.Identificacao).Desc();
                }

                break;

            case "data":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => lote.DataCriacao).Asc();
                }
                else
                {
                    query.OrderBy(() => lote.DataCriacao).Desc();
                }

                break;

            case "dataMovimento":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => pacoteProcessado.ArquivoRecebidoEm).Asc();
                }
                else
                {
                    query.OrderBy(() => pacoteProcessado.ArquivoRecebidoEm).Desc();
                }

                break;

            case "status":
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => lote.Status).Asc().ThenBy(() => processo.Status).Asc();
                }
                else
                {
                    query.OrderBy(() => lote.Status).Desc().ThenBy(() => processo.Status).Desc();
                }

                break;

            default:
                if (filtros.TipoDeOrdenacao == "A")
                {
                    query.OrderBy(() => lote.Id).Asc();
                }
                else
                {
                    query.OrderBy(() => lote.Id).Desc();
                }

                break;
            }

            return(query
                   .TransformUsing(Transformers.DistinctRootEntity)
                   .Paginado(filtros.PaginaId, 30)
                   ////.Take(30)
                   .List());
        }