ITrack/Enterprise/Changelog Version 39
EE Change log version 39 Revision 24207-24429 database version 3900
Highlights
- Major announcement: Auto refresh screens! The way this works, is any screen where we track whether another user has modified something (part, vehicle, sales order, work order, purchase order, transfer order) we automatically check on a timer whether the loaded document/item has been modified by someone else (defaults to every 15 seconds, but modifyable with the setting "Preferences"->"How often to automatically check for changes on the current screen (in seconds, 0 to disable)"). If changes are detected one of two things happens:
1. if the user has not made any changes yet, the item is silently and automatically refreshed with the current version from the database. This prevents the user from accidentally sitting with an out of date version of a part/vehicle/document/etc. 2. If the user *has* made any changes, they will immediately be prompted that someone else has saved this item or document and that they must reload in order to continue. They can either reload immediately or cancel to review the changes they've made. This makes it so that they will know much sooner that something has changed that will prevent them from saving. No more working on a WO for hours just to learn that someone had changed it immediately after you loaded. The previous system of stopping the user on save remains unchanged in case the timer is disabled. The automatic timer is disabled while any popups are visible, which prevents any issues with the document reloading while the user is considering a popup.
- Much requested: Ability to 'ignore' inventory variances in the Inventory Adjustment tab of Manage Warehouse. This allows the user to clear out old losses/finds without destructive delete operations.
- Enhancements to updating cost from PO screen
- Major improvements to handling of buyer transactions on the ebay screen, including support for when buyers cancel them
- Overhaul of the customer unit system
- Overhaul of change detection on all document screens. Previously, they only tracked a couple fields for whether the user 'changed' anything. It is now accurate to every field, like the part and vehicles screens. This is to ensure that the user doesn't 'lose data' by auto-refreshing the document when someone else saved (see auto refresh screens announcement above).
Database
- Added: new zip codes
- Deprecated: a table that has not been in use for years but exists on some older databases.
- Added: the ability to mark inventoryvariance records as ignored, and added a computed status column with an index for faster lookups.
- Added: (EE-509) several new part types that have been added to heavy truck parts.net as standard.
- Added: logging triggers to dashboard tables
- Added: Job Name Filter for the Work Order Source for the Transaction List
- Added: Inventory Location Wildcard Filter for the Transaction List for the Inventory Source.
- Fixed: changed how some document search fields/filters work around locations, to make the names clearer and adjust the logic they run under.
- Removed: a company specific setting default
- Added: (EE-554) the p_inventory_default_prices procedure now also checks the global settings for high/low retail/wholesale price markups as a possible price calculation method.
- Added: f_inventory_recalculate_prices, which uses p_inventory_default_prices to 'recompute' the price levels on a part based on vendor, model/category, cost, etc. This makes it easier for screens and scripts to invoke a re-computation of price levels.
- Changed: (EE-566) vehiclebidfee.adjustmenttypeid is now no longer nullable, and any records missing an adjustment type are being deleted.
- Added: foreign key to vehiclebidfee.adjustmenttypeid to keep bad values from being saved.
- Changed: ebaytransaction.status column has been increased to 20 long, as some ebay status codes were being cut off.
- Added: EE-564: support for workclock user notes.
- Re-released: a hotfix from 2014 that was missing on some newer deployments. Re-releasing to ensure all databases are consistent.
- Fixed: a misspelling in a permission description and clarified it.
- Added: (EE-595) a unique key to the purchase order line history table.
- Added: (EE-599) unique index to glcontext.name
- Added: FK restraint to inventoryfile.fileid
- Added: FK restraint to vehiclefile.fileid
- Added: Two transaction list filters. One to filter by the shipping country on a sales order, the other to filter by the country of the customer record used on the sales order.
- Fixed: (EE-629) an issue where closing a WO where the user had already inventoried a core would double the quantity changes to that core bank. This required removing a fix added in FB-36316 to make it so that voiding/reopening a SO or WO would reverse quantity/average cost activity on dirty cores. Now, the user will have to undo these changes manually if they void a WO or SO.
- Added: an explicit error message to be thrown by p_inventory_replicate. This error is thrown if the sql_mode that the procedure was created under has NO_AUTO_VALUE_ON_ZERO set. If that flag is set, the procedure will not work correctly, and that makes the issue easier to find.
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.
- 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.
- Changed: Many shared dialogs now respect OS level darkmode settings in the titlebar.
- Added: email via MAPI error message support. Now, if an email fails to send, the popup will have an error message as well as an error code.
Accounting
- Fixed: an issue where the export to SAGE button would split activity into multiple days if entries were backdated. Now all entries are exported based on their effective date, not date created.
- Fixed: (EE-604) an issue where the SAGE 50 export could export the wrong row in some circumstances.
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.
Customer
Edit Service Units
- Added: auto-complete to type, manufacturer, and model dropdowns
- Added: icons to the buttons, moved them to the bottom like other popups
- Added: close button [x] to the title bar.
- Added: icon to the popup title bar.
- Changed: unit number now shows "N/A" for an unsaved new unit instead of "-1"
- Added: entering 2 digits in the year field now expands it to 4 digits like other year fields.
- Fixed: an issue where saving a customer unit with more than 20 characters in the manufacturer/make, model, or unit number would get cut off.
eBay
- Added: when retrieving transactions from the API, we now request the 'containing order' information. This allows us to know if the invoice has been cancelled.
- Changed: the transaction status column now pulls from the containing order. This allows display of Cancelled or in the progress of being cancelled as a status.
- Added: the transactions list now shows status in red if the transaction has been cancelled so that the user knows why it doesn't need to be invoiced.
- Added: the transactions list now shows the items with different background colors based on status, similar to the auction list.
- Added: the transactions list now shows the document # field in Green if it has not been invoiced yet, but the purchase is completed.
- Changed: loading auctions now considers ebay transactions that are Complete or Completed only when counting how many have to be invoiced. This will exclude items that are cancelled, in progress, or being cancelled.
- Removed: PictureDetailsType.PhotoDisplay that was deprecated in the ebay API. Removed GalleryDuration at the same time because it doesn't seem to be in their API docs.
Home
- Added: (case EE-403) qty received and % received columns to the purchase orders list that work similar to the qty available and % available columns in the other document lists, including colors (red: no done, blue: done receiving/100%).
- Added: (case EE-403) done receiving and prices finalized columns to the purchase orders tab, including sum totals in the footer.
ITMySQLConnection
- Fixed: a minor issue where, if ca-cert.pem is completely missing, requiring SSL might not throw an error when connecting.
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.
Part Configuration
- Fixed: (EE-416) the inventory options area of inventory types tab now respects the 'can edit inventory types' permission.
- Added: the ability of the user to sort/reorder the Q&A lists is now disabled based on the permission to avoid being able to modify and save sort order.
Parts
- Changed: when you create a new part, it no longer runs a query to delete collection records when the "Part is a collection" checkbox is unchecked. This was unnecessary and was causing issues with some database customizations that automatically created collections.
- Added: (EE-269) the parts screen now auto-refreshes to see if the part has been modified since load. Previously, this was only checked when the user hit save and they'd be told that the part had been modified by someone else. Now it is also checked on a timer (customizable in settings) so that the user can know much sooner whether the part has been modified by someone else. The part will be automatically reloaded if no local changes are detected, and the user will be told about the changes explicitly if they have unsaved changes.
- Added: saving a new part starts the auto-refresh timer so that changes from another user will automatically trigger a reload.
- Fixed: a rare crash related to the images dialog.
- Added: (EE-159) the locations list now remembers the user's column order and widths.
- Added: column order/sizing saving to the Q&A page serials and messages lists
- Fixed: the email dialog now only attaches images like the checkboxes say (pdfs/videos are no longer attached, even if they're public). This helps avoid issues with filesize issues.
Purchase Orders
- Added: (EE-554) when the user double-clicks the 'cost changed' icon the "Do you want to update replenishment cost" dialog now has another option that is "update cost and recompute inventory prices". If the user clicks that button, not only will the inventory cost or core cost be updated to match the PO price, but also the algorithm for applying default inventory prices using markups/model defaults/settings will be reapplied.
- Fixed: dozens of issues with change detection. Changes to the PO, lineitems, document adjustments, item adjustments, and postings will now correctly trigger change detection.
- Fixed: an issue where only changing gl department on a line would not trigger change detection correctly.
- Added: automatic, timer-based change detection. Now if you have a saved SO loaded, the system will check to see if someone else has changed the document in the background every couple seconds. If a change is detected, it will be automatically reloaded right away. If the user has any local changes, they will be asked if they want to load now or do it later to avoid doing a lot of extra work before saving.
- Performance: made certain operations run less database queries and therefore be faster.
- Removed: a second, redundant check for whether the document has been modified before saving.
Sales Orders
- Added: (EE-513) when we retrieve third party tax quotes or register tax invoices, sales order id, sales order line id, and inventory ids will now be send to the API, when the items in question have been saved previously. This allows compatibility with external tax systems that require an ERP document number.
- Fixed: a crash that could occur if a SO had a customerid but it was not valid.
- Fixed: dozens of issues with change detection. Changes to the SO, lineitems, adjustments, and payments will now correctly trigger change detection, but only if there is at least one item on the screen.
- Fixed: temporary recalculation of taxes due to using a tax integration will not trigger change detection.
- Fixed: some unnecessary change detection when loading an unchanged document.
- Fixed: a minor issue where the "Save & Clear" option in the save button would be reloaded between saves, but the button was not being updated to match.
- Added: automatic, timer-based change detection. Now if you have a saved SO loaded, the system will check to see if someone else has changed the document in the background every couple seconds. If a change is detected, it will be automatically reloaded right away. If the user has any local changes, they will be asked if they want to load now or do it later to avoid doing a lot of extra work before saving.
- Performance: made certain operations run less database queries and therefore be faster.
- Removed: a second, redundant check for whether the document has been modified before saving.
Settings
- Added: The configure->settings dialog 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.
Transaction List
- Fixed: (EE-639) an issue where the date range dropdown was empty.
Transfer Orders
- Added: VOID transfer orders now show a blinking red text in the TO # box like the other document screens.
- Fixed: dozens of issues with change detection. Changes to the TO and lineitems will now correctly trigger change detection.
- Added: automatic, timer-based change detection. Now if you have a saved TO loaded, the system will check to see if someone else has changed the document in the background every couple seconds. If a change is detected, it will be automatically reloaded right away. If the user has any local changes, they will be asked if they want to load now or do it later to avoid doing a lot of extra work before saving.
Vehicles
- Changed: (EE-566) the user can no longer create bid fees with no adjustment type selected. The user will be shown an error in such cases.
- Fixed: ITVehicle was saving some DateTime fields as Date in the database, which would lose some precision.
- Added: (EE-269) the vehicles screen now auto-refreshes to see if the vehicle has been modified since load. This timer can be customized in settings. This will make it harder to have a situation where local changes have been made but cannot be saved due to other users' changes.
- Added: saving a new vehicle starts the auto-refresh timer so that changes from another user will automatically trigger a reload.
- Fixed: vehicle 'has changed since load' now checks the vehicle as well as the whole unit record. This solves an issue where purchase orders (Which only modify the whole unit) will cause the vehicle to automatically reload.
- Fixed: the email dialog now only attaches images like the checkboxes say (pdfs/videos are no longer attached, even if they're public). This helps avoid issues with filesize issues.
Vendor
- Changed: the recompute inventory prices based on vendor/price class now uses the shared database function for recomputing inventory prices. This gains the process access to all pricing markup methods (not just vendor based) as well as if a company has any customizations to this function.
Warehouse Management
- Added: an "Ignore Selected" button that marks all selected variance records as ignored so that they are no longer shown to the user.
Work Orders
- Fixed: a crash that could occur when the WO screen failed to create a new invoice for the jobs.
- Fixed: (EE-561) an issue where clicking the button to view/create an invoice from the WO would create a new, empty invoice if all the jobs were on a finalized invoice. Now, if all jobs are on valid, finalized, unvoided invoices, it will no longer create a new invoice.
- Optimized: loading an associated invoice from a WO is now faster if there are no new jobs to send to open invoices.
- Added: automatic, timer-based change detection. Now if you have a saved SO loaded, the system will check to see if someone else has changed the document in the background every couple seconds. If a change is detected, it will be automatically reloaded right away. If the user has any local changes, they will be asked if they want to load now or do it later to avoid doing a lot of extra work before saving.