Exemplo n.º 1
0
        private Silvicultura ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            Silvicultura caracterizacao    = new Silvicultura();
            int          hst               = 0;
            int          hstCaracterizacao = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Silvicultura

                Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.tid 
				from {0}hst_crt_silvicultura c where c.caracterizacao = :id and c.tid = :tid"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        hst = Convert.ToInt32(reader["id"]);
                        hstCaracterizacao = hst;

                        caracterizacao.Id = id;
                        caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento_id"]);
                        caracterizacao.Tid = reader["tid"].ToString();
                    }

                    reader.Close();
                }

                #endregion

                if (caracterizacao.Id <= 0 || simplificado)
                {
                    return(caracterizacao);
                }

                #region Silviculturas

                comando = bancoDeDados.CriarComando(@"select c.id, c.silvicultura_silv_id, c.identificacao, c.area_croqui, c.geometria_id, c.geometria_texto, c.tid 
													from {0}hst_crt_silvicultura_silv c where c.id_hst = :id"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    SilviculturaSilvicult silvicultura = null;

                    while (reader.Read())
                    {
                        hst = Convert.ToInt32(reader["id"]);

                        silvicultura                    = new SilviculturaSilvicult();
                        silvicultura.Id                 = Convert.ToInt32(reader["silvicultura_silv_id"]);
                        silvicultura.Tid                = reader["tid"].ToString();
                        silvicultura.Identificacao      = reader["identificacao"].ToString();
                        silvicultura.AreaCroqui         = reader.GetValue <Decimal>("area_croqui");
                        silvicultura.GeometriaTipo      = Convert.ToInt32(reader["geometria_id"]);
                        silvicultura.GeometriaTipoTexto = reader["geometria_texto"].ToString();

                        #region Culturas Florestais

                        comando = bancoDeDados.CriarComando(@"select c.silvicultura_cult_id id, c.cultura_id, c.cultura_texto, 
															c.area, c.especificar, c.tid from {0}hst_crt_silvicultura_cult c 
															where c.id_hst = :id"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            CulturaFlorestal cultura = null;

                            while (readerAux.Read())
                            {
                                cultura                  = new CulturaFlorestal();
                                cultura.Id               = Convert.ToInt32(readerAux["id"]);
                                cultura.CulturaTipo      = Convert.ToInt32(readerAux["cultura_id"]);
                                cultura.CulturaTipoTexto = readerAux["cultura_texto"].ToString();
                                cultura.Tid              = readerAux["tid"].ToString();

                                if (readerAux["especificar"] != null && !Convert.IsDBNull(readerAux["especificar"]))
                                {
                                    cultura.EspecificarTexto = readerAux["especificar"].ToString();
                                    cultura.CulturaTipoTexto = cultura.EspecificarTexto;
                                }

                                silvicultura.Culturas.Add(cultura);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        caracterizacao.Silviculturas.Add(silvicultura);
                    }

                    reader.Close();
                }

                #endregion

                #region Áreas

                comando = bancoDeDados.CriarComando(@"select a.silvicultura_area_id, a.tipo_id, a.tipo_texto, a.valor, a.tid 
													from {0}hst_crt_silvicultura_areas a 
													where a.id_hst = :hst_caracterizacao"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("hst_caracterizacao", hstCaracterizacao, DbType.Int32);

                using (IDataReader readerAux2 = bancoDeDados.ExecutarReader(comando))
                {
                    SilviculturaArea item;
                    while (readerAux2.Read())
                    {
                        item           = new SilviculturaArea();
                        item.Id        = Convert.ToInt32(readerAux2["silvicultura_area_id"]);
                        item.Tid       = readerAux2["tid"].ToString();
                        item.Tipo      = Convert.ToInt32(readerAux2["tipo_id"]);
                        item.TipoTexto = readerAux2["tipo_texto"].ToString();
                        item.Valor     = readerAux2.GetValue <Decimal>("valor");

                        caracterizacao.Areas.Add(item);
                    }

                    readerAux2.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
Exemplo n.º 2
0
        internal Silvicultura Obter(int id, BancoDeDados banco = null, bool simplificado = false)
        {
            Silvicultura caracterizacao = new Silvicultura();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Silvicultura

                Comando comando = bancoDeDados.CriarComando(@"select c.empreendimento, c.tid from {0}crt_silvicultura c where c.id = :id", EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caracterizacao.Id = id;
                        caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento"]);
                        caracterizacao.Tid = reader["tid"].ToString();
                    }

                    reader.Close();
                }

                #endregion

                if (caracterizacao.Id <= 0 || simplificado)
                {
                    return(caracterizacao);
                }

                #region Silviculturas

                comando = bancoDeDados.CriarComando(@"select c.id, c.identificacao, lv.id geometria, lv.texto geometria_texto, c.area_croqui, c.tid 
													from {0}crt_silvicultura_silv c, lov_crt_geometria_tipo lv 
													where c.caracterizacao = :id and c.geometria = lv.id order by c.id"                                                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    SilviculturaSilvicult silvicultura = null;

                    while (reader.Read())
                    {
                        silvicultura                    = new SilviculturaSilvicult();
                        silvicultura.Id                 = Convert.ToInt32(reader["id"]);
                        silvicultura.Tid                = reader["tid"].ToString();
                        silvicultura.Identificacao      = reader["identificacao"].ToString();
                        silvicultura.AreaCroqui         = reader.GetValue <Decimal>("area_croqui");
                        silvicultura.GeometriaTipo      = Convert.ToInt32(reader["geometria"]);
                        silvicultura.GeometriaTipoTexto = reader["geometria_texto"].ToString();
                        silvicultura.AreaCroquiHa       = silvicultura.AreaCroqui.Convert(eMetrica.M2ToHa);

                        #region Culturas Florestais

                        comando = bancoDeDados.CriarComando(@"select c.id, lc.id cultura, lc.texto cultura_texto, c.area, c.especificar, c.tid
															from {0}crt_silvicultura_cult c, {0}lov_crt_silvicultura_cult_fl lc where c.cultura = lc.id
															and c.silvicultura_id = :silvicultura"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("silvicultura", silvicultura.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            CulturaFlorestal cultura = null;

                            while (readerAux.Read())
                            {
                                cultura                  = new CulturaFlorestal();
                                cultura.Id               = Convert.ToInt32(readerAux["id"]);
                                cultura.Tid              = readerAux["tid"].ToString();
                                cultura.CulturaTipo      = Convert.ToInt32(readerAux["cultura"]);
                                cultura.CulturaTipoTexto = readerAux["cultura_texto"].ToString();
                                cultura.AreaCulturaHa    = readerAux.GetValue <Decimal>("area").Convert(eMetrica.M2ToHa);
                                cultura.AreaCulturaTexto = cultura.AreaCulturaHa.ToStringTrunc(4);

                                if (readerAux["especificar"] != null && !Convert.IsDBNull(readerAux["especificar"]))
                                {
                                    cultura.EspecificarTexto = readerAux["especificar"].ToString();
                                    cultura.CulturaTipoTexto = cultura.EspecificarTexto;
                                }

                                silvicultura.Culturas.Add(cultura);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        caracterizacao.Silviculturas.Add(silvicultura);
                    }

                    reader.Close();
                }

                #endregion

                #region Áreas

                comando = bancoDeDados.CriarComando(@"select a.id, a.tipo, la.texto tipo_texto, a.valor, a.tid from {0}crt_silvicultura_areas a, {0}lov_crt_silvicultura_area la 
															where a.tipo = la.id and a.caracterizacao = :caracterizacao"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);

                using (IDataReader readerAux2 = bancoDeDados.ExecutarReader(comando))
                {
                    SilviculturaArea item;
                    while (readerAux2.Read())
                    {
                        item           = new SilviculturaArea();
                        item.Id        = Convert.ToInt32(readerAux2["id"]);
                        item.Tid       = readerAux2["tid"].ToString();
                        item.Tipo      = Convert.ToInt32(readerAux2["tipo"]);
                        item.TipoTexto = readerAux2["tipo_texto"].ToString();
                        item.Valor     = readerAux2.GetValue <Decimal>("valor");

                        caracterizacao.Areas.Add(item);
                    }

                    readerAux2.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }