This commit is contained in:
2020-07-09 19:09:54 +00:00
parent 05f76723e4
commit 4e29788355
4 changed files with 85 additions and 21 deletions

View File

@@ -22,8 +22,9 @@ BACKEND TODO / SYSTEM FOR RAVEN
TODO: need a utility that can hash any adhoc collection of fields to work with various notify related objects
TODO: Never creates a duplicate APP or EMAIL notify, so checks a hash in history log before sending
TODO: HASH uniquely identifies a notification delivery and it's logged with the history so before a new delivery is sent it's compared to the delivery log and if it was sent
(NOT RELIABLE UNFORTUNATELY, JUST CHECK MULTIPLE FIELDS INSTEAD)
TODO: Never creates a duplicate APP or EMAIL notify, so checks in history log before sending
TODO: HASH (NOT RELIABLE UNFORTUNATELY, JUST CHECK MULTIPLE FIELDS INSTEAD) uniquely identifies a notification delivery and it's logged with the history so before a new delivery is sent it's compared to the delivery log and if it was sent
in the last 90 days then it skips it. This will avoid duplicated emails or runaway notifies etc.
Hash needs to be unique to the destination user, teh source object and the event type exactly, if there is any difference then it should not hash the same
TODO: import v7 needs to create users for each contact and set their default for deliveries of notifications based on old region and send notification setting
@@ -83,6 +84,14 @@ JOBS
deletes any notifyevent with no event date created more than 90 days ago
If has event date and it's passed then deletes it if created more than 90 days ago (pretty sure there are no back dated events, once it's passed it's past)
NotifyDeliveryLog - deletes all log items older than 90 days
Notify
Scan the notifyevent table and deliver notifications accordingly
GlobalBizSettings
Add Notification system ACTIVE bool value
GlobalOpsNotificationSettings (copy from backup settings)
SMTP creds, return address, emergency ops address
ALL COREBIZ
Need CRUD check for notification events
@@ -92,7 +101,7 @@ ALL COREBIZ
subscriptions code has either cached or on db lookup to see all that apply, returns an array of notifyeventtypes to be processed
Processes each notifyeventtype that it handles or passes off to central one maybe in some cases if common code
NotifyEventType enum
/NotifyEventType enum
A collection of every possible notification event in one central location (rather than the old system where each object type held it's own collection)
Translation keys for each notify event type as these will display in the UI and in sent emails etc
@@ -167,8 +176,8 @@ NewCSR [GENERAL]
NewMemo [PERSONAL]
QuickNotification DEPRECATED replaced by DefaultNotification below [PERSONAL]
QuoteCreatedUpdated - a bit weird, which is it created or updated? :) [GENERAL]
ScheduleMarkerImminent (will rename) [PERSONAL]
ScheduleMarkerCreated (will rename) [PERSONAL]
ScheduleMarkerImminent (now "reminder") [PERSONAL]
ScheduleMarkerCreated (now "reminder") [PERSONAL]
WorkorderItemScheduledUserCreatedUpdated [PERSONAL]
WorkorderItemScheduledUserEventImminent [PERSONAL]
WorkorderCloseByDatePassed (user) [general]
@@ -179,6 +188,8 @@ WorkorderItemPartRequestPartsReceived [GENERAL]
## NEW
DEADMAN_Job_procesor_fail direct email and other notifications?
Not sure how this could work to be honest, it would need to have a generator to do the checking unless we're talking about another timer somewhere else
Daily_Notify_health_check (biz and ops) [GENERAL]
Nightly_Notify_health_check (biz and ops)[GENERAL]
BackupStatus case 3786 (biz and ops) [GENERAL]
@@ -193,7 +204,7 @@ QuoteStatusAge [PERSONAL (prepared by), GENERAL]
UnitWarranyExpiry case 1361 [GENERAL]
UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
DefaultNotification case 3792 used for all system and old Quick notifications [EVERYONE]
TagNotification case 3799 [CONDITION: intag, outtag, ayatype global/specific]
deprecated, use objectCUD events for this: TagNotification case 3799 [CONDITION: intag, outtag, ayatype global/specific]
(Note: this is actually just general notification if an object is created or updated and the tagging is optional)
CRUD Notifications: