ABCDEF
1
DateComponent & VersionSummary/HighlightsDetails
Personnote
2
10/21/21wdAdminVersion 6.2.9.0
I am putting more emphasis on upgrading underlying components of WindowDressers software to minimize long-term problems (and possibly solve some ongoing low grade nuisances). Laravel is one of the biggest underlying component of wdAdmin (and therefore of wdMeasurer). I have made 2 successive major upgrades of Laravel (to v8) which means we are finally on the current version (Hallelujah!).
Laravel shift to v7 then to v8 (surprisingly date format update apparently not a problem at front end)
move models to app/Models directory
update of MANY underlying components with Composer Update

3
10/15/21wdAdminVersion 6.2.6.0
changing from a two step software cycle (wd-dev and wd-admin production) to a three step (wd-dev, wd-rc, and wd-admin) with 'sites' for each
Steps forward in buildevent user interface (and file structure)
better alerts from server problems
cleaning up dependencies (remove Excel, add phpSpreadsheet)
updating js files in public/js
4
10/12/21wdMeasurer 6.2.6
refresh customer list after customer added or edited (to fix bug with new customer not appearing)
reduce risk of problems by exhaustive update of the huge number of sofware components on which wdMeasurer is built (as an approach to fixing very rare problem with software freeze);
simplify the directory organization of components to increase clarity and make maintenance easier
5
10/2/21wdMeasurer 6.2.4
fix login nuisances (e.g. "you are no longer logged in") - especially on the Mac
fixes interrupted internet connections (by allowing up to 3 successive missed "pings" rather than none)
fix failure of auto-detection of new version -- by update electron-builder (and maybe npm)
adding sales tax for NY
major changes in ping loop:
--keeping cookie statistics which can be shown by clicking on connection medal on navigation bar
--much shorter timeout 500ms (except on initial connection) instead of 5000ms
beginnings of cookie detection (behind the scenes)
6
10/2/21wdAdminVersion 6.2.4.0
improve wdMeasurer login handling
fixing issues with cutjob
revise wdMeasurer login so that it also fetches shared data (instead of calling that as second step)
7
9/26/21wdAdminVersion 6.2.0.26
adding ability to mysqlCopyProductionToDev from utilities tab via utilities controller running a shell script
Build events
--generating posting sheets, including rewraps and change in order retrieval to catch rewraps only
partial draft of BuildEvents handling user interface
better handling of some Salesforce exceptions

8
9/1/21wdAdminVersion 6.2.0.20
fixing issues with inquiries
--fix showing of inquiry id on customer detail page
--fix copy of job location address into order
9
9/1/21wdAdminVersion 6.2.0.18
MRL, FileSpec, accept affiliations Active as well as current
10
8/31/21wdAdminVersion 6.2.0.16fix for "login failed" due to already authenticated
11
8/26/21wdAdminVersion 6.2.0.14
cutfile order selection tools
--also released recently (by cherry-pick or direct save) -- email to CIO with exception; authentication workaround based on php cookie; fixing authentication bug
12
8/6/21wdAdminVersion', '6.2.0.9'
fixing bug that a $arrOidsAllowed with no members allowed seeing ALL orders
wdShared: adding NY tax
continuing improvement in handling caching -- selective prevention of cache of the wd js files only
--creating a public/js subfolder 'wdjs' to store all the wd javascript files that will NOT be cached
--moving relevant js files into that folder (and changing path to them in master.blade)
--specifying no js cache in wdjs folder (but allowing js file cache elsewhere in public)
13
8/5/21wdAdminVersion', '6.2.0.8'better handling and messaging raw order upload
14
8/4/21wdAdminVersion', '6.2.0.7'
no cache javascript'
wdShared: seasons fixes
volunteers - improving date validation for volunteers -- max date (tomorrow) for dates and required for volunteer hours start
adding phone # PersonOrg::emailAndName();
15
8/2/21wdAdmin v6.2.0.4-- further major changes in inquiry handling
16
8/2/21wdAdmin 6.2.0.3
adding option of "Canceled' as a pseudo-season to save canceled orders;
This involves a change in database design (storing 'season' as string rather than number) and will not be properly implemented in wdMeasurer until next release
17
8/1/21wdAdmin 6.2.0.2
many improvement in inquiry handling; deep change in inquiries table from order_id to ordernum
18
7/28/21wdAdmin 6.2.0.1
fix terrible problem that payments not being stored (since March)
19
7/18/21wdMeasurer 6.2.0
adding mirroring for "localStorage" for offline files using nodejs fs module (to deal with 2-3 occurences of offline file loss)
20
6/23/21wdMeasurer 6.1.3
adding navbarMessage,
adding impersonation
fixing bug warning that measurer would not have access

include navbarMessage and DB_RootName with fetchSharedData
21
6/22/21wdAdmin 6.1.1.7impersonation
better logging
22
6/20/21wdMeasurerDev 6.1.2
adding navbarMessage,
adding impersonation
include navbarMessage and DB_RootName with fetchSharedData

