Пример #1
0
        public MemoryStream GerarLaudoFiscalizacaoNovo(int id, bool gerarTarja = true, BancoDeDados banco = null)
        {
            ArquivoDocCaminho = @"~/Content/_pdfAspose/Laudo_de_Fiscalizacao_Novo.docx";

            FiscalizacaoRelatorioNovo dataSource = _da.ObterNovo(id, banco);

            dataSource.Sessao = new Sessoes()
            {
                Empreendimento    = AsposeData.Empty,
                Multa             = AsposeData.Empty,
                InterdicaoEmbargo = AsposeData.Empty,
                Apreensao         = AsposeData.Empty,
                OutrasPenalidades = AsposeData.Empty
            };

            ConfiguracaoDefault.TextoTagAssinante   = "«Assinante.Nome»";
            ConfiguracaoDefault.TextoTagAssinantes1 = "«TableStart:Assinantes1»";
            ConfiguracaoDefault.TextoTagAssinantes2 = "«TableStart:Assinantes2»";

            if (dataSource.ConsideracoesFinais != null &&
                dataSource.ConsideracoesFinais.Assinantes != null &&
                dataSource.ConsideracoesFinais.Assinantes.Count > 0)
            {
                var autor = dataSource.ConsideracoesFinais.Assinantes.First(x => x.Id == dataSource.UsuarioCadastro.Id);
                if (autor != null)
                {
                    dataSource.ConsideracoesFinais.Assinantes.Remove(autor);
                    dataSource.ConsideracoesFinais.Assinantes.Insert(0, autor);
                }


                ConfiguracaoDefault.Assinantes = dataSource.ConsideracoesFinais.Assinantes.Cast <IAssinante>().ToList();
            }

            ConfigurarCabecarioRodape(dataSource.LocalInfracao.SetorId);

            if (dataSource.ConsideracoesFinais.Anexos != null && dataSource.ConsideracoesFinais.Anexos.Count > 0)
            {
                foreach (ConsideracoesFinaisAnexoRelatorio anexo in dataSource.ConsideracoesFinais.Anexos)
                {
                    anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(File.ReadAllBytes(anexo.Arquivo.Caminho), 11, eAsposeImageDimensao.Ambos);
                }
            }

            ObterArquivoTemplate();

            object objeto = dataSource;

            #region Remover

            this.ConfiguracaoDefault.AddLoadAcao((doc, a) =>
            {
                List <Table> itenRemover = new List <Table>();
                FiscalizacaoRelatorioNovo fiscalizacao = (FiscalizacaoRelatorioNovo)dataSource;


                CabecalhoRodapeDa _daCabecalho = new CabecalhoRodapeDa();
                SetorEndereco endereco         = _daCabecalho.ObterEndSetor(fiscalizacao.LocalInfracao.SetorId);
                fiscalizacao.OrgaoMunicipio    = endereco.MunicipioTexto;
                fiscalizacao.OrgaoUF           = endereco.EstadoTexto;

                //fiscalizacao.OrgaoMunicipio = _configSys.Obter<String>(ConfiguracaoSistema.KeyOrgaoMunicipio);
                //fiscalizacao.OrgaoUF = _configSys.Obter<String>(ConfiguracaoSistema.KeyOrgaoUf);

                if (fiscalizacao.Infracao.Campos.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Campos»").Remove();
                }

                if (fiscalizacao.Infracao.Perguntas.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Perguntas»").Remove();
                }

                if (fiscalizacao.ConsideracoesFinais.Anexos.Count == 0)
                {
                    itenRemover.Add(doc.Last <Table>("«TableStart:ConsideracoesFinais.Anexos»"));
                    doc.RemovePageBreak();
                }

                //Remove as seções que não foram preenchidas
                if (fiscalizacao.Multa == null)
                {
                    doc.Find <Row>("«Secao.Multa»").Remove();
                }
                else
                {
                }
                if (fiscalizacao.ObjetoInfracao == null)
                {
                    doc.Find <Row>("«Secao.InterdicaoEmbargo»").Remove();
                }
                if (fiscalizacao.MaterialApreendido == null)
                {
                    doc.Find <Row>("«Secao.Apreensao»").Remove();
                }
                else
                {
                    if (fiscalizacao.MaterialApreendido.ProdutosDestinacoes == null || fiscalizacao.MaterialApreendido.ProdutosDestinacoes.Count == 0)
                    {
                        doc.Find <Row>("«TableStart:MaterialApreendido.ProdutosDestinacoes»").Remove();
                    }
                }
                if (fiscalizacao.OutrasPenalidades == null)
                {
                    doc.Find <Row>("«Secao.OutrasPenalidades»").Remove();
                }
                if (fiscalizacao.LocalInfracao.EmpreendimentoId == 0)
                {
                    doc.Find <Row>("«Secao.Empreendimento»").Remove();
                }

                AsposeExtensoes.RemoveTables(itenRemover);
            });

            #endregion Remover

            ConfiguracaoDefault.ExibirSimplesConferencia = gerarTarja;

            return(GerarPdf(dataSource));
        }
