From cea8d31d8497579332a1c7e061a7d7665a40af8c Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 15 May 2021 15:01:52 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/AyaNova/biz/WorkOrderBiz.cs | 40 +++++++++++++++++++++++++++++- server/AyaNova/util/AySchema.cs | 8 +++--- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 0e2049e9..8fd97968 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": "false", + "AYANOVA_SERVER_TEST_MODE": "true", "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/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index f21d5491..faac05bd 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -73,7 +73,7 @@ namespace AyaNova.Biz return null; else { - // await WorkOrderBizActionsAsync(AyaEvent.Created, newObject, null, null); + await WorkOrderBizActionsAsync(AyaEvent.Created, newObject, null, null); newObject.Tags = TagBiz.NormalizeTags(newObject.Tags); newObject.CustomFields = JsonUtil.CompactJson(newObject.CustomFields); await ct.WorkOrder.AddAsync(newObject); @@ -313,6 +313,44 @@ namespace AyaNova.Biz } } + //////////////////////////////////////////////////////////////////////////////////////////////// + //BIZ ACTIONS + // + // + private async Task WorkOrderBizActionsAsync(AyaEvent ayaEvent, WorkOrder newObj, WorkOrder oldObj, IDbContextTransaction transaction) + { + //automatic actions on record change, called AFTER validation and BEFORE save + //so changes here will be saved by caller + + //currently no processing required except for created or modified at this time + if (ayaEvent != AyaEvent.Created && ayaEvent != AyaEvent.Modified) + return; + + if (ayaEvent == AyaEvent.Created) + { + //find and set effective contract if user didn't set it already + if (newObj.ContractId == null && newObj.CustomerId != 0) + { + //customer->headoffice + var cust = await ct.Customer.AsNoTracking().Where(z => z.Id == newObj.CustomerId).Select(z => new { headofficeId = z.HeadOfficeId, contractId = z.ContractId }).FirstOrDefaultAsync(); + if(cust.contractId==null && cust.headofficeId!=null){ + var hoContractId=await ct.HeadOffice.AsNoTracking().Where(z => z.Id == cust.headofficeId).Select(z => z.ContractId).FirstOrDefaultAsync(); + if(hoContractId!=null){ + newObj.ContractId=hoContractId; + } + + }else{ + newObj.ContractId=cust.contractId; + } + } + + //set default response time + todo: check contract if applied then check global if not + + } + + + } //////////////////////////////////////////////////////////////////////////////////////////////// //CONTRACT UPDATE diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 2cd2d21b..611784d2 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,16 +22,16 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! private const int DESIRED_SCHEMA_LEVEL = 1; - internal const long EXPECTED_COLUMN_COUNT = 950; + internal const long EXPECTED_COLUMN_COUNT = 951; internal const long EXPECTED_INDEX_COUNT = 141; - internal const long EXPECTED_CHECK_CONSTRAINTS = 440; + internal const long EXPECTED_CHECK_CONSTRAINTS = 441; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 115; internal const long EXPECTED_VIEWS = 6; internal const long EXPECTED_ROUTINES = 2; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! - ///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////// /* @@ -256,7 +256,7 @@ namespace AyaNova.Util + "taxpartpurchaseid BIGINT, " + "taxpartsaleid BIGINT, " + "taxratesaleid BIGINT, " - + "workordercompletebyage INTERVAL NOT NULL" + + "workordercompletebyage INTERVAL NOT NULL DEFAULT '00:00:00'" + ")"); //create global ops BACKUP settings table