From 5399156e68e11f73d21455cfd7a9e4b9d56cdc52 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 17 Aug 2021 23:25:35 +0000 Subject: [PATCH] --- devdocs/specs/core-customize-form-fields.txt | 2 +- devdocs/specs/core-import-v7.txt | 2 +- devdocs/specs/core-notification.txt | 18 ++++---- devdocs/specs/core-reporting.txt | 2 +- devdocs/specs/core-translation.txt | 6 +-- devdocs/specs/core-workorder.txt | 4 +- .../AyaNova/Controllers/EnumListController.cs | 12 ++--- server/AyaNova/DataList/PMItemTaskDataList.cs | 2 +- .../AyaNova/DataList/QuoteItemTaskDataList.cs | 2 +- .../DataList/WorkOrderItemTaskDataList.cs | 2 +- .../AyaNova/biz/CustomerServiceRequestBiz.cs | 2 +- server/AyaNova/biz/FormFieldReference.cs | 2 +- server/AyaNova/biz/NotifyEventType.cs | 12 ++--- server/AyaNova/biz/PMBiz.cs | 44 +++++++++---------- server/AyaNova/biz/PartBiz.cs | 2 +- server/AyaNova/biz/PurchaseOrderBiz.cs | 14 +++--- server/AyaNova/biz/QuoteBiz.cs | 6 +-- server/AyaNova/biz/RequiredFieldsValidator.cs | 2 +- server/AyaNova/biz/WorkOrderBiz.cs | 6 +-- .../biz/WorkorderItemTaskCompletionType.cs | 2 +- server/AyaNova/models/PMItemTask.cs | 2 +- server/AyaNova/models/PurchaseOrderItem.cs | 4 +- server/AyaNova/models/QuoteItemTask.cs | 2 +- server/AyaNova/models/WorkOrderItemTask.cs | 2 +- server/AyaNova/util/DbUtil.cs | 11 +++-- server/AyaNova/util/Seeder.cs | 30 ++++++------- 26 files changed, 97 insertions(+), 98 deletions(-) diff --git a/devdocs/specs/core-customize-form-fields.txt b/devdocs/specs/core-customize-form-fields.txt index a9f849e8..60f2d0a6 100644 --- a/devdocs/specs/core-customize-form-fields.txt +++ b/devdocs/specs/core-customize-form-fields.txt @@ -100,7 +100,7 @@ EXISTING v7: - UnitModel - User - Vendor - - WorkorderItem + - WorkOrderItem RAVEN REQUIREMENTS / CHANGES diff --git a/devdocs/specs/core-import-v7.txt b/devdocs/specs/core-import-v7.txt index 20550318..5167f84b 100644 --- a/devdocs/specs/core-import-v7.txt +++ b/devdocs/specs/core-import-v7.txt @@ -83,7 +83,7 @@ NOTES FOR DOCS - Region - UnitModelCategory - UnitServiceType - - WorkorderItemType + - WorkOrderItemType - ClientGroup - WorkorderCategory - PartCategory diff --git a/devdocs/specs/core-notification.txt b/devdocs/specs/core-notification.txt index c989922e..bb35c5d9 100644 --- a/devdocs/specs/core-notification.txt +++ b/devdocs/specs/core-notification.txt @@ -234,13 +234,13 @@ QuickNotification DEPRECATED replaced by GeneralNotification below [PERSONAL] QuoteCreatedUpdated - a bit weird, which is it created or updated? :) [GENERAL] ScheduleMarkerImminent (now "reminder") [PERSONAL] ScheduleMarkerCreated (now "reminder") [PERSONAL] -WorkorderItemScheduledUserCreatedUpdated [PERSONAL] -WorkorderItemScheduledUserEventImminent [PERSONAL] +WorkOrderItemScheduledUserCreatedUpdated [PERSONAL] +WorkOrderItemScheduledUserEventImminent [PERSONAL] ### CHANGED same concept but uses a COMPLETED type status as the trigger, so I guess it's WorkorderPastCompletionDate or something### WorkorderCloseByDatePassed (user) [general] WorkorderStatusChanged (user) [GENERAL] [CONDITION: WOSTATUS integer] -WorkorderItemOutsideServiceOverdue [general] -WorkorderItemOutsideServiceReceivedBack [GENERAL] -WorkorderItemPartRequestPartsReceived [GENERAL] +WorkOrderItemOutsideServiceOverdue [general] +WorkOrderItemOutsideServiceReceivedBack [GENERAL] +WorkOrderItemPartRequestPartsReceived [GENERAL] ## NEW @@ -251,7 +251,7 @@ Nightly_Notify_health_check (biz and ops)[GENERAL] created by notify delivery pr BackupStatus case 3786 (biz and ops) [GENERAL] (OR is this more of a general OPERATIONS notifications without choosing specific type because anyone in ops needs all) UpcomingServiceEvent case 3725 [CUSTOMER] -WorkorderItemPartRequestCreated case 3652 [GENERAL] +WorkOrderItemPartRequestCreated case 3652 [GENERAL] ContractExpiring - Customer version in addition to User version [CUSTOMER] WorkorderTotalExceedsThreshold - Custom notification case 1745 "the andy" [GENERAL] [CONDITION: DOLLARTOTAL money value] WorkOrderStatusAge "deadman" delivery if *SPECIFIC* status not changed to different status before XX time period [GENERAL] [CONDITION: AGEVALUE] @@ -280,9 +280,9 @@ CRUD Notifications: ObjectAge since creation (this will cover a shitload of use cases, for example workorder follow up could be done this way etc) [CONDITION: AGEVALUE] PERSONAL? OR COVERED BY TAG FILTER ALREADY BETTER? - WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL] - WorkorderItemOutsideServiceReceivedBackWhenIAmScheduled - WorkorderItemOutsideServiceOverdueWhenIAmScheduled + WorkOrderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL] + WorkOrderItemOutsideServiceReceivedBackWhenIAmScheduled + WorkOrderItemOutsideServiceOverdueWhenIAmScheduled WorkorderCloseByDatePassedWhenIAmScheduled WorkorderStatusChangedWhenIAmScheduled [PERSONAL] diff --git a/devdocs/specs/core-reporting.txt b/devdocs/specs/core-reporting.txt index 3d18d299..4d9fa3bb 100644 --- a/devdocs/specs/core-reporting.txt +++ b/devdocs/specs/core-reporting.txt @@ -39,7 +39,7 @@ UnitMeterReadingList Sample Meter Reading List Displaying Differenc UnitModelList Sample Unit Model List report UserList Sample User report List report VendorList Vendor Contact List -WorkorderItemPartRequestList Parts Requests From Service Workorders Report +WorkOrderItemPartRequestList Parts Requests From Service Workorders Report WorkorderPMDetailed PM Showing Client and Unit Report WorkorderPMList Next Service Date Of PM's Report WorkorderPMPartList Parts Needed For Upcoming PMs Report diff --git a/devdocs/specs/core-translation.txt b/devdocs/specs/core-translation.txt index e644d970..307833fa 100644 --- a/devdocs/specs/core-translation.txt +++ b/devdocs/specs/core-translation.txt @@ -65,13 +65,13 @@ CHANGES MADE TO KEYS FROM v7 - Replaced all [.Object.] with [.] - Replaced all ["UI.] with ["] (and removed exact dupe keys created as a result) - Replaced all [.] with [] -- Removed dupe WorkorderItemOutsideService (removed the one with the longest value) +- Removed dupe WorkOrderItemOutsideService (removed the one with the longest value) - Replaced all ["AddressAddress"] with ["Address"] - Replaced all ["ContactPhoneContactPhone"] with ["ContactPhone"] - Replaced all ["ContactPhonePhone"] with ["ContactPhone"] - Replaced all ["PurchaseOrderPurchaseOrder"] with ["PurchaseOrder"] - - Replaced all ["WorkorderItemMiscExpenseExpense"] with ["WorkorderItemMiscExpense"] - - Replaced all ["WorkorderItemTravelTravel"] with ["WorkorderItemTravel"] + - Replaced all ["WorkOrderItemMiscExpenseExpense"] with ["WorkOrderItemMiscExpense"] + - Replaced all ["WorkOrderItemTravelTravel"] with ["WorkOrderItemTravel"] Note: still some dupes but...fuck it diff --git a/devdocs/specs/core-workorder.txt b/devdocs/specs/core-workorder.txt index cde0c042..9a3270fc 100644 --- a/devdocs/specs/core-workorder.txt +++ b/devdocs/specs/core-workorder.txt @@ -155,9 +155,9 @@ todo: PLANNING WORKORDER considerations: goes over workorder, looks for changes, sends update for each object individually and patches up local from result so if a workorderitempart has changed then it sends only that for update individually Example routes: - Post: Workorder/1/WorkorderItem/2/Labor/4 {updated object} + Post: Workorder/1/WorkOrderItem/2/Labor/4 {updated object} WorkOrder/{woid} <-entire workorder, get for all, post for entire, put to update entire (not likely to use but?) - WorkOrder/{woid}/WorkorderItems <- all workorderitems, post to add new, put to update all as a collection + WorkOrder/{woid}/WorkOrderItems <- all workorderitems, post to add new, put to update all as a collection WorkOrder/{woid}/WorkOrderItems/{woitemid} <- CRUD single woitemid WorkOrder/{woid}/WorkOrderItems/{woitemid}/Labors <- entire labor collection CRUD ops over all collection (also ADD new labor here (POST)) WorkOrder/{woid}/WorkOrderItems/{woitemid}/Labors/{laborid} <- Crud on individual item diff --git a/server/AyaNova/Controllers/EnumListController.cs b/server/AyaNova/Controllers/EnumListController.cs index 7cac8537..feb05c94 100644 --- a/server/AyaNova/Controllers/EnumListController.cs +++ b/server/AyaNova/Controllers/EnumListController.cs @@ -89,7 +89,7 @@ namespace AyaNova.Api.Controllers ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()), "csr status")); ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(PurchaseOrderStatus).ToString()), "PO Status")); ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(ContractOverrideType).ToString()), "Contract price adjustment type")); - ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), "Work order item task completion type")); + ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), "Work order item task completion type")); ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()), "PM time units")); ret.Add(new KeyValuePair(StringUtil.TrimTypeName(typeof(AyaDaysOfWeek).ToString()), "Days of the week")); return Ok(ApiOkResponse.Response(ret)); @@ -545,7 +545,7 @@ namespace AyaNova.Api.Controllers // ReturnList.Add(new NameIdItem() { Name = "-", Id = (long)ContractOverrideType.NotSet }); } - else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()).ToLowerInvariant()) + else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()).ToLowerInvariant()) { TranslationKeysToFetch.Add("WorkOrderItemTaskCompletionTypeComplete"); TranslationKeysToFetch.Add("WorkOrderItemTaskCompletionTypeIncomplete"); @@ -554,10 +554,10 @@ namespace AyaNova.Api.Controllers var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId); - ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeComplete"], Id = (long)WorkorderItemTaskCompletionType.Complete }); - ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeIncomplete"], Id = (long)WorkorderItemTaskCompletionType.Incomplete }); - ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeNotApplicable"], Id = (long)WorkorderItemTaskCompletionType.NotApplicable }); - ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeFailed"], Id = (long)WorkorderItemTaskCompletionType.Failed }); + ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeComplete"], Id = (long)WorkOrderItemTaskCompletionType.Complete }); + ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeIncomplete"], Id = (long)WorkOrderItemTaskCompletionType.Incomplete }); + ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeNotApplicable"], Id = (long)WorkOrderItemTaskCompletionType.NotApplicable }); + ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeFailed"], Id = (long)WorkOrderItemTaskCompletionType.Failed }); } else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()).ToLowerInvariant()) { diff --git a/server/AyaNova/DataList/PMItemTaskDataList.cs b/server/AyaNova/DataList/PMItemTaskDataList.cs index 2c7bdc6f..b4659c71 100644 --- a/server/AyaNova/DataList/PMItemTaskDataList.cs +++ b/server/AyaNova/DataList/PMItemTaskDataList.cs @@ -81,7 +81,7 @@ namespace AyaNova.DataList TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), SqlValueColumnName = "apmitemtask.status" }); diff --git a/server/AyaNova/DataList/QuoteItemTaskDataList.cs b/server/AyaNova/DataList/QuoteItemTaskDataList.cs index 3da33eff..003f3f68 100644 --- a/server/AyaNova/DataList/QuoteItemTaskDataList.cs +++ b/server/AyaNova/DataList/QuoteItemTaskDataList.cs @@ -81,7 +81,7 @@ namespace AyaNova.DataList TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), SqlValueColumnName = "aquoteitemtask.status" }); diff --git a/server/AyaNova/DataList/WorkOrderItemTaskDataList.cs b/server/AyaNova/DataList/WorkOrderItemTaskDataList.cs index f6a0d856..f0ae52c0 100644 --- a/server/AyaNova/DataList/WorkOrderItemTaskDataList.cs +++ b/server/AyaNova/DataList/WorkOrderItemTaskDataList.cs @@ -80,7 +80,7 @@ namespace AyaNova.DataList TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), SqlValueColumnName = "aworkorderitemtask.status" }); diff --git a/server/AyaNova/biz/CustomerServiceRequestBiz.cs b/server/AyaNova/biz/CustomerServiceRequestBiz.cs index d9e39d0f..214f7116 100644 --- a/server/AyaNova/biz/CustomerServiceRequestBiz.cs +++ b/server/AyaNova/biz/CustomerServiceRequestBiz.cs @@ -359,7 +359,7 @@ namespace AyaNova.Biz //MIGRATE_OUTSTANDING routine to get wo id from the WorkOrderItemId o.WorkOrderItemViz = "MIGRATE_OUTSTANDING woitem display value"; // if (o.WorkOrderItemId != null) - // o.WorkorderItemViz = await ct.WorkorderItem.AsNoTracking().Where(x=>x.Id==o.WorkOrderItemId).Select(x => x.Name).FirstOrDefaultAsync(); + // o.WorkOrderItemViz = await ct.WorkOrderItem.AsNoTracking().Where(x=>x.Id==o.WorkOrderItemId).Select(x => x.Name).FirstOrDefaultAsync(); o.RequestedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(); o.StatusViz = customerServiceRequestStatusEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First(); diff --git a/server/AyaNova/biz/FormFieldReference.cs b/server/AyaNova/biz/FormFieldReference.cs index 3c286fbe..08e5ee9d 100644 --- a/server/AyaNova/biz/FormFieldReference.cs +++ b/server/AyaNova/biz/FormFieldReference.cs @@ -562,7 +562,7 @@ namespace AyaNova.Biz //Customizable child Items l.Add(new FormField { TKey = "PurchaseOrderReceiptReceivedDate", FieldKey = "Items.ReceivedDate" }); l.Add(new FormField { TKey = "PurchaseOrderItemPartRequestedByID", FieldKey = "Items.PartRequestedById" }); - l.Add(new FormField { TKey = "PurchaseOrderItemWorkOrderNumber", FieldKey = "Items.WorkorderItemPartRequestId" }); + l.Add(new FormField { TKey = "PurchaseOrderItemWorkOrderNumber", FieldKey = "Items.WorkOrderItemPartRequestId" }); l.Add(new FormField { TKey = "TaxCode", FieldKey = "Items.PurchaseTaxCodeId" }); l.Add(new FormField { TKey = "PurchaseOrderItemVendorPartNumber", FieldKey = "Items.VendorPartNumber" }); l.Add(new FormField { TKey = "PurchaseOrderItemSerialNumbers", FieldKey = "Items.Serials" }); diff --git a/server/AyaNova/biz/NotifyEventType.cs b/server/AyaNova/biz/NotifyEventType.cs index 0af4ae4c..bf0bca8e 100644 --- a/server/AyaNova/biz/NotifyEventType.cs +++ b/server/AyaNova/biz/NotifyEventType.cs @@ -23,15 +23,15 @@ namespace AyaNova.Biz ObjectAge = 10,//* Any object, Age (conditional on AgeValue) after creation event of any object of conditional specific AyaType and optionally conditional tags PMInsufficientInventory = 11,//Upcoming PM will not have enough inventory to generate without making a part request ReminderImminent = 12,//*Reminder object, Advance notice setting tag conditional - ScheduledOnWorkorder = 13,//*Workorder / WorkorderItemScheduledUser object, instant notification when current user is scheduled on a service workorder - ScheduledOnWorkorderImminent = 14,//*Workorder / WorkorderItemScheduledUser object, advanced (settable) notification when current user's scheduled date/time is imminent + ScheduledOnWorkorder = 13,//*Workorder / WorkOrderItemScheduledUser object, instant notification when current user is scheduled on a service workorder + ScheduledOnWorkorderImminent = 14,//*Workorder / WorkOrderItemScheduledUser object, advanced (settable) notification when current user's scheduled date/time is imminent WorkorderCompletedStatusOverdue = 15,//* Workorder object not set to a "Completed" flagged workorder status type by "complete by" date of workorder. Conditions: tags - OutsideServiceOverdue = 16,//* Workorder object , WorkorderItemOutsideService created / updated, sets advance notice on due date tag filterable - OutsideServiceReceived = 17,//* Workorder object , WorkorderItemOutsideService updated, instant notification when item received, tag filterable + OutsideServiceOverdue = 16,//* Workorder object , WorkOrderItemOutsideService created / updated, sets advance notice on due date tag filterable + OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable PartRequestReceived = 18,//* Workorder object / workorderitempartrequest updated, sent to person who requested when parts received back NotifyHealthCheck = 19,//* NO OBJECT, direct subscription to receive recurring daily notify system "ping" sent out between 8am and 10am once every 24 hours minimum every day server local time BackupStatus = 20,//* NO OBJECT, direct subscription to receive results of last backup operation - CustomerServiceImminent = 21,//* Workorder / WorkorderItemScheduledUser object, notice that scheduled service is due, can set advance notice, CUSTOMER gets delivery + CustomerServiceImminent = 21,//* Workorder / WorkOrderItemScheduledUser object, notice that scheduled service is due, can set advance notice, CUSTOMER gets delivery PMStopGeneratingDateReached = 22,//Stop generating PM's after this date has been reached. Reminder in case user needs to set up again for next cycle or something (advance settable) WorkorderTotalExceedsThreshold = 23,//* "the Andy" Workorder updated / created, based on balance total so conditional on DecValue WorkorderStatusAge = 24,//* Workorder STATUS unchanged for set time (stuck in state), conditional on: Duration (how long stuck), exact status selected IdValue, Tags. Advance notice can NOT be set @@ -46,7 +46,7 @@ namespace AyaNova.Biz SendUserCredentials = 33 // Internal System use only: When user generates new credentials and sends them this is the notification type for that see UserBiz GenerateCredsAndEmailUser //POTENTIAL OTHER NOTIFICATIONS: -//WorkorderItemLoan unit is overdue from estimate +//WorkOrderItemLoan unit is overdue from estimate //NEW ITEMS REQUIRE translation KEYS diff --git a/server/AyaNova/biz/PMBiz.cs b/server/AyaNova/biz/PMBiz.cs index eae26172..63f428b8 100644 --- a/server/AyaNova/biz/PMBiz.cs +++ b/server/AyaNova/biz/PMBiz.cs @@ -2791,8 +2791,8 @@ namespace AyaNova.Biz public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) { /* - OutsideServiceOverdue = 16,//* Workorder object , WorkorderItemOutsideService created / updated, sets advance notice on due date tag filterable - OutsideServiceReceived = 17,//* Workorder object , WorkorderItemOutsideService updated, instant notification when item received, tag filterable + OutsideServiceOverdue = 16,//* Workorder object , WorkOrderItemOutsideService created / updated, sets advance notice on due date tag filterable + OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable */ ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger(); if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; @@ -3633,7 +3633,7 @@ namespace AyaNova.Biz if (taskCompletionTypeEnumList == null) taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( - StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), UserTranslationId, CurrentUserRoles); @@ -5270,9 +5270,9 @@ namespace AyaNova.Biz //WORKORDERITEMS - foreach (WorkorderItem wisource in source.WorkorderItems) + foreach (WorkOrderItem wisource in source.WorkOrderItems) { - WorkorderItem widest = dest.WorkorderItems.Add(dest); + WorkOrderItem widest = dest.WorkOrderItems.Add(dest); widest.Custom0 = wisource.Custom0; widest.Custom1 = wisource.Custom1; widest.Custom2 = wisource.Custom2; @@ -5290,13 +5290,13 @@ namespace AyaNova.Biz widest.TypeID = wisource.TypeID; widest.UnitID = wisource.UnitID; widest.WarrantyService = wisource.WarrantyService; - widest.WorkorderItemUnitServiceTypeID = wisource.WorkorderItemUnitServiceTypeID; + widest.WorkOrderItemUnitServiceTypeID = wisource.WorkOrderItemUnitServiceTypeID; widest.WorkorderStatusID = wisource.WorkorderStatusID; //PARTS - foreach (WorkorderItemPart partsource in wisource.Parts) + foreach (WorkOrderItemPart partsource in wisource.Parts) { - WorkorderItemPart partdest = widest.Parts.Add(widest); + WorkOrderItemPart partdest = widest.Parts.Add(widest); partdest.Cost = partsource.Cost; partdest.Description = partsource.Description; partdest.Discount = partsource.Discount; @@ -5321,9 +5321,9 @@ namespace AyaNova.Biz //********************************************************** //SCHEDULED USERS - foreach (WorkorderItemScheduledUser usersource in wisource.ScheduledUsers) + foreach (WorkOrderItemScheduledUser usersource in wisource.ScheduledUsers) { - WorkorderItemScheduledUser userdest = widest.ScheduledUsers.Add(widest); + WorkOrderItemScheduledUser userdest = widest.ScheduledUsers.Add(widest); userdest.EstimatedQuantity = usersource.EstimatedQuantity; userdest.ServiceRateID = usersource.ServiceRateID; userdest.StartDate = usersource.StartDate; @@ -5333,9 +5333,9 @@ namespace AyaNova.Biz } //LABOR - foreach (WorkorderItemLabor laborsource in wisource.Labors) + foreach (WorkOrderItemLabor laborsource in wisource.Labors) { - WorkorderItemLabor labordest = widest.Labors.Add(widest); + WorkOrderItemLabor labordest = widest.Labors.Add(widest); labordest.NoChargeQuantity = laborsource.NoChargeQuantity; labordest.ServiceDetails = laborsource.ServiceDetails; labordest.ServiceRateID = laborsource.ServiceRateID; @@ -5357,9 +5357,9 @@ namespace AyaNova.Biz //********************************************************** //TRAVEL - foreach (WorkorderItemTravel travelsource in wisource.Travels) + foreach (WorkOrderItemTravel travelsource in wisource.Travels) { - WorkorderItemTravel traveldest = widest.Travels.Add(widest); + WorkOrderItemTravel traveldest = widest.Travels.Add(widest); traveldest.TravelDetails = travelsource.TravelDetails; traveldest.TravelRateID = travelsource.TravelRateID; traveldest.TravelRateQuantity = travelsource.TravelRateQuantity; @@ -5375,9 +5375,9 @@ namespace AyaNova.Biz //TASKS - foreach (WorkorderItemTask tasksource in wisource.Tasks) + foreach (WorkOrderItemTask tasksource in wisource.Tasks) { - WorkorderItemTask taskdest = widest.Tasks.Add(widest); + WorkOrderItemTask taskdest = widest.Tasks.Add(widest); taskdest.TaskGroupID = tasksource.TaskGroupID; taskdest.TaskID = tasksource.TaskID; @@ -5393,8 +5393,8 @@ namespace AyaNova.Biz //Delete the auto-created dummy workorder item //if there are more than it present - if (dest.WorkorderItems.Count > 1) - dest.WorkorderItems.RemoveAt(0); + if (dest.WorkOrderItems.Count > 1) + dest.WorkOrderItems.RemoveAt(0); #endregion copy workorder data @@ -5451,7 +5451,7 @@ namespace AyaNova.Biz //Calcs the generate date (threshold date) source.WorkorderPreventiveMaintenance.SetGenerateDate(); //WORKORDERITEMS - foreach (WorkorderItem wisource in source.WorkorderItems) + foreach (WorkOrderItem wisource in source.WorkOrderItems) { wisource.RequestDate = wisource.RequestDate; @@ -5462,7 +5462,7 @@ namespace AyaNova.Biz //SCHEDULED USERS - foreach (WorkorderItemScheduledUser usersource in wisource.ScheduledUsers) + foreach (WorkOrderItemScheduledUser usersource in wisource.ScheduledUsers) { //Changed: 2-Oct-2006 //check to not add a date if the original date was empty @@ -5476,7 +5476,7 @@ namespace AyaNova.Biz } //LABOR - foreach (WorkorderItemLabor laborsource in wisource.Labors) + foreach (WorkOrderItemLabor laborsource in wisource.Labors) { //Changed: 2-Oct-2006 //check to not add a date if the original date was empty @@ -5498,7 +5498,7 @@ namespace AyaNova.Biz //********************************************************** //TRAVEL - foreach (WorkorderItemTravel travelsource in wisource.Travels) + foreach (WorkOrderItemTravel travelsource in wisource.Travels) { //Changed: 2-Oct-2006 //check to not add a date if the original date was empty diff --git a/server/AyaNova/biz/PartBiz.cs b/server/AyaNova/biz/PartBiz.cs index adc2219b..9208ab25 100644 --- a/server/AyaNova/biz/PartBiz.cs +++ b/server/AyaNova/biz/PartBiz.cs @@ -254,7 +254,7 @@ namespace AyaNova.Biz } //////////////////////////////////////////////////////////////////////////////////////////////// - //REMOVE SERIALS - called by PO delete ops and WorkorderItemPart create ops to remove serials from a part + //REMOVE SERIALS - called by PO delete ops and WorkOrderItemPart create ops to remove serials from a part // internal static async Task RemoveSerialsAsync(long partId, string serialText, AyContext ct, long UserId) { diff --git a/server/AyaNova/biz/PurchaseOrderBiz.cs b/server/AyaNova/biz/PurchaseOrderBiz.cs index 9cab1a6d..cbf64a58 100644 --- a/server/AyaNova/biz/PurchaseOrderBiz.cs +++ b/server/AyaNova/biz/PurchaseOrderBiz.cs @@ -100,7 +100,7 @@ namespace AyaNova.Biz // item.ReceivedCost = 0; // item.ReceivedDate = null; // item.PurchaseOrderId = 0; - // item.WorkorderItemPartRequestId = null; + // item.WorkOrderItemPartRequestId = null; // item.PartRequestedById = null; // } @@ -214,13 +214,13 @@ namespace AyaNova.Biz item.PartViz = partInfo.partViz; item.PartNameViz = partInfo.partNameViz; item.WarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(); - if (item.WorkorderItemPartRequestId != null) + if (item.WorkOrderItemPartRequestId != null) { po.HasPartRequest = true; - var wid = (await WorkOrderBiz.GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkorderItemPartRequestId, ct)).ParentId; + var wid = (await WorkOrderBiz.GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkOrderItemPartRequestId, ct)).ParentId; var WOSerial = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid).Select(x => new { x.Serial }).FirstOrDefaultAsync(); if (WOSerial != null) - item.WorkorderItemPartRequestViz = WOSerial.Serial.ToString(); + item.WorkOrderItemPartRequestViz = WOSerial.Serial.ToString(); if (item.PartRequestedById != null) item.PartRequestedByViz = await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync(); } @@ -875,7 +875,7 @@ namespace AyaNova.Biz //# PartRequestReceived { //get a list of all items with part requests and received inventory - var proposedRequestItems = p.Items.Where(z => z.WorkorderItemPartRequestId != null && z.QuantityReceived != 0); + var proposedRequestItems = p.Items.Where(z => z.WorkOrderItemPartRequestId != null && z.QuantityReceived != 0); //are there any potential notify items? if (proposedRequestItems.Count() > 0) { @@ -900,9 +900,9 @@ namespace AyaNova.Biz EventType = NotifyEventType.PartRequestReceived, UserId = sub.UserId, AyaType = AyaType.WorkOrderItemPartRequest, - ObjectId = (long)proposedRequestItem.WorkorderItemPartRequestId, + ObjectId = (long)proposedRequestItem.WorkOrderItemPartRequestId, NotifySubscriptionId = sub.Id, - Name = BizObjectNameFetcherDirect.Name(AyaType.WorkOrderItemPartRequest, (long)proposedRequestItem.WorkorderItemPartRequestId, ct) + Name = BizObjectNameFetcherDirect.Name(AyaType.WorkOrderItemPartRequest, (long)proposedRequestItem.WorkOrderItemPartRequestId, ct) }; await ct.NotifyEvent.AddAsync(n); log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]"); diff --git a/server/AyaNova/biz/QuoteBiz.cs b/server/AyaNova/biz/QuoteBiz.cs index 80e2c060..32c96ea4 100644 --- a/server/AyaNova/biz/QuoteBiz.cs +++ b/server/AyaNova/biz/QuoteBiz.cs @@ -3056,8 +3056,8 @@ namespace AyaNova.Biz public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) { /* - OutsideServiceOverdue = 16,//* Workorder object , WorkorderItemOutsideService created / updated, sets advance notice on due date tag filterable - OutsideServiceReceived = 17,//* Workorder object , WorkorderItemOutsideService updated, instant notification when item received, tag filterable + OutsideServiceOverdue = 16,//* Workorder object , WorkOrderItemOutsideService created / updated, sets advance notice on due date tag filterable + OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable */ ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger(); if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; @@ -3924,7 +3924,7 @@ namespace AyaNova.Biz if (taskCompletionTypeEnumList == null) taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( - StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), UserTranslationId, CurrentUserRoles); o.StatusViz = taskCompletionTypeEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First(); diff --git a/server/AyaNova/biz/RequiredFieldsValidator.cs b/server/AyaNova/biz/RequiredFieldsValidator.cs index 8bbd1c62..e96f6109 100644 --- a/server/AyaNova/biz/RequiredFieldsValidator.cs +++ b/server/AyaNova/biz/RequiredFieldsValidator.cs @@ -62,7 +62,7 @@ namespace AyaNova.Biz else if (FieldKeyParts.Length == 3) { //grandparent collection -> Parent collection -> Child field - //target name like "WorkorderItems.WorkorderItemParts.UPC + //target name like "WorkOrderItems.WorkOrderItemParts.UPC var GrandParentCollection = proposedObject.GetType().GetProperty(FieldKeyParts[0]).GetValue(proposedObject, null); int GrandParentIndex = 0; foreach (object GrandParentObject in (GrandParentCollection as System.Collections.IEnumerable)) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 1d07490f..1598e13b 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -3478,8 +3478,8 @@ namespace AyaNova.Biz public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) { /* - OutsideServiceOverdue = 16,//* Workorder object , WorkorderItemOutsideService created / updated, sets advance notice on due date tag filterable - OutsideServiceReceived = 17,//* Workorder object , WorkorderItemOutsideService updated, instant notification when item received, tag filterable + OutsideServiceOverdue = 16,//* Workorder object , WorkOrderItemOutsideService created / updated, sets advance notice on due date tag filterable + OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable */ ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger(); if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; @@ -5015,7 +5015,7 @@ namespace AyaNova.Biz if (taskCompletionTypeEnumList == null) taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( - StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), + StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), UserTranslationId, CurrentUserRoles); diff --git a/server/AyaNova/biz/WorkorderItemTaskCompletionType.cs b/server/AyaNova/biz/WorkorderItemTaskCompletionType.cs index 88b57c41..0fa30e4a 100644 --- a/server/AyaNova/biz/WorkorderItemTaskCompletionType.cs +++ b/server/AyaNova/biz/WorkorderItemTaskCompletionType.cs @@ -3,7 +3,7 @@ namespace AyaNova.Biz /// /// Indicates status of task /// - public enum WorkorderItemTaskCompletionType : int + public enum WorkOrderItemTaskCompletionType : int { /// /// Not finished diff --git a/server/AyaNova/models/PMItemTask.cs b/server/AyaNova/models/PMItemTask.cs index 1bd2015c..e6bab118 100644 --- a/server/AyaNova/models/PMItemTask.cs +++ b/server/AyaNova/models/PMItemTask.cs @@ -19,7 +19,7 @@ namespace AyaNova.Models [Required] public string Task { get; set; } [Required] - public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; + public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete; [NotMapped] public string StatusViz { get; set; } public long? CompletedByUserId { get; set; } diff --git a/server/AyaNova/models/PurchaseOrderItem.cs b/server/AyaNova/models/PurchaseOrderItem.cs index a7e1a8a8..3d346e99 100644 --- a/server/AyaNova/models/PurchaseOrderItem.cs +++ b/server/AyaNova/models/PurchaseOrderItem.cs @@ -26,7 +26,7 @@ namespace AyaNova.Models public decimal ReceivedCost { get; set; } public DateTime? ReceivedDate { get; set; } public long? PartRequestedById { get; set; } - public long? WorkorderItemPartRequestId { get; set; } + public long? WorkOrderItemPartRequestId { get; set; } public long? PurchaseTaxCodeId { get; set; } public string VendorPartNumber { get; set; } public string Serials { get; set; } @@ -45,7 +45,7 @@ namespace AyaNova.Models [NotMapped] public string PartRequestedByViz { get; set; }//DisplayRequestUser [NotMapped] - public string WorkorderItemPartRequestViz { get; set; }//DisplayRequestWorkorder + public string WorkOrderItemPartRequestViz { get; set; }//DisplayRequestWorkorder [NotMapped] public string PurchaseTaxCodeViz { get; set; }//DisplayTaxCode diff --git a/server/AyaNova/models/QuoteItemTask.cs b/server/AyaNova/models/QuoteItemTask.cs index db864c1a..e085da54 100644 --- a/server/AyaNova/models/QuoteItemTask.cs +++ b/server/AyaNova/models/QuoteItemTask.cs @@ -19,7 +19,7 @@ namespace AyaNova.Models [Required] public string Task { get; set; } [Required] - public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; + public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete; [NotMapped] public string StatusViz { get; set; } public long? CompletedByUserId { get; set; } diff --git a/server/AyaNova/models/WorkOrderItemTask.cs b/server/AyaNova/models/WorkOrderItemTask.cs index 48a09b49..181df3a6 100644 --- a/server/AyaNova/models/WorkOrderItemTask.cs +++ b/server/AyaNova/models/WorkOrderItemTask.cs @@ -19,7 +19,7 @@ namespace AyaNova.Models [Required] public string Task { get; set; } [Required] - public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; + public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete; [NotMapped] public string StatusViz { get; set; } public long? CompletedByUserId { get; set; } diff --git a/server/AyaNova/util/DbUtil.cs b/server/AyaNova/util/DbUtil.cs index 210bb6ba..29208cb0 100644 --- a/server/AyaNova/util/DbUtil.cs +++ b/server/AyaNova/util/DbUtil.cs @@ -210,9 +210,8 @@ namespace AyaNova.Util // Create the database desired using (var cmd = new Npgsql.NpgsqlCommand()) { - - cmd.Connection = cnCreate; - cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\";"; + cmd.Connection = cnCreate; + cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\" WITH ENCODING \"UTF8\" TEMPLATE=template0;"; cmd.ExecuteNonQuery(); _log.LogInformation("Database \"{0}\" created successfully!", _dbName); } @@ -262,8 +261,8 @@ namespace AyaNova.Util cmd.Connection = conn; cmd.CommandText = "DROP DATABASE \"" + _dbName + "\";"; await cmd.ExecuteNonQueryAsync(); - cmd.Connection = conn; - cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\";"; + cmd.Connection = conn; + cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\" WITH ENCODING \"UTF8\" TEMPLATE=template0;"; await cmd.ExecuteNonQueryAsync(); _log.LogDebug("Database created"); } @@ -323,7 +322,7 @@ namespace AyaNova.Util cmd.CommandText = "update apurchaseorderitem set workorderitempartrequestid=null;"; await cmd.ExecuteNonQueryAsync(); - + cmd.CommandText = "update aglobalbizsettings set taxpartpurchaseid=null,taxpartsaleid=null,taxratesaleid=null;"; await cmd.ExecuteNonQueryAsync(); diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 14535c55..0668b2fb 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -3042,7 +3042,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Dis-assemble", Sequence = 1, - Status = WorkorderItemTaskCompletionType.Complete, + Status = WorkOrderItemTaskCompletionType.Complete, CompletedDate = woDate.AddHours(1) }; woItem.Tasks.Add(woItemTask); @@ -3052,7 +3052,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Lubricate", Sequence = 2, - Status = WorkorderItemTaskCompletionType.NotApplicable, + Status = WorkOrderItemTaskCompletionType.NotApplicable, CompletedDate = woDate.AddHours(1) }; woItem.Tasks.Add(woItemTask); @@ -3063,7 +3063,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Repair", Sequence = 3, - Status = WorkorderItemTaskCompletionType.Complete, + Status = WorkOrderItemTaskCompletionType.Complete, CompletedDate = woDate.AddHours(1.5) }; woItem.Tasks.Add(woItemTask); @@ -3073,7 +3073,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Re-assemble", Sequence = 4, - Status = WorkorderItemTaskCompletionType.Complete, + Status = WorkOrderItemTaskCompletionType.Complete, CompletedDate = woDate.AddHours(2) }; woItem.Tasks.Add(woItemTask); @@ -3083,7 +3083,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Test and confirm repair", Sequence = 5, - Status = WorkorderItemTaskCompletionType.Complete, + Status = WorkOrderItemTaskCompletionType.Complete, CompletedDate = woDate.AddHours(2) }; woItem.Tasks.Add(woItemTask); @@ -3500,7 +3500,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Dis-assemble", Sequence = 1, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3509,7 +3509,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Lubricate", Sequence = 2, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3519,7 +3519,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Repair", Sequence = 3, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3528,7 +3528,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Re-assemble", Sequence = 4, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3537,7 +3537,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Test and confirm repair", Sequence = 5, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3929,7 +3929,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Dis-assemble", Sequence = 1, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3938,7 +3938,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Lubricate", Sequence = 2, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3948,7 +3948,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Repair", Sequence = 3, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3957,7 +3957,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Re-assemble", Sequence = 4, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask); @@ -3966,7 +3966,7 @@ namespace AyaNova.Util CompletedByUserId = techId, Task = "Test and confirm repair", Sequence = 5, - Status = WorkorderItemTaskCompletionType.Incomplete + Status = WorkOrderItemTaskCompletionType.Incomplete }; woItem.Tasks.Add(woItemTask);