23
6/10/21wdMeasurer 6.1.1
fix problem wdMeasurer did not go back to home screen for login when the user has lost “authorization” (ie no longer logged in because software was left open too long)
24
6/7/21wdAdmin 6.1.0 and wdMeasurer 6.1.0
1. Rewrap" of inserts can now be handled.
2. You can now enter window measurements with fractions
3. Your volunteer hours (and miles) and COVID vaccination status can now be recorded.
4. You can learn/practice the software in a ‘learning database’
5. The software incorporates a failsafe option for offline orders.
1. Rewrap" of inserts can now be handled.
2. You can now enter window measurements with fractions
3. Your volunteer hours (and miles) and COVID vaccination status can now be recorded.
4. You can learn/practice the software in a ‘learning database’
5. The software incorporates a failsafe option for offline orders.
**Other lower-profile 2021 improvements
The software incorporates a small price increase from the 2019 rate to the 2021 rate
The software handles state tax appropriately for VT vs ME
The software provides many more ‘tooltip’ help information (marked by ? in blue circle)
The software provides more field validation and clarity on required fields (but further is work needed)
There are more indications what you need to do when an item you want is greyed out
‘Measurers’ dropdowns now are better sorted, show more information (including current used at top, and inactive names) and allow unassigning.
‘Build’ dropdowns now are better sorted, show more information (including inactive builds) and allow unassigning.
Handling of error messages from the server has been systematically overhauled - to provide more information to the user when something goes wrong.
The software assists in better communication with users by alert messages at login.
Many operations in the order form are faster because information is batch-loaded when you log in
The software warns a user if they are about to upload an order which they could not later “see” (because of permissions).
The software informs uses that white inserts are usually not possible in 2021
**Important but ‘invisible’ 2021 improvements
Information on builds and volunteers jobs is now (better) managed in the new WindowDressers Salesforce database
It is now easier for WD staff to keep in touch with customers and contacts using the new WindowDressers Salesforce database (with synchronization so that wdMeasurer/wdAdmin data stays current.)
The software which runs our server (such as Laravel) was updated so it is more secure and less likely to fail when other software changes.
Our software was moved to a "dedicated server" used only by WindowDressers, which improves security and decreases risk posed by human error in server management.
Major simplification of storage of measurer identifiers
We are expanding the recently implemented strategy of sharing javascript code between wdAdmin and wdMeasurer. This reduces complexity, redundancy and development effort.
The permissions (for record viewing/updating) for each kind of volunteer (measurer, LC, admin etc) are based on more specific volunteer jobs ( stored in Salesforce) and better implemented in wdMeasurer/wdAdmin (including account creation).
The ‘alert’ and ‘confirm’ boxes are now consistent in style (and using a software component that is compatible with underlying software)
25
4/28/21wdMeasurerDev 6.0.2
"add order page" changed to include
a) num_rewraps and price_rewrap
b) information on why "add window" is disabled and
c) marking address fields as required (and forcing state entry as 2 char abbreviation)
d) simplifying view until required address information is added
migration to v6 -- see changes in WDAS
26
3/15/21wdAdmin 6.0.0
migration to v6 -- MANY changes;
biggest relates to roles/permissions
-- retrieving user roles from Salesforce (and identifying them by SF ID);
-- strategy for impersonation now much better
-- set up a simple system for admin changing access_level for debugging
--a lot of code related to permision has also been depulicated and improved
second big one is retrieving builds from Salesforce (and identifying them by SF ID)
third critical one is distinguishing sales tax by state
lots of better practice, including a strategy for combined fetching of multiple data arrays, which is shared by wdAdmin and wdMeasurer
migration to v6 -- MANY changes;
biggest relates to roles/permissions
-- retrieving user roles from Salesforce (and identifying them by SF ID);
-- strategy for impersonation now much better
-- set up a simple system for admin changing access_level for debugging
--a lot of code related to permision has also been depulicated and improved
second big one is retrieving builds from Salesforce (and identifying them by SF ID)
third critical one is distinguishing sales tax by state
lots of better practice, including a strategy for combined fetching of multiple data arrays, which is shared by wdAdmin and wdMeasurer
27
3/15/21wdMeasurer 6.0.1migration to v6 -- see changes in WDAS
migration to v6 -- see changes in WDAS
28
1/14/21wdAdmin 5.2.0
Laravel 6.20
initial tests of volunteer page and connection to SF WD-Vol
Laravel 6.20
initial tests of volunteer page and connection to SF WD-Vol
29
10/27/20wdAdmin 5.1.11
SalesforceSynchController - minor fix in catch for errors not caught by SF
SalesforceSynchController - minor fix in catch for errors not caught by SF
30
10/21/20wdAdmin 5.1.10
increase memory limit for PersonOrg (customer) needed due to table growth
31
10/1/20wdAdmin 5.1.9migration to new Serverincluding hardcoded override of URL in AppServiceProvider.php function boot() -- required by mapping/config of new server
change the target URL in form_sorter.php since our networking setup broke the protocol (i.e. HTTP vs. HTTPS) detection code.
32
9/28/20wdAdmin 5.1.6 and 5.1.7
final updates before migration to new server wd-sh
minor issues fixed related to functions called by utilities.js
33
9/25/20wdAdmin 5.1.5
improvements in synchronization and checking WDAS to SF record match
PersonOrg.php
Function sfFieldsOneToOneMapping: make mapping more complete include passed parameter whether or not to include Id (to allow use in patch method, which does not include the 'Id')
--For Person: Map AccountID to sf_account_id and sf_contact_id to Id
--For Organization: sf_account_id to Id
fetchSFRecord()
-- retrieve corresponding record from SF
--log contents of record
--log a "diffReport" of how SF and WDAS differ
synchRecordFromSF
--add parameter to specify whether to only return a diff report
--return the diffReport
--delete lines relating to mapping now handled by sfFieldsOneToOneMapping

