private OCurrency GetAmountImpl(FundingLine fl, OFundingLineEventTypes type, bool equals) { string q = @"SELECT ISNULL(SUM( CASE WHEN 1 = direction THEN CAST(amount AS DECIMAL(20,4)) ELSE -1*CAST(amount AS DECIMAL(20,4)) END), 0) amount FROM dbo.FundingLineEvents WITH (READUNCOMMITTED) WHERE fundingline_id = @id AND deleted = 0 AND CAST(FLOOR(CAST(creation_date AS FLOAT)) AS DATETIME) <= @date AND type "; q += equals ? "= @type" : "<> @type"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", fl.Id); c.AddParam("@date", TimeProvider.Now.Date); c.AddParam("@type", (int)type); object retval = c.ExecuteScalar(); return(null == retval ? 0m : Convert.ToDecimal(retval)); } }
private OCurrency GetAmountImpl(FundingLine fl, OFundingLineEventTypes type, bool equals) { string q = @"SELECT ISNULL(SUM( CASE WHEN 1 = direction THEN CAST(amount AS DECIMAL(20,4)) ELSE -1*CAST(amount AS DECIMAL(20,4)) END), 0) amount FROM dbo.FundingLineEvents WITH (READUNCOMMITTED) WHERE fundingline_id = @id AND deleted = 0 AND CAST(FLOOR(CAST(creation_date AS FLOAT)) AS DATETIME) <= @date AND type "; q += equals ? "= @type" : "<> @type"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", fl.Id); c.AddParam("@date", TimeProvider.Now.Date); c.AddParam("@type", (int) type); object retval = c.ExecuteScalar(); return null == retval ? 0m : Convert.ToDecimal(retval); } }