internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@" select l.texto, c.area_total from {0}crt_silvicultura_ppff c, {0}lov_crt_sil_ppf_fomento l where c.empreendimento = :empreendimento 
                    and c.atividade = :atividade ", EsquemaBanco);

                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Tipo de Fomento", Valor = reader["texto"].ToString()
                        });
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Área Total", Valor = reader["area_total"].ToString()
                        });
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int barragemId, BancoDeDados banco = null)
        {
            CaracterizacaoPDF caract = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
					select ta.quantidade, 
						   lf.texto finalidade, 
						   tb.lamina_agua, 
						   tb.volume_armazenamento,
						   ta.geometria_coord_atv_x,
						   ta.geometria_coord_atv_y
					  from {0}crt_barragem_barragens ta,
						   {0}lov_crt_barragem_finalidade lf,
						   (select sum(cbbd.lamina_agua) lamina_agua,
								   sum(cbbd.volume_armazenamento) volume_armazenamento,
								   cbbd.barragens
							  from {0}crt_barragem_barragens cbb, {0}crt_barragem_brgns_dados cbbd
							 where cbb.id = cbbd.barragens
							 group by cbbd.barragens) tb
					 where ta.finalidade = lf.id(+)
					   and ta.id = tb.barragens
					   and ta.id = :barragemId"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("barragemId", barragemId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caract = new CaracterizacaoPDF();
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Quantidade de Barragens", Valor = reader.GetValue <string>("quantidade")
                        });
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Finalidade", Valor = reader.GetValue <string>("finalidade")
                        });
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Área total de lâmina (ha)", Valor = reader.GetValue <string>("lamina_agua")
                        });
                        caract.Campos.Add(new CaracterizacaoCampoPDF()
                        {
                            Nome = "Volume Total armazenado (m³)", Valor = reader.GetValue <string>("volume_armazenamento")
                        });
                        caract.EastingLongitude = reader.GetValue <decimal>("geometria_coord_atv_x").ToString("F2");
                        caract.NorthingLatitude = reader.GetValue <decimal>("geometria_coord_atv_y").ToString("F2");
                    }
                    reader.Close();
                }
            }

            return(caract);
        }
        public static CaracterizacaoPDF ObterDadosCaracterizacoes(IEspecificidade especificidade)
        {
            if (especificidade.Atividades == null || especificidade.Atividades.Count == 0)
            {
                return(new CaracterizacaoPDF());
            }

            if (especificidade.Atividades.Exists(x => x.Id == AtividadeIdSilvicultura || x.Id == AtividadeIdPulverizacao))
            {
                return(ObterDadosCulturas(especificidade));
            }

            List <DependenciaLst>     lstDependencias = ObterDependenciasAtividadesCaract(especificidade);
            List <ICaracterizacaoBus> lstCaractBus    = lstDependencias.Select(x => CaracterizacaoBusFactory.Criar((eCaracterizacao)x.DependenciaTipo)).ToList();

            List <CaracterizacaoPDF> lstCampos = new List <CaracterizacaoPDF>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                especificidade.Atividades.ForEach(ativ =>
                {
                    lstCaractBus.ForEach(caractBus =>
                    {
                        /*if (ativ.Id == AtividadeBarragem)
                         * {
                         *      especificidade.TipoDadoCaract = eEspecificidadeDadosCaractTipo.Barragem;
                         *      especificidade.TipoDadoId =
                         * }*/

                        var dado = caractBus.ObterDadosPdfTitulo(especificidade.Titulo.EmpreendimentoId.Value, ativ.Id, especificidade, banco: bancoDeDados);
                        if (dado != null)
                        {
                            lstCampos.Add(dado as CaracterizacaoPDF);
                        }
                    });
                });
            }

            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            if (lstCampos != null && lstCampos.Count > 0)
            {
                var campo = lstCampos.Find(x => !String.IsNullOrEmpty(x.EastingLongitude)) ?? new CaracterizacaoPDF();
                caract.EastingLongitude = campo.EastingLongitude;
                caract.NorthingLatitude = campo.NorthingLatitude;
            }
            caract.Campos = lstCampos.SelectMany(x => x.Campos).ToList();

            caract.Organizar();

            return(caract);
        }
        public object ObterDadosPdfTitulo(int empreendimento, int atividade, IEspecificidade especificidade, BancoDeDados banco = null)
        {
            PulverizacaoProduto pulverizacao = ObterPorEmpreendimento(empreendimento);
            CaracterizacaoPDF   caractPdf    = new CaracterizacaoPDF();

            #region Culturas

            Decimal totalHa = 0;
            foreach (Cultura cultura in pulverizacao.Culturas)
            {
                Decimal auxHa = 0;
                if (Decimal.TryParse(cultura.Area, out auxHa))
                {
                    totalHa += auxHa;
                }
            }

            caractPdf.Cultura.AreaTotalHa = totalHa.ToStringTrunc(4);

            //Agrupando Culturas Florestais
            List <CulturaFlorestalTipoPDF> culturas = new List <CulturaFlorestalTipoPDF>();

            pulverizacao.Culturas.ForEach(y =>
            {
                culturas.Add(new CulturaFlorestalTipoPDF()
                {
                    AreaCultura      = y.Area,
                    AreaCulturaHa    = y.Area,
                    AreaCulturaTexto = y.Area,
                    CulturaTipo      = y.TipoId,
                    CulturaTipoTexto = y.TipoTexto,
                    EspecificarTexto = y.EspecificarTexto,
                    Id  = y.Id,
                    Tid = y.Tid
                });
            });

            culturas.ForEach(cultura =>
            {
                if (!caractPdf.Cultura.Tipos.Exists(y => y.CulturaTipoTexto.ToLower() == cultura.CulturaTipoTexto.ToLower()))
                {
                    cultura.AreaCultura = culturas
                                          .Where(x => x.CulturaTipoTexto.ToLower() == cultura.CulturaTipoTexto.ToLower())
                                          .Sum(x => Convert.ToDecimal(x.AreaCulturaHa)).ToStringTrunc(4);
                    caractPdf.Cultura.Tipos.Add(cultura);
                }
            });

            #endregion

            return(caractPdf);
        }