Пример #2
0
        public MemoryStream GerarLaudoFiscalizacao(int id, bool gerarTarja = true, BancoDeDados banco = null)
        {
            ArquivoDocCaminho = @"~/Content/_pdfAspose/Laudo_de_Fiscalizacao.docx";

            FiscalizacaoRelatorio dataSource = _da.Obter(id, banco);

            ConfiguracaoDefault.TextoTagAssinante   = "«Assinante.Nome»";
            ConfiguracaoDefault.TextoTagAssinantes1 = "«TableStart:Assinantes1»";
            ConfiguracaoDefault.TextoTagAssinantes2 = "«TableStart:Assinantes2»";

            if (dataSource.ConsideracoesFinais != null &&
                dataSource.ConsideracoesFinais.Assinantes != null &&
                dataSource.ConsideracoesFinais.Assinantes.Count > 0)
            {
                var autor = dataSource.ConsideracoesFinais.Assinantes.First(x => x.Id == dataSource.UsuarioCadastro.Id);
                if (autor != null)
                {
                    dataSource.ConsideracoesFinais.Assinantes.Remove(autor);
                    dataSource.ConsideracoesFinais.Assinantes.Insert(0, autor);
                }


                ConfiguracaoDefault.Assinantes = dataSource.ConsideracoesFinais.Assinantes.Cast <IAssinante>().ToList();
            }

            ConfigurarCabecarioRodape(dataSource.LocalInfracao.SetorId);

            if (dataSource.ConsideracoesFinais.Anexos != null && dataSource.ConsideracoesFinais.Anexos.Count > 0)
            {
                foreach (ConsideracoesFinaisAnexoRelatorio anexo in dataSource.ConsideracoesFinais.Anexos)
                {
                    anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(File.ReadAllBytes(anexo.Arquivo.Caminho), 11, eAsposeImageDimensao.Ambos);
                }
            }

            ObterArquivoTemplate();

            object objeto = dataSource;

            #region Remover

            this.ConfiguracaoDefault.AddLoadAcao((doc, a) =>
            {
                List <Table> itenRemover           = new List <Table>();
                FiscalizacaoRelatorio fiscalizacao = (FiscalizacaoRelatorio)dataSource;

                fiscalizacao.OrgaoMunicipio = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoMunicipio);
                fiscalizacao.OrgaoUF        = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoUf);

                if (fiscalizacao.Infracao.Campos.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Campos»").Remove();
                }

                if (fiscalizacao.Infracao.Perguntas.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Perguntas»").Remove();
                }

                if (fiscalizacao.ConsideracoesFinais.Anexos.Count == 0)
                {
                    itenRemover.Add(doc.Last <Table>("«TableStart:ConsideracoesFinais.Anexos»"));
                    doc.RemovePageBreak();
                }

                #region Anexo Croqui da fiscalizacao

                /*List<ArquivoProjeto> arquivosProj = new ProjetoGeograficoBus().ObterArquivos(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0), true).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui).ToList();
                 *
                 * autorizacao.AnexosPdfs = arquivosProj.Cast<Arquivo>().ToList();
                 *
                 * //Obtendo Arquivos
                 * ArquivoBus _busArquivo = new ArquivoBus();
                 *
                 * for (int i = 0; i < autorizacao.AnexosPdfs.Count; i++)
                 * {
                 *      autorizacao.AnexosPdfs[i] = _busArquivo.ObterDados(autorizacao.AnexosPdfs[i].Id.GetValueOrDefault(0));
                 * }*/

                #endregion

                AsposeExtensoes.RemoveTables(itenRemover);
            });

            #endregion Remover

            ConfiguracaoDefault.ExibirSimplesConferencia = gerarTarja;

            return(GerarPdf(dataSource));
        }
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                Laudo laudo = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);
                DataEmissaoPorExtenso(laudo.Titulo);

                #region Anexos

                laudo.AnexosPdfs = laudo.Anexos
                                   .Select(x => x.Arquivo)
                                   .Where(x => (!String.IsNullOrEmpty(x.Nome) && new FileInfo(x.Nome).Extension.ToLower().IndexOf("pdf") > -1)).ToList();

                laudo.Anexos.RemoveAll(anexo =>
                                       String.IsNullOrEmpty(anexo.Arquivo.Extensao) ||
                                       !((new[] { ".jpg", ".gif", ".png", ".bmp" }).Any(x => anexo.Arquivo.Extensao.ToLower() == x)));

                if (laudo.Anexos != null && laudo.Anexos.Count > 0)
                {
                    foreach (AnexoPDF anexo in laudo.Anexos)
                    {
                        anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(
                            File.ReadAllBytes(anexo.Arquivo.Caminho),
                            11, eAsposeImageDimensao.Ambos);
                    }
                }

                #endregion

                laudo.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                if (laudo.CaracterizacaoTipo == (int)eCaracterizacao.ExploracaoFlorestal)
                {
                    var exploracoes = new ExploracaoFlorestalBus().ObterExploracoes(especificidade.Titulo.Id, (int)eTituloModeloCodigo.LaudoVistoriaFlorestal);
                    laudo.ExploracaoFlorestalList = exploracoes.Select(x => new ExploracaoFlorestalPDF(x)).ToList();
                    var parecerFavoravel    = new ArrayList();
                    var parecerDesfavoravel = new ArrayList();
                    foreach (var exploracao in exploracoes)
                    {
                        if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true)?.ToList().Count > 0)
                        {
                            parecerFavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true).Select(x => x.Identificacao)?.ToList()), ")"));
                        }
                        if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false)?.ToList().Count > 0)
                        {
                            parecerDesfavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false).Select(x => x.Identificacao)?.ToList()), ")"));
                        }
                    }
                    laudo.ParecerFavoravel    = parecerFavoravel.Count > 0 ? String.Join(", ", parecerFavoravel?.ToArray()) : "";
                    laudo.ParecerDesfavoravel = parecerDesfavoravel.Count > 0 ? String.Join(", ", parecerDesfavoravel?.ToArray()) : "";
                }
                else
                {
                    laudo.ExploracaoFlorestal = new ExploracaoFlorestalPDF(new ExploracaoFlorestalBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));
                }
                laudo.QueimaControlada = new QueimaControladaPDF(new QueimaControladaBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                laudo.Silvicultura = new SilviculturaPDF(new SilviculturaBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                return(laudo);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                Cadastro cadastro = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);
                CadastroAmbientalRuralBus carBus = new CadastroAmbientalRuralBus();

                cadastro.CAR           = new CadastroAmbientalRuralPDF(carBus.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), true));
                cadastro.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                if (cadastro.Dominialidade.IsEmpreendimentoCedente && cadastro.Dominialidade.IsEmpreendimentoReceptor)
                {
                    cadastro.CAR.TipoCompensacao = "CEDENTE E RECEPTOR";
                }
                else if (cadastro.Dominialidade.IsEmpreendimentoCedente)
                {
                    cadastro.CAR.TipoCompensacao = "CEDENTE";
                }
                else if (cadastro.Dominialidade.IsEmpreendimentoReceptor)
                {
                    cadastro.CAR.TipoCompensacao = "RECEPTOR";
                }

                #region Solicitacao CAR

                //Interno
                cadastro.SICAR = _da.ObterSICARInterno(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0), banco) ?? new SicarPDF();

                if (String.IsNullOrWhiteSpace(cadastro.SICAR.Numero))
                {
                    cadastro.SICAR = _da.ObterSICARCredenciado(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0), banco) ?? new SicarPDF();
                }

                #endregion

                #region Arl Compensadas

                cadastro.Dominialidade.Dominios.ForEach(d =>
                {
                    List <ReservaLegalPDF> rlCompensadas = d.ReservasLegais.Where(r => r.CompensacaoTipo != eCompensacaoTipo.Nulo).ToList();

                    foreach (var reservaLegal in rlCompensadas)
                    {
                        string identificacao             = string.Empty;
                        string areaCroqui                = string.Empty;
                        string coordenadaE               = string.Empty;
                        string coordenadaN               = string.Empty;
                        eCompensacaoTipo compensacaoTipo = eCompensacaoTipo.Nulo;

                        if (reservaLegal.CompensacaoTipo.Equals(eCompensacaoTipo.Cedente))
                        {
                            compensacaoTipo = eCompensacaoTipo.Cedente;
                            identificacao   = reservaLegal.Identificacao;
                            areaCroqui      = reservaLegal.ARLCroqui;
                            coordenadaE     = reservaLegal.Coordenada.EastingUtm.ToString();
                            coordenadaN     = reservaLegal.Coordenada.NorthingUtm.ToString();
                        }
                        else if (reservaLegal.CompensacaoTipo.Equals(eCompensacaoTipo.Receptora))
                        {
                            compensacaoTipo = eCompensacaoTipo.Receptora;

                            if (reservaLegal.IdentificacaoARLCedente > 0)
                            {
                                var reservaLegalReceptora = new DominialidadeDa().ObterARLPorId(reservaLegal.IdentificacaoARLCedente);

                                identificacao = reservaLegalReceptora.Identificacao;
                                areaCroqui    = reservaLegalReceptora.ARLCroqui.ToStringTrunc();
                                coordenadaE   = reservaLegalReceptora.Coordenada.EastingUtm.ToString();
                                coordenadaN   = reservaLegalReceptora.Coordenada.NorthingUtm.ToString();
                            }
                            else
                            {
                                areaCroqui  = reservaLegal.ARLCroqui;
                                coordenadaE = reservaLegal.Coordenada.EastingUtm.ToString();
                                coordenadaN = reservaLegal.Coordenada.NorthingUtm.ToString();
                            }
                        }

                        if (string.IsNullOrWhiteSpace(areaCroqui))
                        {
                            continue;
                        }

                        cadastro.CAR.TotalRLCompensadaDecimal += Convert.ToDecimal(areaCroqui);

                        cadastro.RLCompensada.Add(new AreaReservaLegalPDF()
                        {
                            CompensacaoTipo = (int)compensacaoTipo,
                            Tipo            = reservaLegal.SituacaoVegetalId,
                            Codigo          = reservaLegal.EmpreendimentoCompensacao.Codigo,
                            AreaCroqui      = areaCroqui,
                            CoordenadaE     = coordenadaE,
                            CoordenadaN     = coordenadaN,
                            Identificacao   = identificacao
                        });
                    }
                });

                #endregion

                #region Croqui
                List <ArquivoProjeto> arquivosProj = carBus.ObterArquivosProjeto(cadastro.CAR.ProjetoGeoId, true).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui).ToList();
                cadastro.AnexosPdfs = arquivosProj.Cast <Arquivo>().ToList();

                //Obtendo Arquivos
                ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                for (int i = 0; i < cadastro.AnexosPdfs.Count; i++)
                {
                    cadastro.AnexosPdfs[i] = _busArquivo.ObterDados(cadastro.AnexosPdfs[i].Id.GetValueOrDefault(0));
                }
                #endregion

                String pathImg = HttpContext.Current.Request.MapPath("~/Content/_imgLogo/logomarca_simlam_idaf.jpg");
                cadastro.LogoOrgao = File.ReadAllBytes(pathImg);
                cadastro.LogoOrgao = AsposeImage.RedimensionarImagem(cadastro.LogoOrgao, 2.2f);

                GerenciadorConfiguracao <ConfiguracaoSistema>     _configSys  = new GerenciadorConfiguracao <ConfiguracaoSistema>(new ConfiguracaoSistema());
                GerenciadorConfiguracao <ConfiguracaoFuncionario> _configFunc = new GerenciadorConfiguracao <ConfiguracaoFuncionario>(new ConfiguracaoFuncionario());

                cadastro.GovernoNome    = _configSys.Obter <String>(ConfiguracaoSistema.KeyGovernoNome);
                cadastro.SecretariaNome = _configSys.Obter <String>(ConfiguracaoSistema.KeySecretariaNome);
                cadastro.OrgaoNome      = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoNome);
                cadastro.SetorNome      = _configFunc.Obter <List <Setor> >(ConfiguracaoFuncionario.KeySetores).Single(x => x.Id == especificidade.Titulo.SetorId).Nome;

                return(cadastro);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Пример #5