adding parentheses group to fix erroroneous subject of error email
34
9/10/20wdAdmin 5.1.4Updating cut_job for migration v5updating Salesforce ID for pcopy after refresh
35
8/18/20wdAdmin 5.1.3
fixing assignment of order address if it needs to be copied from billing address
fixing assignment of order address if it needs to be copied from billing address
36
8/17/20wdAdmin 5.1.2
**huge (but not fully complete) cleanup of form and logic for processing inquiry
Commit: wdAdmin[73e437f]
**restrict fuzzy name lookup to the single contact (not former both)
**(temporarily) disallow inquiry creation in WDAS and deletion
**huge (but not fully complete) cleanup of form and logic for processing inquiry
Still needed -- handling organizations; fixing grid refresh after update

inquiry controller
--deprecating old "function create()" in inquiry controller and if need to restore do it by minor change in the
--cleanup inquiry controller by deleting unused getPossibleCustomers and fetchPossibleCustomers
Inquiries.js
--lots of cleanup of inherited mess
--reorder grid elements so processing status easier to see
--revise fields for changes in inquiry table
--disable new inquiry and delete functions (in future might fix and restore them)
--rearrange field order and organize in fieldsets to make easier to understand
Inquiries.blade.php
--Adding caveat fieldsets and instructions fieldset at beginning
Order.php
--adding bill_to_poid to linked order collection
37
8/3/20wdAdmin 5.1.1
**add function to SalesforceSynchController to delete contact or account from WDDB based on the recycle bin in Salesforce (and lock necessary tables during synch)
**change customer_detail.blade so deletion not allowed (and prompted to email Meaghan)
**add piece of MERGE functionality: transferObjectsLinked to PersonOrg to change linked objects to another POID

**add function to SalesforceSynchController to delete contact or account from WDDB based on the recycle bin in Salesforce (and lock necessary tables during synch)
**add function transferObjectsLinked to PersonOrg to change linked objects to another POID
*improving code readability by adding informative constants
*add to SynchError logging/email whether report is from WDDev
*change customer_detail.blade so deletion not allowed (and prompted to email Meaghan)
constants.php
--replacing 0,1 with constants WD_is_person, WD_is_organization
--SF_RecordTypeId_Organization and SF_RecordTypeId_Household;
PersonOrg.php -- rename and change saveAfterUnsetLinkedItemInfo();
SalesforceSynchController
--add deletedContactsHandleSF
--this requires using QueryAll instead of Query to access deleted records
--deal with complexity introduced by the way SF handles deletion .. if an account is deleted then SF also deletes contact but does not show it in recycle bin..
--incorporate error catching in multiple places in code

38
7/14/20wdAdmin 5.1.0
**update inquiry table structure, grid, import to handle new inquiry form
**-add trap to reject login on MAC by v5.0.6 going to wrong directory
39
7/13/20wdMeasurer 5.1.1
**fix problem that TIM is not sensing connection state
40
7/12/20wdMeasurer 5.1.0
**fix problem that MAC version 5.0.6 is accessing the v5_dev database
**change logic of setting "is_organization" requires active choice and cannot be changed after set
**improving logic of customer assignment -- deselecting; disabling add when customer selected, etc
**handling choice re potential duplicate customer
41
6/26/20wdAdmin 5.0.9
**change logic of setting "is_organization" requires active choice and cannot be changed after set
** exclusion from synch PersonOrgs records identified as 'Test' (first name, last name, beginning of org name)
**log a Synch error if a personorg record is made inactive (deactivated, deleted)
**fixing dup customer handling (logic was inverted)
**change logic of setting "is_organization" requires active choice and cannot be changed after set
** exclusion from synch PersonOrgs records identified as 'Test' (first name, last name, beginning of org name)
**log a Synch error if a personorg record is made inactive (deactivated, deleted)
**fixing dup customer handling (logic was inverted)
fixing impersonation problems and improving
more flexible creation of $synchLogger
.
42
6/21/20wdAdmin 5.0.8
improve Salesforce synchronization especially error detection/handling
43
6/1/20wdAdmin 5.0.7
initiate synchronization of WDDB person_orgs to Salesforce
44
5/12/20wdMeasurer v5.0.6
release of 4 month overhaul to Version 5 of database and sottware
45
5/12/20wdAdmin v5.0.6
release of 4 month overhaul to Version 5 of database and sottware
46
5.8.20wd-dev wdMeasurer and wdAdmin v5.0.3
first release of v5 for testing in wd-dev
This includes MANY MANY changes
--including Laravel 5.1 to 5.4
--including Laravel 5.1 to 5.4 Jan 2020
47
12/2/19wdAdmin v4.3.31
**better handling of inserts with word 'cut' in comments
*order tab: changing grid height from 600 to 550 (instead of 400 back in March)
*small improvements in utilities: handling inserts with questions: button moved to a row for Cliff, insertnum add to make Steve's SQL manipulation easier

**technical- fixing bug in orderController trap for comments that include "cut"'
**better handling of inserts with word 'cut' in comments
-- in email re inserts with question; add text to further distinguish those triggered by word 'cut' in comment
--include such inserts in the table of inserts with questions
*order tab: changing grid height from 600 to 550 (instead of 400 back in March)
small improvements in utilities: handling inserts with questions: button moved to a row for Cliff, insertnum add to make Steve's SQL manipulation easier