Beispiel #5
0
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            //Nº de secadores
            //Capacidade total instalada (L)
            //Coordenada da atividade
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.numero_secadores, (select sum(cap.capacidade) 
					from {0}crt_sec_mec_graos_cap_sec cap where cap.caracterizacao = c.id ) capacidade, c.geometria_coord_atv_x, 
					c.geometria_coord_atv_y from {0}crt_sec_mec_graos c where c.empreendimento = :empreendimento and c.atividade = :atividade"                    , EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["numero_secadores"] != null && !Convert.IsDBNull(reader["numero_secadores"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Nº de secadores", Valor = reader["numero_secadores"].ToString()
                            });
                        }

                        if (reader["capacidade"] != null && !Convert.IsDBNull(reader["capacidade"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Capacidade total instalada (L)", Valor = reader["capacidade"].ToString()
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
Beispiel #6
0
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            //Número máximo de cabeças
            //Número máximo de matrizes
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.numero_max_cabecas, c.numero_max_matrizes, c.geometria_coord_atv_x, c.geometria_coord_atv_y
															from {0}crt_suinocultura c where c.empreendimento = :empreendimento and c.atividade = :atividade"                                                            , EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        if (reader["numero_max_cabecas"] != null && !Convert.IsDBNull(reader["numero_max_cabecas"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Número máximo de cabeças", Valor = Convert.ToDecimal(reader["numero_max_cabecas"]).ToString("N2")
                            });
                        }

                        if (reader["numero_max_matrizes"] != null && !Convert.IsDBNull(reader["numero_max_matrizes"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Número máximo de matrizes", Valor = Convert.ToDecimal(reader["numero_max_matrizes"]).ToString("N2")
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            //Área terraplanada (m²)
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select c.area, c.volume_movimentado, c.geometria_coord_atv_x, c.geometria_coord_atv_y
				from {0}crt_terraplanagem c where c.empreendimento = :empreendimento and c.atividade = :atividade"                , EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        if (reader["area"] != null && !Convert.IsDBNull(reader["area"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área terraplanada (m²)", Valor = Convert.ToDecimal(reader["area"]).ToString("N2")
                            });
                        }

                        if (reader["volume_movimentado"] != null && !Convert.IsDBNull(reader["volume_movimentado"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Volume de terra movimentado (m³)", Valor = Convert.ToDecimal(reader["volume_movimentado"]).ToString("N2")
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal object ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.geometria_coord_atv_x, c.geometria_coord_atv_y , c.volume_madeira_serrar, c.volume_madeira_processar
                              from {0}crt_benefic_madeira_benef c, {0}crt_benefic_madeira m 
                              where m.empreendimento = :empreendimento and c.atividade = :atividade and c.caracterizacao = m.id", EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["volume_madeira_serrar"] != null && !Convert.IsDBNull(reader["volume_madeira_serrar"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Volume de madeira a ser serrada (m³/mês)", Valor = Convert.ToDecimal(reader["volume_madeira_serrar"]).ToString("N2")
                            });
                        }

                        if (reader["volume_madeira_processar"] != null && !Convert.IsDBNull(reader["volume_madeira_processar"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Volume de madeira a ser processada (m³/mês)", Valor = Convert.ToDecimal(reader["volume_madeira_processar"]).ToString("N2")
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.numero_fornos, c.geometria_coord_atv_x, c.geometria_coord_atv_y, 
					sum(f.volume) volume from crt_prod_carvao_vegetal c, crt_prod_carvao_veg_forno f where c.id = f.caracterizacao and c.empreendimento = :empreendimento and c.atividade = :atividade 
					group by c.id, c.numero_fornos, c.geometria_coord_atv_x, c.geometria_coord_atv_y"                    , EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["numero_fornos"] != null && !Convert.IsDBNull(reader["numero_fornos"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Nº de fornos", Valor = reader["numero_fornos"].ToString()
                            });
                        }

                        if (reader["volume"] != null && !Convert.IsDBNull(reader["volume"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Volume útil total dos fornos (m³)", Valor = Convert.ToDecimal(reader["volume"]).ToString("F2")
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        public object ObterDadosPdfTitulo(int empreendimento, int atividade, IEspecificidade especificidade, BancoDeDados banco = null)
        {
            Silvicultura      silvicultura = ObterPorEmpreendimento(empreendimento);
            CaracterizacaoPDF caractPdf    = new CaracterizacaoPDF();

            #region Culturas

            caractPdf.Cultura.AreaTotalHa = silvicultura.Silviculturas.Sum(x => x.AreaCroquiHa).ToStringTrunc(4);

            //Agrupando Culturas Florestais
            List <CulturaFlorestalTipoPDF> culturas = new List <CulturaFlorestalTipoPDF>();

            silvicultura.Silviculturas.ForEach(x =>
            {
                x.Culturas.ForEach(y =>
                {
                    culturas.Add(new CulturaFlorestalTipoPDF()
                    {
                        AreaCultura      = y.AreaCultura.ToStringTrunc(4),
                        AreaCulturaHa    = y.AreaCulturaHa.ToStringTrunc(),
                        AreaCulturaTexto = y.AreaCulturaTexto,
                        CulturaTipo      = y.CulturaTipo,
                        CulturaTipoTexto = y.CulturaTipoTexto,
                        EspecificarTexto = y.EspecificarTexto,
                        Id  = y.Id,
                        Tid = y.Tid
                    });
                });
            });

            culturas.ForEach(cultura =>
            {
                if (!caractPdf.Cultura.Tipos.Exists(y => y.CulturaTipoTexto.ToLower() == cultura.CulturaTipoTexto.ToLower()))
                {
                    cultura.AreaCultura = culturas
                                          .Where(x => x.CulturaTipoTexto.ToLower() == cultura.CulturaTipoTexto.ToLower())
                                          .Sum(x => Convert.ToDecimal(x.AreaCulturaHa)).ToStringTrunc(4);
                    caractPdf.Cultura.Tipos.Add(cultura);
                }
            });
            #endregion

            return(caractPdf);
        }
Beispiel #11
0
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            //Coordenada da atividade
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.geometria_coord_atv_x, c.geometria_coord_atv_y,
															(select sum(p.area) from crt_pulveriz_prod_cult p where p.caracterizacao = c.id) area_total 
															from {0}crt_pulveriz_prod_agr c where c.empreendimento = :empreendimento 
															and c.atividade = :atividade"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }

                        if (reader["area_total"] != null && !Convert.IsDBNull(reader["area_total"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área total de pulverização (ha)", Valor = Convert.ToDecimal(reader["area_total"]).ToStringTrunc(4)
                            });
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select ca.geometria_coord_atv_x, ca.geometria_coord_atv_y, (select sum(cac.area) from {0}crt_avicultura_confinament cac where 
				cac.caracterizacao = ca.id) area from {0}crt_avicultura ca where ca.empreendimento = :empreendimento and ca.atividade = :atividade"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["area"] != null && !Convert.IsDBNull(reader["area"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área de confinamento total (galpões em m²)", Valor = reader["area"].ToString()
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = reader["geometria_coord_atv_x"].ToString();
                            caract.NorthingLatitude = reader["geometria_coord_atv_y"].ToString();
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
Beispiel #13
0
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.capacidade_total_instalada, c.geometria_coord_atv_x, 
					c.geometria_coord_atv_y from {0}crt_despolpamento_cafe c where c.empreendimento = :empreendimento and c.atividade = :atividade"                    , EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["capacidade_total_instalada"] != null && !Convert.IsDBNull(reader["capacidade_total_instalada"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Capacidade instalada total (L/hora)", Valor = reader["capacidade_total_instalada"].ToString()
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        internal object ObterDadosPdfTitulo(int empreendimento, int atividade, IEspecificidade especificidade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select ca.geometria_coord_atv_x, ca.geometria_coord_atv_y, ca.area_inundada, ca.num_viveiros_escavados, ca.num_unid_cultivo,
				(select sum(cc.volume) from crt_aquicultura_cultivos cc where cc.aquicultura = ca.id) volume, ca.area_cultivo
				from crt_aquicultura c, crt_aquicultura_aquic ca where ca.caracterizacao = c.id and c.empreendimento = :empreendimento and ca.atividade = :atividade"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", atividade, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        if (reader["area_inundada"] != null && !Convert.IsDBNull(reader["area_inundada"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área total inundada (ha)", Valor = reader.GetValue <string>("area_inundada")
                            });
                        }

                        if (reader["num_viveiros_escavados"] != null && !Convert.IsDBNull(reader["num_viveiros_escavados"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Nº de viveiros escavados", Valor = reader.GetValue <string>("num_viveiros_escavados")
                            });
                        }

                        if (reader["num_unid_cultivo"] != null && !Convert.IsDBNull(reader["num_unid_cultivo"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Nº de unidade de cultivo", Valor = reader.GetValue <string>("num_unid_cultivo")
                            });
                        }

                        if (reader["volume"] != null && !Convert.IsDBNull(reader["volume"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Volume total de cultivo (m³)", Valor = reader.GetValue <string>("volume")
                            });
                        }

                        if (reader["area_cultivo"] != null && !Convert.IsDBNull(reader["area_cultivo"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área de cultivo (m²)", Valor = reader.GetValue <string>("area_cultivo")
                            });
                        }

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = reader.GetValue <string>("geometria_coord_atv_x");
                            caract.NorthingLatitude = reader.GetValue <string>("geometria_coord_atv_y");
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
        public object ObterDadosPdfTitulo(int empreendimento, int atividade, IEspecificidade especificidade, BancoDeDados banco = null)
        {
            CaracterizacaoPDF caractPdf = _da.ObterDadosPdfTitulo(empreendimento, atividade, banco);

            return(caractPdf);
        }