public void ConcluirCadastro(ProjetoGeografico projeto) { try { if (_validar.Finalizar(projeto)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.ConcluirCadastro(projeto.Id); Validacao.Add(Mensagem.ProjetoGeografico.FinalizadoSucesso); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } }
public void ConcluirCadastro(int fiscalizacaoId) { Fiscalizacao fiscalizacao = new Fiscalizacao(); bool gerarAutosTermo = false; bool gerouVencimento = false; try { if (_validar.Finalizar(fiscalizacaoId)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); fiscalizacao = Obter(fiscalizacaoId, banco: bancoDeDados); //Fiscalizacao gerarAutosTermo = fiscalizacao.Infracao.IsGeradaSistema.GetValueOrDefault() || fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.GetValueOrDefault() > 0 || fiscalizacao.MaterialApreendido.IsTadGeradoSistema.GetValueOrDefault(); #region AI if (fiscalizacao.Infracao.IsGeradaSistema.HasValue) { if (!fiscalizacao.Infracao.IsGeradaSistema.GetValueOrDefault() && !gerarAutosTermo) { fiscalizacao.Vencimento.Data = fiscalizacao.Infracao.DataLavraturaAuto.Data.Value.AddDays(_prazoVencimentoDias); gerouVencimento = true; } } #endregion #region TEI if (fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.HasValue) { if (!gerouVencimento && fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.GetValueOrDefault() == 0 && !gerarAutosTermo) { fiscalizacao.Vencimento.Data = fiscalizacao.ObjetoInfracao.DataLavraturaTermo.Data.Value.AddDays(_prazoVencimentoDias); gerouVencimento = true; } } #endregion #region TAD if (fiscalizacao.MaterialApreendido.IsTadGeradoSistema.HasValue) { if (!gerouVencimento && !fiscalizacao.MaterialApreendido.IsTadGeradoSistema.GetValueOrDefault() && !gerarAutosTermo) { fiscalizacao.Vencimento.Data = fiscalizacao.MaterialApreendido.DataLavratura.Data.Value.AddDays(_prazoVencimentoDias); gerouVencimento = true; } } #endregion if (!gerouVencimento) { fiscalizacao.Vencimento.Data = DateTime.Now.AddDays(_prazoVencimentoDias); } _da.ConcluirCadastro(fiscalizacao, gerarAutosTermo, bancoDeDados); _daPrjGeo.ConcluirCadastro(fiscalizacao.Id, bancoDeDados); ArquivoDa arquivoDa = new ArquivoDa(); ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno); PdfFiscalizacao pdf = new PdfFiscalizacao(); if (gerarAutosTermo) { //AutoTermo fiscalizacao.PdfAutoTermo = new Arquivo(); fiscalizacao.PdfAutoTermo.Nome = "AutoTermoFiscalizacao"; fiscalizacao.PdfAutoTermo.Extensao = ".pdf"; fiscalizacao.PdfAutoTermo.ContentType = "application/pdf"; fiscalizacao.PdfAutoTermo.Buffer = pdf.GerarAutoTermoFiscalizacao(fiscalizacao.Id, false, bancoDeDados); arquivoBus.Salvar(fiscalizacao.PdfAutoTermo); arquivoDa.Salvar(fiscalizacao.PdfAutoTermo, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name, User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados); } else { fiscalizacao.PdfAutoTermo.Id = null; } //Laudo fiscalizacao.PdfLaudo = new Arquivo(); fiscalizacao.PdfLaudo.Nome = "LaudoFiscalizacao"; fiscalizacao.PdfLaudo.Extensao = ".pdf"; fiscalizacao.PdfLaudo.ContentType = "application/pdf"; fiscalizacao.PdfLaudo.Buffer = pdf.GerarLaudoFiscalizacao(fiscalizacao.Id, false, bancoDeDados); arquivoBus.Salvar(fiscalizacao.PdfLaudo); arquivoDa.Salvar(fiscalizacao.PdfLaudo, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name, User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados); Arquivo arqCroqui = fiscalizacao.ProjetoGeo.Arquivos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui); if (arqCroqui != null && arqCroqui.Id > 0) { arqCroqui = arquivoBus.Obter(arqCroqui.Id.GetValueOrDefault()); try { //Croqui fiscalizacao.PdfCroqui = new Arquivo(); fiscalizacao.PdfCroqui.Nome = "CroquiFiscalizacao"; fiscalizacao.PdfCroqui.Extensao = ".pdf"; fiscalizacao.PdfCroqui.ContentType = "application/pdf"; fiscalizacao.PdfCroqui.Buffer = arqCroqui.Buffer; arquivoBus.Salvar(fiscalizacao.PdfCroqui); arquivoDa.Salvar(fiscalizacao.PdfCroqui, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name, User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados); } finally { if (arqCroqui != null && arqCroqui.Buffer != null) { arqCroqui.Buffer.Close(); } } } _da.SalvarDocumentosGerados(fiscalizacao, bancoDeDados); _da.GerarHistorico(fiscalizacao.Id, eHistoricoAcao.finalizar, bancoDeDados); _da.GerarConsulta(fiscalizacao.Id, bancoDeDados); Validacao.Add(Mensagem.Fiscalizacao.Concluir); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } }