From c430da05dde014b45a8a01add32c4ae3a8bab9cf Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 25 May 2021 23:09:11 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/AyaNova/biz/FormFieldReference.cs | 57 +++++++++--------------- server/AyaNova/biz/WorkOrderBiz.cs | 14 ++++-- server/AyaNova/resource/de.json | 1 + server/AyaNova/resource/en.json | 1 + server/AyaNova/resource/es.json | 1 + server/AyaNova/resource/fr.json | 1 + server/AyaNova/util/AySchema.cs | 6 +-- server/AyaNova/util/Seeder.cs | 20 ++++++++- 9 files changed, 58 insertions(+), 45 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 8fd97968..0e2049e9 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/FormFieldReference.cs b/server/AyaNova/biz/FormFieldReference.cs index e493ce4f..c10a5413 100644 --- a/server/AyaNova/biz/FormFieldReference.cs +++ b/server/AyaNova/biz/FormFieldReference.cs @@ -907,11 +907,22 @@ namespace AyaNova.Biz //WORKORDER ITEM SUB SECTIONS BLOCK //(used to remove an entire child collection at once) + l.Add(new FormField { TKey = "WorkOrderItemUnitList", FieldKey = "WorkOrderItemUnitList", TKeySection = "WorkOrderItem", Requireable = false }); l.Add(new FormField { TKey = "WorkOrderItemScheduledUserList", FieldKey = "WorkOrderItemScheduledUserList", TKeySection = "WorkOrderItem", Requireable = false }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseList", FieldKey = "WorkOrderItemExpenseList", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemTasks", FieldKey = "WorkOrderItemTasks", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemPartList", FieldKey = "WorkOrderItemPartList", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemPartRequestList", FieldKey = "WorkOrderItemPartRequestList", TKeySection = "WorkOrderItem", Requireable = false }); l.Add(new FormField { TKey = "WorkOrderItemLaborList", FieldKey = "WorkOrderItemLaborList", TKeySection = "WorkOrderItem", Requireable = false }); l.Add(new FormField { TKey = "WorkOrderItemTravelList", FieldKey = "WorkOrderItemTravelList", TKeySection = "WorkOrderItem", Requireable = false }); - l.Add(new FormField { TKey = "WorkOrderItemTasks", FieldKey = "WorkOrderItemTasks", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemExpenseList", FieldKey = "WorkOrderItemExpenseList", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemLoanList", FieldKey = "WorkOrderItemExpenseList", TKeySection = "WorkOrderItem", Requireable = false }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceList", FieldKey = "WorkOrderItemOutsideServiceList", TKeySection = "WorkOrderItem", Requireable = false }); + + + + + + //WORKORDER ITEM UNIT //WORKORDER ITEM SCHEDULED USER l.Add(new FormField { TKey = "WorkOrderItemScheduledUserEstimatedQuantity", FieldKey = "WorkOrderItemScheduledUserEstimatedQuantity", TKeySection = "WorkOrderItemScheduledUser" }); @@ -920,6 +931,14 @@ namespace AyaNova.Biz l.Add(new FormField { TKey = "WorkOrderItemScheduledUserStopDate", FieldKey = "WorkOrderItemScheduledUserStopDate", TKeySection = "WorkOrderItemScheduledUser" }); l.Add(new FormField { TKey = "WorkOrderItemScheduledUserUserID", FieldKey = "WorkOrderItemScheduledUserUserID", TKeySection = "WorkOrderItemScheduledUser" }); + //WORKORDER ITEM TASKS + l.Add(new FormField { TKey = "Sequence", FieldKey = "WorkOrderItemTaskSequence", TKeySection = "WorkOrderItemTask" }); + l.Add(new FormField { TKey = "WorkOrderItemTaskTaskID", FieldKey = "WorkOrderItemTaskTaskID", TKeySection = "WorkOrderItemTask" }); + l.Add(new FormField { TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKeySection = "WorkOrderItemTask" }); + l.Add(new FormField { TKey = "WorkOrderItemTaskUser", FieldKey = "WorkOrderItemTaskUser", TKeySection = "WorkOrderItemTask" }); + l.Add(new FormField { TKey = "WorkOrderItemTaskCompletedDate", FieldKey = "WorkOrderItemTaskCompletedDate", TKeySection = "WorkOrderItemTask" }); + + //WORKORDER ITEM EXPENSES l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeAmount", FieldKey = "WorkOrderItemExpenseChargeAmount", TKeySection = "WorkOrderItemExpense" }); l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeTaxCodeID", FieldKey = "WorkOrderItemExpenseChargeTaxCodeID", TKeySection = "WorkOrderItemExpense" }); @@ -973,12 +992,6 @@ namespace AyaNova.Biz l.Add(new FormField { TKey = "LineTotal", FieldKey = "TravelLineTotalViz", TKeySection = "WorkOrderItemTravels" }); - //WORKORDER ITEM TASKS - l.Add(new FormField { TKey = "Sequence", FieldKey = "WorkOrderItemTaskSequence", TKeySection = "WorkOrderItemTask" }); - l.Add(new FormField { TKey = "WorkOrderItemTaskTaskID", FieldKey = "WorkOrderItemTaskTaskID", TKeySection = "WorkOrderItemTask" }); - l.Add(new FormField { TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKeySection = "WorkOrderItemTask" }); - l.Add(new FormField { TKey = "WorkOrderItemTaskUser", FieldKey = "WorkOrderItemTaskUser", TKeySection = "WorkOrderItemTask" }); - l.Add(new FormField { TKey = "WorkOrderItemTaskCompletedDate", FieldKey = "WorkOrderItemTaskCompletedDate", TKeySection = "WorkOrderItemTask" }); @@ -987,35 +1000,7 @@ namespace AyaNova.Biz } #endregion - // #region WorkOrderItem - // { - // List l = new List(); - // //l.Add(new FormField { TKey = "Name", FieldKey = "Name", Hideable = false }); - // l.Add(new FormField { TKey = "WorkOrderItemNotes", FieldKey = "Notes" }); - // //l.Add(new FormField { TKey = "Active", FieldKey = "Active", Hideable = false }); - // l.Add(new FormField { TKey = "Tags", FieldKey = "Tags" }); - // l.Add(new FormField { TKey = "Wiki", FieldKey = "Wiki" }); - // l.Add(new FormField { TKey = "Attachments", FieldKey = "Attachments" }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom1", FieldKey = "WorkOrderItemCustom1", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom2", FieldKey = "WorkOrderItemCustom2", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom3", FieldKey = "WorkOrderItemCustom3", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom4", FieldKey = "WorkOrderItemCustom4", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom5", FieldKey = "WorkOrderItemCustom5", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom6", FieldKey = "WorkOrderItemCustom6", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom7", FieldKey = "WorkOrderItemCustom7", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom8", FieldKey = "WorkOrderItemCustom8", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom9", FieldKey = "WorkOrderItemCustom9", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom10", FieldKey = "WorkOrderItemCustom10", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom11", FieldKey = "WorkOrderItemCustom11", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom12", FieldKey = "WorkOrderItemCustom12", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom13", FieldKey = "WorkOrderItemCustom13", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom14", FieldKey = "WorkOrderItemCustom14", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom15", FieldKey = "WorkOrderItemCustom15", IsCustomField = true }); - // l.Add(new FormField { TKey = "WorkOrderItemCustom16", FieldKey = "WorkOrderItemCustom16", IsCustomField = true }); - // _formFields.Add(AyaType.WorkOrderItem.ToString(), l); - // } - // #endregion #region WorkOrderStatus { diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e2cc71e9..361d2d26 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -81,6 +81,12 @@ namespace AyaNova.Biz { await GetCurrentContractFromContractIdAsync(newObject.ContractId); await ProcessChangeOfContractAsync(newObject.Id); + + //GRANDCHILD BIZ ACTIONS + foreach (WorkOrderItem wi in newObject.Items) + foreach (WorkOrderItemPart wip in wi.Parts) + await PartBizActionsAsync(AyaEvent.Created, wip, null, null); + await ct.SaveChangesAsync(); } await WorkOrderPopulateVizFields(newObject, true);//doing this here ahead of notification because notification may require the viz field lookup anyway and afaict no harm in it @@ -3061,6 +3067,8 @@ namespace AyaNova.Biz Part part = null; if (o.PartId != 0) part = await ct.Part.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.PartId); + o.PartViz = part.Name; + TaxCode Tax = null; if (o.TaxPartSaleId != null) Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxPartSaleId); @@ -3166,7 +3174,7 @@ namespace AyaNova.Biz return; //SNAPSHOT PRICING - bool ApplyPricingUpdate = true; + bool SnapshotPricing = true; //if modifed, see what has changed and should be re-applied if (ayaEvent == AyaEvent.Modified) @@ -3174,13 +3182,13 @@ namespace AyaNova.Biz //If it wasn't a complete part change there is no need to set pricing if (newObj.PartId == oldObj.PartId) { - ApplyPricingUpdate = false; + SnapshotPricing = false; } } //Pricing - if (ApplyPricingUpdate) + if (SnapshotPricing) { //default in case nothing to apply newObj.Cost = 0; diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index c868ef29..c1bfa538 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -1524,6 +1524,7 @@ "WorkOrderItemOutsideServiceTrackingNumber": "Verfolgungsnummer", "WorkOrderItemOutsideServiceVendorSentToID": "Gesendet an", "WorkOrderItemOutsideServiceVendorSentViaID": "Gesendet mit", + "WorkOrderItemOutsideServiceList":"Externe Serviceliste", "WorkOrderItemPartDescription": "Beschreibung", "WorkOrderItemPartDiscount": "Rabatt", "WorkOrderItemPartDiscountType": "Rabatttyp", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index d0e1e36e..31bd0735 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -1524,6 +1524,7 @@ "WorkOrderItemOutsideServiceTrackingNumber": "Tracking Number", "WorkOrderItemOutsideServiceVendorSentToID": "Sent To", "WorkOrderItemOutsideServiceVendorSentViaID": "Sent Via", + "WorkOrderItemOutsideServiceList":"Outside service list", "WorkOrderItemPartDescription": "Description", "WorkOrderItemPartDiscount": "Discount", "WorkOrderItemPartDiscountType": "Discount Type", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 4e36aed6..65eff3be 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -1524,6 +1524,7 @@ "WorkOrderItemOutsideServiceTrackingNumber": "Núm. seguimiento", "WorkOrderItemOutsideServiceVendorSentToID": "Enviado a", "WorkOrderItemOutsideServiceVendorSentViaID": "Enviado por", + "WorkOrderItemOutsideServiceList":"Lista de servicios externos", "WorkOrderItemPartDescription": "Descripción", "WorkOrderItemPartDiscount": "Descuento", "WorkOrderItemPartDiscountType": "Tipo de descuento", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index a31ba2af..89e7aca4 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -1524,6 +1524,7 @@ "WorkOrderItemOutsideServiceTrackingNumber": "Numéro de suivi", "WorkOrderItemOutsideServiceVendorSentToID": "Envoyé à", "WorkOrderItemOutsideServiceVendorSentViaID": "Envoyé via", + "WorkOrderItemOutsideServiceList":"Liste des services extérieurs", "WorkOrderItemPartDescription": "Description", "WorkOrderItemPartDiscount": "Remise", "WorkOrderItemPartDiscountType": "Type de remise", diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 58a5ee20..6bef8ad1 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 = 933; + internal const long EXPECTED_COLUMN_COUNT = 935; internal const long EXPECTED_INDEX_COUNT = 141; - internal const long EXPECTED_CHECK_CONSTRAINTS = 421; + internal const long EXPECTED_CHECK_CONSTRAINTS = 423; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 118; internal const long EXPECTED_VIEWS = 6; internal const long EXPECTED_ROUTINES = 2; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! - ///////////////////////////////////////////////////////////////// C933:I141:CC421:FC118:V6:R2 + ///////////////////////////////////////////////////////////////// C935:I141:CC423:FC118:V6:R2 /* diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 7139e032..15c327a4 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -2588,10 +2588,26 @@ namespace AyaNova.Util }; woItem.ScheduledUsers.Add(woItemScheduledUser); + //PARTS + var woItemPart = new WorkOrderItemPart() + { + + Quantity = 1, + PartId = Fake.Random.Long(1, TotalSeededParts), + PartWarehouseId=1 + }; + woItem.Parts.Add(woItemPart); + woItemPart = new WorkOrderItemPart() + { + + Quantity = 1, + PartId = Fake.Random.Long(1, TotalSeededParts), + PartWarehouseId=1 + }; + woItem.Parts.Add(woItemPart); - - + //LABOR var techId = RandomServiceTechUserId(); var woItemLabor = new WorkOrderItemLabor()