コード例 #1
0
 public IList <Lote> ObterPorPacote(PacoteProcessado pack)
 {
     return(this.Session.QueryOver <Lote>()
            .Where(x => x.PacoteProcessado.Id == pack.Id)
            .And(x => x.Status == LoteStatus.Finalizado)
            .List());
 }
コード例 #2
0
 public void AlterarParaCapturaFinalizada(int loteId, PacoteProcessado pacoteProcessado)
 {
     this.Session
     .CreateQuery("update Lote set Status = :status, DataFimCaptura = :dateTime, PacoteProcessado.Id = :pacoteProcessadoId where Id = :id")
     .SetParameter("status", LoteStatus.CapturaFinalizada)
     .SetParameter("dateTime", DateTime.Now)
     .SetParameter("pacoteProcessadoId", pacoteProcessado.Id)
     .SetParameter("id", loteId)
     .ExecuteUpdate();
 }
コード例 #3
0
        public PacoteProcessado Executar(string nomeDoPacote, DateTime?horaUltimoArquivo)
        {
            var pacoteProcessado = new PacoteProcessado
            {
                Arquivo               = nomeDoPacote,
                ArquivoRecebidoEm     = DateTime.Now,
                UltimoArquivoRecebido = horaUltimoArquivo.GetValueOrDefault(),
                StatusPacote          = StatusPacote.Pendente
            };

            this.pacoteProcessadoRepositorio.Salvar(pacoteProcessado);

            return(pacoteProcessado);
        }
コード例 #4
0
ファイル: CriaArquivoPack.cs プロジェクト: radtek/digitalsign
        public void Executar(string pack, PacoteProcessado rajada, ArquivoPackStatus status, string observacao)
        {
            var arquivoPack = new ArquivoPack
            {
                PacoteProcessado = rajada,
                Data             = DateTime.Now,
                NomePacote       = Path.GetFileNameWithoutExtension(pack),
                Tamanho          = this.fileSystem.GetFileSize(pack),
                Status           = status,
                Observacao       = observacao
            };

            this.arquivoPackRepositorio.Salvar(arquivoPack);
        }
コード例 #5
0
        public PacoteProcessado ObterDoDia()
        {
            var pacoteDoDia = this.pacoteProcessadoRepositorio.ObterPacoteDoDia();

            if (pacoteDoDia == null)
            {
                pacoteDoDia = new PacoteProcessado
                {
                    StatusPacote      = StatusPacote.EmProcessamento,
                    ArquivoRecebidoEm = this.relogio.Hoje(),
                    Arquivo           = "PrimeiroPacote_" + this.relogio.Agora().ToShortTimeString(),
                    Ativado           = "S"
                };
            }

            return(pacoteDoDia);
        }
コード例 #6
0
        public IList <Processo> ObterPorPacoteProcessadoSemPaginas(PacoteProcessado pacoteProcessado)
        {
            const string Hql = @"
select
    processo
from 
    Processo processo
inner join 
    processo.Documentos as documento
inner join
    processo.Lote as lote
where 
    not exists elements(documento.Paginas)
    and lote.PacoteProcessado.Id = :idPacoteProcessado";

            return(this.Session.CreateQuery(Hql)
                   .SetParameter("idPacoteProcessado", pacoteProcessado.Id)
                   .SetResultTransformer(Transformers.DistinctRootEntity)
                   .List <Processo>());
        }
コード例 #7
0
        public PacoteProcessado Criar()
        {
            var pacoteProcessado = this.pacoteProcessadoRepositorio.ObterPacoteDoDia();

            if (pacoteProcessado != null)
            {
                Log.Application.DebugFormat("Pacote processado [{0}] já existia na base.", pacoteProcessado.Id);

                return(pacoteProcessado);
            }

            Log.Application.Debug("Criando novo pacote processado");

            pacoteProcessado = new PacoteProcessado()
            {
                Arquivo            = "site",
                ArquivoImportadoEm = DateTime.Now,
                ArquivoRecebidoEm  = DateTime.Now,
                ContaRecepcionadas = 0,
                StatusPacote       = StatusPacote.EmProcessamento
            };

            return(pacoteProcessado);
        }
コード例 #8
0
 public void Executar(PacoteProcessado rajada)
 {
     this.pacoteProcessadoRepositorio.AtualizarStatus(rajada.Id, StatusPacote.Pendente);
 }
コード例 #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());
        }