This commit is contained in:
2021-06-14 20:27:09 +00:00
parent 00a3f29fb2
commit 2896660e93
4 changed files with 17 additions and 10 deletions

View File

@@ -1,9 +1,11 @@
# NOTIFICATIONS
[DOCUMENTATION UNDER CONSTRUCTION]
This form shows "in app" notifications received in the last 90 days.
Notifications are kept for 90 days then automatically deleted.
Notes for docs / items to cover
TODO: Notes for docs / items to cover
- TAG changes on work order header and Workorder related notifications for *descendants* on work orders.
Most work order descendant notifications will use the Work order header tags for comparison with their notification setting with the exception of descendants that have their own Tags (Work order items and Work order item Units are currently the only descendants with their own tags).
@@ -11,3 +13,9 @@ For all other descendants, they will process notifications and filter by tag aga
Changing the work order header tags on an existing work order does not automatically trigger a re-evaluation of descendant notification items. Only when those descendants themselves are edited and saved will the tags be re-assessed. This means that ideally tags should be set *first* on the work order before any descendant items that might be dependant on certain tags being present.
- TIPS
Workorder status related notification uses:
Completed - Use workorder status change type notification and any status that is of type completed relevant to user to get relevant completed state notification
Completed follow up - follow up with customer after service with a workorder status age type notification on a completed type status and set age value to desired wait time to follow up.

View File

@@ -87,7 +87,6 @@ There are no settings adjustable for in app General notifications, however Users
| ScheduledOnWorkorder | User is scheduled on (added to) a Work order |
| ScheduledOnWorkorderImminent | Scheduled date and time reached for workorder which User is scheduled |
| WorkorderCompletedStatusOverdue | Workorder not set to a "Completed" type Status before the selected duration from created date |
| WorkorderCompleted | Service work order is set to any status that is flagged as a "Completed" type of status. (Customer and User notification) |
| OutsideServiceOverdue | An item sent for 3rd party service is overdue from projected repair time frame |
| OutsideServiceReceived | An item sent for 3rd party service has been received back |
| PartRequestReceived | An out of stock part requested via a Workorder has been received |
@@ -103,5 +102,5 @@ There are no settings adjustable for in app General notifications, however Users
| QuoteStatusAge | A Quote has been sitting at the selected status for longer than the selected time frame |
| CopyOfCustomerNotification | Copy of any notification sent to Customer for AyaNova User. Filterable by Customer Tag |
| WorkorderCreatedForCustomer | Customer notification sent when a service type work order is created for them |
| WorkorderCompletedFollowUp | User notification sent after selected duration has passed since workorder set to a "Completed" type of status |

View File

@@ -380,7 +380,7 @@ namespace AyaNova.Api.Controllers
TranslationKeysToFetch.Add("NotifyEventContractExpiring");
TranslationKeysToFetch.Add("NotifyEventCSRAccepted");
TranslationKeysToFetch.Add("NotifyEventCSRRejected");
TranslationKeysToFetch.Add("NotifyEventWorkorderCompleted");
//TranslationKeysToFetch.Add("NotifyEventWorkorderCompleted"); REMOVED REDUNDANT COVERED BY OTHERS
TranslationKeysToFetch.Add("NotifyEventQuoteStatusChange");
TranslationKeysToFetch.Add("NotifyEventQuoteStatusAge");
TranslationKeysToFetch.Add("NotifyEventObjectAge");
@@ -395,7 +395,7 @@ namespace AyaNova.Api.Controllers
TranslationKeysToFetch.Add("NotifyEventNotifyHealthCheck");
TranslationKeysToFetch.Add("NotifyEventBackupStatus");
TranslationKeysToFetch.Add("NotifyEventCustomerServiceImminent");
//TranslationKeysToFetch.Add("NotifyEventPartRequested");
//TranslationKeysToFetch.Add("NotifyEventPartRequested"); REMOVED REDUNDANT COVERED BY OTHERS
TranslationKeysToFetch.Add("NotifyEventWorkorderTotalExceedsThreshold");
TranslationKeysToFetch.Add("NotifyEventWorkorderStatusAge");
TranslationKeysToFetch.Add("NotifyEventUnitWarrantyExpiry");
@@ -404,7 +404,7 @@ namespace AyaNova.Api.Controllers
TranslationKeysToFetch.Add("NotifyEventGeneralNotification");
TranslationKeysToFetch.Add("NotifyEventCopyOfCustomerNotification");
TranslationKeysToFetch.Add("NotifyEventWorkorderCreatedForCustomer");
TranslationKeysToFetch.Add("NotifyEventWorkorderCompletedFollowUp");
//TranslationKeysToFetch.Add("NotifyEventWorkorderCompletedFollowUp"); REMOVED REDUNDANT COVERED BY OTHERS
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId);
@@ -415,7 +415,7 @@ namespace AyaNova.Api.Controllers
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventContractExpiring"], Id = (long)NotifyEventType.ContractExpiring });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventCSRAccepted"], Id = (long)NotifyEventType.CSRAccepted });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventCSRRejected"], Id = (long)NotifyEventType.CSRRejected });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventWorkorderCompleted"], Id = (long)NotifyEventType.WorkorderCompleted });
//ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventWorkorderCompleted"], Id = (long)NotifyEventType.WorkorderCompleted });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventQuoteStatusChange"], Id = (long)NotifyEventType.QuoteStatusChange });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventQuoteStatusAge"], Id = (long)NotifyEventType.QuoteStatusAge });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventObjectAge"], Id = (long)NotifyEventType.ObjectAge });
@@ -440,7 +440,7 @@ namespace AyaNova.Api.Controllers
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventCopyOfCustomerNotification"], Id = (long)NotifyEventType.CopyOfCustomerNotification });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventWorkorderCreatedForCustomer"], Id = (long)NotifyEventType.WorkorderCreatedForCustomer });
ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventWorkorderCompletedFollowUp"], Id = (long)NotifyEventType.WorkorderCompletedFollowUp });
//ReturnList.Add(new NameIdItem() { Name = LT["NotifyEventWorkorderCompletedFollowUp"], Id = (long)NotifyEventType.WorkorderCompletedFollowUp });
}
else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(NotifyDeliveryMethod).ToString()).ToLowerInvariant())

View File

@@ -40,9 +40,9 @@ namespace AyaNova.Biz
GeneralNotification = 27,//* NO OBJECT old quick notification, refers now to any direct text notification internal or user to user used for system notifications (default delivers in app but user can opt to also get email)
ServerOperationsProblem = 28,//* NO OBJECT and serious issue with server operations requiring intervention,
QuoteStatusAge = 29,//* Quote object Created / Updated, conditional on exact status selected IdValue, Tags conditional, advance notice can be set
WorkorderCompleted = 30, //*Service work order is set to any status that is flagged as a "Completed" type of status. Customer & User
//WorkorderCompleted = 30, REMOVED REDUNDANT COVERED BY OTHERS//*Service work order is set to any status that is flagged as a "Completed" type of status. Customer & User
WorkorderCreatedForCustomer = 31, //*Service work order is created for Customer, only applies to that customer user notify sub for that customer, customer id is in conditional ID value for subscription
WorkorderCompletedFollowUp = 32, //* Service workorder closed status follow up again after this many TIMESPAN
//WorkorderCompletedFollowUp = 32, REMOVED REDUNDANT COVERED BY OTHERS //* Service workorder closed status follow up again after this many TIMESPAN
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: