From 36f95981f85cdb65cc6eff54476d938ac963d232 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 29 Jul 2021 18:07:07 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/AyaNova/biz/PMBiz.cs | 56 ++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index fcc80a75..b77f3b95 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -53,7 +53,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "true", + "AYANOVA_SERVER_TEST_MODE": "false", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/biz/PMBiz.cs b/server/AyaNova/biz/PMBiz.cs index 24bc3820..973ae32c 100644 --- a/server/AyaNova/biz/PMBiz.cs +++ b/server/AyaNova/biz/PMBiz.cs @@ -394,15 +394,18 @@ namespace AyaNova.Biz //CREATED OR MODIFIED if (ayaEvent == AyaEvent.Created || ayaEvent == AyaEvent.Modified) { - + //no db query required, just set regardless if anything relevant has changed or not as it's less + //time consuming to do it than to do all the checks to see if it is relevant to do it or not + SetGenerateDate(newObj); } //CREATION ACTIONS if (ayaEvent == AyaEvent.Created) { - await AutoSetContractAsync(newObj); + + await AutoSetContractAsync(newObj); await AutoSetAddressAsync(newObj); } @@ -426,14 +429,37 @@ namespace AyaNova.Biz /// internal static void SetGenerateDate(PM p) { - if (p.GenerateBeforeInterval == 0) { p.GenerateDate = p.NextServiceDate; return; } p.GenerateDate = GetDateFromSpanAndUnit(p.NextServiceDate, p.GenerateBeforeUnit, -System.Math.Abs(p.GenerateBeforeInterval)); + } + + + internal static DateTime GetDateFromSpanAndUnit(DateTime StartDate, PMTimeUnit unit, int multiple) + { + switch (unit) + { + case PMTimeUnit.Minutes: + return StartDate.AddMinutes(multiple); + + case PMTimeUnit.Hours: + return StartDate.AddHours(multiple); + + case PMTimeUnit.Days: + return StartDate.AddDays(multiple); + + case PMTimeUnit.Months: + return StartDate.AddMonths(multiple); + + case PMTimeUnit.Years: + return StartDate.AddYears(multiple); + } + //default + return StartDate; } // //Takes an AyaNova day of week and returns @@ -466,28 +492,6 @@ namespace AyaNova.Biz // } - internal static DateTime GetDateFromSpanAndUnit(DateTime StartDate, PMTimeUnit unit, int multiple) - { - switch (unit) - { - case PMTimeUnit.Minutes: - return StartDate.AddMinutes(multiple); - - case PMTimeUnit.Hours: - return StartDate.AddHours(multiple); - - case PMTimeUnit.Days: - return StartDate.AddDays(multiple); - - case PMTimeUnit.Months: - return StartDate.AddMonths(multiple); - - case PMTimeUnit.Years: - return StartDate.AddYears(multiple); - } - //default - return StartDate; - } private async Task AutoSetAddressAsync(PM newObj) { @@ -5232,7 +5236,7 @@ namespace AyaNova.Biz #endif //Get a list of PM id's ready for conversion now var l = await ct.PM.AsNoTracking() - .Where(z => z.GenerateDate > DateTime.UtcNow && (z.StopGeneratingDate == null || z.StopGeneratingDate > DateTime.UtcNow) && z.Active == true) + .Where(z => z.GenerateDate < DateTime.UtcNow && (z.StopGeneratingDate == null || z.StopGeneratingDate > DateTime.UtcNow) && z.Active == true) .Select(z => z.Id) .ToListAsync(); #if (DEBUG)