public TList_PrecoCommodities SelectProdCotacao(string Cd_produto, DateTime?Dt_movimento) { StringBuilder sql = new StringBuilder(); sql.AppendLine("select a.cd_produto, a.ds_produto, "); sql.AppendLine("Sg_unidade = isnull((select top 1 y.sigla_unidade "); sql.AppendLine(" from tb_gro_precocommodities x "); sql.AppendLine(" inner join tb_est_unidade y "); sql.AppendLine(" on x.cd_unidade = y.cd_unidade "); sql.AppendLine(" where a.cd_produto = x.cd_produto "); if (Dt_movimento.HasValue) { sql.AppendLine(" and convert(datetime, floor(convert(decimal(30,10), x.dt_preco))) <= '" + Dt_movimento.Value.ToString("yyyyMMdd") + "'"); } sql.AppendLine(" order by x.dt_preco desc), ''), "); sql.AppendLine("vl_precocompra = isnull((select top 1 x.vl_precocompra "); sql.AppendLine(" from tb_gro_precocommodities x "); sql.AppendLine(" where a.cd_produto = x.cd_produto "); if (Dt_movimento.HasValue) { sql.AppendLine(" and convert(datetime, floor(convert(decimal(30,10), x.dt_preco))) <= '" + Dt_movimento.Value.ToString("yyyyMMdd") + "'"); } sql.AppendLine(" order by x.dt_preco desc), 0), "); sql.AppendLine("vl_precovenda = isnull((select top 1 x.vl_precovenda "); sql.AppendLine(" from tb_gro_precocommodities x "); sql.AppendLine(" where a.cd_produto = x.cd_produto "); if (Dt_movimento.HasValue) { sql.AppendLine(" and convert(datetime, floor(convert(decimal(30,10), x.dt_preco))) <= '" + Dt_movimento.Value.ToString("yyyyMMdd") + "'"); } sql.AppendLine(" order by x.dt_preco desc), 0), "); sql.AppendLine("dt_preco = isnull((select top 1 x.dt_preco "); sql.AppendLine(" from tb_gro_precocommodities x "); sql.AppendLine(" where a.cd_produto = x.cd_produto "); if (Dt_movimento.HasValue) { sql.AppendLine(" and convert(datetime, floor(convert(decimal(30,10), x.dt_preco))) <= '" + Dt_movimento.Value.ToString("yyyyMMdd") + "'"); } sql.AppendLine(" order by x.dt_preco desc), 0), "); sql.AppendLine("cd_unidade = isnull((select top 1 x.cd_unidade "); sql.AppendLine(" from tb_gro_precocommodities x "); sql.AppendLine(" where a.cd_produto = x.cd_produto "); if (Dt_movimento.HasValue) { sql.AppendLine(" and convert(datetime, floor(convert(decimal(30,10), x.dt_preco))) <= '" + Dt_movimento.Value.ToString("yyyyMMdd") + "'"); } sql.AppendLine(" order by x.dt_preco desc), 0) "); sql.AppendLine("from tb_est_produto a "); sql.AppendLine("inner join tb_est_tpproduto b "); sql.AppendLine("on a.tp_produto = b.tp_produto "); sql.AppendLine("where isnull(a.st_registro, 'A') <> 'C' "); sql.AppendLine("and isnull(b.st_commodities, 'N') = 'S'"); if (!string.IsNullOrEmpty(Cd_produto)) { sql.AppendLine("and a.cd_produto = '" + Cd_produto.Trim() + "'"); } TList_PrecoCommodities lista = new TList_PrecoCommodities(); bool podeFecharBco = false; if (Banco_Dados == null) { podeFecharBco = CriarBanco_Dados(false); } SqlDataReader reader = ExecutarBusca(sql.ToString()); try { while (reader.Read()) { TRegistro_PrecoCommodities reg = new TRegistro_PrecoCommodities(); if (!reader.IsDBNull(reader.GetOrdinal("cd_produto"))) { reg.Cd_produto = reader.GetString(reader.GetOrdinal("cd_produto")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_produto"))) { reg.Ds_produto = reader.GetString(reader.GetOrdinal("ds_produto")); } if (!reader.IsDBNull(reader.GetOrdinal("Sg_unidade"))) { reg.Sg_unidade = reader.GetString(reader.GetOrdinal("Sg_unidade")); } if (!reader.IsDBNull(reader.GetOrdinal("vl_precocompra"))) { reg.Vl_precocompra = reader.GetDecimal(reader.GetOrdinal("vl_precocompra")); } if (!reader.IsDBNull(reader.GetOrdinal("vl_precovenda"))) { reg.Vl_precovenda = reader.GetDecimal(reader.GetOrdinal("vl_precovenda")); } if (!reader.IsDBNull(reader.GetOrdinal("dt_preco"))) { reg.Dt_preco = reader.GetDateTime(reader.GetOrdinal("dt_preco")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_unidade"))) { reg.Cd_unidade = reader.GetString(reader.GetOrdinal("cd_unidade")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { deletarBanco_Dados(); } } return(lista); }
public TList_PrecoCommodities Select(TpBusca[] vBusca, int vTop, string vNM_Campo, string vOrder) { TList_PrecoCommodities lista = new TList_PrecoCommodities(); bool podeFecharBco = false; if (Banco_Dados == null) { podeFecharBco = CriarBanco_Dados(false); } SqlDataReader reader = ExecutarBusca(SqlCodeBusca(vBusca, Convert.ToInt16(vTop), vNM_Campo, vOrder)); try { while (reader.Read()) { TRegistro_PrecoCommodities reg = new TRegistro_PrecoCommodities(); if (!reader.IsDBNull(reader.GetOrdinal("cd_produto"))) { reg.Cd_produto = reader.GetString(reader.GetOrdinal("cd_produto")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_produto"))) { reg.Ds_produto = reader.GetString(reader.GetOrdinal("ds_produto")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_unidadeProd"))) { reg.Cd_unidadeProd = reader.GetString(reader.GetOrdinal("cd_unidadeProd")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_unidadeProd"))) { reg.Ds_unidadeProd = reader.GetString(reader.GetOrdinal("ds_unidadeProd")); } if (!reader.IsDBNull(reader.GetOrdinal("sg_unidadeProd"))) { reg.Sg_unidadeProd = reader.GetString(reader.GetOrdinal("sg_unidadeProd")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_unidade"))) { reg.Cd_unidade = reader.GetString(reader.GetOrdinal("cd_unidade")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_unidade"))) { reg.Ds_unidade = reader.GetString(reader.GetOrdinal("ds_unidade")); } if (!reader.IsDBNull(reader.GetOrdinal("sigla_unidade"))) { reg.Sg_unidade = reader.GetString(reader.GetOrdinal("sigla_unidade")); } if (!reader.IsDBNull(reader.GetOrdinal("id_preco"))) { reg.Id_preco = reader.GetDecimal(reader.GetOrdinal("id_preco")); } if (!reader.IsDBNull(reader.GetOrdinal("dt_preco"))) { reg.Dt_preco = reader.GetDateTime(reader.GetOrdinal("dt_preco")); } if (!reader.IsDBNull(reader.GetOrdinal("vl_precocompra"))) { reg.Vl_precocompra = reader.GetDecimal(reader.GetOrdinal("vl_precocompra")); } if (!reader.IsDBNull(reader.GetOrdinal("vl_precovenda"))) { reg.Vl_precovenda = reader.GetDecimal(reader.GetOrdinal("vl_precovenda")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }