Exemplo n.º 1
0
        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));
                }
        }
Exemplo n.º 2
0
 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);
     }
 }