Example #1
0
        public void Executar(AcaoDeSeparacao acao, LoteParaSeparacaoViewModel loteParaSeparacao)
        {
            var documento = this.CriarDocumento(acao, loteParaSeparacao);

            loteParaSeparacao.Documentos.Add(DocumentoParaSeparacaoViewModel.Criar(documento));
            loteParaSeparacao.DocumentosNovos.Add(documento);

            this.SalvarPaginas(documento, acao, loteParaSeparacao);
        }
Example #2
0
        public void Executar(AcaoDeTriagemPreOcr acao, LoteTriagemViewModel lote)
        {
            var documento = this.CriarDocumento(acao, lote);

            lote.Documentos.Add(DocumentoParaSeparacaoViewModel.Criar(documento));
            lote.DocumentosNovos.Add(documento);
            lote.MarcaDocumentoManipulado(documento.Id);

            this.SalvarPaginas(documento, acao, lote);
        }
Example #3
0
        private DocumentoParaSeparacaoViewModel CriarDocumentoViewModel(Documento documento, bool ignorarExcluidas)
        {
            var documentoViewModel = DocumentoParaSeparacaoViewModel.Criar(documento);

            var paginas = documento.Paginas.Where(x => x.Status != PaginaStatus.StatusExcluida || ignorarExcluidas == false).ToList();

            foreach (var pagina in paginas)
            {
                documentoViewModel.AdicionaPagina(pagina, pagina.Ordem);
            }

            return(documentoViewModel);
        }
        public void Executar(AcaoDeTriagemPreOcr acao, LoteTriagemViewModel lote)
        {
            var ordemPagina    = 1;
            var ordemDocumento = 1;
            var documentoAtual = new DocumentoParaSeparacaoViewModel();

            foreach (var paginaId in acao.Paginas)
            {
                var documentoDaPagina = lote.ObterDocumentoDaPagina(paginaId);
                var pagina            = lote.ObterPagina(paginaId);

                if (documentoAtual != documentoDaPagina)
                {
                    ordemDocumento++;
                    documentoAtual = documentoDaPagina;

                    if (ordemDocumento != documentoAtual.Ordem)
                    {
                        documentoAtual.NovaOrdem = ordemDocumento;
                        this.documentoRepositorio.AlterarOrdem(documentoAtual.Id, documentoAtual.NovaOrdem);
                        this.documentoRepositorio.AlterarOrdemPais(documentoAtual.Id, documentoAtual.NovaOrdem);

                        this.gravaLogDoDocumentoServico.Executar(LogDocumento.AcaoMudancaDeOrdem,
                                                                 documentoAtual.Id,
                                                                 string.Format("Mudança de ordem. De #{0} para #{1}. [{2}]", documentoAtual.Ordem, documentoAtual.NovaOrdem, lote.Fase));

                        lote.MarcaDocumentoManipulado(documentoAtual.Id);

                        this.AtualizarOrdemDocumentoNovo(lote, documentoAtual);
                    }
                }

                var ordemOriginal = pagina.Ordem;
                if (ordemOriginal != ordemPagina)
                {
                    pagina.Ordem = ordemPagina;
                    this.paginaRepositorio.AlterarOrdem(pagina.Id, ordemPagina);

                    this.gravaLogDaPaginaServico.Executar(LogPagina.AcaoMudarOrdem,
                                                          paginaId, pagina.DocumentoAtualId(),
                                                          string.Format("Mudança de ordem. De #{0} para #{1}. [{2}]", ordemOriginal, ordemPagina, lote.Fase));

                    lote.MarcaDocumentoManipulado(pagina.DocumentoAtualId());
                }

                ordemPagina++;
            }
        }
Example #5
0
        public IList <DocumentoParaSeparacaoViewModel> Executar(Lote lote)
        {
            var documentos = this.documentoRepositorio.ObterComPaginas(lote);

            ////var documentosOriginais = documentos.Where(x =>
            ////    x.DocumentoPaiId == 0
            ////    && x.Versao == "0"
            ////    && (x.TipoDocumento.Id == TipoDocumento.CodigoDocumentoGeral
            ////        || x.TipoDocumento.Id == TipoDocumento.CodigoNaoIdentificado
            ////        || x.Marca == Documento.MarcaDeCriadoNaSeparacao
            ////        || x.Marca == Documento.MarcaDeAlteradoNaSeparacao)).ToList();

            var documentosOriginais = documentos.Where(x =>
                                                       x.DocumentoPaiId == 0 &&
                                                       x.Virtual == false).ToList();

            var documentosClassificados = documentos.Where(x =>
                                                           x.DocumentoPaiId > 0 &&
                                                           x.Virtual == true).ToList();

            var documentosParaSeparacao = new List <DocumentoParaSeparacaoViewModel>();

            var paginas = documentosOriginais.SelectMany(documento => documento.Paginas)
                          .Where(x => x.TipoArquivo != "PDF" && x.TipoArquivo != "PNG")
                          .OrderBy(x => x.Ordem)
                          .ToList();

            DocumentoParaSeparacaoViewModel ultimoDocumentoCriado = null;

            var ordem = 1;

            foreach (var pagina in paginas)
            {
                var documentoParaSeparacao = this.ObterDocumentoParaSeparacao(pagina, documentosParaSeparacao, ultimoDocumentoCriado);
                documentoParaSeparacao.AdicionaPagina(pagina, ordem);

                ultimoDocumentoCriado = documentoParaSeparacao;
                ordem++;
            }

            this.CarregarTipos(documentosParaSeparacao, documentosClassificados);

            return(documentosParaSeparacao);
        }
Example #6
0
        private DocumentoParaSeparacaoViewModel ObterDocumentoParaSeparacao(Pagina pagina,
                                                                            IList <DocumentoParaSeparacaoViewModel> documentosParaSeparacao,
                                                                            DocumentoParaSeparacaoViewModel ultimoDocumentoCriado)
        {
            if (ultimoDocumentoCriado != null && pagina.Documento.TipoDocumento.Id == TipoDocumento.CodigoDocumentoGeral)
            {
                return(ultimoDocumentoCriado);
            }

            var documentoParaSeparacao = documentosParaSeparacao.FirstOrDefault(x => x.Id == pagina.Documento.Id);

            if (documentoParaSeparacao != null)
            {
                return(documentoParaSeparacao);
            }

            documentoParaSeparacao = DocumentoParaSeparacaoViewModel.Criar(pagina.Documento);
            documentosParaSeparacao.Add(documentoParaSeparacao);

            return(documentoParaSeparacao);
        }
        private void AtualizarOrdemDocumentoNovo(LoteParaSeparacaoViewModel loteParaSeparacao, DocumentoParaSeparacaoViewModel documento)
        {
            var documentoNovo = loteParaSeparacao.DocumentosNovos.FirstOrDefault(x => x.Id == documento.Id);

            if (documentoNovo == null)
            {
                return;
            }

            documentoNovo.Ordem = documento.NovaOrdem;
            this.documentoRepositorio.Salvar(documentoNovo);
        }