This commit is contained in:
2021-08-17 23:25:35 +00:00
parent da940cdba0
commit 5399156e68
26 changed files with 97 additions and 98 deletions

View File

@@ -100,7 +100,7 @@ EXISTING v7:
- UnitModel - UnitModel
- User - User
- Vendor - Vendor
- WorkorderItem - WorkOrderItem
RAVEN REQUIREMENTS / CHANGES RAVEN REQUIREMENTS / CHANGES

View File

@@ -83,7 +83,7 @@ NOTES FOR DOCS
- Region - Region
- UnitModelCategory - UnitModelCategory
- UnitServiceType - UnitServiceType
- WorkorderItemType - WorkOrderItemType
- ClientGroup - ClientGroup
- WorkorderCategory - WorkorderCategory
- PartCategory - PartCategory

View File

@@ -234,13 +234,13 @@ QuickNotification DEPRECATED replaced by GeneralNotification below [PERSONAL]
QuoteCreatedUpdated - a bit weird, which is it created or updated? :) [GENERAL] QuoteCreatedUpdated - a bit weird, which is it created or updated? :) [GENERAL]
ScheduleMarkerImminent (now "reminder") [PERSONAL] ScheduleMarkerImminent (now "reminder") [PERSONAL]
ScheduleMarkerCreated (now "reminder") [PERSONAL] ScheduleMarkerCreated (now "reminder") [PERSONAL]
WorkorderItemScheduledUserCreatedUpdated [PERSONAL] WorkOrderItemScheduledUserCreatedUpdated [PERSONAL]
WorkorderItemScheduledUserEventImminent [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] ### 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] WorkorderStatusChanged (user) [GENERAL] [CONDITION: WOSTATUS integer]
WorkorderItemOutsideServiceOverdue [general] WorkOrderItemOutsideServiceOverdue [general]
WorkorderItemOutsideServiceReceivedBack [GENERAL] WorkOrderItemOutsideServiceReceivedBack [GENERAL]
WorkorderItemPartRequestPartsReceived [GENERAL] WorkOrderItemPartRequestPartsReceived [GENERAL]
## NEW ## 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] 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) (OR is this more of a general OPERATIONS notifications without choosing specific type because anyone in ops needs all)
UpcomingServiceEvent case 3725 [CUSTOMER] UpcomingServiceEvent case 3725 [CUSTOMER]
WorkorderItemPartRequestCreated case 3652 [GENERAL] WorkOrderItemPartRequestCreated case 3652 [GENERAL]
ContractExpiring - Customer version in addition to User version [CUSTOMER] ContractExpiring - Customer version in addition to User version [CUSTOMER]
WorkorderTotalExceedsThreshold - Custom notification case 1745 "the andy" [GENERAL] [CONDITION: DOLLARTOTAL money value] 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] 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] 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? PERSONAL? OR COVERED BY TAG FILTER ALREADY BETTER?
WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL] WorkOrderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL]
WorkorderItemOutsideServiceReceivedBackWhenIAmScheduled WorkOrderItemOutsideServiceReceivedBackWhenIAmScheduled
WorkorderItemOutsideServiceOverdueWhenIAmScheduled WorkOrderItemOutsideServiceOverdueWhenIAmScheduled
WorkorderCloseByDatePassedWhenIAmScheduled WorkorderCloseByDatePassedWhenIAmScheduled
WorkorderStatusChangedWhenIAmScheduled [PERSONAL] WorkorderStatusChangedWhenIAmScheduled [PERSONAL]

View File

@@ -39,7 +39,7 @@ UnitMeterReadingList Sample Meter Reading List Displaying Differenc
UnitModelList Sample Unit Model List report UnitModelList Sample Unit Model List report
UserList Sample User report List report UserList Sample User report List report
VendorList Vendor Contact List 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 WorkorderPMDetailed PM Showing Client and Unit Report
WorkorderPMList Next Service Date Of PM's Report WorkorderPMList Next Service Date Of PM's Report
WorkorderPMPartList Parts Needed For Upcoming PMs Report WorkorderPMPartList Parts Needed For Upcoming PMs Report

