Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }