public void Executar(AcaoDeSeparacao acao, LoteParaSeparacaoViewModel loteParaSeparacao) { var documentacaoGeral = this.documentoRepositorio .ObterPorProcessoETipo(loteParaSeparacao.ProcessoId, TipoDocumento.CodigoDocumentoGeral) .FirstOrDefault(); if (documentacaoGeral == null || documentacaoGeral.Id < 1) { return; } var pagina = this.paginaRepositorio.ObterPorId(acao.PrimeiraPagina); var documentoOriginal = this.documentoRepositorio.ObterPorId(pagina.Documento.Id); pagina.Status = PaginaStatus.StatusExcluida; pagina.Documento = new Documento { Id = documentacaoGeral.Id }; this.paginaRepositorio.Salvar(pagina); this.documentoRepositorio.AlterarMarca(documentoOriginal.Id, Documento.MarcaDeAlteradoNaSeparacao); ////this.documentoRepositorio.AlterarStatus(documentoOriginal.Id, DocumentoStatus.TransmissaoOk); loteParaSeparacao.MarcaDocumentoManipulado(documentoOriginal.Id); this.gravaLogDaPaginaServico.Executar(LogPagina.AcaoPaginaExcluida, pagina.Id, pagina.Documento.Id, "Página removida na separação. MDoc Anterior #" + documentoOriginal.Id); this.gravaLogDoDocumentoServico.Executar( LogDocumento.AcaoPaginaRemovida, documentoOriginal.Id, string.Format("Página #{0} foi removida na separação manual", pagina.Id)); }
private void MarcaDocumentoAlterado(Documento documento, LoteParaSeparacaoViewModel loteParaSeparacao) { this.documentoRepositorio.AlterarMarca(documento.Id, Documento.MarcaDeAlteradoNaSeparacao); if (documento.TipoDocumento.Id != TipoDocumento.CodigoDocumentoGeral) { this.documentoRepositorio.AlterarStatus(documento.Id, DocumentoStatus.StatusParaReconhecimento); } loteParaSeparacao.MarcaDocumentoManipulado(documento.Id); }
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; } }