View File

@@ -65,13 +65,13 @@ CHANGES MADE TO KEYS FROM v7
- Replaced all [.Object.] with [.] - Replaced all [.Object.] with [.]
- Replaced all ["UI.] with ["] (and removed exact dupe keys created as a result) - Replaced all ["UI.] with ["] (and removed exact dupe keys created as a result)
- Replaced all [.] with [] - 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 ["AddressAddress"] with ["Address"]
- Replaced all ["ContactPhoneContactPhone"] with ["ContactPhone"] - Replaced all ["ContactPhoneContactPhone"] with ["ContactPhone"]
- Replaced all ["ContactPhonePhone"] with ["ContactPhone"] - Replaced all ["ContactPhonePhone"] with ["ContactPhone"]
- Replaced all ["PurchaseOrderPurchaseOrder"] with ["PurchaseOrder"] - Replaced all ["PurchaseOrderPurchaseOrder"] with ["PurchaseOrder"]
- Replaced all ["WorkorderItemMiscExpenseExpense"] with ["WorkorderItemMiscExpense"] - Replaced all ["WorkOrderItemMiscExpenseExpense"] with ["WorkOrderItemMiscExpense"]
- Replaced all ["WorkorderItemTravelTravel"] with ["WorkorderItemTravel"] - Replaced all ["WorkOrderItemTravelTravel"] with ["WorkOrderItemTravel"]
Note: still some dupes but...fuck it Note: still some dupes but...fuck it

View File

@@ -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 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 so if a workorderitempart has changed then it sends only that for update individually
Example routes: 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} <-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} <- 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 <- entire labor collection CRUD ops over all collection (also ADD new labor here (POST))
WorkOrder/{woid}/WorkOrderItems/{woitemid}/Labors/{laborid} <- Crud on individual item WorkOrder/{woid}/WorkOrderItems/{woitemid}/Labors/{laborid} <- Crud on individual item

View File

@@ -89,7 +89,7 @@ namespace AyaNova.Api.Controllers
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()), "csr status")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()), "csr status"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(PurchaseOrderStatus).ToString()), "PO Status")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(PurchaseOrderStatus).ToString()), "PO Status"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(ContractOverrideType).ToString()), "Contract price adjustment type")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(ContractOverrideType).ToString()), "Contract price adjustment type"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), "Work order item task completion type")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()), "Work order item task completion type"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()), "PM time units")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()), "PM time units"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(AyaDaysOfWeek).ToString()), "Days of the week")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(AyaDaysOfWeek).ToString()), "Days of the week"));
return Ok(ApiOkResponse.Response(ret)); return Ok(ApiOkResponse.Response(ret));
@@ -545,7 +545,7 @@ namespace AyaNova.Api.Controllers
// ReturnList.Add(new NameIdItem() { Name = "-", Id = (long)ContractOverrideType.NotSet }); // 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("WorkOrderItemTaskCompletionTypeComplete");
TranslationKeysToFetch.Add("WorkOrderItemTaskCompletionTypeIncomplete"); TranslationKeysToFetch.Add("WorkOrderItemTaskCompletionTypeIncomplete");
@@ -554,10 +554,10 @@ namespace AyaNova.Api.Controllers
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId); var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId);
ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeComplete"], Id = (long)WorkorderItemTaskCompletionType.Complete }); 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["WorkOrderItemTaskCompletionTypeIncomplete"], Id = (long)WorkOrderItemTaskCompletionType.Incomplete });
ReturnList.Add(new NameIdItem() { Name = LT["WorkOrderItemTaskCompletionTypeNotApplicable"], Id = (long)WorkorderItemTaskCompletionType.NotApplicable }); 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["WorkOrderItemTaskCompletionTypeFailed"], Id = (long)WorkOrderItemTaskCompletionType.Failed });
} }
else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()).ToLowerInvariant()) else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()).ToLowerInvariant())
{ {

View File

@@ -81,7 +81,7 @@ namespace AyaNova.DataList
TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
UiFieldDataType = (int)UiFieldDataType.Enum, UiFieldDataType = (int)UiFieldDataType.Enum,
EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
SqlValueColumnName = "apmitemtask.status" SqlValueColumnName = "apmitemtask.status"
}); });