48
11/19/19wdAdmin v4.3.30
correction posting sheet calculation of DinVS and DinHS
correction posting sheet calculation of DinVS and DinHS
technical: Changing log categories to include "notice" for things that need review
49
11/13/19wdMeasurer 4.5.1fix bug with preventing redo orders
50
11/7/19wdAdmin v4.3.29"customer records with special rate and taxgroup standard will be corrected tax exempt upon create/update
order records with special rate and taxgroup standard will be corrected tax exempt upon create/update
add to utility tab a data integrity check for tax exempt state of special orders and of customers with special rate
change labelling in WDAS to beginning converting ""customer"" concept to ""customer and contacts""
"
51
11/2/19wdAdmin v4.3.28Customer tab: improve directions on selecting customer to enable open, delete etc



technical: improving customerController to abort function calls if user validation fails
technical: continuing with user enum (and experimenting with removal of wd-admin (and git) from Windows User folder


52
11/1/19wdAdmin v4.3.27
*improving utilities tab to make function more self-explanatory
*utilities: add data integrity check for orders with no measurers
53
10/31/19wdAdmin v4.3.26
*Improving subject lines of email-with-invoice and email-with-question to include ordernum and customer name
*fix measurer viewing more orders than allowed
technical: refactoring and minor improvements of code for emails-with-question
technical: setting up impersonation in ordersController (TIM AND WDAS) for Steve to test problems with individual accounts

54
10/30/19wdAdmin v4.3.25
*new order list with customer info available for a cut file (that can be exported to a spreadsheet)
*adding new trigger of email to WD QC (Cliff): word "cut" in comment
*adding new button in utility to generate an order list with customer info for a cut file (that can be exported)
*adding new trigger of email to WD QC (Cliff): word "cut" in comment
*technical: refactoring some BuildJob functions
55
10/28/19wdMeasurer 4.5.0
**definitive fix of bug: price_before_taxes zero: by fixing handling of failed order save (or server-side merge) by reverting price properties to those before save
**fix payments for order: eliminate rounding errors; refactor code for delete payments (possibly fixing bug in the process of doing so)
**window addition/editing: allow mated sets of unequal size
**TIM user can now choose to get email with invoice attached (after saving an order online)
**Errors in TIM are now reported back to the server to help in debugging
**TIM now shows more improved formatting of institution names (on customers marked as institution)

*order form, ""question"" field; before adding question, confirm with user it needs an answer
*customer form: fix showing customer submission requirements
*eliminate LI3PPAY - eliminate option in html template of choosing LI3PPAY
*improve error messaging for customer create/update on server
*report error to user if order record creation fails
*provide more informative error message to user if mated set offset too large
"
technical: refactor cleanupOrderBeforeSave
technical: improve handling of failed order save by reverting price properties to those before save
technical:ask about emailing invoice only if order has measured windows
technical: fixing the problem with ordernum 0 if merge caught server-side
technical: fixing label vertical strut rather than horizontal

"**definitive fix of bug: price_before_taxes zero: by fixing handling of failed order save by reverting price properties to those before save
fix payments for order: eliminate rounding errors; refactor code for delete payments (possibly fixing bug in the process of doing so)
**technical: no longer need to delete order (and insert) properties that are unique to TIM
technical: fixing the problem with ordernum 0 if merge caught server-side
technical: fixing label vertical strut rather than horiztonal
technical: refactor cleanup OrderBeforeSave
technical: improve handling of failed order save by reverting price properties to those before save
technical: for clarity rename valToTwoDec to strToTwoDec
technical:ask about emailing invoice only if order has measured windows

"
"**window addition/editing: allow mated sets of unequal size
**option for TIM user to choose to get email with invoice attached (for both create and update)
**add to order form an error report that gets returned to server
*extending implementation of customer.is_institution: now names in order form and order detail show institution names correctly
*order form, ""question"" field; before adding question, confirm with user it needs an answer
*customer form: fix showing customer submission requirements
*eliminate LI3PPAY - eliminate option in html template of choosing LI3PPAY
*improve error messaging for customer create/update on server
*report error to user if order record creation fails
*provide more informative error message to user if mated set offset too large
**fix of bug: price_before_taxes zero:
--cleanup the get and set functions
--further cleanup and simplification
--improving strategy by moving to order-utils to separate error check from repricing
-- cleanup of prototype and renaming properties with or _proto of getter/setter//accessor
-- reporting in error report, debugging and improving alerts

technical: extend cleanup related to not needing to delete wdOrderParent now that it is non-enumerable
technical: wdwindow.controller cleanup unneccessary code in cancelAddEdit
technical: make wdWindow.wdOrderParent non-enumerable to fix bug and improving code for duplcation via JSON stringify
technical: making sure order status updates to ""measured"" when order with windows is saved
technical: improving code for order status by implementing enumation in __env and cleaning up Sean mess on status
technical: cleanup wd-form-funcs.factory and add method getTypeOfProperty(object, property)
technical: almost entirely changing indent: spaces to tabs then tab size 2
technical: two small changes related to strut offset, but Steve can quickly find those changes
technical: error checks and attempted bypass for error 9-T145 duplicate inserts with loss
technical: removing changes proved unncessary by solving bug 9-T145
technical: draft of improvements for specifying mset offsets: needs further testing

technical: annotations
technical: improving roomName handling with array.map;
technical: fixing problem with insert.id before server upload (were mostly -1, not decrementing)



"
delaying general distribution utnil perhaps 10/30
57
10/28/19wdAdmin 4.3.24
**debug and make major improvements in emails for inserts with questions and when chosen by measurer (including invoice and contact information)
**Extensive code cleanup and tab layout improvement
improve email to WD insert support person (Cliff) by including contact people and emails
technical Refactor email list for use by any email
improve email acompanying invoice
: add measurer name/emails and customer name/emailstechnical
: add emailAndName function to user and customertechnical: add measurerIdArray to OrderMeasurer to easily access the measurers ids
technical: debug and simplify massive EmptyOrderForCustomer from former developer and related superfluous code
technical: checking if invoice file exists and handle requested emails accordingly
technical: cleanup debugging loggingtechnical: sendEmailForInsertQuestions: refactor into function and call AFTER creating invoice
technical: emailing invoice refactored to simplify code
WDASServerVersion # should have been updated with previous commit**log error report returned from TIM order form
**handle emailing of invoice to measurer, if requestedtechnical: orderController: make ordernum global
60
10/18/19wdAdmin 4.3.23
improve email alerting about question on inserts by attaching an invoice
technical: implement constant WDisDevServer which indicates whether app is running on dev server and simplify by using it in several places
improve email alerting about question on inserts by attaching an invoice
61
10/11/19wdAdmin 4.3.22technical: adding 'rate' to order information in email for error price zero
62
10/4/19wdAdmin 4.3.21invoice: change wording of request to customer: order number not customer number
utilities: add routine to check for duplicate emails for users.
invoice: change wording of request to customer: order number not customer number
utilities: add routine to check for duplicate emails for users.
technical: clarifying error log that creation of user with duplicate email blocked
63
10/1/19wdAdmin 4.3.20technical: fixing routine that emails Cliff when error detected (only once per order)
technical: changing button size (from xs to sm) on order grid so easier to click
64
9/29/19wdAdmin 4.3.19improvements to handle/debug problem with orders without calculated price
admin: adding button on utilities tab for orders price zero
technical:adding logic to orderController in check for ErrorZeroPreTax to distinguish whether price before tax is set

65
9/24/19wdAdmin 4.3.18order controller: convert li3ppay orders to special (until TIM fixed)
send email for order having inserts with question(s) - to Cliff and Steve"
technical: fixing utilities (moving alert from controller to .js)
technical: order controller: convert li3ppay orders to special (until TIM fixed)
send email for order having inserts with question(s) - to Cliff and Steve
66
9/23/19wdAdmin 4.3.17error trap for debuggingtechnical: adding error trap for orders save with price before tax =0;
67
9/23/19wdAdmin 4.3.16add function in utilities to list inserts with questions.add function in utilities to list inserts with questions.
68
9/21/19wdAdmin 4.3.14simplification and improvement of customer name related to is_institution: single SQL text for "select" used by multiple processes; single function for shortname used both in buildJob and posting sheetssimplification and improvement of customer name related to is_institution: single SQL text for "select" used by multiple processes; single function for shortname used both in buildJob and posting sheets
69
9/19/19wdAdmin 4.3.13posting sheet generation: full version implemented in WDAS (rather than procedure), handles 2019 data changes (struts and mated pairs), now downloadable as text for formating by word macro
posting sheet generation: full version implemented in WDAS (rather than procedure), handles 2019 data changes (struts and mated pairs), now downloadable as text for formating by word macro
technical: workshop status report: clear previous data from day if run again
70
9/17/19wdAdmin 4.3.12technical: release with fixed utilities file so Meaghan can run WSRtechnical: release with fixed utilities file so Meaghan can run WSR
in progress: improving posting sheets: query integration into WDAS
71
9/17/19wdAdmin 4.3.11fixing problem with assigning two measurers in grid (that arose from past code cleanup)
upgrade to agGrid 21.2.0;
modification of many (but not all) WDAS components so that customer can be designated as an institution and in that case the organization name is used as the primary name. [Updates need to be made in the reimainder of places including TIM)
Customer tab in WDAS: many changes: action buttons on top of grid that operate on selected customer; ability to create orders (for admins); must faster load (but links to order,inquiries,payments temporarily removed)
fixing problem with assigning two measurers in grid (that arose from past code cleanup)
upgrade to agGrid 21.2.0;
modification of many (but not all) WDAS components so that customer can be designated as an institution and in that case the organization name is used as the primary name. [Updates need to be made in the reimainder of places including TIM)
Customer tab in WDAS: many changes: action buttons on top of grid that operate on selected customer; ability to create orders (for admins); must faster load (but links to order,inquiries,payments temporarily removed)
techincal: beginning of conversion to posting sheet implementation in WDAS
72
9/16/19php version on serverphp (a basic piece of server infrastructure) was upgraded from 7.0.33 to 7.1.32
73
9/8/19wdAdmin 4.3.10installing FORREST for Salesforce access from WDAS
74
9/7/19wdAdmin 4.3.9technical: correcting STATE assigning during customer creation from inquiry (was only "ME")

technical: correcting STATE assigning during customer creation from inquiry (was only "ME")

75
9/7/19Web Siteimprovements in Order Insert Formbetter prompts for second contact and business name
workaround for shadow checkboxes in options field
76
9/4/19wdAdmin 4.3.8
solving assures that cutjob files downloaded are "fresh" not cached
technical: disabling caching of xlsx and csv to solve cutjob refresh problem
technical: first testing of customer access from Salesforce in UtilitiesController
77
9/2/19wdAdmin 4.3.7
orders grid: add total for "pretax" in summary row;
cutjob generation: fix numbering of inserts in order (to exclude inactive) and calculate strut materials
orders grid: add total for "pretax" in summary row;
cutjob generation: fix numbering of inserts in order (to exclude inactive) and calculate strut materials
technical: delete xBuildJobOrder.php since no longer used
technical: deprecating inserts: num_struts and strut_offsets_str from Laravael
technical cutjob: fix numbering bug by excluding inactive inserts from count
technical cutjob: fix bug that strut number lengths not calculated
technical: adding error message if no candidate customers retrieved for TIM (since available space error does not trigger error message)
78
8/19/19wdAdmin 4.3.6fix error in ordercontroller with logging on update
79
8/18/19wdAdmin 4.3.4 and wdAdmin 4.3.5releasing and then removing code to create customers from users lacking them
80
wdAdmin 4.3.3fixing small issues in cutjob labels
81
8/7/19wdAdmin 4.3.2technical: fixing customer name error in cutjobs
technical: eliminating debugging messages
82
8/6/19wdAdmin 4.3.1
fix TIM error with duplicate inserts (which overwrites a valid one) 9-T145
1) The data retrieval to populate the order grid is MUCH changed under the hood. It is faster for typical use, because it only retrieves orders from the selected year (unless it is overridden by user request for “all”).
2) on returning to the order page, you get the same column layout (but now the filters and sorting is not remembered)
3) The functionality of the cutjob process is now functional for 2019 (but needs checking and lacks some improvements I would have liked to make).
fix TIM error with duplicate inserts (which overwrites a valid one) 9-T145
orders tabs now faster load, since it loads a single year (unless 'ALL' option chosen from dropdown)
inactived sort and filter restoration from current view
technical: cleanup testing and debugging for above changes
technical: completing deprecation of buidjob_num from orders
technical: *more cleanup of cutjobs: adding bjname to form and controller, adding is_completed, date, comment to database, cleanup of controller logic
technical: overall minor annotation and cleanup
technical: orders.js minor annotation of grid features, removing old attempt fix to invoice caching
technical: to accelerate, trying limiting wdm order index for current season
technical: refactoring "index" retrievals of orders for wdm and wda before introducing improvement
technical: completion of server side filter by season (so changing season requires requery);
technical: orders tab: improving timing logging to console
technical: doWindowsHaveDups($windows) - to detect problem order of type seen by Randy Schaeffer
technical: converting globally to UsedServiceNumController
technical: adding flexibility to queries in utilities tab; including new for DupWindowNames
technical: converting much of wdaRetrieveNewRows to sql rather than iterations customers, bill_to, insert count)
technical: *technical: converting much of wdaRetrieveNewRows to sql rather than iterations customers, bill_to, insert count)
technical: code simplification by delegating construction of refreshed $order from wdaUpdate to wdaRetrieveOrders
technical: improve wdaRetrieveOrders by using primarily sql (for all but payments)
technical: cleanup BuildJob: swap strut drill location onto correct stick; fix the addition of JobID to the check for duplicate cuts of an order











