Difference between revisions of "Presage/Recent Application Changes"
(43 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== | =Version 6.0 (10/17/2024)= | ||
Revision 24207-24602 database version 600 | |||
==Breaking Changes== | |||
* Presage 6.0 no longer relies on a special MySQL plugin for sending alerts to the client. This is now handled exclusively by the Presage API. This means this functionality requires the Presage API to be running for a client. If you do not receive alerts after this update, please contact Presage support. | |||
==Update 7/2/2014 | ==Installer== | ||
* The installer has been rebuilt and modernized. Unnecessary dependencies have been removed, and some components updated to newer versions. | |||
* Added uninstaller | |||
* Uninstallation now removes install/release key | |||
* Removed instantVNC | |||
* Fixed: downloading TSC_Lastest tag printer installer now works again | |||
==Controls/Tools== | |||
* Fixed: a potential crash that could occur when modifying visibility of a button. | |||
* Added: support for easily toggling sorting and/or drag and drop on and off on a list control since in some places, sort order can be saved, and therefore must be disabled when the list is read only. | |||
* Added: stored procedures that should be able to accurately restore records for any table from audit logs. | |||
* Fixed: (EE-237) a subtle and rare bug that could cause a tree control with a footer to sometimes be shorter than it was supposed to be. Changes from the list control from 2018 have been adapted to the tree control to bring the two in line for their behavior. | |||
* Fixed: an issue where some popups would not be tied to the application correctly. This meant that the user could sometimes use alt+tab to access the application still even though a popup was present. This also fixes an issue where auto-refresh timers were not being halted while these popups were visible. Now they will pause correctly. | |||
* Changed: the way popups center on their parent window now works in a way that doesn't require breaking how popups are tied to the application. | |||
==Database== | |||
* Added: an index to the analysisoptionvalue table on the date a value was filled out to make some dashboard queries faster. | |||
* Added p_restore_table_from_logs a generalized version of restoring a table from the logs. | |||
* Added some handling of temporal columns default functions like NOW or CURRENT_TIMESTAMP | |||
* Migrated all previous p_restore_xx procs to use p_restore_table_from_logs | |||
* Added p_restore_every_row_in_table_from_logs, which makes easy a rarely performed function where every historical record in a table will be restored from logs. This can be useful if a table was accidentally emptied. | |||
* Removed: It was noted that Presage had foreign keys on the table reportprinter (which is shared between products) unlike the other systems. These foreign keys were preventing the use of the value of 0 for userid or siteid to denote 'global' so they had to be removed | |||
* Deprecating: a couple of unused tables as part of an effort to make deployment size smaller. | |||
* Added: some enhancements and formatting to p_run_for_each_table that was introduced in another product | |||
* Changed: numbers table is now innodb to match all other schema | |||
* Fixed: an issue where the overnight option correlation calculator was failing. | |||
* Fixed: an issue where the expire sessions event could fail during daylight savings changeover. | |||
* Fixed: an issue where the event that ensures that data clones ran successfully would incorrectly email an error when running 2 hours after a daylight savings changeover. | |||
* Added: new tables keyvaluepair and userpushsubscription, used for push notifications | |||
* Fixed: when the scheduleinstance table had startdate changed from DATETIME to TIMESTAMP, mysql automatically added 'on update' to it so that the datetime would be set to NOW whenever anything changed, which is not desirable | |||
* Fixed: misspellings of occurrence in p_schedule_instance_populate | |||
* Fixed: an issue where a schedule with an end date would not stop at the passed in end date for instance generation | |||
* Fixed: added three different protections against infinite loops in p_schedule_instance_populate to protect against runaway schedules | |||
* Added: sample.due, sample.scheduled, analysisoptionchoice.productbatchid, and workorder.productbatchid were all not being logged and now are | |||
* Added: table/column comments to some tables that didn't have them. | |||
* Minor change to an unreleased index to assist both dashboards and reports | |||
* Added: (PA-332) several indices to improve the speed of common load operations and reports for large clients. | |||
* Added: database index for workorder.scheduled to improve load speed for some mobile applications. | |||
* Added: a couple more indices to the workordertype and sample tables to help speed up some common operations. | |||
* Added: (PA-351) changes to many tables to add the multiple lot tracking/inventory subsystem. | |||
* Added: e_process_alert now checks a setting to see if the API is configured to send alerts. This allows us to transition alert emailing from the database UDF to the API. | |||
* Added: field for supplier item number on sample value inventory. | |||
==Analyses== | |||
* Added: (FB-48673) a prompt to delete the current analysis option rule if all tags have been removed from it. | |||
* Fixed: typo | |||
* Fixed: an issue with analysis option choices/thresholds where deactivated products or products that were not in use at a plant would stop showing on historical choices/thresholds. | |||
==Configuration== | |||
* Added: The settings page now refreshes global and site level settings when the user visits this page. This should help avoid issues where the user sees 'old' information in this popup that was changed by another user or in the database directly. | |||
* Added: (EE-141) the system will now close all historical user sessions if a user is locked or deactivated. | |||
==Crystal Reports Printing== | |||
* Added: print jobs now have a title set based on the user friendly name of the report, plus a file extension. Testing revealed that this causes some PDF printers to name the default file equal to this title, making printing to PDF slightly easier. | |||
==ITMySQLConnection== | |||
* Fixed: a minor issue where, if ca-cert.pem is completely missing, requiring SSL might not throw an error when connecting. | |||
* Added: comment /*RECONNECT QUERIES CHANGED FOR CONNECTION "X", RUNNING NOW:*/ to the start of the queries run by mysql every time we reconnect to the database. | |||
==Locations== | |||
* Fixed: an issue where adding an image and switching maps without saving might stop showing the image. | |||
* Fixed: an issue where top-level images, text, and boxes wouldn't save in some scenarios. | |||
==Login== | |||
* Added: when the user logs out and back in, global settings are now refreshed from the database to avoid situations where they have out of date information until they restart the application. | |||
==Master== | |||
* Changed: suppressed a database error that could be thrown from help->about if the database did not have a version in it. | |||
==Products== | |||
* Fixed: an issue where address lookups on the supplier address area were throwing a query error when doing a city/zip lookup. | |||
* Fixed: an issue where the user could experience crashing or other random behavior if they hit the reset/refresh button before adding new product specifications. | |||
* Fixed: an issue where deactivated products/ingredients (or those not in use at the plant) no longer showing in dropdowns on recipes/steps that reference those products/ingredients. | |||
==Report Viewer== | |||
* Added: (EE-164) the user can now see the "Delayed until" column in the print queue history tab. In addition, there are now filters for all job statuses and a filter to display only jobs with a delay until date. | |||
==Sampling== | |||
* Added: (PA-226) the approved on column now shows the time as well as date. | |||
* Added: when loading thousands of samples, the sample values are loaded for 1000 samples at a time. This is to avoid issues in the database from loading too many samples' values at once. (Technical note: It was noted that MySQL didn't like to use an index anymore when the sampleid IN clause grew greater than 13313) | |||
==Work Orders== | |||
* Fixed: (PA-274) a crash that could occur if the user viewed a change log of a WO where the product batch had changed. | |||
* Fixed: an issue where the testing WOs page would show a bunch of "N/A" columns if there were only recipes on the WO. Now, only displayable samples will factor into computing what columns to show. | |||
* Fixed: (FB-39027) if a recipe has its production volume changed, all options/steps will have their acceptability recalculated. This avoids an issue where per-batch thresholds were not recomputing after the batch volume changed. | |||
* Changed: sample sequence ID will now save as NULL instead of 0 when it is not a scheduled sample. | |||
PS Reports Change log version 6.0 | |||
REVISION 24235-24577 | |||
==Reports== | |||
===1.1 x 2.4 Sample, no barcode (1.1x2.4_Label.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===1.1 x 2.4 Sample Barcode Only, barcode contains sampleid (1.1x2.4_LabelwithBarcodeOnly.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Barcodes (Barcodes.rpt)=== | |||
* Fixed: (case PA-323) report was pulling the wrong store logo | |||
* Changed: (no case) removed bounding box to prevent scanners thinking it was part of the barcode, modified barcode conditional resizing to allow for longer barcodes without getting cut off. | |||
* Fixed: (no case) additional barcode resizing and layering another barcode to prevent a gap at the smallest font size. | |||
===Certificate of Analysis (CertificateOfAnalysis.rpt)=== | |||
* Fixed: (case PA-188) rebuilt the report fresh to remove strange line showing up in specific situations | |||
* Added: (case PA-212) 2 new parameters (with associated settings) to add additional comments at the top and bottom of the report | |||
===Investigation Overview (InvestigationOverview.rpt)=== | |||
* Added: (case PA-248) Investigation Comments, Root Cause, & Root Cause Comments | |||
===Sample (0.66x2.1) (0.66x2.1_Label.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Sample Barcode (1.1x2.4con)(1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
===Testing Barcode (0.5x2.4LabelWithBarcode.rpt)=== | |||
* Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries | |||
=Version 5.0= | |||
Revision 23919-24206 database version 500 | |||
==General== | |||
* Added: (case FB-55284) support for copy and paste right click options in all list controls. Copy is always allowed, paste is only allowed if the user right clicks on a cell that they can edit. | |||
* Changed: all usage of libcURL from version 7.61.1 to 7.88.1. This update allows all of our HTTPS operations (including connecting to the auto-updater) to support TLS 1.3. | |||
* Changed: all usage of libMySQL from version 6.1.11 to 8.0.27. This update allows connection to the newest versions of MySQL server, as well as supporting TLS 1.3. | |||
* Changed: all usage of openSSL from version 1.0.2 to 1.1.1w. This is used both by the new version of libcURL as well as the new version of libMySQL to handle newer security. | |||
* Changed: all usage of zlib 1.2 to 1.3. This handles compression in mysql and libcURL. | |||
* Fixed: many queries have been updated to escape certain column names that will cause issues when using MySQL 8. | |||
==Database== | |||
* Fixed: the nightly event that extends schedule instances for schedules in the system now cleans up old records at least a year old on the first of every month. The scheduleinstance table is also optimized to avoid issues encountered at one location. | |||
* Changed: (case 60014) the event that sends emails if a data clone failed to happen now looks to see if changes were made to the dataclone rule between when the item should've been cloned and now. If a log entry is found, the email is not sent, assuming that a user change prevented the rule from executing as expected. | |||
* Added: (case 60642) a stored procedure to re-rank analysis options to remove gaps. Credit goes to Gwyn. | |||
* Added: (case 60229) new field group.member_emails, which is a text column kept up to date as a semicolon separated list of work emails of all members of the group. This is useful for building alerts that are sent to an entire group. | |||
* Added: (case 60745) some indices for faster lookup of samples by date ranges. | |||
* Changed: (case 60914) move all alert subscriptions with no user over to the support user. Then make it so that column does not allow NULL values. | |||
* Fixed: (case 61034/case 61025) the query inside the stored procedure p_refresh_all_sample_acceptability was examining all analysisoptionvalue records, which slowed the query significantly. This was apparently caused by using a LEFT JOIN to sample instead of a JOIN to sample. Since all optionvalues must have a sample, JOIN is correct and is faster because it allows the query to use indices. | |||
* Changed: (case 60632) reportsubscription and reportsubscriptionparameter tables to be able to handle a scheduled report that will run a query and either email or save it to a directory. | |||
* Changed: reportqueue and reportqueueparameter tables now have a sourcetype and sourcequery columns to handle distinguishing between reports that just run a query and send a CSV or those that run a crystal report and send a PDF. All existing entries with a destinationtype of CSV have been converted to sourcetype Query and have had their query value moved from the reportqueueparameter table to the reportqueue.sourcequery field. | |||
* Changed: the event e_schedule_reports that generates reportqueue records from reportsubscription records now knows how to handle the new sourcetype field. Error handling is now specific to the sourcetype. | |||
* Fixed: f_get_all_ancestor_id was putting spaces after the commas. This is nice for human readability, but it breaks usage of FIND_IN_SET, which I think sucks, so I changed it. | |||
* Fixed: an issue where f_get_value_acceptability could throw an error if a non-existant product id was passed in. This function now computes the tree path of products using the shared f_get_all_ancestor_id and checks for a value in it using FIND_IN_SET, making it more standard. | |||
* Changed: saved search XML now allows 16 million+ characters instead of 65k characters, as some very large saved searches exceeded this. | |||
* Added: indices for speed to the lastmodified datetime on the analysisoptionvalue table as well as the name column on analysisoption. These will make certain common API operations faster. | |||
* Added: (PA-15) a useful stored procedure, p_format_analysis_results | |||
* Fixed: description for the API Token permission to note that the user needs the permission at Global level. | |||
* Fixed: an issue where negative 'hour offsets' was not working on alert rules. Negative offsets were supposed to mean 'hours after' expiration/due. | |||
* Fixed: PA-88: an issue where negative hour offsets in alert subscriptions would not process those alerts. | |||
* Fixed: PA-88: several issues where a document whose due date fell directly on a 5 minute multiple such as 11:00:00, it might get sent twice or not at all in some scenarios. | |||
* Fixed: PA-89: an issue where work orders that were done being collected (but not yet closed) would still send alerts for 'due date approaching'. Verification due date approaching type alerts can still be sent in this situation. | |||
* Fixed: (PA-107) an issue where 'bad' characters in the email address of an alert could cause collation errors when the database would attempt to process the event. This only happened if the character set of the tables and the character set of the stored procedures differed. p_edocument_replace_table_tokens now does an explicit CONVERT operation to cast table values into the connection character set to avoid this. We will also audit customer databases to ensure that all character sets match. | |||
* Fixed: (issue PA-114) an issue where e_data_clone_scheduler might fail to clone data during daylight savings if the server timezone was set to SYSTEM and a clone record was one hour behind the system timezone. This was due to a conflict between server DST and destination plant timezone DST causing an hour to be skipped during 'fall back' | |||
* Fixed: some historical updates have been made MySQL 8.0 compatible. | |||
* Fixed: several stored procedures and functions have been modified to be MySQL 8.0 compatible. | |||
* Added: (issue PA-85) log workorder.productbatchid | |||
==Analysis== | |||
* Added: as per request by advanced users, the 'verify' step of the 'test default value formula' popup dialog now has a button that allows the user to ignore mysql errors and save anyway if they know what they're doing. | |||
* Added: (FB-19614) there is now a 'show only applicable thresholds' checkbox in the inspect acceptability popup. This dialog can be launched either from the edit analysis screen or the sample detail page on sample history or WOs. This checkbox defaults to checked. When checked, any filter that is not currently marked as "Applicable" (IE one that is for a different plant, product, batch, severity, etc) will be hidden, making it easier to understand how the applicable thresholds applied. | |||
* Fixed: an issue where the severity dropdown in the inspect acceptability popup wouldn't display values until the plant was changed. | |||
* Fixed: an issue where the "N/A" option was mixed into the middle of the products and severity lists. | |||
==Common Resources== | |||
* Fixed: (case 60722) if the user is entering thresholds/choices and they change the option from text to number/integer/date, on save the system will attempt to 'reformat' the saved value based on the new value type. This avoids issues where users would enter text values like ">.25" as text, then switch to numeric. Previously, ">.25" would be saved, which would not work correctly. Now ">.25" will be reformatted to ".25" on save, which will work better. | |||
==Configuration== | |||
* Changed: user creation now allows user names up to 320 characters in length to facilitate logging in using email addresses, which can be quite long. | |||
* Changed: new users in the Pending Activation stage now default to a password encoding of PBKDF2 to avoid the (soon to be deprecated) MySQL Password option. | |||
==Investigation== | |||
* Added: (case FB-22730) investigation # is now displayed in the investigation history search. | |||
* Added: (case FB-22460) all of the 'long text fields' now allow themselves to grow to show a lot more text instead of a max of 10 lines. The height of the box will now be bounded by the size of the list. | |||
==ITMySQLConnection== | |||
* Fixed: (case 53807) an issue where, if a mysql connection was closed due to inactivity or server shutdown, the connection would silently auto-reconnect, but the first query run on the fresh connection would return no results. | |||
* Changed: minor updates to avoid features being deprecated by MySQL. | |||
* Changed: previously, if "usessl" in the configuration was set to False, the connection would stay in "SSL Preferred" mode, which would still attempt to negotiate an SSL connection, if possible, falling back on unencrypted connections. Now, if usessl is off, the connection will not even attempt to establish a secure connection. | |||
==Locations== | |||
* Fixed: (FB-22777) if the user gets a query error due to too long of a location during save, they will now see a user friendly error message. | |||
* Added: (FB-22777) before attempting to save, the location system will now compute the full location string for each item in the tree. If this value is too long to save, the user will be shown an error message telling them which location(s) need modified and save will be aborted. | |||
* Added: full locations are computed and set before save, making save operations faster. | |||
==Login== | |||
* Removed: support for old, insecure password encoding methodology that we have been moving away from for many years. Updating to support MySQL 8 require dropping support for this insecure password methodology. | |||
* Added: if a user attempts to log in to the application using the deprecated password encoding methodology, they will be shown an error message telling them that they cannot log in this way anymore and must now perform a password reset or contact someone who can reset their password. | |||
==Master== | |||
* Fixed: an issue where the logout vs close value wasn't being sent correctly. This was causing weird popups in some screens. | |||
==Product Management== | |||
* Changed: (case FB-25174) the product name and category fields are much wider. | |||
==Sampling History== | |||
* Added: (case FB-56863) a sample count at the bottom of the sample list. | |||
==Work Orders== | |||
* Fixed: (case 60707) an issue where the "this sample has created an investigation" icon would not show up if that investigation had not created any follow up samples yet. | |||
* Added: (case FB-52365) the user's selection on the date range filter on the 'automatic WOs' area is now remembered. | |||
* Added: (case FB-52352) newly scheduled WO clone schedules automatically copy WO title into schedule description. | |||
* Added: if the user makes a change to the filters while in the Automatic Work Orders area, they will be reset to the first page of results. | |||
* Added: (case FB-56863) a sample count at the bottom of the sample list. | |||
* Fixed: (PA-142) an issue where 'calculate once' defaults that came back as NULL or a blank string would not be put into any defaults that reference that value as NULL like expected. It was going in as blank string instead, causing some inconsistent behavior. | |||
* Fixed: an issue where 'calculate once' defaults that had been overridden with a user-entered value would not use the user entered value in the formulae for dependent defaults. | |||
==Reports== | |||
===Alerts (Alerts.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Analyses By Activity (AnalysesByActivity.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Analysis Change Log, Users/Groups Change Log, Investigation Trigger Change Log, & Product Change Log (ChangeLog.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Certificate of Analysis (CertificateOfAnalysis.rpt)=== | |||
* Added: (case 59695) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
* Added: (case PA-75) three new parameters to toggle whether to show location, product, and scheduled in Basic Sample Information. These new parameters have associated settings to set defaults. | |||
===Choices & Thresholds (ChoicesAndThresholds.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Contact Tracing (ContactTracing.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Control Chart (ControlChart.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Correlations By Analysis (CorrelationsByAnalysis.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Failed Results (FailedResults.rpt)=== | |||
* Added: (case 59695) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
* Fixed: (case PA-62) added an IFNULL to the section of the query that filters by “My Plants” | |||
===Investigation (Investigation.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Investigation Overview (InvestigationOverview.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Location Analysis Barcodes, Analysis Barcodes, Product Analysis Barcodes, Location Product Analysis Barcodes (Barcodes.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Location And Analysis Barcodes (LocationAndAnalysisBarcodes.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Percent Positive (PercentPositive.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Product Ingredient Report (ProductIngredient.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Product Log (ProductLog.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===QA Scorecard (QAScorecard.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Sample (0.66x2.1) (0.66x2.1_Label.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample (1.1x2.4_Label.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Sample Completion (SampleCompletion.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Samples By Analysis (SamplesByAnalysis.rpt)=== | |||
* Added: (case 59695) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
* Added: (case 59939) two new parameters & settings to set parameter defaults, allowing for inclusion or exclusion of Location and Product columns. Exclusion allows room for up to 9 options. optionheader and optionvalue subreports are both more dynamic. | |||
===Screening (Screening.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Suppliers By Ingredient (IngredientSupplier.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Testing Barcode (0.5x2.4LabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===User Status (UserStatus.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Verification Information (VerificationInformation.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Work Order (WorkOrder.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
===Work Order Barcode (0.66x2.1) (0.66x2.1_WOLabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Work Order Barcode (1.1x2.4_WOLabelWithBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Work Order Barcode (1.1x2.4con) (1.1x2.4con_WOLabelWIthBarcode.rpt)=== | |||
* Added: (case PA-51) time zone adjustment | |||
===Work Orders Summary (WorkOrdersSummary.rpt)=== | |||
* Added: (case 59905) time zone adjustment | |||
* Added: (case 52029) bottom corner logo | |||
* Fixed: (case 59905) x of y counter formula issues | |||
=Version 4.3= | |||
Revision 23277-23918 database version 430 | |||
==General== | |||
* Minor changes to lists to attempt to work around the crash reported in case 54051. | |||
* Various improvements to the installer file to modernize and fix many issues with dependencies and SSL certs. | |||
* Changed: when parsing column widths saved in the database, if values outside of a rational range (currently -1500 to 1500) will be ignored, and the default will be used instead. This is important because there was a short period in which random values were being saved as user column width preferences, which could make some lists hard to view/use when those preferences were loaded. | |||
* Fixed: an issue where column order/width would not correctly save for lists with a lot of columns. | |||
* Changed: users with very large list controls were finding it very slow to drag and drop items. To improve this behavior without removing precision, the longer the user drags a row in a list in the same direction, the faster the scroll will be. | |||
* Fixed: there was a report that tooltips were not working inside popups. The tooltips would only show if you alt+tabbed away and back, forcing the main window to be focused instead of the popup. This has been fixed | |||
* Fixed: several improvements made to screen based tooltips, including piercing through transparent overlapping windows. | |||
* Added: all top level windows in the application will now respect the windows user's 'darkmode' vs 'lightmode' setting with regards to the title bar. | |||
* Added: the Icon Button and Split Button now properly render if the user has windows high-contrast themes on. | |||
==Database== | |||
* Fixed: an issue reported by users where a database error could be thrown if a particularly large list control attempted to save its column order/widths to the `columnorder` table. Maximum column width increased from 200 to 1024. | |||
* Fixed: (case 54020) an issue where investigation rules of the form "at least x failures in 24 hours" might result in more than one value being shown if the user entered values contained commas. Now, a less common separator is used to tell where one user value ends and the next begins. | |||
* Fixed: an issue where p_find_applicable_documents could throw a mysql error if an invalid productid were passed in as an argument. Now it handles this case correctly. | |||
* Changed: p_set_setting is now compatible with NULL values being passed in for the cascade argument since this flag is not really used. | |||
* Fixed: (case 57019) an issue where p_get_subtree might not work right if a CSV of inputs were passed in. | |||
* Removed: (case 57497) audit logs no longer log changes to useraccount.passwordsalt or passwordkey because when the database is utf8, we can't put binary data into the log tables. | |||
* Fixed: (case 58262) a minor adjustment to t_useraccess_pre_update trigger to no longer check for firing events when a user keeps a session alive, as it causes unnecessary work. | |||
* Fixed: minor issue where analysis print quantity overrides referenced the idea of global values which was not implemented. | |||
* Added: (case 59566) support for alert subscriptions of type 'Sample' with timing 'Expiration Approaching' to send alerts a given number of hours before sample due date occurs. | |||
* Added: (case 59810) two new permissions for controlling access on the new configure subscription alerts UI. | |||
* Added: p_clone_data now accepts a TIMESTAMP argument that represents the effective moment of cloning. This is useful so that calling code can clone data effectively in the past, depending on schedule needs. This allows re-running a previous scheduled clone and have a WO be back-dated appropriately. | |||
* Added: (case 59840) p_clone_data now forward/back dates all cloned data using the UTC timezone to avoid any errors or time ambiguity that could occur due to daylight savings time changeovers. | |||
* Added: (case 30668) new permission for the feature of bulk-closing of WOs. | |||
==CommonResources== | |||
* Fixed: (case 54879) an issue where entering a new analysis option choice value, then selecting a new option or analysis immediately could lead to a crash. | |||
* Fixed: (case 55162) an issue where value defaults that 'cascade' through a chain might not show the right values if the user changed a root value that cascades through default calculations. | |||
==Analysis== | |||
* Added: store specific analysis fields now display with an "*" in the label. | |||
* Fixed: an issue where sampling/testing print quantities were not being permissioned to the plant correctly. They now follow the same editability of the In use at plant column. | |||
* Fixed: a minor issue where a plant code could've been cut off in the "Show X analyses not in use at plant XXXX" | |||
* Changed: the editability of the "global" checkbox used to be controlled by whether the user had Global level permission to edit analyses. Now, they simply have to have permission to edit the analysis at all plants that analysis is currently in use. This more closely matches the modern view of analysis editability. | |||
* Fixed: an issue where the "All" option was missing from the analysis dropdown in the "recalculate sample values" popup. | |||
* Fixed: an issue where the "*All*" options were not at the top of the analysis/plant/location dropdowns in the recalculate sample values popup. | |||
* Fixed: an issue where the "Test thresholds" button would not allow the user to choose a value from the dropdown if they were testing a "Choice" type option. | |||
==Configuration== | |||
* Fixed: an issue where the user's selection of default analysis on work order types would not be remembered when they left the field. | |||
* Changed: (case 58984) in the edit users area, previously one could see/edit other users if the admin's plant list overlapped at all with the other user's plant list. Now, the other user's plant list must be a subset of the admin's plant list. This prevents an administrator from being able to modify other administrators who have access to other sites. If the user has the configure users permission at the "Global" level, this restriction is ignored, same as before. | |||
* Removed: some unused duplicate resources from this extension that were conflicting with the WOs dll. | |||
==CrystalReportsExtension== | |||
* Changed: to avoid confusion, the "Favorite" checkbox in the "Choose report to print" popup has been replaced with a star icon. This dialog appears if there is more than one report option when performing a print job. This will make it clearer that the user is simply choosing a favorite, not checking which report to print. | |||
==Documents== | |||
* Fixed: an issue where picking an analysis in the analysis dropdown of the associations page would switch back to "All Analyses" | |||
==Investigation== | |||
* Fixed: (case 59536) an issue where investigation configuration did not show a "All" option in the dropdown for plants. | |||
==Locations== | |||
* Merged: a fix for boxes and text not associated with a location not deleting correctly. | |||
* Fixed: (case 59688) an issue where the locations screen might crash if the user did not have 'view map' permission at any plants and clicked the edit tags area. | |||
* Fixed: (case 59688) an issue where the user could click the + add map button if they did not have access to any plants' maps. Additionally, the edit and delete buttons now grey out if no map is selected. | |||
==Login== | |||
* Fixed: an issue where users were allowed to proceed with password recovery on accounts that had no recovery email set. The grace period on this has ended, if any account has not had a recovery email set at this point, to recover their password they must talk to support or administration at their own company (depending on security settings). | |||
* Added: the password recovery email template now has information about the computer/install at which the reset attempt was initiated from to make it more trackable if a malicious third party is locking accounts by beginning a recovery attempt on them. | |||
* Added: if the security setting "Passwords: minimum count of online breaches to restrict passwords at" is set to "N/A" or a negative value, the user will be warned but not restricted on this system. | |||
* Changed: the password recovery popup has had several labels reworked to make the password recovery process more obvious. | |||
==Master== | |||
* Fixed: an issue where clicking the 'close application' box would prevent change detection messages from appearing for any open screens. | |||
* Removed: an old "Are you sure you want to close" confirmation popup on application close that had been broken for awhile. | |||
* Added: if the user has windows dark mode turned on, the application title bar will now show dark. | |||
* Added: a file with additional manifest settings to be merged into the application manifest. This added explicit compatibility sections, which is supposed to enable some windows features. | |||
==Product== | |||
* Fixed: (case 54115) an issue where products/ingredients hidden based on the current filters might keep the system from warning about duplicate items. Also, now the popup will say whether the duplicate is a product or an ingredient. | |||
* Fixed: (case 54115) top-level products and ingredients now collide on duplicate name. | |||
* Changed: duplicate products and/or ingredients now only alert the user to the duplicate if one of the records has been modified. | |||
* Fixed: (case 59042) an issue where copying a product tree before opening the Specifications tab would cause associated specifications to not be copied. | |||
* Fixed: a possible crash if the user deleted a product with specifications without opening the Specifications tab first, then navigated to that tab. | |||
==Reports== | |||
===Analyses By Activity (AnalysesByActivity.rpt)=== | |||
* Fixed: (case 58544) SQL: analysiscatopt parameter name corrected to analysiscat | |||
===Control Chart (ControlChart.rpt)=== | |||
* Fixed: (case 54248) report now filters out any empty strings that find their way into the numeric analysis options it handles | |||
* Added: (case 56491) a new parameter that can exclude chart datapoints more than <x> standard deviations from the center. The excluded points are not excluded from tests. | |||
===Failed Results (FailedResults.rpt)=== | |||
* Added: (case 57986) an option to show "my plants" to the plant parameter | |||
===Sample (1.1x2.4_Label.rpt)=== | |||
* Added: (case 54938) a new setting to control which date is displayed | |||
* Changed: (case 54938) adjusted date display setting, and report now respects the date format setting | |||
===Sample (0.66x2.1) (0.66x2.1_Label.rpt)=== | |||
* Added: (case 54938) date display setting | |||
===Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)=== | |||
* Added: (case 54938) date display setting, and report now respects the date format setting | |||
===Samples By Analysis (SamplesByAnalysis.rpt)=== | |||
* Added: (case 55253) a new setting to include lot. Lot replaces the 7th option when 'True' | |||
===Work Order Copy Barcode (Label) (1.1x2.4_WOCopyBarcode.rpt)=== | |||
* Changed: (case 54132) conditional size formatting to the barcode based on barcode length | |||
===Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)=== | |||
* Changed: (case 54132) conditional size formatting to the barcode based on barcode length | |||
==Sampling== | |||
* Fixed: (case 58477) an crash that could occur when loading a saved search created in an outside system that contains filters the screen does not know about. | |||
* Fixed: (case 58647) an issue where searching by schedule name was potentially returning more results than desired. | |||
==Updater== | |||
* Added: the Updater.exe is now built with the same manifest settings as ITrack.exe, namely assembly identity and explicit operating system compatibilities. | |||
* Added: (case 59196) the updater now detects the current windows operating system version as part of updating to detect available windows features. | |||
==Work Orders== | |||
* Added: the plant specific "In use" column is now denoted with a * to show that its plant specific. | |||
* Added: support for passing a new argument to p_clone_data for effective data clone time. It defaults to the current date/time. | |||
=Version 4.2= | |||
Revision 23187-23276 database version 420 | |||
==General== | |||
* Changed: all application files are now versioned, which allows keeping track of whether any given files were loaded that were built for the wrong application version. | |||
* Added: the help->about box now shows the database version as well as the product version. | |||
* Added: the help->about box now shows the product version each file in the application were designed for and ones that don't match the product version are shown in red with an attention icon. | |||
* Changed: the Help->About dialog no longer looks for a file called ITrack.exe and instead reads the product version from the main module itself in memory, in case the application ever uses a renamed entry point file. | |||
* Changed: if the user closes the application or it fails to load before its visible, the application will no longer overwrite the 'last' size/position of the application in settings. | |||
* Added: during loading extension modules, the product version of each file is now checked. If the major version of a loaded module does not match the master module, it will be put in a popup for the user to alert them to this (potentially) erroneous state. | |||
* Added: so that users can avoid seeing this popup on every launch, the popup has a "don't show this message in the future" checkbox. If checked, all those *specific* files at those versions will be remembered for that user. If any new files (or existing files at new versions) are seen later, they will be shown to the user again. The user can choose to continue loading all modules (previous behavior) despite the version mismatch, load only those modules whose version matches (skip bad files), or close the application. | |||
==Database== | |||
* Changed: (case 51314) investigations should no longer trigger on values that are blank, either explicitly entered by the user or implicitly created. | |||
* Changed: (case 51314) alert subscriptions that 'require acceptable' no longer trigger on values that are blank, either explicitly entered by the user or implicitly created. | |||
==Analysis Management== | |||
* Changed: the list column size/order is now stored differently for the analysis management screen from the recipe management screen. Before, resizing or hiding columns on one affected the other. | |||
* Fixed: showing/hiding columns is now remembered when the user closes and reopens the screen. | |||
* Changed: recipe columns no longer show as 'hidden' columns that can be unhidden for environmental/Q&A analyses and vice versa. | |||
* Changed: as per user request, minimum automatic resize for the analysis name column has been made 50% larger. | |||
* Fixed: an issue where opening both the analysis management screen and the recipe management screen at the same time might cause column order to not save correctly. | |||
* Changed: if the selected option is not 'Choice' the 'required option' column in the thresholds page cannot be unhidden. | |||
==Home== | |||
* Performance: to show information on the home tabs, sample values are no longer loaded. This speeds up load operations, especially at plants with very large work orders. | |||
==Products== | |||
* Changed: the list column size/order is now stored differently for the analysis management screen from the recipe management screen. Before, resizing or hiding columns on one affected the other. | |||
* Fixed: showing/hiding columns is now remembered when the user closes and reopens the screen. | |||
* Changed: recipe columns no longer show as 'hidden' columns that can be unhidden for environmental/Q&A analyses and vice versa. | |||
==Reports== | |||
===Analyses By Activity (AnalysesByActivity.rpt)=== | |||
* Added: (case 51616) a new report that lists analyses that were last sampled on or before a specified cutoff date | |||
===Work Orders Summary (WorkOrdersSummary.rpt)=== | |||
* Added (case 51715): a new report to show an overview of work orders, similar to the Verification List page | |||
==Work Orders== | |||
* Fixed: an issue where saving values that caused more than one follow up (investigation) document would not correctly display all document ids. | |||
* Added: double-clicking items in the scheduled WOs list now opens that WO's detail on the WO screen. | |||
* Changed: double-clicking items in the template/favorite WOs list now opens that WO's detail on the WO screen instead of scheduling that WO. This will make it easier to review document details. | |||
=Version 4.1= | |||
Revision 22817-23186 database version 410 | |||
==General== | |||
* Fixed: the about box could show an error if the 'credits' url in the host.ini file was blank. This could lead to bad behavior in particularly corrupted or empty ini files. Now the user will be taken to the default URL. | |||
* Fixed: a possible crash that could occur in a list control if going to the bottom of the current page of results if they didn't fill the screen. | |||
* Fixed: a crash when Resizing a column outside of the boundary of the column count. | |||
* Fixed: an issue where release builds were linking against mysql 6.1.5 instead of 6.1.11 | |||
* Fixed: an issue where blank Time-only list control cells would be automatically turned into 'current time'. | |||
* Fixed: another issue where midnight "12:00 AM" would not be handled correctly in time-only list control cells. | |||
* Fixed: (case 51470) an issue where popups were being restricted to the primary monitor instead of the monitor of the window that launched them. Now they should be centered by default over the window that created them. | |||
* Fixed: (case 51470) an issue where popups that 'remember' their last position could not restore a location that was on a secondary monitor correctly. | |||
* Added: Column Tree Controls now support column header tool tips. | |||
* Fixed: (case 51708) an issue where dropdowns in a list control on windows 11 might not look quite right. In addition, dropdowns in the first item might flicker unnecessarily. | |||
* Fixed: a rare issue where, when a list edit/dropdown/date picker/etc disappears, the list cell behind it might not draw correctly. | |||
* Fixed: date/time controls in list controls would 'revert' their input when the user hit escape, but would not hide correctly. Now the date control will be hidden correctly. | |||
* Added: the 'filter' box in the configure global settings popup now uses a timer to wait for the user to stop typing before searching. | |||
==Database== | |||
* Fixed: some databases failed to run an update from version 2.1 because they had negative values in the work order type table. These values have been set to 0 and the update reapplied. | |||
* Updated: right-click graphing template should no longer encounter a JS error if loading the google charts library takes too long. | |||
* Fixed: several queries that failed to run during 3.8 for some systems have been re-released and updated. | |||
* Fixed: an issue where the nightly event that extends schedules into the future would not correctly handle the expiration of a schedule (when set). | |||
* Fixed: the stored procedure that extends a schedule into the future now aborts if the start date of a schedule is invalid, this should avoid invalid rows being created. | |||
* Added: (case 50599) support for work order types to control whether location descriptions are shown on WOs and sampling history. | |||
* Fixed: an issue where duplicate import commands were allowed. | |||
* Added: (case 50708) many new features to automatic follow up retests on investigations. | |||
* Added: (case 50709) support for choosing a severity class on plant-specific investigation trigger rules. | |||
* Added: (case 50709) automatic investigation triggering now supports severity classes for restricting triggering sites as well as population considered for general electric rule computation. | |||
* Added: drawmap.active and drawmap.useforinvestigationexpansion. Active will support hiding old versions of maps, and 'use for investigation expansion' will allow toggling whether specific maps will be considered when computing 'nearby locations' when expanding investigations to nearby sites. | |||
* Fixed: (case 51013) an issue where cloned WOs that also cloned values might cause the 'value modified' pencil icon to appear erroneously when blank values initially got filled out. Now, the date filled out will not be set on blank values that get cloned. | |||
* Added: (case 51244) f_expand_location now ignores all location(s) on the same map(s) that have a different severity class assigned. This means retest locations will be restricted to nearby locations that share a severity class with the original sample location. | |||
==Crystal Reports== | |||
* Added: (case 51309) a popup dialog that appears during printing if the chosen printer does not seem to be valid. The user is told what error windows returned and are presented with the list of valid printers to choose between. The user is allowed to 'remember' this selection for future prints. This is important because previously, if the user had an invalid printer name saved as a default, print jobs might fail, but no error message would be shown. | |||
==Data Management== | |||
* Fixed: crash when going to a page of results other than the first. | |||
==Analysis Management== | |||
* Fixed: (case 48997) an issue where saving a newly created Rule on an option, then switch analyses and switching back might lead to a situation where the tags on the rule would appear duplicated. | |||
* Fixed: (case 48998) an issue where the active checkbox on option rules would not save or load the current value correctly. This lead to all rules always being active, and the user had no way of deactivating them except deleting them. Now, this column will correctly reflect whether it is active. | |||
* Added: (case 48962) a resizer bar for the scheduled analysis plans page for giving more or less room to the schedule management and location scheduling tabs. | |||
* Removed: (case 48962) A copy button that was part of the design but was never implemented. | |||
==Common Resources== | |||
* Added: (case 50599) support for work order types to control whether location descriptions are shown on WOs and sampling history. | |||
==Configuration== | |||
* Added: (case 50599) support for configuring a new field on work order types that controls whether location descriptions are shown. | |||
==Graphing== | |||
* Added: some extra code to the right-click graphing template that will keep waiting to render the chart until the google charts library finishes loading. | |||
==Home== | |||
* Fixed an issue where the auto-refresh boolean was not initialized, which could cause home pages' auto-refresh behavior to be slightly random. | |||
==Investigations== | |||
* Added: (case 50708) support for several new features on automatic follow up retests on investigations. | |||
* Added: (case 50709) when an investigation rule is selected, there is now a severity class dropdown, which supports limiting the location that triggers investigations to just ones that have that severity class. | |||
* Added: on investigation triggers, locations and severity classes are mutually exclusive, and UI should now reflect that. | |||
* Added: support for severity class in automatic investigation descriptions. | |||
* Fixed: an issue where using the pagination controls might not stop you if you got to the last page. | |||
==Locations== | |||
* Fixed: an issue where the product proximities and process zones were loaded after locations, causing the location tree to sometimes not have the correct names in the location tree for those columns. | |||
* Changed: description edit now has linewrap on. | |||
* Added: a small text prompt next to the add image box that tells the user that double-clicking is now required to select background objects such as images. | |||
* Added: the ability to toggle the visibility of background objects on the map, as well as hide locations that have no samples on the visualization tab, and hide locations that aren't currently being animated on the visualization tab. | |||
* Fixed: a possible crash on the visualization tab if the user had grouped results and then toggled the "hide results with no locations" checkbox. | |||
* Added: selection on the visualization tab will no longer be lost if the user changes group by or toggles hiding results with no locations. | |||
* Changed: animation on the visualization tab now selects the next result in the next group if the user started with a result selected. If the user starts animation with a group selected, it will continue to select each group in turn. | |||
* Added: support for showing/hiding locations based on the user's choice of 'show locations with no results' and 'show only focused animation location'. | |||
* Changed: if the user cannot add background items, the 'tip' text in that area is now hidden; and the other buttons are now moved into that area. | |||
* Changed: when the add background images controls are hidden, the other controls are scrolled into their place. | |||
* Changed: the show/hide options that were related to the visualization page have been moved from the main "Show Map Items..." dropdown into a new dropdown on the visualization page. | |||
* Added: the visualization page is now a scrollable page since there can be a lot of controls on this page. | |||
* Changed: the 'color results based on selection only' and 'hide results with no location' options are in the visualization options dropdown. | |||
===Image Handling=== | |||
* Added: Crop function for cropping images to a given client rectangle. | |||
* Added: ZoomInArea function for cropping to a zoomed in zone and scaling it to a given bounding rectangle. | |||
* Fixed: ScaleTo did not update the dimensions of the image after scaling it. | |||
* Changed: ScaleTo no longer performs any operation if the sizing did not change. | |||
===Draw View=== | |||
* Added: images now use the OpenIL image library to interpolate/scale images when the user stretches or zooms. This causes the images to be much easier to view when zoomed out. | |||
* Added: rendered images are now cropped to the currently visible viewport. This reduces total image drawing, and should hopefully lower memory consumption and speed up the screen. | |||
* Changed: by default, single clicks will no longer select 'background objects' such as an image. Double-click can now be used to select these items which are less commonly chosen. | |||
* Changed: if the user clicks and that click could either be the currently selected item (or its tracking box) or another object, it will always prefer the currently selected item. This should make dragging items easier once they've been selected. | |||
* Fixed: an annoying issue where attempting to resize or move objects via the tracking box would sometimes deselect the current object instead of tracking the object. | |||
* Added: draw objects now have a shown flag that can be toggled. | |||
* Fixed: a minor issue where invalidating a rectangular object, sometimes a pixel of data might not get redrawn correctly on the edge. | |||
* Added: support for suppressing background objects. | |||
==Login== | |||
* Fixed: an issue where the login dialog would not correctly follow the main window to other screens. | |||
==Reports== | |||
===Failed Results (FailedResults.rpt)=== | |||
* Fixed: (case 51159) Include Invalid parameter to filter the correct thing. | |||
===Testing Barcode (0.5x2.4LabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Location Analysis Label (0.66x2.1) (0.66x2.1_LALabel.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Copy Barcode (0.66x2.1) (0.66x2.1_WOCopyBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Barcode (0.66x2.1) (0.66x2.1_WOLabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Copy Barcode (Label) (1.1x2.4_WOCopyBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Barcode (1.1x2.4_WOLabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Location Analysis Label (1.1x2.4con) (1.1x2.4con_LALabel.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order Barcode (1.1x2.4con) (1.1x2.4con_WOLabelWIthBarcode.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Location Analysis Barcodes, Analysis Barcodes, Product Analysis Barcodes, Location Product Analysis Barcodes (Barcodes.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Location Analysis Label (LALabel.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Location And Analysis Barcodes (LocationAndAnalysisBarcodes.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
===Work Order (WorkOrder.rpt)=== | |||
* Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes | |||
* Changed: (case 50500) updated new preamble/postamble setting to plant level | |||
==Sampling== | |||
* Added: show/hide settings for location map are now stored separately from the same preferences on the location screen, since visualization preferences on these two screens have different purposes. | |||
* Fixed: an issue where the product batch dropdown didn't properly respect the chosen plant(s) for what was available in the dropdown like the other dropdowns. | |||
==Work Orders== | |||
* Fixed: tab order issue with the verification due date. | |||
* Added: support for copy/paste in all date or date/time controls. | |||
* Fixed: an issue where mass-setting samples to cancelled could lead to lockups on large work orders. | |||
* Added: cancelling samples now locks them similar to closing them. In addition, closing a WO will no longer mark cancelled samples as Closed. | |||
* Added: historically, if an option was inactive but had already been filled out, it would be visible. This is now true again. An option that is inactive but is filled out will be shown, but be readonly. | |||
* Fixed: an issue where saving values that caused more than one follow up (investigation) document would not correctly display all document ids. | |||
=Version 4.0= | |||
Revision 22671-22826 database version 400 | |||
==Shared== | |||
* Performance: removed a lot of the 'guard rails' on list control operations. This was taking as much as 40% of the time to load a bunch of stuff onto Presage' sampling history. | |||
* Performance: skipping some invalidation of the list control when redrawing is locked. This speeds up intensive load operations somewhat. | |||
* Performance: optimized several high-traffic areas in the list control. | |||
* Added: Property Sheet now has support for icons/bitmaps in property page tabs | |||
* Added: if the user uses a hotkey to activate a property page, it should now correctly set focus into that page. This only happened in some scenarios before. | |||
* Fixed: depending on where the user's focus was, hitting a hotkey (alt + <key>) to activate a property page or button might not work correctly. This would occur in situations with 'nested' property sheets, when the user's focus was in a child sheet. Now those hotkeys should 'float up' to be handled by parent sheets and forms. | |||
==Database== | |||
* Fixed: (case 47532) an issue where f_get_attachment_data would not work for attachments larger than 16 MiB. Now it should work on files up to 4 GiB. | |||
* Added: an index to help improve the speed of in import as a vanilla index. | |||
* Added: a unique index on option name was missing on many customer databases. | |||
* Fixed: (case 47667) an issue where analysisoptionvalue.filledout was not correctly set on historical option values due to a mistake in an update trigger. The trigger has been corrected, and a set of queries run that should correct historical data. | |||
* Fixed: (case 48138) analysis option restriction rules where more than one tag had to be Present were incorrectly firing if at least one of the tags were present, but not all of them. Now, all the required tags must be present for the rule to be triggered. | |||
* Fixed: (case 29098) blank option values (not filled out) are now treated as 'acceptable' instead of comparing it to user thresholds. Previously, numeric values that were not yet filled out would be considered '0' and could be unacceptable or out of bounds due to that. | |||
* Fixed: an issue with f_get_value_acceptability not returning 'Allowed' when no rules were matched. | |||
* Added: (case 48703) when a WO is cloned, if any samples on the template were from a 'scheduled sample plan', the copied samples will randomize their locations on the same scheduled sample plan. This means that each sample will pick a random location in the list of required locations that has not yet been sampled in the current schedule period (day/week/month/etc). If all locations have been sampled in the current period, locations will be randomized across the entire sample plan. However, the system will avoid randomly choosing the same location more than once on the same WO. | |||
* Added: two new permissions for whether a user can view or edit plant maps. These permissions have granted new granularity to what used to be controlled by the configure locations permission. Both of these permissions default to whether a user was allowed to open the location screen, as it historically had modification access. | |||
==Common Resources== | |||
* Fixed a column only allowing 50 characters even though the database has been expanded to allow 100. | |||
* Fixed: a crash that could occur if you close the settings page with nothing selected. | |||
* Added: calling Set Readonly on a EditTagsPage before it has been initialized will now be 'remembered' until the page is initialized. | |||
==Analysis== | |||
* Fixed: an issue where the location tree in the analysis scheduling page would show locations at all plants instead of the currently selected plant. | |||
* Fixed: an issue where viewing the analysis scheduling page with 'show expired schedules' unchecked would still show expired schedules. | |||
* Fixed: a possible crash that could occur when deleting a schedule if there were scheduled locations for that schedule at more than one plant. | |||
* Fixed: an issue where the 'location count' in the scheduled analysis list might show a count at all plants instead of just the current one. | |||
* Added: the 'schedule management' and 'scheduled analyses' pages have been combined into one for easier schedule management. This tab is now called 'Scheduled Analysis Plans'. | |||
==Crystal Reports Extension== | |||
* Changed: (Case 48271) the printer name dropdown in the advanced print dialog is wider now to facilitate very long printer names. | |||
==Data Management== | |||
* Fixed: an issue where, after doing an import, the user might be presented with a negative number of unchanged rows if the number of new/updated rows exceed the number of rows in the input file. | |||
* Fixed: an issue where doing an import against a table that had a column name or column comment with the reserved word 'constraint' would cause the import to fail. | |||
==Investigation== | |||
* Fixed: an issue where sending investigations to the location map would not work correctly | |||
==Locations== | |||
* Fixed: (case 48439) an issue where the attachments buttons were not working. | |||
* Changed: the location map has been moved into a property page on that screen so that it can be more easily embedded in other screens. | |||
* Added: flag ALLOW DRAW, if absent, the ability to enter RECT or TEXT mode are suppressed and drawing new objects is removed. | |||
* Added: flag ALLOW MOVE VIEW, if absent, the ability to enter MOVE or pan the window around is suppressed. | |||
* Added: flag ALLOW RESIZE, if absent, the ability drag objects around or resize them is suppressed. | |||
* Changed: the middle mouse entered a standard 'pan' view mode before, but it was flakey, so it has been suppressed. Now, while the user depresses the middle mouse, they temporarily enter the 'move/pan' mode and can drag the window, no matter which mode they're in. | |||
* Fixed: an issue where right clicking and moving the mouse while in zoom mode might break the ability to zoom out with right click. | |||
* Fixed: an issue where the zoom cursor was not displaying correctly. | |||
* Changed: if the draw view is in readonly mode, the 'tracker' boxes around an object will no longer display resize boxes on the corners. | |||
* Added: if the draw view is in readonly mode, the pop up edit box for clicking into a text object will no longer be editable. | |||
* Fixed: an issue where the zoom cursor was not displaying correctly. | |||
* Fixed: an issue where selecting no location object was not clearing the location and tag detail information. | |||
* Added: tab icons to the various tabs on the screen. | |||
* Added: support for being in a 'readonly' mode in the location screen. This allows viewing locations without being able to edit location information or drawn objects. | |||
* Fixed: typing to filter the location tree would remove the user's selection. Now it persist between refreshes. | |||
* Fixed: a potential crash when visiting the page with no plant selected. | |||
* Fixed: an issue where sending samples from multiple plants to the visualization page might not correctly load up location names | |||
* Added: when the user clicks on a sample in the visualization page, the correct plant will now be selected for that sample. This is important for multi-plant result sets. | |||
* Added: when the user clicks on a sample in the visualization page, the most recent map at that plant that contains the location will automatically be selected. | |||
* Added: if plant is changed and no default map is set in the user preferences, the most recent map at that plant is automatically selected. | |||
* Fixed: an issue where the wrong initial plant might be selected. | |||
* Changed: the maximum animation delay has been reduced from 10s to 2.5s. | |||
* Changed: the label on the animation speed slider has been changed to animation delay to make its use more accurate. | |||
* Added: if the user deselects all items on the visualization page, any selected locations on the map will be deselected. | |||
* Added: the location screen now looks at two new permissions: "can view location maps" and "can edit location maps". The list of plans on the location management screen is now based on what plants the user can view location maps at instead of what plants they could edit locations at. When a plant is selected, if the user does not have map edit permission, all draw map controls are locked down, but it can be viewed and visualization can be done. If the user doesn't have configure locations permission, the location editing area will be readonly. | |||
* Changed: the copy locations button is now usable if locations at a plant are readonly to facilitate copying from a plant that is read only. | |||
* Changed: the copy/delete/cut locations buttons now grey out if nothing is selected. | |||
* Fixed: several crashes related to load order. | |||
* Fixed: issues with no plant or no map being selected if items were sent to visualize as the screen was opened. | |||
* Changed: minimum animation delay on the visualization tab has been decreased to 100 ms, and each 'tick' is now a quarter second to allow finer control. | |||
* Fixed: an issue where switching maps could cause locations shared between two maps to be deleted from other maps. | |||
* Changed: the 'toolbar' popup now has a maximum and minimum size so that the user cannot accidentally make the box very large by changing settings. | |||
* Changed: animation speed bar changed to allow up to 5s delay between steps (up from 2.5s) and each 'pip' is now back to 1/2s instead of 1/4s. | |||
==Report Viewer== | |||
* Fixed: an issue where the parameter list would annoyingly scroll to the side when the user clicked in a value field if there are enough parameters for a horizontal scroll bar. | |||
==Reports== | |||
===Analysis, Users/Groups, Investigation Trigger, Product) Change Log (ChangeLog.rpt)=== | |||
* Added: (case 47874) analysisoptionrule and analysisoptionruletag logging to the Analysis mode of the change log report. Tag is displayed in the choice/threshold column when present. | |||
* Changed: (case 47875) major query revamp for improved performance. Fewer conditional JOINs, CASE, and conditional WHERE clauses; more UNION ALL. | |||
* Fixed: (case 48718) a query error causing the Category: Analysis parameter to be ignored in some report modes, including Analysis Change Log | |||
===Location Analysis Label (LALabel.rpt)=== | |||
* Changed: (case 47200) made barcode respect the align barcode setting | |||
==Sampling== | |||
* Added: when results are being loaded, each referenced plant will have all its locations loaded to prevent queries being run for every result's location. | |||
* Changed: (case 48456, case 46289) the 'rule' test queries are now run in batches of 1500 because MySQL can throw errors if there are lots of UNIONed queries in one request for some reason. | |||
* Fixed: several speed improvements to sampling history loading, particularly when building large numbers of queries to test option visibility rules. | |||
* Performance: (case 48452) made several passes at sampling history search to improve load speed. These changes cut out as much as 50% or more of load times. | |||
* Performance: optimized sample history searches, gaining as much as 50% of load time on large searches. | |||
* Changed: column addition/removal now happens before item loading for speed. | |||
* Fixed: an issue where unchecking 'show options and values' did not correctly hide labels in situations where there was more than one analysis type loaded. | |||
* Added: a new icon for the sampling history screen. | |||
* Fixed: issues where the saved search page was cleared and re-filled on every search, slowing down searches slightly and causing unnecessary flickering. | |||
* Added: user's selection in the saved search page will now persist between refreshes, and the first saved search will automatically be selected on load. This helps keyboard navigation, as the user can arrow to the desired quick search and hit enter to perform it. | |||
* Moved: Sample Detail and Graphing have been moved from children of the sample history page to top-level tabs, giving them more space when active. | |||
* Renamed: Sample Detail to Search Detail, and added a hotkey to the "D" for quick navigation back and forth. | |||
* Added: when a search is performed, the user is automatically moved to the sample detail page, and their focus is put into the first item in the list, so they can quickly navigate with the arrow keys and hit enter to open the sample in question. | |||
* Fixed: several issues where tab-order of controls was out of order, causing complication when using the keyboard to navigate the page. | |||
* Changed: the 'search criterion' has been moved below the quick search page. | |||
* Added: the 'drag bar' between quick search and criterion now remembers its last position as a user preference. | |||
* Added: accelerator hotkeys to the Quick Search (alt + Q) and Search Criterion (alt + C) tabs to make keyboard navigation easier. Also added a hotkey to the Sample Search tab as well (alt + S), which makes coming back from the Search Details page to perform a new search easier with the keyboard. | |||
* Added: the location map page to the screen. This shows the same location map as the locations screen, but in readonly mode. | |||
* Changed: the visualization page is now first on the location map screen. | |||
* Fixed: a potential crash related to the location map screen. | |||
* Added: after a saved search is executed, if the location tree tab is visible, the visualization tab will be made active. | |||
* Added: support for automatically displaying all current sampling results on the visualization tab. | |||
* Removed: the clear and search samples buttons are now hidden in the location map. | |||
* Added: clearing search now correctly clears search results and items on the location map. | |||
* Added: clear search button to the search results page. Clicking this will take the user back to the perform search page. | |||
* Added: alt + c accelerator hotkey to clear current search results, for easier keyboard navigation. | |||
* Added: now, every time a search is performed, focus is put into the search results list. Previously, the user's focus might stay on another control, making it hard to navigate search results with keyboard only. Now, the user should be able to successfully perform a search, select items, clear a search, and perform another one with the keyboard only. | |||
* Fixed: an issue where restoring a saved search filter would not be able to select the correct analyses if "show testing analyses" or "show production analyses" were unchecked. Now, when a sample filter is loaded, if a production analysis is involved, "show production analyses" checkbox is checked; if a testing analysis is involved, "show testing analyses" checkbox will be checked. | |||
* Fixed: resizing issues with the 'previous/next page' area underneath the sample list. This should now resize to not overlap any other controls. Also, if the user's resolution is small enough that the next/prev buttons cannot fit with the labels, the labels are hidden. | |||
* Fixed: an issue where clearing a search when the user was on the second page of results would not correctly hide the prev/next page controls until after the next search was performed. | |||
* Fixed: an issue where adding a new sample via the sampling history UI, then immediately performing a new search could cause a crash. | |||
* Fixed: an issue where the 'copy locations' button would still be visible on the configure locations area even when the screen was embedded in 'view only' mode. | |||
* Fixed: timing with how items were loaded onto the map, which could lead to item selection or color issues. | |||
* Fixed: an issue where location colors could persist after a new search had been performed or search results were cleared. | |||
* Added: every time a search is performed, the next time the user goes to the location map screen, focus will automatically be set to the visualization page. This makes keyboard-only navigation much easier, as the user can immediately arrow through the results upon arrival. | |||
* Changed: the animate button on the location visualization screen is now a 'push style' checkbox. This means it is more obvious that the button is 'depressed' while animating. | |||
* Added: 'show items with locations only' in the location visualization screen. Checking this box hides all sample values that are not associated with any locations to make the list trimmer and easier to navigate. | |||
* Fixed: a crash related to clearing results from the location map. | |||
* Changed: visualization page now tries harder to ensure the animate button and animation delay slider are visible on smaller resolution screens. | |||
* Fixed: a crash related to doing a second search with no results after sending results to the map. | |||
* Added: if the user hits 'save' to modify any samples on the sampling history screen, the items on the location map are refreshed to reflect the new location/value/acceptabilities. | |||
* Fixed: an issue where, if the user swapped between maps while animating results, location colors would not refresh correctly. | |||
* Fixed: an issue where performing a search might clear out the search criterion before displaying results. | |||
* Fixed: a crash that could occur if the user's focus was in a 'new' added sample (unsaved) then a new search is performed. | |||
* Added: as the user clicks on different locations in the location visualization page (or through animation) the desired location is now centered in the view, if possible. | |||
==Work Orders== | |||
* Fixed: (case 47881) an issue where the time of day column incorrectly showed 12:00 AM on all previously saved WO schedules. This could cause incorrect saving if the user made any changes to other fields on the row. | |||
* Fixed: an issue where manually adding samples to a WO with a analysis/location combinations that were part of a scheduled sample plan, the sample would not 'count' towards that plan. Now if that location has not been sampled in the current period, it will correctly mark the location as tested in the schedule. | |||
* Fixed: tab order issue with the verification due date. | |||
* Added: support for copy/paste in all date or date/time controls. | |||
=Version 3.9= | |||
SVN revision 22497-22670 | |||
==Requirements== | |||
* MySQL: at least 5.7.15 | |||
* Windows: Vista or later | |||
* Resolution: 1280 x 1024 or higher | |||
* Crystal Reports: 12 X2 I think is what its called, need to ask Jordan | |||
* ODBC: MySQL ODBC 5.1 or 5.3? | |||
* <ports for AU> | |||
* <permissions to install> | |||
==Database== | |||
* Added: f_get_all_ancestor_id, which is like f_get_ancestor_id, but returns all ancestor ids. | |||
* Fixed: (case 46621) an issue where 'choice' options would calculate as out of bounds if the value was blank. | |||
* Fixed: (case 47425) if there were draw map objects tied to the wrong plant, they have been corrected. This was caused by a bug in the location screen that is resolved in this version. | |||
==Attachment Views== | |||
* Fixed: an issue where resizing the application or an attachment view would not resize the currently visible attachment within it. | |||
* Added: (case 46397) all attachment pages now automatically select the first attachment in the list for display. This matches the behavior that already existed in some attachment 'popups' like on the document screens. | |||
==Analysis Management== | |||
* Fixed: a misspelling of a menu option. | |||
==CommonResources== | |||
* Fixed: (case 46049) an issue where performing 'clone analysis' to an analysis with 'rules' applied to the options would 'move' those rules to the new analysis instead of copying them. | |||
==Investigation== | |||
* Fixed: (case 47331) an issue where the investigation rules page would not show the correct page size on the previous/next page buttons. Also, these buttons are now correctly centered on the screen. | |||
==Location== | |||
* Fixed: (case 47425) an issue where the user could get a database error if they created draw objects for one plant tied to a similarly named map at another plant. | |||
* Fixed: (case 47424) an issue where drawing a new box could create the object under the wrong map if there were similarly named maps at more than one plant and the user switched between those plants. | |||
* Fixed: (case 47442) an issue where creating a location by drawing a new box wouldn't tie the new location to the new box on save, causing them to be unrelated. | |||
==Work Orders== | |||
* Changed: (case 46066) 'calculate once' style defaults now continue calculating their defaults until a 'valid' (not blank) result is returned. This resolves issues where the initial calculation returned an invalid value because dependent fields had not yet been filled out. | |||
==Reports== | |||
===Certificate Of Analysis (CertificateOfAnalysis.rpt)=== | |||
* Added: (case 45889) a parameter to show the plant address in the header, with the sample, both, or neither. Running the report for all plants overrides showing address in the header. | |||
* Fixed: (case 45889) updated plant logo query to allow the report to display results even if no plants have logos | |||
* Added: (case 44212) the ability to show/hide verification information in the basic information subreport per a new parameter/setting | |||
===Failed Results (FailedResults.rpt)=== | |||
* Added: (case 47175) new parameters for including/excluding marginal results, including/excluding invalid results, and specifying which date field to filter by and display. | |||
* Changed: (case 47175) improved logo fetch query | |||
===OSHA Forms 300 & 300A (equivalent) (OSHA300300A.rpt)=== | |||
* Added: (case 41152) OSHA equivalent forms, including a mode which automatically fills in data from analysis option values, and a blank mode. These will appear as two separate report entries. | |||
===Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Fixed: (case 46372) date and datetime results when selected as the printed option via setting | |||
* Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses | |||
===Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Fixed: (case 46372) date and datetime results when selected as the printed option via setting | |||
* Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses | |||
===Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Fixed: (case 46372) date and datetime results when selected as the printed option via setting | |||
* Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses | |||
===SampleCompletion.rpt=== | |||
* Changed: (case 39494) f_get_setting to f_check_setting where required for dynamic report functionality | |||
===User Status (UserStatus.rpt)=== | |||
* Changed: (case 44507) expanded parameter functionality, cleared saved data, and made minor aesthetic improvements | |||
* Changed: (case 44507) report filename, updated from Rough Draft | |||
=Version 3.8= | |||
REVISION 22345-22496 database version 380 | |||
==Database== | |||
* Fixed: several issues with p_get_subtree_by_lookup, which is used by the graphing website to look up child products. | |||
* Fixed: an issue where f_get_setting was looking for Stores instead of Plants. | |||
* Added: f_useraccount_has_site_access function used by the isoft authentication node module to know if a user has access to a plant | |||
* Changed: (case 38185) f_get_setting and p_check_setting now defer to setting.defaultvalue over the default that was passed in as an argument. | |||
* Removed: references to the no longer supported group setting levels. | |||
* Fixed: (case 40544) (case 45627) f_count_problems added for verification interface. Moved function above the 3.7 version tag so that it goes out when Gwyn updates people to 3.6 | |||
* Added some queries that create the password security settings at their default values so that someone can see them to change them. | |||
* Added: a new permission that controls whether a user is able to see/create/revoke API tokens. These tokens allow other applications to access Presage data through the (in development) Presage API. The accessor will inherit all the privileges of the user account that the token is on (not the user account that generated the token). | |||
==CommonResources== | |||
* Added: support for tri-state checkboxes for boolean options. This makes it so that companies can track and visually discern between boolean options that are Yes vs No vs Not yet set. This should help situations where companies have to set up various Choice options instead of booleans. | |||
* Fixed: a possible database error that could happen if two users wanted to create a new user hotkey in the action table from two different user sessions at the same time. | |||
==Configuration== | |||
* Changed: (case 38185) in the configure settings area, the user can now edit the 'default' column. Previously, this value used to only be for reference, but will now specify the value for new users/sites that do not currently have a value. | |||
* Removed: the configure settings area no longer has a 'scope' dropdown. Also the user can no longer view or edit settings at other levels, as this behavior was deprecated previously. | |||
* Removed: references to the no longer used cascade argument for settings, as they now operate at their specified level, and no other. | |||
* Added: in the configure users area, there is now a section where an admin can see, generate, and revoke API tokens for each user account in the system. These tokens allow other applications to access Presage data through the (in development) Presage API. The accessor will inherit all the privileges of the user account that the token is on (not the user account that generated the token). This area is hidden if the user does not have the new "Manage API keys" permission. | |||
==Login== | |||
* Fixed: an issue where the login popup might be stuck in the "No DB Connection" locked down mode if the popup appeared while the database was unreachable. This could effectively lock the user out. | |||
* Fixed: an issue where user plant access was not being checked correctly. | |||
* Fixed: an issue where the login dialog would not be visible if the main application window was minimized or off screen when the application was locked. Now, the popup will be centered in the main monitor if the application is not visible to center on. | |||
==Sampling== | |||
* Fixed: (case 44349) an issue where some sampling history filters would search correctly, but not save the search correctly or navigate to the correct search URL for graphing. | |||
* Fixed: (case 44411) an issue where graphing URLs might be incorrect if some of the values contain restricted values like "&" or "=". | |||
* Changed a text label from Sample Category to Analysis Category to match other interface elements. | |||
==Work Orders== | |||
* Fixed: (case 44590) an issue where 'empty' values might be deleted off of a sample if another option was changed and the first option's default was blank. Now, option values (blank or not) will persist indefinitely unless the sample is deleted or the analysis is changed. | |||
==Reports== | |||
===Failed Results (FailedResults.rpt)=== | |||
* Fixed: (case 45605) added exclusion for inactive thresholds in subreport | |||
* Changed: (case 45605) added inclusion for thresholds relevant to parent productid and top level ancestor productid. | |||
=Version 3.7= | |||
REVISION 21990-22234 database version 370 | |||
==Crystal Reports== | |||
* Changed: (case 40474) the 'choose which report to print' popup no longer has an orientation column, as it confused some users. Also, the 'default' checkbox column has been moved to the right so as to avoid confusion between this marking an item as a default print option and selecting the item to print this time. Also, changing whether a report is a default now immediately resorts the report list. This should make the function of favorite reports more obvious to the user. | |||
==Database== | |||
* Fixed: (case 40664) the end date of product batches now allows NULL to avoid a MySQL bug on some systems. | |||
* Fixed: an issue with an incorrect index on the productbatch table. | |||
* Added: (case 40855) a new stored procedure that can RENAME a table, replace it with a copy (so that people can still insert into it), perform a potentially slow ALTER on the original, combine the rows, then swap them back. This is useful for making changes to large tables in a way that does not take a system down for as long due to table locks. | |||
* Fixed: p_configure_log_tables will no longer do unnecessary, expensive work if the database is not named `presage`. | |||
* Changed: (case 40855) the procedure p_configure_log_tables has been rewritten to use the new procedure p_swap_and_alter_table so as to not lock the logs up for as long. | |||
* Changed: p_swap_and_alter_table now applies the alter operation to the placeholder table so that adding or removing columns will not cause an error when the tables get merged. | |||
* Changed: historical version 3.3.1 now changes the trigger on analysisoptionvalue beforehand to be faster. This seemed to speed up the query as much as 95%. | |||
* Added: (case 40544) f_count_problems added for verification interface. | |||
* Added: (case 41117) stored procedures that restore information from the logs to all databases. | |||
* Fixed: (case 42224) an issue where right click graphing would not render correctly (sometimes) due to a race condition introduced by google into their charts. | |||
* Added: (case 42447) to improve HDD consumption on systems with integrations that commonly drop and re-add rows from the analysisoptionchoice and productbatch tables, the logging triggers for those tables have been re-created with a feature that allows suppression of the logs. | |||
* Changed: (case 42365) the email recipient of emailed reports and report subscriptions now supports nearly unlimited number of recipients. | |||
* Changed: (case 42488) when an investigation triggers an automatic retest, if the retest analysis is a production analysis (recipe), the production volume of the newly created sample will correctly inherit from the default batch volume instead of 0. | |||
* Added: a table that is used for optional password blocking based on security preferences. | |||
* Changed: useraccess.username is now long enough to store an entire username. | |||
* Added: (case 24295) support for useraccess.accesstype of 'Session Unlock' | |||
==Home== | |||
* Added: by request, hitting 'enter' will open the selected WO on the WO screen. | |||
==Login== | |||
* Added: new user passwords can now no longer match the user's first or last name, or their work email or recovery email, due to ease of guessing that kind of password. It also cannot contain the account name, as this does not add any complexity to guessing the password. | |||
* Added: the change password popup now shows some warnings/errors as the user types, and some other, slower tests when the user leaves the field. | |||
* Added: support for many new (optional) Password security settings, including minimum/maximum length, minimum number of characters from character classes (upper, lower, special, number), checking against a block list of the top 10k passwords, checking to see if the password was involved in any password breaches, and making sure the password doesn't match any recent passwords the user employed. All of these settings default to off. | |||
* Added: support for a global setting to set a threshold on how many breaches a password must be involved in before it is not allowed. Below this, the user simply sees a warning. | |||
* Added: (case 24295) as part of logging in, a new setting is checked "Security"->"Passwords: maximum number of days between user password changes" which checks to see if the user has changed their password recently enough. If not, they are shown a popup forcing them to change their password now. | |||
* Added: (case 24295) a new global setting: "Security"->"Passwords: number of days before password expiration to prompt user to change password". This represents a number of days before password expiration to begin prompting the user to change their password and let them know that the password will expire soon. | |||
* Added: (case 24295) support for locking and unlocking user sessions. There is now a menu option File->Lock Session which will lock the current session, requiring a password to continue. This is useful for security when a user walks away from a terminal. By default, this can be activated by Ctrl + L, but this hotkey can be customized in the user hotkeys dialog. | |||
* Added: (case 24295) a global setting of 'minutes of inactivity before automatically locking user session' (defaults to off). If a machine has no activity for this many minutes, the session will automatically be locked, requiring the user to type in their password to continue. | |||
==Master== | |||
* Added: a separator to the File menu for better organization. | |||
* Added: support for customizable user hotkeys in top level menus. This is being used in the new File->Lock Session option. | |||
* Fixed: the help->about box now correctly shows all modules loaded by the system with their full absolute path on the file system. | |||
* Fixed: an issue where help->about module list wouldn't show modules correctly if the working directory was not the install directory (common in terminal services installs). | |||
* Fixed: an issue where help->about didn't show modules where the module name and filename didn't match. | |||
* Added: by request, the help->about box now shows the last file modification time for each module. This is useful when checking to see if files were downloaded and applied during update without opening windows explorer. This dialog now has a large minimum size to facilitate more data that is shown in it. | |||
* Added: the help->about box now splits the directory off the filename so that the filename can be more obvious and easier sorted. The version and filename are now bolded and the path and hash are slightly gray to make the important information easier to see. | |||
* Added: help->about now has a last modified timestamp, which is read from the file in the filesystem. | |||
==Products== | |||
* Fixed: (case 42322) an issue where copying and pasting a product at the same level will automatically name the product " - Copy" at the end so that the user can rename the product instead of just getting an error. | |||
* Added: on save, we now test to see if there are duplicate products at any given level and show the user an error if any are found. This should help prevent issues where the user can get confused by products with the same name at the same level. | |||
==Sampling History== | |||
* Fixed: an issue where a blank user/location/product/etc might be selected in the dropdown (instead of nothing) when the screen was cleared. This would lead to users inadvertantly searching for only those samples that were associated with the user/location/product/etc with a blank name. | |||
* Changed: if the user doesn't have permission to edit samples on this screen (the most common situation) all the readonly fields in the list are hidden. This makes using the arrows to navigate the list easier since up/down will no longer open up some columns' dropdowns. | |||
* Added: hitting enter in this list now opens the selected WO on the WO screen. | |||
==Work Orders== | |||
* Added: a global hotkey to open a 'find/open WO #' popup. Entering a WO # into this popup and hitting enter will load that WO on the WO screen, no matter what screen the user is currently on. This is the same popup the user sees when loading a WO # on the WO screen. The hotkey for this global action defaults to F4, but can be customized per user. | |||
==Reports== | |||
===Analysis Change Log (AnalysisChangeLog.rpt)=== | |||
* Removed: (case 39891, case 39892, case 39894) older report file. Functionality will now be handled by the file ChangeLog.rpt, which handles multiple change log modes | |||
===(Analysis,Users/Groups,Investigation Trigger,Product) Change Log (ChangeLog.rpt)=== | |||
* Added: (case 39891, case 39892, case 39894) the updated version of AnalysisChangeLog.rpt, which has a mode parameter. Each mode is a different report entry in the table and shows logs for different things, which slight variations in columns, headers, and active parameters. | |||
===Certificate Of Analysis (CertificateOfAnalysis.rpt)=== | |||
* Added: (case 43792) Lot and Expiration for Recipe analyses, when present | |||
* Fixed: (case 43792) Comments and Findings shading | |||
===Data Entry Tagnumber(1.1x2.4_DataEntryTagnumber.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Location Analysis Label (0.66x2.1) (0.66x2.1_LocationAnalysisLabel.rpt)=== | |||
Added: (case 39137) a supplemental alternate sized report | |||
===Location Analysis Label (1.1x2.4con) (1.1x2.4con_LocationAnalysisLabel.rpt)=== | |||
Added: (case 39137) a supplemental alternate sized report | |||
===Sample Barcode (0.66x2.1)(0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Sample Barcode(1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Sample Barcode (1.1x2.4con)(1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Screening (Screening.rpt)=== | |||
* Added: (case 40396) a new report that shows COVID-19 Symptom Screening results | |||
===Work Order Barcode (0.66x2.1)(0.66x2.1_WOLabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Work Order Barcode(1.1x2.4_WOLabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Work Order Barcode (1.1x2.4con)(1.1x2.4con_WOLabelWithBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
===Work Order Copy Barcode (0.66x2.1) (0.66x2.1_WOCopyBarcode.rpt)=== | |||
Added: (case 39137) a supplemental alternate sized report | |||
===Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)=== | |||
Added: (case 39137) a supplemental alternate sized report | |||
===Work Order Copy Barcode (Label)(1.1x2.4_WOCopyBarcode.rpt)=== | |||
* Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting. | |||
=Version 3.6= | |||
REVISION 21738-21989 database version 360 | |||
==Analyses== | |||
* Moved: the thresholds area has been moved from the main form into a property page. | |||
* Added: (case 24089) new property page area for the future for managing rules and restrictions. | |||
* Added: analysis option rules page for viewing and editing rules that trigger different states on an option depending on the presence or absence of various tags. | |||
* Changed: for speed purposes, analysis option choices and rules are now only loaded when they are needed. This is to avoid slowdowns at plants with large numbers of rules and threhsolds. | |||
* Added: the analysis option rules page now pops up a 'add/edit/delete' associated tags dialog when you double-click the tags cell in the rule list. | |||
* Added: synchronization between the tag lists in the rule tag popup with the product tags area on the products screen. | |||
==Common Resources== | |||
* Added: support for checking analysis option rules. These rules can be triggered off of tags on the plant, the product, or the location. | |||
* Added: support for Hidden option rules. They now hide those options in the sample detail page. | |||
* Changed: when options are hidden for any reason now, samples with the same analysis will now correctly align values for the same option. | |||
* Added: the configure analysis page now loads option thresholds and option rules for each analysis as they are selected instead of when the screen is loaded. | |||
* Added: configure option rules/thresholds pages now show an asterisk in the title bar if any are modified. In addition, the number of thresholds/rules on the page are shown in parenthesis in the title bar. This makes it easier to tell at a glance whether an option has any thresholds or rules. | |||
* Changed: the tags field in the configure tags area is now a multi-line readonly edit box for easier review. | |||
* Added: an edit icon to the tags column to make it more obvious that the user can click into the tags area to choose tags. | |||
* Changed: the user can no longer open the edit tags dialog if the item is not editable. | |||
==Configuration== | |||
* Changed: the city/state/zip/country feature in the edit plants area now uses shared state/zip functionality for speed purposes. | |||
* Added: (case 24089) support for tags on plants. | |||
* Fixed: hitting the reset button after visiting the configure plants page could lead to duplicated plants in the dropdown. | |||
* Fixed: (case 39720) the timezone autocomplete now strips out many redundant and deprecated timezones. | |||
==Database== | |||
* Added: (case 24089) tables and changes to enums to support tags associated with plants. | |||
* Renamed: zipcode and state.stateid have been renamed to statecode to better match other products. | |||
* Added: function f_get_company_product_code, which is a product agnostic API for getting a company product code. | |||
* Added: f_get_setting and f_check_setting for consistency with other products. | |||
* Added: some JSON utility functions, useful in new JSON operations. | |||
* Added: f_get_option_restrictions and f_check_option_restrictions, functions for testing whether an option should be shown/editable/etc. | |||
* Added: the Disabled option rule outcome has been renamed to Inactive to match the Inactive flag/behavior on options themselves. | |||
* Added: if an analysis option is inactive or marked as required to close or perform directly (not through a rule), f_test_option_restrictions will correctly return the status of 'Inactive' or required. | |||
* Added: support for specifying an email subject in reportqueue. | |||
* Removed: calls to p_configure_log_tables in versions 2.6, 2.7, 3.3 so as to not do unnecessary work when updating to a new version. | |||
* Changed: p_configure_log_tables no longer sets enums on log_change.column and log_changegroup.table. Its going back to VARCHAR(100) for both. This only costs 10% more HDD space and requires a lot less update time. Also, if either of the live log tables are found to not be using ROW_FORMAT=COMPRESSED (which accounts for 50% of the HDD space), the row format will be set to COMPRESSED. | |||
* Added: active flag to the analysisoptionrule table. | |||
* Changed: f_test_option_restrictions now respects active flag, and properly handles rules with no tags. | |||
==Home== | |||
* Removed: the date pickers are no longer locked if the user is not searching closed documents. | |||
* Fixed: load times have been improved significantly, especially at plants with large numbers of thresholds. | |||
==Investigations== | |||
* Fixed: (case 38843) an issue where loading investigations would show that the investigations had been modified and needed to be saved, despite the fact that the user did not change them. | |||
* Fixed: (case 38843) an issue where saving investigations with retests could move those retests to a different work order whose WO # matched the investigation #. | |||
==Locations== | |||
* Added: several new "Group results by" options, including a 10min option, hour option, and a Custom option. | |||
* Added: an edit button that shows when the custom group by is selected, which allows the user to change the number of minutes that the custom group by uses. | |||
* Fixed: an issue where the selected 'group by' option is not saved correctly on screen close. | |||
* Fixed: an issue where the previously selected animation speed is not restored correctly on screen open. | |||
* Changed: when group by was changed, the tree was auto-expanded, but not when results were loaded. Now it expands when items are loaded as well. | |||
* Fixed: an issue where hitting the animation button doesn't work if nothing is selected in the tree. | |||
* Fixed: (case 39875) an issue where selecting the group by option of "None" could lead to strange issues with colorizing locations. | |||
* Changed: Moved group by and speed labels above their fields. | |||
* Added: Made group dropdown typeable. | |||
==Product== | |||
* Added: analysis option rules and choices are now loaded when the user goes to copy a product batch to ensure that all things that reference that batch are loaded. | |||
* Changed: analysis option rules and thresholds are no longer loaded automatically for all analyses. This will speed up loading the product thresholds page. Thresholds are loaded for each product as they are selected. | |||
* Fixed: a crash when deleting tags from the product tags area. | |||
==Sampling== | |||
* Changed: improved the speed of loading large numbers of results. | |||
* Added: all samples' restrictions are loaded up front after a search is performed to avoid loading them as samples are being displayed. | |||
==Settings Framework== | |||
* Added: support for a shared zip code cache. | |||
==Work Orders== | |||
* Fixed: an issue where loading a work order with a due date or a verification due date with seconds might say the work order had been modified when it had not. | |||
* Added: support for Hidden option rules on recipes. | |||
* Added: now, analysis options that are hidden for any reason will still calculate defaults and acceptability, while inactive options will not calculate or save defaults. | |||
* Fixed: various issues with regards to default values on production samples (recipes). | |||
* Fixed: changing recipe values now updates other values' defaults in realtime now. | |||
* Added: sample tag # to the recipe list. | |||
* Changed: recipes should now correctly load dropdown choices as they are selected instead of when the screen is opened, speeding up the screen on larger databases. | |||
==Reports== | |||
===Analysis Change Log (AnalysisChangeLog.rpt)=== | |||
* Fixed: (case 40145) removed archive change log section of the UNION ALL | |||
===Certificate of Analysis (CertificateOfAnalysis.rpt)=== | |||
* Added: (case 39675) performed on datetime | |||
* Changed: (case 39675) minor date to datetime updates with formatting, where appropriate. | |||
===Contact Tracing (ContactTracing.rpt)=== | |||
* Added: (case 40335) a new simple contact tracing report showing where people performed samples in users by location or locations by user format. | |||
* Added: (case 40335) location parameter header | |||
===Failed Results (FailedResults.rpt)=== | |||
* Fixed: (case 39681) report was not automatically pulling logo from the database | |||
===Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)=== | |||
* Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled date | |||
* Changed: (case 39138) minor rearranging fields more likely to be short on the same line while giving fields more likely to be long more room | |||
* Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant. | |||
* Changed: (case 39561) right-aligned the barcode to fix an issue where barcodes were not scanning. I suspect the "centered" barcode was being interpreted as "jusitifed" by an aggressive printer driver. | |||
===Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)=== | |||
* Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled datetime | |||
* Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant. | |||
===Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)=== | |||
* Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled date | |||
* Changed: (case 39138) minor rearranging fields more likely to be short on the same line while giving fields more likely to be long more room | |||
* Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant. | |||
===Samples By Analysis (SamplesByAnalysis.rpt)=== | |||
* Changed: (case 39678) minor query improvements, date performed field now shows a datetime instead of a date. Dynamic option headers can grow. The header box can grow. | |||
* Added: (case 39691) a mode to print from the Sampling History Screen, with new parameters to support that and defaults to make the inactive mode benign | |||
* Changed: (case 39691) cleaned up the report header, added plant logo, and changed the analysis parameter to a combined category analysis parameter | |||
* Fixed (case 40383) fixed subreport links | |||
* Fixed: issue in the subreports causing options and option headers not to print in Sampling History Mode | |||
===Testing Barcode (0.5x2.4LabelWithBarcode.rpt)=== | |||
* Fixed: (case 39133) tidied the report, improved the query to be more consistent with the Work Order Tags, and saved it with printer settings that match the size in the report filename. With necessary margins, this required a reduction in the number of fields displayed. Report now only shows barcode, tagnumber, workorderid, and a date (which date is shown and the format of that date are specified by settings). | |||
=Version 3.5= | |||
PS Change log version 3.5 | |||
REVISION 21583-21738 database version 350 | |||
==Analysis== | |||
* Changed: (case 38064) the user can now check the "Global" check on a threshold when a product is specified. | |||
* Fixed: (case 39003) thresholds and the 'test value acceptability' popup now both correctly handle european-style number formatting windows preferences (period and comma switched). | |||
==CommonResources== | |||
* Fixed: the edit default value dialog now correctly handles european-style number formatting for other option defaults. | |||
==Configuration== | |||
* Fixed: an issue where multi-line lock notes weren't displaying right. | |||
* Added: (case 37587) a filter to the user account list for easily filtering down to specific users by account name, first and last name, email, or lock notes. | |||
==Database== | |||
* Changed: (case 38584) option values can now be 100 characters. | |||
* Added: (case 38631) a description to alert subscriptions | |||
* Fixed: (case 38918) an issue where option choices were not logging changes correctly. | |||
* Added: (case 38776) logging triggers on the useraccount table have been readded because they were missing on some databases. | |||
* Added: (case 38880) Support custom query data tables in dashboard | |||
==Home== | |||
* Fixed: (case 38431) an issue where doubleclicking an empty row could cause a crash. | |||
==ITMySQLConnection== | |||
* Removed: the unnecessary and confusing text "APPCRASH" that was added to some unknown mysql client errors. | |||
* Fixed: if there is an issue establishing a secure connection to the database (and secure connections [SSL] are enabled) the error "APPCRASH: the operation completed successfully" will no longer be shown instead of the intended "SSL is not configured correctly or secure connection refused." | |||
==Locations== | |||
* Fixed: (case 38262) an issue where the user can get a crash when adding a new top-level location. | |||
* Fixed: an issue where the user would be asked to save again even though nothing had changed. | |||
==Product== | |||
* Added: wait cursor when loading product specifications. | |||
* Fixed: (case 38258) an issue where loading specifications could cause a very long delay on a system with a large number of products. | |||
* Changed: (case 38064) the user can now change product specs to allow "All Plants" | |||
* Fixed: (case 39003) thresholds now correctly handle european-style number formatting windows preferences (period and comma switched). | |||
==Sampling== | |||
* Fixed: (case 39003) values, defaults, and 'calculated values' now correctly handle european-style number formatting windows preferences (period and comma switched). | |||
==Work Orders== | |||
* Fixed: (case 38312) an issue where the time of day of automatic WOs would show midnight until the user clicked into the field, and it would be switched to the current time of day. | |||
* Fixed: (case 38147) an issue where recipes with default value formulae might not calculate 'Per Batch' values correctly. The ratio between production and batch volume was being applied twice. | |||
* Added: (case 38640) a 'show inactive schedules' checkbox, which defaults to unchecked. Check this box to see schedules that have been deactivated. | |||
* Fixed: if the user hits the button to add a new schedule, focus will automatically be put into that item so the user can fill it out. | |||
* Fixed: (case 39003) values, defaults, and 'calculated values' now correctly handle european-style number formatting windows preferences (period and comma switched). | |||
* Fixed: recipes now handle european-style number formatting preferences correctly. | |||
* Fixed: the 'value calculation' popup was not handling european-style number formatting correctly if the user did a calculation in scientific format. | |||
* Fixed: using the 'value calculation' popup to create a computed value now correctly puts the right value in the background for graphing as well as acceptability testing. | |||
* Fixed: work order change log now correctly displays modified values in european-style number formatting correctly. | |||
* Fixed: saved value calculations now correctly load back up when loading a WO. | |||
=Version 3.4= | |||
PS Change log version 3.4 | |||
REVISION 21297-21582 database version 340 | |||
==Crystal Reports== | |||
* Changed: the choose printer dropdown in the edit default printers dialog is now wider to facilitate networked printers. | |||
* Added: (case 38210) a global setting called "Printing"->"Automatically set windows default printer before printing". This setting defaults to False. When set to True, every time the user prints, the default printer in windows will be set to the printer the user is printing to, and the printer will be set back to the previous default afterwards. This may help with some printing scenarios where default windows printer affects some print jobs. | |||
==Data Management== | |||
* Fixed: an issue where permissions were not being checked correctly for this shared module. | |||
* Fixed: (case 36908) an issue where a table that had foreign keys on it would throw an error when importing. | |||
==EDocuments== | |||
* Changed: how data sources are handled has been changed so that objects are not loaded from the database if they are not referenced in the EDocument template. Also, passing objects into multiple edocument evaluations won't load the same objects more than once. | |||
* Added: support for edocuments to be evaluated in such a way that invalid tokens are left in. Also, edocuments can be evaluated in a way where the values are escaped and quoted, which is useful for when the output is a query that needs to be run. | |||
* Fixed: an issue where the handling of global variables wasn't working correctly. | |||
* Fixed: a crash that could happen when subreports were present in an edocument request. | |||
==Shared Controls== | |||
* Fixed: (case 37729) an issue where sometimes column tooltips would be left even after columns were deleted, leading to incorrect or overlapping tooltips. | |||
* Fixed: several issues where 'dead whitespace' would be left in a list if the user was scrolled to the right when columns are deleted. | |||
* Fixed: (case 36452) an issue where using the mouse scroll wheel to scroll a list control with close buttons (little red x's), the x's would not get redrawn correctly. | |||
* Added: (case 36809) an option for exporting just selected items in a list to a spreadsheet. | |||
* Removed: the option for exporting to an HTML table, as I don't think this is valuable to anyone. | |||
* Added: the shared 'dropdown choice' popup dialog now uses a typeable dropdown for easier searching. | |||
* Added: 'automatic' list cell tooltips that appear when the text doesn't fit (has an elipsis at the end) now works if the string has line breaks in it, which also causes an elipsis. This helps in lists where multi-line data (like addresses) can be present. | |||
* Fixed: an issue where tree controls that contained checkboxes might not toggle the check boxes correctly if the user used the keyboard (space button) to toggle the checks. | |||
==Common resources== | |||
* Fixed: (case 13589) the user can no longer save option choices/thresholds with an empty value. | |||
* Added: (case 13589) if the user modifies a saved choice/threshold to have an empty value, they will be prompted that they are invalid choices and given the option to delete them. | |||
* Added: a general 'edit tags' page that is now used in various places for adding/editing/deleting tags on various objects. | |||
* Fixed: (case 35851) an issue where switching between analyses on a WO that contains multiple different analysis types can cause option values to be saved for the previous analysis if any of its options had defaults. Also added several checks that will attempt to delete such invalid values if they are found in the future. | |||
* Added: (case 20177) sample default SQL formulas now support parameters in the format {?sample.comments}/{?sample.locationid} as well as related tables like {?location.location} and {?product.name}. The following tables can be referenced: sample, plant, analysis, product, location, collectedby (the user account), platesreadby (the user account), investigation. | |||
* Added: (case 20177) the 'test/edit' default value formula popup now supports many other data sources, such as workorder, sample, location, etc. | |||
* Fixed: an issue where changing analyses on a sample could take a noticable amount of time as columns were added or removed and the user would see a lot of flickering. Now this operation is essentially instant. | |||
* Added: (case 20177) default value formulas now support the workorder data source as well as assignedtogroup, workordertype, verifiedby, productbatch. | |||
* Fixed: (case 37546) an issue where 'calculate once' SQL defaults were not being handled correctly. Now they will correctly calculate the default only once and stay at that value. | |||
==Configuration== | |||
* Fixed: (case 36948) the user now gets an error if they attempt to create a new account with a blank user name. | |||
==Database== | |||
* Added: entitytag table, which stores tags that are applicable to various entities like products and suppliers. | |||
* Added: producttag and suppliertag, which associate tags with products and suppliers respectively. | |||
* Added: (case 36675) location tags and analysis tags. | |||
* Added: (case 36658) if the user has a failed login/access attempt, some new settings are checked that control how many failures can occur before locking the user out. If these thresholds are exceeded in a given time limit, the user's account will automatically be locked. These new settings are: | |||
Login->Security: number of failed attempts before locking an account | |||
Login->Security: number of minutes before failed attempts expire | |||
* Removed: sample values that were incorrectly created previously have been cleaned up. These were invalid values for the incorrect analysis. | |||
* Added: (case 21232) support for alert subscriptions related to supplier documents expiring, being added/removed/modified. This required adding support to alert subscription and alert templates. | |||
* Added: p_alert_trigger can now check for expiration of supplier documents. | |||
* Added: support in e_alert_scheduler for supplier documents. | |||
* Added: p_alert_process_content can now handle building alerts for supplierfile records and can now handle edocument style tokens in the destination address of an alert as well as the title and body. | |||
* Added: e_process_alert can now handle edocument tokens in the destination address. | |||
* Added: p_edocument_replace_general_tokens, a new procedure that can find and process edocument style tokens that refer to non-table/field data sources like settings and session variables. | |||
* Added: (case 37366) cloning WOs/Samples now does not copy various sample comments if copying sample values is turned off. | |||
* Changed: (case 36676) the scheduled date on work orders now has a time as well. This is important because the scheduled date/time represents a moment at which the WO will be considered valid after. For now, WOs scheduled for the future will not be filtered out of anywhere in the software, but such changes may come later. | |||
* Changed: (case 36676) cloned work orders now synchronize the date/times on the cloned WO such that the scheduled date/time of the new WO will be the moment of creation, and all due/scheduled dates on the WO will be offset based on the template WO's scheduled date. (Previously newly created WOs were synchronized on the original WO's creation date, which the user could not see or edit, making dates on cloned WOs hard to set correctly). | |||
* Added: (case 36676) sample.scheduled and sample.due, which represent (optional) overrides to the WO scheduled/due dates that apply to specific samples. This is especially useful now that we will be using cloned WOs to handle hourly checks. If the template WO has samples with scheduled dates exactly one hour apart, the cloned WOs will also have samples scheduled into the future, each an hour apart. | |||
* Changed: Standardized maximum user name length to be long enough to store a full length email address (320 characters). | |||
==Document== | |||
* Changed: (case 38036) if the user has "Plant" level permissions for "Edit document associations", "All Plants" is no longer an option in the plant dropdown. In such situations, new rules will automatically use the current plant instead of "All Plants". Also, a rule cannot be saved if the only thing filled out is plant now. | |||
==Locations== | |||
* Changed: much of the configure locations page has been rearranged. The copy/cut/paste/delete buttons are now below the location tree. Most of the edit location fields have moved to a Location Info tab. This more closely matches the edit products/suppliers areas. | |||
* Added: a location tags page to the configure locations area. When creating locations or editing existing ones, the user can choose which tags apply to each location. By default, locations inherit tags from parent locations, similar to other information. | |||
* Added: a filter to the location area. This allows the user to quickly filter down the location tree. | |||
* Fixed: copy/pasting locations should now correctly copy any location tags. Also, fixed various issues that could lead to crashing when rearranging locations with tags. | |||
* Fixed: (case 37236) an issue where the locations were not changing their color when locations were being visualized due to a recent regression. | |||
* Fixed: a possible crash that could happen if the user cut a location, then filtered the tree before pasting. | |||
* Fixed: some issues where cutting a location then filtering the list before pasting could cause the original location to not get removed. | |||
==Login== | |||
* Fixed: a possible issue that could cause the password recovery button to not send the recovery email. | |||
* Added: for added security, if a user logs in using a less secure password encoding (because they have not changed their password since the newer password encodings were added) their password will automatically and silently be reencoded using a more secure method. | |||
==Product== | |||
* Added: (case 21719) a "Tags" page to the configure products and configure suppliers. The user can add/edit/delete tags from these interfaces as well as associate them with various products and suppliers. | |||
* Added: the user can now filter suppliers and products by tags. | |||
* Changed: support for new tag management interface. | |||
* Added: (case 31740) cut/copy/paste functionality to the product management area. This should facilitate copying and moving products along with their tags and plant usage. | |||
* Added: Copying products now properly copies (instead of moving over) associated batches and other info. | |||
* Fixed: a possible crash that could occur when deleting a product with sub-products. | |||
* Added: if products are cut and pasted, all specifications and attachments should correctly move with the products. | |||
* Added: copy/pasting products should now copy specifications and active batches to the new product(s). | |||
* Fixed: a crash when an unsaved product was deleted after adding a new attachment to it. | |||
* Fixed: an issue where copy/pasting products wouldn't show the copied tags initially. | |||
* Changed: batches and batch specifications no longer get copied as part of the copy/paste of products. | |||
* Fixed: an issue where attachments wouldn't show if you cut/paste an unsaved product with an attachment. | |||
* Added: (case 31740) there are now some fields on the supplier attachment page where an alert subscription can be generated for the current supplier. There are options for how many hours ahead of expiration to send as well as what recipient(s) should be included. | |||
* Added: change detection to the new alert subscription fields. | |||
* Fixed: an issue where switching suppliers could lose data from the last field where data was modified. | |||
* Changed: supplier documents will now show as red AFTER the expiration date and blue ON the expiration date, rather than blue the day before and red on that date. This more closely matches how expiration systems work intuitively in other systems. | |||
* Changed: (case 37597) when products are loaded, all their product batches are loaded as well. This solves an issue where batches were loaded one product at a time when the user attempted to use the filter. Now, loading products might take a bit longer if there are many batches, but filtering should be quick. | |||
==Work Orders== | |||
* Fixed: date/time scheduled, due, and verification due will now save with 00 for the seconds instead of the current seconds (this was causing small amounts of offset on cloned WOs because of these hidden seconds). | |||
* Added: (case 36676) support for scheduled and due date/time (optional) overrides on every sample. These fields are hidden any time the performed date is hidden. | |||
* Changed: the scheduled date picker now supports time. In addition, this field now has a new meaning when cloning work orders. When the work order is cloned, the scheduled date/time will be set to the moment of copy, and all other date/time values (workorder due, verification due, sample scheduled, sample due) will be an offset based on the original work order's scheduled date/time. | |||
=Version 3.3= | |||
PS Change log version 3.3 | |||
REVISION 21074-21296 database version 330 | |||
==General== | |||
* Changed: the defaults have been shifted so that the user can show/hide list columns by default instead of it needing to be enabled by default. | |||
* Fixed: a possible crash if the user right-clicked on a list header control to the right of the last column and chose to sort. | |||
* Added: More protection against crashes when viewing images. | |||
==Database== | |||
* Changed: location and drawobject no longer store coordinates. They have been moved to drawmapobject. | |||
* Added: a map for each plant named "1", containing all map information for that plant. | |||
* Added: (case 21721) analysis options can now be marked as required to perform in addition to being required to close. | |||
* Changed: various triggers and procedures to deal with the above change. | |||
* Added: a permission for whether a user can mark a WO as performed despite required values not being filled out. | |||
==Configuration== | |||
* Added: Edit->My Preferences->Database configuration, which allows configuring the database connection of the local system without logging in. | |||
* Added: Edit->My Preferences->Hotkeys..., which allows configuration of the current user's hotkeys. | |||
* Added: icon to the edit->plants dialog and moved it under the Global Preferences area. | |||
* Fixed: an issue where plant settings showed up as Global settings in the configure settings area. | |||
* Removed: the configure->Locations page. Now, clicking the configure locations button just takes the user to the locations screen, as its more well suited for management of the location system. | |||
==Common Resources== | |||
* Fixed: a crash due to an unreleased change regarding the new product batch column in the sampling detail screen. | |||
==Data Management== | |||
* Fixed: an issue where CSVs containing quotes escaped by more quotes (a common CSV format) were not being read correctly. | |||
* Fixed: a potential crash when doing a test import. | |||
* Added: tooltips to all onscreen fields and fixed various tab order issues. | |||
* Added: the import type now remembers the last selected import type for the user. | |||
* Fixed: an issue where hiding and then showing the advanced fields could lead to them being smaller than intended. | |||
* Added: more descriptive error messages. | |||
==Document== | |||
* Added: (case 35796) image files are now marked as 'mobile friendly in the' document attachment interface. | |||
==Location== | |||
* Added: the location attachments popup now remembers if the user has shown it previously and automatically reopens. | |||
* Added: the visualization page now has an attachments popup that shows sample attachments in a read only popup. | |||
* Added: attachment count to sample tree in the visualization page. | |||
* Fixed: Fixing an issue where the screen might select a bunch of squares whenever the user selects a location. | |||
* Added: better settings headings for the attachment dialogs. | |||
* Changed: the plant dropdown has been moved from the configure locations page to above the map, as it controls everything the user is seeing on the screen. | |||
* Added: a map dropdown next to plant that allows the user to choose between map versions at that plant. | |||
* Added: a default map to each plant titled "1", and all current location information has been moved into that map. | |||
* Added: add/edit/remove buttons for maps. | |||
* Added: user-level settings for remembering the last selected map for each user for each plant. | |||
* Fixed: issues with the map dropdown reverting when the plant dropdown was changed. | |||
==Settings framework== | |||
* Changed: when the user logs out or closes the application, only modified user hotkeys are saved. Previously, all user hotkeys were deleted and resaved on every logout, causing unnecessary database activity. | |||
* Removed: the concept of Group level settings, which has been deprecated. All settings will continue to exist at either user, plant, or global levels. | |||
==Transaction List== | |||
* Fixed: (case 36181) an issue where saved search filters were not loading onto the screen correctly, and new saved searches were not saving their filter names correctly. | |||
* Fixed: an issue where column orders were not saving. | |||
==WorkOrders== | |||
* Added: (case 21721) saving a WO now checks whether the options are required to perform a sample. | |||
=Version 3.2= | |||
PS Change log version 3.2 | |||
REVISION 20835-21073 database version 320 | |||
==General== | |||
* Fixed: an issue where the application could crash in situations where columns are added and removed from list controls with active items. | |||
* Fixed: (case 35533) crashes caused by an issue with removing items from tree controls. | |||
==Analysis Management== | |||
* Fixed: (case 34310) an issue where testing default calculation formulae for unsaved options might not work right. | |||
==Crystal Reports== | |||
* Fixed: an issue where an 'empty' error popup would appear if the user attempted to print a report with no valid report file associated. | |||
* Added: (case 35444) support for limits on which email address sources are shown in the advanced print dialog. | |||
==Database== | |||
* Added: permission for managing other users' saved searches. | |||
* Added: (case 34951) a stored procedure that can compress the primary key IDs of the analysisoptionchoice table, useful for integrations where rows are deleted and recreated often. | |||
* Added: schema support for static url type of dashboard items | |||
==Edocuments== | |||
* Fixed: (case 34762) an issue where nested sub-reports might not generate correctly due to a recent change that caused unknown variables in a template to be replaced with empty strings. Now, unknown variables are left alone when building subreports, but cleared out in the final pass. | |||
==Location:== | |||
* Added (Case 12601) : Visualizations now support grouping by day, week, month and year. | |||
* Added (Case 34858) : Added a slider for custom timing on location visualization animations. | |||
==Login== | |||
* Added: support for a permission for managing other users' saved searches. | |||
==Master== | |||
* Added: (case 35221) to fix crashes and other image issues, the image library is now initialized just once on application initialization and cleaned up just once on application close. | |||
==Report Viewer== | |||
* Removed: (case 33111) the user can no longer 'uncheck' date parameters when printing reports. Now, date parameters without defaults will show a default value of the current date and the user can change the value, but cannot uncheck it. This solves issues where it was unclear that when the user unchecked a date parameter, the default date was used instead. The new process should be more explicit and clear. | |||
==Sampling== | |||
* Added: (case 33111) a saved searches page, which will allow the user to save and load favorite searches and share them with other users. | |||
* Added: most search filters can now be correctly saved to a saved search. | |||
* Added: support for loading saved searches back onto the screen. | |||
* Added: all date range filters are now saved 'relative' to the current date. | |||
* Changed: all filters now show a user-friendly label. Also, all options being shown that have no filter on them are suppressed in the default user description. | |||
* Added: save search button to the search page. Also, the saved search page is now the first place the user is taken. | |||
* Added (Case 34345) : We now have support for searching via batch. | |||
* Added (Case 29366) : Added work order title column to sampling history results when work order details is checked. | |||
* Fixed (Case 33745) : Only sending analysis options to the visualization screen that are selected, not all that are a part of that sample. | |||
* Fixed (Case 33745) : Saved searches that contain batch now load batch correctly | |||
* Fixed (Case 33745) : Layout no longers overlaps and cannot be resized to hide search buttons. | |||
* Changed: product batch searches should now filter the graph correctly. | |||
* Fixed: an issue where doing a search and displaying a graph, then doing another search, would not update the graph correctly. | |||
==Work Orders== | |||
* Fixed: an unnecessary 'error' beep that would happen when the user loaded a WO with a product batch selected. | |||
=Version 3.1= | |||
PS Change log version 3.1 | |||
REVISION 20664-20834 database version 310 | |||
==Analysis== | |||
* Added: the check thresholds dialog now has support for batch based thresholds. | |||
* Added: (case 30665) all the configuration pages on the analysis management screen can now be viewed even if the user does not have permission to edit those things. Instead, if they select one of those plants, they will see read-only information. | |||
* Fixed: the analysis scheduling page no longer shows severity classes from plants other than the one that is selected. | |||
==Crystal Reports Extension== | |||
* Changed: printer lists in the software are now displayed in alphabetical order. | |||
* Fixed: an issue where printer handles were not being cleaned up. | |||
* Added: (case 33904) support for report parameters of type 'SQL Clause'. These are not escaped before they are passed to Crystal reports, allowing certain reports to print correctly still. | |||
* Added: support for SQL Clause option in the parameter type dropdown. | |||
==Common Resources== | |||
* Added: the configure analyses page now suppresses any thresholds and choices that have a product batch associated. | |||
* Added: (case 30665) analysis configuration page now allows the user to view read-only analyses for plants they cannot edit at. | |||
* Changed: the view/edit option default popup can now be in read-only mode (useful for when a the user wants to test a default formula for options they cannot edit). | |||
==Configuration== | |||
* Added: each work order type can now say whether product batches are allowed (Show), not allowed (Hide), or necessary (Require) for work orders of that type. | |||
==Database== | |||
* Added: (case 27982) support for an optional location on product batches. | |||
* Added: support for work order product batches to be considered as part of value acceptabilities. | |||
* Added: 2 new permissions relating to setting batches on WOs. Neither are granted to existing users by default. | |||
* Added: (case 27982) support for work order types that specify whether product batches are required or allowed on work orders. | |||
* Added: support for report parameters that are put directly into queries and should not be escaped. | |||
* Fixed: an issue where some databases did not have a unique index on a couple mapping tables because they had duplicate entries in those tables. The duplicates have been removed, and unique indices added. | |||
* Fixed: an issue where documentfile couldn't be created on some MySQL database versions. The table creation is now more explicit and should not have an error. | |||
==Master== | |||
* Added: support for application-wide messagebox callbacks to be set and invoked. | |||
* Fixed: an issue where, if a computer was set up to capture crash dumps, but not transmit them, they were still transmitted. | |||
* Fixed: an issue where, if crash dumps were set to "Full", they were adding in information that could cause them to appear to be corrupted. | |||
==Products== | |||
* Added: (case 27982) the product filter now allows filtering by product batches' batch #'s. | |||
* Added: (optional) location to product batches. | |||
* Fixed: batch locations now load correctly. | |||
* Added: if the user chooses to configure a batch on the work order screen, (if possible) that plant/product/batch is selected on the products screen. | |||
* Added: when the user is 'editing' a batch, coming from the WO screen, the correct product and plant will now be selected first. | |||
* Fixed: an issue where copying and pasting a batch between plants might keep the old plant's location. Now, a location with the same name at the new plant will be selected, if possible. | |||
==Report Viewer== | |||
* Added: (case 34190) an issue where the report viewer screen might not allow good view of the parameter list at screen resolutions below the minimum supported application resolution. | |||
==Sampling History== | |||
* Fixed (Case: 29364): Expiration date values are encoded correctly for JSON and URL export. | |||
* Fixed (Case: 29364): Fixed issues with the new filters not passing to graphing successfully. | |||
==ITSQLFramework== | |||
* Added: the error reporting dialog now writes its queries out to the main database log, without overwriting the main query log. | |||
* Added: queries run as part of reporting errors to the error reporting database will now be logged in the main query log. This will improve debugging future issues with error reporting. In addition, any errors received while performing these queries will now write those errors out to the log. | |||
* Fixed: the application could sometimes take a particularly long time to open if the database credentials were incorrect. | |||
==Work Orders== | |||
* Added: support for choosing a top-level batch for the entire WO. | |||
* Added: a "configure batch" button that will take the user to the batch configuration area. | |||
* Added: when adding a new sample to a document with a batch selected, the product/location associated with that batch will automatically be applied to the sample. | |||
* Changed: the batch dropdown is now filtered to only those active batches at the current plant associated with products that the user could add to the current document. | |||
* Added: support for batch-specific choices in choice dropdowns. | |||
* Added: changing product batch on a work order now refreshes the options in all dropdowns, in case there are any batch-specific choices. | |||
* Added: there is now a permission required for setting an initial batch on a work order. | |||
* Added: there is now a permission required for changing an existing batch on a work order. | |||
* Added: the current work order type now dictates whether the product batch dropdown is visible and whether a value is required to be filled out before saving. | |||
* Fixed: a crash when saving if a new sample has no analysis selected. | |||
* Removed: duplicate error popups during save. | |||
* Fixed: (case 34121) previously, if the user saved a WO after viewing the change log page, the change log contents would be refreshed from the database twice, which could take a long time on some databases. Now, if the user is saving and closing, no reload will happen; if the user is saving and not closing the WO, the data is reloaded only once. | |||
=Version 3.0= | |||
PS Change log version 3.0 | |||
REVISION 19972-20675 database version 300 | |||
==Tools== | |||
* Added: all TrimTrailingZeros calls now have an argument that can specify whether the string argument is a locale string or a raw string. This solves some scenarios where raw strings were being assumed to be locale strings and were being incorrectly parsed. | |||
* Fixed: a crash (release mode only) when using an ITVector in a LoadMultiple operation when using SO_ImpLoadMultiple due to iterator invalidation. | |||
* Changed: ITDecimalNumbers now use bigint version 10.2, which now supports 64 bit integers better. | |||
* Performance: ITDecimalNumbers now load faster in most scenarios. | |||
* Changed: ITDecimalNumber::operator/ no longer rounds the result to the lowest of the inputs' precisions. When dividing by a whole number, this generally just rounded to a whole number. Now, the precision is the sum of the inputs plus one, so 10 / 3 is 3.3. | |||
* Fixed: an issue where ITDecimalNumber::GetDatabaseString was not trimming trailing zeroes correctly, depending on the user locale settings. | |||
* Changed: ITDragStatics now track the 'desired' offset separately from the current/UI offset. This solves a common issue where dialogs are initially small and then resized larger, causing the last desired position to be forgotten. | |||
* Changed: (case 31994) drag statics can now no longer chain move operations, which can cause stack overflow on some machines. | |||
* Fixed: (case 32117) an issue where viewing enough images in attachment managers over time could cause a crash, depending on the windows per-process GDI object count. | |||
* Reconfigured: all "Configure" menu options have been sorted into the "Edit" menu, as they were redundant. Edit->Options has been removed and its constituent pages have been moved to reasonable Edit submenus. | |||
* Added: icons for various Edit menus that did not have them previously. | |||
* Fixed: some issues with menus not being active/inactive at the right times of login. | |||
* Updated: (case 32836) the version of curl/SSL/zlib we use for contacting the update server has been upgraded. This adds support for the more modern TLS 1.2 and 1.3 SSL encryption. For this reason, there is a new file (zlib1.dll) that is required by the application. | |||
* Fixed: an issue where lists could crash when the user put focus into a dropdown with no auto-complete registered. | |||
* Fixed: dozens of potential crashes on all screens that could be caused by financial numbers. | |||
* Fixed: an issue where ITDateTimeCtrl::SetFormat could get stuck in an infinite loop. | |||
* Fixed: an issue where combos could crash if they were destroyed while the user was killing leaving an auto-complete edit. | |||
* Added: the third party image library has been rebuilt to add debugging features to try to debug crashes related to image viewing. | |||
* Fixed: {{case|31059}} a misspelling of an item in the extension list. The incorrect setting will be removed and the correct setting will be added on the next update. | |||
==Registration== | |||
* Changed: {{case|31058}} it is now easier to copy out of, paste into, and type into the registration code. | |||
* Added: better exception handling for crashes. | |||
==Analysis== | |||
* Added: {{case|28444}} when the user enters a option value or threshold for text or choice options, all trailing whitespace will be removed. | |||
* Fixed: {{case|33523}} an issue where an incorrect severity class would be used when inspecting value acceptability if a location was chosen. | |||
==Common resources== | |||
* Fixed: {{case|33523}} an issue where switching plants then choosing a location that exists at the previous plant as well may silently save the sample with the previous plant's location. | |||
==Configuration== | |||
* Added: configure->plants now saves in a single transaction so that an unexpected error or interruption won't lead to a partial change. | |||
* Fixed: an issue where resetting the Configure->Settings page wouldn't correctly roll back the changes and the current selection in the list would be lost. | |||
* Performance: saving after configuring users will no longer take a long time if the list of users is very long. | |||
* Added: saving changes to users is now a transaction, so if there are any issues, all changes will be rolled back, and the user will be able to try again. | |||
* Fixed: an issue where the user permissions page could throw database errors. | |||
* Fixed: the timezone shown in the session area in the corner of the system is now shown before the user logs in. Also, instead of showing SYSTEM as the default timezone, an accurate timezone will be shown. | |||
* Fixed: if the user gets an error while saving changes to users, re-attempting the save should now correctly retry the save operation. | |||
* Fixed: a database error and crash that could occur if the database connection could not be established. | |||
* Changed: if a database connection could not be established, the connection timezone will now display as Unknown. | |||
==Database== | |||
* Fixed: e_failed_data_clone_reporter now correctly inspects recent logs using server timestamps. | |||
* Added: f_get_plant_time_zone, a new function that can be used as part of reports that wish to display dates in plant timezones. | |||
* Fixed: {{case|31219}} an issue where warnings were being unnecessarily logged to the mysql error log in some versions of MySQL. | |||
* Changed: setting types have been turned into an enum, as it only accepts certain values and this takes less space. | |||
* Fixed: {{case|31491}} an issue where multiple users subscribed to nightly reports might cause all such users to get multiple emails. | |||
* Fixed: an issue where alert filters might not always work right if there were a lot of items to examine for the filters. | |||
* Fixed: {{case|31491}} an issue where one schedule could fire alerts for a different schedule. | |||
* Removed: a possible issue where p_alert_trigger was called for schedules that were not being triggered in the current period. | |||
* Added: tables for tracking document management, their attachments, and plants. | |||
* Changed: {{case|32405}} deactivated thresholds now correctly show an "Applicability" of "Deactivated". This should make the "what thresholds apply" popups clearer when it comes to deactivated thresholds. | |||
* Added: the event that checks to ensure that data clone operations did not fail now attaches the name of the database it ran from if an unknown error occurs. | |||
* Added: stored procedures for showing SOP documents on mobile devices. | |||
* Fixed: yearly data clone rules will no longer throw a database error. | |||
* Fixed: possible issues with right-click graphing due to bad escape characters in the last version. | |||
* Performance: {{case|33255}} locations that have millions of rows in their print queue history now take .2s to load print history on the report viewer screen instead of 8s. | |||
* Fixed: {{case|33304}} certain issues that could occur on MySQL 5.7 since CAST operations would throw errors instead of returning NULL. | |||
* Fixed: the before insert trigger on option values now handles invalid statuses correctly. | |||
* Added: reportqueuesummary table, which is kept up to date as print jobs are executed. This makes loading print history meta data faster in the report viewer screen. | |||
* Added: support for Currency report parameters. | |||
* Added: {{case|32569}} new tables for managing user dashboards. | |||
* Added: {{case|27982}} the new productbatch table, which will soon accommodate product batches. | |||
* Added: productbatchid to workorders. | |||
* Fixed: e_extend_schedules had an error in it that was causing it to fail. | |||
* Fixed: an issue where the check acceptability popup would display "Wrong severity class" when "Wrong plant" seems more appropriate. | |||
==Crystal Reports Extension== | |||
* Added: {{case|31106}} if report parameters have 'defaults' and are not specified by a print job, those defaults will now automatically be passed to the report to be printed. | |||
* Added: saving modifications to reports now happens in a single transaction so that an unexpected error or interruption won't lead to a partial modification. | |||
* Fixed: {{case|31379}} an issue where some parameters would go into the print queue in user visible formatting instead of 'raw' formatting. This means that if the user was emailing or delaying a print, it might fail if the user's date/datetime/number locale formatting was different enough from what crystal was expecting. Now, all print jobs log parameters as 'raw' numbers and dates. | |||
* Changed: the Edit->reports option is now under Edit->Global Preferences->Reports so that users don't get confused with editing their printer options. | |||
* Added: (case 32992) string parameters sent to crystal reports now escape certain wildcard and string characters that could cause errors when printing. | |||
* Added: (case 33260) Crystal "Number" parameter types now support fractional values up to 6 digits of precision. | |||
* Added: support for Crystal "Currency" parameters. | |||
==Documents== | |||
* Added: {{case|19345}} a new screen for management of documents, and associating them with plants, products, etc. | |||
* Added: various extra columns to the attachments area. | |||
* Added: a basic version of the document associations tab now saves and loads. The user can choose various filters, and they should narrow down by plant now. | |||
* Added: support for notes on each version of a document. | |||
* Added: 'mobile friendly' checkbox to documents. If this is checked, and the active document version is not mobile friendly, the user is warned. | |||
* Added: optional review date to the document info. | |||
* Changed: association rules now cannot choose a severity class unless a plant is chosen. | |||
* Added: tooltip text to various fields on the document detail page. | |||
* Added: attention icon to document versions. One icon will show the 'active' version (newest file that is approved and has its effective date passed). Another icon shows which attachments are mobile friendly. | |||
* Added: a description of the screen to the document version screen. | |||
==EDocuments== | |||
* Changed: any document parameters (like {?table.field}) that could not be found are now replaced with an empty string instead of being left in. | |||
==Home== | |||
* Added: support for {?session_token} as part of the home screen URL template. The default for the home screen URL now includes the {?session_token} as part of the template. | |||
==ITrack Online== | |||
* Added: a new global hotkey for opening a given URL in the internal browser. The default hotkey is F12. | |||
* Added: support for opening a given web page while sending POST and HEADER data along with. This is useful for some internal web page operations. | |||
* Added: if a URL is opened that requires additional data to be sent, and ITrack Online cannot be found, the user is shown a more specific error. More info is sent along with all web errors. | |||
* Added: if a URL is opened that requires the internal browser and the browser type is set to something other than "Internal", Internal will still be used. | |||
* Changed: (case 5938) to accommodate the module in different products, this module has been renamed just "Online" in the application. | |||
* Added: support for OpenURL requests to force in an external browser, useful for launching a web page from a modal popup. | |||
* Fixed: (case 32040) an issue where data would not be passed to the internal shipping app correctly. | |||
* Changed: when building a POST request, key/value pairs are now encoded with CURL, as the previous methods did not encode correctly. | |||
* Fixed: an issue where the last piece of data passed to a web page through a POST request would be left off. | |||
==Login== | |||
* Fixed: an issue where the plant dropdown was not in the tab order correctly. | |||
* Changed: f_get_value_acceptability and p_check_applicable_thresholds no longer use the first severity class at a plant if no default is selected. This should make severity class based thresholds more easy to understand. | |||
* Added: new permission for controlling management of the new product batches. | |||
* Added: analysisoptionchoice (option thresholds) now has an optional product batch. | |||
* Added: testing option values for acceptability now considers optional product batch. | |||
==Master== | |||
* Changed: when updater.exe is downloaded, it is applied with a move file instead of a copy file so that the old file is not kept around. | |||
* Added: the database update downloader will write the file Updates/UpdateQueryList.sql with all the queries that were parsed out of the main database update file for debugging purposes. | |||
* Fixed: an issue where a comprehensive database update would not correctly handle version tags unless they were all uppercase. Now, version tags are case insensitive. | |||
* Fixed: (case 33445) an issue introduced by recent windows changes where crashes were not causing any error popups. Now, the original behavior should be restored. | |||
* Added: double-clicking the updater status area will now always show the updater detail popup, even if there are not updates to apply. | |||
* Changed: if there are no updates to apply, the update downloader dialog will no longer show an apply button. | |||
* Changed: the update downloader no longer cuts off part of the "do you want to restart to apply updates" message. It now also says how many updates need to be applied. | |||
* Added: (case 33086) new types of crashes and unexpected behavior are now caught by the application and reported with the error reporter. | |||
* Added: if no debugger is attached, the Debug button is now hidden in the error report popup. | |||
* Added: now, crashes that happen anywhere in the application should be reported to the user. Before, depending on what was happening, they could be missed, causing the application to just close. | |||
* Added: if the user gets a crash or other unexpected termination of the application, a .dmp file and a .png file are written to the %TEMP%/ITrack/CrashDumps directory. This file should help ISoft debug the crash. | |||
* Added: when a crash cannot be recovered from, the "Ignore" button on the popup should now be hidden. | |||
* Added: new ini settings that control the crash dump information that is generated and uploaded to the ISoft servers: | |||
** "errorreporting" -> "crash_dump_generation" -> valid values: "small", "full", "none". The default is small, which generates minimal mini-dumps (generally about 9KB), full generates full crash dumps, which can be closer to 1MB after compression. | |||
** "errorreporting" -> "send_crash_dumps" (default True). If true, the crash dump file specified above will be transmitted to ISoft servers in addition to saving the file locally. | |||
** "errorreporting" -> "send_crash_screenshots" (default True). If true, an 'at crash time' screenshot will be generated and transmitted to ISoft servers in addition to saving the file locally. | |||
* Added: if the user experiences crashes but cannot upload those crashes, they will now be logged to a errorlog.xml file that is saved in the %TEMP% directory, like the crash dump files. When ITrack is launched, these queued error reports will be uploaded, including crash dump files and screenshots. | |||
* Fixed: some minor issues with printing the application screenshots. | |||
==MySQL Connection== | |||
* Performance: checking to see whether the database connection is live no longer attempts to connect if the config is invalid. This makes application startup slightly faster. | |||
* Changed: START TRANSACTION; COMMIT; and ROLLBACK; are now always written to the log. They were not always logged before. Also local date/time stamp of occurrence should be consistent with other queries. | |||
* Fixed: {{case|31215}} an issue where the user could get a database error and hit 'retry' in the middle of a transaction (such as document save). This is not safe because retry won't retry the queries before that one. Now, if the user gets an error in the middle of a transaction, the only option will be "Ignore" (meaning continue). They will generally have the entire transaction rolled back and they can retry by hitting save again. | |||
* Fixed: {{case|31144}} an issue where we were not correctly suppressing mysql auto-reconnect behavior. This was supposed to be disabled for {{case|31144}} to catch implicit reconnects in the middle of a transaction (causing a rollback). This confusion lead to session variables such as @ITRACK_USER_ID and the connection timezone to not get properly reset on reconnect, leading to issues in the logs or other areas that rely on these settings. | |||
* Changed: the "database connection failed, do you want to configure?" popup is now phrased more precisely. | |||
* Added: (case 33025) previous save status now gets set back to None at the end of a save operation (Commit or Rollback) as well as Clear to avoid an issue where attempting to save after calling Rollback might cause a new object to be created. | |||
* Fixed: a possible unhandled exception crash that could occur if the user could not connect to the database. | |||
* Changed: if a query fails because of no connection, it will no longer try 3 times if reconnecting fails. This should speed up queries failing due to no database connection. | |||
==Products== | |||
* Added: new product batch page. This area allows a user to add or edit plant specific batches to a product which can optionally have an expiration date. Soon, specifications will be able to reference specific batches. | |||
* Added: product batch screen now has an embedded copy of the product specifications tab. In this pane, the user will see all specifications that reference that product batch. | |||
* Added: copy/paste product batch buttons. There is also a Paste With Specifications button that will also copy all specifications on the original product batch. | |||
* Added: show/hide inactive batches filter check. | |||
==Report Viewer== | |||
* Fixed: a memory leak caused by reprinting reports from the print queue. | |||
==SamplingHistory== | |||
* Fixed {{case|29364}}: Added filtering for expiration dates and lot numbers on recipe analysis options. | |||
* Added: {{case|30664}} a print button that allows the user to print the selected analysis options for the currently visible search results. | |||
* Added: session_token to the graphing URL. This will be involved with upcoming security changes. | |||
* Fixed: an issue where the Apply button could 'float' over the result list if the user had permission to change samples on the sampling history screen. | |||
* Fixed (Case: 29364): Expiration date filters now require both dates to be set. If one is unchecked, both will be cleared. If one is filled out and the other is blank, it will be copied into the blank field. | |||
* Fixed (Case: 29364): Expiration date values are encoded correctly for JSON and URL export. | |||
==Settings Framework== | |||
* Added: filter to the Settings page of the configuration screen. | |||
* Performance: {{case|33255}} loading aggregate print history on the report viewer screen is now much faster. | |||
==SQL Framework== | |||
* Added: tools for screens to easily retry an entire transaction in the case of deadlocks or lock wait timeouts. | |||
* Added: support for turning off auto-retry at the database connection level. This is useful when retrying transactions manually. | |||
* Added: transaction tools now turn off auto-retry so that we can retry at the transaction level. Failures that cause a transaction auto-retry are now logged to the query log just like automatically retried queries. | |||
* Changed: the debug button is now tied exclusively to whether a debugger is attached to the process. This allows debugging crashes in release mode. | |||
* Added: if crash dumps or crash screenshots are generated as part of a crash, they are now uploaded to our error database as part of the error report. | |||
==Work Orders== | |||
* Added: {{case|28444}} when the user enters a option value or threshold for text or choice options, all trailing whitespace will be removed. | |||
* Changed: when setting the timezone of a WO clone rule, if the connection timezone is set to SYSTEM, the timezone that gets saved will now be the true timezone. | |||
* Added: if no work order type is selected, the screen now tells the user that that is required instead of throwing a database error. | |||
* Fixed: overactive change detection that would occur when saving a new WO (the user would be asked if they wanted to save right after the save completed). | |||
* Fixed: an issue where date created was not a readonly field even though the user could not change it. | |||
=Version 2.8= | |||
REVISION 19703-19971 database version 280 | |||
==Master== | |||
* Changed: the error reporting system now formats Windows COM errors in a more easy to understand format. These errors could be reported by partner applications, such as QuickBooks, VINPower, and Crystal Reports. | |||
* Added: company code box to the about box. There is also a 'copy to clipboard' button next to it. | |||
* Changed: product code was renamed to workstation code and has become an edit for easy copying. There is now a 'copy to clipboard' button next to it. | |||
* Added: the About dialog now has field and column tooltips. | |||
* Added: the about dialog now has a 'updater version' column that shows the version of each module for the current install according to the versionlist table. | |||
* Added: the about dialog now saves and loads its last known position. | |||
* Changed: the query log will now have a default comment style and automatically run reconnect queries across all products. Previously, they were not run until the login dialog was displayed. | |||
* Added: the queries that are run automatically when the database connection is established (or reestablished) are now logged to the query log. | |||
* Performance: minor efficiency gains every time a query is run. | |||
* Added: the status bar now has a couple more areas designed to store information about the site the user is logged into as well as the timezone of the connection. This is useful for scenarios where users are logging into systems in the cloud, or into sites with different timezone settings. | |||
* Changed: before logging in for the first time, the site and timzone indicators will now correctly get reset. | |||
* Fixed: a crash that could happen when the user attempted to change a status pane. | |||
* Changed: reconnect queries are only run once less when the application launches. | |||
* Added: support for retrieving the current database connection time (or current system time if no database connection could be found). This is used by date/time pickers across the software as the 'default' date/time to show. | |||
* Fixed: {{case|29841}} a bug where the mysql parsing logic would break if a string enclosed by double-quotes contained a single quote, breaking subsequent DELIMITER statements. | |||
* Fixed: an issue where a double-quote enclosed string containing unescaped single quotes could cause issues, as the string would be changed to single quotes. | |||
==MySQL Connection== | |||
* Changed: increased the number of times the database connection will automatically retry a query due to a server disconnect to twice instead of once. | |||
* Added: {{case|29287}} basic support for getting/setting a connection timezone on the database connection. | |||
* Fixed: an issue where reconnect queries could be run before the connection was established. | |||
* Added: GetConnectionTime, which returns the current timestamp, according to the server. This will be useful when comparing local timestamps to saved server timestamps and saving objects with the correct time, despite computers in different timezones. | |||
* Performance: to make code faster, when we get a connection time, the UTC offset is cached for calculating subsequent connection times. This offset is recalculating any time the hour changes or the connection timezone is changed. | |||
==Crystal Reports Extension== | |||
* Added: when adding a report from a file, the user visible report name and parameter names now automatically format more human readable forms, using our database dictionary. Spaces are automatically added between capital letters. | |||
* Fixed: {{case|24372}} an issue where report descriptions with newlines would sometimes be turned into two line breaks. | |||
* Fixed: version was not being exported with the report. | |||
* Added: {{case|24372}} a DELETE statement is run to remove all parameters that are not in the current list, to possibly remove historic unused parameters. | |||
* Added: support for setting logging timestamps based on connection timezone in those cases where its different than local timezone. | |||
* Changed: if a date/time parameter being sent during a print job is invalid, the current connection time will be sent instead of the current local system time. | |||
* Changed: {{case|29286}} all datetime values passed to Crystal Reports as report parameters are now converted from the timezone of the local database connection to the timezone of the server, as that is what the crystal report will be querying in. This should avoid any misunderstandings in situations where these are in different timezones. | |||
* Fixed: {{case|30331}} an issue where numbers with thousands separators were not being sent to print jobs correctly. | |||
==Common Resources== | |||
* Fixed: an issue where the next/previous page buttons in the log viewer didn't work. | |||
* Changed: {{case|29948}} the log viewer now attempts to find child objects using parentrowid instead of looking for objects by inserted row, as that can be much slower. | |||
==Data Management== | |||
* Added: the column order/widths for the field tree and 'todo' list now load and save. | |||
* Added: {{case|5432}} import type fields now have a 'rank' for ordering fields by something other than display name. | |||
==SQL Framework== | |||
* Added: The ability to set what type of 'connection times' returned to the application. By default, it uses 'local time' which is being used for all products that are not ready to have timezones controlled by the database yet. | |||
* Added: the ability to convert from date/times in the connection timezone to date/times in the server timezone as well as UTC+0 time (GMT timezone) | |||
* Performance: refactored the way normal queries are run to make the common case fast (running queries on the default connection no longer requires a lookup). | |||
==Common Resources== | |||
* Fixed: {{case|29700}} options that are not continuous (such as text, choice, or boolean) now allow the user to choose between Equals and Not Equals in the value constraint dropdown. Also, the constraint that applies to a required option now hides the Above and Below options for discrete option types (text, choice, boolean). | |||
==Product== | |||
* Fixed: {{case|29700}} specifications on options that are not continuous (such as text, choice, or boolean) now allow the user to choose between Equals and Not Equals in the value constraint dropdown. Also, the constraint that applies to a required option now hides the Above and Below options for discrete option types (text, choice, boolean). | |||
* Fixed: {{case|30030}} an issue where the user could enter specifications that were dependent on choice options above or below a specified value, despite the fact that equals and not equals are the only options. | |||
==Database== | |||
* Fixed: {{case|29444}} analysisoptionvalue.filledout gets set to NOW() if values are copied during a clone | |||
* Added: database version 2.7.1, which releases several new database logging triggers. | |||
* Fixed: an issue where text and choice options could have > or < comparisons in the previous version, though its not allowed anymore. | |||
* Fixed: version 2.6 was not correctly changing the ARCHIVE_log_change table to engine=archive due to a missing index. This is being done again to help customers save hdd space. | |||
* Added: {{case|29948}} a new column to the log called parentrowid. This is designed to make lookups faster. Finding entries by the document they were attached to is now possible. | |||
* Changed: parentrowid has been set retroactively for all samples and analysisoptionvalues. | |||
* Changed: {{case|29286}} many database columns that were date-times have been changed into TIMESTAMP columns. | |||
* Fixed: f_get_last_referenced_schedule_instance was using tinyint for its return type, causing it to not work correctly. | |||
* Changed: the procedure and event that populate schedule instances are now timezone aware. | |||
* Changed: {{case|30279}} the event that reports failures in data clones now waits an hour before sending failure emails. | |||
* Added: dataclone records now store the timezone of the user that specified what time of day to schedule the clone operation for. | |||
* Changed: f_get_next_schedule_date now takes the timezone of the dataclone entry into account when scheduling. | |||
* Added: plant.timezone, a new field to track what timezone a plant prefers to display and enter values in. | |||
* Changed: scheduleinstance is now using timestamps instead of DATETIMEs, and an unused column has been dropped. | |||
* Changed: many events have been modified to use TIMESTAMPs instead of DATETIME values wherever possible. | |||
* Changed: p_clone_scheduled_data now uses the existing f_get_next_data_clone_date to see whether to clone the data during a single trigger execution. This should resolve any issues where the reported 'next execution date/time' and the time the data is cloned would disagree. This also makes the process respect plant timezone selections. | |||
* Fixed: e_failed_data_clone_reporter now correctly inspects recent logs using server timestamps. | |||
* Added: f_get_plant_time_zone, a new function that can be used as part of reports that wish to display dates in plant timezones. | |||
==Analysis== | |||
* Fixed: {{case|30030}} an issue where the user could enter text/choice/boolean option specifications that would be above or below a specific value. | |||
* Fixed: an issue where some dropdowns in the specifications list would grow larger as the user clicked into them again. | |||
* Changed: schedules now use current connection time instead of local time (for those cases when they're in different timezones). | |||
* Changed: in order to avoid issues with start date and end date due to timezones, the time of day to start the schedule on is now required. | |||
==Home== | |||
* Changed: when loading WOs and samples, now only analyses required to display entries is loaded. This makes the home screen faster for plants with huge numbers of thresholds or analyses. | |||
* Changed: to match mobile, the 'blue' work orders will now be work orders due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing. | |||
==Login== | |||
* Added: {{case|29287}} support for setting the connection timezone based on the timezone of the plant the user chooses to log into. | |||
* Changed: when the user attempts to login, all saved login attempts and password reset tokens will be properly set and compared, no matter what the time and timezone of the local machine is. These operations will now use server time. | |||
==Configuration== | |||
* Added: configure->plants dialog now has a field for choosing the timezone for each plant. | |||
* Changed: configure->plants popup now has tooltips on the controls. | |||
==Work Orders== | |||
* Added: timezone column to the automatic work order cloning interface. This field defaults to the current plant time-zone. | |||
* Changed: scheduling an automatic WO now uses the timezone of the plant the work order is at. | |||
* Changed: work orders now use current connection time instead of local time (for those cases when they're in different timezones). | |||
* Changed: in automatic WO scheduling, the 'blue' work orders will now be work orders due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing. | |||
* Fixed: an issue where the automatic WOs page wouldn't empty previous results if the user did another search. | |||
* Fixed: {{case|30723}} an issue where a user could not choose a default analysis for a work order type unless that analysis was in use at plant # 1. | |||
==Investigation== | |||
* Changed: in investigation history, the 'blue' documents will now be the documents due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing. | |||
==Suppliers== | |||
* Changed: for supplier attachments, the 'blue' documents will now be the documents expiring in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing. | |||
==Graphing== | |||
* Changed: {{case|29286}} the datetime values passed back and forth for sample graphing are now in UTC times so as to avoid any ambiguity for graphing. | |||
==Controls== | |||
* Added: all date/time pickers now default to the current date/time of the default database connection instead of the local system time. | |||
=Version 2.7= | |||
REVISION 19408-19702 database version 270 | |||
==General:== | |||
* Added: (case 28363) support for European style numbers and currency figures. Mainly, if the user's windows settings are set to use comma instead of period for the decimal separator, the software will correctly read and display figures. | |||
* Changed: made function calls more specific to distinguish between operations that operate on raw numeric strings, user formatted numeric strings, and database strings. | |||
* Added: various locale currency and number API functions for reading windows API locale settings. | |||
==CommonResources:== | |||
* Added: the analysis management screen now supports a "Not Equal" constraint both for thresholds as well as dependent choice options. | |||
* Changed: renamed the "N/A" constraint to Equals, as that is what it was being treated as. | |||
* Added: numeric options now support Equal and Not Equal for constraints. | |||
==Database:== | |||
* Fixed: (case 28043) p_configure_logs now ensures that the logs will allow entries from scheduler events. | |||
* Added: (case 27676) analysisoptionchoice now supports Not Equal for thresholds as well as dependent choice options. | |||
* Added: f_get_value_violates_rule. This function does the work of comparing a value to a threshold, including casting the values to native types. This now supports Equal and Not Equal for all data types. | |||
* Changed: p_check_applicable_thresholds has been greatly simplified and now uses the same code f_check_value_acceptability does, eliminating situations where they disagree. | |||
* Changed: f_find_applicable_thresholds now supports the new Not Equal relationship. | |||
* Changed: f_get_value_acceptability now supports Equal and Not Equal for all data types. | |||
* Fixed: f_get_value_acceptability was treating Date Times as Dates when comparing them. This would've thrown off the acceptability comparisons they made. | |||
* Changed: (case 27675) 'auto-close investigation' has been replaced with the defaultstatus for an investigation rule. This way, the user can specify whether automatically closed investigations are ignored, cancelled, closed, etc. | |||
* Added: (case 27675) support for investigations having a status of Ignored. This is useful for investigations created just to send an alert. | |||
* Fixed: p_cache_all_option_correlations no longer runs expensive calculations of a system is not configured with correlations in mind. This should improve database speed. | |||
* Fixed: an issue where the data clone failure notification event could fail if there was more than 64Kb of failures to report. | |||
* Added: (case 25176) the ability to tie an alertsubscription to a specific investigation trigger id. | |||
* Added: if an investigation rule is deleted, any corresponding alert subscriptions now get deactivated automatically. | |||
* Added: (case 25176) support for alert subscription rules that will only fire for investigations created by a specific investigation rule. | |||
==DataManagement:== | |||
* Changed: the database that backup tables are created in now defaults to the current database instead of `backup_importer`. This is because not all customer setups are able to create or put tables into other databases. | |||
==Investigation:== | |||
* Fixed: (case 27648) the results column in the investigation screen now shows the option value that caused an investigation (if it was triggered by a rule) instead of just the failed values. | |||
* Added: (case 27675) support for investigations in a status of 'Ignored'. This can be used for investigations that are created just to send alerts. By default, the investigation search hides these ignored investigations. | |||
* Added: the auto-close investigation checkbox on investigation rules has been replaced with a default status column, which allows the user to specify whether automatic investigations start Closed, Open, Ignored, or Cancelled. | |||
* Added: (case 25176) if a user deletes an investigation rule, they are now notified that any alert subscriptions that are 'listening' to that particular investigation rule (if any) will be automatically deactivated. | |||
==libITSQLFramework:== | |||
* Fixed: an issue where the 'footer' of a query in the query log would be written sometimes after another query run in order to report the error. | |||
* Added: (case 28838) if a mysql connection gets a lockwait timeout error (1205) the query in question will automatically be silently retried up to 2 times before the user is presented with an error report. This should result in the user seeing fewer of these errors, though it does not necessarily make the error itself more rare. Auto-retry is MySQL's suggested error handling method in these cases. | |||
* Added: (case 28838) if a mysql connection gets a deadlock error (1213), the query will automatically be silently retried up to 2 times before the user is presented with an error report. Unfortunately, this will not happen on queries that are in the middle of another transaction. This is because deadlocks automatically roll back the entire transaction, requiring the operation be retried. | |||
* Added: query errors are now logged to the query log. Also, auto-retries and auto-reconnect operations get a special log entry for better debugging. | |||
==Login:== | |||
* Added: (case 28838) support for a special debugging mode in the database. | |||
==Master:== | |||
* Added: the RemoveInitSetting function now returns the last found value before deleting it. This allows a relatively common case where we take the value from an ini setting as we delete it an move it into a database setting. | |||
==ReportViewer:== | |||
* Fixed: a possible crash that could occur when previewing a report if some very rare memory issues happened. | |||
==Updater:== | |||
* Fixed: (case 28086) an issue where a query that was missing a close parentheses ")" could keep subsequent queries from being parsed correctly, even though it had a semicolon. | |||
* Fixed: an issue where an open, unclosed parenthesis might disrupt the rest of the parse if it was in a function definition. | |||
* Added: in debug mode, Master will now write all script files to the updates directory. In addition, the intermediate query string is written to ComprehensiveUpdate.sql and the parsed query list is written to UpdateQueryList.sql | |||
==Control Chart== | |||
*Added: (case 28699) option to group datapoints by "none" | |||
*Changed: (case 28699) font size on test failures and deviation namers to the right of each graph to allow space for larger numbers | |||
*Added: (case 28699) a datapoint limit before the graph suppresses (999 - though it starts to look cluttered after 50) | |||
*Changed: (case 28699) control lines are now thicker and do not have datapoints at each end | |||
*Fixed: (case 28699) tests were always showing 'Pass' when grouping by 'None' | |||
=Version 2.6= | |||
REV 19095-19407 Q3 2017 release 2.6 database version 260 | |||
==General:== | |||
* Performance: slight speed increases when adding rows and columns to a list control. | |||
* Fixed: (case 27068) an issue where changes to a dropdown in a list control could cause columns to be added or removed from a list could cause a crash. | |||
* Changed: (case 26939) the default line coloration in all products now use a darker, greyer, less green color instead of the previous, lighter green. This should help resolve some of the issues users are having with visual fatigue and/or issues with low-contrast for colorblind individuals. | |||
* Fixed: (case 27250) a freeze caused by calling GetLastVisibleItem on a CTreeCtrl in some scenarios. This only seemed to happen when deleting items from the tree ctrl when there was enough items in the tree to require scroll bars. | |||
* Changed: double-clicking a column header resizes the column to minimum width including data and the header name now. | |||
* Fixed: resizing a column that contained icons but had right-aligned text was incorrectly making the desired column width very large. | |||
* Fixed: an issue where setting focus into an ITListCtrl after hitting a search button or tabbing in would scroll to the right side of the item instead of the left. | |||
* Fixed: (case 27649) an issue where non-locked tree controls would not draw correctly after the user expanded or collapsed an item. | |||
==Analysis:== | |||
* Fixed: (case 27052) an issue where the user was prompted to fill out the 'empty' item on the "Analysis Scheduling" tab, keeping the user from saving the screen if they ever opened that tab of the screen. | |||
* Added: support for a new argument when calculating value acceptability in the 'check thresholds' popup. | |||
==CrystalReports:== | |||
* Changed: as per user request, the "remember printer choice" checkbox now always defaults to unchecked. This should only have significant impact on new users, who have no previous printer selections. Said users will have to manually check 'remember printer choice'. | |||
==Configuration:== | |||
* Fixed: (case 27588) configure->reports now correctly uploads the report file when you add a new report. | |||
==CommonResources:== | |||
* Added: (case 22293) a new 'change log page' which has all the required functionality to display entries in the audit log tables for a specified table and its child tables. | |||
* Fixed: sometimes choosing an analysis on a sample, then adding another blank sample could add empty option columns that were not useful. | |||
* Fixed: (case 27068) a crash that could occur when choosing an analysis type. | |||
* Fixed: (case 27068) analyses that were not in use at the current plant (or were inactive) were being shown in the analysis dropdown, despite the fact that they could not be chosen. | |||
* Fixed: (case 27273) an issue where saving a WO whose type allows 'Both' Ingredients as well as Products might keep clearing out all the product choices on save. | |||
* Changed: the change log page has a row id as well as a row description to make it easier to tell what changed. | |||
* Added: a new checkbox near the change log detail: "Show historical value for unmodified fields". It is checked by default, and it shows other fields for that row that were NOT modified, and the values shown are whatever the values were at that moment in time, according to the logs. All fields that were not modified are greyed out. | |||
* Added: colorization to updates/inserts/deletes. | |||
* Fixed: the from/to date pickers in the change log now correctly set the dropdown to Custom if they are changed. | |||
* Added: (case 27256) a new icon that displays next to any option value if that option value has been edited from the first value that was saved. | |||
* Changed: the label and acceptability columns in the sampling detail interface now have a grey background to show that they are read only. | |||
* Added: (case 21713) the analysis and recipe management pages now have a field for filtering displayed items based on name, category, or option name. | |||
==Database:== | |||
* Added: the useraccess table now has a user account id for the currently logged in user. This can be different than the other user account if an administrator performs an override for another user. | |||
* Changed: analysisoptionvalue.lot is now varchar(25) instead of unsigned integer to allow for alpha-numeric input. | |||
* Fixed: an issue where f_get_report_printer was ignoring the report type argument. | |||
* Fixed: p_backup_table now does INSERT IGNORE to avoid primary key collisions. | |||
* Fixed: (case 27284) scheduled reports now allow more recipients (longer email destination field) | |||
* Added: (case 26378) emailbcc column to the reportmassmailtemplate and reportqueue tables. | |||
* Changed: the ARCHIVE_log_change and ARCHIVE_log_changegroup tables now use the ARCHIVE engine, trimming 90% of hard-drive consumption for those tables. | |||
* Added: ARCHIVE_log_change and ARCHIVE_log_changegroup tables are now created if they didn't exist before. | |||
* Added: e_archive_change_logs event, which weekly archives all log entries that are at least 1 year old. This even existed only on some databases, and generally had a shorter time limit (4 weeks for example). | |||
* Added: p_configure_log_tables, currently run manually, which turns the string columns of `table` and `column` into enums with all possible options in the enum. This makes the tables and indices much smaller, and faster to look up. | |||
* Fixed: (case 27879) an issue where investigation rule checking (p_check_investigation_rule) was trimming the last character off of the sample id and sample value that triggered the investigation. | |||
* Fixed: (case 27879) an issue where cloning a WO, with values, such that a new investigation would be triggered based on those values, would throw an error because the 'last modified' date on the values was NULL. The investigation rule checker is now compliant with this scenario, but also, cloned values have the time of cloning set as their last modified date. | |||
==Graphing:== | |||
* Added: (case 6001) support for WO #, tag #, WO title, WO internal notes, sample comments, and sample findings (all with wildcard support) to the graphing URL. | |||
==Investigation:== | |||
* Fixed: (case 22788) an issue where resolving an investigation would not set the close date. | |||
* Changed: (case 22364) the plant column in the investigation rules page is now always visible, and the option "All" is now present. If the user chooses "All", the investigation rule applies at all plants. | |||
* Changed: location is grayed out if the user chooses to create an investigation rule for all plants. If no analysis is chosen, the analysis option is grayed out. | |||
==Login:== | |||
* Added: there is now a bolded prompt above the login button that gives the user more information about the verification/authentication process. | |||
* Fixed: an issue where the user could edit the username during authentication when they were not supposed to be able to. | |||
* Fixed: (case 27043) an issue where the 'first time login' popup would not let the user set their first password correctly. | |||
==Product:== | |||
* Added: (case 21713) the suppliers page now has a field for filtering the results based on supplier contact or company name. | |||
* Added: the ingredients/products page now filters based on category as well as name. Also, filtering the results will keep the previous selection if it matches the new filter. | |||
==ReportViewer:== | |||
* Fixed: (case 27079) an issue where the mass mailer screen might throw a query error during 'find recipients' if any of the parameters were dates. | |||
* Fixed: when mass-mailing reports, the email address can now be edited to values that were not found in the system previously (new emails). | |||
* Added: (case 26378) BCC field to the mass-mailing system. | |||
* Fixed: an issue where reviewing the report queue would not show the value that was sent as part of the print operation. | |||
* Changed: report parameters in the report queue now use the 'user visible name' for the parameters, like other screens (where possible). | |||
* Added: (case 26378) the mass-mailing page now shows a progress dialog during the mass-print/email operation that shows the user how far along the process is, and gives a cancel button. | |||
==Sampling:== | |||
* Added: (case 6001) support for WO #, tag #, WO title, WO internal notes, sample comments, and sample findings (all with wildcard support) to sampling history search and graphing. | |||
* Changed: the date range dropdown no longer has a criterion selected by default. This better matches how all the other filters start out empty. | |||
* Fixed: an issue where the show inactive checkbox might still be visible even when it is supposed to be hidden due to the screen size being too low. | |||
==SettingsFramework:== | |||
* Fixed: an issue where user settings were loaded multiple times when a user logged in. | |||
* Fixed: (case 27056) an issue where the report printer configuration was showing all report types instead of all report printer types. | |||
==TransactionList:== | |||
* Fixed: (case 27377) an issue where sometimes fields and filters would not correctly add the required JOINs to the query, causing database errors. | |||
==WorkOrders:== | |||
* Added: (case 26892) lot #'s can now contain letters other non-number characters. | |||
* Added: (case 22293) a new tab in the work order detail for viewing the log of all changes that have been made to the loaded WO, its samples, and/or the option values on the samples. | |||
* Added: the change log tab now shows user-friendly column/table names as well as user-friendly values using auto-complete lookups already loaded by the WO screen to avoid further delays from new queries. | |||
* Added: the change log page now shows the result and default value log entries displayed the same way the user normally views that data (dates and numbers are formatted to how the user expects). | |||
* Fixed: all option values were getting their 'last modified' updated when any value got changed. Now, only the option values that are modified will be marked as modified. | |||
==Reports== | |||
===Analysis Change Log=== | |||
* Added: (case 26024) a new report that displays information on changes to analyses from the change log and archived change log | |||
* Added: (case 26024) event, affected analysis, and a Category: Analysis parameter | |||
* Added: (case 26024) analysis option and choice. | |||
* Changed: (case 26024) the report to Landscape | |||
===Certificate Of Analysis=== | |||
* Added: (case 27360) Acceptability and Threshold Range options, which show or hide base on a parameter | |||
* Changed: (case 27360) tidied the report | |||
===Choices & Thresholds=== | |||
* Added: (case 24508) product parameter | |||
===Control Chart=== | |||
* Added: (case 24508) product parameter | |||
* Changed: (case 24508) changed analysis parameter and option parameter into a combined Category: Analysis: Option parameter | |||
===Location Analysis Barcodes=== | |||
* Added: (case 26061) a new standard report that will print location analysis barcodes that match the filters for the current plant, grouped by ancestor location and analysis. It also prints instructions on how to use the scanner to add the analysis/location to work order. | |||
===Percent Positive=== | |||
* Added: (case 24508) product parameter | |||
=Version 2.5= | |||
==General:== | |||
* Fixed: an issue where sometimes list control cell tooltips for particularly large sets of data would show trash data at the end and/or take a long time to appear. | |||
* Added: lists that allow the user to hide columns now remember which columns were hidden when the screen is reopened. | |||
* Fixed: (case 25625) the user can no longer put characters into attachment filenames that windows does not allow in filenames "/ \ * : < > | ?" | |||
* Fixed: (case 25625) if you double-click on an attachment that happens to have invalid characters in it, those characters are replaced with an underscore so that the file can be viewed. | |||
* Fixed: (case 25930) an issue where typing into auto-complete dropdowns might not select the right items if the user found an item using the middle of a word or a different case. | |||
* Changed: readonly list control cells now default to having a grey background with black text instead of grey text on white background. | |||
* Changed: default color alternation in lists now alternates between a greyish green and white instead of grey and white. This will make black/white/grey text easier to ready against the cell background, and makes readonly cells easier to identify (grey background). | |||
* Added: support for ctrl + A to select all text in a multi-line edit, which is (apparently) disabled in windows. | |||
* Fixed: (case 26631) exporting a list to CSV now correctly escapes quotes with another set of quotes instead of a backslash. | |||
==Analysis:== | |||
* Added: (case 22445) a new 'clone analysis' button, which creates a new copy of the selected analysis. The user can choose whether to clone the original analysis' thresholds and which plants it is in use at. | |||
* Fixed: (case 22445) an issue where cloning an analysis might clone empty thresholds and fail to copy dependent option information. | |||
* Added: (case 25345) there is now a 'require authentication' flag for analyses. This replaces the plant level setting to see if the user must authenticate when modifying values. | |||
* Fixed: over-active change detection that would fire whenever the user viewed analysis options. | |||
==CommonResources:== | |||
* Fixed: (case 26099) an issue where the option values and labels might not remember their location relative to the other columns in an obvious way. | |||
* Added: (case 21707) the configure analysis/configure recipes page now displays the number of analyses/recipes that are being hidden by the 'show inactive' and 'show not in use' check boxes. | |||
==Configuration:== | |||
* Fixed: an issue where checking and unchecking the "Hide inactive/locked accounts" might cause the user list to look strange. | |||
* Added: icon to the send recovery code button. | |||
* Fixed: an admin can now properly set another user's password if the security settings allow it. | |||
* Added: work order types now have a 'title required' flag. | |||
==CrystalReportsExtension:== | |||
* Fixed: (case 25757) an issue where reports whose type is different than its printer type would cause the user to have to choose a printer every time they printed, despite checking 'remember selection'. | |||
* Added: support for passing title, email body, email from address, attachment name, and notes from a print request to the report queue table. | |||
* Added: support for printing in 'silent mode', where no popups are shown to the user (no report or printer disambiguation popups). This is used for the new mass-printing feature. | |||
==Database:== | |||
* Fixed: (case 25510) an issue where scheduled data clones were being reported as failing to run, despite the fact that that was intentional in situations where data clone rules were created too late to be run in a period. | |||
* Added: (case 23235) support for due dates on investigations. Also, added support for alerts tied to soon to expire investigations. | |||
* Added: number of days before investigation due on automatic investigation rules. | |||
* Added: (case 25384) emailed scheduled reports can now have an overridden email body, 'from' address (for email replies going back to specific address), and attachment name (for naming the report pdf attachment). | |||
* Added: (case 21710) supplier field to suppliers. | |||
* Added: (case 21712) work order types now support products and ingredients on the same WO type. | |||
* Added: (case 25500) work orders can now have titles/descriptions. These are displayed at various locations of the software, making WOs easier to distinguish. | |||
* Added: (case 25500) the title field on WOs can now no longer be edited if the user doesn't have the permission to edit WO titles. | |||
* Added: (case 25389) the right-click graphing template has been updated to facilitate line types. | |||
* Added: tables and fields supporting reports to be mass mailed. | |||
* Added: new analysis field for tracking whether a specific analysis requires authentication when the user has modified it or not. This replaces the plant level setting. | |||
==EDocuments:== | |||
* Added: support for new functions in the EDocument language, including IF, IFEMPTY, CONCAT, REMOVE (see the wiki page for description/syntax) | |||
* Fixed: an issue where text before and after a function call might throw off a subfunction's invokation. | |||
* Fixed: an issue where function arguments of ' ' or " " were not working. This was breaking some uses of the TRIM function. | |||
* Fixed: an issue where the last part of an argument might be lost if it did not end in whitespace. | |||
* Fixed: a couple issues where we'd sometimes replace only half of a function name. | |||
* Fixed: an issue where multiple pieces of whitespace in function arguments might throw off argument order in functions. | |||
==Home:== | |||
* Changed: store filter now applies to WO store instead of location store. | |||
* Added: (case 25500) work order title is now displayed on both home screen tabs. | |||
==Investigation:== | |||
* Added: (case 25415) support for filtering investigations by investigation type. | |||
* Added: (case 23235) support for due dates on investigations and # of days before investigation due on investigation rules. | |||
* Added: coloring of investigation due dates based on whether they expire today or have already passed. | |||
* Fixed: an issue where changing anything in the investigation detail list, then changing the selected investigation might not properly show that the investigation had changed. | |||
* Fixed: the clear button now clears the investigation results. | |||
* Added: (case 21728) the investigation detail list now shows the sample that initiated an investigation at the top. This row is shown in dark red to differentiate it. | |||
==ITSQLFramework:== | |||
* Added: query results now supply calling queries with the 'data type' of each result column. | |||
* Changed: (case 26631) exporting a query result to CSV now correctly escapes quotes with another set of quotes. | |||
==Locations:== | |||
* Fixed: a minor issue where copying locations might not give them unique names in some situations. | |||
==Login:== | |||
* Fixed: (case 24507) hitting the forgot password button on login no longer automatically sends a recovery email, it now waits until the user hits the 'send recovery email button'. This helps with situations where the user already has a recovery code and doesn't want another one sent. | |||
==Product:== | |||
* Added: (case 21710) multi-line supplier field to supplier configuration. | |||
==ReportViewer:== | |||
* Added: (case 26152) a new "Mass-Mail" page. This page allows the user to select certain reports to email or print for various recipients. This is similar to mail merge tools. The first application for this tool is sending billing to customers either through email or print. More reports will be added to this area in the future. If you'd like to see a report added to the mail merge area, let us know. | |||
* Fixed: an issue where hidden report parameters that pass 'id' into the report were not loading the default parameter id correctly. | |||
==WorkOrders:== | |||
* Added: (case 25500) work orders can now have a title/description/reference # saved in their header. This is useful for giving any WO a title/description/# that display on various screens. | |||
* Added: WO title is now displayed in the WO list in the automatic WO scheduling page. | |||
* Added: (case 21712) support for work order types that allow both ingredients and products. | |||
* Added: (case 25500) the title field now requires the edit WO titles permission to be edited. | |||
* Added: work order types that require titles before closing are now enforced. This flag can be set in configuration. | |||
* Changed: (case 25345) saving a work order now checks whether any samples' analyses 'require authentication' before forcing the user to authenticate when modifying values. | |||
* Fixed: a crash that could occur upon opening the screen. | |||
==Scanner:== | |||
* Added: Search by Title/Description | |||
* Changed: Improve scanner esignature interface. | |||
* Added: Print Tag on mobile now works with PrintQueue | |||
* Added: Setting to order work orders by number rather than Due Date. | |||
=Version 2.4= | |||
==General:== | |||
* Added: If there is more than one page of results to display on any multi-page list, the user is prompted to load all results before finishing the export/graph operation. | |||
* Added: when the user right clicks in any list control, there are now icons in the context menu corresponding to the export to csv/html/graph options. | |||
* Added: the 'execute saved graph template' submenu in the right click options now shows a graph type specific icon next to each saved chart. For example, a saved pie chart will show a pie chart icon. | |||
* Changed: by default now, list control tooltips only appear if the cell text is too large to fit into the cell. | |||
==CommonResources:== | |||
* Fixed: if the user enters a dynamic SQL default on an analysis option, but they hit cancel on the test default popup, the default value will be reset. | |||
* Changed: N/A as a default option value is no longer automatically set to by a SQL (dynamic) field. | |||
==Configuration:== | |||
* Fixed: the configure -> users area did not correctly show the user's recovery email address. | |||
* Added: a Correlation configuration page, where the user can configure various settings that affect future correlation reports. | |||
==CrystalReports:== | |||
* Fixed: (case 25279) an issue where options in the 'choose report' popup were not strictly in alphabetical order. | |||
* Added: the choose report popup (report diambiguation dialog) has been reworked. It now shows orientation as well as whether that report is a favorite of the user's. Favorite reports are automatically sorted to the top. | |||
==Database:== | |||
* Fixed: (case 24518) verifications were not being cleared out on WO clone. | |||
* Added: the investigation trigger table now has columns to support all four basic western electric rules. | |||
* Added: (case 23631) stored procedures p_check_investigation_trigger (which checks to see if a specified sample id violates a specified investigation trigger id), and p_trigger_automatic_investigation, which for a specified sample id, finds all investigation trigger rules that could apply, checks to see if they've been violated, and creates investigations if necessary. | |||
* Removed: f_sample_values_updated, which has been replaced by p_trigger_automatic_investigation. | |||
* Added: support for investigations based on all 4 western electric rules | |||
* Added: investigation rules' sample size can now be based on the last N samples instead of just time intervals. | |||
* Added: index to analysisoptionvalue that makes calculating correlations faster. | |||
* Added: (case 23630) the new table analysisoptioncorrelation, which stores cached pearson correlation coefficients that are calculated each night, based on user configuration. | |||
* Added: (case 23630) p_calculate_option_correlation, which calculates the pearson correlation coefficient (using hot-deck last observed value carry-forward for missing data and a 1 hour window for matching corresponding values) between the values for two different numeric analysis options on a certain date range. We also have the procedure p_cache_all_option_correlations, which finds all numeric option pairs and calculates their correlation, storing that information in the new correlation table. The user can customize up to 4 date range intervals to run correlations over. The user can also specify a number of days to keep historical correlation data for (for historical reporting) the default is 7 days. Add event e_cache_all_option_correlations, which nightly recalculates numeric options' correlation coefficients at 11 pm. | |||
* Fixed: the event that processes alert templates now gets locks exclusive only to their company instead of globally, which previously caused some company's to be unable to process alerts. | |||
* Fixed: (case 24701) an issue where scheduled WO clones might fail after recent updates. | |||
* Added: (case 24611) there is now a table where the user can store rules about correlations that should be calculated nightly. The user can blanket suppress an option from all calculations, suppress a specific combination of options, and re-enable a specific pair of options (useful if one of the two options is turned off globally, but should be calculated on certain combinations). | |||
* Added: (case 24261) support to the useraccess table for storing a record type and record id that is associated with the access attempt (such as a WO #). | |||
* Added: an investigation trigger to both the investigation table itself as well as the investigation triggers, as a default for investigations created by that trigger. | |||
* Added: automatically created investigations from investigation triggers now correctly inherit the default investigation type from the trigger. | |||
* Fixed: the nightly recalculation of correlations is now done at 11pm instead of 11am. | |||
==Graphing:== | |||
* Fixed: (case 24500) an issue where the graph would not render at all if more than 256 series were being shown (common if there are many thresholds). | |||
==Investigation:== | |||
* Added: (case 23631) support for investigations triggering on any of the 4 western electric rules. Also, added support for a sample size that is the last N samples instead of just time periods. | |||
* Added: the default comments field for an investigation trigger now involves several new tags, including {?violated_sample_values} which gets a comma separated list of the values that triggered the investigation, as well as {?population_statistics} which contains the number of samples that was in the population that was examined, the standard deviation for that data, as well as the mean. | |||
==ITSQLFramework:== | |||
* Fixed: an issue where, after the first database error a user saw, no other database errors would be reported. | |||
==Login:== | |||
* Fixed: an issue where changing the user's password would crash the application. | |||
* Fixed: an issue where deactivated accounts were not showing their lock message when the user attempted to login. | |||
==Master:== | |||
* Fixed: (case 24416) an issue where the code that changed comments in the query parser was dropping newlines when it should not, causing stored procedure/function definitions to be hard to read on client databases. | |||
* Changed: the URL that updates are downloaded from, to support future migration of this service. | |||
* Fixed: if the user is looking at the update download dialog and they do Actions->reset updates, the dialog is no longer closed and reopened. | |||
* Fixed: (case 25241) a crash that could happen if the user hit "Hide" on the update download dialog, and then the system automatically checked for updates again in 5 minutes. | |||
==Products:== | |||
* Fixed: (case 24693) an issue where the user could not create a new product and then immediately add specifications to that product. | |||
==Settings:== | |||
* Changed: (case 24498) the URL of the ITrack Online screen has been changed to the presage wiki page. | |||
* Fixed: (case 21909) an issue where the user could not set global setting defaults for plant settings or plant/global defaults for user settings. | |||
* Fixed: an issue where changing a setting, then switching setting context would update the wrong setting context. | |||
* Fixed: an issue where the settings page would act like the settings page had changed, even after it had been saved. | |||
* Fixed: an issue where the wrong setting override might be shown if the user selected a different setting scope than "Setting Default". | |||
* Fixed: an issue where plant level settings would display that they were user level settings. | |||
* Fixed: an issue where hidden settings were not correctly hidden. | |||
* Fixed: (case 23257) a query that loaded report data to work correctly with mysql version 5.7. | |||
==WorkOrders:== | |||
* Fixed: a recent regression, preventing printing. | |||
* Added: icon support to right-click menus. | |||
* Fixed: an issue where a useless popup would appear if the user entered no value in the load WO # box. | |||
* Added: when the user enters their password to verify a WO, the WO # is now stored with the access attempt. | |||
* Added: (case 21909) the user is now prompted to enter their password if they are saving a WO and any option values have been modified. This only comes into play if the plant setting "Security"->"Require user authentication for work order save" is set to True. | |||
* Added: (case 21909) if the user enters their password to verify a WO or save a WO with modified values before the WO has been saved, the access attempt will be updated with the WO # once the WO is saved. | |||
* Added: (case 25086) the verify user account popup that occurs when the user verifies a WO or modifies option values now displays a more specific prompt in the title bar. This will make it clearer why the user is being asked to verify their user account. | |||
=Version 2.3= | |||
==CrystalReports:== | |||
* Added: support for DateTimes in the report requests. | |||
* Fixed: an issue where the advanced print dialog would sometimes appear when the user was previewing a report, if the user had no default printer set for that report type. | |||
* Changed: holding the advanced print button while previewing a report will no longer show the advanced print dialog, as previewed prints don't pay attention to most of the options. | |||
==Configuration:== | |||
* Moved: password resetting has been moved and the menu option is now called "Change My Password". | |||
* Added: newly created user accounts are now created in a "Pending Activation" status, which means the user will have to change their password on first login. | |||
* Added: the configure users page now shows account status instead of just an 'active' checkbox. | |||
* Added: a column that shows the last access attempt for each user account, which could be useful for monitoring user accounts. | |||
* Added: color coded key to the user account status area. | |||
* Added: global security setting for whether users can change other users' passwords. If they cannot, they can still initiate a secure password reset if that user has a recovery email address set. | |||
* Added: fields to view the last time a user changed their password for enforcing password age requirements. | |||
* Added: support for deactivating and reactivating user accounts. | |||
* Fixed: deactivating a user account with the delete button now sets the deactivation notes on the account the same way hitting the deactivate button does on the user account info page. | |||
==Database:== | |||
* Changed: the user table has been renamed to useraccount, and replaced with a view for backwards compatibility. | |||
* Added: support for higher security passwords to the user account table, along with fields for password recover and storing previous password keys. | |||
* Added: a 'lock notes' field to useraccount table. This field will explain to a user why they have been locked out. | |||
* Added: a useraccess table, which will store all access attempts. | |||
* Added: the useraccess table now tracks what plant the request was made for. | |||
* Added: the useraccess table now differentiates between locked and deactivated accounts. | |||
* Changed: password keys can no longer be NULL in useraccounts or useraccess records. | |||
* Added: a new table, userpasswordhistory, which tracks previous password hashes generated by the user. This will facilitate proper password aging and prohibiting password reuse. | |||
* Changed: 'Daily Samples' subscription has been renamed to 'Sample Value Summary' since the schedule doesn't have to be daily. | |||
* Added: support for 'User Authentication' or 'User Authentication Summary' alert subscriptions. These report on failed/successful user access attempts either on an individual or scheduled timing. | |||
==DataManagement:== | |||
* Added: (case 23792) the backups created as part of imports are now created much faster and take much less space. Mainly, we now use ARCHIVE database engine and don't create indices on backups. | |||
==Graphing:== | |||
* Added: (case 22765) any list with saved graph templates can now be run easily by right-clicking on any list with saved graph templates. | |||
* Added: better support for date/times in right-click graphing for x-axis values. | |||
* Fixed: an issue where sending data with line breaks to right-click graphs could cause errors. | |||
==Login:== | |||
* Added: forgot password button to the login dialog. | |||
* Fixed: verification now properly uses the user name and plant that is part of the verification process and those fields are locked. | |||
* Changed: if the user is authenticating during WO verification, the logged in user isn't changed. | |||
* Fixed: the user cannot hit escape to close the login box if cancel is not an option. | |||
* Added: support for any permission being specified as part of a user authentication step. | |||
* Added: user access attempts are now logged in the database. | |||
* Added: the login has a different prompt/login button text based on whether the user is logging in or verifying user identity. | |||
* Added: the password reset dialog now has a location for entering the previous password, and this must match to change password. | |||
* Added: new passwords set by the user are now encoded in a more secure format. | |||
* Added: the user is now prompted to enter a password recovery email address when changing passwords, as this is important to resetting passwords later. | |||
* Added: the change password dialog now supports the user changing their password with a recovery code instead of just their previous password. This overrides 'locked' account status. | |||
* Added: support for sending password recovery emails to the address registered to the specified user as their password recovery email address. | |||
* Added: now the user can change just their recovery email address if they leave the 'new' password blank in the change password dialog. | |||
* Added: support for admins changing other users' passwords (based on security settings) without typing in the previous password. | |||
* Changed: if a user is pending activation, a new user access status is used if someone tries to log in with that account that denotes this. | |||
* Added: if an account that is pending activation is logged into, the user will be prompted to enter a password and password recovery email address. | |||
* Added: password recovery emails are now sent as part of the password recovery process if the user's recovery email address is set. | |||
==Master:== | |||
* Changed: (case 7808) the update downloader dialog has been combined with the update log dialog. This prevents the issue where the user's focus was being moved automatically to this popup when downloads finished. This avoids interrupting the user's work. | |||
* Added: the update downloader dialog can now be hidden or closed immediately instead of having to wait for the downloads to complete. If the user wants to reopen the dialog, they can double-click on the update status in the status bar. | |||
* Added: the update progress dialog now has a "Show this dialog in the future" checkbox. If the user unchecks this, they will only see the update progress/change log dialog if they double-click on the update status string on the status bar. | |||
* Fixed: screen list now properly resizes if the user has non-standard windows zoom. | |||
* Added: support for modal login dialogs, useful for verifying the logged in user. | |||
* Added: support for locking/unlocking the entire application. This includes most sensitive menu items at the top of the menu bar and the window access menu on the left. | |||
==ReportViewer:== | |||
* Fixed: a potential issue where advanced print dropdowns might not work. | |||
==WorkOrders:== | |||
* Added: a security setting to control whether or not users must authenticate before they can verify a WO. | |||
==Scanner:== | |||
* Changed: Minor cosmetic changes. | |||
* Fixed: Calculated "choice" fields not saving from scanner. Made calculated fields trump dependent dropdowns. | |||
* Fixed: Resolved issue with sample Performed time and time zone differences. | |||
* Added: Login and e-signature authorization. | |||
* Changed: Added check to prevent user clicking "Back" in web browser | |||
* Fixed: Inactive options will be hidden. | |||
=Version 2.2= | |||
REV 17986-18144 Q3 2016 release database version 222 | |||
==Analyses:== | |||
* Fixed: an intermittent crash on load related to the tooltip on the threshold column not loading. | |||
==CommonResources:== | |||
* Fixed: (case 22214) an issue where option choice dropdowns were not correctly limiting results by plant, product, or severity class. | |||
* Fixed: (case 22440) an issue where attachments wouldn't save correctly on new samples. | |||
==Database:== | |||
* Fixed: (case 22366) an issue where cloned WOs would copy the verification due date of the original document. | |||
* Fixed: (case 22371) an issue where clicking to show/hide series on a stacked column graph without trendlines would not work correctly. | |||
* Fixed: an issue where showing an hiding a series with a point type other than Circle would cause the newly unhidden points to be circular. | |||
* Added: (case 22466) the data clone failed event now includes the name of the database and the customer product code for easier identification. | |||
* Fixed: the chart template now supports aggregate column charts. | |||
* Fixed: chart data with invalid X axis values is now ignored. | |||
==EDocuments:== | |||
* Changed: if an edocument request wants, the output file will not be written. This allows edocuments to be generated into memory without having to hit the disk, which can be comparatively slow. | |||
* Added: some external functions for just configuring graph options, and another one from generating a graph from options without input. | |||
==Graphing:== | |||
* Changed: (case 21229) to make the graph options dialog easier to use, the chart type dropdown is now a list with graph icons. Also, many of the controls in the dialog now have tooltips and clearer names. | |||
* Added: (case 14508) the graph options dialog now has a preview chart pane next to the chart options. This allows the user to see what the graph will look like without having to generate the final graph. The chart automatically refreshes whenever anything changes that affects it. | |||
* Added: a 'preview in external browser' button that shows the chart in an external browser window without having to close the dialog. | |||
* Added: an instructions field that tells the user what they still need to do before the current options can generate a chart. | |||
* Added: a series point shape column so that the user could choose what shape the points will be. | |||
* Added: trendline dropdown where the user can choose what degree of trendline they'd like to add to the graph for each series. | |||
* Added: the right click graphing dialog now has the following new features: | |||
** Advanced mode: the user can go into 'advanced mode' when building a chart. This shows various extra options that may not always be required when generating a basic graph. The user's selected mode will be remembered. | |||
** Trendlines: the user can choose to display trendlines for each data series on the graph. If the user is in advanced mode, they can choose the type of trendline as well as whether the trendline's formula and fitness should be displayed in the legend. | |||
** Point shape: (Advanced mode only) the user can choose the shape of the points in a line/scatter chart for better black&white printout or colorblind accessibility. | |||
** Cumulative series: (Advanced mode only) the user can choose to make a data series cumulative, making it so that all values will include all previous values in the same series. | |||
* Changed: current graph template has been modified to no longer show scrollbars in embedded IE windows (required a slightly bigger buffer around all sides). The way the graph resizes has been optimized slightly to better use available screenspace. | |||
* Changed: current graph template has been modified to properly handle cumulative data series, trendlines, point shape selections, etc. | |||
* Added: an error message to chart generation that will stop the user if they choose a discrete (non-numeric, non-date) x axis for a line or scatter graph. While these graphs technically work, they are not very useful. | |||
* Added: (case 20434) support for saving chart templates as well as using saved chart templates. | |||
* Fixed: an issue where the right click graph template would show unnecessary 0.00 points in line charts if the series was cumulative. | |||
* Fixed: line charts with missing points are now smoother and interpolate between those points. | |||
* Fixed: a crash when adding new saved chart templates. | |||
==Login:== | |||
* Added: support for new permission related to managing chart templates created by other users. | |||
==ReportViewer:== | |||
* Fixed: an issue where date pickers for report parameters might show the year 1899 as the default value. | |||
* Fixed: an issue where date report parameters with fixed values might not get formatted correctly. | |||
==Settings:== | |||
* Added: (case 20434) support for saving/loading chart templates for right-click graphing. | |||
==WorkOrders:== | |||
* Fixed: (case 22219) an issue where work orders would set an incorrect due date automatically for WOs that were not supposed to have a due date. | |||
* Fixed: (case 22290) an issue where analyses that were not in use at the current plant were visible in the default analysis dropdown but not selectable. | |||
* Fixed: work order types' default analysis dropdowns no longer show inactive analyses unless they were previously chosen for that WO type. | |||
* Fixed: (case 22234) an issue where inactive recipes were selectable in the recipe dropdown. | |||
==Reports: Investigation== | |||
* Added: (case 22070) triggering analysis option to the header, when present | |||
==Reports: Investigation Overview== | |||
* Changed: (case 21729) comments into a column, shorted results column to make room, and switched to landscape. | |||
* Fixed: sizing of the created on/by field because it was cutting off time | |||
=Version 2.1.5= | |||
==Database:== | |||
* Added: (case 20830) logging to the dataclone table | |||
* Changed: (case 20608) deleting a product will now also delete any associated option thresholds/choices. | |||
* Added: investigationtrigger table now has columns for saying what should happen to an investigation after it is auto-generated. | |||
* Added: investigations now track which analysis option values triggered an investigation. | |||
* Added: f_create_workorder, which creates a new work order of the specified work order type. | |||
* Added: f_investigation_triggered function, which performs any necessary post-creation steps specified in the investigationtrigger record. | |||
* Updated: f_sample_values_updated now properly remembers the productid of the original. A single sample can now trigger more than a single investigation. | |||
* Added: f_get_next_schedule_date now accepts a date/time for its 'next occurrence after this date' instead of just a date. This is useful for figuring out when the next occurrence of a schedule would've been after a specified time in the past. Necessary for detecting missed data clone occurrences. | |||
* Added: index to the log_changegroup table making it possible to quickly look up and see if a previous data clone succeeded or not. | |||
* Added: (case 21183) an event that runs at every 2 hours and repots any scheduled data clone entries that either didn't run or failed for any reason in the last 4 hours. The recipient(s) of this notification are stored in a setting. | |||
* Added: the failed data clone alert message has been improved and some errors have been corrected. | |||
==Investigation:== | |||
* Added: (case 20340) the investigation rules page now has new fields for configuring advanced investigation rule settings, such as whether to automatically resolve investigations, what analysis type to use for retests, and whether to automatically create retest documents. | |||
* Fixed: an issue where the investigation history page would let the user go past the last page of results. | |||
* Fixed: an issue where the investigation history page reported the wrong number of items per page. | |||
==Locations:== | |||
* Fixed: a query error that could happen if the user deleted a location. | |||
==Products:== | |||
* Changed: the delete product prompt now tells the user that associated thresholds will be deleted as well. | |||
==WorkOrders:== | |||
* Added: (case 20340) when investigations are sent to a WO for retest, the retest WO type and retest analysis type on the investigation rule that spawned the investigation are now used to generate the new samples. | |||
* Fixed: if the user changes the analysis type for an investigation to one that has fewer options, any columns that are no longer necessary are correctly removed. | |||
* Added: if the user saves without clearing, the WO is reloaded to account for the fact that investigation rules could cause the WO to be reopened, have new samples added to it, or marked as no longer verified. | |||
* Added: if saving the WO caused new retest WOs to be created, the user is notified of this and given a chance to view that document. | |||
* Added: when the user sends investigations to the WO to be manually retested, WO type is set to the correct type based on the investigation trigger rule. Also, the analysis type for retest specified there is used for these retest samples. | |||
* Fixed: (case 19874) if two users save the same option value, the second user to save will no longer see a database error, their data will silently overwrite the previous data. | |||
* Fixed: an issue where a 'retest WOs created' popup would appear if an investigation was automatically created that did not create a retest WO. | |||
==Reports== | |||
===Certificate Of Analysis=== | |||
* Changed: (case 21736) the "Analysis" parameter to a combined "Category: Analysis" parameter | |||
===Product Log=== | |||
* Added: (case 21738) WO internal notes, made the report landscape, and changed grouping behavior to accommodate the note changes. | |||
=Version 2.11= | |||
==Database:== | |||
* Added: (case 11138) analysis options and choices/threshholds can now be marked as inactive. | |||
* Fixed: a database error that could sometimes occur if f_get_sample_acceptability was called on a Number value of ''. | |||
* Changed: (case 11138) deactivated choices and thresholds no longer affect the acceptability of a value. | |||
==Analyses:== | |||
* Changed: (case 11138) deactivated options and option choices/thresholds are no longer shown if the 'show inactive analyses' checkbox is unchecked. | |||
==CommonResources:== | |||
* Added: (case 11138) an active checkbox to all analysis options as well as option choices/thresholds. | |||
* Changed: inactive choices are no longer able to be selected for depending analysis options. | |||
* Changed: inactive options are no longer shown in the 'Set default value formula' pop up. | |||
* Changed: inactive thresholds are no longer shown in the 'test value' pop up. | |||
==Products:== | |||
* Added: (case 11138) the analysis option dropdowns no longer show inactive analysis options. | |||
==Sampling:== | |||
* Added: a new checkbox "Show inactive analyses/options". When checked, inactive analyses and inactive options will be shown to be searched, otherwise they are hidden. | |||
==WorkOrders:== | |||
* Added: (case 11138) deactivated analysis options no longer show on new samples. Samples that already have a value filled out for that option will still show it. | |||
* Added: recipes no longer show deactivated ingredients, though recipes that already have a value filled out for that ingredient will still show it. | |||
* Changed: deactivated choices in option dropdowns no longer show for new samples, but are still visible on samples where they are in use. | |||
=Version 2.1= | |||
==General:== | |||
* Added: the user can now drag items to the edge of all list controls that support drag and drop to scroll the list. | |||
* Fixed: if the user drags anything other than files into an attachment area, the 'no drop' icon is shown. | |||
* Added: if the user drags a file over an attachment area, the list's attachment system is disabled so that the user can drop files into the list as well. | |||
* Changed: when the user drags items within a list control, they are stored in a special clipboard format so that other applications don't think they can get them. | |||
==Analysis:== | |||
* Added: (case 18225) when configuring analyses, support for a 'visible group' dropdown for selecting a user group who can view associated documents. | |||
* Added: (case 18225) analysis list is now restricted to just those analyses that are visible to the current user's groups and permissions. | |||
==CommonResources:== | |||
* Fixed: an issue where the Analysis configuration area would sometimes have uneditable analyses even if the user had Global analysis editing permission. This would only happen if plants were private. | |||
==Configuration:== | |||
* Added: configuration of work order types now allows specifying a number of days until verification is due. | |||
* Added: (case 18225) when configuring work order types, support for a 'visible group' dropdown for selecting a user group who can view associated documents. | |||
* Added: (case 18225) work order type list is now restricted to just those WO types that are visible to the current user's groups and permissions. | |||
==CrystalReportsExtension:== | |||
* Added: (case 20389) the report adder script export now correctly includes the fileid and category in the ON DUPLICATE KEY SET section. | |||
* Fixed: (case 20389) an issue where clicking "Replace" when adding a new report file in it would instead leave the previous report file in the system. | |||
* Fixed: (case 20389) the report adder script export now has a query that attempts to find 'empty' AU reports and replace them instead of inserting a duplicate. This will no longer be necessary once report.filename becomes unique. | |||
* Fixed: an issue where, if the user showed the advanced print dialog, previewing the report would not work. | |||
==Database:== | |||
* Removed: a previously deprecated column | |||
* Added: (case 19608) workorder.verificationdue (datetime) and workordertype.daystillverificationdue. These will facilitate workorders with due dates to verify. | |||
* Changed: workordertype.daystilldue is now unsigned. | |||
* Changed: the triggers related to the work order and work order type tables have been re-exported to fix missing columns. | |||
* Fixed: some errors in a previous update that would cause the supplierfile.plantid to not be created. | |||
* Fixed: (case 20480) an issue where the automatic data cloning procedure was dropped during 2.05 database update because of the use of the COMMIT keyword. | |||
* Added: (case 19608) alertsubscription now has a alerttiming of "Verification Expiration Approaching" | |||
* Changed: e_alert_scheduler has been expanded to handle verification due dates being hit. | |||
* Changed: p_alert_trigger has been expanded to handle verification due dates being hit. | |||
* Added: (case 19307) a new table for tracking what default printers should be used for various report type categories. These entries can be per-user, per-plant, or per-productcode (or any mix of those 3). | |||
* Added: f_get_report_printer returns the printer to be printed to for a specific report type based on input criterion. | |||
* Fixed: (case 20389) report.filename is now unique. This resolves issues where duplicate reports could could exist on the system due to the auto-updater. In order to do this, duplicate reports got their filename modified to have a "_DUP_<reportid>" added to the end. These duplicates should get cleaned up at some point, as the auto-updater won't maintain them. | |||
* Added: (case 18225) analysis.visiblegroupid and workordertype.visiblegroupid, which are a 'visible user group' they are assigned to. If set, this will be the only group that can see work orders/samples with those wo types/analyses. | |||
* Changed: analysis.groupsamples has been switched from a BIT(1) to a BOOL field in order to avoid inconsistencies and BIT columns cause various issues with other applications. | |||
* Added: (case 18225) 2 new permissions for being able to view work order types and analyses that are not visible to the any groups the user is in. | |||
* Fixed: an issue in the 2.05 database update that could cause a trigger to be dropped and not correctly re-added. | |||
* Fixed: (case 21197) an issue where f_get_next_schedule_date might fail if the month offset passed in was 0 for quarterly and yearly schedules. | |||
* Fixed: (case 21197) a possible issue where p_clone_scheduled_data could fail if the month or day offset was 0 instead of NULL. | |||
* Fixed: (case 21406) an issue where a sample inserted trigger had a logical error that could cause a stopping error on mysql 5.7 | |||
* Fixed: (case 21594) an issue where the WO clone code wouldn't properly reset verification information. | |||
==Home:== | |||
* Added: verified by user column to the work orders list. | |||
* Added: "Show Verified" and "Show Unverified", which allows a user to easily filter the list to just those documents that need to be verified by their group. | |||
* Added: verification due date column to the work orders list. | |||
* Added: all the "Show ..." checkboxes on the work orders page now remember their last setting when the user closes the screen. | |||
* Fixed: a crash when going to the testing page | |||
* Added: (case 18225) the work order type dropdowns now exclude all work order types that are not visible to the current user (based on the new 'visible group' on work order types). | |||
* Changed: (case 18225) results on the work orders page is now restricted by the work order types that are visible to the user. If the user has the permission "Global"->"View other user groups' work order types", they will be able to see those work orders anyway. | |||
* Changed: (case 18225) results on the testing page is now restricted by the work order types and analyses that are visible to the user. If the user has the permission "Global"->"View other user groups' work order types" and "View other groups' analyses", they will be able to see those samples anyway. | |||
==Master:== | |||
* Fixed: an issue where the thread progress dialog that showed "X/Y processes still running" would sometimes show an incorrect # of elapsed seconds if some of the tasks took a long time. | |||
==Products:== | |||
* Added: (case 18225) when configuring recipes, support for a 'visible group' dropdown for selecting a user group who can view associated documents. | |||
* Fixed: an issue where private plants would keep the user from being able to edit global specifications. | |||
* Fixed: overactive change detection that would occur if the user visited the recipes page. | |||
* Added: (case 18225) the analysis dropdown list is now limited by visible user groups and permissions. | |||
* Added: (case 18225) all product specifications for analyses that are not visible to the user (based on user groups and permissions) are hidden. | |||
* Removed: (case 21144) the public checkbox in the attachments dialog, which was accidentally added. | |||
==ReportViewer:== | |||
* Fixed: (case 20702) an issue where some fixed report parameter value defaults would act strangely when the user selected them. | |||
==Sampling:== | |||
* Added: (case 18225) sampling history now restricts the searchable analysis list to just those analyses that the user can view (based on the new 'visible group' and permissions). | |||
==WorkOrders:== | |||
* Added: (case 19608) work orders now have a 'verification due date'. If a WO gets marked as 'Work Completed', the verification due date will get automatically set based on the work order document's "Days till verification due". | |||
* Fixed: an issue where, if the user marked a WO as work completed through the popup on save, the assigned to group and the verification due date were not getting set automatically. | |||
* Fixed: an issue where, if the user marked a WO as closed through the "& Close" checkbox on the screen, the assigned to group and the verification due date were not getting set automatically. | |||
* Performance: work order saves no longer save samples before and after the work order. This reduces the number of round trips required to save a new WO. | |||
* Added: (case 18225) analysis dropdown list is now restricted to just those analyses that are visible to the current user's groups and permissions. | |||
* Added: (case 18225) recipe dropdown list is now restricted to just those analyses that are visible to the current user's groups and permissions. | |||
* Added: (case 18225) work order type dropdown list is now restricted to just those WO types that are visible to the current user's groups and permissions. Also, if the user attempts to load a WO with a type that would not normally be visible to the user, they are told that access is denied. | |||
* Fixed: (case 21038) an issue where hitting the attachment button would crash if no sample was selected. | |||
* Changed: if no sample is selected, the attachments button is greyed out. | |||
* Removed: (case 21144) the public checkbox in the attachments dialog, which was accidentally added. | |||
* Fixed: (case 21375) dependent options that require a value to be above or below a specific value no longer trigger if the values are equal (> instead of >= and < instead of <=). | |||
* Changed: dependent options that have numeric thresholds against choice or text options now compare values numerically instead of like a dictionary. | |||
=Version 2.05= | |||
REV 17455-17548 2.05 database version 205 RC on 2016-04-25 | |||
==Tools/Controls:== | |||
* Changed: list combos no longer 'drop down' automatically when the user goes to them. This was causing a lot of unncessary flickering and delays in situations where combos were the first thing in the list. | |||
* Added: using up/down arrows in list dropdowns now pops open the dropdown instead of going up and down in the list control. This is to make it more consistent with dropdowns outside of the list. | |||
* Fixed: hitting escape to 'cancel' a dropdown now correctly resets the content back to what it was before the user started typing. | |||
* Added: list combos are now 'typeable' (auto-complete) by default. To emulate previous behavior, by default all dropdowns that don't specify otherwise will not let the user type in new values. | |||
==Analyses:== | |||
* Fixed: an issue where any global option choices would be set to not global when the user viewed them if they had a global product on them. Now, the user can leave an option threshhold/choice global if the product is in use at all plants. | |||
* Fixed: (case 20301) a crash that could occur if the user made a change to an analysis option or option threshhold and then change analyses quickly. | |||
==CommonResources:== | |||
* Added: the configure analyses page now has a 'show inactive analyses' checkbox for hiding and showing inactive analyses. | |||
* Added: the configure analyses page now has a 'show analysis not in use at this plant' checkbox for showing analyses that are not in use at the currently selected plant. | |||
* Changed: (case 13385) the 'global' analysis checkbox has been replaced with a 'in use' similar to the product interface where each product can be in use at multiple plants. | |||
* Fixed: an issue where the empty analysis row might get duplicated if the user switches plants. | |||
* Fixed: a crash that could happen when the user switches plants. | |||
* Added: the 'show analyses not in use' now shows the current plant code. | |||
* Changed: if the user has permission to edit analyses at all plants where an analysis is in use, the user can edit that analysis. | |||
* Added: support for loading/saving the 'active' analysis flag. | |||
* Added: inactive analyses no longer show in the analysis dropdown in sample history. However, inactive analyses are shown if they were already selected on a sample. | |||
* Fixed: a crash that could be caused on sampling history if a search included samples on no WO. | |||
* Fixed: an issue where analyses for other plants were visible in the analysis dropdown on samples from other plants. | |||
* Added: maximum length for strings in the configure analyses page. | |||
==CrystalReports:== | |||
* FIxed: (case 20188) an issue where switching to email or archive of a print job might still set the print entry as 'Print'. | |||
==Database:== | |||
* Added: (case 19210) root cause and root cause comments to the investigation table. | |||
* Fixed: (case 17752) several references to store are now 'plant'. | |||
* Added: (case 19469) scheduled reports now have a title that can be sent along in an email. | |||
* Fixed: (case 20079) an issue where sample values might not get calculated correctly on WO save. | |||
* Added: (case 13385) what plants an analysis is in use at is now tracked in a separate table called analysisplant. | |||
* Added: unique indices to all the productplantmap, supplierplant, and analysisplant. | |||
* Added: copied current analysis usage into the analysisplant table. | |||
* Added: analysis.active, which will track whether an analysis should be hidden (inactive) or not. | |||
* Fixed: several triggers no longer reference the deprecated plantid field. Added reference to logging the active column. | |||
* Added: (case 20089) plant.logofileid, which will store a company logo file id for displaying in reports. Modified f_count_file_references to count these references as well when determining whether a file is 'in use' or not. | |||
* Fixed: (case 19987) f_get_next_schedule_date was returning midnight of the next day for schedules that were set up on "Daily (Weekdays)" if the time of the schedule had passed. | |||
* Changed: (case 19987) all automatic WO scheduling is executed on the quarter-hour now instead of hourly. This gives users more specificity on scheduling. | |||
* Fixed: Updating e_schedule_reports for all products because we noticed that if an error happened during the FETCH query, done never got set to TRUE, and the loop would go forever. | |||
==DevIL:== | |||
* Changed: Recompiled DevIL 1.7.8 in VS2008 so that we can remove a dependency on MSVC++8. I also optimized it for speed. It seems to be 'drop in' with regards to the old binaries (ITrack doesn't have to be recompiled to work with the new version). | |||
==Investigation:== | |||
* Added: support for a 'root cause' column as well as a 'root cause comments'. The root cause is an autocomplete dropdown that automatically shows all previously entered items. The comments are an unlimited field. | |||
==ITMySQLConnection:== | |||
* Fixed: a rare case where a database error that occurred in a function would not be reported to the user or our error reporting services. | |||
==Products:== | |||
* Fixed: (case 19969) attaching files to new products or suppliers will now save correctly. | |||
* Added: (case 19863) the ingredient/product area now has a search filter that will limit the visible options to just ones that match the user's input. | |||
* Added: (case 19754) a "Specifications" page to the product/ingredient area. | |||
* Fixed: an issue where saving after removing a product 'in use' at a plant, the user might still be prompted to save, despite there being no new changes. | |||
* Added: maximum length for strings in the specification list. | |||
* Added: permissioning to the specification area. | |||
* Added: plant dropdowns for specifications now contain just those plants that the product is in use at as well as where the user has permission to edit analyses. "Global" is now an option if the product is in use at all plants and the user can edit analyses at all plants. | |||
* Added: switching options on a specification now correctly removes the spec on the old option and adds a new one to the new option. | |||
==Sampling:== | |||
* Fixed: an issue where changes made to WOs since the screen was opened might not be refreshed on subsequent searches. | |||
* Added: (case 18967) if the user has permission to edit samples on this screen, if any of modified samples are on verified WOs, the user will be notified that they will cause the WOs in question to become un-verified on save. | |||
==WorkOrders:== | |||
* Added: (case 18968) the verification date field now shows the time the document was verified as well. | |||
* Added: (case 18967) if the user adds or removes samples, or changes important information about a sample, and the WO was verified, the user will be notified that they will cause the WO in question to become un-verified on save. | |||
* Changed: (case 19987) all automatic WO scheduling is executed on the quarter-hour now instead of hourly. All prompts and pop-ups have been changed to reflect this. | |||
* Added: analysis options of type 'choice' will now auto-dropdown and allow auto-complete typing. | |||
* Added: recipe production page now allows right clicking in the ingredient list header to hide/show columns. | |||
==Reports:== | |||
*Fixed: (case 20012) a query issue in the Investigation Overview report that was causing the original sample to show twice and leaving out the investigation samples on the report. | |||
*Added: (case 19065) a new report, Investigation, that shows information about a single investigation. | |||
*Added: (case 20243) a dynamic logo to the Investigation report, which looks at the new plant.logofileid to determine which image to pull from the database | |||
=Version 2.0= | |||
==Tools/Controls:== | |||
* Performance: upgrades to our collections that (in some cases) eliminate as much as 85% of the time spent in some loops. | |||
* Added: support for icons on 'push-like' buttons. | |||
* Added: support for typeable columns in lists can now support a 'maximum length' for the data that the user can enter. If the user enters more than this, they hear a beep and are stopped. | |||
* Performance: formatting of list text has been sped up somewhat. | |||
* Added: a shared city/state/zip field group to consistently handle all areas where these linked fields should look one another up. | |||
* Fixed: an issue where attachment interfaces would not lock down correctly in some scenarios. Also fixed an issue where the public checkbox wouldn't work correctly if there was more than one check in the list. | |||
* Fixed: an issue where custom "ok" message boxes wouldn't have their custom button text shown. | |||
* Fixed: an issue where times containing midnight might save incorrectly. Also an issue where date/times might save as 1899-12-30 | |||
* Added: doubleclicking an item in a tree control now toggles the expansion of that item. | |||
* Fixed: an issue where the list footer would become invisible in some scenarios. | |||
==CrystalReportsExtension:== | |||
* Added: (case 17915) printing reports now logs successful print information as well as errors to the print queue. | |||
* Added: proper support for 're-printing' items in the report queue. That way, they won't get another entry in the queue. | |||
* Added: print previewing now inserts an 'in progress' entry in the print queue, which is overwritten up by the report viewer screen. | |||
* Added: (Case 18265) the 'choose printer' dialog now has the ability to let the user choose to email a report instead, or archive it on the server. In addition, the user can have a print get 'delayed' in the queue if they wish to schedule it for later. | |||
* Added: the archived reports subdirectory now has a default value per report type. This way, all saved reports will automatically be saved into sorted subdirectories. | |||
* Removed: if the user performs an advanced print, the windows printer dialog no longer shows up. Instead, we show the ITrack choose printer dialog, which allows choosing to email or archive. | |||
* Added: (case 18265) a global hotkey that controls whether to automatically show the advanced print options popup during any print. This defaults to ctrl + left click when printing, but can be rebound in the hotkeys dialog. | |||
* Added: support for auto-complete options in the email dropdown. | |||
* Added: if the user enters a new email address in the dropdown, future email operations will 'remember' that option. | |||
* Fixed: newly created report queue entries are now correctly cleaned up, avoiding memory leaks. | |||
* Changed: reprinting a report queue entry no longer updates the 'created by user'. | |||
* Fixed: crash that would occur when cleaning up report queue entries. | |||
* Changed: if the user chooses to email or archive a report, all reporting code is skipped. | |||
* Added: support for delayed printing and emailing. If a print job is going to be printed in the future, the print operation is skipped and logged in the queue. | |||
* Changed: the error report field in the report queue can now go up to 1000 characters instead of being limited to the previous 250 characters. | |||
* Added: there is a new setting ("Printing"->"Advanced print management server installed"). The advanced printing dialog now deactivates various controls if this setting is off. Essentially, any controls that require report commander to be present are disabled. | |||
* Added: (case 19676) the advanced print dialog now has a quantity edit so that the user can easily change the print quantity without going into the windows printer dialog. | |||
* Added: report auto-updater now creates new reports with a category of "Report". | |||
* Added: Configure->reports page now has handling for setting a report category. | |||
* Fixed: (case 19832) an issue where exporting a report add script with parameter values could cause a query error. | |||
==Configuration:== | |||
* Fixed: a minor flickering issue when opening up the configure->users dialog causing it to load slower. | |||
==Database:== | |||
* Added: support for new 'time elapsed' column in the reportqueue table. | |||
* Added: (case 18727) support for delayed print operations in the print queue (reportqueue.waituntil). There is also now an index on the fields that the report server scripts uses to find printable jobs. | |||
* Changed: the error field in the report queue can now facilitate 1000 characters. | |||
* Added: (case 17043) an upgrade had been made to the the event that sends out scheduled alerts to handle expired items. This got missed in a previous update. | |||
* Added: (case 11913) a new permission to control whether the user is allowed to reopen closed/cancelled investigations. | |||
* Changed: moved a database update regarding the report queue to the next version, as version 191 went onto the AU earlier. | |||
* Fixed: (case 19096) an issue where alert subscriptions based on expiration with negative hours until expiration would cause a database error. | |||
* Fixed: (case 18969) cloned WOs no longer inherit verification from the original document. | |||
* Added: (case 19164) all log entries older than 4 weeks are now archived every sunday at 1:30 AM by an event. This should hopefully keep the database trim and fast. | |||
* Changed: (case 19164) log_change and log_changegroup have been transititioned to InnoDB instead of MyISAM engine. This is because mixing the engine types seemed to be causing deadlock behavior in some cases. | |||
* Added: (case 8672) supplier, supplierproduct, supplierplant, and supplierfile tables for storing information about suppliers. | |||
* Fixed: the right-clicking graphing template has been modified so that if the user uses a string column as the x axis of a scatter graph (but the strings contain numbers), the graph should look correct. | |||
* Added: the dataclone table now has a rank column for designating the order that objects that have the same timing will be cloned in. | |||
* Fixed: an issue where items set to clone 'at the top of the hour' would clone in the previous hour instead. | |||
* Fixed: the description of one of the product management permissions to be more accurate. | |||
* Added: 2 new permissions for the supplier management area. | |||
* Added: suppliers now have account numbers. | |||
* Added: zipcode.displaycode, which handles zipcodes that are shorter than 5 digits. | |||
* Added: (case 8672) supplier ingredient lists are now plant specific. | |||
* Added: supplier attachments are now plant specific. The user can check or uncheck the Global checkbox to specify whether attachments are plant specific. | |||
* Added: workorders now have a 'source' workorderid. This tracks the document that a work order was cloned from, if any. | |||
* Added: (case 12126) support for 'favorite' work orders. | |||
* Added: dataclone table now has fields for 'copy additional data' (copy analysis option values with the WO) and 'copy most recent', which copies the most recent copy instead of the original template. | |||
* Added: (case 19613) support for p_clone_data to be able to clones sample values if required. Also, added support for the ability to clone the most recent copy of a WO instead of the original. | |||
* Added: p_clone_data now has better error handling. Specifically, if it exists with an error, all temporary tables should be dropped. Also, all work done in the procedure is part of a single transaction, no matter whether autocommit is on or off. | |||
* Added: cloned workorders now have their sourceworkorderid set during cloning. | |||
* Added: p_clone_scheduled_data now properly handles the clonemostrecent and cloneadditionaldata settings. | |||
* Added: p_clone_scheduled_data now sets session variables @nDataClonesExecuted (number of data clones executed) as well as @strLastCloneError (error message from last failed data clone). This should help any code that calls this procedure to report information about what happened. | |||
* Added: explicit transaction committing between each clone operation to ensure that some documents are saved even if one fails. | |||
* Changed: dayofweek is now used instead of dayoffset to figure out which day of the week a Weekly schedules are run on. | |||
* Changed: the bulk of f_get_next_data_clone_date has been moved to f_get_next_schedule_date so that it can be called for unsaved schedules. | |||
* Fixed: f_get_next_schedule_date now properly returns the 'next' occurrence date if the current schedule period has passed. | |||
* Added: new permission for controlling what plants a user can manually copy documents at. | |||
* Added: comments to the report table columns. | |||
* Added: report.category, which defaults to the same as report.type. | |||
* Added: speed index to the report table based on name. | |||
* Added: (case 19865) report.name is now enforced unique per report type. | |||
* Added: (case 19467) notes for why a report subscription exists | |||
==Graphing:== | |||
* Fixed: a couple issues that could cause javascript errors, keeping the graph from displaying. These mainly occurred if the user didn't specify any analysis types. | |||
* Added: (case 12785) support for searching by work order type. This supports id (faster) and by name (supports wildcards). | |||
==Home:== | |||
* Added: any javascript errors encountered on any pages being navigated to will now be automatically suppressed on client systems, but not in testing. | |||
==Investigation:== | |||
* Added: (case 11913) there is a new button that controls whether the user is allowed to reopen closed/cancelled investigations. | |||
* Fixed: an issue where, if there were multiple pages of investigations, the next/previous spin area might not be visible on some screen sizes. | |||
* Fixed: (case 19227) an issue where searching investigations by analysis would not work. Using a wildcard in the analysis dropdown would find all analyses, no matter what. | |||
* Added: hitting enter when on the investigation history page will now perform a search. | |||
==libITSQLFramework:== | |||
* Fixed: the timestamps in the query log now use local times instead of UTC times. Also, the values are formatted a bit more logically. | |||
==PrintQueue:== | |||
* Fixed: (Case 17810) All errors are now written to file and an exception has been added for writing errors to the database. | |||
* Fixed: (Case 18665) Added timers, written to db. It should also update lastsenton. | |||
* Fixed: (Case 18160) Now has an enterprise handler that should pull in printers using f_get_setting. | |||
* Fixed: (Case 19360) Syntax errors and handling for when no parameters are passed. | |||
* Fixed: (Case 19360) removed an errant else clause possibly causing failure loops | |||
* Fixed: (Case 19360) execution time now correctly quoted. | |||
* Fixed: (Case 19360) PrintQueue now handles missing reports instead of crashing | |||
* Added: (Case 18528) error reporting emails | |||
* Fixed: (Case 18430) Now enabled report commander's native error logging. -v flag effects it. To set a custom logfile, a new config setting 'reportcommanderlogfile' exists. | |||
* Fixed: Printing reports no longer makes a pdf | |||
* Fixed: Saving files to folders no longer deletes them | |||
* Fixed: (Case 18727) Now supports a waituntil date/time which specifies when a report should print. | |||
* Fixed: (Case 19605) Printing to the selected printer now works for reports that have No Printer checkbox checked in the crystal report file. | |||
* Fixed: (Case 19718) Python now corrects the product config setting from ITrack Enterprise to ITrackEnterprise | |||
* Fixed: (Case 19406) We now group_concat on | for parameters to avoid splitting off and ignoring subquery parameters. | |||
* Fixed: (Case 19766) Email delimiter is now a comma instead of a semicolon in the destination field of the reportqueue table. | |||
* Fixed: (Case 19484) Printqueue now uses f_set_setting to let the other products know that the Advanced Print Management Server is installed. | |||
* Added: a bunch of comments to make PrintQueue.py simpler to understand, as well as a convenience method for query error handling. | |||
* Fixed: (Case 19850) Added some error handling for when queries return no results. | |||
* Added: (Case 19850) Added a setting emailerroron, which when set to False will turn off email error reporting | |||
* Fixed: (Case 19850) Allowed not specifying a printer. | |||
* Fixed: (Case 19878) Fixed another crash | |||
==Products:== | |||
* Changed: when deleting a product that is not on any samples or thresholds, the confirmation of deletion dialog will now say its on 0 samples so that the user knows it is safe to delete. | |||
* Added: (case 8672) Suppliers page next to the ingredient/product management page. | |||
* Added: (case 8672) the supplier management area now has a detail page and attachments page, similar to product management. | |||
* Added: 2 permissions for supplier management, which match the product management permissions. | |||
* Fixed: the product attachments page was not correctly locking itself down if no product was selected. | |||
* Added: (case 8672) supplier management now has a ingredient list to track which ingredients a supplier provides. | |||
* Added: supplier attachments now have a due date. The due date can be black, blue, or red based on when the document expires. | |||
* Fixed: an issue where hitting add product didn't work if no existing product was selected. | |||
* Added: the ingredient list in supplier management now updates in realtime if the user adds/edits/removes ingredients. | |||
* Changed: plant-level edit suppliers permission now allows the user to edit attachments/documents on a supplier as well as ingredient lists. | |||
* Changed: new supplier attachments now default to plant specific documents. | |||
==ReportViewer:== | |||
* Added: print queue page now has columns for report type as well as report name. | |||
* Added: column for the new execution time value. | |||
* Added: the print status column is now bolded and color coded. | |||
* Added: notes and error info columns are now multiline edits for easier reading. | |||
* Added: the user can now edit notes on each queue entry. | |||
* Added: support for reprinting items in the queue now updates the execution time as well as parameter values for the existing entry. | |||
* Added: clicking the 'cancel' button (little red x) while a preview job is running now cancels the job completely. | |||
* Added: cancelling a preview either with the little red x or by closing the screen now updates the print queue with a status of Cancelled. | |||
* Added: previewing reports now correctly saves the execution time in the repot queue as well as when it was previewed. | |||
* Added: errors that occur during print preview are now reported with the same error reporting box as all other printing errors. These errors are also saved in the print queue. | |||
* Fixed: any queued report that is sent to the previewer will now correctly save "Preview" as the destination for the report. | |||
* Fixed: an issue where reprinting reports by sending them to preview would cause a new queue entry to be created. | |||
* Changed: the report viewer tab now shows report categories and report names in a tree instead of 2 lists. | |||
* Added: report categories can now contain multiple levels and are no longer attached to the report type (what button it prints from). | |||
* Added: buttons for setting which reports are a user's favorites. | |||
* Changed: deselecting a report now makes various parts of the screen read only. | |||
* Added: the report and parameter lists now save and load their column order and widths. | |||
* Added: when reports are first loaded up (or they are reprinted) various pieces of meta-data are loaded for the report, including average execution time, who ran the report last, a well as how often it is run. | |||
* Added: (case 19808) support for adding reports to the user's favorite reports. All favorite reports show up in a special "* Favorites" area. | |||
==Sampling:== | |||
* Fixed: (case 18226) when the user checks or unchecks an analysis to search, it is grouped at the top of the list, making it easier to see which items are checked. | |||
* Fixed: a bunch of issues where the graphing tab would flicker when showing a new graph, and situations where the address bar and buttons would not be visible. | |||
* Fixed: cases where the refresh button would not work. | |||
* Fixed: an issue where all data for all time would be graphed in some situations (the user went to the graphing tab without performing a search or they hit clear). Now, a blank page is shown instead. | |||
* Added: a wait cursor now appears until the graph is completed. This is helpful for knowing when particularly large graphs are still being rendered. | |||
* Fixed: an issue where performing the same search more than once would show a blank graph page until the user clicked on it. | |||
* Added: (case 12785) there is now a work order type dropdown when doing sample searches. | |||
* Changed: if the graphing web page has a javascript error, that is now suppressed rather than being shown to the user. | |||
==Settings:== | |||
* Fixed: an issue where the print queue page on the report viewer screen would incorrectly ignore the 'show printed' checkbox. | |||
* Added: support for print logging in the report queue. | |||
* Added: support for mouse buttons in key bindings. | |||
* Added: doubleclicking a keybinding now allows the user to immediately rebind that action. | |||
* Added: support for an email auto-complete in the email dropdown when printing reports to email. Currently, the email auto-complete contains all user emails as well as historical emailed reports. | |||
* Performance: when a user closes a screen, column order is now saved with an INSERT ON DUPLICATE KEY UPDATE instead of REPLACE INTO, which will reduce traffic and disk writes. | |||
* Added: support for some new features on the report viewer screen. | |||
* Added: support for report categories. | |||
* Fixed: (case 19255) an issue where user settings would not save any changes if the user logged out and logged back in before closing the application. | |||
==WorkOrders:== | |||
* Added: a new button for copying the currently loaded WO, as long as the user has permission to create new WOs. | |||
* Fixed: if the WO screen gets saved but no WO is loaded, the user will not get an error that the WO is empty. | |||
* Added: if the user opens a WO, the edit work orders page is now automatically activated. | |||
* Added: if the user does not have permission to manage automatic work orders at any plants, the automatic WOs tab is completely hidden. | |||
* Added: A new 'automatic work orders' page where the user can configure automatically generated WO documents: | |||
===Automatic Work Order Scheduling:=== | |||
* Added: (case 12126) button to send historical workorders to new schedules. | |||
* Added: support to remove existing scheduled documents. | |||
* Added: the user can now add/remove workorders as favorites. | |||
* Added: checkboxes to control whether the user wants to see open, closed, and non-favorite work orders. | |||
* Added: whenever a schedule type is chosen, the various schedule parameters will become editable or readonly. | |||
* Added: support for a new permission to control whether the user can add automatic WO cloning. | |||
* Added: the historical WO list now sorts favorites at the top. | |||
* Added: a check to ensure that weekly schedules aren't saved without a day of the week to clone on. | |||
* Added: a 'next scheduled occurrence column, which shows information about when a schedule will execute next. | |||
* Added: double-clicking a historical WO will add that item to the scheduled WOs. | |||
* Added: a button to clone any selected historical documents. This is useful when work orders can't be scheduled regularly. The user can choose to clone the WOs with values or without. | |||
* Added: a button to execute selected WO schedules to clone the documents immediately. | |||
* Added: a button to rerun all saved WO schedules immediately. This effectively "Re-runs" all schedule checks that should've been executed in the previous hour. If any WOs are cloned, the user is told and they are given the ability to open the last one. If there are any errors, the user is told. If all WOs were cloned successfully in the last hour, nothing will be created. | |||
==Reports== | |||
* Fixed: (case 20012) a bug in Investigation Overview causing the original sample to show twice instead of including any investigation samples. | |||
* Added: (case 19211) Investigation Overview, a new report that looks at investigations. Original sample is starred. | |||
* Added: (case 19710) the ability for more fields to be able to grow without cutting off on the Certificate Of Analysis report. | |||
* Added: (case 19636) a new report for printing LA barcodes on demand, LA Label.rpt. The location and analysis parameters supporti the wildcard * so more than one combination can be selected at a time. | |||
* Changed: (case 18715) combined Analysis and Category parameters into one on Failed Results report. | |||
=Version 1.9= | |||
REV 16767-17048 1.9 database version 190 | |||
==CommonResources:== | |||
* Fixed: (case 15799) if the user deletes a default option value from a work order, it will no longer be replaced by the 'default' value. | |||
* Added: (case 17193) if the work order type changes, the product/ingredient will now be emptied if the new work order type doesn't support products or ingredients. | |||
==Database:== | |||
* Fixed: an issue with a previous update setting workorders to open that were supposed to be closed and vice versa. | |||
* Fixed: an issue where p_clone_data was throwing a database error when cloning work orders. | |||
* Added: (case 17044) the user can now subscribe to alerts when investigations are Created, Modified, Opened, or Closed (Resolved). | |||
* Changed: (case 17420) work order due date is now a date/time instead of just a date. For backwards compatibility, all existing due dates now have a time of 11:59 PM to match previous behavior. | |||
* Added: (case 17043) preliminary support for subscriptions to alerts on work orders that have expired or are going to expire in a set number of hours. | |||
* Added: an index to make lookups by due date faster. | |||
* Added: (case 17385) a new column to alertsubscription that allows a subscription to only be sent if there are required options that are not filled out. | |||
* Fixed: alertsubscription.active was not being properly respected as a way to disable alerts. | |||
* Added: (case 17385) alert subscriptions can now be restricted to only when required option values are missing. | |||
* Added: (case 7828) a new table for creating rules for automatic investigation creation. | |||
* Added: several columns to the investigation table to track information about new automatically created investigations. | |||
* Added: f_get_item_in_subtree, which checks to see if a locationid or productid is the descendant of another locationid or productid without dynamic SQL. | |||
* Added: (case 7828) f_sample_values_updated now looks at the investigationtrigger table to see if any of the modified option values require an automatic investigation to be created. | |||
* Changed: f_sample_values_updated now no longer updates option value acceptability for option values that were already calculated. This should prevent closed samples from being recalculated from new rules. | |||
* Added: (case 12969) a permission that controls whether the user can add new work orders (defaults to the same as the user's ability to edit work orders). | |||
* Fixed: (case 16886) when the user performs right-click graphing and numeric values being graphed are empty, they are no longer graphed as 0. Now, such values are not present in the graph. | |||
* Changed: (case 17570) the investigation field findings has been renamed to corrective action and a new preventative action field has been added. | |||
* Added: (case 17716) sample.sourcesampleid, which will track when one sample is cloned from another. | |||
* Added: (case 17716) p_clone_sample now copies the original sampleid into sourcesampleid, so that we can know when one sample clones to another. | |||
* Added: (case 15895) recipes now have a batch unit. | |||
==Home:== | |||
* Added: (case 17420) due date and date created now display date and time in the work order list. | |||
* Fixed: work orders that are due today (but have not yet expired) are now properly shown in blue instead of red. | |||
==Master:== | |||
* Added: (case 13008) when the application cannot reach the local database during an update attempt, the original MySQL error is now sent out as part of the error report, instead of the current, generic Database error 0 that we currently get. | |||
* Changed: (case 17194) we disabled some of the COM timeouts in the application, as this seems to make exporting reports from the crystal reports previewer not show erroneous 'server busy' messages. | |||
==Products:== | |||
* Added: (case 15895) each recipe can now have a batch unit filled out. | |||
==Graphing:== | |||
* Added: support for analysis level acceptability filters (showing samples with at least one option value that is acceptable/marginal/unacceptable). | |||
* Fixed: when a graph is filtered by the collected by user, the graph will now correctly be filtered. | |||
* Added: (case 15834) if results were on samples with no location, the location information in the hover text now shows NONE for the location. | |||
==Investigation:== | |||
* Added: (case 15708) support for screens sending a specific investigation to the screen to be viewed. If the current set of results has the investigation in question loaded, it will be selected. Otherwise, that item will be loaded first. | |||
* Changed: the screen icon has been updated from the generic icon. | |||
* Added: (case 7828) the constraints page now has a list of all rules being used to automatically create investigations. | |||
* Changed: constraints tab renamed to Rules. | |||
* Fixed: an issue where changing location wasn't saving the correct value. | |||
* Added: adding and deleting investigation rules now works correctly. | |||
* Added: closing the scree with changes to investigation rules now prompts the user to save. | |||
* Added: support for deactivating investigation trigger rules. | |||
* Added: the description column for investigation rules now automatically generate in a human-readable string based on the choices made in the other columns. | |||
* Added: default comments now are now set automatically on new investigation rules. This way the user will know more about why an investigation was created. | |||
* Changed: the comments and findings fields on the investigation history screen are now 'multi-line' edits, so the user can enter multi-line data more easily. | |||
* Added: (case 17570) the investigation field 'findings' has been renamed to corrective action, and a new preventative action field has been added. | |||
* Added: (case 17680) the analysis dropdowns on the investigation history tab are now all plant specific. Other plants' analyses will no longer show up here. | |||
* Added: (case 17680) the automatic investigation constraints page now only shows plant-specific analyses in the dropdowns. | |||
* Added: (case 17569) there is now an analysis category column in the investigation history as well as a filter. When the user uses the analysis category to filter, the analysis dropdown is not usable as a filter. | |||
* Added: (case 17647) investigations now show the sampled by/date of the original sample, and each investigative sample also shows a sampled by/date. | |||
==ITSQLFramework:== | |||
* Added: Error reports now have a "Force advanced information" option. If this is set to true, when the error message is displayed, the 'advanced info' checkbox is automatically checked (and hidden). This is useful when code wishes to use the error reporting box as a normal error popup but we can't gaurantee that everyone views advanced info. | |||
* Fixed: an issue where very long words (like a URL) were not properly resizing the height of the message body in the error message popup. | |||
==ITMySQLConnection:== | |||
* Updated: local connection library version updated to version 6.1.5 | |||
==SamplingHistory:== | |||
* Added: (case 17004) the user can now specify an acceptability filter at the analysis level, rather than just at the option level. Filling this out will filter to just those samples that have at least 1 option value with the chosen acceptability. | |||
* Changed: various tooltips to be clearer and more concise. | |||
* Changed: (case 17004) the acceptability default in the filter options has been moved to the new search defaults area. In addition, it now controls just analysis acceptability instead of option acceptability filters. | |||
* Added: the search defaults area now has a 'show all options' checkbox. When checked, any analysis added as a filter will automatically select all options to be shown in the results. When unchecked, the user must choose options to display manually. | |||
* Added: right clicking in the analysis/option list now allows the user to quickly show/hide all options for a chosen analysis. | |||
* Added: graphing pane now supports analysis level acceptability filters. | |||
* Fixed: (case 17466) an issue where analyses that were not supposed to be shown were being shown in the results. | |||
* Added: (case 15708) any loaded samples that generated an investigation, or were generated by an investigation will now show an attention icon. Depending on the sample's association to the investigation, one of 2 icons will be shown. Double-clicking either one will open that investigation on the investigation screen. | |||
* Fixed: an issue where saving changes would not immediately display the updated colorization on unsaved option values or remove the 'save' icon on modified rows. | |||
* Added: saving samples now refreshes investigation status based on the new automatic investigation creation system. | |||
==WorkOrders:== | |||
* Fixed: (case 17532) an issue where changing a value on a sample might set all other option values back to the default values. | |||
* Fixed: an issue where the user would be unable to edit a new work order if they didn't have permission to edit WOs not assigned to their group, and the default WO type had a group the user didn't belong to. | |||
* Added: (case 15708) any loaded samples that generated an investigation, or were generated by an investigation will now show an attention icon. Depending on the sample's association to the investigation, one of 2 icons will be shown. Double-clicking either one will open that investigation on the investigation screen. | |||
* Added: (case 17420) due date now allows the user to specify a time in addition to a date for the WO to be due. | |||
* Changed: date created now shows time in addition to date. | |||
* Fixed: an issue where date created was not saving a time, just a date. | |||
* Fixed: whether the finalize/close WO button is greyed out or not is now refreshed when the document verified checkbox is changed. | |||
* Added: (case 7828) if the user modifies any option values and saves, the system will now examine all automatic investigation creation rules and see if an investigation needs to automatically be created. | |||
* Added: on save, investigation status is now refreshed for all samples in case an investigation was created (either automatically or by another user) since the user opened the WO. | |||
* Added: (case 12969) saving WOs now throws an error if the user is creating a new work order at a plant they don't have permission to create a WO at. | |||
* Added: (case 12969) if the user has no permission to add WOs at any plant, the work order interface is locked down. | |||
* Added: (case 15895) in the production page, when a recipe is selected, that recipe's batch unit is now shown. | |||
==General/Controls:== | |||
* Fixed: (case 17707) a crash that would be caused when hitting the up arrow in an advanced combo box when nothing was selected. | |||
* Fixed: an issue where paging combo boxes weren't correctly 'going to a page' during setting initial text. | |||
* Fixed: (case 17672) an issue where deleting all items from a list could leave dead whitespace in the list when new items are loaded back in. | |||
* Fixed: an issue where a variable was not initialized, leading to somewhat random behavior on ITDateTimeCtrl's where their style was set to date and time. | |||
* Fixed: an issue where ITDateTimeSetting::Reset was working inconsistently and could create an COleDateTime that was invalid. | |||
==Reports== | |||
*New Report: Choices and Thresholds (case 17854): This is a report that everyone could benefit from if they like the Analysis Management Screen but need to see more than one option at a time. It has a combined parameter that lets you filter by Analysis Category, Name, and Option - wildcard supported. | |||
* Updated Report: Failed Results (case 17342): Added a parameter option for all plants, changed report type to Production, changed default date range to yesterday-yesterday, removed Acceptability column, swapped two columns' order. | |||
=Version 1.8.1= | |||
==Database:== | |||
* Added: (case 11565) there are now tables for scheduling reports to be run and either saved into a directory, emailed to a recipient, or printed out of a network printer. | |||
* Fixed: an issue where the event that creates schedule instances would thrown an error if the start date was set to '0000-00-00'. | |||
==ITMySQLConnection:== | |||
* Fixed: an issue where errors that happened during StoreMultiple were not being reported in any way (so long as the syntax of the entire query string was correct). Now, if any part of the query set fails, the entire thing fails and it stops grabbing results. This may cause false-positives in some situations where 1/10 queries is allowed to fail, but since each ITSQLResult cannot report the error of an individual query, I think this is the best we can do for now. | |||
==ITrack.exe== | |||
* Changed: (case 17194) we disabled some of the COM timeouts in the application, as this seems to make exporting reports from the crystal reports previewer not show erroneous 'server busy' messages. | |||
==ReportsExtension:== | |||
* Fixed: an issue where date parameters with no default value might cause an error when previewing or printing. | |||
==ReportViewer:== | |||
* Fixed: (case 17162) if the report viewer screen was closed while a report preview was being built, or the user previewed a different report altogether, a crystal error would sometimes appear and it would occasionally keep the report viewer from previewing new reports. Now, we attempt to cancel the current preview and the user must wait for this cancellation process before closing the screen. | |||
* Fixed: an issue where date parameters might sometimes not display correctly. | |||
* Added: the report queue tab now works with the new report queue fields. Also, we now display notes and error message on the screen. | |||
==Sampling:== | |||
* Added: (case 17176) the user and time of WO approval are now in the 'work order fields' that the user can show on samples' history. | |||
* Added: (case 17004) the user can now specify an acceptability filter at the analysis level, rather than just at the option level. Filling this out will filter to just those samples that have at least 1 option value with the chosen acceptability. | |||
* Changed: various tooltips to be clearer and more concise. | |||
* Changed: (case 17004) the acceptability default in the filter options has been moved to the new search defaults area. In addition, it now controls just analysis acceptability instead of option acceptability filters. | |||
* Added: the search defaults area now has a 'show all options' checkbox. When checked, any analysis added as a filter will automatically select all options to be shown in the results. When unchecked, the user must choose options to display manually. | |||
* Added: right clicking in the analysis/option list now allows the user to quickly show/hide all options for a chosen analysis. | |||
* Added: graphing pane now supports analysis level acceptability filters. | |||
* Fixed: (case 17466) an issue where filters might apply to options on other analyses. | |||
==Sample Graphing:== | |||
* Fixed: an issue where the user might get 'all series must share the same type' error if they were mixing date options with non-date options. | |||
* Changed: the graph will use a date Y axis if all the options being graphed are dates or times. Otherwise, these series are hidden. | |||
* Added: the format of the information popup has been changed to be more readable and to include the plant code. | |||
* Fixed: the format of dates (date/time options only) in the information popup has been changed to be easier to read. | |||
* Fixed: an error that could occur if the URL contained no option filters. | |||
* Added: support for analysis level acceptability filters (showing samples with at least one option value that is acceptable/marginal/unacceptable). | |||
=Version 1.8= | |||
==Controls:== | |||
* Fixed: (case 16370) an issue where the application might crash if the user typed something into a dropdown that didn't match an item then clicked outside of the combo. | |||
* Fixed: (case 16002) an issue where using the mouse to click (confirm selection of) the first suggested now properly selects the item. This was only causing trouble when the user would look items up by something other than the start of the item text. | |||
* Fixed: a crash that could happen if SetColumnWidth was called on a non-existant column id. This would happen in some scenarios due to resizing before columns were added. | |||
* Fixed: an issue where combo boxes were not scrolling correctly in windows 10 with the 'scroll inactive windows' windows setting on (which is on by default). | |||
* Fixed: an issue where clicking on the scrollbar of a combo box could affect how the mouse worked, such that the user could move the application without moving the dropdown window. | |||
* Added: support for mouse scrolling in combo boxes for any mouse wheel with customized sensitivity. | |||
* Fixed: an issue where close buttons in a list were sometimes showing in the wrong spot on list controls that hadn't been resized yet. | |||
==Graphing:== | |||
* Added: (case 15353) there is now a 5% buffer around the outermost data points in the graph. | |||
* Changed: (case 13333) filling out only a from or a to value will no longer do an 'exact' search. Now, they will do a range search. So entering a 'from' value of 5 will search for everything equal to or greater than 5. This only applies to range searched option types. | |||
* Added: (case 15673) support for switching between the AND and OR operation regarding option value filters. | |||
* Fixed: date/time option filters now work correctly. | |||
* Changed: date/time options were not graphable previously. Now they should work. Currently, showing thresholds is incompatible with graphing dates. | |||
==Analysis:== | |||
* Changed: (case 15289) newly created thresholds now default to Unacceptable instead of Marginal. | |||
==Configuration:== | |||
* Changed: (case 14473) the home screen graphing URL and the sampling history page now use global settings instead of plant settings to store these values. | |||
* Added: (case 15217) work order type configuration now supports setting whether a verification step is required for a particular WO type as well as a default verification user group. | |||
==CommonResources:== | |||
* Added: (Case 15331) the Products->Configure Recipes page now has a new column in the ingredients list where the user can specify whether the thresholds are considered 'fixed' or 'per-batch'. This controls whether thresholds on recipe options are calculated against WO totals or against average per-batch values. This functionality only applies to numeric options when batch and production volume is not 0. | |||
* Added: threshold type defaults to matching the ideal value type (Fixed or Per-Batch). If the ideal value is 'Calculated', the threshold type can be either fixed or per batch. | |||
* Fixed: a possible crash when launching a tree report dialog. | |||
* Added: an icon to the inspect value button on the sampling detail page. | |||
* Fixed: the remove button is no longer clickable when no item is selected. | |||
* Added: support for a new permission "Can edit work orders assigned to other groups". If the user doesn't have this permission, they cannot edit samples/WOs assigned to user groups that they are not in. | |||
* Fixed: an issue where the attachments dialog was always editable. Now, the user can only edit attachments on samples they could otherwise modify (all permissions present and sample is still open). | |||
* Added: The sample detail page now has tooltips for all UI items. | |||
* Added: (case 14077) the user must now have the permission to delete saved samples in addition to the ability to edit samples in order to delete a sample. | |||
==Database:== | |||
* Fixed: an issue where alerts' email body could not exceed 64KB. | |||
* Added: nightly sample alerts now properly respect restrictions on analysis, plant, group, product, etc. | |||
* removed: several unused settings. | |||
* Added: there is now a stored procedure that will clone all data that needs to be cloned for the specified date/time. The hourly event now calls this function. | |||
* Changed: (case 14473) the home screen and sampling history URL settings have been moved from plant settings to global settings. | |||
* Added: (case 15331) support for analysis options to have Per-Batch thresholds as well as Fixed thresholds. These control whether thresholds on recipe options are calculated against WO totals or against average per-batch values. This functionality only applies to numeric options when batch and production volume is not 0. | |||
* Added: (case 15331) option value calculation functions have been modified to support new Per-Batch thresholds. | |||
* Added: lot number and expiration date to all option values. This will mostly only be used for production work orders. | |||
* Added: (case 15217) the workorder now has a status field, which can be Open, Sampled, Closed, and Cancelled, similar to sample statuses. | |||
* Changed: various triggers to match the new workorder status field. | |||
* Added: (case 15217) support for WO verification to WO types. | |||
* Fixed: an incorrectly named permission | |||
* Added: (case 15217) a new permission that controls whether a user can edit work orders that are assigned to other groups. This permission has been auto-granted to all users who could edit work orders previously for minimum impact. | |||
* Added: (case 15217) a new permission that controls whether a user can verify work orders. | |||
* Added: (case 5844) most important presage tables now have logging turned on by default, rather than relying on users to ask for it. This will add a certain amount of slowness. | |||
* Added: (case 14077) a new permission that controls whether a user can delete saved samples from a work order. All users with the permissionn to edit work orders automatically have this permission to minimize disruption. | |||
==Home:== | |||
* Changed: support for new WO status changes. | |||
==Investigations:== | |||
* Added: (case 12417) all readonly columns now have a slightly gray background to help the user to know what columns can be edited. | |||
* Added: (case 12417) the investigation detail list now shows the sampling comments and testing comments of the samples in question. These fields can be edited from this screen directly. | |||
* Changed: (case 12417) the result field now has option labels as well as option values. Also, the investigation only shows options that failed on the original WO. In addition, follow up WOs only show values for options that failed on the original document or that failed on the retest. | |||
* Added: list column order and widths are now remembered when the screen is closed. | |||
==ITMySQLConnection:== | |||
* Fixed: an issue where an error would occur during connection (though it would not be shown to the user). This was causing a small delay on every launch of ITrack. Also, connecting via named pipe should work correctly now. | |||
==Login:== | |||
* Added: all groups the currently logged in user is part of are cached for faster group checking. Also added some external functions for other screens to utilize this information. | |||
==ReportViewer:== | |||
* Fixed: (case 15785) an issue where key choice parameters were displaying the incorrect value as soon as the user chose a value. | |||
* Fixed: (case 15785) an issue where date, time, and date/time fields would display default values in a different format than the user's windows setting for date/time format. This was leading to those fields losing their default value. | |||
* Fixed: (case 16029) entering a date before 1970 will no longer cause date-time pickers in the list to throw an error message that the user cannot clear. The user should now be able to enter any date back to 1601 (limited by the windows date time controls). | |||
* Added: (case 16246) if the EDocuments extension is not loaded, the report viewer will attempt to continue using dynamic report parameters anyway. This could lead to database errors for some more complex reports, but it should be very rare. If the EDocuments extension could not be found during dynamic report processing, the status bar will now show a warning. | |||
* Fixed: reports now show in alphabetical order. | |||
==Sampling:== | |||
* Fixed: an issue where filling out an option choice would check the option 'use' checkbox for displaying the option in the results, but the option would not be displayed in the Results. | |||
* Added: after performing a search, when the search pane shrinks, all selected options will be scrolled into view so that its easier to tell what was searched for. | |||
* Changed: (case 13333) filling out only a from or a to value will no longer do an 'exact' search. Now, they will do a range search. So entering a 'from' value of 5 will search for everything equal to or greater than 5. This only applies to range searched option types. | |||
* Fixed: an issue where date/time option filters were not being sent to the graph correctly. | |||
* Added: (case 15673) a new checkbox in the advanced search options that toggles between using AND and OR between analysis option filters and acceptability. Essentially this allows the user to choose between searching for "value between 1-10 AND value unacceptable" or "value between 1-10 OR value unacceptable" | |||
* Added: tool tips for all controls on the sample search page. Now, the user can hover over any controls to see info about their purpose. | |||
==Settings:== | |||
* Fixed: (case 15442) an issue where global settings were not loading correctly. This was causing those values to be overwritten when the user would close the application. | |||
==WorkOrders:== | |||
* Removed: (case 15860) closing a WO no longer suggests sending a notification. | |||
* Added: lot number and expiration date to all steps/ingredients on production work orders. These are optional, and allow the user to enter information for ingredient traceability. | |||
* Changed: for simplicity, the options in the Set Status dropdown button are hidden for samples when on the recipes page and vice versa. | |||
* Changed: there is no longer a second apply button in the sampling detail page. | |||
* Added: (case 15217) there is now a checkbox for marking a work order as verified. Currently this operation can be performed after a document has already been closed, or before. | |||
* Added: (case 15217) a 'verified by' and 'verified on' fields which are set to the current user and time when a document gets marked as verified. | |||
* Added: support for a new permission "Can edit work orders assigned to other groups". If the user doesn't have this permission, they cannot edit WOs assigned to user groups that they are not in. | |||
* Added: support for a new permission "Can verify work orders". If the user doesn't have this permission, they cannot mark a document as verified. | |||
* Added: work order types that require verification no longer allow the user to close them without verification. | |||
* Added: new status checkbox "Work Completed" which represents the state where a work order has had all its work completed and all data entered. This state implies the document is ready to be verified, but still allows modification (unlike closed). | |||
* Fixed: an issue where the user could reopen a WO when they didn't have permission. | |||
* Fixed: several rare cases where the user might be able to affect a document they didn't have permission to edit. Now a user without permission to edit a WO can only print the document (no saving occurs). | |||
* Added: icons to several buttons. | |||
* Fixed: several 'sanity checks' on sample data was being skipped if the document was being closed. They are now performed even if the document is being closed. | |||
* Changed: if a WO is completely filled out, the user is now asked if they wish to: "Leave WO Open", mark the WO as "Completed", or mark the WO as "Closed". The closed option can only be chosen if the WO is verified or the WO type doesn't require verification. This replaces the old pop-up where the user is asked if they want to close a WO because all data is filled out. | |||
* Added: the user can now verify work orders that they do not have the ability to edit. This allows creation of users who verify work but do not have the ability to edit said data. | |||
* Added: if the status of a work order goes from Open to either Work Completed or Closed, the assigned to group will be assigned to the verification group specified on the work order type. | |||
* Added: verifying and un-verifying WOs works now and sets the verification date and verified by user. | |||
* Added: The edit work order page now has tooltips for all UI items. | |||
* Added: the sample schedule page now has tooltips for all UI items. | |||
* Added: the production page now has tooltips for all UI items. | |||
* Added: (case 13590) a refresh WO button, which reloads the current work order from the database. | |||
=Version 1.7.1 (Hot fix)= | |||
==CommonResources:== | |||
* Fixed: a minor misspelling. | |||
* Fixed: the edit default value dialog no longer shows "Recipe Volume" and "Batch Volume" when editing default formulae for sample options. | |||
* Fixed: (case 15534) an issue where the user could not create default value formulas that involved new (unsaved) analysis options. | |||
* Added: (case 15218) changing the default value to "" will now automatically check the "Fixed" value radio button. Entering something that looks like a formula will now automatically check the "Calculated" radio box. | |||
==Database:== | |||
* Fixed: an issue where the scheduled alerts were not being sent correctly. | |||
* Fixed: (case 15377) a possible issue where saving a WO might fail with an error. | |||
* Added: the data clone procedures now log the id of the new document that was created for easier debugging. | |||
* Removed: a setting that is no longer used. | |||
==Sampling:== | |||
* Added: (case 15410) the user can only filter a search by 25 or fewer analysis options. This avoids a database error that can happen if it gets above that value. | |||
* Fixed: (case 15411) an issue where searches that returned more than one result (or performing a search more than once) could cause the "Show Testing/Sampling Details" checkboxes to be hidden. | |||
==Settings:== | |||
* Fixed: GetCompanyCode now properly gets the presage company code from the appropriate setting. | |||
* Fixed: (case 15442) an issue where changing global or plant level settings and saving would temporarily change the setting, but it would be reset later. | |||
==WorkOrders:== | |||
* Fixed: an issue where WOs would show other plants' analyses. | |||
=Version 1.7= | |||
==General:== | |||
* Fixed: (case 14319) an issue where double-left clicking in an edit did not select the entire word that was clicked on. | |||
* Fixed: lots of minor issues with dropdowns not working as expected. | |||
* Fixed (list control): (case 14353) if a pop-up happened (or something caused the mouse to move) during WM_ITLC_CELLTEXTCHANGED or WM_ITLC_EDITKILLFOCUS when the user was left clicking somewhere in the list, it was possible that when the modal dialog box was closed, the current mouse position would be used for click handling or drag & drop handling, causing items to get rearranged strangely. | |||
* Fixed (list control): a minor issue where columns wouldn't always resize to fill the entire list | |||
* Fixed: an issue where a property page that was initially hidden would have its tab text set to "" when it was first shown. | |||
* Fixed: an issue that could cause an advanced combo to ignore the first selection change the user made by clicking. | |||
* Added: (case 14918) the page up/ page down keys now scroll a whole page in all combo boxes. | |||
* Fixed: a long-standing issue where date-time fields in a list control would not draw the up/down arrows correctly until the user put their mouse over them. | |||
==Analysis:== | |||
* Fixed: (case 14514) an issue where the analysis screen would crash when the plant was changed on the analyses tab. | |||
* Added: (case 12811) support for upcoming recipe features. | |||
* Fixed: the check threshhold dialog should no longer show inactive products/ingredients in the dropdown. | |||
==CommonResources:== | |||
* Fixed: an issue where calcualted values weren't being calculated correctly if they were not the last option on the analysis. | |||
* Changed: (case 12811) the analysis management page has moved from the Analysis module to the common resources module. This should not affect program behavior. | |||
* Added: (case 12811) recipes and ingredients now support quantities. Ingredient quantities now allow fixed values, per-batch quantities, and calculated values. | |||
* Removed: samples can no longer be created for recipes | |||
* Fixed: the print tags popup no longer has memory leaks. | |||
* Fixed: the print tags popup now has a layout and text prompts similar to other screens. | |||
* Added: icons to the buttons in the print tags popup. | |||
* Changed: (case 14964) some of the work done by the sample list has been moved to a shared interface to benefit the new recipes page. | |||
* Added: support for 'per batch' default values, which are multiplied by the ratio between the production volume and the batch volume. | |||
* Added: support for new variables in calculation formulas: batch_volume and production_volume, which are filled out by the corresponding values when performing calculations. | |||
* Added: (case 13307) many fields from the work order are now visible per sample in the sample results. | |||
* Added: (case 13307) there is now a 'show work order detail' which shows/hides work order columns in the list. | |||
* Changed: the sampling and testing comments are now visible no matter even if the user is hiding sampling/testing fields. | |||
* Added: (case 15329) recipe ingredients and instructions that use a checkbox now default to showing an ideal of "True". | |||
* Fixed: (case 15329) an issue where boolean ingredients/instrucitons would always show False as their ideal value. | |||
* Fixed: (case 15159) inactive products/ingredients no longer show in the analysis configuration page or the sample detail page. | |||
==Configuration:== | |||
* Added: the Configure Work Order Types page now allows the user to choose a default user group to assign those WOs to. | |||
* Removed: (case 10566) creating a new user no longer copies over info on the basic information tab | |||
* Removed: creating a new user now deselects the previously selected user(s) so that changing the new user won't accidentally update other users as well. The user can still multi-select users if they wish. | |||
* Fixed: (case 14468) an issue where, if all users were deselected, the permissions on the permissions tab were not reset to None. This was a problem because new users were getting the last selected users permissions, which was not an obvious behavior. | |||
* Added: the connectivity tab is now laid out more like the other tabs. | |||
* Added: (case 14588) there is now another URL on the graphing page for the home screen graphing URL. The default goes to http://home.presageanalytics.com/graph_advanced.php?userid=...&plantid=...&productcode=... | |||
==CrystalReportsExtension:== | |||
* Removed: Edit->Options->Reports. This page has been moved to its own configuration screen because it affects all users, not just the local machine. Some users were accidentally changing reports when they meant to just configure their printers. | |||
* Added: Configure->Printers. This is a permission-controlled dialog for managing all reports, system-wide. | |||
* Added: Edit->Printers. Since this is a semi-common user operation, the printers page has been given its own edit dialog. For now, it still appears in edit->options as well. | |||
* Added: support for retrieving information about a crystal report file loaded from the system. We can read parameter names and types as well as page orientation and desired paper type. | |||
* Added: the rank column is now present in the Configure->reports dialog. | |||
* Added: if the user adds new Report(s) from a file (through drag and drop or the add button), the report file is scanned for parameters and paper orientation. This information is auto-populated into the new report. | |||
* Added: support for managing fixed report parameter values in the configure->reports dialog. | |||
* Added: the advanced button now has a 'export selected reports' option. This will create a .SQL file with queries that will create the selected reports, parameters, and parameter values on any database. This will only be useful for someone who wishes to manage their own report files (rare) as well as the application support team. | |||
==Database:== | |||
* Changed: (case 13327) location code can now be a full 50 characters. | |||
* Added: (case 14235) new field for tracking default worker group for new WOs of that type. | |||
* Added: (case 14253) a field for tracking default group per work order type. | |||
* Fixed: (case 14382) an issue where some WOs would fail to clone because they were too large. This could also affect creating a new WO with many samples on it. | |||
* Added: (case 14514) to support upcoming changes to recipes, analyses and analysis options have been extended with some extra fields for tracking necessary data. | |||
* Fixed: WOs without any failures might send out alerts even if the user was subscribed for alerts for failures only. | |||
* Fixed: an issue where email alerts were thinking that they failed when they had succeeded. Error handling should be somewhat more accurate for both Windows and Linux systems. | |||
* Fixed: the triggers for sending 'on modified' alerts for samples, values, and WOs weren't being fired correctly when an unacceptable value was entered during the initial save for a WO. | |||
* Updated: a trigger to remove references to a field that has been removed. | |||
* Fixed: an issue where alert triggers might fail on large WOs. | |||
* Added: support for scheduled alerts. These can follow any schedule, for example: a nightly email of all failures that happened that day. | |||
* Added: alerts can now be deactivated with being deleted. | |||
* Added: support for the alert type 'Daily Samples', which will send all matching samples that were performed on the given schedule. | |||
* Added: a weekly overnight event that will ensure all schedules have instances for at least a year into the future. | |||
* Added: (case 14694) sample.productionvolume, which will store the volume that is going to be produced on by a recipe sample. | |||
* Added: there is now a workorder type flag for saying whether WOs of that type should show the new recipes page. | |||
* Removed: logging triggers from areas where they shouldn't exist. | |||
* Added: analysisoptionvalue.defaultvalue. This will contain the last calculated default value for any option value (or recipe ingredient). This is important for reports that want to show ideal ingredient quantities as well as whether or not values have been modified from the default. | |||
* Added: a new permission for the configure->reports dialog. | |||
* Fixed: (case 15128) an issue where nightly scheduled WOs weren't being created. | |||
* Fixed: an issue where an object that was deleted before an alert could be sent would cause replacement tokens to remain in the alert body. Now, those values will be replaced with empty strings. | |||
* Fixed: (case 15287) an error that would happen when the user was saving new recipes. | |||
==DataManagement:== | |||
* Fixed: an issue where the record terminator wasn't displaying a linebreak correctly. Essentially, tab will now be shown as \t, and newline will be shown as \r\n or \n. Also, an escape character of \ will now be displayed as \\ for consistency. | |||
==Graphing:== | |||
* Fixed: (case 14498) an issue where "analysis_option_id[]=" was causing graphing URLs to throw an error. | |||
==Home:== | |||
* Added: (case 14588) the embedded web page now navigates to the URL specified in the configuration screen for the home screen graphing URL. This allows personalized graphing templates to be displayed on the home screen. This URL can be customized per plant on the configuration screen. | |||
==ITMySQLConnection:== | |||
* Added: support for a new database mode where disconnects are not automatically reconnected, but instead must be manually reconnected. | |||
* Added: (case 14552) support for a new database mode where the application catches all database disconnections and automatically attempts a fixed number of reconnection attempts before throwing an error (the default reconnection attempt count is 1). This is the new default mode. | |||
* Added: for legacy support, there is a legacy database mode where reconnects are handled automatically by MySQL. This mode is not transaction safe, and so is being deprecated. | |||
* Changed: Several low-level database operations have been sped up, including checking to see if a connection is live, as well as disconnecting. | |||
* Added: all ISoft database error codes have been given formal #'s in the 100 to 200 range to keep them separate from the MySQL database error codes (1000 to 2999) | |||
* Added: (case 14552) any disconnections (manual, timeout, explicit connection termination on the server side) will cause a new error ("Connection lost during transaction" error # 103) to be thrown on the next query to be run. This feature requires the database connection to be in the new AUTO_RECONNECT mode, which is the default. Also, this only applies to code that explicitly begins transactions. This solves a central issue where bad connections could lead to partial saves being lost due to the implicit ROLLBACK performed by MySQL when a connection is lost. Now, the application will detect this state and return an error so that it can be handled gracefully. | |||
* Added: the MySQL connection now puts more information in the (optional) log file. This includes notes whenever disconnects were noticed, as well as a note for every auto-reconnect attempt. This makes the log file more readable when debugging operations that spanned multiple reconnects and identifying errors that occurred because of a disconnect in the middle of a transaction. | |||
* Fixed: code that calls Disconnect directly will no longer cause the application to get into a state where it would not reconnect anymore. | |||
* Changed: The Reconnect operation now simply calls Disconnect and Connect, to avoid previous issues where it was handled differently. | |||
* Added: support for hiding the 'retry' button on the query error dialog if the error being reported is that the tranaction was interrupted. This is because, in this case, the entire transaction must be re-run to ensure validity. | |||
==ITSQLFramework:== | |||
* Added: when a query error popup happens, the retry button will not be available if the error being reported is that the transaction was interrupted. This is because, in this case, the entire transaction must be re-run to ensure validity. | |||
==Locations:== | |||
* Changed: (case 13327) location code can now be a full 50 characters. However, location names still cannot exceed 50 characters, meaning a location with a 50 character code cannot have sub-locations. | |||
==Login:== | |||
* Support for the new configure->reports permission. | |||
==Master:== | |||
* Fixed: (case 14506) the database updater now correctly parses events and triggers, and should no longer have trouble with versions that end with an EVENT declaration. | |||
* Added: if ITrack.exe fails to write a setting out to the ini file, it now displays an error in the status bar so that we can debug situations where users cannot seem to write printer choices to their settings file. | |||
==Products:== | |||
* Added: the recipes page has been replaced with a page for configuring special recipe 'analyses' more on this to come. | |||
* Added: the recipe tab now allows the user to add/edit/delete recipes. | |||
* Added: the edit default formula dialog now shows the special variables "Batch Volume" and "Production Volume" as options to be inserted into any formulae. Batch Volume is the quantity produced in a single, standard batch; production volume is the quantity being produced on a specific WO. | |||
* Added: the recipes page now allows the user to manage choices and thresholds for all directions and ingredients. | |||
* Fixed: several tooltips and popups were using inconsistent wording and language. They have been corrected. | |||
* Fixed: (case 15286) an issue where the category dropdown would show duplicate items in it. | |||
* Added: the category dropdown now only shows the categories that match the currently selected ingredient/product choice. | |||
==ReportViewer:== | |||
* Added: if the user enters an invalid parameter value, when they leave the field, the value will be updated to reflect a valid value. This means entering "ABCDEF" into a number filed will be replaced with the value 0. This fixes an issue where such values were being treated as 0 but the user was not aware. | |||
==Sampling:== | |||
* Fixed: (case 14844) an issue where not all choices were visible as options for filter dropdowns on 'choice' options. | |||
* Added: (case 14846) there is now an "Advanced Filter Options" area that is shown when the user expands the filter area. | |||
* Added: (case 14846) in the advanced filter options, there is now an option to mass-choose analyses by their analysis category. | |||
* Added: (case 14457) in the advanced filter options, there is now an option to mass-choose analysis option acceptability. This should make searching for only failed samples (for example) much easier. | |||
* Added: checkboxes "Show production documents" and "show testing documents" for limiting what types of documents the user can search for. | |||
* Fixed: an issue where production WOs were not displaying their samples correctly. | |||
==Settings:== | |||
* Fixed: (case 14568) an issue where error reports weren't being marked as from Presage correctly. | |||
==WorkOrders:== | |||
* Added: the default user group of the current work order type is now used to specify worker group. | |||
* Fixed: an issue where some defaults from the current work order type might not stick if that WO type was automatically selected (default WO type). | |||
* Changed: If the WO has a problem (missing data) it will no longer attempt to save the document. | |||
* Removed: the default analysis type for a WO can no longer be a recipe. | |||
* Added: (case 14964) a new recipes page to the edit work order area. This area is being built out as a tool for building production work orders. | |||
* Added: support for a new checkbox in the configure->work order types dialog. Now the user can specify whether or not the recipes page is visible. | |||
* Added: support for both option to option dependency and calculated ideal volumes for production WOs. | |||
* Added: the recipes page now resizes to fit the screen. | |||
* Added: the ingredients list is now invalid when no recipe is selected. | |||
* Added: the Ideal column is now properly populated with values either from calculations or 'per batch' volumes. These values automatically refresh when the production volume is changed. These values also show the unit now as well. | |||
* Added: a new recipe will now default the production volume to the batch volume of the selected recipe. | |||
* Added: the recipes page now has attention icons for recipes just like the samples list. | |||
* Added: recipe data is now colored similar to the sample data on normal WOs. | |||
* Added: recipes can be properly loaded/saved/modified. | |||
* Added: the recipe page now only loads once the user first navigates to that page. This way, loading WOs that don't have recipe data will be faster. | |||
* Added: (case 14694) there are now columns for last modified by and last modified on so that the user can always see who filled out/modified items on a production WO. | |||
* Fixed: an issue where unmodified sample values might show as needing calculation (black) even though they had not been modified. | |||
* Added: recipes now show their status, and it can be modified. | |||
* Added: all ingredients/directions show the name of the user that last modified them as well as when. | |||
* Added: the set status button now has options for setting all (or just selected) recipes to the specified status. | |||
* Added: the hotkeys for setting status for samples now triggers setting status for the recipes if that tab is selected. | |||
* Added: the remove recipes button now works as intended. | |||
* Fixed: an issue where deleting multiple recipes at once could lead to displaying old ingredient info. | |||
* Added: if the user saves a WO with any samples that have no analysis, an error will pop up and tell the user that it is required. | |||
* Added: if the user saves a WO with any production items that have no recipes, an error will pop up and tell the user that it is required. | |||
* Changed: the Recipes tab is now called Production, and the wording of many fields, tooltips, and popups have been modified to be clearer and use less ambiguous language. | |||
=Version 1.6= | |||
==Analysis:== | |||
* Changed: the default column for options is now wider, and column order is properly saved for this list when the user resizes columns | |||
* Added: There is now an edit/test default value button which brings the user into an advanced editing dialog where they can create a formula for default option values. | |||
* Added: If the user enters a default that looks like a formula (has math symbols), the user will automatically be taken to the edit/test default value dialog. | |||
* Added: the user must successfully test any formula they enter before it can be saved. | |||
* Added: the user can choose test values for all other options when testing a calculation. | |||
* Added: if the user tests a formula, they will now be notified if an option reference hasn't been entered correctly or if the final formula causes a database error. Some of this will be made more user friendly in the future. | |||
* Added: if the user tests a formula, the test result will be shown to the user (or an error if there was one). | |||
* Added: support for 'fixed values' for defaults. This allows a value that looks like a formula (but is not) to be stored 'as-is'. This is useful for values that contain math symbols but are not fomulae. | |||
* Added: double-clicking an option now opens the default value formula to be edited. | |||
* Fixed: a column tooltip to be more accurate. | |||
==Commonresources:== | |||
* Added: if the user changes a field, any dropdowns whose values are dependent on that field will be updated as well. Generally, this will mean that if the current value is no longer allowed, it will be blanked out. | |||
* Added: (case 13941) support for analysis options that calculate their default value based on other options. These options will continue to have their value updated based on the given formula until the user manually changes the value to a custom value. | |||
==Database:== | |||
* Changed: the default column for options no longer has a limited length, this is to facilitate upcoming calculation changes. | |||
* Added: support for analysis option defaults to specify whether they are fixed values or formulae. | |||
==DataManagement:== | |||
* Fixed: an issue where unchanged row count could be negative. | |||
* Fixed: an issue where "Before Conversion Validation" commands were not being run. | |||
==Graphing:== | |||
* Fixed: (case 14305) an issue where grouping date or date/time x axis values by month/week/quarter/year wasn't working. | |||
==Master:== | |||
* Fixed: an unnecessary error popup that would occur if the user was sending a message to a screen that was not open. | |||
=Version 1.5= | |||
==Analysis:== | |||
* Fixed: an issue where creating an option, saving, and then trying to delete that option would fail. | |||
* Fixed: a minor issue with how new 'choice' option values were saved. | |||
* Added: (case 13825) the analysis editing area now allows 'Choice' options to specify 'required' option values to show that value. What this means is that choice "X" can be set up to only show up as an choice if option "Y" has a value above "Z". | |||
* Fixed: the product list is now sorted alphabetically instead of by parent/child product. | |||
==Database:== | |||
* Added: numbers table now goes up to 16k, which makes many reports easier. | |||
* Added: some foreign keys on the workorder table that were missing on some databases. | |||
* Removed: some unused settings that have been moved into a different location. | |||
* Added: support for dependencies on dropdown choices to option values. | |||
* Added: (case 13003) there is now a new column: reportparameter.parameterquery, which controls a query that choice parameters will use to populate dropdowns when using report viewer. | |||
* Fixed: an issue where f_set_setting wasn't working right if 'Global' was passed in as the setting level. | |||
* Added: (case 14127) the overnight data clone process now has the following features: | |||
1. Logging whether the event ran or not is now based on a global setting and defaults to true. | |||
2. If mysql error 1146 (table missing) happens we have a special error message that gets logged. | |||
3. If any other mysql error happens, we have a general error message that gets logged. | |||
4. Even if event logging is off, if any clone operation fails, an entry is inserted into log_change with the error message in the newvalue column. Here is an example from my tests on devdb: 'Error: Table 'test' not found, skipping clone entry: 1' | |||
5. If any mysql error happens when cloning an item, it attempts to continue with all the other clones. | |||
* Added: support for edocument building at the database level. This is used in the new alerts system. | |||
* Added: a database-level alert subscription system. The user can register to receive text/email/popup alerts for additions/changes on workorders/investigations/samples/sample values. The user can restrict what document types, failure levels, and plants they care about as well as the format of the messages they wish to receive. | |||
* Added: for speed purposes, all alerts to be sent are put in a staging queue, which is read by an event every minute and dispatched to the registered recipients. | |||
==CommonResources:== | |||
* Added: support for items in dropdowns being based on other filled-out values. | |||
==Configuration:== | |||
* Fixed: (case 13809) an issue where modifying a user record could cause that user's password to become invalid. | |||
==Home:== | |||
* Fixed: the plant list is now sorted alphabetically on all tabs. | |||
==Master:== | |||
* Changed: messages sent between screens through master are now done in a way that should be faster and allow the calling screen to know whether the message was handled or not. | |||
* Fixed: an issue with global hotkeys that was causing them to not be called in some corner cases, like before the user had clicked into any screens. | |||
==ReportViewer:== | |||
* Added: (case 13003) support for queries that run when the user selects a report parameter, loading all available options from the database. This system supports some of the results being a default choice, as well as behind-the scenes key #'s for faster report support. | |||
* Added: (case 13003) support for dropdowns whose values are loaded form the database. In addition, the current user, the store they're logged into, as well as other various pieces of information can be used as part of the query, making it so that running reports can use better user defaults in the future. | |||
* Added: (case 13003) report parameters can now be hidden, as well as visible by readonly. | |||
* Added: (case 13003) dropdown report parameters now support passing behind the scenes ids to a report for speed purposes, as well as allowing dropdowns that the user can type into (for wildcard support). | |||
* Added: (case 13003) report parameters can now be marked as required, meaning the user cannot print until they are not empty. The user will be prompted to fill it out or to use the default value (if one exists). | |||
==Sampling:== | |||
* Fixed: (case 13724) an issue where performing an 'exact' (no wildcards) proximity or zone search would throw a database error. | |||
Hotfix: | |||
==Product:== | |||
* Fixed: the screen now says "Item in use at store X" instead of "Product in use..." | |||
==Sampling:== | |||
* Fixed: (case 14257) an issue where the graph that gets generated would show options that the user didn't want to graph. Now, if any options are checked in the search, only those options will be graphed. | |||
=Version 1.4.1= | |||
==Analysis:== | |||
* Added: if the user only has plant level permission to edit analyses, they can no longer: | |||
1. Change whether analyses or choices are global | |||
2. Edit the analyses or choices that are marked as global | |||
3. Edit options on analyses that are global | |||
* Added: if the user has plant level permission for editing analyses, any new analyses and choices they create will be plant specific instead of global. | |||
==Database:== | |||
* Fixed: an issue with the graph template where numbers might sometimes display 100.00999999 instead of 100.01 | |||
* Fixed: an issue where p_get_subtree_by_lookup might throw an error if a product name had a single quote in it. | |||
* Added: (case 13646) a new function, f_get_ancestor_id, which can find the topmost parent productid or locationid given an specific child productid or locationid. | |||
* Fixed: an issue where cloned WOs would have the sampling data, testing data, and investigation data of the original (template) item. Now, this information will be cleared out upon being copied. | |||
==Home:== | |||
* Added: (case 6000) the work order home page now has the ability to filter by whether the current user is assigned to a WO, whether the current user performed the sample collection on a WO, or both. | |||
* Added: (case 6000) the sample testing home page now has the ability to filter by whether the current user is assigned to a WO, whether the current user tested the sample, or both. | |||
* Changed: re-arranged the home page tabs to be more consistent and fit better on smaller screens (leaving more space for the graphing area). | |||
==WorkOrders:== | |||
* Removed: (case 6000) the currently unused assign samples to group button. | |||
* Fixed: (case 12245) an issue where Configure->Work Order Types wasn't properly displaying the configuration option for Product/Ingredient/None. | |||
* Fixed: an issue where hitting tab inside auto-complete dropdowns wasn't working properly | |||
=Version 1.4= | |||
==Analysis:== | |||
* Added: (case 10634) there is now a button on the analysis management screen that allows the user to recompute the acceptability status of historical sample values. The user can specify a plant (or all), date range (optional), analysis (or all), and location (or all). | |||
* Added: (case 10634) there is a permission that controls what stores (if any) the user can recompute historical sample values for. | |||
* Added: (case 10677) a button on the analysis management screen called "Test Thresholds" which allows the user to test the saved thresholds on the current option to see if a particular value would be acceptable or not. | |||
* Added: (case 10677) there is now a "Inspect Value" button at the bottom of the screen (as well as a right click menu option) which will allow the user to see why a value registered an acceptable/marginal/unacceptable/etc result. The user can tweak the result in this dialog to test other values. This feature allows the user to ask "Why?" a result failed, which can sometimes be confusing if there are many applicable thresholds. | |||
* Fixed: an issue where the new/empty analysis option might show at the top of the list if the user switched between options and back again. | |||
* Changed: sample print quantities and testing print quantities are now stored in a special table instead of settings. This is to solve various issues that the previous system caused. All existing setting values have been copied into the new table to make the transition seamless. The old values have been left in settings for now for backwards compatibility with old reports. | |||
* Fixed: (case 12763) an issue where renaming an analysis (even without saving) would cause the print quantity numbers to sometimes be lost. | |||
* Performance: (case 13159) if the user loads a different plant on the analysis tab, loading all the print quantities could sometimes take a long time. | |||
* Added: support for the user hitting configue buttons on the configuration screen to edit analyses or schedules. | |||
==CommonResources:== | |||
* Added: WO types now control the default analysis used for new samples | |||
* Added: WO types now control whether the sampling and testing detail fields are visible and whether they can be hidden/unhidden. | |||
* Added: the testing comments and sampling comments now show/hide with the "Testing Detail" and "Sampling Detail", respectively. | |||
==Configuration:== | |||
* Added: support for the new WO types page. | |||
* Added: the directory page now has buttons for configuring WO types, analyses, schedules, and products. The user will be taken to the appropriate area when they click these buttons. | |||
* Removed: the set-up wizard and Help buttons have been removed from the directory page for now, as they are just placeholders. | |||
==Database:== | |||
* Fixed: all historical samples with unnecessary precision (6.100000 instead of 6.1) have been corrected. This leads to cleaner graphing and reporting. | |||
* Fixed: all numerical thresholds with unnecessary precision (6.100000 instead of 6.1) have been corrected. | |||
* Added: a permission that was missing on some databases controls whether the user can edit locations on configuration. | |||
* Added: p_refresh_all_sample_acceptability now accepts new input parameters for narrowing down the plant, location, date range, etc to be recomputed. | |||
* Added: new permission controlling whether a user can perform mass recalculation of sample values at a plant. | |||
* Changed: (case 12761) the format acceptability function now renames 'Out of Bounds' to 'Invalid', like the software does. | |||
* Added: when a WO gets cloned, if due date is filled out, the existing due date will be moved forward. | |||
* Added: (case 12763) a new table (printquantityoverride) which keeps track of the number of copies to print for various reports at various plants. | |||
* Added: f_get_next_data_clone_occurance, which calculates the next date/time a dataclone will be performed on. | |||
* Added: v_dataclone, which is a view that shows the contents of the dataclone table, but also selects the next date the dataclone will be triggered on. | |||
* Added: new permission for whether the user can open the locations screen. | |||
* Added: (case 12245) a new table for storing WO types. | |||
* Added: (case 12245) new permission for configuring WO types. | |||
==Sample Graphing:== | |||
* Added: (case 6478) the 'color shifting' between analyses of the same acceptability (multiple green series for example) has been tweaked to not repeat a specific hue. Differences between colors are more pronounced if fewer series are graphed. The color 'ranges' have been tweaked to look better and be more distinguishable. | |||
* Added: (case 10504) if the user filters analysis options by value range or acceptability, the graphed points will now only be the matching results. | |||
* Removed: thresholds no longer show in the legend, as they often make it hard to read. | |||
* Changed: data points are now slightly smaller by default for better differentiation. | |||
* Added: the threshold lines now use triangles as their endpoints to differentiate them from data points. | |||
* Added: the user can now click on a data series in the legend, and that data series will be hidden/shown on the graph in real-time. | |||
* Changed; (case 12761) references to Out of Bounds have been changed to Invalid. | |||
==List Graphing:== | |||
* Fixed: an issue where right-click list graphing would display fractional numbers as 'rounded' numbers. | |||
* Fixed: an issue where right-click list graphing would open the graph website twice if the default browser was google chrome. | |||
* Fixed: (case 13273) an issue where grouping the x axis by value was incompatible with some graph types, like stacked column chart. | |||
* Changed: if the user is grouping by x axis value, the column headers are interpreted as strings, causing them to be discrete values, instead of continuous variables. | |||
* Changed: renamed some poorly named variables and added some comments. | |||
* Added: the graphing template now properly rounds all aggregated values to a similar precision as the input data (this solves issues where $1.50 would display as 1.49999999). | |||
* Fixed: several issues where aggregation wasn't working correctly, this was breaking stacked bar charts. | |||
* Added: support for grouping values into date/time ranges like "By Day/Week/Month/Quarter/Year". | |||
* Tweaked: the layout of the graph to reserve more space for the graph itself. | |||
* Added: column and stacked column charts now adjust the window's Y axis to better fit the data. This solves an issue where a single negative value could lead to a large amount of wasted space below the 0 line. | |||
* Fixed: an issue where pie charts wouldn't render because column 0 has to be a string | |||
* Added: support for the google ChartWrapper class, which enables more real-time chart modifications | |||
* Added: the user can now click a series in the legend to show/hide it. | |||
* Fixed: an issue where stacked column charts might draw 'off the top' of the graph. | |||
* Fixed: grouping results by date range wasn't working for pie charts. | |||
* Fixed: an issue where pie charts would fail to render because they had negative values. | |||
* Added: the list graphing dialog now has an option for grouping date values on the X axis. The user can group them by day, week, month, quarter, or year. This option is only available if a date field is selected for the X axis and a graph type is selected that supports aggregation. | |||
* Added: pie charts can now have any *numeric* column added up in the results. | |||
==Sampling:== | |||
* Added: (case 10504) if the user filters results by a particular option's values or acceptability, that information will now be passed to the graph. | |||
* Removed: in order to make URLs shorter, unused search options will no longer be added to the URL. | |||
* Added: (case 12606) if the user fills out a filter value, the option's 'use' checkbox will be checked automatically. If the use checkbox is unchecked, the filter values are cleared out automatically. | |||
* Fixed: an issue where searching by plant could (in some rare cases) find samples at other plants. | |||
* Added: support for getting the WO type of all returned samples so that the screen can show/hide columns appropriately. | |||
==Home:== | |||
* Added: due date to the work order history list. WOs that have a due date within one day will be blue. Those that are past due are red. | |||
* Added: (case 12245) both the WO history and the sampling pages have a WO type dropdown for filtering by the WO type. This dropdown remembers the user's last choice. Also, there is now a sortable WO type column in the list so that the results can be tracked by this new attribute. | |||
==Investigation:== | |||
* Fixed: an issue where new investigations were saving a date but no time. | |||
* Fixed: an issue where hitting apply on the investigations screen could possibly throw a database error regarding the work order # of some of the investigations on the screen. | |||
==Locations:== | |||
* Added: support for the "Open Screen" permission. Also, the Configuration->Can Configure Locations now controls what plants' locations the user can edit on this screen (if any). | |||
* Added: button icons and other minor UI improvements. | |||
==Login:== | |||
* Fixed: an issue where which plants the user had access to could become incorrect when some of the user's permissions were changed. | |||
==WorkOrders:== | |||
* Added: the notification emails now support showing the user who collected the samples. | |||
* Changed: removed a reference to a deprecated database function and replaced it with the correct one. | |||
* Changed: the default 'maximum # of items to load into auto-complete dropdowns' has been changed from 100 to 300 to avoid issues where long location lists couldn't be browsed. | |||
* Added: (case 12245) a new configuration page for adding/editing/managing work order types. | |||
* Added: the work orders screen now has a dropdown for work order type. To fit this in, the date controls were moved to their own area. | |||
* Added: the configure->Work Order Types page now no longer lets the user change work order type fields if the user doesn't have global permission. A user with plant level permission can still control which types are available at their plant. | |||
* Added: (case 12245) support for choosing a work order type for each work order. | |||
* Added: (case 12245) the presence (and default value) of the due date field is now controlled by the current WO type. | |||
Hotfixes: | |||
==Database:== | |||
* Added: (Case 10792) products can now be marked as ingredients or products, which controls what WO type(s) they show up on. | |||
==Product:== | |||
* Added: (case 10792) there is now a set of radio buttons where the user can switch between viewing/editing products and ingredients. | |||
* Changed: wording of several fields to better fit the fact the screen can involve both products and ingredients. | |||
==Sampling:== | |||
* Added: (case 10792) the product dropdown for a particular sample is now limited to either all products or all ingredients, depending on the WO type of the selected sample. | |||
==WorkOrders:== | |||
* Added: (case 10792) the product dropdown will now contain all products or all ingredients, depending on the selected WO type. | |||
=Version 1.3= | |||
==General:== | |||
* Fixed: an issue where combo sorting was case insensitive, but the auto-suggest list was case sensitive. | |||
* Changed: auto-suggest dropdown lists are no longer sorted, even if the primary combo list is. This makes it so that auto-suggested strings are always in 'fitness' order (how well they match the input. | |||
* Added: advanced combo boxes now default to 'find input anywhere' when auto-suggest/auto-complete is turned on. This means results are matched no matter where the input is found in the string. | |||
* Fixed: sometimes icon cells in an ITListCtrl would not automatically redraw when the screen changed what icons were being displayed in the cell. | |||
* Fixed: dead whitespace in the list controls is finally fixed. The previous fix didn't account for situations in which the scrollbars were currently visible but were about to disappear (due to client space increasing). | |||
* Fixed: a drawing issue where clicking in a field (causing a Scroll in the list) might not redraw the 'close buttons' on the items, leaving what looked like 2 sets. | |||
* Fixed: (case 12012) Items half-way on the screen did not redraw correctly. This fixes an issue where items that were only partially visible were not being properly redrawn, causing checkboxes to not toggle their state if they were halfway on the screen. | |||
* Fixed: (case 12012) This should fix an issue where the list allowed items to be only partially visible vertically. | |||
* Fixed: an issue where, if a list had a footer control and hidden columns, some of the columns might not redraw correctly, and there were more columns than necessary. | |||
* Added: if the user resizes a column by dragging a column header, the footer columns are now resized in real-time. This makes matching things up simpler. | |||
* Removed: pretty much completely eliminated flickering that would happen in list footers when they were resizing. | |||
* Fixed: an issue where hiding/showing/deleting/adding columns while the user had scrolled horizontally would cause the header tooltips to be misaligned. | |||
* Fixed: if a list control is hidden when it is initialized, the footer will also start out hidden. | |||
==Graphing website:== | |||
* Fixed: the severity class retrieved for a particular result now considers the plant when getting the default severity class. | |||
* Fixed: renamed f_format_acceptibility to f_format_acceptability (misspelled) | |||
* Fixed: an issue where thresholds might show .000000 at the end of a whole number value in the legend. | |||
* Added: (case 6478) all graphed series (both thresholds and data series) have their colors set based on the acceptability of the result. Green for acceptable, orange for marginal, red for unacceptable, and blue for out of bounds. If multiple analyses are being graphed at the same time, the colors are shifted slightly for each series of data to make them easier to tell apart. | |||
* Fixed: an issue where selecting "ALL" from the analysis dropdown might not show all analyses. | |||
* Added: (case 6478) the 'color shifting' between analyses of the same acceptability (multiple green series for example) has been tweaked to not repeat a specific hue. Differences between colors are more pronounced if fewer series are graphed. The color 'ranges' have been tweaked to look better and be more distinguishable. | |||
==Analysis:== | |||
* Fixed: an issue where the analysis option ordering wasn't saving if the user switched analyses and then switched back. | |||
* Fixed (case 12371) an issue where renaming an analysis wouldn't move over the print quantities at the same time, causing the values to fall off the analysis. | |||
* Added: (case 10130) there is now a permission for each of the 4 tabs on the analysis screen. If the user is set to permission level "None", the corresponding page will not appear. A user with level "Plant" will be limited to editing information just at their plant(s). The schedules tab requires global permission because those objects are shared between plants. | |||
==CommonResources:== | |||
* Added: (Case 10263) there is now a permission that controls what plant(s) the user can edit sample tag #'s at (if any). | |||
* Fixed: an issue where numeric analysis option values might save with unnecessary precision (6.100000 instead of 6.1). This was making some reports look messy. This will only correct data moving forward. | |||
==Configuration:== | |||
* Added: (case 11879) user account names can now be edited in user configuration. New (unsaved) users can now be deleted as well (saved users are just de-activated). | |||
* Added: (case 11879) when the user hits apply in user configuration, they will now be presented with a more user friendly error if there are duplicate user account names. | |||
* Changed: minor UX tweaks to make user configuration easier and more consistent with other screens. | |||
* Added: (case 11614) the configure users page now limits which users can be edited based on the current user's permissions. Essentially, users will only be able to administrate their own plant(s) now. | |||
* Added: new user accounts will automatically inherit the current plant that the administrator user is logged into. | |||
* Fixed: an issue where a user who didn't have permission to edit plants, users, groups, or locations might still be able to edit them on the configuration screen. Now, if the user doesn't have permission, those pages are missing and the button on the Directory page is greyed out. | |||
* Changed: a user now needs global permission to edit groups, since they are shared across all plants. | |||
* Fixed: the icon was missing on the Configuration menu option. | |||
==Database:== | |||
* Fixed: another misspelled function name in the database. | |||
* Added: (case 10263) a new permission for editing tag #'s on WO samples. This new permission defaults to on for anyone who can edit WOs. | |||
* Added: (case 12276) workorder.due (due date), which defaults to NULL (no due date). | |||
* Added: ( case 10130) 4 new permissions for the analysis management screen. | |||
* Fixed: all historical samples with unnecessary precision (6.100000 instead of 6.1) have been corrected. This leads to cleaner graphing and reporting. | |||
* Fixed: all numerical thresholds with unnecessary precision (6.100000 instead of 6.1) have been corrected. | |||
==Investigations:== | |||
* Fixed: an issue where sending a sample to be investigated from the WO screen (before doing any searches) might cause a crash or bad samples to be loaded. | |||
* Changed: clicking search when unsaved investigations are present will now prompt the user to save. All other save prompts have been standardized. | |||
* Fixed: an issue where a user with "None" for the permission "Configuration"->"Can configure investigations" was still allowing the user to edit global defaults. | |||
* Changed: several settings in the alerts page have had their scope changed to "Hidden" since they contain sensitive data. | |||
* Fixed: a crash when starting a new investigation. | |||
==ITMySQLConnection:== | |||
* Performance: removed a bit of unnecessary meta-data that was being stored with every query result set. | |||
==Locations:== | |||
* Fixed: (Case 12299) an issue where the locations screen might crash if the user sent locations to be visualized. | |||
* Added: (case 12451) there is now an "Animate" button on location visualization, which plays through the samples in the currently displayed order. | |||
==Login:== | |||
* Fixed: a possible crash/error that could happen if the application was launched without database access. | |||
==Master:== | |||
* Changed: (case 11921) it was possible that ITrack didn't have any valid database connection, but it tried to get the local versionlist anyway, which would stop the update process. Now, if that happens, the system acts the same as if no database connection is present and attempts to continue. This should help prevent a state where an installation cannot be used and cannot get updates. | |||
* Added: when the user hits "reset updates", they will now be put into a mode where we force the download of updates. This ignores some things that would normally stop update downloading, including lack of access to the local database or lack of database extension. | |||
==Products:== | |||
* Added: support for a new permission that controls whether the user can mark products as in use at their plant(s). | |||
==SettingsFramework:== | |||
* Fixed: an issue where, if the database could not be reached, or there was no database extension loaded, updates would not be applied when Presage was closed. | |||
* Added: (case 12371) support for a new 'rename setting' operation used by the analysis screen. | |||
==WorkOrders:== | |||
* Fixed: a minor issue where, during printing, a dropdown might reappear in the list after a message box popped up. | |||
* Fixed: (case 12026) an issue where the user could print a tag or testing tag for an item by right clicking on it before it was saved. Now, the user will be prompted to save the item if it has been modified. | |||
* Fixed: some performance issues that could cause loading, clearing, or saving a WO to take slightly longer than necessary. Another side effect is that the list of samples might flicker and the user's selection would be cleared. | |||
* Fixed: (case 12011) an issue where changing the plant of a WO might not correctly remove all samples at other plants. | |||
* Removed: (case 12164) clicking on a sample option no longer automatically puts the option's default into the sample. | |||
* Added: (case 12164) marking a sample as sampled now automatically fills out all default values into the sample. | |||
* Added: (case 12276) there is now a due date at the top of the screen next to the scheduled date. | |||
=Update 7/2/2014= | |||
==Locations:== | ==Locations:== | ||
Line 43: | Line 3,573: | ||
=Update 4/15/2014= | |||
===Analysis:=== | ===Analysis:=== | ||
Line 85: | Line 3,615: | ||
=Update 4/3/2014= | |||
* Added: (case 10778) saving a product with an empty name field will now result in an error popup. | * Added: (case 10778) saving a product with an empty name field will now result in an error popup. | ||
* Fixed: (case 10778) a crash error that could occur when adding a product underneath a product that was not 'in use' at the current plant. | * Fixed: (case 10778) a crash error that could occur when adding a product underneath a product that was not 'in use' at the current plant. | ||
=Update 3/31/2014= | |||
Line 127: | Line 3,657: | ||
=Update 3/19/2014= | |||
===Analysis:=== | ===Analysis:=== |
Latest revision as of 12:05, 29 October 2024
Version 6.0 (10/17/2024)
Revision 24207-24602 database version 600
Breaking Changes
- Presage 6.0 no longer relies on a special MySQL plugin for sending alerts to the client. This is now handled exclusively by the Presage API. This means this functionality requires the Presage API to be running for a client. If you do not receive alerts after this update, please contact Presage support.
Installer
- The installer has been rebuilt and modernized. Unnecessary dependencies have been removed, and some components updated to newer versions.
- Added uninstaller
- Uninstallation now removes install/release key
- Removed instantVNC
- Fixed: downloading TSC_Lastest tag printer installer now works again
Controls/Tools
- Fixed: a potential crash that could occur when modifying visibility of a button.
- Added: support for easily toggling sorting and/or drag and drop on and off on a list control since in some places, sort order can be saved, and therefore must be disabled when the list is read only.
- Added: stored procedures that should be able to accurately restore records for any table from audit logs.
- Fixed: (EE-237) a subtle and rare bug that could cause a tree control with a footer to sometimes be shorter than it was supposed to be. Changes from the list control from 2018 have been adapted to the tree control to bring the two in line for their behavior.
- Fixed: an issue where some popups would not be tied to the application correctly. This meant that the user could sometimes use alt+tab to access the application still even though a popup was present. This also fixes an issue where auto-refresh timers were not being halted while these popups were visible. Now they will pause correctly.
- Changed: the way popups center on their parent window now works in a way that doesn't require breaking how popups are tied to the application.
Database
- Added: an index to the analysisoptionvalue table on the date a value was filled out to make some dashboard queries faster.
- Added p_restore_table_from_logs a generalized version of restoring a table from the logs.
- Added some handling of temporal columns default functions like NOW or CURRENT_TIMESTAMP
- Migrated all previous p_restore_xx procs to use p_restore_table_from_logs
- Added p_restore_every_row_in_table_from_logs, which makes easy a rarely performed function where every historical record in a table will be restored from logs. This can be useful if a table was accidentally emptied.
- Removed: It was noted that Presage had foreign keys on the table reportprinter (which is shared between products) unlike the other systems. These foreign keys were preventing the use of the value of 0 for userid or siteid to denote 'global' so they had to be removed
- Deprecating: a couple of unused tables as part of an effort to make deployment size smaller.
- Added: some enhancements and formatting to p_run_for_each_table that was introduced in another product
- Changed: numbers table is now innodb to match all other schema
- Fixed: an issue where the overnight option correlation calculator was failing.
- Fixed: an issue where the expire sessions event could fail during daylight savings changeover.
- Fixed: an issue where the event that ensures that data clones ran successfully would incorrectly email an error when running 2 hours after a daylight savings changeover.
- Added: new tables keyvaluepair and userpushsubscription, used for push notifications
- Fixed: when the scheduleinstance table had startdate changed from DATETIME to TIMESTAMP, mysql automatically added 'on update' to it so that the datetime would be set to NOW whenever anything changed, which is not desirable
- Fixed: misspellings of occurrence in p_schedule_instance_populate
- Fixed: an issue where a schedule with an end date would not stop at the passed in end date for instance generation
- Fixed: added three different protections against infinite loops in p_schedule_instance_populate to protect against runaway schedules
- Added: sample.due, sample.scheduled, analysisoptionchoice.productbatchid, and workorder.productbatchid were all not being logged and now are
- Added: table/column comments to some tables that didn't have them.
- Minor change to an unreleased index to assist both dashboards and reports
- Added: (PA-332) several indices to improve the speed of common load operations and reports for large clients.
- Added: database index for workorder.scheduled to improve load speed for some mobile applications.
- Added: a couple more indices to the workordertype and sample tables to help speed up some common operations.
- Added: (PA-351) changes to many tables to add the multiple lot tracking/inventory subsystem.
- Added: e_process_alert now checks a setting to see if the API is configured to send alerts. This allows us to transition alert emailing from the database UDF to the API.
- Added: field for supplier item number on sample value inventory.
Analyses
- Added: (FB-48673) a prompt to delete the current analysis option rule if all tags have been removed from it.
- Fixed: typo
- Fixed: an issue with analysis option choices/thresholds where deactivated products or products that were not in use at a plant would stop showing on historical choices/thresholds.
Configuration
- Added: The settings page now refreshes global and site level settings when the user visits this page. This should help avoid issues where the user sees 'old' information in this popup that was changed by another user or in the database directly.
- Added: (EE-141) the system will now close all historical user sessions if a user is locked or deactivated.
Crystal Reports Printing
- Added: print jobs now have a title set based on the user friendly name of the report, plus a file extension. Testing revealed that this causes some PDF printers to name the default file equal to this title, making printing to PDF slightly easier.
ITMySQLConnection
- Fixed: a minor issue where, if ca-cert.pem is completely missing, requiring SSL might not throw an error when connecting.
- Added: comment /*RECONNECT QUERIES CHANGED FOR CONNECTION "X", RUNNING NOW:*/ to the start of the queries run by mysql every time we reconnect to the database.
Locations
- Fixed: an issue where adding an image and switching maps without saving might stop showing the image.
- Fixed: an issue where top-level images, text, and boxes wouldn't save in some scenarios.
Login
- Added: when the user logs out and back in, global settings are now refreshed from the database to avoid situations where they have out of date information until they restart the application.
Master
- Changed: suppressed a database error that could be thrown from help->about if the database did not have a version in it.
Products
- Fixed: an issue where address lookups on the supplier address area were throwing a query error when doing a city/zip lookup.
- Fixed: an issue where the user could experience crashing or other random behavior if they hit the reset/refresh button before adding new product specifications.
- Fixed: an issue where deactivated products/ingredients (or those not in use at the plant) no longer showing in dropdowns on recipes/steps that reference those products/ingredients.
Report Viewer
- Added: (EE-164) the user can now see the "Delayed until" column in the print queue history tab. In addition, there are now filters for all job statuses and a filter to display only jobs with a delay until date.
Sampling
- Added: (PA-226) the approved on column now shows the time as well as date.
- Added: when loading thousands of samples, the sample values are loaded for 1000 samples at a time. This is to avoid issues in the database from loading too many samples' values at once. (Technical note: It was noted that MySQL didn't like to use an index anymore when the sampleid IN clause grew greater than 13313)
Work Orders
- Fixed: (PA-274) a crash that could occur if the user viewed a change log of a WO where the product batch had changed.
- Fixed: an issue where the testing WOs page would show a bunch of "N/A" columns if there were only recipes on the WO. Now, only displayable samples will factor into computing what columns to show.
- Fixed: (FB-39027) if a recipe has its production volume changed, all options/steps will have their acceptability recalculated. This avoids an issue where per-batch thresholds were not recomputing after the batch volume changed.
- Changed: sample sequence ID will now save as NULL instead of 0 when it is not a scheduled sample.
PS Reports Change log version 6.0 REVISION 24235-24577
Reports
1.1 x 2.4 Sample, no barcode (1.1x2.4_Label.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
1.1 x 2.4 Sample Barcode Only, barcode contains sampleid (1.1x2.4_LabelwithBarcodeOnly.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Barcodes (Barcodes.rpt)
- Fixed: (case PA-323) report was pulling the wrong store logo
- Changed: (no case) removed bounding box to prevent scanners thinking it was part of the barcode, modified barcode conditional resizing to allow for longer barcodes without getting cut off.
- Fixed: (no case) additional barcode resizing and layering another barcode to prevent a gap at the smallest font size.
Certificate of Analysis (CertificateOfAnalysis.rpt)
- Fixed: (case PA-188) rebuilt the report fresh to remove strange line showing up in specific situations
- Added: (case PA-212) 2 new parameters (with associated settings) to add additional comments at the top and bottom of the report
Investigation Overview (InvestigationOverview.rpt)
- Added: (case PA-248) Investigation Comments, Root Cause, & Root Cause Comments
Sample (0.66x2.1) (0.66x2.1_Label.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Sample Barcode (1.1x2.4con)(1.1x2.4con_LabelWithBarcode.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Testing Barcode (0.5x2.4LabelWithBarcode.rpt)
- Changed: (case PA-332) improved efficiency by changing IFs to ORs in the WHERE clause for both queries
Version 5.0
Revision 23919-24206 database version 500
General
- Added: (case FB-55284) support for copy and paste right click options in all list controls. Copy is always allowed, paste is only allowed if the user right clicks on a cell that they can edit.
- Changed: all usage of libcURL from version 7.61.1 to 7.88.1. This update allows all of our HTTPS operations (including connecting to the auto-updater) to support TLS 1.3.
- Changed: all usage of libMySQL from version 6.1.11 to 8.0.27. This update allows connection to the newest versions of MySQL server, as well as supporting TLS 1.3.
- Changed: all usage of openSSL from version 1.0.2 to 1.1.1w. This is used both by the new version of libcURL as well as the new version of libMySQL to handle newer security.
- Changed: all usage of zlib 1.2 to 1.3. This handles compression in mysql and libcURL.
- Fixed: many queries have been updated to escape certain column names that will cause issues when using MySQL 8.
Database
- Fixed: the nightly event that extends schedule instances for schedules in the system now cleans up old records at least a year old on the first of every month. The scheduleinstance table is also optimized to avoid issues encountered at one location.
- Changed: (case 60014) the event that sends emails if a data clone failed to happen now looks to see if changes were made to the dataclone rule between when the item should've been cloned and now. If a log entry is found, the email is not sent, assuming that a user change prevented the rule from executing as expected.
- Added: (case 60642) a stored procedure to re-rank analysis options to remove gaps. Credit goes to Gwyn.
- Added: (case 60229) new field group.member_emails, which is a text column kept up to date as a semicolon separated list of work emails of all members of the group. This is useful for building alerts that are sent to an entire group.
- Added: (case 60745) some indices for faster lookup of samples by date ranges.
- Changed: (case 60914) move all alert subscriptions with no user over to the support user. Then make it so that column does not allow NULL values.
- Fixed: (case 61034/case 61025) the query inside the stored procedure p_refresh_all_sample_acceptability was examining all analysisoptionvalue records, which slowed the query significantly. This was apparently caused by using a LEFT JOIN to sample instead of a JOIN to sample. Since all optionvalues must have a sample, JOIN is correct and is faster because it allows the query to use indices.
- Changed: (case 60632) reportsubscription and reportsubscriptionparameter tables to be able to handle a scheduled report that will run a query and either email or save it to a directory.
- Changed: reportqueue and reportqueueparameter tables now have a sourcetype and sourcequery columns to handle distinguishing between reports that just run a query and send a CSV or those that run a crystal report and send a PDF. All existing entries with a destinationtype of CSV have been converted to sourcetype Query and have had their query value moved from the reportqueueparameter table to the reportqueue.sourcequery field.
- Changed: the event e_schedule_reports that generates reportqueue records from reportsubscription records now knows how to handle the new sourcetype field. Error handling is now specific to the sourcetype.
- Fixed: f_get_all_ancestor_id was putting spaces after the commas. This is nice for human readability, but it breaks usage of FIND_IN_SET, which I think sucks, so I changed it.
- Fixed: an issue where f_get_value_acceptability could throw an error if a non-existant product id was passed in. This function now computes the tree path of products using the shared f_get_all_ancestor_id and checks for a value in it using FIND_IN_SET, making it more standard.
- Changed: saved search XML now allows 16 million+ characters instead of 65k characters, as some very large saved searches exceeded this.
- Added: indices for speed to the lastmodified datetime on the analysisoptionvalue table as well as the name column on analysisoption. These will make certain common API operations faster.
- Added: (PA-15) a useful stored procedure, p_format_analysis_results
- Fixed: description for the API Token permission to note that the user needs the permission at Global level.
- Fixed: an issue where negative 'hour offsets' was not working on alert rules. Negative offsets were supposed to mean 'hours after' expiration/due.
- Fixed: PA-88: an issue where negative hour offsets in alert subscriptions would not process those alerts.
- Fixed: PA-88: several issues where a document whose due date fell directly on a 5 minute multiple such as 11:00:00, it might get sent twice or not at all in some scenarios.
- Fixed: PA-89: an issue where work orders that were done being collected (but not yet closed) would still send alerts for 'due date approaching'. Verification due date approaching type alerts can still be sent in this situation.
- Fixed: (PA-107) an issue where 'bad' characters in the email address of an alert could cause collation errors when the database would attempt to process the event. This only happened if the character set of the tables and the character set of the stored procedures differed. p_edocument_replace_table_tokens now does an explicit CONVERT operation to cast table values into the connection character set to avoid this. We will also audit customer databases to ensure that all character sets match.
- Fixed: (issue PA-114) an issue where e_data_clone_scheduler might fail to clone data during daylight savings if the server timezone was set to SYSTEM and a clone record was one hour behind the system timezone. This was due to a conflict between server DST and destination plant timezone DST causing an hour to be skipped during 'fall back'
- Fixed: some historical updates have been made MySQL 8.0 compatible.
- Fixed: several stored procedures and functions have been modified to be MySQL 8.0 compatible.
- Added: (issue PA-85) log workorder.productbatchid
Analysis
- Added: as per request by advanced users, the 'verify' step of the 'test default value formula' popup dialog now has a button that allows the user to ignore mysql errors and save anyway if they know what they're doing.
- Added: (FB-19614) there is now a 'show only applicable thresholds' checkbox in the inspect acceptability popup. This dialog can be launched either from the edit analysis screen or the sample detail page on sample history or WOs. This checkbox defaults to checked. When checked, any filter that is not currently marked as "Applicable" (IE one that is for a different plant, product, batch, severity, etc) will be hidden, making it easier to understand how the applicable thresholds applied.
- Fixed: an issue where the severity dropdown in the inspect acceptability popup wouldn't display values until the plant was changed.
- Fixed: an issue where the "N/A" option was mixed into the middle of the products and severity lists.
Common Resources
- Fixed: (case 60722) if the user is entering thresholds/choices and they change the option from text to number/integer/date, on save the system will attempt to 'reformat' the saved value based on the new value type. This avoids issues where users would enter text values like ">.25" as text, then switch to numeric. Previously, ">.25" would be saved, which would not work correctly. Now ">.25" will be reformatted to ".25" on save, which will work better.
Configuration
- Changed: user creation now allows user names up to 320 characters in length to facilitate logging in using email addresses, which can be quite long.
- Changed: new users in the Pending Activation stage now default to a password encoding of PBKDF2 to avoid the (soon to be deprecated) MySQL Password option.
Investigation
- Added: (case FB-22730) investigation # is now displayed in the investigation history search.
- Added: (case FB-22460) all of the 'long text fields' now allow themselves to grow to show a lot more text instead of a max of 10 lines. The height of the box will now be bounded by the size of the list.
ITMySQLConnection
- Fixed: (case 53807) an issue where, if a mysql connection was closed due to inactivity or server shutdown, the connection would silently auto-reconnect, but the first query run on the fresh connection would return no results.
- Changed: minor updates to avoid features being deprecated by MySQL.
- Changed: previously, if "usessl" in the configuration was set to False, the connection would stay in "SSL Preferred" mode, which would still attempt to negotiate an SSL connection, if possible, falling back on unencrypted connections. Now, if usessl is off, the connection will not even attempt to establish a secure connection.
Locations
- Fixed: (FB-22777) if the user gets a query error due to too long of a location during save, they will now see a user friendly error message.
- Added: (FB-22777) before attempting to save, the location system will now compute the full location string for each item in the tree. If this value is too long to save, the user will be shown an error message telling them which location(s) need modified and save will be aborted.
- Added: full locations are computed and set before save, making save operations faster.
Login
- Removed: support for old, insecure password encoding methodology that we have been moving away from for many years. Updating to support MySQL 8 require dropping support for this insecure password methodology.
- Added: if a user attempts to log in to the application using the deprecated password encoding methodology, they will be shown an error message telling them that they cannot log in this way anymore and must now perform a password reset or contact someone who can reset their password.
Master
- Fixed: an issue where the logout vs close value wasn't being sent correctly. This was causing weird popups in some screens.
Product Management
- Changed: (case FB-25174) the product name and category fields are much wider.
Sampling History
- Added: (case FB-56863) a sample count at the bottom of the sample list.
Work Orders
- Fixed: (case 60707) an issue where the "this sample has created an investigation" icon would not show up if that investigation had not created any follow up samples yet.
- Added: (case FB-52365) the user's selection on the date range filter on the 'automatic WOs' area is now remembered.
- Added: (case FB-52352) newly scheduled WO clone schedules automatically copy WO title into schedule description.
- Added: if the user makes a change to the filters while in the Automatic Work Orders area, they will be reset to the first page of results.
- Added: (case FB-56863) a sample count at the bottom of the sample list.
- Fixed: (PA-142) an issue where 'calculate once' defaults that came back as NULL or a blank string would not be put into any defaults that reference that value as NULL like expected. It was going in as blank string instead, causing some inconsistent behavior.
- Fixed: an issue where 'calculate once' defaults that had been overridden with a user-entered value would not use the user entered value in the formulae for dependent defaults.
Reports
Alerts (Alerts.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Analyses By Activity (AnalysesByActivity.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Analysis Change Log, Users/Groups Change Log, Investigation Trigger Change Log, & Product Change Log (ChangeLog.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Certificate of Analysis (CertificateOfAnalysis.rpt)
- Added: (case 59695) time zone adjustment
- Added: (case 52029) bottom corner logo
- Added: (case PA-75) three new parameters to toggle whether to show location, product, and scheduled in Basic Sample Information. These new parameters have associated settings to set defaults.
Choices & Thresholds (ChoicesAndThresholds.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Contact Tracing (ContactTracing.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Control Chart (ControlChart.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Correlations By Analysis (CorrelationsByAnalysis.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Failed Results (FailedResults.rpt)
- Added: (case 59695) time zone adjustment
- Added: (case 52029) bottom corner logo
- Fixed: (case PA-62) added an IFNULL to the section of the query that filters by “My Plants”
Investigation (Investigation.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Investigation Overview (InvestigationOverview.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Location Analysis Barcodes, Analysis Barcodes, Product Analysis Barcodes, Location Product Analysis Barcodes (Barcodes.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Location And Analysis Barcodes (LocationAndAnalysisBarcodes.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Percent Positive (PercentPositive.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Product Ingredient Report (ProductIngredient.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Product Log (ProductLog.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
QA Scorecard (QAScorecard.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Sample (0.66x2.1) (0.66x2.1_Label.rpt)
- Added: (case PA-51) time zone adjustment
Sample (1.1x2.4_Label.rpt)
- Added: (case PA-51) time zone adjustment
Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)
- Added: (case PA-51) time zone adjustment
Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Sample Completion (SampleCompletion.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Samples By Analysis (SamplesByAnalysis.rpt)
- Added: (case 59695) time zone adjustment
- Added: (case 52029) bottom corner logo
- Added: (case 59939) two new parameters & settings to set parameter defaults, allowing for inclusion or exclusion of Location and Product columns. Exclusion allows room for up to 9 options. optionheader and optionvalue subreports are both more dynamic.
Screening (Screening.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Suppliers By Ingredient (IngredientSupplier.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Testing Barcode (0.5x2.4LabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
User Status (UserStatus.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Verification Information (VerificationInformation.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Work Order (WorkOrder.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
Work Order Barcode (0.66x2.1) (0.66x2.1_WOLabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Work Order Barcode (1.1x2.4_WOLabelWithBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Work Order Barcode (1.1x2.4con) (1.1x2.4con_WOLabelWIthBarcode.rpt)
- Added: (case PA-51) time zone adjustment
Work Orders Summary (WorkOrdersSummary.rpt)
- Added: (case 59905) time zone adjustment
- Added: (case 52029) bottom corner logo
- Fixed: (case 59905) x of y counter formula issues
Version 4.3
Revision 23277-23918 database version 430
General
- Minor changes to lists to attempt to work around the crash reported in case 54051.
- Various improvements to the installer file to modernize and fix many issues with dependencies and SSL certs.
- Changed: when parsing column widths saved in the database, if values outside of a rational range (currently -1500 to 1500) will be ignored, and the default will be used instead. This is important because there was a short period in which random values were being saved as user column width preferences, which could make some lists hard to view/use when those preferences were loaded.
- Fixed: an issue where column order/width would not correctly save for lists with a lot of columns.
- Changed: users with very large list controls were finding it very slow to drag and drop items. To improve this behavior without removing precision, the longer the user drags a row in a list in the same direction, the faster the scroll will be.
- Fixed: there was a report that tooltips were not working inside popups. The tooltips would only show if you alt+tabbed away and back, forcing the main window to be focused instead of the popup. This has been fixed
- Fixed: several improvements made to screen based tooltips, including piercing through transparent overlapping windows.
- Added: all top level windows in the application will now respect the windows user's 'darkmode' vs 'lightmode' setting with regards to the title bar.
- Added: the Icon Button and Split Button now properly render if the user has windows high-contrast themes on.
Database
- Fixed: an issue reported by users where a database error could be thrown if a particularly large list control attempted to save its column order/widths to the `columnorder` table. Maximum column width increased from 200 to 1024.
- Fixed: (case 54020) an issue where investigation rules of the form "at least x failures in 24 hours" might result in more than one value being shown if the user entered values contained commas. Now, a less common separator is used to tell where one user value ends and the next begins.
- Fixed: an issue where p_find_applicable_documents could throw a mysql error if an invalid productid were passed in as an argument. Now it handles this case correctly.
- Changed: p_set_setting is now compatible with NULL values being passed in for the cascade argument since this flag is not really used.
- Fixed: (case 57019) an issue where p_get_subtree might not work right if a CSV of inputs were passed in.
- Removed: (case 57497) audit logs no longer log changes to useraccount.passwordsalt or passwordkey because when the database is utf8, we can't put binary data into the log tables.
- Fixed: (case 58262) a minor adjustment to t_useraccess_pre_update trigger to no longer check for firing events when a user keeps a session alive, as it causes unnecessary work.
- Fixed: minor issue where analysis print quantity overrides referenced the idea of global values which was not implemented.
- Added: (case 59566) support for alert subscriptions of type 'Sample' with timing 'Expiration Approaching' to send alerts a given number of hours before sample due date occurs.
- Added: (case 59810) two new permissions for controlling access on the new configure subscription alerts UI.
- Added: p_clone_data now accepts a TIMESTAMP argument that represents the effective moment of cloning. This is useful so that calling code can clone data effectively in the past, depending on schedule needs. This allows re-running a previous scheduled clone and have a WO be back-dated appropriately.
- Added: (case 59840) p_clone_data now forward/back dates all cloned data using the UTC timezone to avoid any errors or time ambiguity that could occur due to daylight savings time changeovers.
- Added: (case 30668) new permission for the feature of bulk-closing of WOs.
CommonResources
- Fixed: (case 54879) an issue where entering a new analysis option choice value, then selecting a new option or analysis immediately could lead to a crash.
- Fixed: (case 55162) an issue where value defaults that 'cascade' through a chain might not show the right values if the user changed a root value that cascades through default calculations.
Analysis
- Added: store specific analysis fields now display with an "*" in the label.
- Fixed: an issue where sampling/testing print quantities were not being permissioned to the plant correctly. They now follow the same editability of the In use at plant column.
- Fixed: a minor issue where a plant code could've been cut off in the "Show X analyses not in use at plant XXXX"
- Changed: the editability of the "global" checkbox used to be controlled by whether the user had Global level permission to edit analyses. Now, they simply have to have permission to edit the analysis at all plants that analysis is currently in use. This more closely matches the modern view of analysis editability.
- Fixed: an issue where the "All" option was missing from the analysis dropdown in the "recalculate sample values" popup.
- Fixed: an issue where the "*All*" options were not at the top of the analysis/plant/location dropdowns in the recalculate sample values popup.
- Fixed: an issue where the "Test thresholds" button would not allow the user to choose a value from the dropdown if they were testing a "Choice" type option.
Configuration
- Fixed: an issue where the user's selection of default analysis on work order types would not be remembered when they left the field.
- Changed: (case 58984) in the edit users area, previously one could see/edit other users if the admin's plant list overlapped at all with the other user's plant list. Now, the other user's plant list must be a subset of the admin's plant list. This prevents an administrator from being able to modify other administrators who have access to other sites. If the user has the configure users permission at the "Global" level, this restriction is ignored, same as before.
- Removed: some unused duplicate resources from this extension that were conflicting with the WOs dll.
CrystalReportsExtension
- Changed: to avoid confusion, the "Favorite" checkbox in the "Choose report to print" popup has been replaced with a star icon. This dialog appears if there is more than one report option when performing a print job. This will make it clearer that the user is simply choosing a favorite, not checking which report to print.
Documents
- Fixed: an issue where picking an analysis in the analysis dropdown of the associations page would switch back to "All Analyses"
Investigation
- Fixed: (case 59536) an issue where investigation configuration did not show a "All" option in the dropdown for plants.
Locations
- Merged: a fix for boxes and text not associated with a location not deleting correctly.
- Fixed: (case 59688) an issue where the locations screen might crash if the user did not have 'view map' permission at any plants and clicked the edit tags area.
- Fixed: (case 59688) an issue where the user could click the + add map button if they did not have access to any plants' maps. Additionally, the edit and delete buttons now grey out if no map is selected.
Login
- Fixed: an issue where users were allowed to proceed with password recovery on accounts that had no recovery email set. The grace period on this has ended, if any account has not had a recovery email set at this point, to recover their password they must talk to support or administration at their own company (depending on security settings).
- Added: the password recovery email template now has information about the computer/install at which the reset attempt was initiated from to make it more trackable if a malicious third party is locking accounts by beginning a recovery attempt on them.
- Added: if the security setting "Passwords: minimum count of online breaches to restrict passwords at" is set to "N/A" or a negative value, the user will be warned but not restricted on this system.
- Changed: the password recovery popup has had several labels reworked to make the password recovery process more obvious.
Master
- Fixed: an issue where clicking the 'close application' box would prevent change detection messages from appearing for any open screens.
- Removed: an old "Are you sure you want to close" confirmation popup on application close that had been broken for awhile.
- Added: if the user has windows dark mode turned on, the application title bar will now show dark.
- Added: a file with additional manifest settings to be merged into the application manifest. This added explicit compatibility sections, which is supposed to enable some windows features.
Product
- Fixed: (case 54115) an issue where products/ingredients hidden based on the current filters might keep the system from warning about duplicate items. Also, now the popup will say whether the duplicate is a product or an ingredient.
- Fixed: (case 54115) top-level products and ingredients now collide on duplicate name.
- Changed: duplicate products and/or ingredients now only alert the user to the duplicate if one of the records has been modified.
- Fixed: (case 59042) an issue where copying a product tree before opening the Specifications tab would cause associated specifications to not be copied.
- Fixed: a possible crash if the user deleted a product with specifications without opening the Specifications tab first, then navigated to that tab.
Reports
Analyses By Activity (AnalysesByActivity.rpt)
- Fixed: (case 58544) SQL: analysiscatopt parameter name corrected to analysiscat
Control Chart (ControlChart.rpt)
- Fixed: (case 54248) report now filters out any empty strings that find their way into the numeric analysis options it handles
- Added: (case 56491) a new parameter that can exclude chart datapoints more than <x> standard deviations from the center. The excluded points are not excluded from tests.
Failed Results (FailedResults.rpt)
- Added: (case 57986) an option to show "my plants" to the plant parameter
Sample (1.1x2.4_Label.rpt)
- Added: (case 54938) a new setting to control which date is displayed
- Changed: (case 54938) adjusted date display setting, and report now respects the date format setting
Sample (0.66x2.1) (0.66x2.1_Label.rpt)
- Added: (case 54938) date display setting
Sample (1.1x2.4con) (1.1x2.4con_Label.rpt)
- Added: (case 54938) date display setting, and report now respects the date format setting
Samples By Analysis (SamplesByAnalysis.rpt)
- Added: (case 55253) a new setting to include lot. Lot replaces the 7th option when 'True'
Work Order Copy Barcode (Label) (1.1x2.4_WOCopyBarcode.rpt)
- Changed: (case 54132) conditional size formatting to the barcode based on barcode length
Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)
- Changed: (case 54132) conditional size formatting to the barcode based on barcode length
Sampling
- Fixed: (case 58477) an crash that could occur when loading a saved search created in an outside system that contains filters the screen does not know about.
- Fixed: (case 58647) an issue where searching by schedule name was potentially returning more results than desired.
Updater
- Added: the Updater.exe is now built with the same manifest settings as ITrack.exe, namely assembly identity and explicit operating system compatibilities.
- Added: (case 59196) the updater now detects the current windows operating system version as part of updating to detect available windows features.
Work Orders
- Added: the plant specific "In use" column is now denoted with a * to show that its plant specific.
- Added: support for passing a new argument to p_clone_data for effective data clone time. It defaults to the current date/time.
Version 4.2
Revision 23187-23276 database version 420
General
- Changed: all application files are now versioned, which allows keeping track of whether any given files were loaded that were built for the wrong application version.
- Added: the help->about box now shows the database version as well as the product version.
- Added: the help->about box now shows the product version each file in the application were designed for and ones that don't match the product version are shown in red with an attention icon.
- Changed: the Help->About dialog no longer looks for a file called ITrack.exe and instead reads the product version from the main module itself in memory, in case the application ever uses a renamed entry point file.
- Changed: if the user closes the application or it fails to load before its visible, the application will no longer overwrite the 'last' size/position of the application in settings.
- Added: during loading extension modules, the product version of each file is now checked. If the major version of a loaded module does not match the master module, it will be put in a popup for the user to alert them to this (potentially) erroneous state.
- Added: so that users can avoid seeing this popup on every launch, the popup has a "don't show this message in the future" checkbox. If checked, all those *specific* files at those versions will be remembered for that user. If any new files (or existing files at new versions) are seen later, they will be shown to the user again. The user can choose to continue loading all modules (previous behavior) despite the version mismatch, load only those modules whose version matches (skip bad files), or close the application.
Database
- Changed: (case 51314) investigations should no longer trigger on values that are blank, either explicitly entered by the user or implicitly created.
- Changed: (case 51314) alert subscriptions that 'require acceptable' no longer trigger on values that are blank, either explicitly entered by the user or implicitly created.
Analysis Management
- Changed: the list column size/order is now stored differently for the analysis management screen from the recipe management screen. Before, resizing or hiding columns on one affected the other.
- Fixed: showing/hiding columns is now remembered when the user closes and reopens the screen.
- Changed: recipe columns no longer show as 'hidden' columns that can be unhidden for environmental/Q&A analyses and vice versa.
- Changed: as per user request, minimum automatic resize for the analysis name column has been made 50% larger.
- Fixed: an issue where opening both the analysis management screen and the recipe management screen at the same time might cause column order to not save correctly.
- Changed: if the selected option is not 'Choice' the 'required option' column in the thresholds page cannot be unhidden.
Home
- Performance: to show information on the home tabs, sample values are no longer loaded. This speeds up load operations, especially at plants with very large work orders.
Products
- Changed: the list column size/order is now stored differently for the analysis management screen from the recipe management screen. Before, resizing or hiding columns on one affected the other.
- Fixed: showing/hiding columns is now remembered when the user closes and reopens the screen.
- Changed: recipe columns no longer show as 'hidden' columns that can be unhidden for environmental/Q&A analyses and vice versa.
Reports
Analyses By Activity (AnalysesByActivity.rpt)
- Added: (case 51616) a new report that lists analyses that were last sampled on or before a specified cutoff date
Work Orders Summary (WorkOrdersSummary.rpt)
- Added (case 51715): a new report to show an overview of work orders, similar to the Verification List page
Work Orders
- Fixed: an issue where saving values that caused more than one follow up (investigation) document would not correctly display all document ids.
- Added: double-clicking items in the scheduled WOs list now opens that WO's detail on the WO screen.
- Changed: double-clicking items in the template/favorite WOs list now opens that WO's detail on the WO screen instead of scheduling that WO. This will make it easier to review document details.
Version 4.1
Revision 22817-23186 database version 410
General
- Fixed: the about box could show an error if the 'credits' url in the host.ini file was blank. This could lead to bad behavior in particularly corrupted or empty ini files. Now the user will be taken to the default URL.
- Fixed: a possible crash that could occur in a list control if going to the bottom of the current page of results if they didn't fill the screen.
- Fixed: a crash when Resizing a column outside of the boundary of the column count.
- Fixed: an issue where release builds were linking against mysql 6.1.5 instead of 6.1.11
- Fixed: an issue where blank Time-only list control cells would be automatically turned into 'current time'.
- Fixed: another issue where midnight "12:00 AM" would not be handled correctly in time-only list control cells.
- Fixed: (case 51470) an issue where popups were being restricted to the primary monitor instead of the monitor of the window that launched them. Now they should be centered by default over the window that created them.
- Fixed: (case 51470) an issue where popups that 'remember' their last position could not restore a location that was on a secondary monitor correctly.
- Added: Column Tree Controls now support column header tool tips.
- Fixed: (case 51708) an issue where dropdowns in a list control on windows 11 might not look quite right. In addition, dropdowns in the first item might flicker unnecessarily.
- Fixed: a rare issue where, when a list edit/dropdown/date picker/etc disappears, the list cell behind it might not draw correctly.
- Fixed: date/time controls in list controls would 'revert' their input when the user hit escape, but would not hide correctly. Now the date control will be hidden correctly.
- Added: the 'filter' box in the configure global settings popup now uses a timer to wait for the user to stop typing before searching.
Database
- Fixed: some databases failed to run an update from version 2.1 because they had negative values in the work order type table. These values have been set to 0 and the update reapplied.
- Updated: right-click graphing template should no longer encounter a JS error if loading the google charts library takes too long.
- Fixed: several queries that failed to run during 3.8 for some systems have been re-released and updated.
- Fixed: an issue where the nightly event that extends schedules into the future would not correctly handle the expiration of a schedule (when set).
- Fixed: the stored procedure that extends a schedule into the future now aborts if the start date of a schedule is invalid, this should avoid invalid rows being created.
- Added: (case 50599) support for work order types to control whether location descriptions are shown on WOs and sampling history.
- Fixed: an issue where duplicate import commands were allowed.
- Added: (case 50708) many new features to automatic follow up retests on investigations.
- Added: (case 50709) support for choosing a severity class on plant-specific investigation trigger rules.
- Added: (case 50709) automatic investigation triggering now supports severity classes for restricting triggering sites as well as population considered for general electric rule computation.
- Added: drawmap.active and drawmap.useforinvestigationexpansion. Active will support hiding old versions of maps, and 'use for investigation expansion' will allow toggling whether specific maps will be considered when computing 'nearby locations' when expanding investigations to nearby sites.
- Fixed: (case 51013) an issue where cloned WOs that also cloned values might cause the 'value modified' pencil icon to appear erroneously when blank values initially got filled out. Now, the date filled out will not be set on blank values that get cloned.
- Added: (case 51244) f_expand_location now ignores all location(s) on the same map(s) that have a different severity class assigned. This means retest locations will be restricted to nearby locations that share a severity class with the original sample location.
Crystal Reports
- Added: (case 51309) a popup dialog that appears during printing if the chosen printer does not seem to be valid. The user is told what error windows returned and are presented with the list of valid printers to choose between. The user is allowed to 'remember' this selection for future prints. This is important because previously, if the user had an invalid printer name saved as a default, print jobs might fail, but no error message would be shown.
Data Management
- Fixed: crash when going to a page of results other than the first.
Analysis Management
- Fixed: (case 48997) an issue where saving a newly created Rule on an option, then switch analyses and switching back might lead to a situation where the tags on the rule would appear duplicated.
- Fixed: (case 48998) an issue where the active checkbox on option rules would not save or load the current value correctly. This lead to all rules always being active, and the user had no way of deactivating them except deleting them. Now, this column will correctly reflect whether it is active.
- Added: (case 48962) a resizer bar for the scheduled analysis plans page for giving more or less room to the schedule management and location scheduling tabs.
- Removed: (case 48962) A copy button that was part of the design but was never implemented.
Common Resources
- Added: (case 50599) support for work order types to control whether location descriptions are shown on WOs and sampling history.
Configuration
- Added: (case 50599) support for configuring a new field on work order types that controls whether location descriptions are shown.
Graphing
- Added: some extra code to the right-click graphing template that will keep waiting to render the chart until the google charts library finishes loading.
Home
- Fixed an issue where the auto-refresh boolean was not initialized, which could cause home pages' auto-refresh behavior to be slightly random.
Investigations
- Added: (case 50708) support for several new features on automatic follow up retests on investigations.
- Added: (case 50709) when an investigation rule is selected, there is now a severity class dropdown, which supports limiting the location that triggers investigations to just ones that have that severity class.
- Added: on investigation triggers, locations and severity classes are mutually exclusive, and UI should now reflect that.
- Added: support for severity class in automatic investigation descriptions.
- Fixed: an issue where using the pagination controls might not stop you if you got to the last page.
Locations
- Fixed: an issue where the product proximities and process zones were loaded after locations, causing the location tree to sometimes not have the correct names in the location tree for those columns.
- Changed: description edit now has linewrap on.
- Added: a small text prompt next to the add image box that tells the user that double-clicking is now required to select background objects such as images.
- Added: the ability to toggle the visibility of background objects on the map, as well as hide locations that have no samples on the visualization tab, and hide locations that aren't currently being animated on the visualization tab.
- Fixed: a possible crash on the visualization tab if the user had grouped results and then toggled the "hide results with no locations" checkbox.
- Added: selection on the visualization tab will no longer be lost if the user changes group by or toggles hiding results with no locations.
- Changed: animation on the visualization tab now selects the next result in the next group if the user started with a result selected. If the user starts animation with a group selected, it will continue to select each group in turn.
- Added: support for showing/hiding locations based on the user's choice of 'show locations with no results' and 'show only focused animation location'.
- Changed: if the user cannot add background items, the 'tip' text in that area is now hidden; and the other buttons are now moved into that area.
- Changed: when the add background images controls are hidden, the other controls are scrolled into their place.
- Changed: the show/hide options that were related to the visualization page have been moved from the main "Show Map Items..." dropdown into a new dropdown on the visualization page.
- Added: the visualization page is now a scrollable page since there can be a lot of controls on this page.
- Changed: the 'color results based on selection only' and 'hide results with no location' options are in the visualization options dropdown.
Image Handling
- Added: Crop function for cropping images to a given client rectangle.
- Added: ZoomInArea function for cropping to a zoomed in zone and scaling it to a given bounding rectangle.
- Fixed: ScaleTo did not update the dimensions of the image after scaling it.
- Changed: ScaleTo no longer performs any operation if the sizing did not change.
Draw View
- Added: images now use the OpenIL image library to interpolate/scale images when the user stretches or zooms. This causes the images to be much easier to view when zoomed out.
- Added: rendered images are now cropped to the currently visible viewport. This reduces total image drawing, and should hopefully lower memory consumption and speed up the screen.
- Changed: by default, single clicks will no longer select 'background objects' such as an image. Double-click can now be used to select these items which are less commonly chosen.
- Changed: if the user clicks and that click could either be the currently selected item (or its tracking box) or another object, it will always prefer the currently selected item. This should make dragging items easier once they've been selected.
- Fixed: an annoying issue where attempting to resize or move objects via the tracking box would sometimes deselect the current object instead of tracking the object.
- Added: draw objects now have a shown flag that can be toggled.
- Fixed: a minor issue where invalidating a rectangular object, sometimes a pixel of data might not get redrawn correctly on the edge.
- Added: support for suppressing background objects.
Login
- Fixed: an issue where the login dialog would not correctly follow the main window to other screens.
Reports
Failed Results (FailedResults.rpt)
- Fixed: (case 51159) Include Invalid parameter to filter the correct thing.
Testing Barcode (0.5x2.4LabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Location Analysis Label (0.66x2.1) (0.66x2.1_LALabel.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Copy Barcode (0.66x2.1) (0.66x2.1_WOCopyBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Barcode (0.66x2.1) (0.66x2.1_WOLabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Copy Barcode (Label) (1.1x2.4_WOCopyBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Barcode (1.1x2.4_WOLabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Location Analysis Label (1.1x2.4con) (1.1x2.4con_LALabel.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order Barcode (1.1x2.4con) (1.1x2.4con_WOLabelWIthBarcode.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Location Analysis Barcodes, Analysis Barcodes, Product Analysis Barcodes, Location Product Analysis Barcodes (Barcodes.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Location Analysis Label (LALabel.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Location And Analysis Barcodes (LocationAndAnalysisBarcodes.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Work Order (WorkOrder.rpt)
- Added: (case 48818) settings for adding scanner wedge preamble & postable to barcodes
- Changed: (case 50500) updated new preamble/postamble setting to plant level
Sampling
- Added: show/hide settings for location map are now stored separately from the same preferences on the location screen, since visualization preferences on these two screens have different purposes.
- Fixed: an issue where the product batch dropdown didn't properly respect the chosen plant(s) for what was available in the dropdown like the other dropdowns.
Work Orders
- Fixed: tab order issue with the verification due date.
- Added: support for copy/paste in all date or date/time controls.
- Fixed: an issue where mass-setting samples to cancelled could lead to lockups on large work orders.
- Added: cancelling samples now locks them similar to closing them. In addition, closing a WO will no longer mark cancelled samples as Closed.
- Added: historically, if an option was inactive but had already been filled out, it would be visible. This is now true again. An option that is inactive but is filled out will be shown, but be readonly.
- Fixed: an issue where saving values that caused more than one follow up (investigation) document would not correctly display all document ids.
Version 4.0
Revision 22671-22826 database version 400
- Performance: removed a lot of the 'guard rails' on list control operations. This was taking as much as 40% of the time to load a bunch of stuff onto Presage' sampling history.
- Performance: skipping some invalidation of the list control when redrawing is locked. This speeds up intensive load operations somewhat.
- Performance: optimized several high-traffic areas in the list control.
- Added: Property Sheet now has support for icons/bitmaps in property page tabs
- Added: if the user uses a hotkey to activate a property page, it should now correctly set focus into that page. This only happened in some scenarios before.
- Fixed: depending on where the user's focus was, hitting a hotkey (alt + <key>) to activate a property page or button might not work correctly. This would occur in situations with 'nested' property sheets, when the user's focus was in a child sheet. Now those hotkeys should 'float up' to be handled by parent sheets and forms.
Database
- Fixed: (case 47532) an issue where f_get_attachment_data would not work for attachments larger than 16 MiB. Now it should work on files up to 4 GiB.
- Added: an index to help improve the speed of in import as a vanilla index.
- Added: a unique index on option name was missing on many customer databases.
- Fixed: (case 47667) an issue where analysisoptionvalue.filledout was not correctly set on historical option values due to a mistake in an update trigger. The trigger has been corrected, and a set of queries run that should correct historical data.
- Fixed: (case 48138) analysis option restriction rules where more than one tag had to be Present were incorrectly firing if at least one of the tags were present, but not all of them. Now, all the required tags must be present for the rule to be triggered.
- Fixed: (case 29098) blank option values (not filled out) are now treated as 'acceptable' instead of comparing it to user thresholds. Previously, numeric values that were not yet filled out would be considered '0' and could be unacceptable or out of bounds due to that.
- Fixed: an issue with f_get_value_acceptability not returning 'Allowed' when no rules were matched.
- Added: (case 48703) when a WO is cloned, if any samples on the template were from a 'scheduled sample plan', the copied samples will randomize their locations on the same scheduled sample plan. This means that each sample will pick a random location in the list of required locations that has not yet been sampled in the current schedule period (day/week/month/etc). If all locations have been sampled in the current period, locations will be randomized across the entire sample plan. However, the system will avoid randomly choosing the same location more than once on the same WO.
- Added: two new permissions for whether a user can view or edit plant maps. These permissions have granted new granularity to what used to be controlled by the configure locations permission. Both of these permissions default to whether a user was allowed to open the location screen, as it historically had modification access.
Common Resources
- Fixed a column only allowing 50 characters even though the database has been expanded to allow 100.
- Fixed: a crash that could occur if you close the settings page with nothing selected.
- Added: calling Set Readonly on a EditTagsPage before it has been initialized will now be 'remembered' until the page is initialized.
Analysis
- Fixed: an issue where the location tree in the analysis scheduling page would show locations at all plants instead of the currently selected plant.
- Fixed: an issue where viewing the analysis scheduling page with 'show expired schedules' unchecked would still show expired schedules.
- Fixed: a possible crash that could occur when deleting a schedule if there were scheduled locations for that schedule at more than one plant.
- Fixed: an issue where the 'location count' in the scheduled analysis list might show a count at all plants instead of just the current one.
- Added: the 'schedule management' and 'scheduled analyses' pages have been combined into one for easier schedule management. This tab is now called 'Scheduled Analysis Plans'.
Crystal Reports Extension
- Changed: (Case 48271) the printer name dropdown in the advanced print dialog is wider now to facilitate very long printer names.
Data Management
- Fixed: an issue where, after doing an import, the user might be presented with a negative number of unchanged rows if the number of new/updated rows exceed the number of rows in the input file.
- Fixed: an issue where doing an import against a table that had a column name or column comment with the reserved word 'constraint' would cause the import to fail.
Investigation
- Fixed: an issue where sending investigations to the location map would not work correctly
Locations
- Fixed: (case 48439) an issue where the attachments buttons were not working.
- Changed: the location map has been moved into a property page on that screen so that it can be more easily embedded in other screens.
- Added: flag ALLOW DRAW, if absent, the ability to enter RECT or TEXT mode are suppressed and drawing new objects is removed.
- Added: flag ALLOW MOVE VIEW, if absent, the ability to enter MOVE or pan the window around is suppressed.
- Added: flag ALLOW RESIZE, if absent, the ability drag objects around or resize them is suppressed.
- Changed: the middle mouse entered a standard 'pan' view mode before, but it was flakey, so it has been suppressed. Now, while the user depresses the middle mouse, they temporarily enter the 'move/pan' mode and can drag the window, no matter which mode they're in.
- Fixed: an issue where right clicking and moving the mouse while in zoom mode might break the ability to zoom out with right click.
- Fixed: an issue where the zoom cursor was not displaying correctly.
- Changed: if the draw view is in readonly mode, the 'tracker' boxes around an object will no longer display resize boxes on the corners.
- Added: if the draw view is in readonly mode, the pop up edit box for clicking into a text object will no longer be editable.
- Fixed: an issue where the zoom cursor was not displaying correctly.
- Fixed: an issue where selecting no location object was not clearing the location and tag detail information.
- Added: tab icons to the various tabs on the screen.
- Added: support for being in a 'readonly' mode in the location screen. This allows viewing locations without being able to edit location information or drawn objects.
- Fixed: typing to filter the location tree would remove the user's selection. Now it persist between refreshes.
- Fixed: a potential crash when visiting the page with no plant selected.
- Fixed: an issue where sending samples from multiple plants to the visualization page might not correctly load up location names
- Added: when the user clicks on a sample in the visualization page, the correct plant will now be selected for that sample. This is important for multi-plant result sets.
- Added: when the user clicks on a sample in the visualization page, the most recent map at that plant that contains the location will automatically be selected.
- Added: if plant is changed and no default map is set in the user preferences, the most recent map at that plant is automatically selected.
- Fixed: an issue where the wrong initial plant might be selected.
- Changed: the maximum animation delay has been reduced from 10s to 2.5s.
- Changed: the label on the animation speed slider has been changed to animation delay to make its use more accurate.
- Added: if the user deselects all items on the visualization page, any selected locations on the map will be deselected.
- Added: the location screen now looks at two new permissions: "can view location maps" and "can edit location maps". The list of plans on the location management screen is now based on what plants the user can view location maps at instead of what plants they could edit locations at. When a plant is selected, if the user does not have map edit permission, all draw map controls are locked down, but it can be viewed and visualization can be done. If the user doesn't have configure locations permission, the location editing area will be readonly.
- Changed: the copy locations button is now usable if locations at a plant are readonly to facilitate copying from a plant that is read only.
- Changed: the copy/delete/cut locations buttons now grey out if nothing is selected.
- Fixed: several crashes related to load order.
- Fixed: issues with no plant or no map being selected if items were sent to visualize as the screen was opened.
- Changed: minimum animation delay on the visualization tab has been decreased to 100 ms, and each 'tick' is now a quarter second to allow finer control.
- Fixed: an issue where switching maps could cause locations shared between two maps to be deleted from other maps.
- Changed: the 'toolbar' popup now has a maximum and minimum size so that the user cannot accidentally make the box very large by changing settings.
- Changed: animation speed bar changed to allow up to 5s delay between steps (up from 2.5s) and each 'pip' is now back to 1/2s instead of 1/4s.
Report Viewer
- Fixed: an issue where the parameter list would annoyingly scroll to the side when the user clicked in a value field if there are enough parameters for a horizontal scroll bar.
Reports
Analysis, Users/Groups, Investigation Trigger, Product) Change Log (ChangeLog.rpt)
- Added: (case 47874) analysisoptionrule and analysisoptionruletag logging to the Analysis mode of the change log report. Tag is displayed in the choice/threshold column when present.
- Changed: (case 47875) major query revamp for improved performance. Fewer conditional JOINs, CASE, and conditional WHERE clauses; more UNION ALL.
- Fixed: (case 48718) a query error causing the Category: Analysis parameter to be ignored in some report modes, including Analysis Change Log
Location Analysis Label (LALabel.rpt)
- Changed: (case 47200) made barcode respect the align barcode setting
Sampling
- Added: when results are being loaded, each referenced plant will have all its locations loaded to prevent queries being run for every result's location.
- Changed: (case 48456, case 46289) the 'rule' test queries are now run in batches of 1500 because MySQL can throw errors if there are lots of UNIONed queries in one request for some reason.
- Fixed: several speed improvements to sampling history loading, particularly when building large numbers of queries to test option visibility rules.
- Performance: (case 48452) made several passes at sampling history search to improve load speed. These changes cut out as much as 50% or more of load times.
- Performance: optimized sample history searches, gaining as much as 50% of load time on large searches.
- Changed: column addition/removal now happens before item loading for speed.
- Fixed: an issue where unchecking 'show options and values' did not correctly hide labels in situations where there was more than one analysis type loaded.
- Added: a new icon for the sampling history screen.
- Fixed: issues where the saved search page was cleared and re-filled on every search, slowing down searches slightly and causing unnecessary flickering.
- Added: user's selection in the saved search page will now persist between refreshes, and the first saved search will automatically be selected on load. This helps keyboard navigation, as the user can arrow to the desired quick search and hit enter to perform it.
- Moved: Sample Detail and Graphing have been moved from children of the sample history page to top-level tabs, giving them more space when active.
- Renamed: Sample Detail to Search Detail, and added a hotkey to the "D" for quick navigation back and forth.
- Added: when a search is performed, the user is automatically moved to the sample detail page, and their focus is put into the first item in the list, so they can quickly navigate with the arrow keys and hit enter to open the sample in question.
- Fixed: several issues where tab-order of controls was out of order, causing complication when using the keyboard to navigate the page.
- Changed: the 'search criterion' has been moved below the quick search page.
- Added: the 'drag bar' between quick search and criterion now remembers its last position as a user preference.
- Added: accelerator hotkeys to the Quick Search (alt + Q) and Search Criterion (alt + C) tabs to make keyboard navigation easier. Also added a hotkey to the Sample Search tab as well (alt + S), which makes coming back from the Search Details page to perform a new search easier with the keyboard.
- Added: the location map page to the screen. This shows the same location map as the locations screen, but in readonly mode.
- Changed: the visualization page is now first on the location map screen.
- Fixed: a potential crash related to the location map screen.
- Added: after a saved search is executed, if the location tree tab is visible, the visualization tab will be made active.
- Added: support for automatically displaying all current sampling results on the visualization tab.
- Removed: the clear and search samples buttons are now hidden in the location map.
- Added: clearing search now correctly clears search results and items on the location map.
- Added: clear search button to the search results page. Clicking this will take the user back to the perform search page.
- Added: alt + c accelerator hotkey to clear current search results, for easier keyboard navigation.
- Added: now, every time a search is performed, focus is put into the search results list. Previously, the user's focus might stay on another control, making it hard to navigate search results with keyboard only. Now, the user should be able to successfully perform a search, select items, clear a search, and perform another one with the keyboard only.
- Fixed: an issue where restoring a saved search filter would not be able to select the correct analyses if "show testing analyses" or "show production analyses" were unchecked. Now, when a sample filter is loaded, if a production analysis is involved, "show production analyses" checkbox is checked; if a testing analysis is involved, "show testing analyses" checkbox will be checked.
- Fixed: resizing issues with the 'previous/next page' area underneath the sample list. This should now resize to not overlap any other controls. Also, if the user's resolution is small enough that the next/prev buttons cannot fit with the labels, the labels are hidden.
- Fixed: an issue where clearing a search when the user was on the second page of results would not correctly hide the prev/next page controls until after the next search was performed.
- Fixed: an issue where adding a new sample via the sampling history UI, then immediately performing a new search could cause a crash.
- Fixed: an issue where the 'copy locations' button would still be visible on the configure locations area even when the screen was embedded in 'view only' mode.
- Fixed: timing with how items were loaded onto the map, which could lead to item selection or color issues.
- Fixed: an issue where location colors could persist after a new search had been performed or search results were cleared.
- Added: every time a search is performed, the next time the user goes to the location map screen, focus will automatically be set to the visualization page. This makes keyboard-only navigation much easier, as the user can immediately arrow through the results upon arrival.
- Changed: the animate button on the location visualization screen is now a 'push style' checkbox. This means it is more obvious that the button is 'depressed' while animating.
- Added: 'show items with locations only' in the location visualization screen. Checking this box hides all sample values that are not associated with any locations to make the list trimmer and easier to navigate.
- Fixed: a crash related to clearing results from the location map.
- Changed: visualization page now tries harder to ensure the animate button and animation delay slider are visible on smaller resolution screens.
- Fixed: a crash related to doing a second search with no results after sending results to the map.
- Added: if the user hits 'save' to modify any samples on the sampling history screen, the items on the location map are refreshed to reflect the new location/value/acceptabilities.
- Fixed: an issue where, if the user swapped between maps while animating results, location colors would not refresh correctly.
- Fixed: an issue where performing a search might clear out the search criterion before displaying results.
- Fixed: a crash that could occur if the user's focus was in a 'new' added sample (unsaved) then a new search is performed.
- Added: as the user clicks on different locations in the location visualization page (or through animation) the desired location is now centered in the view, if possible.
Work Orders
- Fixed: (case 47881) an issue where the time of day column incorrectly showed 12:00 AM on all previously saved WO schedules. This could cause incorrect saving if the user made any changes to other fields on the row.
- Fixed: an issue where manually adding samples to a WO with a analysis/location combinations that were part of a scheduled sample plan, the sample would not 'count' towards that plan. Now if that location has not been sampled in the current period, it will correctly mark the location as tested in the schedule.
- Fixed: tab order issue with the verification due date.
- Added: support for copy/paste in all date or date/time controls.
Version 3.9
SVN revision 22497-22670
Requirements
- MySQL: at least 5.7.15
- Windows: Vista or later
- Resolution: 1280 x 1024 or higher
- Crystal Reports: 12 X2 I think is what its called, need to ask Jordan
- ODBC: MySQL ODBC 5.1 or 5.3?
- <ports for AU>
- <permissions to install>
Database
- Added: f_get_all_ancestor_id, which is like f_get_ancestor_id, but returns all ancestor ids.
- Fixed: (case 46621) an issue where 'choice' options would calculate as out of bounds if the value was blank.
- Fixed: (case 47425) if there were draw map objects tied to the wrong plant, they have been corrected. This was caused by a bug in the location screen that is resolved in this version.
Attachment Views
- Fixed: an issue where resizing the application or an attachment view would not resize the currently visible attachment within it.
- Added: (case 46397) all attachment pages now automatically select the first attachment in the list for display. This matches the behavior that already existed in some attachment 'popups' like on the document screens.
Analysis Management
- Fixed: a misspelling of a menu option.
CommonResources
- Fixed: (case 46049) an issue where performing 'clone analysis' to an analysis with 'rules' applied to the options would 'move' those rules to the new analysis instead of copying them.
Investigation
- Fixed: (case 47331) an issue where the investigation rules page would not show the correct page size on the previous/next page buttons. Also, these buttons are now correctly centered on the screen.
Location
- Fixed: (case 47425) an issue where the user could get a database error if they created draw objects for one plant tied to a similarly named map at another plant.
- Fixed: (case 47424) an issue where drawing a new box could create the object under the wrong map if there were similarly named maps at more than one plant and the user switched between those plants.
- Fixed: (case 47442) an issue where creating a location by drawing a new box wouldn't tie the new location to the new box on save, causing them to be unrelated.
Work Orders
- Changed: (case 46066) 'calculate once' style defaults now continue calculating their defaults until a 'valid' (not blank) result is returned. This resolves issues where the initial calculation returned an invalid value because dependent fields had not yet been filled out.
Reports
Certificate Of Analysis (CertificateOfAnalysis.rpt)
- Added: (case 45889) a parameter to show the plant address in the header, with the sample, both, or neither. Running the report for all plants overrides showing address in the header.
- Fixed: (case 45889) updated plant logo query to allow the report to display results even if no plants have logos
- Added: (case 44212) the ability to show/hide verification information in the basic information subreport per a new parameter/setting
Failed Results (FailedResults.rpt)
- Added: (case 47175) new parameters for including/excluding marginal results, including/excluding invalid results, and specifying which date field to filter by and display.
- Changed: (case 47175) improved logo fetch query
OSHA Forms 300 & 300A (equivalent) (OSHA300300A.rpt)
- Added: (case 41152) OSHA equivalent forms, including a mode which automatically fills in data from analysis option values, and a blank mode. These will appear as two separate report entries.
Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)
- Fixed: (case 46372) date and datetime results when selected as the printed option via setting
- Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses
Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)
- Fixed: (case 46372) date and datetime results when selected as the printed option via setting
- Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses
Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)
- Fixed: (case 46372) date and datetime results when selected as the printed option via setting
- Changed: (case 46372) even though a maximum of one option will print, the report can now understand a list provided by the setting so differently named options can be printed for samples from different analyses
SampleCompletion.rpt
- Changed: (case 39494) f_get_setting to f_check_setting where required for dynamic report functionality
User Status (UserStatus.rpt)
- Changed: (case 44507) expanded parameter functionality, cleared saved data, and made minor aesthetic improvements
- Changed: (case 44507) report filename, updated from Rough Draft
Version 3.8
REVISION 22345-22496 database version 380
Database
- Fixed: several issues with p_get_subtree_by_lookup, which is used by the graphing website to look up child products.
- Fixed: an issue where f_get_setting was looking for Stores instead of Plants.
- Added: f_useraccount_has_site_access function used by the isoft authentication node module to know if a user has access to a plant
- Changed: (case 38185) f_get_setting and p_check_setting now defer to setting.defaultvalue over the default that was passed in as an argument.
- Removed: references to the no longer supported group setting levels.
- Fixed: (case 40544) (case 45627) f_count_problems added for verification interface. Moved function above the 3.7 version tag so that it goes out when Gwyn updates people to 3.6
- Added some queries that create the password security settings at their default values so that someone can see them to change them.
- Added: a new permission that controls whether a user is able to see/create/revoke API tokens. These tokens allow other applications to access Presage data through the (in development) Presage API. The accessor will inherit all the privileges of the user account that the token is on (not the user account that generated the token).
CommonResources
- Added: support for tri-state checkboxes for boolean options. This makes it so that companies can track and visually discern between boolean options that are Yes vs No vs Not yet set. This should help situations where companies have to set up various Choice options instead of booleans.
- Fixed: a possible database error that could happen if two users wanted to create a new user hotkey in the action table from two different user sessions at the same time.
Configuration
- Changed: (case 38185) in the configure settings area, the user can now edit the 'default' column. Previously, this value used to only be for reference, but will now specify the value for new users/sites that do not currently have a value.
- Removed: the configure settings area no longer has a 'scope' dropdown. Also the user can no longer view or edit settings at other levels, as this behavior was deprecated previously.
- Removed: references to the no longer used cascade argument for settings, as they now operate at their specified level, and no other.
- Added: in the configure users area, there is now a section where an admin can see, generate, and revoke API tokens for each user account in the system. These tokens allow other applications to access Presage data through the (in development) Presage API. The accessor will inherit all the privileges of the user account that the token is on (not the user account that generated the token). This area is hidden if the user does not have the new "Manage API keys" permission.
Login
- Fixed: an issue where the login popup might be stuck in the "No DB Connection" locked down mode if the popup appeared while the database was unreachable. This could effectively lock the user out.
- Fixed: an issue where user plant access was not being checked correctly.
- Fixed: an issue where the login dialog would not be visible if the main application window was minimized or off screen when the application was locked. Now, the popup will be centered in the main monitor if the application is not visible to center on.
Sampling
- Fixed: (case 44349) an issue where some sampling history filters would search correctly, but not save the search correctly or navigate to the correct search URL for graphing.
- Fixed: (case 44411) an issue where graphing URLs might be incorrect if some of the values contain restricted values like "&" or "=".
- Changed a text label from Sample Category to Analysis Category to match other interface elements.
Work Orders
- Fixed: (case 44590) an issue where 'empty' values might be deleted off of a sample if another option was changed and the first option's default was blank. Now, option values (blank or not) will persist indefinitely unless the sample is deleted or the analysis is changed.
Reports
Failed Results (FailedResults.rpt)
- Fixed: (case 45605) added exclusion for inactive thresholds in subreport
- Changed: (case 45605) added inclusion for thresholds relevant to parent productid and top level ancestor productid.
Version 3.7
REVISION 21990-22234 database version 370
Crystal Reports
- Changed: (case 40474) the 'choose which report to print' popup no longer has an orientation column, as it confused some users. Also, the 'default' checkbox column has been moved to the right so as to avoid confusion between this marking an item as a default print option and selecting the item to print this time. Also, changing whether a report is a default now immediately resorts the report list. This should make the function of favorite reports more obvious to the user.
Database
- Fixed: (case 40664) the end date of product batches now allows NULL to avoid a MySQL bug on some systems.
- Fixed: an issue with an incorrect index on the productbatch table.
- Added: (case 40855) a new stored procedure that can RENAME a table, replace it with a copy (so that people can still insert into it), perform a potentially slow ALTER on the original, combine the rows, then swap them back. This is useful for making changes to large tables in a way that does not take a system down for as long due to table locks.
- Fixed: p_configure_log_tables will no longer do unnecessary, expensive work if the database is not named `presage`.
- Changed: (case 40855) the procedure p_configure_log_tables has been rewritten to use the new procedure p_swap_and_alter_table so as to not lock the logs up for as long.
- Changed: p_swap_and_alter_table now applies the alter operation to the placeholder table so that adding or removing columns will not cause an error when the tables get merged.
- Changed: historical version 3.3.1 now changes the trigger on analysisoptionvalue beforehand to be faster. This seemed to speed up the query as much as 95%.
- Added: (case 40544) f_count_problems added for verification interface.
- Added: (case 41117) stored procedures that restore information from the logs to all databases.
- Fixed: (case 42224) an issue where right click graphing would not render correctly (sometimes) due to a race condition introduced by google into their charts.
- Added: (case 42447) to improve HDD consumption on systems with integrations that commonly drop and re-add rows from the analysisoptionchoice and productbatch tables, the logging triggers for those tables have been re-created with a feature that allows suppression of the logs.
- Changed: (case 42365) the email recipient of emailed reports and report subscriptions now supports nearly unlimited number of recipients.
- Changed: (case 42488) when an investigation triggers an automatic retest, if the retest analysis is a production analysis (recipe), the production volume of the newly created sample will correctly inherit from the default batch volume instead of 0.
- Added: a table that is used for optional password blocking based on security preferences.
- Changed: useraccess.username is now long enough to store an entire username.
- Added: (case 24295) support for useraccess.accesstype of 'Session Unlock'
Home
- Added: by request, hitting 'enter' will open the selected WO on the WO screen.
Login
- Added: new user passwords can now no longer match the user's first or last name, or their work email or recovery email, due to ease of guessing that kind of password. It also cannot contain the account name, as this does not add any complexity to guessing the password.
- Added: the change password popup now shows some warnings/errors as the user types, and some other, slower tests when the user leaves the field.
- Added: support for many new (optional) Password security settings, including minimum/maximum length, minimum number of characters from character classes (upper, lower, special, number), checking against a block list of the top 10k passwords, checking to see if the password was involved in any password breaches, and making sure the password doesn't match any recent passwords the user employed. All of these settings default to off.
- Added: support for a global setting to set a threshold on how many breaches a password must be involved in before it is not allowed. Below this, the user simply sees a warning.
- Added: (case 24295) as part of logging in, a new setting is checked "Security"->"Passwords: maximum number of days between user password changes" which checks to see if the user has changed their password recently enough. If not, they are shown a popup forcing them to change their password now.
- Added: (case 24295) a new global setting: "Security"->"Passwords: number of days before password expiration to prompt user to change password". This represents a number of days before password expiration to begin prompting the user to change their password and let them know that the password will expire soon.
- Added: (case 24295) support for locking and unlocking user sessions. There is now a menu option File->Lock Session which will lock the current session, requiring a password to continue. This is useful for security when a user walks away from a terminal. By default, this can be activated by Ctrl + L, but this hotkey can be customized in the user hotkeys dialog.
- Added: (case 24295) a global setting of 'minutes of inactivity before automatically locking user session' (defaults to off). If a machine has no activity for this many minutes, the session will automatically be locked, requiring the user to type in their password to continue.
Master
- Added: a separator to the File menu for better organization.
- Added: support for customizable user hotkeys in top level menus. This is being used in the new File->Lock Session option.
- Fixed: the help->about box now correctly shows all modules loaded by the system with their full absolute path on the file system.
- Fixed: an issue where help->about module list wouldn't show modules correctly if the working directory was not the install directory (common in terminal services installs).
- Fixed: an issue where help->about didn't show modules where the module name and filename didn't match.
- Added: by request, the help->about box now shows the last file modification time for each module. This is useful when checking to see if files were downloaded and applied during update without opening windows explorer. This dialog now has a large minimum size to facilitate more data that is shown in it.
- Added: the help->about box now splits the directory off the filename so that the filename can be more obvious and easier sorted. The version and filename are now bolded and the path and hash are slightly gray to make the important information easier to see.
- Added: help->about now has a last modified timestamp, which is read from the file in the filesystem.
Products
- Fixed: (case 42322) an issue where copying and pasting a product at the same level will automatically name the product " - Copy" at the end so that the user can rename the product instead of just getting an error.
- Added: on save, we now test to see if there are duplicate products at any given level and show the user an error if any are found. This should help prevent issues where the user can get confused by products with the same name at the same level.
Sampling History
- Fixed: an issue where a blank user/location/product/etc might be selected in the dropdown (instead of nothing) when the screen was cleared. This would lead to users inadvertantly searching for only those samples that were associated with the user/location/product/etc with a blank name.
- Changed: if the user doesn't have permission to edit samples on this screen (the most common situation) all the readonly fields in the list are hidden. This makes using the arrows to navigate the list easier since up/down will no longer open up some columns' dropdowns.
- Added: hitting enter in this list now opens the selected WO on the WO screen.
Work Orders
- Added: a global hotkey to open a 'find/open WO #' popup. Entering a WO # into this popup and hitting enter will load that WO on the WO screen, no matter what screen the user is currently on. This is the same popup the user sees when loading a WO # on the WO screen. The hotkey for this global action defaults to F4, but can be customized per user.
Reports
Analysis Change Log (AnalysisChangeLog.rpt)
- Removed: (case 39891, case 39892, case 39894) older report file. Functionality will now be handled by the file ChangeLog.rpt, which handles multiple change log modes
(Analysis,Users/Groups,Investigation Trigger,Product) Change Log (ChangeLog.rpt)
- Added: (case 39891, case 39892, case 39894) the updated version of AnalysisChangeLog.rpt, which has a mode parameter. Each mode is a different report entry in the table and shows logs for different things, which slight variations in columns, headers, and active parameters.
Certificate Of Analysis (CertificateOfAnalysis.rpt)
- Added: (case 43792) Lot and Expiration for Recipe analyses, when present
- Fixed: (case 43792) Comments and Findings shading
Data Entry Tagnumber(1.1x2.4_DataEntryTagnumber.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Location Analysis Label (0.66x2.1) (0.66x2.1_LocationAnalysisLabel.rpt)
Added: (case 39137) a supplemental alternate sized report
Location Analysis Label (1.1x2.4con) (1.1x2.4con_LocationAnalysisLabel.rpt)
Added: (case 39137) a supplemental alternate sized report
Sample Barcode (0.66x2.1)(0.66x2.1_LabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Sample Barcode(1.1x2.4_LabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Sample Barcode (1.1x2.4con)(1.1x2.4con_LabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Screening (Screening.rpt)
- Added: (case 40396) a new report that shows COVID-19 Symptom Screening results
Work Order Barcode (0.66x2.1)(0.66x2.1_WOLabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Work Order Barcode(1.1x2.4_WOLabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Work Order Barcode (1.1x2.4con)(1.1x2.4con_WOLabelWithBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Work Order Copy Barcode (0.66x2.1) (0.66x2.1_WOCopyBarcode.rpt)
Added: (case 39137) a supplemental alternate sized report
Work Order Copy Barcode (1.1x2.4con) (1.1x2.4con_WOCopyBarcode.rpt)
Added: (case 39137) a supplemental alternate sized report
Work Order Copy Barcode (Label)(1.1x2.4_WOCopyBarcode.rpt)
- Changed: (case 40366) barcodes are now not center aligned by default, but there is a setting to change that back. All tag reports with barcodes respect the same setting.
Version 3.6
REVISION 21738-21989 database version 360
Analyses
- Moved: the thresholds area has been moved from the main form into a property page.
- Added: (case 24089) new property page area for the future for managing rules and restrictions.
- Added: analysis option rules page for viewing and editing rules that trigger different states on an option depending on the presence or absence of various tags.
- Changed: for speed purposes, analysis option choices and rules are now only loaded when they are needed. This is to avoid slowdowns at plants with large numbers of rules and threhsolds.
- Added: the analysis option rules page now pops up a 'add/edit/delete' associated tags dialog when you double-click the tags cell in the rule list.
- Added: synchronization between the tag lists in the rule tag popup with the product tags area on the products screen.
Common Resources
- Added: support for checking analysis option rules. These rules can be triggered off of tags on the plant, the product, or the location.
- Added: support for Hidden option rules. They now hide those options in the sample detail page.
- Changed: when options are hidden for any reason now, samples with the same analysis will now correctly align values for the same option.
- Added: the configure analysis page now loads option thresholds and option rules for each analysis as they are selected instead of when the screen is loaded.
- Added: configure option rules/thresholds pages now show an asterisk in the title bar if any are modified. In addition, the number of thresholds/rules on the page are shown in parenthesis in the title bar. This makes it easier to tell at a glance whether an option has any thresholds or rules.
- Changed: the tags field in the configure tags area is now a multi-line readonly edit box for easier review.
- Added: an edit icon to the tags column to make it more obvious that the user can click into the tags area to choose tags.
- Changed: the user can no longer open the edit tags dialog if the item is not editable.
Configuration
- Changed: the city/state/zip/country feature in the edit plants area now uses shared state/zip functionality for speed purposes.
- Added: (case 24089) support for tags on plants.
- Fixed: hitting the reset button after visiting the configure plants page could lead to duplicated plants in the dropdown.
- Fixed: (case 39720) the timezone autocomplete now strips out many redundant and deprecated timezones.
Database
- Added: (case 24089) tables and changes to enums to support tags associated with plants.
- Renamed: zipcode and state.stateid have been renamed to statecode to better match other products.
- Added: function f_get_company_product_code, which is a product agnostic API for getting a company product code.
- Added: f_get_setting and f_check_setting for consistency with other products.
- Added: some JSON utility functions, useful in new JSON operations.
- Added: f_get_option_restrictions and f_check_option_restrictions, functions for testing whether an option should be shown/editable/etc.
- Added: the Disabled option rule outcome has been renamed to Inactive to match the Inactive flag/behavior on options themselves.
- Added: if an analysis option is inactive or marked as required to close or perform directly (not through a rule), f_test_option_restrictions will correctly return the status of 'Inactive' or required.
- Added: support for specifying an email subject in reportqueue.
- Removed: calls to p_configure_log_tables in versions 2.6, 2.7, 3.3 so as to not do unnecessary work when updating to a new version.
- Changed: p_configure_log_tables no longer sets enums on log_change.column and log_changegroup.table. Its going back to VARCHAR(100) for both. This only costs 10% more HDD space and requires a lot less update time. Also, if either of the live log tables are found to not be using ROW_FORMAT=COMPRESSED (which accounts for 50% of the HDD space), the row format will be set to COMPRESSED.
- Added: active flag to the analysisoptionrule table.
- Changed: f_test_option_restrictions now respects active flag, and properly handles rules with no tags.
Home
- Removed: the date pickers are no longer locked if the user is not searching closed documents.
- Fixed: load times have been improved significantly, especially at plants with large numbers of thresholds.
Investigations
- Fixed: (case 38843) an issue where loading investigations would show that the investigations had been modified and needed to be saved, despite the fact that the user did not change them.
- Fixed: (case 38843) an issue where saving investigations with retests could move those retests to a different work order whose WO # matched the investigation #.
Locations
- Added: several new "Group results by" options, including a 10min option, hour option, and a Custom option.
- Added: an edit button that shows when the custom group by is selected, which allows the user to change the number of minutes that the custom group by uses.
- Fixed: an issue where the selected 'group by' option is not saved correctly on screen close.
- Fixed: an issue where the previously selected animation speed is not restored correctly on screen open.
- Changed: when group by was changed, the tree was auto-expanded, but not when results were loaded. Now it expands when items are loaded as well.
- Fixed: an issue where hitting the animation button doesn't work if nothing is selected in the tree.
- Fixed: (case 39875) an issue where selecting the group by option of "None" could lead to strange issues with colorizing locations.
- Changed: Moved group by and speed labels above their fields.
- Added: Made group dropdown typeable.
Product
- Added: analysis option rules and choices are now loaded when the user goes to copy a product batch to ensure that all things that reference that batch are loaded.
- Changed: analysis option rules and thresholds are no longer loaded automatically for all analyses. This will speed up loading the product thresholds page. Thresholds are loaded for each product as they are selected.
- Fixed: a crash when deleting tags from the product tags area.
Sampling
- Changed: improved the speed of loading large numbers of results.
- Added: all samples' restrictions are loaded up front after a search is performed to avoid loading them as samples are being displayed.
Settings Framework
- Added: support for a shared zip code cache.
Work Orders
- Fixed: an issue where loading a work order with a due date or a verification due date with seconds might say the work order had been modified when it had not.
- Added: support for Hidden option rules on recipes.
- Added: now, analysis options that are hidden for any reason will still calculate defaults and acceptability, while inactive options will not calculate or save defaults.
- Fixed: various issues with regards to default values on production samples (recipes).
- Fixed: changing recipe values now updates other values' defaults in realtime now.
- Added: sample tag # to the recipe list.
- Changed: recipes should now correctly load dropdown choices as they are selected instead of when the screen is opened, speeding up the screen on larger databases.
Reports
Analysis Change Log (AnalysisChangeLog.rpt)
- Fixed: (case 40145) removed archive change log section of the UNION ALL
Certificate of Analysis (CertificateOfAnalysis.rpt)
- Added: (case 39675) performed on datetime
- Changed: (case 39675) minor date to datetime updates with formatting, where appropriate.
Contact Tracing (ContactTracing.rpt)
- Added: (case 40335) a new simple contact tracing report showing where people performed samples in users by location or locations by user format.
- Added: (case 40335) location parameter header
Failed Results (FailedResults.rpt)
- Fixed: (case 39681) report was not automatically pulling logo from the database
Sample Barcode (1.1x2.4_LabelWithBarcode.rpt)
- Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled date
- Changed: (case 39138) minor rearranging fields more likely to be short on the same line while giving fields more likely to be long more room
- Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant.
- Changed: (case 39561) right-aligned the barcode to fix an issue where barcodes were not scanning. I suspect the "centered" barcode was being interpreted as "jusitifed" by an aggressive printer driver.
Sample Barcode (0.66x2.1) (0.66x2.1_LabelWithBarcode.rpt)
- Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled datetime
- Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant.
Sample Barcode (1.1x2.4con) (1.1x2.4con_LabelWithBarcode.rpt)
- Added: (case 39138) a setting to pick which datetime field is displayed, updated from showing workorder scheduled date
- Changed: (case 39138) minor rearranging fields more likely to be short on the same line while giving fields more likely to be long more room
- Changed: (case 39619) changed the optionvalue setting in the subreport from Global to Plant.
Samples By Analysis (SamplesByAnalysis.rpt)
- Changed: (case 39678) minor query improvements, date performed field now shows a datetime instead of a date. Dynamic option headers can grow. The header box can grow.
- Added: (case 39691) a mode to print from the Sampling History Screen, with new parameters to support that and defaults to make the inactive mode benign
- Changed: (case 39691) cleaned up the report header, added plant logo, and changed the analysis parameter to a combined category analysis parameter
- Fixed (case 40383) fixed subreport links
- Fixed: issue in the subreports causing options and option headers not to print in Sampling History Mode
Testing Barcode (0.5x2.4LabelWithBarcode.rpt)
- Fixed: (case 39133) tidied the report, improved the query to be more consistent with the Work Order Tags, and saved it with printer settings that match the size in the report filename. With necessary margins, this required a reduction in the number of fields displayed. Report now only shows barcode, tagnumber, workorderid, and a date (which date is shown and the format of that date are specified by settings).
Version 3.5
PS Change log version 3.5 REVISION 21583-21738 database version 350
Analysis
- Changed: (case 38064) the user can now check the "Global" check on a threshold when a product is specified.
- Fixed: (case 39003) thresholds and the 'test value acceptability' popup now both correctly handle european-style number formatting windows preferences (period and comma switched).
CommonResources
- Fixed: the edit default value dialog now correctly handles european-style number formatting for other option defaults.
Configuration
- Fixed: an issue where multi-line lock notes weren't displaying right.
- Added: (case 37587) a filter to the user account list for easily filtering down to specific users by account name, first and last name, email, or lock notes.
Database
- Changed: (case 38584) option values can now be 100 characters.
- Added: (case 38631) a description to alert subscriptions
- Fixed: (case 38918) an issue where option choices were not logging changes correctly.
- Added: (case 38776) logging triggers on the useraccount table have been readded because they were missing on some databases.
- Added: (case 38880) Support custom query data tables in dashboard
Home
- Fixed: (case 38431) an issue where doubleclicking an empty row could cause a crash.
ITMySQLConnection
- Removed: the unnecessary and confusing text "APPCRASH" that was added to some unknown mysql client errors.
- Fixed: if there is an issue establishing a secure connection to the database (and secure connections [SSL] are enabled) the error "APPCRASH: the operation completed successfully" will no longer be shown instead of the intended "SSL is not configured correctly or secure connection refused."
Locations
- Fixed: (case 38262) an issue where the user can get a crash when adding a new top-level location.
- Fixed: an issue where the user would be asked to save again even though nothing had changed.
Product
- Added: wait cursor when loading product specifications.
- Fixed: (case 38258) an issue where loading specifications could cause a very long delay on a system with a large number of products.
- Changed: (case 38064) the user can now change product specs to allow "All Plants"
- Fixed: (case 39003) thresholds now correctly handle european-style number formatting windows preferences (period and comma switched).
Sampling
- Fixed: (case 39003) values, defaults, and 'calculated values' now correctly handle european-style number formatting windows preferences (period and comma switched).
Work Orders
- Fixed: (case 38312) an issue where the time of day of automatic WOs would show midnight until the user clicked into the field, and it would be switched to the current time of day.
- Fixed: (case 38147) an issue where recipes with default value formulae might not calculate 'Per Batch' values correctly. The ratio between production and batch volume was being applied twice.
- Added: (case 38640) a 'show inactive schedules' checkbox, which defaults to unchecked. Check this box to see schedules that have been deactivated.
- Fixed: if the user hits the button to add a new schedule, focus will automatically be put into that item so the user can fill it out.
- Fixed: (case 39003) values, defaults, and 'calculated values' now correctly handle european-style number formatting windows preferences (period and comma switched).
- Fixed: recipes now handle european-style number formatting preferences correctly.
- Fixed: the 'value calculation' popup was not handling european-style number formatting correctly if the user did a calculation in scientific format.
- Fixed: using the 'value calculation' popup to create a computed value now correctly puts the right value in the background for graphing as well as acceptability testing.
- Fixed: work order change log now correctly displays modified values in european-style number formatting correctly.
- Fixed: saved value calculations now correctly load back up when loading a WO.
Version 3.4
PS Change log version 3.4 REVISION 21297-21582 database version 340
Crystal Reports
- Changed: the choose printer dropdown in the edit default printers dialog is now wider to facilitate networked printers.
- Added: (case 38210) a global setting called "Printing"->"Automatically set windows default printer before printing". This setting defaults to False. When set to True, every time the user prints, the default printer in windows will be set to the printer the user is printing to, and the printer will be set back to the previous default afterwards. This may help with some printing scenarios where default windows printer affects some print jobs.
Data Management
- Fixed: an issue where permissions were not being checked correctly for this shared module.
- Fixed: (case 36908) an issue where a table that had foreign keys on it would throw an error when importing.
EDocuments
- Changed: how data sources are handled has been changed so that objects are not loaded from the database if they are not referenced in the EDocument template. Also, passing objects into multiple edocument evaluations won't load the same objects more than once.
- Added: support for edocuments to be evaluated in such a way that invalid tokens are left in. Also, edocuments can be evaluated in a way where the values are escaped and quoted, which is useful for when the output is a query that needs to be run.
- Fixed: an issue where the handling of global variables wasn't working correctly.
- Fixed: a crash that could happen when subreports were present in an edocument request.
- Fixed: (case 37729) an issue where sometimes column tooltips would be left even after columns were deleted, leading to incorrect or overlapping tooltips.
- Fixed: several issues where 'dead whitespace' would be left in a list if the user was scrolled to the right when columns are deleted.
- Fixed: (case 36452) an issue where using the mouse scroll wheel to scroll a list control with close buttons (little red x's), the x's would not get redrawn correctly.
- Added: (case 36809) an option for exporting just selected items in a list to a spreadsheet.
- Removed: the option for exporting to an HTML table, as I don't think this is valuable to anyone.
- Added: the shared 'dropdown choice' popup dialog now uses a typeable dropdown for easier searching.
- Added: 'automatic' list cell tooltips that appear when the text doesn't fit (has an elipsis at the end) now works if the string has line breaks in it, which also causes an elipsis. This helps in lists where multi-line data (like addresses) can be present.
- Fixed: an issue where tree controls that contained checkboxes might not toggle the check boxes correctly if the user used the keyboard (space button) to toggle the checks.
Common resources
- Fixed: (case 13589) the user can no longer save option choices/thresholds with an empty value.
- Added: (case 13589) if the user modifies a saved choice/threshold to have an empty value, they will be prompted that they are invalid choices and given the option to delete them.
- Added: a general 'edit tags' page that is now used in various places for adding/editing/deleting tags on various objects.
- Fixed: (case 35851) an issue where switching between analyses on a WO that contains multiple different analysis types can cause option values to be saved for the previous analysis if any of its options had defaults. Also added several checks that will attempt to delete such invalid values if they are found in the future.
- Added: (case 20177) sample default SQL formulas now support parameters in the format {?sample.comments}/{?sample.locationid} as well as related tables like {?location.location} and {?product.name}. The following tables can be referenced: sample, plant, analysis, product, location, collectedby (the user account), platesreadby (the user account), investigation.
- Added: (case 20177) the 'test/edit' default value formula popup now supports many other data sources, such as workorder, sample, location, etc.
- Fixed: an issue where changing analyses on a sample could take a noticable amount of time as columns were added or removed and the user would see a lot of flickering. Now this operation is essentially instant.
- Added: (case 20177) default value formulas now support the workorder data source as well as assignedtogroup, workordertype, verifiedby, productbatch.
- Fixed: (case 37546) an issue where 'calculate once' SQL defaults were not being handled correctly. Now they will correctly calculate the default only once and stay at that value.
Configuration
- Fixed: (case 36948) the user now gets an error if they attempt to create a new account with a blank user name.
Database
- Added: entitytag table, which stores tags that are applicable to various entities like products and suppliers.
- Added: producttag and suppliertag, which associate tags with products and suppliers respectively.
- Added: (case 36675) location tags and analysis tags.
- Added: (case 36658) if the user has a failed login/access attempt, some new settings are checked that control how many failures can occur before locking the user out. If these thresholds are exceeded in a given time limit, the user's account will automatically be locked. These new settings are:
Login->Security: number of failed attempts before locking an account Login->Security: number of minutes before failed attempts expire
- Removed: sample values that were incorrectly created previously have been cleaned up. These were invalid values for the incorrect analysis.
- Added: (case 21232) support for alert subscriptions related to supplier documents expiring, being added/removed/modified. This required adding support to alert subscription and alert templates.
- Added: p_alert_trigger can now check for expiration of supplier documents.
- Added: support in e_alert_scheduler for supplier documents.
- Added: p_alert_process_content can now handle building alerts for supplierfile records and can now handle edocument style tokens in the destination address of an alert as well as the title and body.
- Added: e_process_alert can now handle edocument tokens in the destination address.
- Added: p_edocument_replace_general_tokens, a new procedure that can find and process edocument style tokens that refer to non-table/field data sources like settings and session variables.
- Added: (case 37366) cloning WOs/Samples now does not copy various sample comments if copying sample values is turned off.
- Changed: (case 36676) the scheduled date on work orders now has a time as well. This is important because the scheduled date/time represents a moment at which the WO will be considered valid after. For now, WOs scheduled for the future will not be filtered out of anywhere in the software, but such changes may come later.
- Changed: (case 36676) cloned work orders now synchronize the date/times on the cloned WO such that the scheduled date/time of the new WO will be the moment of creation, and all due/scheduled dates on the WO will be offset based on the template WO's scheduled date. (Previously newly created WOs were synchronized on the original WO's creation date, which the user could not see or edit, making dates on cloned WOs hard to set correctly).
- Added: (case 36676) sample.scheduled and sample.due, which represent (optional) overrides to the WO scheduled/due dates that apply to specific samples. This is especially useful now that we will be using cloned WOs to handle hourly checks. If the template WO has samples with scheduled dates exactly one hour apart, the cloned WOs will also have samples scheduled into the future, each an hour apart.
- Changed: Standardized maximum user name length to be long enough to store a full length email address (320 characters).
Document
- Changed: (case 38036) if the user has "Plant" level permissions for "Edit document associations", "All Plants" is no longer an option in the plant dropdown. In such situations, new rules will automatically use the current plant instead of "All Plants". Also, a rule cannot be saved if the only thing filled out is plant now.
Locations
- Changed: much of the configure locations page has been rearranged. The copy/cut/paste/delete buttons are now below the location tree. Most of the edit location fields have moved to a Location Info tab. This more closely matches the edit products/suppliers areas.
- Added: a location tags page to the configure locations area. When creating locations or editing existing ones, the user can choose which tags apply to each location. By default, locations inherit tags from parent locations, similar to other information.
- Added: a filter to the location area. This allows the user to quickly filter down the location tree.
- Fixed: copy/pasting locations should now correctly copy any location tags. Also, fixed various issues that could lead to crashing when rearranging locations with tags.
- Fixed: (case 37236) an issue where the locations were not changing their color when locations were being visualized due to a recent regression.
- Fixed: a possible crash that could happen if the user cut a location, then filtered the tree before pasting.
- Fixed: some issues where cutting a location then filtering the list before pasting could cause the original location to not get removed.
Login
- Fixed: a possible issue that could cause the password recovery button to not send the recovery email.
- Added: for added security, if a user logs in using a less secure password encoding (because they have not changed their password since the newer password encodings were added) their password will automatically and silently be reencoded using a more secure method.
Product
- Added: (case 21719) a "Tags" page to the configure products and configure suppliers. The user can add/edit/delete tags from these interfaces as well as associate them with various products and suppliers.
- Added: the user can now filter suppliers and products by tags.
- Changed: support for new tag management interface.
- Added: (case 31740) cut/copy/paste functionality to the product management area. This should facilitate copying and moving products along with their tags and plant usage.
- Added: Copying products now properly copies (instead of moving over) associated batches and other info.
- Fixed: a possible crash that could occur when deleting a product with sub-products.
- Added: if products are cut and pasted, all specifications and attachments should correctly move with the products.
- Added: copy/pasting products should now copy specifications and active batches to the new product(s).
- Fixed: a crash when an unsaved product was deleted after adding a new attachment to it.
- Fixed: an issue where copy/pasting products wouldn't show the copied tags initially.
- Changed: batches and batch specifications no longer get copied as part of the copy/paste of products.
- Fixed: an issue where attachments wouldn't show if you cut/paste an unsaved product with an attachment.
- Added: (case 31740) there are now some fields on the supplier attachment page where an alert subscription can be generated for the current supplier. There are options for how many hours ahead of expiration to send as well as what recipient(s) should be included.
- Added: change detection to the new alert subscription fields.
- Fixed: an issue where switching suppliers could lose data from the last field where data was modified.
- Changed: supplier documents will now show as red AFTER the expiration date and blue ON the expiration date, rather than blue the day before and red on that date. This more closely matches how expiration systems work intuitively in other systems.
- Changed: (case 37597) when products are loaded, all their product batches are loaded as well. This solves an issue where batches were loaded one product at a time when the user attempted to use the filter. Now, loading products might take a bit longer if there are many batches, but filtering should be quick.
Work Orders
- Fixed: date/time scheduled, due, and verification due will now save with 00 for the seconds instead of the current seconds (this was causing small amounts of offset on cloned WOs because of these hidden seconds).
- Added: (case 36676) support for scheduled and due date/time (optional) overrides on every sample. These fields are hidden any time the performed date is hidden.
- Changed: the scheduled date picker now supports time. In addition, this field now has a new meaning when cloning work orders. When the work order is cloned, the scheduled date/time will be set to the moment of copy, and all other date/time values (workorder due, verification due, sample scheduled, sample due) will be an offset based on the original work order's scheduled date/time.
Version 3.3
PS Change log version 3.3 REVISION 21074-21296 database version 330
General
- Changed: the defaults have been shifted so that the user can show/hide list columns by default instead of it needing to be enabled by default.
- Fixed: a possible crash if the user right-clicked on a list header control to the right of the last column and chose to sort.
- Added: More protection against crashes when viewing images.
Database
- Changed: location and drawobject no longer store coordinates. They have been moved to drawmapobject.
- Added: a map for each plant named "1", containing all map information for that plant.
- Added: (case 21721) analysis options can now be marked as required to perform in addition to being required to close.
- Changed: various triggers and procedures to deal with the above change.
- Added: a permission for whether a user can mark a WO as performed despite required values not being filled out.
Configuration
- Added: Edit->My Preferences->Database configuration, which allows configuring the database connection of the local system without logging in.
- Added: Edit->My Preferences->Hotkeys..., which allows configuration of the current user's hotkeys.
- Added: icon to the edit->plants dialog and moved it under the Global Preferences area.
- Fixed: an issue where plant settings showed up as Global settings in the configure settings area.
- Removed: the configure->Locations page. Now, clicking the configure locations button just takes the user to the locations screen, as its more well suited for management of the location system.
Common Resources
- Fixed: a crash due to an unreleased change regarding the new product batch column in the sampling detail screen.
Data Management
- Fixed: an issue where CSVs containing quotes escaped by more quotes (a common CSV format) were not being read correctly.
- Fixed: a potential crash when doing a test import.
- Added: tooltips to all onscreen fields and fixed various tab order issues.
- Added: the import type now remembers the last selected import type for the user.
- Fixed: an issue where hiding and then showing the advanced fields could lead to them being smaller than intended.
- Added: more descriptive error messages.
Document
- Added: (case 35796) image files are now marked as 'mobile friendly in the' document attachment interface.
Location
- Added: the location attachments popup now remembers if the user has shown it previously and automatically reopens.
- Added: the visualization page now has an attachments popup that shows sample attachments in a read only popup.
- Added: attachment count to sample tree in the visualization page.
- Fixed: Fixing an issue where the screen might select a bunch of squares whenever the user selects a location.
- Added: better settings headings for the attachment dialogs.
- Changed: the plant dropdown has been moved from the configure locations page to above the map, as it controls everything the user is seeing on the screen.
- Added: a map dropdown next to plant that allows the user to choose between map versions at that plant.
- Added: a default map to each plant titled "1", and all current location information has been moved into that map.
- Added: add/edit/remove buttons for maps.
- Added: user-level settings for remembering the last selected map for each user for each plant.
- Fixed: issues with the map dropdown reverting when the plant dropdown was changed.
Settings framework
- Changed: when the user logs out or closes the application, only modified user hotkeys are saved. Previously, all user hotkeys were deleted and resaved on every logout, causing unnecessary database activity.
- Removed: the concept of Group level settings, which has been deprecated. All settings will continue to exist at either user, plant, or global levels.
Transaction List
- Fixed: (case 36181) an issue where saved search filters were not loading onto the screen correctly, and new saved searches were not saving their filter names correctly.
- Fixed: an issue where column orders were not saving.
WorkOrders
- Added: (case 21721) saving a WO now checks whether the options are required to perform a sample.
Version 3.2
PS Change log version 3.2 REVISION 20835-21073 database version 320
General
- Fixed: an issue where the application could crash in situations where columns are added and removed from list controls with active items.
- Fixed: (case 35533) crashes caused by an issue with removing items from tree controls.
Analysis Management
- Fixed: (case 34310) an issue where testing default calculation formulae for unsaved options might not work right.
Crystal Reports
- Fixed: an issue where an 'empty' error popup would appear if the user attempted to print a report with no valid report file associated.
- Added: (case 35444) support for limits on which email address sources are shown in the advanced print dialog.
Database
- Added: permission for managing other users' saved searches.
- Added: (case 34951) a stored procedure that can compress the primary key IDs of the analysisoptionchoice table, useful for integrations where rows are deleted and recreated often.
- Added: schema support for static url type of dashboard items
Edocuments
- Fixed: (case 34762) an issue where nested sub-reports might not generate correctly due to a recent change that caused unknown variables in a template to be replaced with empty strings. Now, unknown variables are left alone when building subreports, but cleared out in the final pass.
Location:
- Added (Case 12601) : Visualizations now support grouping by day, week, month and year.
- Added (Case 34858) : Added a slider for custom timing on location visualization animations.
Login
- Added: support for a permission for managing other users' saved searches.
Master
- Added: (case 35221) to fix crashes and other image issues, the image library is now initialized just once on application initialization and cleaned up just once on application close.
Report Viewer
- Removed: (case 33111) the user can no longer 'uncheck' date parameters when printing reports. Now, date parameters without defaults will show a default value of the current date and the user can change the value, but cannot uncheck it. This solves issues where it was unclear that when the user unchecked a date parameter, the default date was used instead. The new process should be more explicit and clear.
Sampling
- Added: (case 33111) a saved searches page, which will allow the user to save and load favorite searches and share them with other users.
- Added: most search filters can now be correctly saved to a saved search.
- Added: support for loading saved searches back onto the screen.
- Added: all date range filters are now saved 'relative' to the current date.
- Changed: all filters now show a user-friendly label. Also, all options being shown that have no filter on them are suppressed in the default user description.
- Added: save search button to the search page. Also, the saved search page is now the first place the user is taken.
- Added (Case 34345) : We now have support for searching via batch.
- Added (Case 29366) : Added work order title column to sampling history results when work order details is checked.
- Fixed (Case 33745) : Only sending analysis options to the visualization screen that are selected, not all that are a part of that sample.
- Fixed (Case 33745) : Saved searches that contain batch now load batch correctly
- Fixed (Case 33745) : Layout no longers overlaps and cannot be resized to hide search buttons.
- Changed: product batch searches should now filter the graph correctly.
- Fixed: an issue where doing a search and displaying a graph, then doing another search, would not update the graph correctly.
Work Orders
- Fixed: an unnecessary 'error' beep that would happen when the user loaded a WO with a product batch selected.
Version 3.1
PS Change log version 3.1 REVISION 20664-20834 database version 310
Analysis
- Added: the check thresholds dialog now has support for batch based thresholds.
- Added: (case 30665) all the configuration pages on the analysis management screen can now be viewed even if the user does not have permission to edit those things. Instead, if they select one of those plants, they will see read-only information.
- Fixed: the analysis scheduling page no longer shows severity classes from plants other than the one that is selected.
Crystal Reports Extension
- Changed: printer lists in the software are now displayed in alphabetical order.
- Fixed: an issue where printer handles were not being cleaned up.
- Added: (case 33904) support for report parameters of type 'SQL Clause'. These are not escaped before they are passed to Crystal reports, allowing certain reports to print correctly still.
- Added: support for SQL Clause option in the parameter type dropdown.
Common Resources
- Added: the configure analyses page now suppresses any thresholds and choices that have a product batch associated.
- Added: (case 30665) analysis configuration page now allows the user to view read-only analyses for plants they cannot edit at.
- Changed: the view/edit option default popup can now be in read-only mode (useful for when a the user wants to test a default formula for options they cannot edit).
Configuration
- Added: each work order type can now say whether product batches are allowed (Show), not allowed (Hide), or necessary (Require) for work orders of that type.
Database
- Added: (case 27982) support for an optional location on product batches.
- Added: support for work order product batches to be considered as part of value acceptabilities.
- Added: 2 new permissions relating to setting batches on WOs. Neither are granted to existing users by default.
- Added: (case 27982) support for work order types that specify whether product batches are required or allowed on work orders.
- Added: support for report parameters that are put directly into queries and should not be escaped.
- Fixed: an issue where some databases did not have a unique index on a couple mapping tables because they had duplicate entries in those tables. The duplicates have been removed, and unique indices added.
- Fixed: an issue where documentfile couldn't be created on some MySQL database versions. The table creation is now more explicit and should not have an error.
Master
- Added: support for application-wide messagebox callbacks to be set and invoked.
- Fixed: an issue where, if a computer was set up to capture crash dumps, but not transmit them, they were still transmitted.
- Fixed: an issue where, if crash dumps were set to "Full", they were adding in information that could cause them to appear to be corrupted.
Products
- Added: (case 27982) the product filter now allows filtering by product batches' batch #'s.
- Added: (optional) location to product batches.
- Fixed: batch locations now load correctly.
- Added: if the user chooses to configure a batch on the work order screen, (if possible) that plant/product/batch is selected on the products screen.
- Added: when the user is 'editing' a batch, coming from the WO screen, the correct product and plant will now be selected first.
- Fixed: an issue where copying and pasting a batch between plants might keep the old plant's location. Now, a location with the same name at the new plant will be selected, if possible.
Report Viewer
- Added: (case 34190) an issue where the report viewer screen might not allow good view of the parameter list at screen resolutions below the minimum supported application resolution.
Sampling History
- Fixed (Case: 29364): Expiration date values are encoded correctly for JSON and URL export.
- Fixed (Case: 29364): Fixed issues with the new filters not passing to graphing successfully.
ITSQLFramework
- Added: the error reporting dialog now writes its queries out to the main database log, without overwriting the main query log.
- Added: queries run as part of reporting errors to the error reporting database will now be logged in the main query log. This will improve debugging future issues with error reporting. In addition, any errors received while performing these queries will now write those errors out to the log.
- Fixed: the application could sometimes take a particularly long time to open if the database credentials were incorrect.
Work Orders
- Added: support for choosing a top-level batch for the entire WO.
- Added: a "configure batch" button that will take the user to the batch configuration area.
- Added: when adding a new sample to a document with a batch selected, the product/location associated with that batch will automatically be applied to the sample.
- Changed: the batch dropdown is now filtered to only those active batches at the current plant associated with products that the user could add to the current document.
- Added: support for batch-specific choices in choice dropdowns.
- Added: changing product batch on a work order now refreshes the options in all dropdowns, in case there are any batch-specific choices.
- Added: there is now a permission required for setting an initial batch on a work order.
- Added: there is now a permission required for changing an existing batch on a work order.
- Added: the current work order type now dictates whether the product batch dropdown is visible and whether a value is required to be filled out before saving.
- Fixed: a crash when saving if a new sample has no analysis selected.
- Removed: duplicate error popups during save.
- Fixed: (case 34121) previously, if the user saved a WO after viewing the change log page, the change log contents would be refreshed from the database twice, which could take a long time on some databases. Now, if the user is saving and closing, no reload will happen; if the user is saving and not closing the WO, the data is reloaded only once.
Version 3.0
PS Change log version 3.0 REVISION 19972-20675 database version 300
Tools
- Added: all TrimTrailingZeros calls now have an argument that can specify whether the string argument is a locale string or a raw string. This solves some scenarios where raw strings were being assumed to be locale strings and were being incorrectly parsed.
- Fixed: a crash (release mode only) when using an ITVector in a LoadMultiple operation when using SO_ImpLoadMultiple due to iterator invalidation.
- Changed: ITDecimalNumbers now use bigint version 10.2, which now supports 64 bit integers better.
- Performance: ITDecimalNumbers now load faster in most scenarios.
- Changed: ITDecimalNumber::operator/ no longer rounds the result to the lowest of the inputs' precisions. When dividing by a whole number, this generally just rounded to a whole number. Now, the precision is the sum of the inputs plus one, so 10 / 3 is 3.3.
- Fixed: an issue where ITDecimalNumber::GetDatabaseString was not trimming trailing zeroes correctly, depending on the user locale settings.
- Changed: ITDragStatics now track the 'desired' offset separately from the current/UI offset. This solves a common issue where dialogs are initially small and then resized larger, causing the last desired position to be forgotten.
- Changed: (case 31994) drag statics can now no longer chain move operations, which can cause stack overflow on some machines.
- Fixed: (case 32117) an issue where viewing enough images in attachment managers over time could cause a crash, depending on the windows per-process GDI object count.
- Reconfigured: all "Configure" menu options have been sorted into the "Edit" menu, as they were redundant. Edit->Options has been removed and its constituent pages have been moved to reasonable Edit submenus.
- Added: icons for various Edit menus that did not have them previously.
- Fixed: some issues with menus not being active/inactive at the right times of login.
- Updated: (case 32836) the version of curl/SSL/zlib we use for contacting the update server has been upgraded. This adds support for the more modern TLS 1.2 and 1.3 SSL encryption. For this reason, there is a new file (zlib1.dll) that is required by the application.
- Fixed: an issue where lists could crash when the user put focus into a dropdown with no auto-complete registered.
- Fixed: dozens of potential crashes on all screens that could be caused by financial numbers.
- Fixed: an issue where ITDateTimeCtrl::SetFormat could get stuck in an infinite loop.
- Fixed: an issue where combos could crash if they were destroyed while the user was killing leaving an auto-complete edit.
- Added: the third party image library has been rebuilt to add debugging features to try to debug crashes related to image viewing.
- Fixed: Case 31059 a misspelling of an item in the extension list. The incorrect setting will be removed and the correct setting will be added on the next update.
Registration
- Changed: Case 31058 it is now easier to copy out of, paste into, and type into the registration code.
- Added: better exception handling for crashes.
Analysis
- Added: Case 28444 when the user enters a option value or threshold for text or choice options, all trailing whitespace will be removed.
- Fixed: Case 33523 an issue where an incorrect severity class would be used when inspecting value acceptability if a location was chosen.
Common resources
- Fixed: Case 33523 an issue where switching plants then choosing a location that exists at the previous plant as well may silently save the sample with the previous plant's location.
Configuration
- Added: configure->plants now saves in a single transaction so that an unexpected error or interruption won't lead to a partial change.
- Fixed: an issue where resetting the Configure->Settings page wouldn't correctly roll back the changes and the current selection in the list would be lost.
- Performance: saving after configuring users will no longer take a long time if the list of users is very long.
- Added: saving changes to users is now a transaction, so if there are any issues, all changes will be rolled back, and the user will be able to try again.
- Fixed: an issue where the user permissions page could throw database errors.
- Fixed: the timezone shown in the session area in the corner of the system is now shown before the user logs in. Also, instead of showing SYSTEM as the default timezone, an accurate timezone will be shown.
- Fixed: if the user gets an error while saving changes to users, re-attempting the save should now correctly retry the save operation.
- Fixed: a database error and crash that could occur if the database connection could not be established.
- Changed: if a database connection could not be established, the connection timezone will now display as Unknown.
Database
- Fixed: e_failed_data_clone_reporter now correctly inspects recent logs using server timestamps.
- Added: f_get_plant_time_zone, a new function that can be used as part of reports that wish to display dates in plant timezones.
- Fixed: Case 31219 an issue where warnings were being unnecessarily logged to the mysql error log in some versions of MySQL.
- Changed: setting types have been turned into an enum, as it only accepts certain values and this takes less space.
- Fixed: Case 31491 an issue where multiple users subscribed to nightly reports might cause all such users to get multiple emails.
- Fixed: an issue where alert filters might not always work right if there were a lot of items to examine for the filters.
- Fixed: Case 31491 an issue where one schedule could fire alerts for a different schedule.
- Removed: a possible issue where p_alert_trigger was called for schedules that were not being triggered in the current period.
- Added: tables for tracking document management, their attachments, and plants.
- Changed: Case 32405 deactivated thresholds now correctly show an "Applicability" of "Deactivated". This should make the "what thresholds apply" popups clearer when it comes to deactivated thresholds.
- Added: the event that checks to ensure that data clone operations did not fail now attaches the name of the database it ran from if an unknown error occurs.
- Added: stored procedures for showing SOP documents on mobile devices.
- Fixed: yearly data clone rules will no longer throw a database error.
- Fixed: possible issues with right-click graphing due to bad escape characters in the last version.
- Performance: Case 33255 locations that have millions of rows in their print queue history now take .2s to load print history on the report viewer screen instead of 8s.
- Fixed: Case 33304 certain issues that could occur on MySQL 5.7 since CAST operations would throw errors instead of returning NULL.
- Fixed: the before insert trigger on option values now handles invalid statuses correctly.
- Added: reportqueuesummary table, which is kept up to date as print jobs are executed. This makes loading print history meta data faster in the report viewer screen.
- Added: support for Currency report parameters.
- Added: Case 32569 new tables for managing user dashboards.
- Added: Case 27982 the new productbatch table, which will soon accommodate product batches.
- Added: productbatchid to workorders.
- Fixed: e_extend_schedules had an error in it that was causing it to fail.
- Fixed: an issue where the check acceptability popup would display "Wrong severity class" when "Wrong plant" seems more appropriate.
Crystal Reports Extension
- Added: Case 31106 if report parameters have 'defaults' and are not specified by a print job, those defaults will now automatically be passed to the report to be printed.
- Added: saving modifications to reports now happens in a single transaction so that an unexpected error or interruption won't lead to a partial modification.
- Fixed: Case 31379 an issue where some parameters would go into the print queue in user visible formatting instead of 'raw' formatting. This means that if the user was emailing or delaying a print, it might fail if the user's date/datetime/number locale formatting was different enough from what crystal was expecting. Now, all print jobs log parameters as 'raw' numbers and dates.
- Changed: the Edit->reports option is now under Edit->Global Preferences->Reports so that users don't get confused with editing their printer options.
- Added: (case 32992) string parameters sent to crystal reports now escape certain wildcard and string characters that could cause errors when printing.
- Added: (case 33260) Crystal "Number" parameter types now support fractional values up to 6 digits of precision.
- Added: support for Crystal "Currency" parameters.
Documents
- Added: Case 19345 a new screen for management of documents, and associating them with plants, products, etc.
- Added: various extra columns to the attachments area.
- Added: a basic version of the document associations tab now saves and loads. The user can choose various filters, and they should narrow down by plant now.
- Added: support for notes on each version of a document.
- Added: 'mobile friendly' checkbox to documents. If this is checked, and the active document version is not mobile friendly, the user is warned.
- Added: optional review date to the document info.
- Changed: association rules now cannot choose a severity class unless a plant is chosen.
- Added: tooltip text to various fields on the document detail page.
- Added: attention icon to document versions. One icon will show the 'active' version (newest file that is approved and has its effective date passed). Another icon shows which attachments are mobile friendly.
- Added: a description of the screen to the document version screen.
EDocuments
- Changed: any document parameters (like {?table.field}) that could not be found are now replaced with an empty string instead of being left in.
Home
- Added: support for {?session_token} as part of the home screen URL template. The default for the home screen URL now includes the {?session_token} as part of the template.
ITrack Online
- Added: a new global hotkey for opening a given URL in the internal browser. The default hotkey is F12.
- Added: support for opening a given web page while sending POST and HEADER data along with. This is useful for some internal web page operations.
- Added: if a URL is opened that requires additional data to be sent, and ITrack Online cannot be found, the user is shown a more specific error. More info is sent along with all web errors.
- Added: if a URL is opened that requires the internal browser and the browser type is set to something other than "Internal", Internal will still be used.
- Changed: (case 5938) to accommodate the module in different products, this module has been renamed just "Online" in the application.
- Added: support for OpenURL requests to force in an external browser, useful for launching a web page from a modal popup.
- Fixed: (case 32040) an issue where data would not be passed to the internal shipping app correctly.
- Changed: when building a POST request, key/value pairs are now encoded with CURL, as the previous methods did not encode correctly.
- Fixed: an issue where the last piece of data passed to a web page through a POST request would be left off.
Login
- Fixed: an issue where the plant dropdown was not in the tab order correctly.
- Changed: f_get_value_acceptability and p_check_applicable_thresholds no longer use the first severity class at a plant if no default is selected. This should make severity class based thresholds more easy to understand.
- Added: new permission for controlling management of the new product batches.
- Added: analysisoptionchoice (option thresholds) now has an optional product batch.
- Added: testing option values for acceptability now considers optional product batch.
Master
- Changed: when updater.exe is downloaded, it is applied with a move file instead of a copy file so that the old file is not kept around.
- Added: the database update downloader will write the file Updates/UpdateQueryList.sql with all the queries that were parsed out of the main database update file for debugging purposes.
- Fixed: an issue where a comprehensive database update would not correctly handle version tags unless they were all uppercase. Now, version tags are case insensitive.
- Fixed: (case 33445) an issue introduced by recent windows changes where crashes were not causing any error popups. Now, the original behavior should be restored.
- Added: double-clicking the updater status area will now always show the updater detail popup, even if there are not updates to apply.
- Changed: if there are no updates to apply, the update downloader dialog will no longer show an apply button.
- Changed: the update downloader no longer cuts off part of the "do you want to restart to apply updates" message. It now also says how many updates need to be applied.
- Added: (case 33086) new types of crashes and unexpected behavior are now caught by the application and reported with the error reporter.
- Added: if no debugger is attached, the Debug button is now hidden in the error report popup.
- Added: now, crashes that happen anywhere in the application should be reported to the user. Before, depending on what was happening, they could be missed, causing the application to just close.
- Added: if the user gets a crash or other unexpected termination of the application, a .dmp file and a .png file are written to the %TEMP%/ITrack/CrashDumps directory. This file should help ISoft debug the crash.
- Added: when a crash cannot be recovered from, the "Ignore" button on the popup should now be hidden.
- Added: new ini settings that control the crash dump information that is generated and uploaded to the ISoft servers:
- "errorreporting" -> "crash_dump_generation" -> valid values: "small", "full", "none". The default is small, which generates minimal mini-dumps (generally about 9KB), full generates full crash dumps, which can be closer to 1MB after compression.
- "errorreporting" -> "send_crash_dumps" (default True). If true, the crash dump file specified above will be transmitted to ISoft servers in addition to saving the file locally.
- "errorreporting" -> "send_crash_screenshots" (default True). If true, an 'at crash time' screenshot will be generated and transmitted to ISoft servers in addition to saving the file locally.
- Added: if the user experiences crashes but cannot upload those crashes, they will now be logged to a errorlog.xml file that is saved in the %TEMP% directory, like the crash dump files. When ITrack is launched, these queued error reports will be uploaded, including crash dump files and screenshots.
- Fixed: some minor issues with printing the application screenshots.
MySQL Connection
- Performance: checking to see whether the database connection is live no longer attempts to connect if the config is invalid. This makes application startup slightly faster.
- Changed: START TRANSACTION; COMMIT; and ROLLBACK; are now always written to the log. They were not always logged before. Also local date/time stamp of occurrence should be consistent with other queries.
- Fixed: Case 31215 an issue where the user could get a database error and hit 'retry' in the middle of a transaction (such as document save). This is not safe because retry won't retry the queries before that one. Now, if the user gets an error in the middle of a transaction, the only option will be "Ignore" (meaning continue). They will generally have the entire transaction rolled back and they can retry by hitting save again.
- Fixed: Case 31144 an issue where we were not correctly suppressing mysql auto-reconnect behavior. This was supposed to be disabled for Case 31144 to catch implicit reconnects in the middle of a transaction (causing a rollback). This confusion lead to session variables such as @ITRACK_USER_ID and the connection timezone to not get properly reset on reconnect, leading to issues in the logs or other areas that rely on these settings.
- Changed: the "database connection failed, do you want to configure?" popup is now phrased more precisely.
- Added: (case 33025) previous save status now gets set back to None at the end of a save operation (Commit or Rollback) as well as Clear to avoid an issue where attempting to save after calling Rollback might cause a new object to be created.
- Fixed: a possible unhandled exception crash that could occur if the user could not connect to the database.
- Changed: if a query fails because of no connection, it will no longer try 3 times if reconnecting fails. This should speed up queries failing due to no database connection.
Products
- Added: new product batch page. This area allows a user to add or edit plant specific batches to a product which can optionally have an expiration date. Soon, specifications will be able to reference specific batches.
- Added: product batch screen now has an embedded copy of the product specifications tab. In this pane, the user will see all specifications that reference that product batch.
- Added: copy/paste product batch buttons. There is also a Paste With Specifications button that will also copy all specifications on the original product batch.
- Added: show/hide inactive batches filter check.
Report Viewer
- Fixed: a memory leak caused by reprinting reports from the print queue.
SamplingHistory
- Fixed Case 29364: Added filtering for expiration dates and lot numbers on recipe analysis options.
- Added: Case 30664 a print button that allows the user to print the selected analysis options for the currently visible search results.
- Added: session_token to the graphing URL. This will be involved with upcoming security changes.
- Fixed: an issue where the Apply button could 'float' over the result list if the user had permission to change samples on the sampling history screen.
- Fixed (Case: 29364): Expiration date filters now require both dates to be set. If one is unchecked, both will be cleared. If one is filled out and the other is blank, it will be copied into the blank field.
- Fixed (Case: 29364): Expiration date values are encoded correctly for JSON and URL export.
Settings Framework
- Added: filter to the Settings page of the configuration screen.
- Performance: Case 33255 loading aggregate print history on the report viewer screen is now much faster.
SQL Framework
- Added: tools for screens to easily retry an entire transaction in the case of deadlocks or lock wait timeouts.
- Added: support for turning off auto-retry at the database connection level. This is useful when retrying transactions manually.
- Added: transaction tools now turn off auto-retry so that we can retry at the transaction level. Failures that cause a transaction auto-retry are now logged to the query log just like automatically retried queries.
- Changed: the debug button is now tied exclusively to whether a debugger is attached to the process. This allows debugging crashes in release mode.
- Added: if crash dumps or crash screenshots are generated as part of a crash, they are now uploaded to our error database as part of the error report.
Work Orders
- Added: Case 28444 when the user enters a option value or threshold for text or choice options, all trailing whitespace will be removed.
- Changed: when setting the timezone of a WO clone rule, if the connection timezone is set to SYSTEM, the timezone that gets saved will now be the true timezone.
- Added: if no work order type is selected, the screen now tells the user that that is required instead of throwing a database error.
- Fixed: overactive change detection that would occur when saving a new WO (the user would be asked if they wanted to save right after the save completed).
- Fixed: an issue where date created was not a readonly field even though the user could not change it.
Version 2.8
REVISION 19703-19971 database version 280
Master
- Changed: the error reporting system now formats Windows COM errors in a more easy to understand format. These errors could be reported by partner applications, such as QuickBooks, VINPower, and Crystal Reports.
- Added: company code box to the about box. There is also a 'copy to clipboard' button next to it.
- Changed: product code was renamed to workstation code and has become an edit for easy copying. There is now a 'copy to clipboard' button next to it.
- Added: the About dialog now has field and column tooltips.
- Added: the about dialog now has a 'updater version' column that shows the version of each module for the current install according to the versionlist table.
- Added: the about dialog now saves and loads its last known position.
- Changed: the query log will now have a default comment style and automatically run reconnect queries across all products. Previously, they were not run until the login dialog was displayed.
- Added: the queries that are run automatically when the database connection is established (or reestablished) are now logged to the query log.
- Performance: minor efficiency gains every time a query is run.
- Added: the status bar now has a couple more areas designed to store information about the site the user is logged into as well as the timezone of the connection. This is useful for scenarios where users are logging into systems in the cloud, or into sites with different timezone settings.
- Changed: before logging in for the first time, the site and timzone indicators will now correctly get reset.
- Fixed: a crash that could happen when the user attempted to change a status pane.
- Changed: reconnect queries are only run once less when the application launches.
- Added: support for retrieving the current database connection time (or current system time if no database connection could be found). This is used by date/time pickers across the software as the 'default' date/time to show.
- Fixed: Case 29841 a bug where the mysql parsing logic would break if a string enclosed by double-quotes contained a single quote, breaking subsequent DELIMITER statements.
- Fixed: an issue where a double-quote enclosed string containing unescaped single quotes could cause issues, as the string would be changed to single quotes.
MySQL Connection
- Changed: increased the number of times the database connection will automatically retry a query due to a server disconnect to twice instead of once.
- Added: Case 29287 basic support for getting/setting a connection timezone on the database connection.
- Fixed: an issue where reconnect queries could be run before the connection was established.
- Added: GetConnectionTime, which returns the current timestamp, according to the server. This will be useful when comparing local timestamps to saved server timestamps and saving objects with the correct time, despite computers in different timezones.
- Performance: to make code faster, when we get a connection time, the UTC offset is cached for calculating subsequent connection times. This offset is recalculating any time the hour changes or the connection timezone is changed.
Crystal Reports Extension
- Added: when adding a report from a file, the user visible report name and parameter names now automatically format more human readable forms, using our database dictionary. Spaces are automatically added between capital letters.
- Fixed: Case 24372 an issue where report descriptions with newlines would sometimes be turned into two line breaks.
- Fixed: version was not being exported with the report.
- Added: Case 24372 a DELETE statement is run to remove all parameters that are not in the current list, to possibly remove historic unused parameters.
- Added: support for setting logging timestamps based on connection timezone in those cases where its different than local timezone.
- Changed: if a date/time parameter being sent during a print job is invalid, the current connection time will be sent instead of the current local system time.
- Changed: Case 29286 all datetime values passed to Crystal Reports as report parameters are now converted from the timezone of the local database connection to the timezone of the server, as that is what the crystal report will be querying in. This should avoid any misunderstandings in situations where these are in different timezones.
- Fixed: Case 30331 an issue where numbers with thousands separators were not being sent to print jobs correctly.
Common Resources
- Fixed: an issue where the next/previous page buttons in the log viewer didn't work.
- Changed: Case 29948 the log viewer now attempts to find child objects using parentrowid instead of looking for objects by inserted row, as that can be much slower.
Data Management
- Added: the column order/widths for the field tree and 'todo' list now load and save.
- Added: Case 5432 import type fields now have a 'rank' for ordering fields by something other than display name.
SQL Framework
- Added: The ability to set what type of 'connection times' returned to the application. By default, it uses 'local time' which is being used for all products that are not ready to have timezones controlled by the database yet.
- Added: the ability to convert from date/times in the connection timezone to date/times in the server timezone as well as UTC+0 time (GMT timezone)
- Performance: refactored the way normal queries are run to make the common case fast (running queries on the default connection no longer requires a lookup).
Common Resources
- Fixed: Case 29700 options that are not continuous (such as text, choice, or boolean) now allow the user to choose between Equals and Not Equals in the value constraint dropdown. Also, the constraint that applies to a required option now hides the Above and Below options for discrete option types (text, choice, boolean).
Product
- Fixed: Case 29700 specifications on options that are not continuous (such as text, choice, or boolean) now allow the user to choose between Equals and Not Equals in the value constraint dropdown. Also, the constraint that applies to a required option now hides the Above and Below options for discrete option types (text, choice, boolean).
- Fixed: Case 30030 an issue where the user could enter specifications that were dependent on choice options above or below a specified value, despite the fact that equals and not equals are the only options.
Database
- Fixed: Case 29444 analysisoptionvalue.filledout gets set to NOW() if values are copied during a clone
- Added: database version 2.7.1, which releases several new database logging triggers.
- Fixed: an issue where text and choice options could have > or < comparisons in the previous version, though its not allowed anymore.
- Fixed: version 2.6 was not correctly changing the ARCHIVE_log_change table to engine=archive due to a missing index. This is being done again to help customers save hdd space.
- Added: Case 29948 a new column to the log called parentrowid. This is designed to make lookups faster. Finding entries by the document they were attached to is now possible.
- Changed: parentrowid has been set retroactively for all samples and analysisoptionvalues.
- Changed: Case 29286 many database columns that were date-times have been changed into TIMESTAMP columns.
- Fixed: f_get_last_referenced_schedule_instance was using tinyint for its return type, causing it to not work correctly.
- Changed: the procedure and event that populate schedule instances are now timezone aware.
- Changed: Case 30279 the event that reports failures in data clones now waits an hour before sending failure emails.
- Added: dataclone records now store the timezone of the user that specified what time of day to schedule the clone operation for.
- Changed: f_get_next_schedule_date now takes the timezone of the dataclone entry into account when scheduling.
- Added: plant.timezone, a new field to track what timezone a plant prefers to display and enter values in.
- Changed: scheduleinstance is now using timestamps instead of DATETIMEs, and an unused column has been dropped.
- Changed: many events have been modified to use TIMESTAMPs instead of DATETIME values wherever possible.
- Changed: p_clone_scheduled_data now uses the existing f_get_next_data_clone_date to see whether to clone the data during a single trigger execution. This should resolve any issues where the reported 'next execution date/time' and the time the data is cloned would disagree. This also makes the process respect plant timezone selections.
- Fixed: e_failed_data_clone_reporter now correctly inspects recent logs using server timestamps.
- Added: f_get_plant_time_zone, a new function that can be used as part of reports that wish to display dates in plant timezones.
Analysis
- Fixed: Case 30030 an issue where the user could enter text/choice/boolean option specifications that would be above or below a specific value.
- Fixed: an issue where some dropdowns in the specifications list would grow larger as the user clicked into them again.
- Changed: schedules now use current connection time instead of local time (for those cases when they're in different timezones).
- Changed: in order to avoid issues with start date and end date due to timezones, the time of day to start the schedule on is now required.
Home
- Changed: when loading WOs and samples, now only analyses required to display entries is loaded. This makes the home screen faster for plants with huge numbers of thresholds or analyses.
- Changed: to match mobile, the 'blue' work orders will now be work orders due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing.
Login
- Added: Case 29287 support for setting the connection timezone based on the timezone of the plant the user chooses to log into.
- Changed: when the user attempts to login, all saved login attempts and password reset tokens will be properly set and compared, no matter what the time and timezone of the local machine is. These operations will now use server time.
Configuration
- Added: configure->plants dialog now has a field for choosing the timezone for each plant.
- Changed: configure->plants popup now has tooltips on the controls.
Work Orders
- Added: timezone column to the automatic work order cloning interface. This field defaults to the current plant time-zone.
- Changed: scheduling an automatic WO now uses the timezone of the plant the work order is at.
- Changed: work orders now use current connection time instead of local time (for those cases when they're in different timezones).
- Changed: in automatic WO scheduling, the 'blue' work orders will now be work orders due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing.
- Fixed: an issue where the automatic WOs page wouldn't empty previous results if the user did another search.
- Fixed: Case 30723 an issue where a user could not choose a default analysis for a work order type unless that analysis was in use at plant # 1.
Investigation
- Changed: in investigation history, the 'blue' documents will now be the documents due in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing.
Suppliers
- Changed: for supplier attachments, the 'blue' documents will now be the documents expiring in the next 24 hours instead of later the same day. This will allow users in every timezone to see the same thing.
Graphing
- Changed: Case 29286 the datetime values passed back and forth for sample graphing are now in UTC times so as to avoid any ambiguity for graphing.
Controls
- Added: all date/time pickers now default to the current date/time of the default database connection instead of the local system time.
Version 2.7
REVISION 19408-19702 database version 270
General:
- Added: (case 28363) support for European style numbers and currency figures. Mainly, if the user's windows settings are set to use comma instead of period for the decimal separator, the software will correctly read and display figures.
- Changed: made function calls more specific to distinguish between operations that operate on raw numeric strings, user formatted numeric strings, and database strings.
- Added: various locale currency and number API functions for reading windows API locale settings.
CommonResources:
- Added: the analysis management screen now supports a "Not Equal" constraint both for thresholds as well as dependent choice options.
- Changed: renamed the "N/A" constraint to Equals, as that is what it was being treated as.
- Added: numeric options now support Equal and Not Equal for constraints.
Database:
- Fixed: (case 28043) p_configure_logs now ensures that the logs will allow entries from scheduler events.
- Added: (case 27676) analysisoptionchoice now supports Not Equal for thresholds as well as dependent choice options.
- Added: f_get_value_violates_rule. This function does the work of comparing a value to a threshold, including casting the values to native types. This now supports Equal and Not Equal for all data types.
- Changed: p_check_applicable_thresholds has been greatly simplified and now uses the same code f_check_value_acceptability does, eliminating situations where they disagree.
- Changed: f_find_applicable_thresholds now supports the new Not Equal relationship.
- Changed: f_get_value_acceptability now supports Equal and Not Equal for all data types.
- Fixed: f_get_value_acceptability was treating Date Times as Dates when comparing them. This would've thrown off the acceptability comparisons they made.
- Changed: (case 27675) 'auto-close investigation' has been replaced with the defaultstatus for an investigation rule. This way, the user can specify whether automatically closed investigations are ignored, cancelled, closed, etc.
- Added: (case 27675) support for investigations having a status of Ignored. This is useful for investigations created just to send an alert.
- Fixed: p_cache_all_option_correlations no longer runs expensive calculations of a system is not configured with correlations in mind. This should improve database speed.
- Fixed: an issue where the data clone failure notification event could fail if there was more than 64Kb of failures to report.
- Added: (case 25176) the ability to tie an alertsubscription to a specific investigation trigger id.
- Added: if an investigation rule is deleted, any corresponding alert subscriptions now get deactivated automatically.
- Added: (case 25176) support for alert subscription rules that will only fire for investigations created by a specific investigation rule.
DataManagement:
- Changed: the database that backup tables are created in now defaults to the current database instead of `backup_importer`. This is because not all customer setups are able to create or put tables into other databases.
Investigation:
- Fixed: (case 27648) the results column in the investigation screen now shows the option value that caused an investigation (if it was triggered by a rule) instead of just the failed values.
- Added: (case 27675) support for investigations in a status of 'Ignored'. This can be used for investigations that are created just to send alerts. By default, the investigation search hides these ignored investigations.
- Added: the auto-close investigation checkbox on investigation rules has been replaced with a default status column, which allows the user to specify whether automatic investigations start Closed, Open, Ignored, or Cancelled.
- Added: (case 25176) if a user deletes an investigation rule, they are now notified that any alert subscriptions that are 'listening' to that particular investigation rule (if any) will be automatically deactivated.
libITSQLFramework:
- Fixed: an issue where the 'footer' of a query in the query log would be written sometimes after another query run in order to report the error.
- Added: (case 28838) if a mysql connection gets a lockwait timeout error (1205) the query in question will automatically be silently retried up to 2 times before the user is presented with an error report. This should result in the user seeing fewer of these errors, though it does not necessarily make the error itself more rare. Auto-retry is MySQL's suggested error handling method in these cases.
- Added: (case 28838) if a mysql connection gets a deadlock error (1213), the query will automatically be silently retried up to 2 times before the user is presented with an error report. Unfortunately, this will not happen on queries that are in the middle of another transaction. This is because deadlocks automatically roll back the entire transaction, requiring the operation be retried.
- Added: query errors are now logged to the query log. Also, auto-retries and auto-reconnect operations get a special log entry for better debugging.
Login:
- Added: (case 28838) support for a special debugging mode in the database.
Master:
- Added: the RemoveInitSetting function now returns the last found value before deleting it. This allows a relatively common case where we take the value from an ini setting as we delete it an move it into a database setting.
ReportViewer:
- Fixed: a possible crash that could occur when previewing a report if some very rare memory issues happened.
Updater:
- Fixed: (case 28086) an issue where a query that was missing a close parentheses ")" could keep subsequent queries from being parsed correctly, even though it had a semicolon.
- Fixed: an issue where an open, unclosed parenthesis might disrupt the rest of the parse if it was in a function definition.
- Added: in debug mode, Master will now write all script files to the updates directory. In addition, the intermediate query string is written to ComprehensiveUpdate.sql and the parsed query list is written to UpdateQueryList.sql
Control Chart
- Added: (case 28699) option to group datapoints by "none"
- Changed: (case 28699) font size on test failures and deviation namers to the right of each graph to allow space for larger numbers
- Added: (case 28699) a datapoint limit before the graph suppresses (999 - though it starts to look cluttered after 50)
- Changed: (case 28699) control lines are now thicker and do not have datapoints at each end
- Fixed: (case 28699) tests were always showing 'Pass' when grouping by 'None'
Version 2.6
REV 19095-19407 Q3 2017 release 2.6 database version 260
General:
- Performance: slight speed increases when adding rows and columns to a list control.
- Fixed: (case 27068) an issue where changes to a dropdown in a list control could cause columns to be added or removed from a list could cause a crash.
- Changed: (case 26939) the default line coloration in all products now use a darker, greyer, less green color instead of the previous, lighter green. This should help resolve some of the issues users are having with visual fatigue and/or issues with low-contrast for colorblind individuals.
- Fixed: (case 27250) a freeze caused by calling GetLastVisibleItem on a CTreeCtrl in some scenarios. This only seemed to happen when deleting items from the tree ctrl when there was enough items in the tree to require scroll bars.
- Changed: double-clicking a column header resizes the column to minimum width including data and the header name now.
- Fixed: resizing a column that contained icons but had right-aligned text was incorrectly making the desired column width very large.
- Fixed: an issue where setting focus into an ITListCtrl after hitting a search button or tabbing in would scroll to the right side of the item instead of the left.
- Fixed: (case 27649) an issue where non-locked tree controls would not draw correctly after the user expanded or collapsed an item.
Analysis:
- Fixed: (case 27052) an issue where the user was prompted to fill out the 'empty' item on the "Analysis Scheduling" tab, keeping the user from saving the screen if they ever opened that tab of the screen.
- Added: support for a new argument when calculating value acceptability in the 'check thresholds' popup.
CrystalReports:
- Changed: as per user request, the "remember printer choice" checkbox now always defaults to unchecked. This should only have significant impact on new users, who have no previous printer selections. Said users will have to manually check 'remember printer choice'.
Configuration:
- Fixed: (case 27588) configure->reports now correctly uploads the report file when you add a new report.
CommonResources:
- Added: (case 22293) a new 'change log page' which has all the required functionality to display entries in the audit log tables for a specified table and its child tables.
- Fixed: sometimes choosing an analysis on a sample, then adding another blank sample could add empty option columns that were not useful.
- Fixed: (case 27068) a crash that could occur when choosing an analysis type.
- Fixed: (case 27068) analyses that were not in use at the current plant (or were inactive) were being shown in the analysis dropdown, despite the fact that they could not be chosen.
- Fixed: (case 27273) an issue where saving a WO whose type allows 'Both' Ingredients as well as Products might keep clearing out all the product choices on save.
- Changed: the change log page has a row id as well as a row description to make it easier to tell what changed.
- Added: a new checkbox near the change log detail: "Show historical value for unmodified fields". It is checked by default, and it shows other fields for that row that were NOT modified, and the values shown are whatever the values were at that moment in time, according to the logs. All fields that were not modified are greyed out.
- Added: colorization to updates/inserts/deletes.
- Fixed: the from/to date pickers in the change log now correctly set the dropdown to Custom if they are changed.
- Added: (case 27256) a new icon that displays next to any option value if that option value has been edited from the first value that was saved.
- Changed: the label and acceptability columns in the sampling detail interface now have a grey background to show that they are read only.
- Added: (case 21713) the analysis and recipe management pages now have a field for filtering displayed items based on name, category, or option name.
Database:
- Added: the useraccess table now has a user account id for the currently logged in user. This can be different than the other user account if an administrator performs an override for another user.
- Changed: analysisoptionvalue.lot is now varchar(25) instead of unsigned integer to allow for alpha-numeric input.
- Fixed: an issue where f_get_report_printer was ignoring the report type argument.
- Fixed: p_backup_table now does INSERT IGNORE to avoid primary key collisions.
- Fixed: (case 27284) scheduled reports now allow more recipients (longer email destination field)
- Added: (case 26378) emailbcc column to the reportmassmailtemplate and reportqueue tables.
- Changed: the ARCHIVE_log_change and ARCHIVE_log_changegroup tables now use the ARCHIVE engine, trimming 90% of hard-drive consumption for those tables.
- Added: ARCHIVE_log_change and ARCHIVE_log_changegroup tables are now created if they didn't exist before.
- Added: e_archive_change_logs event, which weekly archives all log entries that are at least 1 year old. This even existed only on some databases, and generally had a shorter time limit (4 weeks for example).
- Added: p_configure_log_tables, currently run manually, which turns the string columns of `table` and `column` into enums with all possible options in the enum. This makes the tables and indices much smaller, and faster to look up.
- Fixed: (case 27879) an issue where investigation rule checking (p_check_investigation_rule) was trimming the last character off of the sample id and sample value that triggered the investigation.
- Fixed: (case 27879) an issue where cloning a WO, with values, such that a new investigation would be triggered based on those values, would throw an error because the 'last modified' date on the values was NULL. The investigation rule checker is now compliant with this scenario, but also, cloned values have the time of cloning set as their last modified date.
Graphing:
- Added: (case 6001) support for WO #, tag #, WO title, WO internal notes, sample comments, and sample findings (all with wildcard support) to the graphing URL.
Investigation:
- Fixed: (case 22788) an issue where resolving an investigation would not set the close date.
- Changed: (case 22364) the plant column in the investigation rules page is now always visible, and the option "All" is now present. If the user chooses "All", the investigation rule applies at all plants.
- Changed: location is grayed out if the user chooses to create an investigation rule for all plants. If no analysis is chosen, the analysis option is grayed out.
Login:
- Added: there is now a bolded prompt above the login button that gives the user more information about the verification/authentication process.
- Fixed: an issue where the user could edit the username during authentication when they were not supposed to be able to.
- Fixed: (case 27043) an issue where the 'first time login' popup would not let the user set their first password correctly.
Product:
- Added: (case 21713) the suppliers page now has a field for filtering the results based on supplier contact or company name.
- Added: the ingredients/products page now filters based on category as well as name. Also, filtering the results will keep the previous selection if it matches the new filter.
ReportViewer:
- Fixed: (case 27079) an issue where the mass mailer screen might throw a query error during 'find recipients' if any of the parameters were dates.
- Fixed: when mass-mailing reports, the email address can now be edited to values that were not found in the system previously (new emails).
- Added: (case 26378) BCC field to the mass-mailing system.
- Fixed: an issue where reviewing the report queue would not show the value that was sent as part of the print operation.
- Changed: report parameters in the report queue now use the 'user visible name' for the parameters, like other screens (where possible).
- Added: (case 26378) the mass-mailing page now shows a progress dialog during the mass-print/email operation that shows the user how far along the process is, and gives a cancel button.
Sampling:
- Added: (case 6001) support for WO #, tag #, WO title, WO internal notes, sample comments, and sample findings (all with wildcard support) to sampling history search and graphing.
- Changed: the date range dropdown no longer has a criterion selected by default. This better matches how all the other filters start out empty.
- Fixed: an issue where the show inactive checkbox might still be visible even when it is supposed to be hidden due to the screen size being too low.
SettingsFramework:
- Fixed: an issue where user settings were loaded multiple times when a user logged in.
- Fixed: (case 27056) an issue where the report printer configuration was showing all report types instead of all report printer types.
TransactionList:
- Fixed: (case 27377) an issue where sometimes fields and filters would not correctly add the required JOINs to the query, causing database errors.
WorkOrders:
- Added: (case 26892) lot #'s can now contain letters other non-number characters.
- Added: (case 22293) a new tab in the work order detail for viewing the log of all changes that have been made to the loaded WO, its samples, and/or the option values on the samples.
- Added: the change log tab now shows user-friendly column/table names as well as user-friendly values using auto-complete lookups already loaded by the WO screen to avoid further delays from new queries.
- Added: the change log page now shows the result and default value log entries displayed the same way the user normally views that data (dates and numbers are formatted to how the user expects).
- Fixed: all option values were getting their 'last modified' updated when any value got changed. Now, only the option values that are modified will be marked as modified.
Reports
Analysis Change Log
- Added: (case 26024) a new report that displays information on changes to analyses from the change log and archived change log
- Added: (case 26024) event, affected analysis, and a Category: Analysis parameter
- Added: (case 26024) analysis option and choice.
- Changed: (case 26024) the report to Landscape
Certificate Of Analysis
- Added: (case 27360) Acceptability and Threshold Range options, which show or hide base on a parameter
- Changed: (case 27360) tidied the report
Choices & Thresholds
- Added: (case 24508) product parameter
Control Chart
- Added: (case 24508) product parameter
- Changed: (case 24508) changed analysis parameter and option parameter into a combined Category: Analysis: Option parameter
Location Analysis Barcodes
- Added: (case 26061) a new standard report that will print location analysis barcodes that match the filters for the current plant, grouped by ancestor location and analysis. It also prints instructions on how to use the scanner to add the analysis/location to work order.
Percent Positive
- Added: (case 24508) product parameter
Version 2.5
General:
- Fixed: an issue where sometimes list control cell tooltips for particularly large sets of data would show trash data at the end and/or take a long time to appear.
- Added: lists that allow the user to hide columns now remember which columns were hidden when the screen is reopened.
- Fixed: (case 25625) the user can no longer put characters into attachment filenames that windows does not allow in filenames "/ \ * : < > | ?"
- Fixed: (case 25625) if you double-click on an attachment that happens to have invalid characters in it, those characters are replaced with an underscore so that the file can be viewed.
- Fixed: (case 25930) an issue where typing into auto-complete dropdowns might not select the right items if the user found an item using the middle of a word or a different case.
- Changed: readonly list control cells now default to having a grey background with black text instead of grey text on white background.
- Changed: default color alternation in lists now alternates between a greyish green and white instead of grey and white. This will make black/white/grey text easier to ready against the cell background, and makes readonly cells easier to identify (grey background).
- Added: support for ctrl + A to select all text in a multi-line edit, which is (apparently) disabled in windows.
- Fixed: (case 26631) exporting a list to CSV now correctly escapes quotes with another set of quotes instead of a backslash.
Analysis:
- Added: (case 22445) a new 'clone analysis' button, which creates a new copy of the selected analysis. The user can choose whether to clone the original analysis' thresholds and which plants it is in use at.
- Fixed: (case 22445) an issue where cloning an analysis might clone empty thresholds and fail to copy dependent option information.
- Added: (case 25345) there is now a 'require authentication' flag for analyses. This replaces the plant level setting to see if the user must authenticate when modifying values.
- Fixed: over-active change detection that would fire whenever the user viewed analysis options.
CommonResources:
- Fixed: (case 26099) an issue where the option values and labels might not remember their location relative to the other columns in an obvious way.
- Added: (case 21707) the configure analysis/configure recipes page now displays the number of analyses/recipes that are being hidden by the 'show inactive' and 'show not in use' check boxes.
Configuration:
- Fixed: an issue where checking and unchecking the "Hide inactive/locked accounts" might cause the user list to look strange.
- Added: icon to the send recovery code button.
- Fixed: an admin can now properly set another user's password if the security settings allow it.
- Added: work order types now have a 'title required' flag.
CrystalReportsExtension:
- Fixed: (case 25757) an issue where reports whose type is different than its printer type would cause the user to have to choose a printer every time they printed, despite checking 'remember selection'.
- Added: support for passing title, email body, email from address, attachment name, and notes from a print request to the report queue table.
- Added: support for printing in 'silent mode', where no popups are shown to the user (no report or printer disambiguation popups). This is used for the new mass-printing feature.
Database:
- Fixed: (case 25510) an issue where scheduled data clones were being reported as failing to run, despite the fact that that was intentional in situations where data clone rules were created too late to be run in a period.
- Added: (case 23235) support for due dates on investigations. Also, added support for alerts tied to soon to expire investigations.
- Added: number of days before investigation due on automatic investigation rules.
- Added: (case 25384) emailed scheduled reports can now have an overridden email body, 'from' address (for email replies going back to specific address), and attachment name (for naming the report pdf attachment).
- Added: (case 21710) supplier field to suppliers.
- Added: (case 21712) work order types now support products and ingredients on the same WO type.
- Added: (case 25500) work orders can now have titles/descriptions. These are displayed at various locations of the software, making WOs easier to distinguish.
- Added: (case 25500) the title field on WOs can now no longer be edited if the user doesn't have the permission to edit WO titles.
- Added: (case 25389) the right-click graphing template has been updated to facilitate line types.
- Added: tables and fields supporting reports to be mass mailed.
- Added: new analysis field for tracking whether a specific analysis requires authentication when the user has modified it or not. This replaces the plant level setting.
EDocuments:
- Added: support for new functions in the EDocument language, including IF, IFEMPTY, CONCAT, REMOVE (see the wiki page for description/syntax)
- Fixed: an issue where text before and after a function call might throw off a subfunction's invokation.
- Fixed: an issue where function arguments of ' ' or " " were not working. This was breaking some uses of the TRIM function.
- Fixed: an issue where the last part of an argument might be lost if it did not end in whitespace.
- Fixed: a couple issues where we'd sometimes replace only half of a function name.
- Fixed: an issue where multiple pieces of whitespace in function arguments might throw off argument order in functions.
Home:
- Changed: store filter now applies to WO store instead of location store.
- Added: (case 25500) work order title is now displayed on both home screen tabs.
Investigation:
- Added: (case 25415) support for filtering investigations by investigation type.
- Added: (case 23235) support for due dates on investigations and # of days before investigation due on investigation rules.
- Added: coloring of investigation due dates based on whether they expire today or have already passed.
- Fixed: an issue where changing anything in the investigation detail list, then changing the selected investigation might not properly show that the investigation had changed.
- Fixed: the clear button now clears the investigation results.
- Added: (case 21728) the investigation detail list now shows the sample that initiated an investigation at the top. This row is shown in dark red to differentiate it.
ITSQLFramework:
- Added: query results now supply calling queries with the 'data type' of each result column.
- Changed: (case 26631) exporting a query result to CSV now correctly escapes quotes with another set of quotes.
Locations:
- Fixed: a minor issue where copying locations might not give them unique names in some situations.
Login:
- Fixed: (case 24507) hitting the forgot password button on login no longer automatically sends a recovery email, it now waits until the user hits the 'send recovery email button'. This helps with situations where the user already has a recovery code and doesn't want another one sent.
Product:
- Added: (case 21710) multi-line supplier field to supplier configuration.
ReportViewer:
- Added: (case 26152) a new "Mass-Mail" page. This page allows the user to select certain reports to email or print for various recipients. This is similar to mail merge tools. The first application for this tool is sending billing to customers either through email or print. More reports will be added to this area in the future. If you'd like to see a report added to the mail merge area, let us know.
- Fixed: an issue where hidden report parameters that pass 'id' into the report were not loading the default parameter id correctly.
WorkOrders:
- Added: (case 25500) work orders can now have a title/description/reference # saved in their header. This is useful for giving any WO a title/description/# that display on various screens.
- Added: WO title is now displayed in the WO list in the automatic WO scheduling page.
- Added: (case 21712) support for work order types that allow both ingredients and products.
- Added: (case 25500) the title field now requires the edit WO titles permission to be edited.
- Added: work order types that require titles before closing are now enforced. This flag can be set in configuration.
- Changed: (case 25345) saving a work order now checks whether any samples' analyses 'require authentication' before forcing the user to authenticate when modifying values.
- Fixed: a crash that could occur upon opening the screen.
Scanner:
- Added: Search by Title/Description
- Changed: Improve scanner esignature interface.
- Added: Print Tag on mobile now works with PrintQueue
- Added: Setting to order work orders by number rather than Due Date.
Version 2.4
General:
- Added: If there is more than one page of results to display on any multi-page list, the user is prompted to load all results before finishing the export/graph operation.
- Added: when the user right clicks in any list control, there are now icons in the context menu corresponding to the export to csv/html/graph options.
- Added: the 'execute saved graph template' submenu in the right click options now shows a graph type specific icon next to each saved chart. For example, a saved pie chart will show a pie chart icon.
- Changed: by default now, list control tooltips only appear if the cell text is too large to fit into the cell.
CommonResources:
- Fixed: if the user enters a dynamic SQL default on an analysis option, but they hit cancel on the test default popup, the default value will be reset.
- Changed: N/A as a default option value is no longer automatically set to by a SQL (dynamic) field.
Configuration:
- Fixed: the configure -> users area did not correctly show the user's recovery email address.
- Added: a Correlation configuration page, where the user can configure various settings that affect future correlation reports.
CrystalReports:
- Fixed: (case 25279) an issue where options in the 'choose report' popup were not strictly in alphabetical order.
- Added: the choose report popup (report diambiguation dialog) has been reworked. It now shows orientation as well as whether that report is a favorite of the user's. Favorite reports are automatically sorted to the top.
Database:
- Fixed: (case 24518) verifications were not being cleared out on WO clone.
- Added: the investigation trigger table now has columns to support all four basic western electric rules.
- Added: (case 23631) stored procedures p_check_investigation_trigger (which checks to see if a specified sample id violates a specified investigation trigger id), and p_trigger_automatic_investigation, which for a specified sample id, finds all investigation trigger rules that could apply, checks to see if they've been violated, and creates investigations if necessary.
- Removed: f_sample_values_updated, which has been replaced by p_trigger_automatic_investigation.
- Added: support for investigations based on all 4 western electric rules
- Added: investigation rules' sample size can now be based on the last N samples instead of just time intervals.
- Added: index to analysisoptionvalue that makes calculating correlations faster.
- Added: (case 23630) the new table analysisoptioncorrelation, which stores cached pearson correlation coefficients that are calculated each night, based on user configuration.
- Added: (case 23630) p_calculate_option_correlation, which calculates the pearson correlation coefficient (using hot-deck last observed value carry-forward for missing data and a 1 hour window for matching corresponding values) between the values for two different numeric analysis options on a certain date range. We also have the procedure p_cache_all_option_correlations, which finds all numeric option pairs and calculates their correlation, storing that information in the new correlation table. The user can customize up to 4 date range intervals to run correlations over. The user can also specify a number of days to keep historical correlation data for (for historical reporting) the default is 7 days. Add event e_cache_all_option_correlations, which nightly recalculates numeric options' correlation coefficients at 11 pm.
- Fixed: the event that processes alert templates now gets locks exclusive only to their company instead of globally, which previously caused some company's to be unable to process alerts.
- Fixed: (case 24701) an issue where scheduled WO clones might fail after recent updates.
- Added: (case 24611) there is now a table where the user can store rules about correlations that should be calculated nightly. The user can blanket suppress an option from all calculations, suppress a specific combination of options, and re-enable a specific pair of options (useful if one of the two options is turned off globally, but should be calculated on certain combinations).
- Added: (case 24261) support to the useraccess table for storing a record type and record id that is associated with the access attempt (such as a WO #).
- Added: an investigation trigger to both the investigation table itself as well as the investigation triggers, as a default for investigations created by that trigger.
- Added: automatically created investigations from investigation triggers now correctly inherit the default investigation type from the trigger.
- Fixed: the nightly recalculation of correlations is now done at 11pm instead of 11am.
Graphing:
- Fixed: (case 24500) an issue where the graph would not render at all if more than 256 series were being shown (common if there are many thresholds).
Investigation:
- Added: (case 23631) support for investigations triggering on any of the 4 western electric rules. Also, added support for a sample size that is the last N samples instead of just time periods.
- Added: the default comments field for an investigation trigger now involves several new tags, including {?violated_sample_values} which gets a comma separated list of the values that triggered the investigation, as well as {?population_statistics} which contains the number of samples that was in the population that was examined, the standard deviation for that data, as well as the mean.
ITSQLFramework:
- Fixed: an issue where, after the first database error a user saw, no other database errors would be reported.
Login:
- Fixed: an issue where changing the user's password would crash the application.
- Fixed: an issue where deactivated accounts were not showing their lock message when the user attempted to login.
Master:
- Fixed: (case 24416) an issue where the code that changed comments in the query parser was dropping newlines when it should not, causing stored procedure/function definitions to be hard to read on client databases.
- Changed: the URL that updates are downloaded from, to support future migration of this service.
- Fixed: if the user is looking at the update download dialog and they do Actions->reset updates, the dialog is no longer closed and reopened.
- Fixed: (case 25241) a crash that could happen if the user hit "Hide" on the update download dialog, and then the system automatically checked for updates again in 5 minutes.
Products:
- Fixed: (case 24693) an issue where the user could not create a new product and then immediately add specifications to that product.
Settings:
- Changed: (case 24498) the URL of the ITrack Online screen has been changed to the presage wiki page.
- Fixed: (case 21909) an issue where the user could not set global setting defaults for plant settings or plant/global defaults for user settings.
- Fixed: an issue where changing a setting, then switching setting context would update the wrong setting context.
- Fixed: an issue where the settings page would act like the settings page had changed, even after it had been saved.
- Fixed: an issue where the wrong setting override might be shown if the user selected a different setting scope than "Setting Default".
- Fixed: an issue where plant level settings would display that they were user level settings.
- Fixed: an issue where hidden settings were not correctly hidden.
- Fixed: (case 23257) a query that loaded report data to work correctly with mysql version 5.7.
WorkOrders:
- Fixed: a recent regression, preventing printing.
- Added: icon support to right-click menus.
- Fixed: an issue where a useless popup would appear if the user entered no value in the load WO # box.
- Added: when the user enters their password to verify a WO, the WO # is now stored with the access attempt.
- Added: (case 21909) the user is now prompted to enter their password if they are saving a WO and any option values have been modified. This only comes into play if the plant setting "Security"->"Require user authentication for work order save" is set to True.
- Added: (case 21909) if the user enters their password to verify a WO or save a WO with modified values before the WO has been saved, the access attempt will be updated with the WO # once the WO is saved.
- Added: (case 25086) the verify user account popup that occurs when the user verifies a WO or modifies option values now displays a more specific prompt in the title bar. This will make it clearer why the user is being asked to verify their user account.
Version 2.3
CrystalReports:
- Added: support for DateTimes in the report requests.
- Fixed: an issue where the advanced print dialog would sometimes appear when the user was previewing a report, if the user had no default printer set for that report type.
- Changed: holding the advanced print button while previewing a report will no longer show the advanced print dialog, as previewed prints don't pay attention to most of the options.
Configuration:
- Moved: password resetting has been moved and the menu option is now called "Change My Password".
- Added: newly created user accounts are now created in a "Pending Activation" status, which means the user will have to change their password on first login.
- Added: the configure users page now shows account status instead of just an 'active' checkbox.
- Added: a column that shows the last access attempt for each user account, which could be useful for monitoring user accounts.
- Added: color coded key to the user account status area.
- Added: global security setting for whether users can change other users' passwords. If they cannot, they can still initiate a secure password reset if that user has a recovery email address set.
- Added: fields to view the last time a user changed their password for enforcing password age requirements.
- Added: support for deactivating and reactivating user accounts.
- Fixed: deactivating a user account with the delete button now sets the deactivation notes on the account the same way hitting the deactivate button does on the user account info page.
Database:
- Changed: the user table has been renamed to useraccount, and replaced with a view for backwards compatibility.
- Added: support for higher security passwords to the user account table, along with fields for password recover and storing previous password keys.
- Added: a 'lock notes' field to useraccount table. This field will explain to a user why they have been locked out.
- Added: a useraccess table, which will store all access attempts.
- Added: the useraccess table now tracks what plant the request was made for.
- Added: the useraccess table now differentiates between locked and deactivated accounts.
- Changed: password keys can no longer be NULL in useraccounts or useraccess records.
- Added: a new table, userpasswordhistory, which tracks previous password hashes generated by the user. This will facilitate proper password aging and prohibiting password reuse.
- Changed: 'Daily Samples' subscription has been renamed to 'Sample Value Summary' since the schedule doesn't have to be daily.
- Added: support for 'User Authentication' or 'User Authentication Summary' alert subscriptions. These report on failed/successful user access attempts either on an individual or scheduled timing.
DataManagement:
- Added: (case 23792) the backups created as part of imports are now created much faster and take much less space. Mainly, we now use ARCHIVE database engine and don't create indices on backups.
Graphing:
- Added: (case 22765) any list with saved graph templates can now be run easily by right-clicking on any list with saved graph templates.
- Added: better support for date/times in right-click graphing for x-axis values.
- Fixed: an issue where sending data with line breaks to right-click graphs could cause errors.
Login:
- Added: forgot password button to the login dialog.
- Fixed: verification now properly uses the user name and plant that is part of the verification process and those fields are locked.
- Changed: if the user is authenticating during WO verification, the logged in user isn't changed.
- Fixed: the user cannot hit escape to close the login box if cancel is not an option.
- Added: support for any permission being specified as part of a user authentication step.
- Added: user access attempts are now logged in the database.
- Added: the login has a different prompt/login button text based on whether the user is logging in or verifying user identity.
- Added: the password reset dialog now has a location for entering the previous password, and this must match to change password.
- Added: new passwords set by the user are now encoded in a more secure format.
- Added: the user is now prompted to enter a password recovery email address when changing passwords, as this is important to resetting passwords later.
- Added: the change password dialog now supports the user changing their password with a recovery code instead of just their previous password. This overrides 'locked' account status.
- Added: support for sending password recovery emails to the address registered to the specified user as their password recovery email address.
- Added: now the user can change just their recovery email address if they leave the 'new' password blank in the change password dialog.
- Added: support for admins changing other users' passwords (based on security settings) without typing in the previous password.
- Changed: if a user is pending activation, a new user access status is used if someone tries to log in with that account that denotes this.
- Added: if an account that is pending activation is logged into, the user will be prompted to enter a password and password recovery email address.
- Added: password recovery emails are now sent as part of the password recovery process if the user's recovery email address is set.
Master:
- Changed: (case 7808) the update downloader dialog has been combined with the update log dialog. This prevents the issue where the user's focus was being moved automatically to this popup when downloads finished. This avoids interrupting the user's work.
- Added: the update downloader dialog can now be hidden or closed immediately instead of having to wait for the downloads to complete. If the user wants to reopen the dialog, they can double-click on the update status in the status bar.
- Added: the update progress dialog now has a "Show this dialog in the future" checkbox. If the user unchecks this, they will only see the update progress/change log dialog if they double-click on the update status string on the status bar.
- Fixed: screen list now properly resizes if the user has non-standard windows zoom.
- Added: support for modal login dialogs, useful for verifying the logged in user.
- Added: support for locking/unlocking the entire application. This includes most sensitive menu items at the top of the menu bar and the window access menu on the left.
ReportViewer:
- Fixed: a potential issue where advanced print dropdowns might not work.
WorkOrders:
- Added: a security setting to control whether or not users must authenticate before they can verify a WO.
Scanner:
- Changed: Minor cosmetic changes.
- Fixed: Calculated "choice" fields not saving from scanner. Made calculated fields trump dependent dropdowns.
- Fixed: Resolved issue with sample Performed time and time zone differences.
- Added: Login and e-signature authorization.
- Changed: Added check to prevent user clicking "Back" in web browser
- Fixed: Inactive options will be hidden.
Version 2.2
REV 17986-18144 Q3 2016 release database version 222
Analyses:
- Fixed: an intermittent crash on load related to the tooltip on the threshold column not loading.
CommonResources:
- Fixed: (case 22214) an issue where option choice dropdowns were not correctly limiting results by plant, product, or severity class.
- Fixed: (case 22440) an issue where attachments wouldn't save correctly on new samples.
Database:
- Fixed: (case 22366) an issue where cloned WOs would copy the verification due date of the original document.
- Fixed: (case 22371) an issue where clicking to show/hide series on a stacked column graph without trendlines would not work correctly.
- Fixed: an issue where showing an hiding a series with a point type other than Circle would cause the newly unhidden points to be circular.
- Added: (case 22466) the data clone failed event now includes the name of the database and the customer product code for easier identification.
- Fixed: the chart template now supports aggregate column charts.
- Fixed: chart data with invalid X axis values is now ignored.
EDocuments:
- Changed: if an edocument request wants, the output file will not be written. This allows edocuments to be generated into memory without having to hit the disk, which can be comparatively slow.
- Added: some external functions for just configuring graph options, and another one from generating a graph from options without input.
Graphing:
- Changed: (case 21229) to make the graph options dialog easier to use, the chart type dropdown is now a list with graph icons. Also, many of the controls in the dialog now have tooltips and clearer names.
- Added: (case 14508) the graph options dialog now has a preview chart pane next to the chart options. This allows the user to see what the graph will look like without having to generate the final graph. The chart automatically refreshes whenever anything changes that affects it.
- Added: a 'preview in external browser' button that shows the chart in an external browser window without having to close the dialog.
- Added: an instructions field that tells the user what they still need to do before the current options can generate a chart.
- Added: a series point shape column so that the user could choose what shape the points will be.
- Added: trendline dropdown where the user can choose what degree of trendline they'd like to add to the graph for each series.
- Added: the right click graphing dialog now has the following new features:
- Advanced mode: the user can go into 'advanced mode' when building a chart. This shows various extra options that may not always be required when generating a basic graph. The user's selected mode will be remembered.
- Trendlines: the user can choose to display trendlines for each data series on the graph. If the user is in advanced mode, they can choose the type of trendline as well as whether the trendline's formula and fitness should be displayed in the legend.
- Point shape: (Advanced mode only) the user can choose the shape of the points in a line/scatter chart for better black&white printout or colorblind accessibility.
- Cumulative series: (Advanced mode only) the user can choose to make a data series cumulative, making it so that all values will include all previous values in the same series.
- Changed: current graph template has been modified to no longer show scrollbars in embedded IE windows (required a slightly bigger buffer around all sides). The way the graph resizes has been optimized slightly to better use available screenspace.
- Changed: current graph template has been modified to properly handle cumulative data series, trendlines, point shape selections, etc.
- Added: an error message to chart generation that will stop the user if they choose a discrete (non-numeric, non-date) x axis for a line or scatter graph. While these graphs technically work, they are not very useful.
- Added: (case 20434) support for saving chart templates as well as using saved chart templates.
- Fixed: an issue where the right click graph template would show unnecessary 0.00 points in line charts if the series was cumulative.
- Fixed: line charts with missing points are now smoother and interpolate between those points.
- Fixed: a crash when adding new saved chart templates.
Login:
- Added: support for new permission related to managing chart templates created by other users.
ReportViewer:
- Fixed: an issue where date pickers for report parameters might show the year 1899 as the default value.
- Fixed: an issue where date report parameters with fixed values might not get formatted correctly.
Settings:
- Added: (case 20434) support for saving/loading chart templates for right-click graphing.
WorkOrders:
- Fixed: (case 22219) an issue where work orders would set an incorrect due date automatically for WOs that were not supposed to have a due date.
- Fixed: (case 22290) an issue where analyses that were not in use at the current plant were visible in the default analysis dropdown but not selectable.
- Fixed: work order types' default analysis dropdowns no longer show inactive analyses unless they were previously chosen for that WO type.
- Fixed: (case 22234) an issue where inactive recipes were selectable in the recipe dropdown.
==Reports: Investigation==
- Added: (case 22070) triggering analysis option to the header, when present
Reports: Investigation Overview
- Changed: (case 21729) comments into a column, shorted results column to make room, and switched to landscape.
- Fixed: sizing of the created on/by field because it was cutting off time
Version 2.1.5
Database:
- Added: (case 20830) logging to the dataclone table
- Changed: (case 20608) deleting a product will now also delete any associated option thresholds/choices.
- Added: investigationtrigger table now has columns for saying what should happen to an investigation after it is auto-generated.
- Added: investigations now track which analysis option values triggered an investigation.
- Added: f_create_workorder, which creates a new work order of the specified work order type.
- Added: f_investigation_triggered function, which performs any necessary post-creation steps specified in the investigationtrigger record.
- Updated: f_sample_values_updated now properly remembers the productid of the original. A single sample can now trigger more than a single investigation.
- Added: f_get_next_schedule_date now accepts a date/time for its 'next occurrence after this date' instead of just a date. This is useful for figuring out when the next occurrence of a schedule would've been after a specified time in the past. Necessary for detecting missed data clone occurrences.
- Added: index to the log_changegroup table making it possible to quickly look up and see if a previous data clone succeeded or not.
- Added: (case 21183) an event that runs at every 2 hours and repots any scheduled data clone entries that either didn't run or failed for any reason in the last 4 hours. The recipient(s) of this notification are stored in a setting.
- Added: the failed data clone alert message has been improved and some errors have been corrected.
Investigation:
- Added: (case 20340) the investigation rules page now has new fields for configuring advanced investigation rule settings, such as whether to automatically resolve investigations, what analysis type to use for retests, and whether to automatically create retest documents.
- Fixed: an issue where the investigation history page would let the user go past the last page of results.
- Fixed: an issue where the investigation history page reported the wrong number of items per page.
Locations:
- Fixed: a query error that could happen if the user deleted a location.
Products:
- Changed: the delete product prompt now tells the user that associated thresholds will be deleted as well.
WorkOrders:
- Added: (case 20340) when investigations are sent to a WO for retest, the retest WO type and retest analysis type on the investigation rule that spawned the investigation are now used to generate the new samples.
- Fixed: if the user changes the analysis type for an investigation to one that has fewer options, any columns that are no longer necessary are correctly removed.
- Added: if the user saves without clearing, the WO is reloaded to account for the fact that investigation rules could cause the WO to be reopened, have new samples added to it, or marked as no longer verified.
- Added: if saving the WO caused new retest WOs to be created, the user is notified of this and given a chance to view that document.
- Added: when the user sends investigations to the WO to be manually retested, WO type is set to the correct type based on the investigation trigger rule. Also, the analysis type for retest specified there is used for these retest samples.
- Fixed: (case 19874) if two users save the same option value, the second user to save will no longer see a database error, their data will silently overwrite the previous data.
- Fixed: an issue where a 'retest WOs created' popup would appear if an investigation was automatically created that did not create a retest WO.
Reports
Certificate Of Analysis
- Changed: (case 21736) the "Analysis" parameter to a combined "Category: Analysis" parameter
Product Log
- Added: (case 21738) WO internal notes, made the report landscape, and changed grouping behavior to accommodate the note changes.
Version 2.11
Database:
- Added: (case 11138) analysis options and choices/threshholds can now be marked as inactive.
- Fixed: a database error that could sometimes occur if f_get_sample_acceptability was called on a Number value of .
- Changed: (case 11138) deactivated choices and thresholds no longer affect the acceptability of a value.
Analyses:
- Changed: (case 11138) deactivated options and option choices/thresholds are no longer shown if the 'show inactive analyses' checkbox is unchecked.
CommonResources:
- Added: (case 11138) an active checkbox to all analysis options as well as option choices/thresholds.
- Changed: inactive choices are no longer able to be selected for depending analysis options.
- Changed: inactive options are no longer shown in the 'Set default value formula' pop up.
- Changed: inactive thresholds are no longer shown in the 'test value' pop up.
Products:
- Added: (case 11138) the analysis option dropdowns no longer show inactive analysis options.
Sampling:
- Added: a new checkbox "Show inactive analyses/options". When checked, inactive analyses and inactive options will be shown to be searched, otherwise they are hidden.
WorkOrders:
- Added: (case 11138) deactivated analysis options no longer show on new samples. Samples that already have a value filled out for that option will still show it.
- Added: recipes no longer show deactivated ingredients, though recipes that already have a value filled out for that ingredient will still show it.
- Changed: deactivated choices in option dropdowns no longer show for new samples, but are still visible on samples where they are in use.
Version 2.1
General:
- Added: the user can now drag items to the edge of all list controls that support drag and drop to scroll the list.
- Fixed: if the user drags anything other than files into an attachment area, the 'no drop' icon is shown.
- Added: if the user drags a file over an attachment area, the list's attachment system is disabled so that the user can drop files into the list as well.
- Changed: when the user drags items within a list control, they are stored in a special clipboard format so that other applications don't think they can get them.
Analysis:
- Added: (case 18225) when configuring analyses, support for a 'visible group' dropdown for selecting a user group who can view associated documents.
- Added: (case 18225) analysis list is now restricted to just those analyses that are visible to the current user's groups and permissions.
CommonResources:
- Fixed: an issue where the Analysis configuration area would sometimes have uneditable analyses even if the user had Global analysis editing permission. This would only happen if plants were private.
Configuration:
- Added: configuration of work order types now allows specifying a number of days until verification is due.
- Added: (case 18225) when configuring work order types, support for a 'visible group' dropdown for selecting a user group who can view associated documents.
- Added: (case 18225) work order type list is now restricted to just those WO types that are visible to the current user's groups and permissions.
CrystalReportsExtension:
- Added: (case 20389) the report adder script export now correctly includes the fileid and category in the ON DUPLICATE KEY SET section.
- Fixed: (case 20389) an issue where clicking "Replace" when adding a new report file in it would instead leave the previous report file in the system.
- Fixed: (case 20389) the report adder script export now has a query that attempts to find 'empty' AU reports and replace them instead of inserting a duplicate. This will no longer be necessary once report.filename becomes unique.
- Fixed: an issue where, if the user showed the advanced print dialog, previewing the report would not work.
Database:
- Removed: a previously deprecated column
- Added: (case 19608) workorder.verificationdue (datetime) and workordertype.daystillverificationdue. These will facilitate workorders with due dates to verify.
- Changed: workordertype.daystilldue is now unsigned.
- Changed: the triggers related to the work order and work order type tables have been re-exported to fix missing columns.
- Fixed: some errors in a previous update that would cause the supplierfile.plantid to not be created.
- Fixed: (case 20480) an issue where the automatic data cloning procedure was dropped during 2.05 database update because of the use of the COMMIT keyword.
- Added: (case 19608) alertsubscription now has a alerttiming of "Verification Expiration Approaching"
- Changed: e_alert_scheduler has been expanded to handle verification due dates being hit.
- Changed: p_alert_trigger has been expanded to handle verification due dates being hit.
- Added: (case 19307) a new table for tracking what default printers should be used for various report type categories. These entries can be per-user, per-plant, or per-productcode (or any mix of those 3).
- Added: f_get_report_printer returns the printer to be printed to for a specific report type based on input criterion.
- Fixed: (case 20389) report.filename is now unique. This resolves issues where duplicate reports could could exist on the system due to the auto-updater. In order to do this, duplicate reports got their filename modified to have a "_DUP_<reportid>" added to the end. These duplicates should get cleaned up at some point, as the auto-updater won't maintain them.
- Added: (case 18225) analysis.visiblegroupid and workordertype.visiblegroupid, which are a 'visible user group' they are assigned to. If set, this will be the only group that can see work orders/samples with those wo types/analyses.
- Changed: analysis.groupsamples has been switched from a BIT(1) to a BOOL field in order to avoid inconsistencies and BIT columns cause various issues with other applications.
- Added: (case 18225) 2 new permissions for being able to view work order types and analyses that are not visible to the any groups the user is in.
- Fixed: an issue in the 2.05 database update that could cause a trigger to be dropped and not correctly re-added.
- Fixed: (case 21197) an issue where f_get_next_schedule_date might fail if the month offset passed in was 0 for quarterly and yearly schedules.
- Fixed: (case 21197) a possible issue where p_clone_scheduled_data could fail if the month or day offset was 0 instead of NULL.
- Fixed: (case 21406) an issue where a sample inserted trigger had a logical error that could cause a stopping error on mysql 5.7
- Fixed: (case 21594) an issue where the WO clone code wouldn't properly reset verification information.
Home:
- Added: verified by user column to the work orders list.
- Added: "Show Verified" and "Show Unverified", which allows a user to easily filter the list to just those documents that need to be verified by their group.
- Added: verification due date column to the work orders list.
- Added: all the "Show ..." checkboxes on the work orders page now remember their last setting when the user closes the screen.
- Fixed: a crash when going to the testing page
- Added: (case 18225) the work order type dropdowns now exclude all work order types that are not visible to the current user (based on the new 'visible group' on work order types).
- Changed: (case 18225) results on the work orders page is now restricted by the work order types that are visible to the user. If the user has the permission "Global"->"View other user groups' work order types", they will be able to see those work orders anyway.
- Changed: (case 18225) results on the testing page is now restricted by the work order types and analyses that are visible to the user. If the user has the permission "Global"->"View other user groups' work order types" and "View other groups' analyses", they will be able to see those samples anyway.
Master:
- Fixed: an issue where the thread progress dialog that showed "X/Y processes still running" would sometimes show an incorrect # of elapsed seconds if some of the tasks took a long time.
Products:
- Added: (case 18225) when configuring recipes, support for a 'visible group' dropdown for selecting a user group who can view associated documents.
- Fixed: an issue where private plants would keep the user from being able to edit global specifications.
- Fixed: overactive change detection that would occur if the user visited the recipes page.
- Added: (case 18225) the analysis dropdown list is now limited by visible user groups and permissions.
- Added: (case 18225) all product specifications for analyses that are not visible to the user (based on user groups and permissions) are hidden.
- Removed: (case 21144) the public checkbox in the attachments dialog, which was accidentally added.
ReportViewer:
- Fixed: (case 20702) an issue where some fixed report parameter value defaults would act strangely when the user selected them.
Sampling:
- Added: (case 18225) sampling history now restricts the searchable analysis list to just those analyses that the user can view (based on the new 'visible group' and permissions).
WorkOrders:
- Added: (case 19608) work orders now have a 'verification due date'. If a WO gets marked as 'Work Completed', the verification due date will get automatically set based on the work order document's "Days till verification due".
- Fixed: an issue where, if the user marked a WO as work completed through the popup on save, the assigned to group and the verification due date were not getting set automatically.
- Fixed: an issue where, if the user marked a WO as closed through the "& Close" checkbox on the screen, the assigned to group and the verification due date were not getting set automatically.
- Performance: work order saves no longer save samples before and after the work order. This reduces the number of round trips required to save a new WO.
- Added: (case 18225) analysis dropdown list is now restricted to just those analyses that are visible to the current user's groups and permissions.
- Added: (case 18225) recipe dropdown list is now restricted to just those analyses that are visible to the current user's groups and permissions.
- Added: (case 18225) work order type dropdown list is now restricted to just those WO types that are visible to the current user's groups and permissions. Also, if the user attempts to load a WO with a type that would not normally be visible to the user, they are told that access is denied.
- Fixed: (case 21038) an issue where hitting the attachment button would crash if no sample was selected.
- Changed: if no sample is selected, the attachments button is greyed out.
- Removed: (case 21144) the public checkbox in the attachments dialog, which was accidentally added.
- Fixed: (case 21375) dependent options that require a value to be above or below a specific value no longer trigger if the values are equal (> instead of >= and < instead of <=).
- Changed: dependent options that have numeric thresholds against choice or text options now compare values numerically instead of like a dictionary.
Version 2.05
REV 17455-17548 2.05 database version 205 RC on 2016-04-25
Tools/Controls:
- Changed: list combos no longer 'drop down' automatically when the user goes to them. This was causing a lot of unncessary flickering and delays in situations where combos were the first thing in the list.
- Added: using up/down arrows in list dropdowns now pops open the dropdown instead of going up and down in the list control. This is to make it more consistent with dropdowns outside of the list.
- Fixed: hitting escape to 'cancel' a dropdown now correctly resets the content back to what it was before the user started typing.
- Added: list combos are now 'typeable' (auto-complete) by default. To emulate previous behavior, by default all dropdowns that don't specify otherwise will not let the user type in new values.
Analyses:
- Fixed: an issue where any global option choices would be set to not global when the user viewed them if they had a global product on them. Now, the user can leave an option threshhold/choice global if the product is in use at all plants.
- Fixed: (case 20301) a crash that could occur if the user made a change to an analysis option or option threshhold and then change analyses quickly.
CommonResources:
- Added: the configure analyses page now has a 'show inactive analyses' checkbox for hiding and showing inactive analyses.
- Added: the configure analyses page now has a 'show analysis not in use at this plant' checkbox for showing analyses that are not in use at the currently selected plant.
- Changed: (case 13385) the 'global' analysis checkbox has been replaced with a 'in use' similar to the product interface where each product can be in use at multiple plants.
- Fixed: an issue where the empty analysis row might get duplicated if the user switches plants.
- Fixed: a crash that could happen when the user switches plants.
- Added: the 'show analyses not in use' now shows the current plant code.
- Changed: if the user has permission to edit analyses at all plants where an analysis is in use, the user can edit that analysis.
- Added: support for loading/saving the 'active' analysis flag.
- Added: inactive analyses no longer show in the analysis dropdown in sample history. However, inactive analyses are shown if they were already selected on a sample.
- Fixed: a crash that could be caused on sampling history if a search included samples on no WO.
- Fixed: an issue where analyses for other plants were visible in the analysis dropdown on samples from other plants.
- Added: maximum length for strings in the configure analyses page.
CrystalReports:
- FIxed: (case 20188) an issue where switching to email or archive of a print job might still set the print entry as 'Print'.
Database:
- Added: (case 19210) root cause and root cause comments to the investigation table.
- Fixed: (case 17752) several references to store are now 'plant'.
- Added: (case 19469) scheduled reports now have a title that can be sent along in an email.
- Fixed: (case 20079) an issue where sample values might not get calculated correctly on WO save.
- Added: (case 13385) what plants an analysis is in use at is now tracked in a separate table called analysisplant.
- Added: unique indices to all the productplantmap, supplierplant, and analysisplant.
- Added: copied current analysis usage into the analysisplant table.
- Added: analysis.active, which will track whether an analysis should be hidden (inactive) or not.
- Fixed: several triggers no longer reference the deprecated plantid field. Added reference to logging the active column.
- Added: (case 20089) plant.logofileid, which will store a company logo file id for displaying in reports. Modified f_count_file_references to count these references as well when determining whether a file is 'in use' or not.
- Fixed: (case 19987) f_get_next_schedule_date was returning midnight of the next day for schedules that were set up on "Daily (Weekdays)" if the time of the schedule had passed.
- Changed: (case 19987) all automatic WO scheduling is executed on the quarter-hour now instead of hourly. This gives users more specificity on scheduling.
- Fixed: Updating e_schedule_reports for all products because we noticed that if an error happened during the FETCH query, done never got set to TRUE, and the loop would go forever.
DevIL:
- Changed: Recompiled DevIL 1.7.8 in VS2008 so that we can remove a dependency on MSVC++8. I also optimized it for speed. It seems to be 'drop in' with regards to the old binaries (ITrack doesn't have to be recompiled to work with the new version).
Investigation:
- Added: support for a 'root cause' column as well as a 'root cause comments'. The root cause is an autocomplete dropdown that automatically shows all previously entered items. The comments are an unlimited field.
ITMySQLConnection:
- Fixed: a rare case where a database error that occurred in a function would not be reported to the user or our error reporting services.
Products:
- Fixed: (case 19969) attaching files to new products or suppliers will now save correctly.
- Added: (case 19863) the ingredient/product area now has a search filter that will limit the visible options to just ones that match the user's input.
- Added: (case 19754) a "Specifications" page to the product/ingredient area.
- Fixed: an issue where saving after removing a product 'in use' at a plant, the user might still be prompted to save, despite there being no new changes.
- Added: maximum length for strings in the specification list.
- Added: permissioning to the specification area.
- Added: plant dropdowns for specifications now contain just those plants that the product is in use at as well as where the user has permission to edit analyses. "Global" is now an option if the product is in use at all plants and the user can edit analyses at all plants.
- Added: switching options on a specification now correctly removes the spec on the old option and adds a new one to the new option.
Sampling:
- Fixed: an issue where changes made to WOs since the screen was opened might not be refreshed on subsequent searches.
- Added: (case 18967) if the user has permission to edit samples on this screen, if any of modified samples are on verified WOs, the user will be notified that they will cause the WOs in question to become un-verified on save.
WorkOrders:
- Added: (case 18968) the verification date field now shows the time the document was verified as well.
- Added: (case 18967) if the user adds or removes samples, or changes important information about a sample, and the WO was verified, the user will be notified that they will cause the WO in question to become un-verified on save.
- Changed: (case 19987) all automatic WO scheduling is executed on the quarter-hour now instead of hourly. All prompts and pop-ups have been changed to reflect this.
- Added: analysis options of type 'choice' will now auto-dropdown and allow auto-complete typing.
- Added: recipe production page now allows right clicking in the ingredient list header to hide/show columns.
Reports:
- Fixed: (case 20012) a query issue in the Investigation Overview report that was causing the original sample to show twice and leaving out the investigation samples on the report.
- Added: (case 19065) a new report, Investigation, that shows information about a single investigation.
- Added: (case 20243) a dynamic logo to the Investigation report, which looks at the new plant.logofileid to determine which image to pull from the database
Version 2.0
Tools/Controls:
- Performance: upgrades to our collections that (in some cases) eliminate as much as 85% of the time spent in some loops.
- Added: support for icons on 'push-like' buttons.
- Added: support for typeable columns in lists can now support a 'maximum length' for the data that the user can enter. If the user enters more than this, they hear a beep and are stopped.
- Performance: formatting of list text has been sped up somewhat.
- Added: a shared city/state/zip field group to consistently handle all areas where these linked fields should look one another up.
- Fixed: an issue where attachment interfaces would not lock down correctly in some scenarios. Also fixed an issue where the public checkbox wouldn't work correctly if there was more than one check in the list.
- Fixed: an issue where custom "ok" message boxes wouldn't have their custom button text shown.
- Fixed: an issue where times containing midnight might save incorrectly. Also an issue where date/times might save as 1899-12-30
- Added: doubleclicking an item in a tree control now toggles the expansion of that item.
- Fixed: an issue where the list footer would become invisible in some scenarios.
CrystalReportsExtension:
- Added: (case 17915) printing reports now logs successful print information as well as errors to the print queue.
- Added: proper support for 're-printing' items in the report queue. That way, they won't get another entry in the queue.
- Added: print previewing now inserts an 'in progress' entry in the print queue, which is overwritten up by the report viewer screen.
- Added: (Case 18265) the 'choose printer' dialog now has the ability to let the user choose to email a report instead, or archive it on the server. In addition, the user can have a print get 'delayed' in the queue if they wish to schedule it for later.
- Added: the archived reports subdirectory now has a default value per report type. This way, all saved reports will automatically be saved into sorted subdirectories.
- Removed: if the user performs an advanced print, the windows printer dialog no longer shows up. Instead, we show the ITrack choose printer dialog, which allows choosing to email or archive.
- Added: (case 18265) a global hotkey that controls whether to automatically show the advanced print options popup during any print. This defaults to ctrl + left click when printing, but can be rebound in the hotkeys dialog.
- Added: support for auto-complete options in the email dropdown.
- Added: if the user enters a new email address in the dropdown, future email operations will 'remember' that option.
- Fixed: newly created report queue entries are now correctly cleaned up, avoiding memory leaks.
- Changed: reprinting a report queue entry no longer updates the 'created by user'.
- Fixed: crash that would occur when cleaning up report queue entries.
- Changed: if the user chooses to email or archive a report, all reporting code is skipped.
- Added: support for delayed printing and emailing. If a print job is going to be printed in the future, the print operation is skipped and logged in the queue.
- Changed: the error report field in the report queue can now go up to 1000 characters instead of being limited to the previous 250 characters.
- Added: there is a new setting ("Printing"->"Advanced print management server installed"). The advanced printing dialog now deactivates various controls if this setting is off. Essentially, any controls that require report commander to be present are disabled.
- Added: (case 19676) the advanced print dialog now has a quantity edit so that the user can easily change the print quantity without going into the windows printer dialog.
- Added: report auto-updater now creates new reports with a category of "Report".
- Added: Configure->reports page now has handling for setting a report category.
- Fixed: (case 19832) an issue where exporting a report add script with parameter values could cause a query error.
Configuration:
- Fixed: a minor flickering issue when opening up the configure->users dialog causing it to load slower.
Database:
- Added: support for new 'time elapsed' column in the reportqueue table.
- Added: (case 18727) support for delayed print operations in the print queue (reportqueue.waituntil). There is also now an index on the fields that the report server scripts uses to find printable jobs.
- Changed: the error field in the report queue can now facilitate 1000 characters.
- Added: (case 17043) an upgrade had been made to the the event that sends out scheduled alerts to handle expired items. This got missed in a previous update.
- Added: (case 11913) a new permission to control whether the user is allowed to reopen closed/cancelled investigations.
- Changed: moved a database update regarding the report queue to the next version, as version 191 went onto the AU earlier.
- Fixed: (case 19096) an issue where alert subscriptions based on expiration with negative hours until expiration would cause a database error.
- Fixed: (case 18969) cloned WOs no longer inherit verification from the original document.
- Added: (case 19164) all log entries older than 4 weeks are now archived every sunday at 1:30 AM by an event. This should hopefully keep the database trim and fast.
- Changed: (case 19164) log_change and log_changegroup have been transititioned to InnoDB instead of MyISAM engine. This is because mixing the engine types seemed to be causing deadlock behavior in some cases.
- Added: (case 8672) supplier, supplierproduct, supplierplant, and supplierfile tables for storing information about suppliers.
- Fixed: the right-clicking graphing template has been modified so that if the user uses a string column as the x axis of a scatter graph (but the strings contain numbers), the graph should look correct.
- Added: the dataclone table now has a rank column for designating the order that objects that have the same timing will be cloned in.
- Fixed: an issue where items set to clone 'at the top of the hour' would clone in the previous hour instead.
- Fixed: the description of one of the product management permissions to be more accurate.
- Added: 2 new permissions for the supplier management area.
- Added: suppliers now have account numbers.
- Added: zipcode.displaycode, which handles zipcodes that are shorter than 5 digits.
- Added: (case 8672) supplier ingredient lists are now plant specific.
- Added: supplier attachments are now plant specific. The user can check or uncheck the Global checkbox to specify whether attachments are plant specific.
- Added: workorders now have a 'source' workorderid. This tracks the document that a work order was cloned from, if any.
- Added: (case 12126) support for 'favorite' work orders.
- Added: dataclone table now has fields for 'copy additional data' (copy analysis option values with the WO) and 'copy most recent', which copies the most recent copy instead of the original template.
- Added: (case 19613) support for p_clone_data to be able to clones sample values if required. Also, added support for the ability to clone the most recent copy of a WO instead of the original.
- Added: p_clone_data now has better error handling. Specifically, if it exists with an error, all temporary tables should be dropped. Also, all work done in the procedure is part of a single transaction, no matter whether autocommit is on or off.
- Added: cloned workorders now have their sourceworkorderid set during cloning.
- Added: p_clone_scheduled_data now properly handles the clonemostrecent and cloneadditionaldata settings.
- Added: p_clone_scheduled_data now sets session variables @nDataClonesExecuted (number of data clones executed) as well as @strLastCloneError (error message from last failed data clone). This should help any code that calls this procedure to report information about what happened.
- Added: explicit transaction committing between each clone operation to ensure that some documents are saved even if one fails.
- Changed: dayofweek is now used instead of dayoffset to figure out which day of the week a Weekly schedules are run on.
- Changed: the bulk of f_get_next_data_clone_date has been moved to f_get_next_schedule_date so that it can be called for unsaved schedules.
- Fixed: f_get_next_schedule_date now properly returns the 'next' occurrence date if the current schedule period has passed.
- Added: new permission for controlling what plants a user can manually copy documents at.
- Added: comments to the report table columns.
- Added: report.category, which defaults to the same as report.type.
- Added: speed index to the report table based on name.
- Added: (case 19865) report.name is now enforced unique per report type.
- Added: (case 19467) notes for why a report subscription exists
Graphing:
- Fixed: a couple issues that could cause javascript errors, keeping the graph from displaying. These mainly occurred if the user didn't specify any analysis types.
- Added: (case 12785) support for searching by work order type. This supports id (faster) and by name (supports wildcards).
Home:
- Added: any javascript errors encountered on any pages being navigated to will now be automatically suppressed on client systems, but not in testing.
Investigation:
- Added: (case 11913) there is a new button that controls whether the user is allowed to reopen closed/cancelled investigations.
- Fixed: an issue where, if there were multiple pages of investigations, the next/previous spin area might not be visible on some screen sizes.
- Fixed: (case 19227) an issue where searching investigations by analysis would not work. Using a wildcard in the analysis dropdown would find all analyses, no matter what.
- Added: hitting enter when on the investigation history page will now perform a search.
libITSQLFramework:
- Fixed: the timestamps in the query log now use local times instead of UTC times. Also, the values are formatted a bit more logically.
PrintQueue:
- Fixed: (Case 17810) All errors are now written to file and an exception has been added for writing errors to the database.
- Fixed: (Case 18665) Added timers, written to db. It should also update lastsenton.
- Fixed: (Case 18160) Now has an enterprise handler that should pull in printers using f_get_setting.
- Fixed: (Case 19360) Syntax errors and handling for when no parameters are passed.
- Fixed: (Case 19360) removed an errant else clause possibly causing failure loops
- Fixed: (Case 19360) execution time now correctly quoted.
- Fixed: (Case 19360) PrintQueue now handles missing reports instead of crashing
- Added: (Case 18528) error reporting emails
- Fixed: (Case 18430) Now enabled report commander's native error logging. -v flag effects it. To set a custom logfile, a new config setting 'reportcommanderlogfile' exists.
- Fixed: Printing reports no longer makes a pdf
- Fixed: Saving files to folders no longer deletes them
- Fixed: (Case 18727) Now supports a waituntil date/time which specifies when a report should print.
- Fixed: (Case 19605) Printing to the selected printer now works for reports that have No Printer checkbox checked in the crystal report file.
- Fixed: (Case 19718) Python now corrects the product config setting from ITrack Enterprise to ITrackEnterprise
- Fixed: (Case 19406) We now group_concat on | for parameters to avoid splitting off and ignoring subquery parameters.
- Fixed: (Case 19766) Email delimiter is now a comma instead of a semicolon in the destination field of the reportqueue table.
- Fixed: (Case 19484) Printqueue now uses f_set_setting to let the other products know that the Advanced Print Management Server is installed.
- Added: a bunch of comments to make PrintQueue.py simpler to understand, as well as a convenience method for query error handling.
- Fixed: (Case 19850) Added some error handling for when queries return no results.
- Added: (Case 19850) Added a setting emailerroron, which when set to False will turn off email error reporting
- Fixed: (Case 19850) Allowed not specifying a printer.
- Fixed: (Case 19878) Fixed another crash
Products:
- Changed: when deleting a product that is not on any samples or thresholds, the confirmation of deletion dialog will now say its on 0 samples so that the user knows it is safe to delete.
- Added: (case 8672) Suppliers page next to the ingredient/product management page.
- Added: (case 8672) the supplier management area now has a detail page and attachments page, similar to product management.
- Added: 2 permissions for supplier management, which match the product management permissions.
- Fixed: the product attachments page was not correctly locking itself down if no product was selected.
- Added: (case 8672) supplier management now has a ingredient list to track which ingredients a supplier provides.
- Added: supplier attachments now have a due date. The due date can be black, blue, or red based on when the document expires.
- Fixed: an issue where hitting add product didn't work if no existing product was selected.
- Added: the ingredient list in supplier management now updates in realtime if the user adds/edits/removes ingredients.
- Changed: plant-level edit suppliers permission now allows the user to edit attachments/documents on a supplier as well as ingredient lists.
- Changed: new supplier attachments now default to plant specific documents.
ReportViewer:
- Added: print queue page now has columns for report type as well as report name.
- Added: column for the new execution time value.
- Added: the print status column is now bolded and color coded.
- Added: notes and error info columns are now multiline edits for easier reading.
- Added: the user can now edit notes on each queue entry.
- Added: support for reprinting items in the queue now updates the execution time as well as parameter values for the existing entry.
- Added: clicking the 'cancel' button (little red x) while a preview job is running now cancels the job completely.
- Added: cancelling a preview either with the little red x or by closing the screen now updates the print queue with a status of Cancelled.
- Added: previewing reports now correctly saves the execution time in the repot queue as well as when it was previewed.
- Added: errors that occur during print preview are now reported with the same error reporting box as all other printing errors. These errors are also saved in the print queue.
- Fixed: any queued report that is sent to the previewer will now correctly save "Preview" as the destination for the report.
- Fixed: an issue where reprinting reports by sending them to preview would cause a new queue entry to be created.
- Changed: the report viewer tab now shows report categories and report names in a tree instead of 2 lists.
- Added: report categories can now contain multiple levels and are no longer attached to the report type (what button it prints from).
- Added: buttons for setting which reports are a user's favorites.
- Changed: deselecting a report now makes various parts of the screen read only.
- Added: the report and parameter lists now save and load their column order and widths.
- Added: when reports are first loaded up (or they are reprinted) various pieces of meta-data are loaded for the report, including average execution time, who ran the report last, a well as how often it is run.
- Added: (case 19808) support for adding reports to the user's favorite reports. All favorite reports show up in a special "* Favorites" area.
Sampling:
- Fixed: (case 18226) when the user checks or unchecks an analysis to search, it is grouped at the top of the list, making it easier to see which items are checked.
- Fixed: a bunch of issues where the graphing tab would flicker when showing a new graph, and situations where the address bar and buttons would not be visible.
- Fixed: cases where the refresh button would not work.
- Fixed: an issue where all data for all time would be graphed in some situations (the user went to the graphing tab without performing a search or they hit clear). Now, a blank page is shown instead.
- Added: a wait cursor now appears until the graph is completed. This is helpful for knowing when particularly large graphs are still being rendered.
- Fixed: an issue where performing the same search more than once would show a blank graph page until the user clicked on it.
- Added: (case 12785) there is now a work order type dropdown when doing sample searches.
- Changed: if the graphing web page has a javascript error, that is now suppressed rather than being shown to the user.
Settings:
- Fixed: an issue where the print queue page on the report viewer screen would incorrectly ignore the 'show printed' checkbox.
- Added: support for print logging in the report queue.
- Added: support for mouse buttons in key bindings.
- Added: doubleclicking a keybinding now allows the user to immediately rebind that action.
- Added: support for an email auto-complete in the email dropdown when printing reports to email. Currently, the email auto-complete contains all user emails as well as historical emailed reports.
- Performance: when a user closes a screen, column order is now saved with an INSERT ON DUPLICATE KEY UPDATE instead of REPLACE INTO, which will reduce traffic and disk writes.
- Added: support for some new features on the report viewer screen.
- Added: support for report categories.
- Fixed: (case 19255) an issue where user settings would not save any changes if the user logged out and logged back in before closing the application.
WorkOrders:
- Added: a new button for copying the currently loaded WO, as long as the user has permission to create new WOs.
- Fixed: if the WO screen gets saved but no WO is loaded, the user will not get an error that the WO is empty.
- Added: if the user opens a WO, the edit work orders page is now automatically activated.
- Added: if the user does not have permission to manage automatic work orders at any plants, the automatic WOs tab is completely hidden.
- Added: A new 'automatic work orders' page where the user can configure automatically generated WO documents:
Automatic Work Order Scheduling:
- Added: (case 12126) button to send historical workorders to new schedules.
- Added: support to remove existing scheduled documents.
- Added: the user can now add/remove workorders as favorites.
- Added: checkboxes to control whether the user wants to see open, closed, and non-favorite work orders.
- Added: whenever a schedule type is chosen, the various schedule parameters will become editable or readonly.
- Added: support for a new permission to control whether the user can add automatic WO cloning.
- Added: the historical WO list now sorts favorites at the top.
- Added: a check to ensure that weekly schedules aren't saved without a day of the week to clone on.
- Added: a 'next scheduled occurrence column, which shows information about when a schedule will execute next.
- Added: double-clicking a historical WO will add that item to the scheduled WOs.
- Added: a button to clone any selected historical documents. This is useful when work orders can't be scheduled regularly. The user can choose to clone the WOs with values or without.
- Added: a button to execute selected WO schedules to clone the documents immediately.
- Added: a button to rerun all saved WO schedules immediately. This effectively "Re-runs" all schedule checks that should've been executed in the previous hour. If any WOs are cloned, the user is told and they are given the ability to open the last one. If there are any errors, the user is told. If all WOs were cloned successfully in the last hour, nothing will be created.
Reports
- Fixed: (case 20012) a bug in Investigation Overview causing the original sample to show twice instead of including any investigation samples.
- Added: (case 19211) Investigation Overview, a new report that looks at investigations. Original sample is starred.
- Added: (case 19710) the ability for more fields to be able to grow without cutting off on the Certificate Of Analysis report.
- Added: (case 19636) a new report for printing LA barcodes on demand, LA Label.rpt. The location and analysis parameters supporti the wildcard * so more than one combination can be selected at a time.
- Changed: (case 18715) combined Analysis and Category parameters into one on Failed Results report.
Version 1.9
REV 16767-17048 1.9 database version 190
CommonResources:
- Fixed: (case 15799) if the user deletes a default option value from a work order, it will no longer be replaced by the 'default' value.
- Added: (case 17193) if the work order type changes, the product/ingredient will now be emptied if the new work order type doesn't support products or ingredients.
Database:
- Fixed: an issue with a previous update setting workorders to open that were supposed to be closed and vice versa.
- Fixed: an issue where p_clone_data was throwing a database error when cloning work orders.
- Added: (case 17044) the user can now subscribe to alerts when investigations are Created, Modified, Opened, or Closed (Resolved).
- Changed: (case 17420) work order due date is now a date/time instead of just a date. For backwards compatibility, all existing due dates now have a time of 11:59 PM to match previous behavior.
- Added: (case 17043) preliminary support for subscriptions to alerts on work orders that have expired or are going to expire in a set number of hours.
- Added: an index to make lookups by due date faster.
- Added: (case 17385) a new column to alertsubscription that allows a subscription to only be sent if there are required options that are not filled out.
- Fixed: alertsubscription.active was not being properly respected as a way to disable alerts.
- Added: (case 17385) alert subscriptions can now be restricted to only when required option values are missing.
- Added: (case 7828) a new table for creating rules for automatic investigation creation.
- Added: several columns to the investigation table to track information about new automatically created investigations.
- Added: f_get_item_in_subtree, which checks to see if a locationid or productid is the descendant of another locationid or productid without dynamic SQL.
- Added: (case 7828) f_sample_values_updated now looks at the investigationtrigger table to see if any of the modified option values require an automatic investigation to be created.
- Changed: f_sample_values_updated now no longer updates option value acceptability for option values that were already calculated. This should prevent closed samples from being recalculated from new rules.
- Added: (case 12969) a permission that controls whether the user can add new work orders (defaults to the same as the user's ability to edit work orders).
- Fixed: (case 16886) when the user performs right-click graphing and numeric values being graphed are empty, they are no longer graphed as 0. Now, such values are not present in the graph.
- Changed: (case 17570) the investigation field findings has been renamed to corrective action and a new preventative action field has been added.
- Added: (case 17716) sample.sourcesampleid, which will track when one sample is cloned from another.
- Added: (case 17716) p_clone_sample now copies the original sampleid into sourcesampleid, so that we can know when one sample clones to another.
- Added: (case 15895) recipes now have a batch unit.
Home:
- Added: (case 17420) due date and date created now display date and time in the work order list.
- Fixed: work orders that are due today (but have not yet expired) are now properly shown in blue instead of red.
Master:
- Added: (case 13008) when the application cannot reach the local database during an update attempt, the original MySQL error is now sent out as part of the error report, instead of the current, generic Database error 0 that we currently get.
- Changed: (case 17194) we disabled some of the COM timeouts in the application, as this seems to make exporting reports from the crystal reports previewer not show erroneous 'server busy' messages.
Products:
- Added: (case 15895) each recipe can now have a batch unit filled out.
Graphing:
- Added: support for analysis level acceptability filters (showing samples with at least one option value that is acceptable/marginal/unacceptable).
- Fixed: when a graph is filtered by the collected by user, the graph will now correctly be filtered.
- Added: (case 15834) if results were on samples with no location, the location information in the hover text now shows NONE for the location.
Investigation:
- Added: (case 15708) support for screens sending a specific investigation to the screen to be viewed. If the current set of results has the investigation in question loaded, it will be selected. Otherwise, that item will be loaded first.
- Changed: the screen icon has been updated from the generic icon.
- Added: (case 7828) the constraints page now has a list of all rules being used to automatically create investigations.
- Changed: constraints tab renamed to Rules.
- Fixed: an issue where changing location wasn't saving the correct value.
- Added: adding and deleting investigation rules now works correctly.
- Added: closing the scree with changes to investigation rules now prompts the user to save.
- Added: support for deactivating investigation trigger rules.
- Added: the description column for investigation rules now automatically generate in a human-readable string based on the choices made in the other columns.
- Added: default comments now are now set automatically on new investigation rules. This way the user will know more about why an investigation was created.
- Changed: the comments and findings fields on the investigation history screen are now 'multi-line' edits, so the user can enter multi-line data more easily.
- Added: (case 17570) the investigation field 'findings' has been renamed to corrective action, and a new preventative action field has been added.
- Added: (case 17680) the analysis dropdowns on the investigation history tab are now all plant specific. Other plants' analyses will no longer show up here.
- Added: (case 17680) the automatic investigation constraints page now only shows plant-specific analyses in the dropdowns.
- Added: (case 17569) there is now an analysis category column in the investigation history as well as a filter. When the user uses the analysis category to filter, the analysis dropdown is not usable as a filter.
- Added: (case 17647) investigations now show the sampled by/date of the original sample, and each investigative sample also shows a sampled by/date.
ITSQLFramework:
- Added: Error reports now have a "Force advanced information" option. If this is set to true, when the error message is displayed, the 'advanced info' checkbox is automatically checked (and hidden). This is useful when code wishes to use the error reporting box as a normal error popup but we can't gaurantee that everyone views advanced info.
- Fixed: an issue where very long words (like a URL) were not properly resizing the height of the message body in the error message popup.
ITMySQLConnection:
- Updated: local connection library version updated to version 6.1.5
SamplingHistory:
- Added: (case 17004) the user can now specify an acceptability filter at the analysis level, rather than just at the option level. Filling this out will filter to just those samples that have at least 1 option value with the chosen acceptability.
- Changed: various tooltips to be clearer and more concise.
- Changed: (case 17004) the acceptability default in the filter options has been moved to the new search defaults area. In addition, it now controls just analysis acceptability instead of option acceptability filters.
- Added: the search defaults area now has a 'show all options' checkbox. When checked, any analysis added as a filter will automatically select all options to be shown in the results. When unchecked, the user must choose options to display manually.
- Added: right clicking in the analysis/option list now allows the user to quickly show/hide all options for a chosen analysis.
- Added: graphing pane now supports analysis level acceptability filters.
- Fixed: (case 17466) an issue where analyses that were not supposed to be shown were being shown in the results.
- Added: (case 15708) any loaded samples that generated an investigation, or were generated by an investigation will now show an attention icon. Depending on the sample's association to the investigation, one of 2 icons will be shown. Double-clicking either one will open that investigation on the investigation screen.
- Fixed: an issue where saving changes would not immediately display the updated colorization on unsaved option values or remove the 'save' icon on modified rows.
- Added: saving samples now refreshes investigation status based on the new automatic investigation creation system.
WorkOrders:
- Fixed: (case 17532) an issue where changing a value on a sample might set all other option values back to the default values.
- Fixed: an issue where the user would be unable to edit a new work order if they didn't have permission to edit WOs not assigned to their group, and the default WO type had a group the user didn't belong to.
- Added: (case 15708) any loaded samples that generated an investigation, or were generated by an investigation will now show an attention icon. Depending on the sample's association to the investigation, one of 2 icons will be shown. Double-clicking either one will open that investigation on the investigation screen.
- Added: (case 17420) due date now allows the user to specify a time in addition to a date for the WO to be due.
- Changed: date created now shows time in addition to date.
- Fixed: an issue where date created was not saving a time, just a date.
- Fixed: whether the finalize/close WO button is greyed out or not is now refreshed when the document verified checkbox is changed.
- Added: (case 7828) if the user modifies any option values and saves, the system will now examine all automatic investigation creation rules and see if an investigation needs to automatically be created.
- Added: on save, investigation status is now refreshed for all samples in case an investigation was created (either automatically or by another user) since the user opened the WO.
- Added: (case 12969) saving WOs now throws an error if the user is creating a new work order at a plant they don't have permission to create a WO at.
- Added: (case 12969) if the user has no permission to add WOs at any plant, the work order interface is locked down.
- Added: (case 15895) in the production page, when a recipe is selected, that recipe's batch unit is now shown.
General/Controls:
- Fixed: (case 17707) a crash that would be caused when hitting the up arrow in an advanced combo box when nothing was selected.
- Fixed: an issue where paging combo boxes weren't correctly 'going to a page' during setting initial text.
- Fixed: (case 17672) an issue where deleting all items from a list could leave dead whitespace in the list when new items are loaded back in.
- Fixed: an issue where a variable was not initialized, leading to somewhat random behavior on ITDateTimeCtrl's where their style was set to date and time.
- Fixed: an issue where ITDateTimeSetting::Reset was working inconsistently and could create an COleDateTime that was invalid.
Reports
- New Report: Choices and Thresholds (case 17854): This is a report that everyone could benefit from if they like the Analysis Management Screen but need to see more than one option at a time. It has a combined parameter that lets you filter by Analysis Category, Name, and Option - wildcard supported.
- Updated Report: Failed Results (case 17342): Added a parameter option for all plants, changed report type to Production, changed default date range to yesterday-yesterday, removed Acceptability column, swapped two columns' order.
Version 1.8.1
Database:
- Added: (case 11565) there are now tables for scheduling reports to be run and either saved into a directory, emailed to a recipient, or printed out of a network printer.
- Fixed: an issue where the event that creates schedule instances would thrown an error if the start date was set to '0000-00-00'.
ITMySQLConnection:
- Fixed: an issue where errors that happened during StoreMultiple were not being reported in any way (so long as the syntax of the entire query string was correct). Now, if any part of the query set fails, the entire thing fails and it stops grabbing results. This may cause false-positives in some situations where 1/10 queries is allowed to fail, but since each ITSQLResult cannot report the error of an individual query, I think this is the best we can do for now.
ITrack.exe
- Changed: (case 17194) we disabled some of the COM timeouts in the application, as this seems to make exporting reports from the crystal reports previewer not show erroneous 'server busy' messages.
ReportsExtension:
- Fixed: an issue where date parameters with no default value might cause an error when previewing or printing.
ReportViewer:
- Fixed: (case 17162) if the report viewer screen was closed while a report preview was being built, or the user previewed a different report altogether, a crystal error would sometimes appear and it would occasionally keep the report viewer from previewing new reports. Now, we attempt to cancel the current preview and the user must wait for this cancellation process before closing the screen.
- Fixed: an issue where date parameters might sometimes not display correctly.
- Added: the report queue tab now works with the new report queue fields. Also, we now display notes and error message on the screen.
Sampling:
- Added: (case 17176) the user and time of WO approval are now in the 'work order fields' that the user can show on samples' history.
- Added: (case 17004) the user can now specify an acceptability filter at the analysis level, rather than just at the option level. Filling this out will filter to just those samples that have at least 1 option value with the chosen acceptability.
- Changed: various tooltips to be clearer and more concise.
- Changed: (case 17004) the acceptability default in the filter options has been moved to the new search defaults area. In addition, it now controls just analysis acceptability instead of option acceptability filters.
- Added: the search defaults area now has a 'show all options' checkbox. When checked, any analysis added as a filter will automatically select all options to be shown in the results. When unchecked, the user must choose options to display manually.
- Added: right clicking in the analysis/option list now allows the user to quickly show/hide all options for a chosen analysis.
- Added: graphing pane now supports analysis level acceptability filters.
- Fixed: (case 17466) an issue where filters might apply to options on other analyses.
Sample Graphing:
- Fixed: an issue where the user might get 'all series must share the same type' error if they were mixing date options with non-date options.
- Changed: the graph will use a date Y axis if all the options being graphed are dates or times. Otherwise, these series are hidden.
- Added: the format of the information popup has been changed to be more readable and to include the plant code.
- Fixed: the format of dates (date/time options only) in the information popup has been changed to be easier to read.
- Fixed: an error that could occur if the URL contained no option filters.
- Added: support for analysis level acceptability filters (showing samples with at least one option value that is acceptable/marginal/unacceptable).
Version 1.8
Controls:
- Fixed: (case 16370) an issue where the application might crash if the user typed something into a dropdown that didn't match an item then clicked outside of the combo.
- Fixed: (case 16002) an issue where using the mouse to click (confirm selection of) the first suggested now properly selects the item. This was only causing trouble when the user would look items up by something other than the start of the item text.
- Fixed: a crash that could happen if SetColumnWidth was called on a non-existant column id. This would happen in some scenarios due to resizing before columns were added.
- Fixed: an issue where combo boxes were not scrolling correctly in windows 10 with the 'scroll inactive windows' windows setting on (which is on by default).
- Fixed: an issue where clicking on the scrollbar of a combo box could affect how the mouse worked, such that the user could move the application without moving the dropdown window.
- Added: support for mouse scrolling in combo boxes for any mouse wheel with customized sensitivity.
- Fixed: an issue where close buttons in a list were sometimes showing in the wrong spot on list controls that hadn't been resized yet.
Graphing:
- Added: (case 15353) there is now a 5% buffer around the outermost data points in the graph.
- Changed: (case 13333) filling out only a from or a to value will no longer do an 'exact' search. Now, they will do a range search. So entering a 'from' value of 5 will search for everything equal to or greater than 5. This only applies to range searched option types.
- Added: (case 15673) support for switching between the AND and OR operation regarding option value filters.
- Fixed: date/time option filters now work correctly.
- Changed: date/time options were not graphable previously. Now they should work. Currently, showing thresholds is incompatible with graphing dates.
Analysis:
- Changed: (case 15289) newly created thresholds now default to Unacceptable instead of Marginal.
Configuration:
- Changed: (case 14473) the home screen graphing URL and the sampling history page now use global settings instead of plant settings to store these values.
- Added: (case 15217) work order type configuration now supports setting whether a verification step is required for a particular WO type as well as a default verification user group.
CommonResources:
- Added: (Case 15331) the Products->Configure Recipes page now has a new column in the ingredients list where the user can specify whether the thresholds are considered 'fixed' or 'per-batch'. This controls whether thresholds on recipe options are calculated against WO totals or against average per-batch values. This functionality only applies to numeric options when batch and production volume is not 0.
- Added: threshold type defaults to matching the ideal value type (Fixed or Per-Batch). If the ideal value is 'Calculated', the threshold type can be either fixed or per batch.
- Fixed: a possible crash when launching a tree report dialog.
- Added: an icon to the inspect value button on the sampling detail page.
- Fixed: the remove button is no longer clickable when no item is selected.
- Added: support for a new permission "Can edit work orders assigned to other groups". If the user doesn't have this permission, they cannot edit samples/WOs assigned to user groups that they are not in.
- Fixed: an issue where the attachments dialog was always editable. Now, the user can only edit attachments on samples they could otherwise modify (all permissions present and sample is still open).
- Added: The sample detail page now has tooltips for all UI items.
- Added: (case 14077) the user must now have the permission to delete saved samples in addition to the ability to edit samples in order to delete a sample.
Database:
- Fixed: an issue where alerts' email body could not exceed 64KB.
- Added: nightly sample alerts now properly respect restrictions on analysis, plant, group, product, etc.
- removed: several unused settings.
- Added: there is now a stored procedure that will clone all data that needs to be cloned for the specified date/time. The hourly event now calls this function.
- Changed: (case 14473) the home screen and sampling history URL settings have been moved from plant settings to global settings.
- Added: (case 15331) support for analysis options to have Per-Batch thresholds as well as Fixed thresholds. These control whether thresholds on recipe options are calculated against WO totals or against average per-batch values. This functionality only applies to numeric options when batch and production volume is not 0.
- Added: (case 15331) option value calculation functions have been modified to support new Per-Batch thresholds.
- Added: lot number and expiration date to all option values. This will mostly only be used for production work orders.
- Added: (case 15217) the workorder now has a status field, which can be Open, Sampled, Closed, and Cancelled, similar to sample statuses.
- Changed: various triggers to match the new workorder status field.
- Added: (case 15217) support for WO verification to WO types.
- Fixed: an incorrectly named permission
- Added: (case 15217) a new permission that controls whether a user can edit work orders that are assigned to other groups. This permission has been auto-granted to all users who could edit work orders previously for minimum impact.
- Added: (case 15217) a new permission that controls whether a user can verify work orders.
- Added: (case 5844) most important presage tables now have logging turned on by default, rather than relying on users to ask for it. This will add a certain amount of slowness.
- Added: (case 14077) a new permission that controls whether a user can delete saved samples from a work order. All users with the permissionn to edit work orders automatically have this permission to minimize disruption.
Home:
- Changed: support for new WO status changes.
Investigations:
- Added: (case 12417) all readonly columns now have a slightly gray background to help the user to know what columns can be edited.
- Added: (case 12417) the investigation detail list now shows the sampling comments and testing comments of the samples in question. These fields can be edited from this screen directly.
- Changed: (case 12417) the result field now has option labels as well as option values. Also, the investigation only shows options that failed on the original WO. In addition, follow up WOs only show values for options that failed on the original document or that failed on the retest.
- Added: list column order and widths are now remembered when the screen is closed.
ITMySQLConnection:
- Fixed: an issue where an error would occur during connection (though it would not be shown to the user). This was causing a small delay on every launch of ITrack. Also, connecting via named pipe should work correctly now.
Login:
- Added: all groups the currently logged in user is part of are cached for faster group checking. Also added some external functions for other screens to utilize this information.
ReportViewer:
- Fixed: (case 15785) an issue where key choice parameters were displaying the incorrect value as soon as the user chose a value.
- Fixed: (case 15785) an issue where date, time, and date/time fields would display default values in a different format than the user's windows setting for date/time format. This was leading to those fields losing their default value.
- Fixed: (case 16029) entering a date before 1970 will no longer cause date-time pickers in the list to throw an error message that the user cannot clear. The user should now be able to enter any date back to 1601 (limited by the windows date time controls).
- Added: (case 16246) if the EDocuments extension is not loaded, the report viewer will attempt to continue using dynamic report parameters anyway. This could lead to database errors for some more complex reports, but it should be very rare. If the EDocuments extension could not be found during dynamic report processing, the status bar will now show a warning.
- Fixed: reports now show in alphabetical order.
Sampling:
- Fixed: an issue where filling out an option choice would check the option 'use' checkbox for displaying the option in the results, but the option would not be displayed in the Results.
- Added: after performing a search, when the search pane shrinks, all selected options will be scrolled into view so that its easier to tell what was searched for.
- Changed: (case 13333) filling out only a from or a to value will no longer do an 'exact' search. Now, they will do a range search. So entering a 'from' value of 5 will search for everything equal to or greater than 5. This only applies to range searched option types.
- Fixed: an issue where date/time option filters were not being sent to the graph correctly.
- Added: (case 15673) a new checkbox in the advanced search options that toggles between using AND and OR between analysis option filters and acceptability. Essentially this allows the user to choose between searching for "value between 1-10 AND value unacceptable" or "value between 1-10 OR value unacceptable"
- Added: tool tips for all controls on the sample search page. Now, the user can hover over any controls to see info about their purpose.
Settings:
- Fixed: (case 15442) an issue where global settings were not loading correctly. This was causing those values to be overwritten when the user would close the application.
WorkOrders:
- Removed: (case 15860) closing a WO no longer suggests sending a notification.
- Added: lot number and expiration date to all steps/ingredients on production work orders. These are optional, and allow the user to enter information for ingredient traceability.
- Changed: for simplicity, the options in the Set Status dropdown button are hidden for samples when on the recipes page and vice versa.
- Changed: there is no longer a second apply button in the sampling detail page.
- Added: (case 15217) there is now a checkbox for marking a work order as verified. Currently this operation can be performed after a document has already been closed, or before.
- Added: (case 15217) a 'verified by' and 'verified on' fields which are set to the current user and time when a document gets marked as verified.
- Added: support for a new permission "Can edit work orders assigned to other groups". If the user doesn't have this permission, they cannot edit WOs assigned to user groups that they are not in.
- Added: support for a new permission "Can verify work orders". If the user doesn't have this permission, they cannot mark a document as verified.
- Added: work order types that require verification no longer allow the user to close them without verification.
- Added: new status checkbox "Work Completed" which represents the state where a work order has had all its work completed and all data entered. This state implies the document is ready to be verified, but still allows modification (unlike closed).
- Fixed: an issue where the user could reopen a WO when they didn't have permission.
- Fixed: several rare cases where the user might be able to affect a document they didn't have permission to edit. Now a user without permission to edit a WO can only print the document (no saving occurs).
- Added: icons to several buttons.
- Fixed: several 'sanity checks' on sample data was being skipped if the document was being closed. They are now performed even if the document is being closed.
- Changed: if a WO is completely filled out, the user is now asked if they wish to: "Leave WO Open", mark the WO as "Completed", or mark the WO as "Closed". The closed option can only be chosen if the WO is verified or the WO type doesn't require verification. This replaces the old pop-up where the user is asked if they want to close a WO because all data is filled out.
- Added: the user can now verify work orders that they do not have the ability to edit. This allows creation of users who verify work but do not have the ability to edit said data.
- Added: if the status of a work order goes from Open to either Work Completed or Closed, the assigned to group will be assigned to the verification group specified on the work order type.
- Added: verifying and un-verifying WOs works now and sets the verification date and verified by user.
- Added: The edit work order page now has tooltips for all UI items.
- Added: the sample schedule page now has tooltips for all UI items.
- Added: the production page now has tooltips for all UI items.
- Added: (case 13590) a refresh WO button, which reloads the current work order from the database.
Version 1.7.1 (Hot fix)
CommonResources:
- Fixed: a minor misspelling.
- Fixed: the edit default value dialog no longer shows "Recipe Volume" and "Batch Volume" when editing default formulae for sample options.
- Fixed: (case 15534) an issue where the user could not create default value formulas that involved new (unsaved) analysis options.
- Added: (case 15218) changing the default value to "" will now automatically check the "Fixed" value radio button. Entering something that looks like a formula will now automatically check the "Calculated" radio box.
Database:
- Fixed: an issue where the scheduled alerts were not being sent correctly.
- Fixed: (case 15377) a possible issue where saving a WO might fail with an error.
- Added: the data clone procedures now log the id of the new document that was created for easier debugging.
- Removed: a setting that is no longer used.
Sampling:
- Added: (case 15410) the user can only filter a search by 25 or fewer analysis options. This avoids a database error that can happen if it gets above that value.
- Fixed: (case 15411) an issue where searches that returned more than one result (or performing a search more than once) could cause the "Show Testing/Sampling Details" checkboxes to be hidden.
Settings:
- Fixed: GetCompanyCode now properly gets the presage company code from the appropriate setting.
- Fixed: (case 15442) an issue where changing global or plant level settings and saving would temporarily change the setting, but it would be reset later.
WorkOrders:
- Fixed: an issue where WOs would show other plants' analyses.
Version 1.7
General:
- Fixed: (case 14319) an issue where double-left clicking in an edit did not select the entire word that was clicked on.
- Fixed: lots of minor issues with dropdowns not working as expected.
- Fixed (list control): (case 14353) if a pop-up happened (or something caused the mouse to move) during WM_ITLC_CELLTEXTCHANGED or WM_ITLC_EDITKILLFOCUS when the user was left clicking somewhere in the list, it was possible that when the modal dialog box was closed, the current mouse position would be used for click handling or drag & drop handling, causing items to get rearranged strangely.
- Fixed (list control): a minor issue where columns wouldn't always resize to fill the entire list
- Fixed: an issue where a property page that was initially hidden would have its tab text set to "" when it was first shown.
- Fixed: an issue that could cause an advanced combo to ignore the first selection change the user made by clicking.
- Added: (case 14918) the page up/ page down keys now scroll a whole page in all combo boxes.
- Fixed: a long-standing issue where date-time fields in a list control would not draw the up/down arrows correctly until the user put their mouse over them.
Analysis:
- Fixed: (case 14514) an issue where the analysis screen would crash when the plant was changed on the analyses tab.
- Added: (case 12811) support for upcoming recipe features.
- Fixed: the check threshhold dialog should no longer show inactive products/ingredients in the dropdown.
CommonResources:
- Fixed: an issue where calcualted values weren't being calculated correctly if they were not the last option on the analysis.
- Changed: (case 12811) the analysis management page has moved from the Analysis module to the common resources module. This should not affect program behavior.
- Added: (case 12811) recipes and ingredients now support quantities. Ingredient quantities now allow fixed values, per-batch quantities, and calculated values.
- Removed: samples can no longer be created for recipes
- Fixed: the print tags popup no longer has memory leaks.
- Fixed: the print tags popup now has a layout and text prompts similar to other screens.
- Added: icons to the buttons in the print tags popup.
- Changed: (case 14964) some of the work done by the sample list has been moved to a shared interface to benefit the new recipes page.
- Added: support for 'per batch' default values, which are multiplied by the ratio between the production volume and the batch volume.
- Added: support for new variables in calculation formulas: batch_volume and production_volume, which are filled out by the corresponding values when performing calculations.
- Added: (case 13307) many fields from the work order are now visible per sample in the sample results.
- Added: (case 13307) there is now a 'show work order detail' which shows/hides work order columns in the list.
- Changed: the sampling and testing comments are now visible no matter even if the user is hiding sampling/testing fields.
- Added: (case 15329) recipe ingredients and instructions that use a checkbox now default to showing an ideal of "True".
- Fixed: (case 15329) an issue where boolean ingredients/instrucitons would always show False as their ideal value.
- Fixed: (case 15159) inactive products/ingredients no longer show in the analysis configuration page or the sample detail page.
Configuration:
- Added: the Configure Work Order Types page now allows the user to choose a default user group to assign those WOs to.
- Removed: (case 10566) creating a new user no longer copies over info on the basic information tab
- Removed: creating a new user now deselects the previously selected user(s) so that changing the new user won't accidentally update other users as well. The user can still multi-select users if they wish.
- Fixed: (case 14468) an issue where, if all users were deselected, the permissions on the permissions tab were not reset to None. This was a problem because new users were getting the last selected users permissions, which was not an obvious behavior.
- Added: the connectivity tab is now laid out more like the other tabs.
- Added: (case 14588) there is now another URL on the graphing page for the home screen graphing URL. The default goes to http://home.presageanalytics.com/graph_advanced.php?userid=...&plantid=...&productcode=...
CrystalReportsExtension:
- Removed: Edit->Options->Reports. This page has been moved to its own configuration screen because it affects all users, not just the local machine. Some users were accidentally changing reports when they meant to just configure their printers.
- Added: Configure->Printers. This is a permission-controlled dialog for managing all reports, system-wide.
- Added: Edit->Printers. Since this is a semi-common user operation, the printers page has been given its own edit dialog. For now, it still appears in edit->options as well.
- Added: support for retrieving information about a crystal report file loaded from the system. We can read parameter names and types as well as page orientation and desired paper type.
- Added: the rank column is now present in the Configure->reports dialog.
- Added: if the user adds new Report(s) from a file (through drag and drop or the add button), the report file is scanned for parameters and paper orientation. This information is auto-populated into the new report.
- Added: support for managing fixed report parameter values in the configure->reports dialog.
- Added: the advanced button now has a 'export selected reports' option. This will create a .SQL file with queries that will create the selected reports, parameters, and parameter values on any database. This will only be useful for someone who wishes to manage their own report files (rare) as well as the application support team.
Database:
- Changed: (case 13327) location code can now be a full 50 characters.
- Added: (case 14235) new field for tracking default worker group for new WOs of that type.
- Added: (case 14253) a field for tracking default group per work order type.
- Fixed: (case 14382) an issue where some WOs would fail to clone because they were too large. This could also affect creating a new WO with many samples on it.
- Added: (case 14514) to support upcoming changes to recipes, analyses and analysis options have been extended with some extra fields for tracking necessary data.
- Fixed: WOs without any failures might send out alerts even if the user was subscribed for alerts for failures only.
- Fixed: an issue where email alerts were thinking that they failed when they had succeeded. Error handling should be somewhat more accurate for both Windows and Linux systems.
- Fixed: the triggers for sending 'on modified' alerts for samples, values, and WOs weren't being fired correctly when an unacceptable value was entered during the initial save for a WO.
- Updated: a trigger to remove references to a field that has been removed.
- Fixed: an issue where alert triggers might fail on large WOs.
- Added: support for scheduled alerts. These can follow any schedule, for example: a nightly email of all failures that happened that day.
- Added: alerts can now be deactivated with being deleted.
- Added: support for the alert type 'Daily Samples', which will send all matching samples that were performed on the given schedule.
- Added: a weekly overnight event that will ensure all schedules have instances for at least a year into the future.
- Added: (case 14694) sample.productionvolume, which will store the volume that is going to be produced on by a recipe sample.
- Added: there is now a workorder type flag for saying whether WOs of that type should show the new recipes page.
- Removed: logging triggers from areas where they shouldn't exist.
- Added: analysisoptionvalue.defaultvalue. This will contain the last calculated default value for any option value (or recipe ingredient). This is important for reports that want to show ideal ingredient quantities as well as whether or not values have been modified from the default.
- Added: a new permission for the configure->reports dialog.
- Fixed: (case 15128) an issue where nightly scheduled WOs weren't being created.
- Fixed: an issue where an object that was deleted before an alert could be sent would cause replacement tokens to remain in the alert body. Now, those values will be replaced with empty strings.
- Fixed: (case 15287) an error that would happen when the user was saving new recipes.
DataManagement:
- Fixed: an issue where the record terminator wasn't displaying a linebreak correctly. Essentially, tab will now be shown as \t, and newline will be shown as \r\n or \n. Also, an escape character of \ will now be displayed as \\ for consistency.
Graphing:
- Fixed: (case 14498) an issue where "analysis_option_id[]=" was causing graphing URLs to throw an error.
Home:
- Added: (case 14588) the embedded web page now navigates to the URL specified in the configuration screen for the home screen graphing URL. This allows personalized graphing templates to be displayed on the home screen. This URL can be customized per plant on the configuration screen.
ITMySQLConnection:
- Added: support for a new database mode where disconnects are not automatically reconnected, but instead must be manually reconnected.
- Added: (case 14552) support for a new database mode where the application catches all database disconnections and automatically attempts a fixed number of reconnection attempts before throwing an error (the default reconnection attempt count is 1). This is the new default mode.
- Added: for legacy support, there is a legacy database mode where reconnects are handled automatically by MySQL. This mode is not transaction safe, and so is being deprecated.
- Changed: Several low-level database operations have been sped up, including checking to see if a connection is live, as well as disconnecting.
- Added: all ISoft database error codes have been given formal #'s in the 100 to 200 range to keep them separate from the MySQL database error codes (1000 to 2999)
- Added: (case 14552) any disconnections (manual, timeout, explicit connection termination on the server side) will cause a new error ("Connection lost during transaction" error # 103) to be thrown on the next query to be run. This feature requires the database connection to be in the new AUTO_RECONNECT mode, which is the default. Also, this only applies to code that explicitly begins transactions. This solves a central issue where bad connections could lead to partial saves being lost due to the implicit ROLLBACK performed by MySQL when a connection is lost. Now, the application will detect this state and return an error so that it can be handled gracefully.
- Added: the MySQL connection now puts more information in the (optional) log file. This includes notes whenever disconnects were noticed, as well as a note for every auto-reconnect attempt. This makes the log file more readable when debugging operations that spanned multiple reconnects and identifying errors that occurred because of a disconnect in the middle of a transaction.
- Fixed: code that calls Disconnect directly will no longer cause the application to get into a state where it would not reconnect anymore.
- Changed: The Reconnect operation now simply calls Disconnect and Connect, to avoid previous issues where it was handled differently.
- Added: support for hiding the 'retry' button on the query error dialog if the error being reported is that the tranaction was interrupted. This is because, in this case, the entire transaction must be re-run to ensure validity.
ITSQLFramework:
- Added: when a query error popup happens, the retry button will not be available if the error being reported is that the transaction was interrupted. This is because, in this case, the entire transaction must be re-run to ensure validity.
Locations:
- Changed: (case 13327) location code can now be a full 50 characters. However, location names still cannot exceed 50 characters, meaning a location with a 50 character code cannot have sub-locations.
Login:
- Support for the new configure->reports permission.
Master:
- Fixed: (case 14506) the database updater now correctly parses events and triggers, and should no longer have trouble with versions that end with an EVENT declaration.
- Added: if ITrack.exe fails to write a setting out to the ini file, it now displays an error in the status bar so that we can debug situations where users cannot seem to write printer choices to their settings file.
Products:
- Added: the recipes page has been replaced with a page for configuring special recipe 'analyses' more on this to come.
- Added: the recipe tab now allows the user to add/edit/delete recipes.
- Added: the edit default formula dialog now shows the special variables "Batch Volume" and "Production Volume" as options to be inserted into any formulae. Batch Volume is the quantity produced in a single, standard batch; production volume is the quantity being produced on a specific WO.
- Added: the recipes page now allows the user to manage choices and thresholds for all directions and ingredients.
- Fixed: several tooltips and popups were using inconsistent wording and language. They have been corrected.
- Fixed: (case 15286) an issue where the category dropdown would show duplicate items in it.
- Added: the category dropdown now only shows the categories that match the currently selected ingredient/product choice.
ReportViewer:
- Added: if the user enters an invalid parameter value, when they leave the field, the value will be updated to reflect a valid value. This means entering "ABCDEF" into a number filed will be replaced with the value 0. This fixes an issue where such values were being treated as 0 but the user was not aware.
Sampling:
- Fixed: (case 14844) an issue where not all choices were visible as options for filter dropdowns on 'choice' options.
- Added: (case 14846) there is now an "Advanced Filter Options" area that is shown when the user expands the filter area.
- Added: (case 14846) in the advanced filter options, there is now an option to mass-choose analyses by their analysis category.
- Added: (case 14457) in the advanced filter options, there is now an option to mass-choose analysis option acceptability. This should make searching for only failed samples (for example) much easier.
- Added: checkboxes "Show production documents" and "show testing documents" for limiting what types of documents the user can search for.
- Fixed: an issue where production WOs were not displaying their samples correctly.
Settings:
- Fixed: (case 14568) an issue where error reports weren't being marked as from Presage correctly.
WorkOrders:
- Added: the default user group of the current work order type is now used to specify worker group.
- Fixed: an issue where some defaults from the current work order type might not stick if that WO type was automatically selected (default WO type).
- Changed: If the WO has a problem (missing data) it will no longer attempt to save the document.
- Removed: the default analysis type for a WO can no longer be a recipe.
- Added: (case 14964) a new recipes page to the edit work order area. This area is being built out as a tool for building production work orders.
- Added: support for a new checkbox in the configure->work order types dialog. Now the user can specify whether or not the recipes page is visible.
- Added: support for both option to option dependency and calculated ideal volumes for production WOs.
- Added: the recipes page now resizes to fit the screen.
- Added: the ingredients list is now invalid when no recipe is selected.
- Added: the Ideal column is now properly populated with values either from calculations or 'per batch' volumes. These values automatically refresh when the production volume is changed. These values also show the unit now as well.
- Added: a new recipe will now default the production volume to the batch volume of the selected recipe.
- Added: the recipes page now has attention icons for recipes just like the samples list.
- Added: recipe data is now colored similar to the sample data on normal WOs.
- Added: recipes can be properly loaded/saved/modified.
- Added: the recipe page now only loads once the user first navigates to that page. This way, loading WOs that don't have recipe data will be faster.
- Added: (case 14694) there are now columns for last modified by and last modified on so that the user can always see who filled out/modified items on a production WO.
- Fixed: an issue where unmodified sample values might show as needing calculation (black) even though they had not been modified.
- Added: recipes now show their status, and it can be modified.
- Added: all ingredients/directions show the name of the user that last modified them as well as when.
- Added: the set status button now has options for setting all (or just selected) recipes to the specified status.
- Added: the hotkeys for setting status for samples now triggers setting status for the recipes if that tab is selected.
- Added: the remove recipes button now works as intended.
- Fixed: an issue where deleting multiple recipes at once could lead to displaying old ingredient info.
- Added: if the user saves a WO with any samples that have no analysis, an error will pop up and tell the user that it is required.
- Added: if the user saves a WO with any production items that have no recipes, an error will pop up and tell the user that it is required.
- Changed: the Recipes tab is now called Production, and the wording of many fields, tooltips, and popups have been modified to be clearer and use less ambiguous language.
Version 1.6
Analysis:
- Changed: the default column for options is now wider, and column order is properly saved for this list when the user resizes columns
- Added: There is now an edit/test default value button which brings the user into an advanced editing dialog where they can create a formula for default option values.
- Added: If the user enters a default that looks like a formula (has math symbols), the user will automatically be taken to the edit/test default value dialog.
- Added: the user must successfully test any formula they enter before it can be saved.
- Added: the user can choose test values for all other options when testing a calculation.
- Added: if the user tests a formula, they will now be notified if an option reference hasn't been entered correctly or if the final formula causes a database error. Some of this will be made more user friendly in the future.
- Added: if the user tests a formula, the test result will be shown to the user (or an error if there was one).
- Added: support for 'fixed values' for defaults. This allows a value that looks like a formula (but is not) to be stored 'as-is'. This is useful for values that contain math symbols but are not fomulae.
- Added: double-clicking an option now opens the default value formula to be edited.
- Fixed: a column tooltip to be more accurate.
Commonresources:
- Added: if the user changes a field, any dropdowns whose values are dependent on that field will be updated as well. Generally, this will mean that if the current value is no longer allowed, it will be blanked out.
- Added: (case 13941) support for analysis options that calculate their default value based on other options. These options will continue to have their value updated based on the given formula until the user manually changes the value to a custom value.
Database:
- Changed: the default column for options no longer has a limited length, this is to facilitate upcoming calculation changes.
- Added: support for analysis option defaults to specify whether they are fixed values or formulae.
DataManagement:
- Fixed: an issue where unchanged row count could be negative.
- Fixed: an issue where "Before Conversion Validation" commands were not being run.
Graphing:
- Fixed: (case 14305) an issue where grouping date or date/time x axis values by month/week/quarter/year wasn't working.
Master:
- Fixed: an unnecessary error popup that would occur if the user was sending a message to a screen that was not open.
Version 1.5
Analysis:
- Fixed: an issue where creating an option, saving, and then trying to delete that option would fail.
- Fixed: a minor issue with how new 'choice' option values were saved.
- Added: (case 13825) the analysis editing area now allows 'Choice' options to specify 'required' option values to show that value. What this means is that choice "X" can be set up to only show up as an choice if option "Y" has a value above "Z".
- Fixed: the product list is now sorted alphabetically instead of by parent/child product.
Database:
- Added: numbers table now goes up to 16k, which makes many reports easier.
- Added: some foreign keys on the workorder table that were missing on some databases.
- Removed: some unused settings that have been moved into a different location.
- Added: support for dependencies on dropdown choices to option values.
- Added: (case 13003) there is now a new column: reportparameter.parameterquery, which controls a query that choice parameters will use to populate dropdowns when using report viewer.
- Fixed: an issue where f_set_setting wasn't working right if 'Global' was passed in as the setting level.
- Added: (case 14127) the overnight data clone process now has the following features:
1. Logging whether the event ran or not is now based on a global setting and defaults to true. 2. If mysql error 1146 (table missing) happens we have a special error message that gets logged. 3. If any other mysql error happens, we have a general error message that gets logged. 4. Even if event logging is off, if any clone operation fails, an entry is inserted into log_change with the error message in the newvalue column. Here is an example from my tests on devdb: 'Error: Table 'test' not found, skipping clone entry: 1' 5. If any mysql error happens when cloning an item, it attempts to continue with all the other clones.
- Added: support for edocument building at the database level. This is used in the new alerts system.
- Added: a database-level alert subscription system. The user can register to receive text/email/popup alerts for additions/changes on workorders/investigations/samples/sample values. The user can restrict what document types, failure levels, and plants they care about as well as the format of the messages they wish to receive.
- Added: for speed purposes, all alerts to be sent are put in a staging queue, which is read by an event every minute and dispatched to the registered recipients.
CommonResources:
- Added: support for items in dropdowns being based on other filled-out values.
Configuration:
- Fixed: (case 13809) an issue where modifying a user record could cause that user's password to become invalid.
Home:
- Fixed: the plant list is now sorted alphabetically on all tabs.
Master:
- Changed: messages sent between screens through master are now done in a way that should be faster and allow the calling screen to know whether the message was handled or not.
- Fixed: an issue with global hotkeys that was causing them to not be called in some corner cases, like before the user had clicked into any screens.
ReportViewer:
- Added: (case 13003) support for queries that run when the user selects a report parameter, loading all available options from the database. This system supports some of the results being a default choice, as well as behind-the scenes key #'s for faster report support.
- Added: (case 13003) support for dropdowns whose values are loaded form the database. In addition, the current user, the store they're logged into, as well as other various pieces of information can be used as part of the query, making it so that running reports can use better user defaults in the future.
- Added: (case 13003) report parameters can now be hidden, as well as visible by readonly.
- Added: (case 13003) dropdown report parameters now support passing behind the scenes ids to a report for speed purposes, as well as allowing dropdowns that the user can type into (for wildcard support).
- Added: (case 13003) report parameters can now be marked as required, meaning the user cannot print until they are not empty. The user will be prompted to fill it out or to use the default value (if one exists).
Sampling:
- Fixed: (case 13724) an issue where performing an 'exact' (no wildcards) proximity or zone search would throw a database error.
Hotfix:
Product:
- Fixed: the screen now says "Item in use at store X" instead of "Product in use..."
Sampling:
- Fixed: (case 14257) an issue where the graph that gets generated would show options that the user didn't want to graph. Now, if any options are checked in the search, only those options will be graphed.
Version 1.4.1
Analysis:
- Added: if the user only has plant level permission to edit analyses, they can no longer:
1. Change whether analyses or choices are global 2. Edit the analyses or choices that are marked as global 3. Edit options on analyses that are global
- Added: if the user has plant level permission for editing analyses, any new analyses and choices they create will be plant specific instead of global.
Database:
- Fixed: an issue with the graph template where numbers might sometimes display 100.00999999 instead of 100.01
- Fixed: an issue where p_get_subtree_by_lookup might throw an error if a product name had a single quote in it.
- Added: (case 13646) a new function, f_get_ancestor_id, which can find the topmost parent productid or locationid given an specific child productid or locationid.
- Fixed: an issue where cloned WOs would have the sampling data, testing data, and investigation data of the original (template) item. Now, this information will be cleared out upon being copied.
Home:
- Added: (case 6000) the work order home page now has the ability to filter by whether the current user is assigned to a WO, whether the current user performed the sample collection on a WO, or both.
- Added: (case 6000) the sample testing home page now has the ability to filter by whether the current user is assigned to a WO, whether the current user tested the sample, or both.
- Changed: re-arranged the home page tabs to be more consistent and fit better on smaller screens (leaving more space for the graphing area).
WorkOrders:
- Removed: (case 6000) the currently unused assign samples to group button.
- Fixed: (case 12245) an issue where Configure->Work Order Types wasn't properly displaying the configuration option for Product/Ingredient/None.
- Fixed: an issue where hitting tab inside auto-complete dropdowns wasn't working properly
Version 1.4
Analysis:
- Added: (case 10634) there is now a button on the analysis management screen that allows the user to recompute the acceptability status of historical sample values. The user can specify a plant (or all), date range (optional), analysis (or all), and location (or all).
- Added: (case 10634) there is a permission that controls what stores (if any) the user can recompute historical sample values for.
- Added: (case 10677) a button on the analysis management screen called "Test Thresholds" which allows the user to test the saved thresholds on the current option to see if a particular value would be acceptable or not.
- Added: (case 10677) there is now a "Inspect Value" button at the bottom of the screen (as well as a right click menu option) which will allow the user to see why a value registered an acceptable/marginal/unacceptable/etc result. The user can tweak the result in this dialog to test other values. This feature allows the user to ask "Why?" a result failed, which can sometimes be confusing if there are many applicable thresholds.
- Fixed: an issue where the new/empty analysis option might show at the top of the list if the user switched between options and back again.
- Changed: sample print quantities and testing print quantities are now stored in a special table instead of settings. This is to solve various issues that the previous system caused. All existing setting values have been copied into the new table to make the transition seamless. The old values have been left in settings for now for backwards compatibility with old reports.
- Fixed: (case 12763) an issue where renaming an analysis (even without saving) would cause the print quantity numbers to sometimes be lost.
- Performance: (case 13159) if the user loads a different plant on the analysis tab, loading all the print quantities could sometimes take a long time.
- Added: support for the user hitting configue buttons on the configuration screen to edit analyses or schedules.
CommonResources:
- Added: WO types now control the default analysis used for new samples
- Added: WO types now control whether the sampling and testing detail fields are visible and whether they can be hidden/unhidden.
- Added: the testing comments and sampling comments now show/hide with the "Testing Detail" and "Sampling Detail", respectively.
Configuration:
- Added: support for the new WO types page.
- Added: the directory page now has buttons for configuring WO types, analyses, schedules, and products. The user will be taken to the appropriate area when they click these buttons.
- Removed: the set-up wizard and Help buttons have been removed from the directory page for now, as they are just placeholders.
Database:
- Fixed: all historical samples with unnecessary precision (6.100000 instead of 6.1) have been corrected. This leads to cleaner graphing and reporting.
- Fixed: all numerical thresholds with unnecessary precision (6.100000 instead of 6.1) have been corrected.
- Added: a permission that was missing on some databases controls whether the user can edit locations on configuration.
- Added: p_refresh_all_sample_acceptability now accepts new input parameters for narrowing down the plant, location, date range, etc to be recomputed.
- Added: new permission controlling whether a user can perform mass recalculation of sample values at a plant.
- Changed: (case 12761) the format acceptability function now renames 'Out of Bounds' to 'Invalid', like the software does.
- Added: when a WO gets cloned, if due date is filled out, the existing due date will be moved forward.
- Added: (case 12763) a new table (printquantityoverride) which keeps track of the number of copies to print for various reports at various plants.
- Added: f_get_next_data_clone_occurance, which calculates the next date/time a dataclone will be performed on.
- Added: v_dataclone, which is a view that shows the contents of the dataclone table, but also selects the next date the dataclone will be triggered on.
- Added: new permission for whether the user can open the locations screen.
- Added: (case 12245) a new table for storing WO types.
- Added: (case 12245) new permission for configuring WO types.
Sample Graphing:
- Added: (case 6478) the 'color shifting' between analyses of the same acceptability (multiple green series for example) has been tweaked to not repeat a specific hue. Differences between colors are more pronounced if fewer series are graphed. The color 'ranges' have been tweaked to look better and be more distinguishable.
- Added: (case 10504) if the user filters analysis options by value range or acceptability, the graphed points will now only be the matching results.
- Removed: thresholds no longer show in the legend, as they often make it hard to read.
- Changed: data points are now slightly smaller by default for better differentiation.
- Added: the threshold lines now use triangles as their endpoints to differentiate them from data points.
- Added: the user can now click on a data series in the legend, and that data series will be hidden/shown on the graph in real-time.
- Changed; (case 12761) references to Out of Bounds have been changed to Invalid.
List Graphing:
- Fixed: an issue where right-click list graphing would display fractional numbers as 'rounded' numbers.
- Fixed: an issue where right-click list graphing would open the graph website twice if the default browser was google chrome.
- Fixed: (case 13273) an issue where grouping the x axis by value was incompatible with some graph types, like stacked column chart.
- Changed: if the user is grouping by x axis value, the column headers are interpreted as strings, causing them to be discrete values, instead of continuous variables.
- Changed: renamed some poorly named variables and added some comments.
- Added: the graphing template now properly rounds all aggregated values to a similar precision as the input data (this solves issues where $1.50 would display as 1.49999999).
- Fixed: several issues where aggregation wasn't working correctly, this was breaking stacked bar charts.
- Added: support for grouping values into date/time ranges like "By Day/Week/Month/Quarter/Year".
- Tweaked: the layout of the graph to reserve more space for the graph itself.
- Added: column and stacked column charts now adjust the window's Y axis to better fit the data. This solves an issue where a single negative value could lead to a large amount of wasted space below the 0 line.
- Fixed: an issue where pie charts wouldn't render because column 0 has to be a string
- Added: support for the google ChartWrapper class, which enables more real-time chart modifications
- Added: the user can now click a series in the legend to show/hide it.
- Fixed: an issue where stacked column charts might draw 'off the top' of the graph.
- Fixed: grouping results by date range wasn't working for pie charts.
- Fixed: an issue where pie charts would fail to render because they had negative values.
- Added: the list graphing dialog now has an option for grouping date values on the X axis. The user can group them by day, week, month, quarter, or year. This option is only available if a date field is selected for the X axis and a graph type is selected that supports aggregation.
- Added: pie charts can now have any *numeric* column added up in the results.
Sampling:
- Added: (case 10504) if the user filters results by a particular option's values or acceptability, that information will now be passed to the graph.
- Removed: in order to make URLs shorter, unused search options will no longer be added to the URL.
- Added: (case 12606) if the user fills out a filter value, the option's 'use' checkbox will be checked automatically. If the use checkbox is unchecked, the filter values are cleared out automatically.
- Fixed: an issue where searching by plant could (in some rare cases) find samples at other plants.
- Added: support for getting the WO type of all returned samples so that the screen can show/hide columns appropriately.
Home:
- Added: due date to the work order history list. WOs that have a due date within one day will be blue. Those that are past due are red.
- Added: (case 12245) both the WO history and the sampling pages have a WO type dropdown for filtering by the WO type. This dropdown remembers the user's last choice. Also, there is now a sortable WO type column in the list so that the results can be tracked by this new attribute.
Investigation:
- Fixed: an issue where new investigations were saving a date but no time.
- Fixed: an issue where hitting apply on the investigations screen could possibly throw a database error regarding the work order # of some of the investigations on the screen.
Locations:
- Added: support for the "Open Screen" permission. Also, the Configuration->Can Configure Locations now controls what plants' locations the user can edit on this screen (if any).
- Added: button icons and other minor UI improvements.
Login:
- Fixed: an issue where which plants the user had access to could become incorrect when some of the user's permissions were changed.
WorkOrders:
- Added: the notification emails now support showing the user who collected the samples.
- Changed: removed a reference to a deprecated database function and replaced it with the correct one.
- Changed: the default 'maximum # of items to load into auto-complete dropdowns' has been changed from 100 to 300 to avoid issues where long location lists couldn't be browsed.
- Added: (case 12245) a new configuration page for adding/editing/managing work order types.
- Added: the work orders screen now has a dropdown for work order type. To fit this in, the date controls were moved to their own area.
- Added: the configure->Work Order Types page now no longer lets the user change work order type fields if the user doesn't have global permission. A user with plant level permission can still control which types are available at their plant.
- Added: (case 12245) support for choosing a work order type for each work order.
- Added: (case 12245) the presence (and default value) of the due date field is now controlled by the current WO type.
Hotfixes:
Database:
- Added: (Case 10792) products can now be marked as ingredients or products, which controls what WO type(s) they show up on.
Product:
- Added: (case 10792) there is now a set of radio buttons where the user can switch between viewing/editing products and ingredients.
- Changed: wording of several fields to better fit the fact the screen can involve both products and ingredients.
Sampling:
- Added: (case 10792) the product dropdown for a particular sample is now limited to either all products or all ingredients, depending on the WO type of the selected sample.
WorkOrders:
- Added: (case 10792) the product dropdown will now contain all products or all ingredients, depending on the selected WO type.
Version 1.3
General:
- Fixed: an issue where combo sorting was case insensitive, but the auto-suggest list was case sensitive.
- Changed: auto-suggest dropdown lists are no longer sorted, even if the primary combo list is. This makes it so that auto-suggested strings are always in 'fitness' order (how well they match the input.
- Added: advanced combo boxes now default to 'find input anywhere' when auto-suggest/auto-complete is turned on. This means results are matched no matter where the input is found in the string.
- Fixed: sometimes icon cells in an ITListCtrl would not automatically redraw when the screen changed what icons were being displayed in the cell.
- Fixed: dead whitespace in the list controls is finally fixed. The previous fix didn't account for situations in which the scrollbars were currently visible but were about to disappear (due to client space increasing).
- Fixed: a drawing issue where clicking in a field (causing a Scroll in the list) might not redraw the 'close buttons' on the items, leaving what looked like 2 sets.
- Fixed: (case 12012) Items half-way on the screen did not redraw correctly. This fixes an issue where items that were only partially visible were not being properly redrawn, causing checkboxes to not toggle their state if they were halfway on the screen.
- Fixed: (case 12012) This should fix an issue where the list allowed items to be only partially visible vertically.
- Fixed: an issue where, if a list had a footer control and hidden columns, some of the columns might not redraw correctly, and there were more columns than necessary.
- Added: if the user resizes a column by dragging a column header, the footer columns are now resized in real-time. This makes matching things up simpler.
- Removed: pretty much completely eliminated flickering that would happen in list footers when they were resizing.
- Fixed: an issue where hiding/showing/deleting/adding columns while the user had scrolled horizontally would cause the header tooltips to be misaligned.
- Fixed: if a list control is hidden when it is initialized, the footer will also start out hidden.
Graphing website:
- Fixed: the severity class retrieved for a particular result now considers the plant when getting the default severity class.
- Fixed: renamed f_format_acceptibility to f_format_acceptability (misspelled)
- Fixed: an issue where thresholds might show .000000 at the end of a whole number value in the legend.
- Added: (case 6478) all graphed series (both thresholds and data series) have their colors set based on the acceptability of the result. Green for acceptable, orange for marginal, red for unacceptable, and blue for out of bounds. If multiple analyses are being graphed at the same time, the colors are shifted slightly for each series of data to make them easier to tell apart.
- Fixed: an issue where selecting "ALL" from the analysis dropdown might not show all analyses.
- Added: (case 6478) the 'color shifting' between analyses of the same acceptability (multiple green series for example) has been tweaked to not repeat a specific hue. Differences between colors are more pronounced if fewer series are graphed. The color 'ranges' have been tweaked to look better and be more distinguishable.
Analysis:
- Fixed: an issue where the analysis option ordering wasn't saving if the user switched analyses and then switched back.
- Fixed (case 12371) an issue where renaming an analysis wouldn't move over the print quantities at the same time, causing the values to fall off the analysis.
- Added: (case 10130) there is now a permission for each of the 4 tabs on the analysis screen. If the user is set to permission level "None", the corresponding page will not appear. A user with level "Plant" will be limited to editing information just at their plant(s). The schedules tab requires global permission because those objects are shared between plants.
CommonResources:
- Added: (Case 10263) there is now a permission that controls what plant(s) the user can edit sample tag #'s at (if any).
- Fixed: an issue where numeric analysis option values might save with unnecessary precision (6.100000 instead of 6.1). This was making some reports look messy. This will only correct data moving forward.
Configuration:
- Added: (case 11879) user account names can now be edited in user configuration. New (unsaved) users can now be deleted as well (saved users are just de-activated).
- Added: (case 11879) when the user hits apply in user configuration, they will now be presented with a more user friendly error if there are duplicate user account names.
- Changed: minor UX tweaks to make user configuration easier and more consistent with other screens.
- Added: (case 11614) the configure users page now limits which users can be edited based on the current user's permissions. Essentially, users will only be able to administrate their own plant(s) now.
- Added: new user accounts will automatically inherit the current plant that the administrator user is logged into.
- Fixed: an issue where a user who didn't have permission to edit plants, users, groups, or locations might still be able to edit them on the configuration screen. Now, if the user doesn't have permission, those pages are missing and the button on the Directory page is greyed out.
- Changed: a user now needs global permission to edit groups, since they are shared across all plants.
- Fixed: the icon was missing on the Configuration menu option.
Database:
- Fixed: another misspelled function name in the database.
- Added: (case 10263) a new permission for editing tag #'s on WO samples. This new permission defaults to on for anyone who can edit WOs.
- Added: (case 12276) workorder.due (due date), which defaults to NULL (no due date).
- Added: ( case 10130) 4 new permissions for the analysis management screen.
- Fixed: all historical samples with unnecessary precision (6.100000 instead of 6.1) have been corrected. This leads to cleaner graphing and reporting.
- Fixed: all numerical thresholds with unnecessary precision (6.100000 instead of 6.1) have been corrected.
Investigations:
- Fixed: an issue where sending a sample to be investigated from the WO screen (before doing any searches) might cause a crash or bad samples to be loaded.
- Changed: clicking search when unsaved investigations are present will now prompt the user to save. All other save prompts have been standardized.
- Fixed: an issue where a user with "None" for the permission "Configuration"->"Can configure investigations" was still allowing the user to edit global defaults.
- Changed: several settings in the alerts page have had their scope changed to "Hidden" since they contain sensitive data.
- Fixed: a crash when starting a new investigation.
ITMySQLConnection:
- Performance: removed a bit of unnecessary meta-data that was being stored with every query result set.
Locations:
- Fixed: (Case 12299) an issue where the locations screen might crash if the user sent locations to be visualized.
- Added: (case 12451) there is now an "Animate" button on location visualization, which plays through the samples in the currently displayed order.
Login:
- Fixed: a possible crash/error that could happen if the application was launched without database access.
Master:
- Changed: (case 11921) it was possible that ITrack didn't have any valid database connection, but it tried to get the local versionlist anyway, which would stop the update process. Now, if that happens, the system acts the same as if no database connection is present and attempts to continue. This should help prevent a state where an installation cannot be used and cannot get updates.
- Added: when the user hits "reset updates", they will now be put into a mode where we force the download of updates. This ignores some things that would normally stop update downloading, including lack of access to the local database or lack of database extension.
Products:
- Added: support for a new permission that controls whether the user can mark products as in use at their plant(s).
SettingsFramework:
- Fixed: an issue where, if the database could not be reached, or there was no database extension loaded, updates would not be applied when Presage was closed.
- Added: (case 12371) support for a new 'rename setting' operation used by the analysis screen.
WorkOrders:
- Fixed: a minor issue where, during printing, a dropdown might reappear in the list after a message box popped up.
- Fixed: (case 12026) an issue where the user could print a tag or testing tag for an item by right clicking on it before it was saved. Now, the user will be prompted to save the item if it has been modified.
- Fixed: some performance issues that could cause loading, clearing, or saving a WO to take slightly longer than necessary. Another side effect is that the list of samples might flicker and the user's selection would be cleared.
- Fixed: (case 12011) an issue where changing the plant of a WO might not correctly remove all samples at other plants.
- Removed: (case 12164) clicking on a sample option no longer automatically puts the option's default into the sample.
- Added: (case 12164) marking a sample as sampled now automatically fills out all default values into the sample.
- Added: (case 12276) there is now a due date at the top of the screen next to the scheduled date.
Update 7/2/2014
Locations:
- Fixed: an issue that was keeping the search for samples button from working.
- Fixed: (case 10855) an issue where locations might show the wrong plant's default severity class (display issue only).
- Fixed: (case 11273) an issue where configuring locations at a plant with no default severity class might cause a crash.
Database:
- Fixed: an issue where p_clone_data might create a clone with a 'date scheduled' other than the user expected.
- Added: (case 11549) a new permission controlling when someone can edit samples on the sample history screen. This permission defaults to everyone with the permission to edit work orders.
- Added: (case 11550) a new permission controlling what plants a user can search on the sample history screen. This permission defaults to the open screen permission level.
- Changed: p_get_subtree now accepts a string instead of an integer for its primary value. This allows the user to pass in a comma separated list instead of a single value. All previous queries will keep working as per usual.
- Fixed: p_get_subtree will no longer return ids that were passed in that are invalid or duplicate.
- Added: (case 11270) new stored procedure, p_get_subtree_by_lookup, which is like p_get_subtree, but it will find all results in the table that match a wild-card enabled string on a specified column, and then get the subtree that fits all matches. This is a lot faster than running a query to get all matches, then running p_get_subtree for each result separately and then merging the results.
Commonresources:
- Added: (case 11404) analysis option value columns will now size themselves automatically to fit the data type contained in that column.
Login:
- Fixed: (case 11581) an issue where the data management screen wasn't respecting the "Can open screen" permission for that screen.
- Added: support for adding the transaction list to Presage.
Sampling:
- Added: (case 11270) there is now a product dropdown the user can use to search samples by product.
- Changed: the user can no longer perform a search with no plants selected.
- Added: various UI elements are greyed out if the user doesn't have permission to them at all.
- Added: the location auto-complete field now allows the user to type from the middle by default. All previous users will not be affected, but can change this preference in settings under "Auto-Complete".
Graphing:
- Fixed: an issue where handleWildcards was only replacing the first instance of a wildcard.
- Added: server-side support for product_id and product_name parameters. product_name supports wildcards. In either case, all child products will also be searched.
- Added: client-side support for product_id and product_name URL parameters.
ReportViewer:
- Added: date, time, and datetime fields now have the 'none' checkbox on the left, allowing the user to pass blank dates to reports, for situations were optional dates are desired.
Settings:
- Fixed: an issue where report parameter choices were not being loaded correctly.
Update 4/15/2014
Analysis:
- Changed: the layout and text of the columns in the analysis option values list have been adjusted to be more human readable.
- Fixed: an issue where extra empty thresholds were being inserted.
- Added: a new column in the choice/threhold list, 'Global'. Global thresholds apply to all plants. Non-global thresholds apply to only the current plant. The global column now defaults to checked.
- Added: switching whether a threshold has a product or severity class now switches whether a threshold can be global.
- Added: the product column is now populated with the products that apply to the current plant.
CommonResources:
- Fixed: an issue where the WO screen might show the wrong analysis options if more than one analysis shared the same name.
- Added: (case 10513) support for showing only checked options in the search results.
- Added: the sample detail list now has a column for product, which is populated with all valid products for the sample's plant.
- Fixed: (case 10750) the choice dropdowns for samples now limit the options based on the plant of the sample, the severity class of the location (or the default severity class if there is no location), the product of the sample (if any), and all parent products of that product.
Product:
- Fixed: crash that would happen if you opened the screen with an empty product list.
- Added: (case 10778) saving a product with an empty name field will now result in an error popup.
- Fixed: (case 10778) a crash error that could occur when adding a product underneath a product that was not 'in use' at the current plant.
- Added: (case 10775) hitting the add button will now add a sibling instead of a child product.
Sampling:
- Changed: (Case 10466) when searching analyses, all options are now unchecked by default.
- Added: (case 10513) only analysis options that are checked will show in the search results.
INI updates:
- Fixed: the urls that control the manual, credits, and changelog are now presage specific.
- Changed: (case 5938) the homepage for ITrack Online is now http://www.presageanalytics.com/.
Database:
- Updated: the plantid of existing analysisoptionchoice entries should now be filled out.
- Added: sample.plantid. This tracks the plant a sample was taken at. This was required because location is now optional on samples, which was the only gauranteed way to find plantid before. The initial value of this field has been set based on location or workorder.
- Added: new function, f_find_applicable_thresholds. This function will create a TEMPORARY TABLE TEMP_applicable_thresholds and fills it with all entries from analysisoptionchoice, remarking on each whether it applies to the specified parameters and otherwise, why not. This will be very useful for showing what constraints are applicable to an analysis value.
- Added: new function, f_check_applicable_thresholds. This function calls f_find_applicable_thresholds to get all thresholds that apply to the parameters, then does type specific casting in order to check to see which (if any) of the applicable constraints are violated by the value specified. This will be very useful for showing 'why' a value is coming up "Unacceptible" or "Marginal", etc.
- Changed: f_get_value_acceptability no longer calculates directly, but instead calls f_check_applicable_thresholds and returns the 'worst' violation.
- Added: f_get_value_acceptability now accepts a productid and plantid as arguments. This is required because the threholds now have more restrictions (global/plant specific, and per product or global).
WorkOrders:
- Added: support for products in the sample list.
Update 4/3/2014
- Added: (case 10778) saving a product with an empty name field will now result in an error popup.
- Fixed: (case 10778) a crash error that could occur when adding a product underneath a product that was not 'in use' at the current plant.
Update 3/31/2014
CrystalReportsExtension:
- Changed: (Case 10612) if the user prints a report with 'advanced options', the printer dialog that pops up now has a quantity field on it, which will be used to override the number of copies to print.
Database:
- Added: the sample table now has an optional reference to the product table for when samples begin to be collected for products.
- Added: the analysisoptionchoice can now have a reference to a product, allowing thresholds to be product specific.
- Changed: products are now global, except there is the ability to specify which plants each product is "In Use" at.
- Changed: p_get_location_subtree has been generalized into p_get_subtree, which can return a group_concat of primary keys of any simple hierarchical table.
- Added: support for product attachments.
- Added: permission for modifying products.
Products:
- Added: "Show inactive products" checkbox, which filters the product tree to just active products.
- Added: add/delete buttons to the bottom of the screen similar to the add/delete buttons on the location interface.
- Added: Similar to deleting analyses and locations, the system now checks to see if deleting a product is 'safe' (IE if its currently in use on saved samples or analyses). 'Unsafe' deletes require a permission to complete.
- Added: the product detail page now fills data out as the user selects products, and changing values is updated in the tree immediately.
- Added: there is now a "Show this product at the current plant" checkbox, which is a per-plant setting controlling whether a specific plant wishes to see the specified product in its product list.
- Added: saving products now properly updates, creates, and deletes products.
- Fixed: hitting the refresh/reset button now correctly reloads data from the database, discarding changes.
- Added: there is now a column for whether each product is in use at the current plant. This will switch automatically as the user switches plants.
- Added: The "show inactive products" now remembers the user's last choice.
- Added: permission for whether user can modify products. The user must have global permission to add/edit/delete products.
- Added: product attachments are now functional. The attachments tab now displays the number of attachments loaded for the currently selected product.
- Added: adding and removing products now works as expected.
- Added: new products inherit many options from the parent Product.
- Added: the category dropdown now shows all previously entered product categories.
- Fixed: an issue where deleting a product would delete all child products, no matter what the user chose.
CommonResources:
- Fixed: an issue where the WO screen might show the wrong analysis options if more than one analysis shared the same name.
Update 3/19/2014
Analysis:
- Fixed: (case 10522) an issue where changing plant in the analysis screen wouldn't refresh the options in the severity class dropdown for thresholds.
- Added: there are 2 new columns in the analysis list which allow the user to control how many copies of the sample tag and testing tag get printed out when printing WOs. These settings are plant-specific so each plant can have different quantities for the same analysis.
- Changed: the apply and reset buttons have been re-arranged to match the apply and cancel button order in most windows applications.
- Changed: the pop-ups that happen when the user is going to delete an analysis are now more consistent and show the number of samples and scheduled locations that will be deleted always.
CommonResources:
- Added: (case 10609) the user can now print a quantity of tags other than 1. The last reprint quantity is remembered, so reprinting the same number of tags in the future is easy.
Database:
- Removed: some (now) unused fields from the analysis table.
- Fixed: the version of f_get_next_day_of_week that was released previously was out of date.
- Added: a new permission for allowing access to the product management screen.
- Added: (case 10551) table for storing product information.
Product:
- Added: (case 10551) a new 'product management' screen, wherein the user can manage products, ingredients, and recipes.
- Changed: the attachments button has been removed and replaced with an attachments page.
- Added: the plant dropdown is now filled with plants.
- Added: opening the screen now properly loads all products into the product tree, but the user cannot edit them yet.
Sampling:
- Added: (case 10187) the plant auto-complete dropdown now only shows the user options for the set of plants that are selected.
- Changed: this screen is now called "Sampling History" in the main menu.
WorkOrders:
- Fixed: an issue where new work orders were saving the date, but not the time they were created.