View File

@@ -81,7 +81,7 @@ namespace AyaNova.DataList
TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
UiFieldDataType = (int)UiFieldDataType.Enum, UiFieldDataType = (int)UiFieldDataType.Enum,
EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
SqlValueColumnName = "aquoteitemtask.status" SqlValueColumnName = "aquoteitemtask.status"
}); });

View File

@@ -80,7 +80,7 @@ namespace AyaNova.DataList
TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType",
UiFieldDataType = (int)UiFieldDataType.Enum, UiFieldDataType = (int)UiFieldDataType.Enum,
EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
SqlValueColumnName = "aworkorderitemtask.status" SqlValueColumnName = "aworkorderitemtask.status"
}); });

View File

@@ -359,7 +359,7 @@ namespace AyaNova.Biz
//MIGRATE_OUTSTANDING routine to get wo id from the WorkOrderItemId //MIGRATE_OUTSTANDING routine to get wo id from the WorkOrderItemId
o.WorkOrderItemViz = "MIGRATE_OUTSTANDING woitem display value"; o.WorkOrderItemViz = "MIGRATE_OUTSTANDING woitem display value";
// if (o.WorkOrderItemId != null) // 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.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(); o.StatusViz = customerServiceRequestStatusEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First();

View File

@@ -562,7 +562,7 @@ namespace AyaNova.Biz
//Customizable child Items //Customizable child Items
l.Add(new FormField { TKey = "PurchaseOrderReceiptReceivedDate", FieldKey = "Items.ReceivedDate" }); l.Add(new FormField { TKey = "PurchaseOrderReceiptReceivedDate", FieldKey = "Items.ReceivedDate" });
l.Add(new FormField { TKey = "PurchaseOrderItemPartRequestedByID", FieldKey = "Items.PartRequestedById" }); 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 = "TaxCode", FieldKey = "Items.PurchaseTaxCodeId" });
l.Add(new FormField { TKey = "PurchaseOrderItemVendorPartNumber", FieldKey = "Items.VendorPartNumber" }); l.Add(new FormField { TKey = "PurchaseOrderItemVendorPartNumber", FieldKey = "Items.VendorPartNumber" });
l.Add(new FormField { TKey = "PurchaseOrderItemSerialNumbers", FieldKey = "Items.Serials" }); l.Add(new FormField { TKey = "PurchaseOrderItemSerialNumbers", FieldKey = "Items.Serials" });

View File

@@ -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 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 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 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 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 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 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 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 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 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 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 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) 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 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 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 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: //POTENTIAL OTHER NOTIFICATIONS:
//WorkorderItemLoan unit is overdue from estimate //WorkOrderItemLoan unit is overdue from estimate
//NEW ITEMS REQUIRE translation KEYS //NEW ITEMS REQUIRE translation KEYS

View File

