From 90db726a7c417ca599325027533c15dd6fd5e643 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 3 Dec 2018 21:22:21 +0000 Subject: [PATCH] --- .../AyaNova/biz/FilterSqlCriteriaBuilder.cs | 136 ++++++++++++------ 1 file changed, 89 insertions(+), 47 deletions(-) diff --git a/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs b/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs index d011fb94..df63a03e 100644 --- a/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs +++ b/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs @@ -645,56 +645,53 @@ namespace AyaNova.Biz //======================= //NEW ONES FOR RAVEN - case FilterSpecialToken.LastQuarter: - //First determine what quarter we are in now, then get the date range for the quarter before that - switch(DateTime.Now.Month) - { - //are we in the first quarter? - case 1: - case 2: - case 3: - //Then we need the dates of the last quarter of last year - //From zero hour October 1st last year - dtAfter = new DateTime(DateTime.Now.AddYears(-1).Year, 10, 1, 00, 00, 00); - //To zero hour January 1 this year - dtBefore = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); - break; - //are we in the second quarter? - case 4: - case 5: - case 6: - //Then we need this year first quarter JAN-FEB-MAR - //From zero hour january 1 this year - dtAfter = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); - //To zero hour April 1 this year - dtBefore = new DateTime(DateTime.Now.Year, 4, 1, 00, 00, 00); - break; - //Are we in the third quarter? - case 7: - case 8: - case 9: - //Then we need this year Second quarter APR-MAY-JUN - //From zero hour April 1 this year - dtAfter = new DateTime(DateTime.Now.Year, 4, 1, 00, 00, 00); - //To zero hour July 1 this year - dtBefore = new DateTime(DateTime.Now.Year, 7, 1, 00, 00, 00); - break; - default: - //We're in the fourth quarter - //Then we need this year Third quarter JUL-AUG-SEP - //From zero hour July 1 this year - dtAfter = new DateTime(DateTime.Now.Year, 7, 1, 00, 00, 00); - //To zero hour Oct 1 this year - dtBefore = new DateTime(DateTime.Now.Year, 10, 1, 00, 00, 00); - break; + + case FilterSpecialToken.LastQuarter: + //First determine what quarter we are in now, then get the date range for the quarter before that + switch (DateTime.Now.Month) + { + //are we in the first quarter? + case 1: + case 2: + case 3: + //Then we need the dates of the last quarter of last year + //From zero hour October 1st last year + dtAfter = new DateTime(DateTime.Now.AddYears(-1).Year, 10, 1, 00, 00, 00); + //To zero hour January 1 this year + dtBefore = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); + break; + //are we in the second quarter? + case 4: + case 5: + case 6: + //Then we need this year first quarter JAN-FEB-MAR + //From zero hour january 1 this year + dtAfter = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); + //To zero hour April 1 this year + dtBefore = new DateTime(DateTime.Now.Year, 4, 1, 00, 00, 00); + break; + //Are we in the third quarter? + case 7: + case 8: + case 9: + //Then we need this year Second quarter APR-MAY-JUN + //From zero hour April 1 this year + dtAfter = new DateTime(DateTime.Now.Year, 4, 1, 00, 00, 00); + //To zero hour July 1 this year + dtBefore = new DateTime(DateTime.Now.Year, 7, 1, 00, 00, 00); + break; + default: + //We're in the fourth quarter + //Then we need this year Third quarter JUL-AUG-SEP + //From zero hour July 1 this year + dtAfter = new DateTime(DateTime.Now.Year, 7, 1, 00, 00, 00); + //To zero hour Oct 1 this year + dtBefore = new DateTime(DateTime.Now.Year, 10, 1, 00, 00, 00); + break; - } - //From zero hour january 1 this year - dtAfter = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); - //To now - dtBefore = System.DateTime.Now; + } sb.Append(">'"); sb.Append(PostgresDateFormat(dtAfter)); sb.Append("') AND ("); @@ -718,8 +715,53 @@ namespace AyaNova.Biz sb.Append(PostgresDateFormat(dtBefore)); sb.Append("'"); break; + case FilterSpecialToken.QuarterToDate: + switch (DateTime.Now.Month) + { + //FirstQuarter to date + case 1: + case 2: + case 3: + //Jan 1st to now + dtAfter = new DateTime(DateTime.Now.Year, 1, 1, 00, 00, 00); + dtBefore = DateTime.Now; + break; + //Second Quarter to date + case 4: + case 5: + case 6: + //April 1st to now + dtAfter = new DateTime(DateTime.Now.Year, 4, 1, 00, 00, 00); + dtBefore = DateTime.Now; + break; + //Third quarter to date + case 7: + case 8: + case 9: + //From July 1 + dtAfter = new DateTime(DateTime.Now.Year, 7, 1, 00, 00, 00); + dtBefore = DateTime.Now; + break; + default: + //Fourth quarter to date + //From Oct 1 this year + dtAfter = new DateTime(DateTime.Now.Year, 10, 1, 00, 00, 00); + dtBefore = DateTime.Now; + break; + + } + sb.Append(">'"); + sb.Append(PostgresDateFormat(dtAfter)); + sb.Append("') AND ("); + sb.Append(sColumn); + sb.Append(" "); + sb.Append("<'"); + sb.Append(PostgresDateFormat(dtBefore)); + sb.Append("'"); + break; + } #endregion