private ProducaoCarvaoVegetal ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { ProducaoCarvaoVegetal caracterizacao = new ProducaoCarvaoVegetal(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Produção de carvão vegetal Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.atividade_id, c.numero_fornos, c.geometria_coord_atv_x, c.geometria_coord_atv_y, c.geometria_id, c.geometria_tipo, c.tid from {0}hst_crt_prod_carvao_vegetal 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"]); caracterizacao.Id = id; caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento_id"]); caracterizacao.Atividade = Convert.ToInt32(reader["atividade_id"]); caracterizacao.NumeroFornos = reader["numero_fornos"].ToString(); caracterizacao.CoordenadaAtividade.Id = Convert.ToInt32(reader["geometria_id"]); caracterizacao.CoordenadaAtividade.Tipo = Convert.ToInt32(reader["geometria_tipo"]); caracterizacao.Tid = reader["tid"].ToString(); if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"])) { caracterizacao.CoordenadaAtividade.CoordX = Convert.ToDecimal(reader["geometria_coord_atv_x"]); } if (reader["geometria_coord_atv_y"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_y"])) { caracterizacao.CoordenadaAtividade.CoordY = Convert.ToDecimal(reader["geometria_coord_atv_y"]); } } reader.Close(); } #endregion if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Fornos comando = bancoDeDados.CriarComando(@"select s.forno id, s.identificador, s.volume, s.tid from {0}hst_crt_prod_carvao_veg_forno s where s.id_hst = :id_hst order by s.identificador" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Forno fornos = null; while (reader.Read()) { fornos = new Forno(); fornos.Id = Convert.ToInt32(reader["id"]); fornos.Identificador = Convert.ToInt32(reader["identificador"]); fornos.Volume = reader["volume"].ToString(); fornos.Tid = reader["tid"].ToString(); caracterizacao.Fornos.Add(fornos); } reader.Close(); } #endregion #region Materias-Prima Florestal Consumida comando = bancoDeDados.CriarComando(@"select m.materia_prima id, m.materia_prima_tipo, lm.texto materia_prima_tipo_texto, m.unidade, lu.texto unidade_texto, m.quantidade, m.tid from {0}hst_crt_prod_carvao_v_mat_fl_c m, {0}lov_crt_prod_carv_veg_mat_pr_c lm, {0}lov_crt_unidade_medida lu where m.id_hst = :id_hst and lm.id = m.materia_prima_tipo and lu.id = m.unidade order by m.materia_prima" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { MateriaPrima materia = null; while (reader.Read()) { materia = new MateriaPrima(); materia.Id = Convert.ToInt32(reader["id"]); materia.MateriaPrimaConsumida = Convert.ToInt32(reader["materia_prima_tipo"]); materia.MateriaPrimaConsumidaTexto = reader["materia_prima_tipo_texto"].ToString(); materia.Unidade = Convert.ToInt32(reader["unidade"]); materia.UnidadeTexto = reader["unidade_texto"].ToString(); materia.Quantidade = reader["quantidade"].ToString(); materia.Tid = reader["tid"].ToString(); caracterizacao.MateriasPrimasFlorestais.Add(materia); } reader.Close(); } #endregion } return(caracterizacao); }