예제 #1
0
        private void SalvarPaginas(Documento documento, AcaoDeSeparacao acao, LoteParaSeparacaoViewModel loteParaSeparacao)
        {
            var listaDocumentacaoGeral = this.documentoRepositorio.ObterDocumentosDoLotePorTipo(documento.Lote.Id, TipoDocumento.CodigoDocumentoGeral).Select(x => x.Id).ToList();

            foreach (var paginaId in acao.Paginas)
            {
                var pagina            = this.paginaRepositorio.ObterPorId(paginaId);
                var documentoOriginal = this.documentoRepositorio.ObterPorId(pagina.Documento.Id);

                //// manda refazer o PDF do documento original, se for diferente de 27
                if (listaDocumentacaoGeral.Any(x => x == documentoOriginal.Id) == false)
                {
                    loteParaSeparacao.MarcaDocumentoManipulado(documentoOriginal.Id);
                }

                var paginaParaSeparacaoAtual = loteParaSeparacao.ObterPagina(paginaId).Status;
                var paginaEstavaExcluida     = paginaParaSeparacaoAtual == null ||
                                               loteParaSeparacao.ObterPagina(paginaId).Status == PaginaStatus.StatusExcluida;

                if ((documentoOriginal.TipoDocumento.Id == TipoDocumento.CodigoDocumentoGeral &&
                     documentoOriginal.Status == DocumentoStatus.Excluido) ||
                    paginaEstavaExcluida)
                {
                    pagina.Status = PaginaStatus.StatusExcluida;
                }

                pagina.Documento = documento;
                this.paginaRepositorio.Salvar(pagina);

                documento.Paginas.Add(pagina);

                this.documentoRepositorio.AlterarMarca(documentoOriginal.Id, Documento.MarcaDeAlteradoNaSeparacao);

                this.gravaLogDaPaginaServico.Executar(LogPagina.AcaoDocumentoCriadoNaSeparacao,
                                                      pagina.Id,
                                                      pagina.Documento.Id,
                                                      string.Format("Página movida para documento #{0}, documento anterior era #{1}", documento.Id, documentoOriginal.Id));

                loteParaSeparacao.ObterPagina(paginaId).NovoDocumentoId = documento.Id;
            }
        }
        private int ObterDocumentoDaPagina(int paginaId, LoteParaSeparacaoViewModel loteParaSeparacao)
        {
            var paginaParaSeparacao = loteParaSeparacao.ObterPagina(paginaId);

            return(paginaParaSeparacao.DocumentoAtualId());
        }