83
7/11/19wdAdmin masterTemp 83cc4bd234c00c0d407b43683067f49d24e8020c*fix error with duplicate inserts (which overwrites a valid one) 9-T145
84
7/11/19wdAdmin masterTempadding flexibility to queries in utilities tab; including new for DupWindowNames
85
7/10/19wdAdmin masterTemptechnical: temporary patch of orderConttroller to catch orders with duplicate window numbers
86
7/2/19wdAdmin v4.2.25technical: Remove references to BuildJobOrder to fix problem created with release 4.2.24
87
7/2/19wdAdmin v4.2.24*orders tab: further improvements in summary row (orders measured. rate, order number list in invoice column)
*orders grid tooltip: use tooltip to show value of cells (all columns except the buttons, in which it is overriden);
*implementing part of solution so PDF invoice files won't be cached
*technical: still deep in process of adapting cutjobs (incuding first draft of formatting for 2019 cut labels)


orders tab: add to summary row: orders measured and rate (including # and %, suggested by Cliff)
orders tab: adding tooltip on rate, build_code, measurers (to see long lines and to fill in missing builds)
orders grid tooltip: use tooltip to show value of cells (all columns except the buttons, in which it is overriden);
technical: improving default colDef with menuTabs: ['filterMenuTab'],
technical: deleting BuildJobOrder class and instead use direct link to Build_job_id in orders
technical: first draft of formatting for 2019 cut labels
*technical: improving logic of Workshop Status Report count of previous week inquiries
*technical: adding logic to .htaccess so PDF files won't be cached (will see when apache config is updated)
*technical: still deep in process of adapting cutjobs

88
6/21/19wdAdmin v4.2.23changing grid theme to ag-theme-blue to get more prominent alternating row discrimination;
bug tix technical: fixing bug introduced with 4/2/20 that LCs with multiple workshops see only orders from one; it involved fix in getLCOidArray by reverting QueryBuilder and simplifying;
technical: customer view -- setting default view if missing -- quick patch that will likely need improvement
changing grid theme to ag-theme-blue to get more prominent alternating row discrimination;
bug tix technical: fixing bug introduced with 4/2/20 that LCs with multiple workshops see only orders from one; it involved fix in getLCOidArray by reverting QueryBuilder and simplifying;
technical: customer view -- setting default view if missing -- quick patch that will likely need improvement
89
6/20/19wdAdmin v4.2.20technical: counting INSERTS not windows in retrieval of orders for grid and in function in orders.phptechnical: counting INSERTS not windows in retrieval of orders for grid and in function in orders.php
90
6/20/19wdAdmin v4.2.19order grid: adding summary for donation and senior
technical: rounding totals to two decimal places

order grid: adding summary for donation and senior
technical: rounding totals to two decimal places

91
6/20/19wdAdmin v4.2.18"**orders grid improvements:
--add header row with distinct color for colu,m totals
---show total # orders for total: special, due
---show sum for #pine, #white, #all inserts, $total, $paid
-- show more orders in grid with narrower rows (and accent alternate lines with better background color)
**measurers selection list: change sort to case-insensitive
*TIM order list retrieval: speed up by restricting relrieval to relevant info
**orders grid improvements:
--add top pinned header row with distinct color for colu,m totals
---show total # orders for total: special, due
---show sum for #pine, #white, #all inserts, $total, $paid
-- show more orders in grid with narrower rows (and accent alternate lines with better background color)
**measurers selection list: change sort to case-insensitive
*TIM order list retrieval: speed up by restricting relrieval to relevant info
technical: store cut job # directly in order rather than by linked table
tecchnical: fix permissions limit on LC updating record of users associated with their builds
technical: begin overhaul of cutjob process
92
5/13/19wdAdmin v4.2.11**add label and help alert to text filter on customers and orders tabs
**add utility for admin, show inserts for order


**add label and help alert to text filter on customers and orders tabs
**add utility for admin, show inserts for order
technical fix error caused by customer name trim, when property is not defined
technical: fixing Sean's old errors in path of script files
technical: initial changes to begin update of cutjobs for 2019 - inserts loops within windows; strut specifications

93
5/7/19wdAdmin v4.2.5**develop tools to easily develop new complex queries, display results in agGrid and export
**use these new tools in UtilityTab to retrieve results for Weekly Status Report
**develop tools to easily develop new complex queries, display results in agGrid and export
**use these new tools in UtilityTab to retrieve results for Weekly Status Report
*trimming customer names to remove leading and trailing spaces
94
5/2/19wdMeasurer 4.4.2*fixing pricing bug
*improving speed and simplicity of customer list retrieval
technical: many behind the scences improvements/simpifications
*highlighting required 'urgent' updates with a red button ("button alert")
*fixing pricing bug
*improving speed and simplicity of customer list retrieval
*highlighting required update with a red button ("button alert")

technical fixing scrolling after choice of rate (so disabled during form load)
technical: reorganzing order page logic/flow by the four types of pageClass
technical: change users to arrMeasurers in orders form
technical: remove $scope for many functions/params where not needed
technical: begin function fetchMeasurers to replace fetchUsers
technical: bypassing update of insert price if not 'editable'
technical: improved error notification: fixing alert syntax ( + instead of ,)
technical: correcting customer selection from name to fullname due to server changes
technical: wdWindow: include setting rate when setting wdOrderParent
technical: fix error of 'editable' moving from wdInsert to wdWindow




95
4/25/19wdAdmin 4.2.1major overhaul of 'users' tab
-- adding column 'current measurer' to allow exclusion of former measurers from measurers list
--adding column 'comments" for confidential comments by WD staff, seen only by admins
--revealing many fields in users tab for admins, related to users usage of TIM and WDAS, (new this year)
--improve layout of buttons and grid
--improved process for deleting a user: user name shown during confirmation, first step is setting current_measurer = 'N'
**major overhaul of 'users' tab
-- adding column 'current measurer' to allow exclusion of former measurers from measurers list
--adding column 'comments" for confidential comments by WD staff, seen only by admins
--revealing many fields to users tab for admins related to users usage of TIM and WDAS, (new this year)
--improve layout of buttons and grid
--improved process for deleting a user: user name shown during confirmation, first step is setting current_measurer = 'N'
technical: handle retrieval of measurers list for TIM and WDAS with single query (eliminating complex duplicate code)
technical: change 'date_last_login', 'date_last_TIM_login',
technical -- configure eslint for wd-admin
technical: technical: cleanup UserControl - wdaIndex - deleting superfluous and renaming for clarity
technical: fixing security problem: auth not required for user create, update, deactivate
technical: moving functions to "model" customer.php from controller
technical: self-documentation: prefixing server returned variables with "phpecho"
technical: user: turning view states back on; and further refinement of column layout

96
4/15/19wdMeasurer 4.3.2*many small improvements in usability of order form**make changes necessary to override authorization when taking over an empty order from another measurer
--allow wdOrder-update to specify bypass_authorization
_specify bypass_authorization when user opts to take over an empty order from another measurer
*add 'get' (in wdWindo)w for priceForDisplay which adds '($0 from customer)' for special and Li3ppay
*reformat Window Overview table so window names usually don't need to wrap and comments have more space
*on order form move 'resident senior' up 'customer info'
*on order form disable "add new window" until rate is set
*change wording to "complete the Add/Edit.."
*on order form when storing offline, when possible duplicate found give user details to inform good choice
97
4/15/19wdMeasurer 4.3.0**provide informative prompts to lead user through customer selection for order;
*When modifying a window, the field 'finish' has moved to immediately following room
** adding advanced mode for admins; its first feature is being able to edit single order by ordernum;
*improve error message on failed order update;
*speeding up fill of customer selector field on Orders form
**set focus on customer-selector to reveal names automatically
*order form: reorganizing "manual name" just below ordernum (and outside customer information from database)
**fix bug with assigning customer to offline order
**in new window fieldset, move 'finish' to immediately follow room
** adding advanced mode for admins; its first feature is being able to edit single order by ordernum;
*improve error message on failed order update;
*speeding up fill of customer selector field on Orders form
**provide informative prompts to lead user through customer selection for order;
**set focus on customer-selector to reveal names automatically
*order form: reorganizing "manual name" just below ordernum (and outside customer information from database)

technical: adding 'div' to later use to conceal most of order form under merge options selected
technical: cleanup code logic of merge vs new order
technical: add customer info help as target for focus and scroll after customer selection
technical: handle alerts in wdWindowController with wdSweetalert2 queue
technical: creating wdSweetalert2 service to handle queue for multiple alerts
technical: provide developer with tools based on user.id
technical: fix order lookup urls related to adding option of ordernum
98
4/15/19wdAdmin 4.1.1*OrderController: - add property bypass_authorization to update query and respond to it in wdmConstruct
99
4/14/19wdAdmin 4.1.0**improving preset views for orders and customer by
- adding help button
- limiting impact to column formatting, not to filters, text etc
- changing layout to row not column to save space
**speeding up fill of customer selector field on Orders form
**upgrade ag-grid from v15.0 to v20.2 : "community" and enterprise
tehnical start gitignore of ag-grid folders in resources/assets






**upgrade ag-grid from v15.0 to v20.2 : "community" and enterprise
technical start gitignore of ag-grid folders in resources/assets
technical: renaming vestigial files related to agGrid from Sean
*modify agGrid configuration in order.js amd orders.blade.php necesssary after update to v20.2
technical: remove vestigial ag-Grid scripts in public/js
**add WDAS log to server log and update to users record
**add error trap in invoice controller for missing customer or order
*fix error in orderController introduced with adding ordernum option
**speeding up fill of customer selector field on Orders form
*OrderController: add error trap if no such order
**recreate logic for wdmEmptyOrdersList based largely on raw SQL to fix bug found but not pinned down in Sean's logic
**adding Help for Preset views (on customer and order tabs)
**reorganizing buttons above grid to improve function organization (filter-related on left, others on right) on both orders and customers
**Limit preset views to column formatting, not to filters, text etc
*increasing heights of customer and orders grid (from 400 to 600 px)
**consistently use "default season" (now 2019) in WDAS
**change display format of preset views (in ORDERS and CUSTOMERS) to save many rows at top of form
technical: correct loop in function index in customer controller: move view retrieval outside the customer loop
technical: move JS variables from autoload.php to wda-global-js-constants



100
4/4/19wdAdmin 4.0.18**Enable server to retrieve orders by ordernum (rather than only ID)
*Technical:Improved error handling for undefined objects

101
3/29/19wdMeasurer 4.2.3** MAJOR: fixing a bug that payments are retained from one customer to another;
**adding price to the form for adding/editing windows (once windows measurements are complete. So you see price impact of any change you make.
**bug fix: Big_plastic was not being set in windows (although it was being correctly priced). This version adds "big plastic" designation to the form for adding/editing windows as well as properly recording it in the record for the window itself.
**:much improved logic for forcing price change when approved by user, and blocking many edits if not repriced (e.g. blocking edits of inserts or price changes thereof. Also assuring that users are not bothered about repricing of empty orders
**major revisions of logic for repricing leading to much more reliable and efficient code.
** MAJOR: fixing a bug that payments are retained from one customer to another;
**MAJOR: much improved logic for forcing price change when approved by user, and blocking many edits if not repriced (e.g. blocking edits of inserts or price changes thereof. Also assuring that users are not bothered about repricing of empty orders
**fix error causing failure of repricing
*improve download help message to make it platform specific
*improved wording for MAC installing -- referring folks to Ray Yardy

**adding price to the form for adding/editing windows (once windows measurements are complete. So you see price impact of any change you make.
**bug fix: Big_plastic was not being set in windows (although it was being correctly priced). This version adds "big plastic" designation to the form for adding/editing windows as well as properly recording it in the record for the window itself.
**implementing "getter" strategy for price for both order and window objects. This involves renaming properties (with "_" prefix on load and reversing on save. It also involves major revisions of logic for repricing. But it leads to much more reliable and efficient code.
102
3/26/19wdAdmin 4.0.15**when user logs into TIM, update information in their user record about software usage
**when user logs into TIM, update information in their user record about software usage
*by analogy to other controllers that bomb if user not authenticat, use same logic in BuildJobController, Inquiry Controller and UtilitiesController
*expand the 'users' table with information about their use of sofware and email
103
3/25/19wdAdmin 4.0.14technical cleanup of codeconsidered Adding build_Test to all users, but then did not for fear it would cause confusiino
JSS begins to use and enhance functions provided by 'user' object
remove unused function in 'user' object
remove unused function and route for orders-no-edit