@@ -2791,8 +2791,8 @@ namespace AyaNova.Biz
public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) 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 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 OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable
*/ */
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<PMBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<PMBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
@@ -3633,7 +3633,7 @@ namespace AyaNova.Biz
if (taskCompletionTypeEnumList == null) if (taskCompletionTypeEnumList == null)
taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
UserTranslationId, UserTranslationId,
CurrentUserRoles); CurrentUserRoles);
@@ -5270,9 +5270,9 @@ namespace AyaNova.Biz
//WORKORDERITEMS //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.Custom0 = wisource.Custom0;
widest.Custom1 = wisource.Custom1; widest.Custom1 = wisource.Custom1;
widest.Custom2 = wisource.Custom2; widest.Custom2 = wisource.Custom2;
@@ -5290,13 +5290,13 @@ namespace AyaNova.Biz
widest.TypeID = wisource.TypeID; widest.TypeID = wisource.TypeID;
widest.UnitID = wisource.UnitID; widest.UnitID = wisource.UnitID;
widest.WarrantyService = wisource.WarrantyService; widest.WarrantyService = wisource.WarrantyService;
widest.WorkorderItemUnitServiceTypeID = wisource.WorkorderItemUnitServiceTypeID; widest.WorkOrderItemUnitServiceTypeID = wisource.WorkOrderItemUnitServiceTypeID;
widest.WorkorderStatusID = wisource.WorkorderStatusID; widest.WorkorderStatusID = wisource.WorkorderStatusID;
//PARTS //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.Cost = partsource.Cost;
partdest.Description = partsource.Description; partdest.Description = partsource.Description;
partdest.Discount = partsource.Discount; partdest.Discount = partsource.Discount;
@@ -5321,9 +5321,9 @@ namespace AyaNova.Biz
//********************************************************** //**********************************************************
//SCHEDULED USERS //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.EstimatedQuantity = usersource.EstimatedQuantity;
userdest.ServiceRateID = usersource.ServiceRateID; userdest.ServiceRateID = usersource.ServiceRateID;
userdest.StartDate = usersource.StartDate; userdest.StartDate = usersource.StartDate;
@@ -5333,9 +5333,9 @@ namespace AyaNova.Biz
} }
//LABOR //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.NoChargeQuantity = laborsource.NoChargeQuantity;
labordest.ServiceDetails = laborsource.ServiceDetails; labordest.ServiceDetails = laborsource.ServiceDetails;
labordest.ServiceRateID = laborsource.ServiceRateID; labordest.ServiceRateID = laborsource.ServiceRateID;
@@ -5357,9 +5357,9 @@ namespace AyaNova.Biz
//********************************************************** //**********************************************************
//TRAVEL //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.TravelDetails = travelsource.TravelDetails;
traveldest.TravelRateID = travelsource.TravelRateID; traveldest.TravelRateID = travelsource.TravelRateID;
traveldest.TravelRateQuantity = travelsource.TravelRateQuantity; traveldest.TravelRateQuantity = travelsource.TravelRateQuantity;
@@ -5375,9 +5375,9 @@ namespace AyaNova.Biz
//TASKS //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.TaskGroupID = tasksource.TaskGroupID;
taskdest.TaskID = tasksource.TaskID; taskdest.TaskID = tasksource.TaskID;
@@ -5393,8 +5393,8 @@ namespace AyaNova.Biz
//Delete the auto-created dummy workorder item //Delete the auto-created dummy workorder item
//if there are more than it present //if there are more than it present
if (dest.WorkorderItems.Count > 1) if (dest.WorkOrderItems.Count > 1)
dest.WorkorderItems.RemoveAt(0); dest.WorkOrderItems.RemoveAt(0);
#endregion copy workorder data #endregion copy workorder data
@@ -5451,7 +5451,7 @@ namespace AyaNova.Biz
//Calcs the generate date (threshold date) //Calcs the generate date (threshold date)
source.WorkorderPreventiveMaintenance.SetGenerateDate(); source.WorkorderPreventiveMaintenance.SetGenerateDate();
//WORKORDERITEMS //WORKORDERITEMS
foreach (WorkorderItem wisource in source.WorkorderItems) foreach (WorkOrderItem wisource in source.WorkOrderItems)
{ {
wisource.RequestDate = wisource.RequestDate; wisource.RequestDate = wisource.RequestDate;
@@ -5462,7 +5462,7 @@ namespace AyaNova.Biz
//SCHEDULED USERS //SCHEDULED USERS
foreach (WorkorderItemScheduledUser usersource in wisource.ScheduledUsers) foreach (WorkOrderItemScheduledUser usersource in wisource.ScheduledUsers)
{ {
//Changed: 2-Oct-2006 //Changed: 2-Oct-2006
//check to not add a date if the original date was empty //check to not add a date if the original date was empty
@@ -5476,7 +5476,7 @@ namespace AyaNova.Biz
} }
//LABOR //LABOR
foreach (WorkorderItemLabor laborsource in wisource.Labors) foreach (WorkOrderItemLabor laborsource in wisource.Labors)
{ {
//Changed: 2-Oct-2006 //Changed: 2-Oct-2006
//check to not add a date if the original date was empty //check to not add a date if the original date was empty
@@ -5498,7 +5498,7 @@ namespace AyaNova.Biz
//********************************************************** //**********************************************************
//TRAVEL //TRAVEL
foreach (WorkorderItemTravel travelsource in wisource.Travels) foreach (WorkOrderItemTravel travelsource in wisource.Travels)
{ {
//Changed: 2-Oct-2006 //Changed: 2-Oct-2006
//check to not add a date if the original date was empty //check to not add a date if the original date was empty

View File

@@ -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) internal static async Task RemoveSerialsAsync(long partId, string serialText, AyContext ct, long UserId)
{ {

View File

@@ -100,7 +100,7 @@ namespace AyaNova.Biz
// item.ReceivedCost = 0; // item.ReceivedCost = 0;
// item.ReceivedDate = null; // item.ReceivedDate = null;
// item.PurchaseOrderId = 0; // item.PurchaseOrderId = 0;
// item.WorkorderItemPartRequestId = null; // item.WorkOrderItemPartRequestId = null;
// item.PartRequestedById = null; // item.PartRequestedById = null;
// } // }
@@ -214,13 +214,13 @@ namespace AyaNova.Biz
item.PartViz = partInfo.partViz; item.PartViz = partInfo.partViz;
item.PartNameViz = partInfo.partNameViz; item.PartNameViz = partInfo.partNameViz;
item.WarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(); 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; 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(); var WOSerial = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid).Select(x => new { x.Serial }).FirstOrDefaultAsync();
if (WOSerial != null) if (WOSerial != null)
item.WorkorderItemPartRequestViz = WOSerial.Serial.ToString(); item.WorkOrderItemPartRequestViz = WOSerial.Serial.ToString();
if (item.PartRequestedById != null) if (item.PartRequestedById != null)
item.PartRequestedByViz = await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync(); 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 //# PartRequestReceived
{ {
//get a list of all items with part requests and received inventory //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? //are there any potential notify items?
if (proposedRequestItems.Count() > 0) if (proposedRequestItems.Count() > 0)
{ {
@@ -900,9 +900,9 @@ namespace AyaNova.Biz
EventType = NotifyEventType.PartRequestReceived, EventType = NotifyEventType.PartRequestReceived,
UserId = sub.UserId, UserId = sub.UserId,
AyaType = AyaType.WorkOrderItemPartRequest, AyaType = AyaType.WorkOrderItemPartRequest,
ObjectId = (long)proposedRequestItem.WorkorderItemPartRequestId, ObjectId = (long)proposedRequestItem.WorkOrderItemPartRequestId,
NotifySubscriptionId = sub.Id, 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); await ct.NotifyEvent.AddAsync(n);
log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]"); log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]");

View File

@@ -3056,8 +3056,8 @@ namespace AyaNova.Biz
public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) 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 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 OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable
*/ */
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<QuoteBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<QuoteBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
@@ -3924,7 +3924,7 @@ namespace AyaNova.Biz
if (taskCompletionTypeEnumList == null) if (taskCompletionTypeEnumList == null)
taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
UserTranslationId, UserTranslationId,
CurrentUserRoles); CurrentUserRoles);
o.StatusViz = taskCompletionTypeEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First(); o.StatusViz = taskCompletionTypeEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First();

View File

@@ -62,7 +62,7 @@ namespace AyaNova.Biz
else if (FieldKeyParts.Length == 3) else if (FieldKeyParts.Length == 3)
{ {
//grandparent collection -> Parent collection -> Child field //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); var GrandParentCollection = proposedObject.GetType().GetProperty(FieldKeyParts[0]).GetValue(proposedObject, null);
int GrandParentIndex = 0; int GrandParentIndex = 0;
foreach (object GrandParentObject in (GrandParentCollection as System.Collections.IEnumerable)) foreach (object GrandParentObject in (GrandParentCollection as System.Collections.IEnumerable))

View File

@@ -3478,8 +3478,8 @@ namespace AyaNova.Biz
public async Task OutsideServiceHandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) 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 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 OutsideServiceReceived = 17,//* Workorder object , WorkOrderItemOutsideService updated, instant notification when item received, tag filterable
*/ */
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<WorkOrderBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<WorkOrderBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
@@ -5015,7 +5015,7 @@ namespace AyaNova.Biz
if (taskCompletionTypeEnumList == null) if (taskCompletionTypeEnumList == null)
taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList( taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), StringUtil.TrimTypeName(typeof(WorkOrderItemTaskCompletionType).ToString()),
UserTranslationId, UserTranslationId,
CurrentUserRoles); CurrentUserRoles);

View File

@@ -3,7 +3,7 @@ namespace AyaNova.Biz
/// <summary> /// <summary>
/// Indicates status of task /// Indicates status of task
/// </summary> /// </summary>
public enum WorkorderItemTaskCompletionType : int public enum WorkOrderItemTaskCompletionType : int
{ {
/// <summary> /// <summary>
/// Not finished /// Not finished

View File

@@ -19,7 +19,7 @@ namespace AyaNova.Models
[Required] [Required]
public string Task { get; set; } public string Task { get; set; }
[Required] [Required]
public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete;
[NotMapped] [NotMapped]
public string StatusViz { get; set; } public string StatusViz { get; set; }
public long? CompletedByUserId { get; set; } public long? CompletedByUserId { get; set; }

View File

@@ -26,7 +26,7 @@ namespace AyaNova.Models
public decimal ReceivedCost { get; set; } public decimal ReceivedCost { get; set; }
public DateTime? ReceivedDate { get; set; } public DateTime? ReceivedDate { get; set; }
public long? PartRequestedById { get; set; } public long? PartRequestedById { get; set; }
public long? WorkorderItemPartRequestId { get; set; } public long? WorkOrderItemPartRequestId { get; set; }
public long? PurchaseTaxCodeId { get; set; } public long? PurchaseTaxCodeId { get; set; }
public string VendorPartNumber { get; set; } public string VendorPartNumber { get; set; }
public string Serials { get; set; } public string Serials { get; set; }
@@ -45,7 +45,7 @@ namespace AyaNova.Models
[NotMapped] [NotMapped]
public string PartRequestedByViz { get; set; }//DisplayRequestUser public string PartRequestedByViz { get; set; }//DisplayRequestUser
[NotMapped] [NotMapped]
public string WorkorderItemPartRequestViz { get; set; }//DisplayRequestWorkorder public string WorkOrderItemPartRequestViz { get; set; }//DisplayRequestWorkorder
[NotMapped] [NotMapped]
public string PurchaseTaxCodeViz { get; set; }//DisplayTaxCode public string PurchaseTaxCodeViz { get; set; }//DisplayTaxCode

View File

@@ -19,7 +19,7 @@ namespace AyaNova.Models
[Required] [Required]
public string Task { get; set; } public string Task { get; set; }
[Required] [Required]
public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete;
[NotMapped] [NotMapped]
public string StatusViz { get; set; } public string StatusViz { get; set; }
public long? CompletedByUserId { get; set; } public long? CompletedByUserId { get; set; }

View File

@@ -19,7 +19,7 @@ namespace AyaNova.Models
[Required] [Required]
public string Task { get; set; } public string Task { get; set; }
[Required] [Required]
public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete; public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete;
[NotMapped] [NotMapped]
public string StatusViz { get; set; } public string StatusViz { get; set; }
public long? CompletedByUserId { get; set; } public long? CompletedByUserId { get; set; }

View File

@@ -210,9 +210,8 @@ namespace AyaNova.Util
// Create the database desired // Create the database desired
using (var cmd = new Npgsql.NpgsqlCommand()) using (var cmd = new Npgsql.NpgsqlCommand())
{ {
cmd.Connection = cnCreate;
cmd.Connection = cnCreate; cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\" WITH ENCODING \"UTF8\" TEMPLATE=template0;";
cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\";";
cmd.ExecuteNonQuery(); cmd.ExecuteNonQuery();
_log.LogInformation("Database \"{0}\" created successfully!", _dbName); _log.LogInformation("Database \"{0}\" created successfully!", _dbName);
} }
@@ -262,8 +261,8 @@ namespace AyaNova.Util
cmd.Connection = conn; cmd.Connection = conn;
cmd.CommandText = "DROP DATABASE \"" + _dbName + "\";"; cmd.CommandText = "DROP DATABASE \"" + _dbName + "\";";
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();
cmd.Connection = conn; cmd.Connection = conn;
cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\";"; cmd.CommandText = "CREATE DATABASE \"" + _dbName + "\" WITH ENCODING \"UTF8\" TEMPLATE=template0;";
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();
_log.LogDebug("Database created"); _log.LogDebug("Database created");
} }
@@ -323,7 +322,7 @@ namespace AyaNova.Util
cmd.CommandText = "update apurchaseorderitem set workorderitempartrequestid=null;"; cmd.CommandText = "update apurchaseorderitem set workorderitempartrequestid=null;";
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();
cmd.CommandText = "update aglobalbizsettings set taxpartpurchaseid=null,taxpartsaleid=null,taxratesaleid=null;"; cmd.CommandText = "update aglobalbizsettings set taxpartpurchaseid=null,taxpartsaleid=null,taxratesaleid=null;";
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();

View File

@@ -3042,7 +3042,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Dis-assemble", Task = "Dis-assemble",
Sequence = 1, Sequence = 1,
Status = WorkorderItemTaskCompletionType.Complete, Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1) CompletedDate = woDate.AddHours(1)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3052,7 +3052,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Lubricate", Task = "Lubricate",
Sequence = 2, Sequence = 2,
Status = WorkorderItemTaskCompletionType.NotApplicable, Status = WorkOrderItemTaskCompletionType.NotApplicable,
CompletedDate = woDate.AddHours(1) CompletedDate = woDate.AddHours(1)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3063,7 +3063,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Repair", Task = "Repair",
Sequence = 3, Sequence = 3,
Status = WorkorderItemTaskCompletionType.Complete, Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1.5) CompletedDate = woDate.AddHours(1.5)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3073,7 +3073,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Re-assemble", Task = "Re-assemble",
Sequence = 4, Sequence = 4,
Status = WorkorderItemTaskCompletionType.Complete, Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2) CompletedDate = woDate.AddHours(2)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3083,7 +3083,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Test and confirm repair", Task = "Test and confirm repair",
Sequence = 5, Sequence = 5,
Status = WorkorderItemTaskCompletionType.Complete, Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2) CompletedDate = woDate.AddHours(2)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3500,7 +3500,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Dis-assemble", Task = "Dis-assemble",
Sequence = 1, Sequence = 1,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3509,7 +3509,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Lubricate", Task = "Lubricate",
Sequence = 2, Sequence = 2,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3519,7 +3519,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Repair", Task = "Repair",
Sequence = 3, Sequence = 3,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3528,7 +3528,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Re-assemble", Task = "Re-assemble",
Sequence = 4, Sequence = 4,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3537,7 +3537,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Test and confirm repair", Task = "Test and confirm repair",
Sequence = 5, Sequence = 5,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3929,7 +3929,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Dis-assemble", Task = "Dis-assemble",
Sequence = 1, Sequence = 1,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3938,7 +3938,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Lubricate", Task = "Lubricate",
Sequence = 2, Sequence = 2,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3948,7 +3948,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Repair", Task = "Repair",
Sequence = 3, Sequence = 3,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3957,7 +3957,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Re-assemble", Task = "Re-assemble",
Sequence = 4, Sequence = 4,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3966,7 +3966,7 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Test and confirm repair", Task = "Test and confirm repair",
Sequence = 5, Sequence = 5,
Status = WorkorderItemTaskCompletionType.Incomplete Status = WorkOrderItemTaskCompletionType.Incomplete
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);