public decimal ConvertUnid(string vCD_Unid_Orig, string vCD_Unid_Dest, decimal vVl_Orig) { if (string.IsNullOrEmpty(vCD_Unid_Dest) || string.IsNullOrEmpty(vCD_Unid_Orig)) { return(decimal.Zero); } if (vCD_Unid_Orig != vCD_Unid_Dest) { TList_CadConvUnidade lConvUnid = Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_unidade_orig", vOperador = "=", vVL_Busca = "'" + vCD_Unid_Orig.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_unidade_dest", vOperador = "=", vVL_Busca = "'" + vCD_Unid_Dest.Trim() + "'" } }, 0, string.Empty); if (lConvUnid.Count > 0) { if (vCD_Unid_Dest.Trim().Equals(string.Empty)) { throw new Exception("ERRO: Conversão de Unidade destino Inválida ou vazia !"); } if (vCD_Unid_Orig.Trim().Equals(string.Empty)) { throw new Exception("ERRO: Conversão de Unidade origem Inválida ou vazia !"); } if (lConvUnid[0].ST_Fator.Trim() == "*") { return(vVl_Orig * lConvUnid[0].VL_Indice); } else if (lConvUnid[0].ST_Fator.Trim() == "/") { return(vVl_Orig / lConvUnid[0].VL_Indice); } else { throw new Exception("ERRO: Conversão de Unidades operador de conversão cadastrado para a unidade é inválido !"); } } else { throw new Exception("ERRO: Não foi encontrado nenhuma conversão de unidade para un orig: " + vCD_Unid_Orig + " e dest: " + vCD_Unid_Dest + "!"); } } else { return(vVl_Orig); } }
public TList_CadConvUnidade Select(TpBusca[] vBusca, Int32 vTop, string vNM_Campo) { TList_CadConvUnidade lista = new TList_CadConvUnidade(); bool podeFecharBco = false; if (Banco_Dados == null) { podeFecharBco = this.CriarBanco_Dados(false); } SqlDataReader reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, Convert.ToInt16(vTop), vNM_Campo)); try { while (reader.Read()) { TRegistro_CadConvUnidade reg = new TRegistro_CadConvUnidade(); if (!reader.IsDBNull(reader.GetOrdinal("cd_unidade_orig"))) { reg.CD_Unidade_Orig = reader.GetString(reader.GetOrdinal("cd_unidade_orig")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_unidade_dest"))) { reg.CD_Unidade_Dest = reader.GetString(reader.GetOrdinal("cd_unidade_dest")); } if (!reader.IsDBNull(reader.GetOrdinal("st_fator"))) { reg.ST_Fator = reader.GetString(reader.GetOrdinal("st_fator")); } if (!reader.IsDBNull(reader.GetOrdinal("vl_indice"))) { reg.VL_Indice = reader.GetDecimal(reader.GetOrdinal("vl_indice")); } if (!reader.IsDBNull(reader.GetOrdinal("st_registro"))) { reg.ST_Registro = reader.GetString(reader.GetOrdinal("st_registro")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_unidade_orig"))) { reg.DS_Unidade_Orig = reader.GetString(reader.GetOrdinal("ds_unidade_orig")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_unidade_dest"))) { reg.DS_Unidade_Dest = reader.GetString(reader.GetOrdinal("ds_unidade_dest")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }