This commit is contained in:
2021-03-09 18:20:47 +00:00
parent f6f9ed598d
commit d73a900efd

View File

@@ -31,64 +31,68 @@ June 1st
MISC ITEMS THAT CAME UP
## e2e testing
## E2E TESTING
todo: is smoke test really excercising every list? Some are only available from a menu in an object
go through and make sure all forms that are in code are also in smoke test
this is important because it's going to drive future removal of unused locale keys
## V8Migrate
## V8MIGRATE
todo: notification subscriptions need to come across first so that subsequent notifications will process
e.g. when a contracted client with a current contract is imported it needs to also set the notification for it
todo: custom fields field names are not coming across, still show "Custom 1" when shoudl show whatever is set
todo: assigned doc not found text has too many newlines in it, should just sit on one line in exported notes
todo: dirty big test again with contracts etc
## CLIENT MISC ITEMS
todo: BUGBUG delete all tags from customer, go back in and zone2 appears for some reason
todo: BUGBUG ON HOLD PENDING UPDATE TO DEVOPS delete all tags from customer, go back in and zone2 appears for some reason
only on devops server, not locally
is sending correct record, just seems to come back with that set, no idea why
maybe db version is too old bug in way tags column works on that version?
Try update to see if goes away if not, confirm postgres is version 13+
Get that info, get both versions in sync and see if that's whats happening.
todo: bugbug sort a column in data table then remove that column from display will trigger error
needs to gracefully handle missing columns
todo: many stock reports could be made now for most objects
todo: maybe Active field should be beside name as before in v7, it can get kind of buried and it also seems like it would be clearer if it was beside the name what it referred to
todo: attachment error not evident when in UI, have to go to api to see it's an error 413, maybe find a way to resolve this clearly
as it is, it just appears to work but there is nothing.
any error on upload should indicate so somewhere on the form
to test, remove the client_max_body_size setting (or set to 1m as is default) then attempt to upload an image
or, perhaps temporarily set the max body size in attachement upload controller to simulate here (easier)
todo: acc-service-bank is using a decimal control instead of a currency control for currency field
todo: partassembly form should use an edit dialog rather than edit in place in the grid as it's ugly and clunky and outside of the standard that will be used in PO and wo etc
copy from Contract form and use it's technique for immediate viz value sync event
todo: should user required rule (defined in form custom settings) show a variation of the required error message so that it's clear *they* defined it and they can unset it in customize?
right now they could set a required rule, forget they set it then email us to bitch that it shouldn't be required
todo: reports need duration display helper
test with contract report
todo: Unit override warranty lifetime active should disable or even hide "override length" field
todo: OverrideLifetime is bad text, fix it, key is "UnitOverrideLifeTime" and maybe it just says "Life time warranty"
todo: maybe Active field should be beside name as before in v7, it can get kind of buried and it also seems like it would be clearer if it was beside the name what it referred to
todo: test service rate pick list variants
in particular what happens when contract in effect to limit to rates but then no rates selected on contract, sb an empty list
todo: NOT import PO's unless they are current, active and unreceived
todo: erase database should reset all id values if they aren't reset already so that future data doesn't result in a new PO starting at 29000 due to huge db trial seed prior
todo: Popup notes now AlertNotes - a whole section of important notes at the top that shows *all* notes combined like customer popup and contract notes
that shows all the time in the workorder UI with an option to minimize maybe or something
This would be better than popup as it's always visible not dismissed and less ui fuckery to boot.
See case 3855
todo: use trans key "AlertNotes" in place of any popup notes variation
todo: reports need duration display helper
test with contract report
todo: bugbug sort a column in data table then remove that column from display will trigger error
needs to gracefully handle missing columns
todo: poitem edit form currency fields when updated by server on save lose currency format and show as raw decimal number
maybe currency control does not respond to underlying data changes it didn't initiate?
seems maybe it's ok in main form but that's maybe just because it doesn't change values automatically
todo: datatable single select mode, is this even a thing?
if not then I should remove that code, it's just taking up space and complicating shit for no reason
todo: many stock reports could be made now for most objects
todo: acc-service-bank is using a decimal control instead of a currency control for currency field
todo: Unit override warranty lifetime active should disable or even hide "override length" field
todo: OverrideLifetime is bad text, fix it, key is "UnitOverrideLifeTime" and maybe it just says "Life time warranty"
todo: should user required rule (defined in form custom settings) show a variation of the required error message so that it's clear *they* defined it and they can unset it in customize?
right now they could set a required rule, forget they set it then email us to bitch that it shouldn't be required
todo: inconsistent use of browser language and browser languages
getBrowserLanguages() <--- more often used vs getBrowserFirstLanguage() <-- fewer times used
some things are using the default first language
@@ -96,41 +100,18 @@ todo: inconsistent use of browser language and browser languages
In some cases array will work, in others it requires single
need to check into this and be consistent or understand what's happening
I'm guessing I favor languages as it seems to be accepted by whatever is using it and it will work better if the first one is unsupported
todo: locale.js look into this:
// also for sake of future proofing and edge cases need to have it be manually settable as well
// ############### TODO: modify all of these to put the user's manual override first in line (if there is one)
todo: it's a bit hard to click on a single digit or character link in a data table
e.g. serial number 1 of a po
can the region be expanded with invisible text or something?
todo: partassembly form should use an edit dialog rather than edit in place in the grid as it's ugly and clunky and outside of the standard that will be used in PO and wo etc
copy from Contract form and use it's technique for immediate viz value sync event
todo: WHEN HAVE WORKORDER FORM customer alert notes
todo: remove widget now? Back and front (comment out obvs not remove entirely)
## SERVER MISC ITEMS
todo: NOTIFICATION after the fact
what happens when a user subscribes to a notification after an object was created
for example if a unit has a contract and they subscribe to contract expiring they won't get notified about units unless they are edited and saved
*after* the user subscribed
What did v7 do?
How to handle this??
Ideally it would work with existing objects and not require them all to be edited or is that an issue, can it be good enough that it works going forward?
Most subscriptions won't matter as they are direct immediate and one off but the timed and aged ones are definitely an issue.
It might have to run through those and subscribe in the user, maybe a static op on a *Biz object that you call and say "subscribe this user to all subs" and it iterates
the biz objects one by one and sets as appropriate??
todo: ContractExpiring event needs to be added to notification processor for Unit, Customer and HeadOffice
todo: every biz rule should have as much as possible a corresponding db check constraint to ensure people don't import bad data directly or do direct edits and break shit
e.g. contractable objects should mirror check for expiry date and not null, so basically both can be null or both not null but no other combo is valid
todo: tax codes, taxable objects
Biz rules updated to prevent tax value changes to any of the following fields once it's been used on any item that has tax codes
name, taxa, taxb, taxontax
@@ -155,6 +136,48 @@ todo: tax codes, taxable objects
PurchaseOrder needs to default tax codes when created from global settings
todo: This block isn't necessary anymore as there is a biz rule to catch it:
catch (Microsoft.EntityFrameworkCore.DbUpdateException ex)
{
if (ex.InnerException != null && ex.InnerException.Message.Contains("unq_unitmodelnumbervendorid"))
{
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, "number", "Model number plus VendorId combination must be unique");
return null;
}
throw;
}
todo: every biz rule should have as much as possible a corresponding db check constraint to ensure people don't import bad data directly or do direct edits and break shit
e.g. contractable objects should mirror check for expiry date and not null, so basically both can be null or both not null but no other combo is valid
todo: Changes to allow in place updates of server without erasing data:
Needs to be supporting this early as possible so that upon release we can easily make changes without breaking existing setups or forcing complex actions
how to add locale keys in future after release without erasing all data?
Ideally I'd like to continue on to just edit the json translation files and the server looks for missing items and adds them automatically
so that it just works without having to erase the db
maybe a version on translations so it knows which one it's dealing with?
But then again, if it just checks them all it can fix anything missing automatically in case of fuckery and not assume they are ok
Stock locales can just be completely replaced at any time, custom ones need a fixup,
Custom locales should include where they came from (which language) so can more easily add new keys
Schema updates in place not require full delete
todo: figure out method to determine all translation keys actually used and remove unused ones entirely as they will show in the Translation ui and don't want to confuse people
todo: NOTIFICATION after the fact
what happens when a user subscribes to a notification after an object was created
for example if a unit has a contract and they subscribe to contract expiring they won't get notified about units unless they are edited and saved
*after* the user subscribed
What did v7 do?
How to handle this??
Ideally it would work with existing objects and not require them all to be edited or is that an issue, can it be good enough that it works going forward?
Most subscriptions won't matter as they are direct immediate and one off but the timed and aged ones are definitely an issue.
It might have to run through those and subscribe in the user, maybe a static op on a *Biz object that you call and say "subscribe this user to all subs" and it iterates
the biz objects one by one and sets as appropriate??
todo: GetWorkorderSerial/name from leaf nodes
traverse up the tree and fetch the serial number
once coded fixup in purchaseorderbiz::getasync MIGRATE_OUTSTANDING bit
@@ -170,21 +193,9 @@ todo: v8 migrate additions
Is it possible to login during migrate to the v8 server?
Need a running count per item, I have the total at the start so it should show what item it is currently processing of that count like 50/1000 or something
todo: figure out method to determine all translation keys actually used and remove unused ones entirely as they will show in the Translation ui and don't want to confuse people
todo: This block isn't necessary anymore as there is a biz rule to catch it:
catch (Microsoft.EntityFrameworkCore.DbUpdateException ex)
{
if (ex.InnerException != null && ex.InnerException.Message.Contains("unq_unitmodelnumbervendorid"))
{
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, "number", "Model number plus VendorId combination must be unique");
return null;
}
throw;
}
todo: 2fa is going to be an absolute must have pretty soon, look into what's involved again
@@ -192,10 +203,9 @@ todo: tag search in picklist, does it support more than one tag? I forget
no, no it doesn't. Hmmm... fuck
maybe they can enter unlimited tags as long as they have a ..before each one?
Users may need to "triangulate" on to an item by multiple tags
todo: unit meter reading event
TODO: //MIGRATE_OUTSTANDING comment tag
search for this comment tag as it will contain items that could not be done until other items were migrated first
The tag will contain the description for each
@@ -210,17 +220,6 @@ todo: many biz objects are not using new PUT methodology
also this includes *all* of the initial workorder object so there's that
might be that they don't need it but for consistency should check into it
todo: Changes to allow in place updates of server without erasing data:
Needs to be supporting this early as possible so that upon release we can easily make changes without breaking existing setups or forcing complex actions
how to add locale keys in future after release without erasing all data?
Ideally I'd like to continue on to just edit the json translation files and the server looks for missing items and adds them automatically
so that it just works without having to erase the db
maybe a version on translations so it knows which one it's dealing with?
But then again, if it just checks them all it can fix anything missing automatically in case of fuckery and not assume they are ok
Stock locales can just be completely replaced at any time, custom ones need a fixup,
Custom locales should include where they came from (which language) so can more easily add new keys
Schema updates in place not require full delete
########################################################################################################################