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 351914e8..736b82e8 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -193,7 +193,7 @@ namespace AyaNova.Biz { //Note: this is intentionally not using the getasync because //doing so would invoke the children which would then get deleted on save since putobject has no children - WorkOrder dbObject = await ct.WorkOrder.AsNoTracking().FirstOrDefaultAsync(z=>z.Id==putObject.Id); + WorkOrder dbObject = await ct.WorkOrder.AsNoTracking().FirstOrDefaultAsync(z => z.Id == putObject.Id); if (dbObject == null) { AddError(ApiErrorCode.NOT_FOUND, "id"); @@ -1129,6 +1129,13 @@ namespace AyaNova.Biz AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "WorkOrderId"); } + + //TEST TEST TEST + if (proposedObj.Notes.Contains("₿")) + { + AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "notes", "HODL!"); + } + //Check state if updatable right now if (!isNew) { @@ -2913,6 +2920,16 @@ namespace AyaNova.Biz { AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "WorkOrderItemId"); } + + //TEST TEST TEST + if (proposedObj.EstimatedQuantity == 69) + { + //`Items[${activeWoItemIndex}].scheduledUsers[${activeItemIndex}].estimatedQuantity` + AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, $"Items[{0}].ScheduledUsers[0].EstimatedQuantity", "◈◈ TEST HODL!! ◈◈"); + + } + + //Check state if updatable right now if (!isNew) { diff --git a/server/AyaNova/models/WorkOrderItem.cs b/server/AyaNova/models/WorkOrderItem.cs index cf0ca079..e039e9e4 100644 --- a/server/AyaNova/models/WorkOrderItem.cs +++ b/server/AyaNova/models/WorkOrderItem.cs @@ -29,6 +29,7 @@ namespace AyaNova.Models public long? WorkorderItemPriorityId { get; set; } public DateTime? RequestDate { get; set; } public bool WarrantyService { get; set; } = false; + public int Sequence { get; set; } //UTILITY FIELDS [NotMapped] diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index eb32ff19..af6ef253 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,7 +22,7 @@ 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 = 931; + internal const long EXPECTED_COLUMN_COUNT = 932; internal const long EXPECTED_INDEX_COUNT = 141; internal const long EXPECTED_CHECK_CONSTRAINTS = 429; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 115; @@ -770,7 +770,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //WORKORDERITEM await ExecQueryAsync("CREATE TABLE aworkorderitem (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderid BIGINT NOT NULL REFERENCES aworkorder (id), " + "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, technotes TEXT, workorderitemstatusid BIGINT REFERENCES aworkorderitemstatus (id), " - + " workorderitempriorityid BIGINT REFERENCES aworkorderitempriority (id), requestdate TIMESTAMP, warrantyservice BOOL NOT NULL" + + " workorderitempriorityid BIGINT REFERENCES aworkorderitempriority (id), requestdate TIMESTAMP, warrantyservice BOOL NOT NULL, sequence INTEGER" + ")"); //WORKORDERITEM EXPENSE diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 8cbc5f0d..0ea63569 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -2233,6 +2233,7 @@ namespace AyaNova.Util { var woItem = new WorkOrderItem() { + Sequence = y + 1, Notes = $"itemnotes - {y} ", TechNotes = $"technotes - {y}", RequestDate = woDate.ToUniversalTime().AddMinutes(y)