This commit is contained in:
@@ -24,6 +24,19 @@ namespace AyaNova.Biz
|
||||
public const string InTheLast6Months = "{[last6months]}";
|
||||
public const string InTheLastYear = "{[lastcalendaryear]}";
|
||||
|
||||
//Months THIS year
|
||||
public const string January = "{[january]}";
|
||||
public const string February = "{[february]}";
|
||||
public const string March = "{[march]}";
|
||||
public const string April = "{[april]}";
|
||||
public const string May = "{[may]}";
|
||||
public const string June = "{[june]}";
|
||||
public const string July = "{[july]}";
|
||||
public const string August = "{[august]}";
|
||||
public const string September = "{[september]}";
|
||||
public const string October = "{[october]}";
|
||||
public const string November = "{[november]}";
|
||||
public const string December = "{[december]}";
|
||||
|
||||
//These TEXT filter tokens were more for paging purposes than anything else
|
||||
//however paging is done by numeric range now so will not implement for now
|
||||
@@ -41,16 +54,16 @@ namespace AyaNova.Biz
|
||||
//public const string GreaterThanZero = "{[>0]}";
|
||||
|
||||
//https://www.klipfolio.com/resources/articles/kpi-timeframe-comparison-metrics
|
||||
|
||||
|
||||
//More business time frames
|
||||
|
||||
|
||||
public const string YearToDate = "{[yeartodate]}";
|
||||
|
||||
|
||||
public const string Past90Days = "{[past90days]}";
|
||||
public const string Past30Days = "{[past30days]}";
|
||||
public const string Past24Hours = "{[past24hours]}";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ using Microsoft.Extensions.Logging;
|
||||
namespace AyaNova.Biz
|
||||
{
|
||||
public static class FilterSqlCriteriaBuilder
|
||||
{
|
||||
{
|
||||
public static string DataFilterToSQLCriteria(AyaNova.Models.DataFilter dataFilter, FilterOptions filterOptions, long userId)
|
||||
{
|
||||
|
||||
@@ -442,9 +442,9 @@ namespace AyaNova.Biz
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.NextMonth:
|
||||
//BUGBUG?
|
||||
//SERVER thinks midnight UTC is 7am our time on January 1st 2020
|
||||
//TEST thinks midnight UTC is 8am our time on January 1st 2020
|
||||
//BUGBUG?
|
||||
//SERVER thinks midnight UTC is 7am our time on January 1st 2020
|
||||
//TEST thinks midnight UTC is 8am our time on January 1st 2020
|
||||
//start with the first day of this month
|
||||
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, RelativeToday.Hour, RelativeToday.Minute, 00);
|
||||
//Add a Month
|
||||
@@ -564,6 +564,82 @@ namespace AyaNova.Biz
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.January:
|
||||
//From zero hour january 1 this year
|
||||
dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
//To zero hour feb 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.February:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.March:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.April:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.May:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.June:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.July:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.August:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.September:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.October:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.November:
|
||||
dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.December:
|
||||
//From zero hour dec 1 this year
|
||||
dtAfter = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);
|
||||
//To zero hour Jan 1 next year
|
||||
dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new System.ArgumentOutOfRangeException("TOKEN", sOperator, "GridToSqlCriteria invalid filter TOKEN type [" + sValue + "] IN DATE_TIME");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user