0
        public MemoryStream GerarLaudoAcompanhamentoFiscalizacao(int id, bool gerarTarja = true, BancoDeDados banco = null)
        {
            ArquivoDocCaminho = @"~/Content/_pdfAspose/Laudo_de_Fiscalizacao_Acompanhamento.docx";

            AcompanhamentoRelatorio acompanhamento = _daAcompanhamento.Obter(id, banco: banco);
            int historicoId = _da.ObterHistoricoIdConcluido(acompanhamento.FiscalizacaoId, banco);
            FiscalizacaoRelatorio dataSource = _da.ObterHistorico(historicoId, banco);

            dataSource.Acompanhamento = acompanhamento;

            ConfiguracaoDefault.TextoTagAssinante   = "«Assinante.Nome»";
            ConfiguracaoDefault.TextoTagAssinantes1 = "«TableStart:Assinantes1»";
            ConfiguracaoDefault.TextoTagAssinantes2 = "«TableStart:Assinantes2»";

            if (dataSource.Acompanhamento != null &&
                dataSource.Acompanhamento.Assinantes != null &&
                dataSource.Acompanhamento.Assinantes.Count > 0)
            {
                var autor = dataSource.Acompanhamento.Assinantes.First(x => x.Id == dataSource.Acompanhamento.AgenteId);
                if (autor != null)
                {
                    dataSource.Acompanhamento.Assinantes.Remove(autor);
                    dataSource.Acompanhamento.Assinantes.Insert(0, autor);
                }

                ConfiguracaoDefault.Assinantes = dataSource.Acompanhamento.Assinantes.Cast <IAssinante>().ToList();
            }

            ConfigurarCabecarioRodape(dataSource.Acompanhamento.SetorId);

            if (dataSource.Acompanhamento.Anexos != null && dataSource.Acompanhamento.Anexos.Count > 0)
            {
                foreach (ConsideracoesFinaisAnexoRelatorio anexo in dataSource.Acompanhamento.Anexos)
                {
                    anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(File.ReadAllBytes(anexo.Arquivo.Caminho), 11, eAsposeImageDimensao.Ambos);
                }
            }

            ObterArquivoTemplate();

            object objeto = dataSource;

            #region Remover

            this.ConfiguracaoDefault.AddLoadAcao((doc, a) =>
            {
                List <Table> itenRemover           = new List <Table>();
                FiscalizacaoRelatorio fiscalizacao = (FiscalizacaoRelatorio)dataSource;

                fiscalizacao.OrgaoMunicipio = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoMunicipio);
                fiscalizacao.OrgaoUF        = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoUf);

                if (fiscalizacao.Infracao.Campos.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Campos»").Remove();
                }

                if (fiscalizacao.Infracao.Perguntas.Count == 0)
                {
                    doc.Find <Row>("«TableStart:Infracao.Perguntas»").Remove();
                }

                if (fiscalizacao.Acompanhamento.Anexos.Count == 0)
                {
                    itenRemover.Add(doc.Last <Table>("«TableStart:Acompanhamento.Anexos»"));
                    doc.RemovePageBreak();
                }

                AsposeExtensoes.RemoveTables(itenRemover);
            });

            #endregion Remover

            ConfiguracaoDefault.ExibirSimplesConferencia = gerarTarja;

            return(GerarPdf(dataSource));
        }