Changelog

Enterprise Desktop
4/8/2026

General

  • 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: support for icons in property sheet tab controls.
  • Added: clipboard support for date, time, and date/time fields in the software. Now the user can copy (ctrl +c) out of or paste (ctrl + v) into date time picker controls in the software and embedded in list controls. This makes it easier to interact with many cells in a list control with many items that have date values.

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.
  • Fixed a possible crash that could occur

Common Resources

  • Fixed: a crash that could occur if you close the settings page with nothing selected.

Core Management

  • Changed: (case 46368) the customer core tab's salesperson column now shows the customer salesperson instead of the counterperson. Also, the vendor cores tab's "Salesperson" column has been renamed to "Counterperson" to be more accurate, but the data has not changed.

Credit Card Processing

  • Updated: POSLink integration to 1.9 from 1.6. This was to examine if it improved any features, but no significant changes were detected.
  • Added: (case 49009) support for retrieving and saving GatewayTransactionID from successful payment transactions into the database. This should make refunding payments or looking them up later easier.

Crystal Reports Extension

  • Changed: (Case 48271) the printer name dropdown in the advanced print dialog is wider now to facilitate very long printer names.

Database

  • Fixed: some vendor catalog entries had bad manufacturerids/modelids, leading to bad data and preventing foreign keys. Foreign keys were added to vendorcatalogpermanent to manufacturer, model, and vendor to prevent such bad data in the future.
  • Added: foreign key from model to manufacturer.
  • Added: (case 46069) new stored procedure pinventorydefault_prices, which attempts to calculate the 'default' prices for an inventory record based on vendor catalog and model category pricing. This may be used in more places in the future.
  • Added: (Case 46562) Add Inventory Store filter to Transaction List for the Sales Order Source
  • Fixed: historical purchase order lines that were inherent core charges were not showing up on vendor core management. This is only going back a year to ensure no ancient documents suddenly appear.
  • Added: (Case 46883) Add WO Master Part Quantity to the Transaction List for the Work Order Source
  • Changed: payment batches' document/auth/check# now can store up to 100 characters.
  • Fixed: (case 41114) several issues where duplicate job categories were causing issues on the WO screen. All duplicates have been merged and cleaned up, and a unique index added to prevent it in the future.
  • Removed: orphaned job categories and templates, and foreign keys created to prevent them in the future.
  • Changed: (case 47232) vglentrydocument no longer casts the effective date from a datetime to a date, as this was causing a query to take 4.5 minutes on a large data set instead of 12s.
  • Fixed: (Case 47267) added queries to attempt to 'clean up' as well as possible situations where WOs had invalid work order types, jobs had invalid job categories and job templates, or job categories had invalid WO types. After clearing all this up, foreign keys were added to ensure that if such 'bad data' is attempted in the future, an error will be thrown instead of allowing it. This fixes issues where some WOs could not be correctly loaded on the screen or reported on, and prevents such situations from being created in the future.
  • Changed: removed unnecessary table aliases inside the vehiclemodel view. They were making EXPLAIN queries much harder to parse.
  • Fixed: (case 47249) several queries used in the software to populate make and model dropdowns were taking 10x or more than necessary because of the index model.type_active contained a reference to manufacturerid, which is not used in this query, which was preventing filtering by active models.
  • Added: (Case 47255) Add Date Modified as both Filter and Display Field to the Transaction List for the Inventory Source
  • Added: (Case 47535) Add vehicle.mileage as Display Field to the Transaction List for the Vehicle Source
  • Fixed: (case 47532) an issue where fgetattachment_data would not work for attachments larger than 16 MiB. Now it should work on files up to 4 GiB.
  • Added: as per user request, audit logging has been added to the inventoryserial table.
  • Added: foreign keys to the salesorder table that ensure that entries cannot be created with invalid storeid or salesorderdocumentids. Rows with invalid values in these columns would not show up on all reports, creating an accounting hole. Some queries were added to attempt to migrate these values to a best guess correct value.
  • Added: (Case 48019) Add Payment Date display field to the Transaction List for the Sales Order source
  • Fixed: an enum true/false column was nullable when it was not intended to be.
  • Added: (case 48147) inventorysetting.requiredtosave, a new field for controlling which inventory fields are required to save a new or modified part.
  • Added: for continuity, inventory type, gl category, vendor, part # have all been marked as required to save a part.
  • Added: (Case 48549) Add inventory.inventorytypeid as Display Field to the Transaction List for the Inventory Source
  • Added: (Case 48311) Add Purchaseorder.vendorid, Vendor.name Display Field to the Sales Order Source in the Transaction List
  • Added: (Case 48626) filter by Date Added of attached Inventory images and display them
  • Added: index to the glentry table to make finding unexported accounting rows faster.
  • Fixed: some customer databases had invalid location ids in some historical tables related to inventory and documents. These bad ids have been cleared out so as not to cause errors when reopening or adjusting documents.
  • Added: foreign keys to the location id column in some historical tables related to inventory and documents. This will prevent bad location ids being saved in these tables, causing other issues.
  • Added: (case 49009) paymentterminaltransaction.gatewaytransactionid for storing a unique gateway transaction # for successful payments, which should make looking up and refunding payments later easier.

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.

eBayExtension

  • Fixed: (case 48969) an issue where selecting a date range with an end date several months into the future (such as "This Year") would keep the 'refresh from ebay' button from retrieving auction information. Now, if the end date is in the future, it will be moved back to today.

Graphing

  • Fixed: an issue where right click graphing could display times and date/times in the wrong timezone.

Home

  • Removed: (case 48747) the 'ordered' checkbox, which is based on a PO feature that has been hidden from the user for several years.

Location Visualization

  • 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 first open of the screen would be slower than necessary for very large location lists.
  • Fixed: an issue where selecting locations in the list on the right would not correctly select the right object in the map.

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.

SQLFramework

  • Updated: libmysql.dll has been updated to version 6.1.11

Part Configuration

  • Fixed: inconsistent use of currency formatting with model category pricing.

Part Modification

  • Added: (case 48148) there is now a "Required to Save" column in the configure inventory fields popup. If checked, these fields will be required to save a new or modified inventory record.

Parts

  • Fixed: an issue where model category pricing defaults did not set the wholesale core and jobber core correctly.
  • Changed: deleting a part # on a replenishable part will no longer attempt to find matching vendor catalog records.
  • Fixed: the 'wait' cursor should now correctly disappear if the user enters a vendor/part # combination that finds no catalog records.
  • Added: the aftermarket tab will now display a 'field modified' "*" next to each of the core price level fields if the value is modified from the saved value.
  • Added: the parts screen is now able to load the 'required to save' information from the database for all the fields on the screen. Any fields marked as required to save will have their label bolded.
  • Changed: resized many fields to give enough space for field labels in the situation where the label was bolded (required to save) and modified (shows a "*" at the end)
  • Added: store is now a field required to save, no matter system configuration, and will be displayed as such.
  • Added: part type is now a field required to save, no matter system configuration, and will be displayed as such.
  • Added: even if manufacturer is not set to be required to save, if the setting "Require a manufacturer when saving replenishable parts" is set, it will still be shown as required to save.
  • Added: even if gl category is set to be required to save, if accounting is off, it will no longer be required.
  • Added: (case 48155) the parts screen now dynamically checks what fields are 'required to save' based on company preferences when the user attempts to save. As before, fields that are required to save are displayed in bold. The popup (and status bar message) will show all fields the user must fill out that do not have a valid value currently.
  • Changed: the 'days to return/return core' and 'days to return to vendor/core to vendor' fields will now dynamically show as not required to save if the nearby checkboxes are unchecked.
  • Fixed: an issue where choosing a primary location would not set the corresponding primary location ID until save. This could cause issues if the "Primary Location #" field was marked as required to save.
  • Added: (case 48155) all fields that are only visible on the replenishable tab will not be presented as 'required to save' if the part is not replenishable since the user cannot fill those fields out on such a part.
  • Changed: Fields that default to "$0.00" (financial fields), "0" (quantity fields), or "0%" (percent fields) will now consider 0 values as 'not filled out' in regards to the 'required to save'. In addition date/datetime fields that are unchecked will not be considered filled out.
  • Added: tooltips to all controls on the part info page and advanced page
  • Changed: the 4 part type specific flex/more fields are now only 'required to save' if the current part type has those fields, even if they are marked as required to save by company preferences.
  • Changed: if typedata1-4 are 'required to save' when the popup appears to tell the user that the fields must be filled out, now the correct 'type label' 1-4 will be displayed instead of the name "Type Data 1-4".

Payment Entry

  • Changed: payment batches' document/auth/check# now can store up to 100 characters.

Purchase Orders

  • Fixed: (case 46461) an issue where loading messages on new items or loaded documents could take up to 2s. This has been made as much as 95% faster.
  • Fixed: (case 46510, 46368) an issue where saving a purchase order with an inherent core charge would not correctly mark the core as available to return. This kept the vendor core tab of core management from working correctly and seeing what cores were 'owed'.
  • Added: Re-adding a setting to disable the 'update part prices' icon on the PO screen. This allows companies to choose to disable this feature if they don't want to use it.
  • Fixed: (case 48959) an issue where the user would be allowed to delete inherent core lines from a PO if average core cost was non-zero. This is not allowed because it can prevent the inventory item from recalculating the average core cost on the item.
  • Added: (case 48959) if an item is added to a PO that has a non-zero average core cost, a core charge will be added for that item, no matter whether the 'core required to vendor' checkbox is checked or not. This will ensure that, in purchasing the item, the average core cost will get correctly recalculated until it becomes 0.

Sales Orders

  • Fixed: (case 46461) an issue where loading messages on new items or loaded documents could take up to 2s. This has been made as much as 95% faster.

Transaction List

  • Added: the user can now sort the filter and fields lists.

Vehicles

  • Fixed: if the break even graph page throws javascript errors, they are now suppressed from the user.
  • Fixed: an issue where many fields didn't correctly get noted as 'modified' when modified from the saved value.
  • Fixed: an issue where vehicle unit type specific info (category, flex fields) were not cleared when the vehicle screen was cleared.
  • Changed: the inventory type dropdown on the part info and whole unit pages now uses an auto-complete dropdown like the search and parts screens. This makes it easier to look up a type by id or name.
  • Changed: the 4 unit type flex fields are now auto-suggest dropdowns with previously entered values just like on the parts screen.
  • Added: (case 48149) a global setting "Vehicles"->"Allow users to manually set date received" (defaults to True), which controls whether a company allows users to manually set values in the date received field. If this is off, it will be set by the first PO to receive the vehicle.
  • Added: (case 48149) several settings that control whether certain fields are required to save the vehicle. They are all named like "Vehicles"->"Required to save: ", and default to off.
  • Added: (case 48151) the fields VIN, Odometer, Flex Field 1 through 4, user status, condition can now be required to save, based on global settings. If they are required to save, they will be displayed in bold.
  • Fixed: an issue where the VIN label wouldn't display as bolded if the VIN was required to save.
  • Added: (case 48152) when the user attempts to save a vehicle, the 'required fields are not filled out' popup now looks more like the same one on the parts screen and it takes company preferences into account with regards to what fields are required to save. This adds support for marking VIN, user status, odometer, condition, and the 4 flex fields.
  • Added: (case 48519) as the user selects a bid or teardown, the column headers in the item list will be updated to reflect whether each field is required to save or not. This will give the user a more 'at a glance' view of which fields are required to save the teardown parts.
  • Added: when the user attempts to save a teardown, all items will now check to make sure the part fields that are marked as 'required to save' (that are visible in the teardown list) have been filled out. The user is presented with a popup listing the field(s) that were not filled out for the first item in the list that was missing any required fields. Whether fields are required to save can be managed in the Configure->Inventory->Manage Fields and settings dialog.
  • Changed: buttons next to lookup field have been rearranged to match the parts screen.

Vendor

  • Changed: status D parts are now ignored in the vendor catalog area. So marking a part as status D now allows creating of a new SKU from that vendor catalog record.

Work Orders

  • Fixed: an issue where double-clicking a job part that had a valid vehicle, but was not in inventory would attempt to open the wrong vehicle record on the vehicle screen. Now the correct record will be shown.
  • Fixed: (case 46461) an issue where loading messages on new items or loaded documents could take up to 2s. This has been made as much as 95% faster.
  • Fixed: an issue where deleting a master part with messages would not refresh and remove those messages.
  • Added: (case 48964) a new 'choose job template(s)' popup to the WO screen. This is a larger, easier to use, filterable popup where the user can choose one or more job templates to add to the current WO.
  • Added: job templates dialog now resizes and remembers last location and list column widths.
  • Added: better tooltips to the add jobs buttons.
  • Added: the job category dropdown now has a blank option so that the user can go back to no selection after choosing a category.
  • Fixed: an issue where the WO might show 'changes' when there were none if a loaded inventory item had non-empty notes that displayed in the notes field in the part list.
  • Added: the choose multiple job templates popup now has better icons.
  • Added: choose Job Template(s) popup now has a job category dropdown with an All option for better filtering.
  • Added: double clicking an item in the job template list or hitting enter when its selected will quickly add that template to the WO. Also, the add all button is now the default button.
  • Added: for clarity, the Add All and Add Selected buttons now display a count of jobs they will add, and will be grayed out if the count is 0.
  • Fixed: an issue where templates for different work order types or stores would be shown in the job template dropdown or popup.
  • Added: there is now a blank option in the job category list, when selected, all job templates for the current work order type will be shown in the dropdown (similar to the choose job popup) instead of nothing.
  • Fixed: when selecting a job on a WO, the screen attempted to select the job category and template name in the dropdowns, but it wouldn't work if the job's name had changed from the template name. Now it should select the original template correctly.
  • Performance: all job templates are now loaded at once when work order type is chosen, so this speeds up grabbing information from the database when the user adds jobs from templates, making some operations faster.
  • Fixed: an issue where saving templates would cause the screen to close after saving successfully, even though the screen should simply clear and stay open.
  • Added: if the user deletes a job template, or adds new ones, the job template dropdown should be refreshed correctly.

Reports

REVISION 22542-22855 FOR EE V32

Billing Statement (Billing.rpt)

  • Added: (case 47627) optional html interpretation in the memo, setting-based

Customer Address Label (CustomerAddressLabel.rpt)

  • Added: (case 46391) a setting to exclude customers with no activity in the last year from the result set if desired
  • Added: (case 46391) a setting to print results with no addresses

Customer Address Label 5160 (CustomerAddressLabel5160.rpt)

  • Added: (case 46078) a setting to exclude customers with no activity in the last year from the result set if desired
  • Added: (case 46078) a setting to print results with no addresses

GL Entries By GL Account (GLEntriesByGLAccount.rpt)

  • Changed: (case 46965) query optimization, combating slowness experienced on MySQL version update

Internal Work Order (WorkOrderInternal.rpt)

  • Fixed: (case 46620) potential row duplication issue in the WOMP section when WOMP is serialized

Inventory By Location (InventoryByLocation.rpt)

  • Added: (case 40925) a new parameter to filter by default vendor

Labor Summary By Employee (LaborSummaryByEmployee.rpt)

  • Added: (case 44323) new parameter for user GL account

Purchase Order Receiving List (PurchaseOrderReceivingList.rpt)

  • Changed: (case 44221) a near-duplicate column showing part to show vendor part number instead.

Sales By Inventory Type (SalesByInventoryType.rpt)

  • Fixed: (case 46123) staggered group and grand totals to avoid the number mask on values that were too high to fit in the available space.

Sales Order 11in (SalesOrder11in.rpt)

  • Added: (case 47627) optional html interpretation in the memo, setting-based

Vehicles By Type (VehiclesByType.rpt)

  • Added: (case 47634) a new vehicle by vehicle part type report with basic information, built from Vehicle Detail By Part Type but focusing on actual Vehicles

Vehicle Cost Detail (VehicleCostDetail.rpt)

  • Added: (case 48435) a new report that shows vehicle cost detail, similar to the cost tab of the vehicle screen but for all A & H vehicles
4/8/2026

Database

  • Fixed: a minor error when updating a part with no locations.
  • Added: a stored procedure that can move all quantity on holds (documentlinelocation) for the Variance location can be moved to a given location. Useful for if things are lost because of open documents.
  • Fixed: a minor issue where location and locationid might not agree on parts with no quantity on hand. This could lead to unnecessary work to happen when saving locations over and over.
  • Case 44545: Add "Condition" Display Field to Transaction List for the Inventory Source
  • Added: fuseraccounthassiteaccess function used by the isoft authentication node module to know if a user has access to a store
  • Removed: an unused setting
  • Changed: (case 38185) fgetsetting and pchecksetting now defer to setting.defaultvalue over the default that was passed in as an argument.
  • Fixed: an issue where counting two locations (one where a serial # is found and another where it was lost from) then approving the loss after the find would result in the serial # ending up lost. This made serialized part counts order specific, which was not intentional. Now, no matter the order of the job approval, the serial # will end up found at the correct location.
  • Fixed: (case 45920) an issue where reports might show an incorrect back order quantity when back order documents have been voided.

Accounting

  • Added: (case 44569) the QB "Journal Push" area now treats accounts receivable and accounts payable exports differently. The issue is that QuickBooks does not allow AR or AP to appear in a day's push more than once. This means we have to net these entries before pushing. to accomplish this, firstly, AR and AP now drop all sub-account information. Second, all debits and credits are netted into a single entry to be pushed.
  • Added: when the user pushes gl entries to QB, the data is written to QBRequest.xml for debugging.

Credit Card Processing

  • Fixed: (case 45838) an issue where RETURN transactions were throwing errors because the S300 apparently doesn't support 'level 2' credit card integration for returns. This would cause it throw an error "TAX NOT ALLOWED". For this reason, commercial card information is now only supplied on charges, not returns.

Customer List

  • Fixed: a database error the user could see if they did a customer smart search that started with *. Also, if the user attempted to search for everything by doing a smart search for *, it will now show all customers.

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 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.

Parts

  • Fixed: an issue where adding more than one new lookup could throw an error.
  • Fixed: an issue where datemodified was not being updated if only global fields were changed on a part.

Purchase Orders

  • Fixed: an issue where right clicking the lineitem list and choosing export all or graph might not work if the popup menu extended off the edge of the list.

Sales Orders

  • Fixed: (case 44313) an issue where, if only misc items were on a document the "SAV quote" function wouldn't do anything. Now it displays an error message in the status bar.
  • Fixed: the right click option "select all items" wasn't working
  • Fixed: the right click menu for the payments and adjustments lists didn't have an export option.
  • Fixed: an issue where right clicking the lineitem list and choosing export all or graph might not work if the popup menu extended off the edge of the list.

Settings Framework

  • 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.
  • 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: (case 44529) as per user request, there is now a 'not equals' icon that is shown in the interchange area if an interchange search is done and the results are not an exact match. This helps some salespeople who want this information to pop more.

Transaction List

  • Added: support for "Key Choice" filter types. These are like "Choice" filters with the following exceptions: 1. the dropdown shown on the screen does not allow entry of arbitrary values or wildcards. 2. The search query will use the id for a given selection instead of the selected name. This mimics a historical crystal reports parameter type that works similarly.
  • Fixed: an issue where right clicking the lineitem list and choosing export all or graph might not work if the popup menu extended off the edge of the list.

Vehicles

  • Fixed: an issue when saving a vehicle where the unit category (on the basic tab) and the vehicle category (on the additional info tab) were being mixed up.
  • Fixed: a couple situations where a vehicle would save when nothing had changed.
  • Fixed: (case 45952) an issue where saving a vehicle with a teardown might 'revert' the location of those component parts if the user moved those parts with LXW after opening the vehicle and the user changed the year/make/model/vin/body style on the vehicle. Now, the location of teardown components should only be changed if the user changes it in the dropdowns in the teardown.

Warehouse Management

  • Fixed: the manual count page now has the 'enter goes down' instead of carriage return style. That way, keying in with a 10key is much easier.
  • Fixed: several memory leaks related to manual counting.
  • Fixed: an issue where the total at the bottom of the screen didn't match the projected impact on screen because all 'finds' were considering an impact of $0 instead of the 'best guess' figure shown in the list.

Work Orders

  • Changed: (case 44424) the work order date was labeled "Start Date". It has been relabeled to Date like the sales orders screen.
  • Fixed: an issue where right clicking the lineitem list and choosing export all or graph might not work if the popup menu extended off the edge of the list.

Reports

Customers With No Purchases After Date (CustomersWithNoPurchasesAfterDate.rpt)

  • Changed: (case 44505) query optimization
  • Added: (case 44505) a new parameter for customer default store
  • Changed: (case 44505) removed the subreport. Additional SO information is now retrieved in the main query with an additional join to v_invoice, and the report uses grouping and suppression to only display the most recent SO from the relevant latest SO date. This is much, much faster when dealing with tens of thousands of customers in the result set.

Inventory Count Sheet - LXW (InventoryCountSheetLXW.rpt)

  • Changed: (case 44321) moved found line down, put a divider line between different locations
  • Changed: (case 44341) show out of stock parameter set to True now includes negative quantity in addition to 0 quantity
  • Fixed: (case 44341) include out of stock logic

Labor Log By Employee (LaborLogByEmployee.rpt)

  • Added: (case 42582) user parameter, worker group parameter, and open/closed column
  • Added: (case 42582) User GL Department parameter

Sales Order 11in (SalesOrder11in.rpt)

  • Added: (case 44091) a new setting to enable showing full descriptions for core line items if desired, False by default
4/8/2026

General

  • Fixed: in the attachment area, an issue where filenames including UTF-8 characters would fail to load/save. Now these attachments will correctly load from the disk or save to the disk. This commonly comes up when people paste attachment filenames with smart quotes from the internet.

Database

  • Changed: (case 42365) most of the email columns in the schema have been changed from VARCHAR(100) or VARCHAR(320) to TEXT. This is because the email RFCs I can find allow up to 125 recipients per email with 250 characters per address. This allows bigger recipient lists.
  • Added: (Case 42497) - Added Inventory Stock Type and Stock Method to both the filter and display fields of the Transaction List.
  • Added: (Case 42559) Added Quantity Available to the display fields on the Transaction List Screen.
  • Fixed: The EPA Charge field in the Transaction List for the Work Order source was incorrectly mapped to job.laborcharge instead of job.epacharge.
  • Fixed: an issue where the document pricing function could throw an error if the customer had duplicate, overlapping contracted prices on the item.
  • Removed: (case 42626) several ebay shipping methods that are not supported by ebay any longer.
  • Changed: glentry, gltransaction have had the precision of their decimals increased, to allow transactions in the hundreds of millions.
  • Fixed: an issue where pinventoryadjust_cost might throw an error if the user adjusted a PO for an amount that differs by hundreds of millions of dollars.
  • Fixed: (case 42674) an issue where psalesordersaved could be slower than necessary because of a MySQL query planning bug. Some salesorderline indices have been removed: inventory(inventoryid, inventorystoreid) has been removed because its redundant with availablespeed index. Also, hold/type are not very selective indices, which makes them slow down things if mysql uses indexmerge in its query plan (see https://www.percona.com/blog/2012/12/14/the-optimization-that-often-isnt-index-merge-intersection/ for more info). Also, these columns are in availablespeed. This has made psalesordersaved and fcalculateinventoryallocations 90% slower than necessary.
  • Changed: (case 42656) moved a part of tinventorypostupdate to tinventorypreupdate to handle when the primary location gets changed, but changed to a value that can't work. In that case, inventory.location gets set to the correct value after the attempt. The most common scenario here would be when a user had two non-permanent locations: 1 @ A -1 @ B If the primary location got set to B, the locations would get their quantities merged, removing them, which could cause an issue in the trigger. Now, inventory.location will end up as '' after this operation correctly. Also, this trigger no longer resets the session variable @SUPPRESSINVENTORYINTEGRITY_CHECK after execution.
  • Added: logging in tinventorypostupdate now checks the session variable SUPPRESSLOGGING to see if logging should be skipped. Useful for large operations that could cause a lot of logging to be generated.
  • Changed: pinventorymoveprimarylocation now handles scenarios better where changing primary location in a way that lead to combining locations and destroying them.
  • Changed: tinventorylocationpost_update now uses a session variable to cache a value read from a setting. This makes updating large numbers of inventorylocation rows faster.
  • Added: status column to the ebayauction table. This stores the listing status returned by ebay so that we know which auctions are active and which are not.
  • Changed: salesorder.websaleid and salesorderline.websalelineid have been changed to facilitate 64bit integers used for ebay listings.
  • Added: salesorder.websaletype to differentiate between documents being linked to a HeavyTruckParts.net ecommerce sale or an eBay sale.
  • Removed: the columns in the ebay tables that linked to documents, as they are no longer necessary.
  • Added: retroactively, any sales to the ebay customer set up in settings will be connected up to ebay transactions so that they will correctly show an 'Invoice #' in the transaction list.
  • Added: Case 43829: Add Vehicle VIN# to Transaction List for the Inventory Source
  • Added: Case 43832: Add Store Filter and Vehicle Inventory Type Field To Display to the Transaction List for the Vehicle Source
  • 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'

CreditCardProcessing

  • Updated: version of internal PAX S300 credit card terminal version. This should correspond to newer versions of the terminal firmware.
  • Added: support for terminal communication types of "HTTPS GET" and "SSL". These are essentially secure versions of the web terminal and ethernet options.
  • Added: support for level 2 commercial credit card processing. This mostly involves passing the local invoice # in as a vendor PO # and the tax amount.
  • Fixed: a minor issue where "prompt" is chosen for credit vs debit might not correctly set the transaction to Credit.

Customer List

  • Fixed: memory leak in the finance charge assessment popup.
  • Added: (case 37650) customer cores and returned cores tabs now have columns for manufacturer/model of the originally sold item.
  • Fixed: an issue where the uneditable columns on the returned cores tab were no longer being grayed out.

eBay

  • Fixed: the edit template popup no longer lets the user do multiple-lines in the subtitle box. This is to more closely match the behavior of the auction upload's subtitle box.
  • Fixed: (case 42396) an issue where the user could not continue to type into the title/subtitle boxes in the edit template popup once they filled the box.
  • Added: (case 42420) {?OEMNumber} as a tag for both Pro and Enterprise. Also, {?InventoryID} has been added to the pro templates to more closely match the syntax of EE templates.
  • Changed: in the 'edit template' popup, the sub-title field has been changed to be single-line to more closely match the format of the auction upload dialog.
  • Changed: better column sizing in the default shipping methods area of the account settings.
  • Changed: the edit listing popup now puts "or best offer" near the listing settings (like the account settings area does).
  • Changed: the edit listing popup now puts the "Global Shipping" option in the shipping configuration area.
  • Fixed: the description and return description boxes no longer scroll horizontally as well as vertically, as this required unnecessary scrolling. Now long lines will appear to 'wrap'.
  • Fixed: the "paypal immediate pay" setting was not transferring to new listings correctly.
  • Fixed: the "global shipping" setting was not transferring to new listings correctly.
  • Fixed: most settings on part type templates were not transferring to new listings correctly. Now, they will apply if present, but if no template is found, the global settings will be used instead.
  • Fixed: adding/editing/removing shipping options from a part type template was not working correctly.
  • Changed: "returns accepted" no longer viewable when editing the default template settings. This is because this setting is set elsewhere on the account settings.
  • Added: if a template refers to the {?Price} field, it now respects the "use retail + core" setting.
  • Fixed: the return policy description now supports {?Tags} like the description, title, and subtitle.
  • Fixed: (case 42561) when uploading listings with images, the number of image uploads is now restricted to the number of public images on the item (up to 12).
  • Fixed: (case 43736) several issues where times that were returned by eBay were not interpreted in the correct timezone, leading to issues where auctions would not show as closed when they were.
  • Added: (case 43736) when we retrieve items from eBay, we now ask for the listing status, which can be Active, Ended, or Completed, which we report to the user. This has replaced the previous auction status column, which was only based on the end date of the auction.
  • Removed: the transactions page, which duplicated behavior from the auctions tab, but had several bugs in it. Completed auctions can be searched for and invoiced from the auctions tab.
  • Changed: the tag # column on the screen now shows the item tag #, not the SKU of the item. If the related inventory item could not be found, is displayed in the tag # column.
  • Added: if the user double-clicks the tag # column in the ebay auctions list, the part will open on the parts screen instead of opening the auction on the internet.
  • Changed: many columns have been resized, rearranged, and renamed to make using the screen easier. Some important columns are now bolded.
  • Removed: several columns that were redundant or confusing.
  • Added: tooltip descriptions to all list columns.
  • Added: (case 42749) quantity on hand column to show current stocking levels. If these are lower than the quantity left to sell on an auction, the cell will be red with an attention icon. Double-clicking such a cell will prompt the user to cancel the auction on ebay.
  • Changed: hold id column and create hold button have been hidden in ITrack Enterprise, as we will handle holds a different way.
  • Added: listings that come back as Ended or Completed are now a light or medium gray to distinguish from active listings in a mixed search.
  • Changed: many columns now show as blank instead of "0" to make finding items with sales or uninvoiced sales easier.
  • Fixed: (case 42628) the auctions tab would lose the user's sort and selection if they refreshed the results from ebay or changed filters.
  • Fixed: an issue where "invoice #" column in the transaction list would not get filled out after the user invoiced an ebay sale. Now this column will show "-", and double-clicking it will open that item on the document screen.
  • Added: double-clicking a tag # in the auction list will open the item on the parts screen.
  • Changed: the column "To Invoice" now correctly shows the number of completed sales that have not been invoiced yet in ITrack. If this is not 0, the cell will be green with an attention icon. Double-clicking this cell will create an invoice for an uninvoiced transaction.
  • Added: the 'time left' column now 0-pads the numbers it displays to 2 digits so that the column will be easier to scan and sort.
  • Added: (case 36613) new filters to the auctions page "W/eBay sales" and "Need invoiced". The first will limit to results that have been sold at least once, and the second will limit to those listings that have online sales that have not yet been turned into invoices in ITrack.
  • Fixed: (case 42628) an issue where the user's selection and sort order in the new listings page would be lost if the user edited any listings. Now their sort order and selected item will be retained.
  • Added: (case 42750) new listings now default to the remaining quantity on hand in inventory, instead of always 1. The user is also now allowed to edit quantity on listings. However, this only applies to fixed price listings, as auction listings do not support multiple quantity.
  • Fixed: the user can now enter a buy it now price for normal auctions (not just fixed price listings).
  • Fixed: reserve price on normal auctions now works.
  • Fixed: (case 43846) an issue where "Or best offer" was not working on fixed price listings.
  • Fixed: an issue where paypal immediate pay was not being sent correctly on fixed price listings.
  • Removed: (case 43846) characters such as (, ), <, >, &, and others are no longer 'HTML encoded' in the listing's title and subtitle because these fields do not support HTML. However, this is still done in the description template to support HTML in that area.
  • Fixed: when the user cancels one or more auctions, the entire auction list is no longer re-loaded from the database. This will speed up this operation and reduce flickering.
  • Fixed: an issue where auctions that were cancelled would show up as active until the user refreshed all auctions from ebay.
  • Fixed: an issue where the user's selected item in the auction list was not correctly reselected in some scenarios after a refresh.
  • Added: the user can now select multiple auctions at once. This is currently useful for cancelling more than one auction at a time.
  • Added: totals to many columns in the auction list. These display some useful totals and summaries regarding the items the user searched for.
  • Fixed: (case 44120) an issue where loading and resaving a document created as an ebay auction would remove the connection to the auction.

GlobalSettingsExtension

  • Added: the EE ebay interface now correctly loads the shipping width/height/length into the ebay items to be listed.
  • Added: inventory.quantity is now retrieved for auction items for telling if there is enough quantity on hand.
  • Added: we now check for sales orders connected to ebay transactions in a new way that will automatically recognize if a new sale is created or voided.
  • Added: (case 28580) inventory.quantity is now an available tag in the edocuments format for ebay auction templates as {?Category}
  • Fixed: (case 42588) an issue where the first time a setting in a given category/location was checked, it might retrieve a value of '' (blank) instead of the correct default.

ITrack Online

  • Added: support for running general API::Requests. The previous GraphQL related request is now a subclass called API::GraphQLRequest. A lot of fixed behavior has been moved in as default functionality into API::Request.
  • Added: support for HTTP GET based API::Requests.

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.

Parts

  • Fixed: an issue where, if a company had the setting "Clear locations when copying a part" set to True, when copying replenishable parts, the default store location might automatically be added to the newly created part, which seemed against the spirit of the setting.
  • Changed: the 'default' location for a part at a store is no longer automatically marked as permanent on replenishable inventory to avoid situations where this 'placeholder' location was sticking around forever at some yards.

Payment Entry

  • Added: icons to various buttons in each area of this screen.
  • Added: the allocation dialog now bolds the invoice #, balance, and amount paid columns. This should make where the allocations are more obvious.
  • Fixed: an issue where reopening a previously created payment allocation might check the 'use balance' checkbox on items where the entire balance was not paid.
  • Changed: (case 42445) to avoid user confusion, if you uncheck 'use balance' on an invoice in the allocation popup, the 'amount paid' is now reset to whatever it was before the user opened the popup (generally $0). Discount amount is also reset (if any). This means that checking, then unchecking 'use balance' should no longer leave the entire invoice balance in the amount paid field.
  • Fixed: several issues with improperly sized buttons and tab order.
  • Fixed: memory leaks on various batch/payment lists on this screen.
  • Fixed: incorrect date sorting in the history list.

Purchase Orders

  • Fixed: (case 42656) an issue where receiving of items after loading a PO would not use the default PO receiving location.
  • Fixed: (case 43972) a possible crash that would occur when a user would change counterperson on a PO with a newly added item selected.
  • Fixed: an issue where loading an item by typing into the lookup column would not refresh the contextual pop-out pages on the left side of the screen.

Sales Orders

  • Fixed: (case 42715) the shipping/billing address of an invoice converted from an ebay purchase was not being set correctly, leading to this info clearing out if the document got refreshed.
  • Added: (case 42716) converting an ebay purchase into an invoice did not copy the buyer's email address into the document billing/shipping info.
  • Fixed: the screen will no longer show the 'this item is already on an ebay auction' attention icon when the user is editing an invoice created from an ebay auction.
  • Fixed: an issue where saving a document might throw a database error related to ecommerce columns.
  • Added: more information passed to the credit card processing system to support level 2 commercial card transactions, which can have a better rate for the user.
  • Added: (case 32079) part search results now show a count of active ebay auctions for a given item. Double-clicking this icon will open that auction in a browser.
  • Changed: (case 44054) when the user performs a part search, their cursor should now go back into the field they were in if there were no search results.
  • Fixed: tab order at the bottom of the screen is now in the correct order.
  • Added: (case 39245) the "Purchase Vendors" info pane on search now has a "Price Class" and "Ordering Group"

ITSQLFramework

  • Changed: the host.ini setting for using ssl (secure connections) now defaults to on for new configurations instead of off. Generally, most servers support connecting securely and this seems like a good default moving forward.

Work Orders

  • Fixed: error messages related to unconfigured part gl settings now show what is in the "lookup" column instead of the part tag #, since it was difficult to understand which item the error was for.
  • Changed: the 'pick sales order to invoice WO' popup now sorts items better and has better default column widths.
  • Fixed: (case 42563) the user might see incorrect error popups saying something like "One or more labor entries/tasks/jobs/parts were invalid". This could occur when the database was busy. Now the screen will correctly automatically (and silently) retry the save operation in such a case. The error messages have also been updated to be more specific. This also means that if a database error occurs, it will no longer be hidden by one of these popups. But the previous message will still be shown in the status bar if the save fails.
  • Added: (case 42602) if the user attempts to save a work order with nothing on it (empty document) they will no longer be allowed, by user request. The popup will allow them to easily close the screen, as the user often clicks save when they mean to just close.
  • Changed: by user request, one can now manually add assemblies to WOs. We allowed it through automation on the Parts screen already, so maybe this is best.

Reports

Billing Statement (Billing.rpt)

  • Fixed: (case 38398) added a : after company phone number in the tearoff
  • Fixed: (case 38398) removed leading : in the tearoff
  • Changed: (case 43944) excluded $0 balances on OIA mode
  • Fixed: (case 43944) payments allocated to "future" invoices outside of the billing cycle range not filtering by store, which was an issue when not doing centralized Billing.rpt
  • Added: (case 43944) setting to include customer mailing address after street address
  • Changed: (case 43944) excluded second customer company/contact line if they are the same

Internal Work Order (WorkOrderInternal.rpt)

  • Fixed: (case 39694) odometer mileage now references workorder mileage (at time of WO)

External Work Order (WorkOrderExternal.rpt)

  • Fixed: (case 42639) Finalized/Unfinalized flag
  • Fixed: (case 39694) odometer mileage now references workorder mileage (at time of WO)

Labor Log By Employee (LaborLogByEmployee.rpt)

  • Added: (case 42582) user parameter, worker group parameter, and open/closed column

Parts Remaining By Vehicle (PartsRemainingByVehicle.rpt)

  • Changed: (case 40851) storeid filter now applies to parts inventory instead of vehicle units, excepting vehicles with no parts.
  • Fixed: (case 40851) excluded cost from vehicles not associated with the store when filtering by store

Sales Order (SalesOrder11in.rpt)

  • Added: (case 40868) separate job parts and labor subtotals above grand SO subtotal, enabled by a new setting. No visible changes by default.
  • Fixed: (case 39694) odometer mileage now references workorder mileage (at time of WO)

Unmoved Inventory (UnmovedInventory.rpt)

  • Fixed: (case 40353) minor query inefficiency and filters requiring the existence of a default vendor and part type
4/8/2026

Appraisal Extension

  • Fixed: the query that performs the appraisal will now correctly report any errors it receives instead of throwing them away.
  • Added: the 'choose appraisal source' popup now automatically sets the user's focus into the list control and hitting enter will select that item. This makes selecting an item with the arrows and hitting enter without using the mouse much easier.

Core Management

  • Fixed: (customer cores) the reject/return buttons are now correctly grayed out until an item is selected.
  • Fixed: (customer cores) all filters now clear correctly when the user hits clear.
  • Fixed: (customer cores) the "only expired" checkbox is now usable and correctly filters cores.
  • Added: (customer cores) the "automatic refresh" checkbox is now remembered for the current user.
  • Added: new tab, vendor cores, which gives an interactive report of all unreturned core exchanges owed to vendors. This tab has been designed to work very similarly to the outstanding customer cores tab.

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.

Customer

  • Changed: the pricing tab now has a layout more similar to other areas of the software (add/edit/remove buttons at the bottom). Also, the labels for the different kinds of special pricing have been changed to make them clearer.
  • Changed: there is no longer an item lookup and description fields. Now, to add parts the user can click an add button at the bottom, which will take them to search to find item(s) to price. This makes pricing duplicate items or large numbers of items at the same time easier.
  • Added: the add contract pricing button now shows the user's current 'lookup part' hotkey on the button to help them understand they can use this popup to quickly add a single part to contract pricing.
  • Changed: (case 40879) to allow the user to add a new contract to an item with a previous contract, the user is now shown a popup that says the current item is already contracted to the customer. They're allowed to choose between editing the existing contract or adding a new one.
  • Added: to avoid duplicate contract errors, the save operation now checks to make sure there are not two contracts for the same part ending on the same date.
  • Fixed: if there is an error while saving contracts, that will now halt the save operation.
  • Fixed: if no item is selected, the edit/remove contract buttons are now greyed.
  • Changed: per user request, double-clicking contract prices now opens the part on the parts screen instead of editing the contract pricing. A quick key has been added to the edit button for easier keyboard usage.
  • Added: expired contracts now show with a grey background. Also, the end date is now colored based on whether it is in the past, expires today, or is in the future. Because of this, color alternation has been removed from these lists to avoid confusion.
  • Changed: more important columns in the pricing lists are now bolded.
  • Fixed: a customer without permission to edit the pricing tab can still check and uncheck the 'show expired' checkbox now.

Customer Contact

  • Fixed: the from/to date range on the customer page now has 'none' check boxes so that the user can choose not to have a from or to end date. The date range dropdown is no longer free-type.
  • Fixed: the from/to date range on the home page now has 'none' check boxes so that the user can choose not to have a from or to end date. The date range dropdown is no longer free-type.
  • Added: (case 40437) 'In Person', 'Text', and 'Social Media' as contact options as per user request. New touchpoints now default to "Phone".
  • Fixed: changing date dropdown/date pickers should now correctly change the results in real time. This was broken before.
  • Changed: customer contact home page results now properly align their data.
  • Fixed: customer contact home page now displays created date correctly, and all date columns sort correctly now.
  • Fixed: column order and widths now save and restore correctly on all customer contact pages.
  • Fixed: clicking in cells in the customer contact home page will no longer show date picker controls since the rows are readonly.
  • Added: double-clicking a ticket or touchpoint on the customer screen's customer contact area will now allow the user to edit an existing touchpoint. Previously, this was not possible.
  • Fixed: editing an existing touch point will not move its 'date entered' forward.
  • Fixed: "Last Message" column on all customer contact areas now correctly displays the most recent touchpoint for the ticket.
  • Added: tooltips for all customer contact list control columns.
  • Fixed: proper list control alignment, sorting, and column widths for the customer screen page.
  • Fixed: the page now resizes correctly so that the buttons can be easily read on the customer screen page.
  • Fixed: previously, the home screen page would always color the items red. Now, items that are past due are a dark red, items due 'today' are dark blue, and all others are black.
  • Fixed: label in the 'edit correspondence' popup to no longer use the term 'ticket'.
  • Added: priority dropdown in 'edit correspondence'.
  • Removed: references to an used 'close ticket' entry type.
  • Changed: closed correspondences are now shown in a medium grey background.
  • Changed: due date column is now bright red or blue depending on due date (instead of the entire row).
  • Added: double-clicking a correspondence on the customer screen now always pops up the edit dialog, even if no touchpoint is selected.
  • Added: 'created by' and 'days ago' columns in the touchpoint list on the customer screen.
  • Changed: columns in the CRM area renamed for more clarity.
  • Changed: add new touchpoint button now has a 'new' icon instead of an edit icon.
  • Fixed: possible crash when editing a touchpoint.

Database

  • Added: a transaction list join reference that may have been missing on some databases.
  • Added: Case 40637: Add Inventory Location filter to Transaction List for the Inventory Source
  • Fixed: Case: 40639 Delete and Re-release Inventory Store Filter & Inventory Store Join in the Transaction List for the Inventory Source
  • Added: lineitem default description template has been moved from store setting to global setting.
  • Added: purchaseorderline.corestatus, similar to other document screens. Currently, this is useful for keeping track of whether core returns have been discarded/ignored/rejected.
  • Changed: f_quantityreturnedtovendor now looks at quantityreceived on return POs instead of quantity (order quantity) for documents that are done receiving. This will mean that unreturned items on documents will 'release' if the PO is marked as done receiving.
  • Added: new permissions for the vendor cores tab.
  • Added: (case 40162) two new eBay shipping method options: fed ex home delivery and flat rate freight.
  • Added: foreign keys to the inventoryvariance table so that lost/found inventory adjustments will automatically go away if the user deletes an inventory record or a serial that has been lost or found.
  • Changed: the speed index on the inventoryvariance has been rearranged to more easily allow joining to inventory.
  • Fixed: (case 42224) an issue where right click graphing (and vehicle break even graphs) would not render correctly (sometimes) due to a race condition introduced by google into their charts.
  • Removed: (Case 42306) deleted a setting that is no longer checked (since 2017) regarding taxes on exchange items.

eBay

  • Fixed: a memory leak that would occur each time an invoice was saved.

Home

  • Added: an ini setting [general]->usecustomhomepage. It defaults to false, but if its True, then the global setting for the URL of the home screen web interface can be overridden. In this way, [general]->customhome_url can be filled out to override the home page website for a specifc machine.

Parts

  • Changed: (case 40894) the temporary table that is built to store part transaction history now uses the InnoDB storage engine to avoid issues where items with large amounts of history won't throw an error encountering the default MySQL maximum temp table size of 48MB.

Purchase Orders

  • Changed: default lineitem description is now global instead of store-based. Also, the default description now involves vehicle VIN (as it is required in many states) and the side has been moved near part type (if a side is present).

Sales Orders

  • Changed: default lineitem description is now global instead of store-based. Also, the default description now involves vehicle VIN (as it is required in many states) and the side has been moved near part type (if a side is present).
  • Fixed: an issue where saving/printing a closed quote document might incorrectly pop up a "do you want to mark this as a lost sale instead?" question.
  • Added: support for store.* tokens to be referenced inside the default description. This will be the inventory store information for the current item.
  • Removed: (case 41149) by user request, hitting 'email SO to salesperson' used to send an email (by default) to both the customer salesperson, and the salesperson assigned to the sales region the customer falls in. The second part (a feature from 2008) has been removed, so now only the current salesperson is used by default (no sales region).
  • Fixed: (case 42326) an issue where hitting enter to perform a part search after choosing a model from the dropdown could cause a scenario where the user would be prompted to choose an interchange # multiple times in a row, and the search results would become duplicated (only possible at yards with interchange).
  • Added: by user request, the alternate parts info pane on search now shows alternate parts through the inventory lookups entered on the parts screen (supersession, alternate parts). Also, the alternate part rows now show the tag # of the item and a reason for the alternate part row showing up.

Vehicles

  • Added: (case 39177) if the user saves a whole unit on the vehicles screen that has been transferred between stores, all those changes will apply to that vehicle record at all stores (except store-specific things like quantity, status, and average cost). This should avoid any issues where status T versions of a vehicle at another store have 'out of date' information on them.
  • Changed: loading a vehicle doesn't automatically send the user back to the first tab. This makes arrowing through vehicles while viewing a breakeven graph easier.

Vendor

  • Fixed: (case 40800) an issue where modifying an existing vendor message and saving would not correctly save the message.

Work Orders

  • Changed: default lineitem description is now global instead of store-based. Also, the default description now involves vehicle VIN (as it is required in many states) and the side has been moved near part type (if a side is present).

Warehouse Management

  • Added: the from/to location for non-serialized parts have been flipped when items have been 'found' at a location. Before, it seemed like quantity would move to Variance. Also, when items are lost, the To location is now "Variance (LOST)" and when items are found, the from location is now "Variance (FOUND)".

Reports

Sales By Customer (SalesByCustomer.rpt)

  • Added: (case 40509) customer phone number

Sales By Tax Item (SalesByTaxItem.rpt)

  • Changed: (case 40484) standardized date format

External Work Order (WorkOrderExternal.rpt)

  • Added: (case 40357) customizable background text for estimates, based on a store level setting.
  • Added: (case 40357) set size limitations on background text
  • Fixed: (case 40965) when "show tag number instead of description on jobs" = False and "use table layout for job line detail" = True, partnumber and serial were showing instead of description as if "show tag number" were true.
4/8/2026

Highlights

  • Major improvements to the ebay screen
  • Date range dropdowns all over the system now only show future or past date ranges, depending on what the filter applies to. More range options were added for the future to match the past options.
  • The search screen's dropdowns are now more consistent and no longer automatically 'pop down' but do so if the user types in them. This improves behavior when popups appear and makes it clearer what hitting the enter key does (perform search instead of close dropdown). Also, several popups on the screen have been improved for easier user interaction.
  • Search screen dropdowns now support some fields that automatically add wildcards to both sides. This makes it so that searching description or notes will find what you entered anywhere in the field.
  • Warehouse management screen is now clearer when reviewing count jobs (from/to location swapped when items are 'found')

Database

  • Added: (case 38000) updated adderscripts, many with updated report categories for all standard reports that print from the Report Viewer
  • Added: (case 38000) updated adderscripts for all standard reports that print from screens other than the report viewer
  • Changed: (case 38000) reports with category 'Metadata' to category 'Configuration' per user feedback
  • Added: Case 39295: Add Monthly Average Usage, Vendor Lead Time as Display Fields in Transaction List for the Inventory Source
  • Added: function fgetcompanyproductcode, which is a product agnostic API for getting a company product code.
  • Changed: for consistency, now all prices on the inventory record can be negative, to help facilitate non-depletable SKUs that represent discounts.
  • Added: (case 39472) support for inventory search fields that are 'auto-wildcarded'. This has been enabled on description and notes searches initially. This means values entered on a description or notes searches will be found anywhere in the field.
  • Added: (case 37359) a script to standardize salesorderdocument memo setting names, a script to standardize "hide memo" setting name
  • Added: (case 37359) salesorderdocument memo settings (store level) if they don't already exist
  • Fixed: fchecksetting now properly sets the default of the settings that get created.
  • Added: Case 39641: Added filters for Inventory Question & Answer to the Transaction List for the Sales Order source
  • Added: support for specifying an email subject in reportqueue.
  • Added: Case 39981: Add vehicle.storeid Display Field to the Transaction List for the Vehicle source.

Accounting

  • Changed: all the date range dropdowns no longer show 'future' date range spans.

Appraisal Extension

  • Added: support for disabling errors when testing if an appraisal connection is valid.

Customer

  • Added: (case 39528) the customer sell price class markups now sorts the rows automatically by the sell price class name.
  • Changed: the contract price rows are now sorted better for numeric tag #'s.
  • Added: 'Average Cost' as an option in special price adjustments.
  • Changed: the markups in special price adjustments are now displayed as raw %'s instead of markup %'s. This makes the pricing display look more consistent with other areas. This means a markup of 25% (previous display) will now be shown as 125%. This only affects display, no change to pricing behavior.
  • Changed: the pricing page no longer checks for overlapping contract time spans for the same part, as there were issues with it, and the user can simply manage this themselves.
  • Added: (case 39324) support for showing the user account who created each customer price contract.
  • Changed: customer price contracts no longer are reloaded when the user changes whether to show expired documents, which speeds the screen up.
  • Changed: when adding or editing a customer price contract, past date ranges are no longer visible, as they are not usually useful.
  • Added: next 365 days option for price contracts date range combo.
  • Fixed: (case 40533) two columns labeled "salesman" have been relabeled to "counterperson" for increased accuracy.

Customer Contact

  • Changed: all the date range dropdowns no longer show 'future' date range spans.
  • Fixed: (case 40538) the customer contact home page now correctly loads all stores into the dropdown.
  • Added: the store dropdown on the home page now defaults to the store the user is logged into.

eBayExtension

  • Fixed: several memory leaks occurring through normal usage of ebay screen.
  • Fixed: several crashes that could occur when listing parts without first signing into eBay.
  • Fixed: (case 39231) If you chose 'no returns allowed' you would see an error when sending the listing.
  • Fixed: (Case 28577) an issue where some characters the user might copy + paste into a listing description could cause eBay to throw an error. They are now translated to the nearest matching character before upload.
  • Fixed: several issues where clicking refresh or ebay sign-in would cause error messages instead of just taking the user to the 'sign-in' page.
  • Added: if you've signed in successfully and then hit the 'reset ebay sign-in' there is now a popup that says it will clear the current info and asks the user if they are ok with that.
  • Added: The listing page now shows the actual ebay category text for the current listing instead of its (useless) id #.
  • Changed: The area where you see the formatted listing body (created from template) no longer removes all the line-breaks they put in the template. This makes it a lot easier to review the upload body. Also, that edit box no longer has horizontal scrolling.
  • Fixed: eBay Site (us vs canada) wasn't implemented right and threw an error
  • Fixed: a minor issue with paypay immediate pay
  • Fixed: If you updated the auctions page, a floating date-time value would appear. There is now a datepicker labeled Last update from eBay
  • Changed: Renamed Global Config to "Account Defaults", and "Advanced Config" to "Listing Templates"
  • loading the screen with no token, then getting one wouldn't work right if sandbox mode was enabled without first clicking production.
  • Loading the screen with a sandbox token wouldn't work unless you clicked into production, then back to sandbox.
  • Removed a bunch of unused image handling code from the edit listing dialog.
  • Fixed: some currency values are now properly sorted in the user's locale format.
  • Added: (case 39820) better sorting to the list columns in the auctions page, listings page, and transactions page.

GlobalSettings

  • Fixed: an issue where new settings might not get their default correctly.

Home

  • Changed: all the date range dropdowns no longer show 'future' date range spans.
  • Fixed: (case 39912) an issue where non-deplete items were showing as not available on the SO and WO home screen tabs.

Master

  • Fixed: (case 39506) an issue where the application might load the same module more than once, which could lead to crashes in some corner cases.

Parts

  • Added: limit to the 'contained in collections' tree to just 150 collections. In general, most items are contained in no more than one collection, but for companies that have non-deplete warranty items that they put into many parts' templates, this will speed up loads.

Purchase Orders

  • Fixed: (case 39670) an issue where clicking the attachments button did not cause the dialog to appear.
  • Fixed: (case 40014) an issue where results sent from inventory overview to PO or TO could cause some issues if the items are templates.
  • Fixed: an issue where clearing the PO screen didn't clear out the type dropdown.

Sales Orders

  • Added: when creating a return document, the original 'salesperson' who got credit for the sale will be copied from the original instead of the current customer salesperson.
  • Fixed: (case 39670) an issue where clicking the attachments button did not cause the dialog to appear.
  • Fixed: (case 39791) an issue where document lineitem descriptions were not properly loading any tokens from inventory, like inventory.description.
  • Changed: (case 40184) fixed an issue where the search screen list control acted weird when scrolling horizontally.
  • Changed: (case 40299) the dropdowns on search no longer automatically show their drop-list when you tab onto them. The reason for this is because it made the action of hitting enter inconsistent on the screen. This is because (when a dropdown is shown) enter confirms the choice and closes the dropdown, while the rest of the time, enter performs a search. This was especially confusing when closing a popup like the interchange dialog.
  • Added: in conjunction with the above change, typing into a dropdown now always shows the dropdown list for the user to arrow through. Before, only autocomplete dropdowns would do this. Now they all do. (Note: in addition to typing, the user can hit the up or down arrow to show the options).
  • Changed: all dropdowns on the vehicle search are now styled the same way as the part search, including the behavior of when they dropdown.
  • Fixed: inconsistencies on dropdown behavior on part and vehicle search tabs.
  • Added: (case 40299) the "OK" button on the interchange popup now performs the search after choosing an item.
  • Removed: (case 38172) due to confusion and disagreement over what OK and Cancel should do in the 'no results found' dialog, it has been removed. Now, if a search is performed that finds no results, the system will beep and information will be put in the status bar.
  • Added: (case 39472) support for search fields that get 'auto wildcarded' as part of a search. For fields like description or notes, the value will be searched anywhere inside the field.

ITSQLFramework

  • Fixed: (case 39506) an issue where the error reporting dialog could cause a crash if the settings module had caused a crash before.

Warehouse Management

  • Added: the from/to location for non-serialized parts have been flipped when items have been 'found' at a location. Before, it seemed like quantity would move to Variance. Also, when items are lost, the To location is now "Variance (LOST)" and when items are found, the from location is now "Variance (FOUND)".

Work Orders

  • Fixed: (case 38662) an issue where doing an assembly breakdown might cause a database error if the Assembly Breakdown work order type and Assembly Breakdown Template (job template) were saved in a specific way (related to the labor GL category). Now such situations should be handled better. Assembly breakdown jobs will now correctly inherit defaults from the Assembly Breakdown WO type, as customized by the user.
  • Fixed: (case 39670) an issue where clicking the attachments button did not cause the dialog to appear.
  • Fixed: (case 40435) an issue where creating a new job or new job template on a WO didn't copy information from the WO template correctly.
  • Fixed: an issue where the edit work order types dialog did not display default labor rate correctly as currency, and the shop supply charge field was not displaying percentages correctly.
  • Fixed: an issue where the user could not select and delete more than one labor entry on a job.
  • Fixed: an issue where the 'send WO to invoice' popup was showing expired quotes. Also, results will be ordered by date, then document # to make them easier to find.
  • Fixed: (case 40572) an issue where removing parts or tasks from a job template and then saving the template would not remove those items correctly.

Quickbooks

  • Fixed: (case 39797) an issue where the accounting push tab now shows checkboxes for what to export again.

Reports

Billing Statement - French (Billing_French.rpt)

  • Removed: (case 38548) deprecated the temporary duplicate file that only handled French mode. The standard report can do this now. Screen reports have been able to correctly pull in parameter defaults for awhile, and this is just a holdover.

Database Change Log (DatabaseChangeLog.rpt)

  • Added: (case 39031) a new event filter, and a new column filter that has the ability to filter by a specific column, all columns, or a comma-separated list of columns. A default parameter value can be set for this with a new Reports setting.

External Work Order (WorkOrderExternal.rpt)

  • Changed: (case 40049) job parts and labor layout is now laid out like a table by default, with a setting available to change that back to the more SO-like look
  • Changed: (case 40049) combined customer unit and master part subreport into one section and cleaned it up.

Inventory Loss (InventoryLoss.rpt)

  • Added: (case 38795) a report showing inventory on variance document types in a date range with quantities and replacement costs.
  • Added: (case 38795) missing namer in the header

Inventory Summary (InventorySummary.rpt)

  • Added: (case 39025) inventory replacement cost, if a new setting (passed in via parameter) is set to True. It is False by default.
  • Changed: (case 39025) moved noninventory setting out of the report query. It is now passed in via parameter.

Parts Remaining By Vehicle (PartsRemainingByVehicle.rpt)

  • Changed: (case 39623) updated comment header

Price Deviation (PriceDeviation.rpt)

  • Added: (case 38439) rejected/approved by username, when present, in the new approval/rejection subreport.

Receiving Tag (TagReceiving.rpt)

  • Changed: (case 40021) Receiving tag now respects show SKU below barcode tag setting

Sales Order 11in (SalesOrder11in.rpt)

  • Changed: (case 37359) standardized setting names: salesorderdocument memos + hide memo were different from the rest

Sales Order Returns (SalesOrderReturn.rpt)

  • Fixed: (case 40017) GL context filtering was excluding some core returns/exchanges.

Vehicle Value Analysis (VehicleValueAnalysis.rpt)

  • Added: (case 39450) vehicle unit remaining market and sold retail. Part counts do not include vehicle units.
  • Changed: (case 39450) shortened Parts header line to exclude remaining market and sold retail, then moved cost columns section to the left of parts columns
  • Changed: (case 40011) VVA report now pays attention to the setting that allows you to exclude non-inventory vehicles even if there is cost remaining
4/8/2026

EE Change log version 27 REVISION 21591-21738 database version 2700

Highlights

  • Made it harder to accidentally change important accounting settings.
  • Added: (case 36901) if the user discards a returned core, the cost of that core exchange now goes into the cost discrepancy table, since that is inventory value that did not get the chance to affect inventory cost.
  • Most print buttons in the software now show an 'email to' dropdown whose auto-complete options are limited to the customers/vendors/users shown on that screen.
  • Less confusing database error messages when you launch the application with invalid settings.
  • The user can now modify billing or shipping addresses on finalized sales orders
  • Support for a new permission that controls the ability to edit POs

Shared

  • Changed: the number of automatic retries when deadlocks are encountered has been increased from 2 to 3, meaning the system will attempt a save up to 4 times without reporting an error to the user in the case of deadlocks and lock wait timeouts.
  • Added: if a automatic list control cell tooltip is long enough that it is truncated for display, a … will be added to the end.

Accounting

  • Added: (case 38301) the accounting screen now opens in a 'read only' mode to help avoid issues where users are accidentally changing critical accounting settings. There is now an "Edit Accounting Settings" button. If the user has the edit accounting settings permission, they can click this button to enter edit mode. The user will be prompted to confirm their user account with the current password to ensure the user has access and to log the access attempt.
  • Added: (case 38301) the user now gets a confirmation popup if they change any of the dropdowns that control global accounting settings.
  • Fixed: (case 38391) an issue where adding a new gl account would cause all accounts to appear duplicated. In addition, closing the screen in that scenario could clear out the setting for AR and AP account.

Common Resources

  • Fixed: an issue where it could display Plant instead of Store in the configure settings popup.

Core Management

  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant customer emails and users.
  • Added: (case 36901) if the user discards a returned core, the cost of that core exchange now goes into the cost discrepancy table, since that is inventory value that did not get the chance to affect inventory cost.
  • Added: A new setting "Core Management"->"Move cost of discarded core exchanges to original sold inventory item (vs into cost discrepancy)", which defaults to False. If set to True, discarded cores' cost will be applied to the inventory record that the exchange was originally for. This has the effect of putting this 'lost' cost back into core inventory, but can have the effect of increasing the average core cost for the original inventory record. If left as False, discarded cores' cost will always go into the cost discrepancy queue instead (to be manually adjusted in the inventory asset later).

Customer

  • Added: (case 38321) the "Add W.O." button now sends the current customer to the WO screen.
  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant customer emails and users.

Database

  • Changed: (case 38230) scanjobaction table needs to have its "value" column changed to type text from varchar(50)
  • Fixed: (case 38319) an issue where the PO customer filter caused a database error for transaction list
  • Fixed: (transaction list) Several fixes for display fields that were mistakenly marked as keyfields, and correcting a couple joins on display fields in the Payment Source.
  • Added: (Case 38323) active field. Also, Assembly Manufacturer and Assembly Model filters don't have joins
  • Added: (case 38593) inventory date entered and date modified now set themselves automatically when new rows are inserted.
  • Added: (case 37586) a new permission for editing POs.
  • Added: (case 38847) logging triggers to the vendor table and some associated tables.
  • Added: (Case 38666) WO master part added to transaction list
  • Added: (case 38040) standardized printer tables

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."

ITrack Online

  • Added: support for more specific API error responses.

Inventory Overview

  • Fixed: (case 35747) an issue where non-replenishable inventory could show up to be reordered if the user modified a part after giving it reordering configuration.

Login

  • 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.

Mas90Accounting

  • Fixed: (case 38267) an issue where reversing historical accounting could take a lot longer than expected on large databases with a lot of accounting history.

Part Modification

  • Fixed: (case 38746) an issue where the user would see a query error when saving after changing a global field that logs changes (but only if they had the average cost or average core cost fields visible).

Sales Orders

  • Fixed: (case 27019) an issue where the user might not be able to save a credit card payment if another user has modified the SO since they loaded it. Now, a successful credit card payment will be saved immediately to avoid any issues.
  • Added: when the user submits a tax document to a 3rd party tax service, there is now more information about the line items (description, lookup) that gets sent along.
  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant customer emails and users.
  • Added: (case 38436) if a third party tax integration is enabled but there are errors (possibly due to an outage) during sales order finalization, the user will be told to choose a manual tax item to finalize anyway. If the automatic tax item "AUTOMATIC CALCULATION" is chosen, they will not be allowed to finalize the document.
  • Added: (case 38436) special handling for situations where third-party tax integrations are offline. In such a scenario, the user is presented with a popup that suggest that they change the tax item to the user's default instead of AUTOMATIC CALCULATION, which only works when the tax integration is online. This allows the user to finalize documents despite the integration being temporarily unavailable.
  • Fixed: the back order dialog now has better column widths and remembers the user's column sizes and order.
  • Fixed: (case 38612) an issue where back ordering an item with an inherent core charge would have two issues: 1. the subtotal of the original sale would not be correct (inherent core subtracted twice); 2. The back order document would not include the inherent core charge.
  • Changed: (case 37929) in the previous couple versions, the user could not modify billing or shipping addresses on finalized sales orders because of tax rate conflicts. This has been rolled back. So long as the user has permission to edit closed SOs, they should be able to change this info now.
  • Fixed: double-clicking items in the sales history tab will now open that document on the screen.
  • Changed: the stock category and stock type seemed to be mistakenly reversed in the results. Now, the Stocking Info column contains the stock type (Stocked, Obsolete, etc: more relevant to reordering) as well as the stock method (Min/Max vs Historical vs None). I believe these have been mistakenly reversed for awhile.
  • Changed: stocking level coloring that was previously based on the (now hidden) stock category is now based on if the part is replenishable since the inventory overview screen now uses this field for reordering.

Purchase Orders

  • Fixed: (case 38267) an issue where the the shipping method dropdown was in reverse order.
  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant vendor emails and users.
  • Fixed: (case 38448) an issue where a recoverable error (such as a deadlock) occurring during save of a multi-branch PO would result in transfer orders not being saved correctly.
  • Fixed: another issue where a deadlock on an interbranch purchase order might not create order fulfillments correctly.
  • Added: (case 37586) support for a new permission that controls the ability to edit POs. Also, the receiving location is now controlled by permissions.
  • Fixed: (case 38789) an issue where deleting saved lineitem adjustments would not correctly revert the cost changes on the item.

Vendor

  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant vendor emails and users.
  • Fixed: minor display issue where the displayed rows box would show "0/-1" for the rows being displayed on a vendor with no catalog.
  • Fixed: hitting New to clear the screen now correctly clears the company/contact name.
  • Fixed: a possible crash happening on the address info tab.

Work Orders

  • Added: (case 37956) all print buttons now attempt to restrict advanced print email auto-completes to just relevant customer emails and users.

Reports

External Work Order (WorkOrderExternal.rpt)

  • Changed: (case 37680) WO now displays job parts and labor more like the SO does, with a new setting to show part description instead of/in addition to tagnumber if preferred.
  • Added: (case 38596) job labor rate and totals when applicable, and a new setting to show/hide this information
  • Changed: (case 38596) standardized setting names to use 'External WO' prefix
  • Changed: (case 38232) grouped users in labor section to show with hour totals instead of individual workclock entry rows, which is much tidier

Internal Work Order (WorkOrderInternal.rpt)

  • Added: (case 38595) a new setting to determine how many blank, fillable part lines show up on the report. Default 4. Can be anywhere from 0 to 100. Moved lines into a subreport that uses the number table to duplicate lines as long as needed.
  • Changed: (case 38595) standardizing setting names

Label (Label.rpt)

  • Changed: (case 38238) non-standard sized reports should have the "No Printer" box unchecked

Price Deviation (PriceDeviation.rpt)

  • Added: (case 38439) approval reason & explanation, or approval reason & explanation + rejection history per setting. Includes the ability to show it as it was before the addition.

Sales Order 11in (SalesOrder11in.rpt)

  • Changed: (case 38387) French mode Counterperson label from "La Caissière" to "Représentant" at the request of people who speak French
  • Changed: (case 38387) updated French counterperson translation in the alternate headers subreport
  • Added: (case 38596) job labor rate and totals when applicable, and a new setting to show/hide this information
  • Changed: (case 38232) report now has standard .25 inch margins like every other letter-sized report, instead of .5 inch margins
  • Changed: (case 38232) grouped users in labor section to show with hour totals instead of individual workclock entry rows, which is much tidier

Tag (Tag.rpt)

  • Fixed: (case 38238) report margin issues, based on the standard TSC ME240 tag set up at 5.5 height, not 6
4/8/2026

EE Change log version 26 REVISION 21297-21590 database version 2600

Highlights

  • Added: (case 38210) a new global setting to attempt to work around an incompatibility regarding default windows printers on some versions of Windows Terminal Servers.
  • Changed: the Edit Payments permission has been split into Add new payments and Edit existing payments permissions.
  • Fixed: several long-standing display issues in shared lists and tree with checkboxes.
  • Added: many improvements and fixes to third party tax integrations such as Tax Jar.
  • Changed: the inventory type editing area in part configuration has been significantly improved, unused fields have been removed, and several hidden fields have been exposed, including whether inventory in that part type can be listed online as well as what HTP.net part type to map to.
  • Changed: smarter display of numbers that should or should not use thousands separators (,) in numbers on the part modification screen.
  • Added: many new fields to the transaction list screen as well as the transaction list on the parts screen.
  • Optimized: significant speed improvements to the PO screen, especially on large databases.
  • Fixed: a long-standing annoyance where the vehicle screen would ask the user to save even though they didn't make any changes (because the teardown had been modified from another screen).
  • Added: pretty much every list on the Work Order now remembers the order the user put the items in, both in edit WO and WO template modes.

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.

Accounting

  • Fixed (Case 37318): Updated the sage50 export to work for non-canadian sage50.
  • Fixed (Case 37318): Added a header to the sage50 export and added transaction period with no value.
  • Fixed (Case 37318): Sage50 export can now handle variable length glaccount numbers.
  • Fixed (Case 37318): The ITrack Sage50 export now only exports Date, Number of Distributions, G/L Account and Amount, as that's all that sage50 will import.
  • Fixed (Case 37318): The ITrack Sage50 export no longer puts spaces between columns. Additionally, dates are formatted with slashes instead of dashes.

Customer

  • Fixed: (case 37536) an issue where loading and resaving a customer could cause that customer's default store and default salesperson to reset to the current user and store.
  • Fixed: (case 37581) a database error when editing a sales region. Also, the user dropdown is more usable for situations where user accounts don't have a first/last name.
  • Fixed: an issue where payment lines were displaying invoice #'s backwards on the sales history tab.
  • Changed: (case 37652) the Payments button at the top of the screen now uses the new "Add new payments" permission instead of the old Edit Payments permission.
  • Changed: the "Edit existing payments" permission now only controls whether the user can edit a saved payment, not whether they can add new payments.
  • Fixed: the payments list on the sales tab now shows invoice #'s correctly, and columns are sorted and aligned better.
  • Fixed: an issue where double-clicking an existing payment would refresh the payment list even if the user was denied access.
  • Fixed: (case 38213) an issue where the entered by user was not displaying in the same format as on other screens.

Customer List

  • Changed: (case 37652) the Enter Payments button now uses the "Add new payments" permission instead of the old Edit Payments permission. Also, the tooltips have been modified to be clearer.

Common Resources

  • Added: (case 33529) vehicle stock # to the assembly parts remaining dialog, as per a user request.

Database

  • Added: (Case 36814) "Prices Finalized" Display Field to Transaction List for the Purchase Order Source
  • Fixed: (case 36821) an issue where a PO transaction list filter was referencing a non-existant table (purchaseorderdocument).
  • Added: (Case 36823) Add filter for: customer credit terms to the trans list
  • Fixed: an issue where fcalculateaverage_cost would throw a "divide by zero" error if the user was selling 0 quantity of a part that was associated with a vehicle. Now, $0 will be returned.
  • Added: Case 36935: Add "Job Internal Notes" to Transaction List for the Work Order source
  • Added: Case 36949: Adding OEM# to Data Management for Bulk Upload
  • Changed: (case 37012) vendor lead times are now limited to POs created in the last 90 days.
  • Added: (case 37012) "Vendor Lead Time (days)" is now an option on the part modification screen.
  • Added: (case 36824) rank columns to various job related tables as well as the job template related tables. This allows saving/loading the order of items on the screen.
  • Added: foreign key constraints to the jobpart table.
  • Added: Case 37219: Add Ordering Info fields to Transaction List for Purchase Order, Inventory Sources
  • Fixed: Case 37231: Inventory Status in Transaction List needs to use single letters
  • Added: (case 37264) a primary key to the breakdown template component table.
  • 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
  • Added: (Case 35063) Added PO Adjustments to the Transaction List Screen.
  • Added: Case 37552: Add inventory.averagecost as filter to Inventory Source for the Transaction List
  • Fixed: (case 37589) an issue where voiding transfer orders didn't adjust quantity at the source correctly.
  • Added: Case 37602: Create Customer Source for Transaction List, Add Tax Exemption Data, other basic fields and filters
  • Added: (case 37652) a new permission "Add new payments" under the Payments area. Users who previously had the Edit Payments permission will automatically be granted this permission for continuity.
  • Changed: the previous permission "Edit Payments" has been renamed to "Edit existing payments" to match other permission names. The description has been modified to denote that it no longer controls adding payments on the customer screen.
  • Added: (case 37682) an index on purchaseorder.type to speed up loading and clearing the PO screen in situations where there are many thousands of PO types in the database.
  • Fixed: various id columns in inventory have had queries run to set 'bad' ids (ones that don't match other tables) to either NULL or a valid value.
  • Added: various id columns in inventory now have explicit foreign keys.
  • Changed: (case 36210) numeric fields in the inventorysetting table that aren't 'normal' numbers (such as year or SKU) now use a type of 'ID' which forces the screen to format them without commas. Normal integers will still be formatted with the user's windows locale formatting.
  • Fixed: (case 24015) pworkordersaved now deletes master parts if the WO is an external WO.
  • Added: as per a discussion, tax items can now have an exemption type. More information on this will follow in the future.
  • Deprecated: several fields from the inventorytype table that have no references in the application. Unless some systems are found to use them, they will be removed in a future quarter.
  • Added: Case 38045: Add Interchange #, Sub Interchange # to Transaction List for the Inventory Source
  • Changed: Standardized maximum user name length to be long enough to store a full length email address (320 characters).
  • Changed: (case 38172) several stored procedures have been switched from using fgetsetting to pchecksetting because it will create the setting with a default value if it doesn't exist. For lesser known settings, this makes discovery much easier.
  • Added: fchecksetting, which is a function version of pchecksetting and fsetsetting, which is a function version of psetsetting.

Global Settings

  • Changed: how data management permissions are checked.
  • Changed: the Edit->Global Preferences->Settings is now a shared dialog.
  • Fixed: an issue where a user without the permissions for editing plant or global settings might still be able to change those settings. Now, they are grayed out, depending on scope.

Home

  • Changed: (case 36809) all the document lists now allow selecting multiple items so that the user can use the new right-click menu option for exporting just SELECTED items to a spreadsheet.
  • Added: (case 36214) document salesperson has been added to the SO home tab.

Interchange

  • Fixed: (case 37524) an issue where the search type radio buttons were not working correctly.

ITrack Online

  • Added: for API calls, we now time out if there is no data transfer for 30 seconds or if it takes more than 10 seconds to connect initially. This shortens the wait time in some situations where the API is unreachable.

Login

  • Changed: how product agnostic permissions are checked.
  • Fixed: (case 36948) the user now gets an error if they attempt to create a new account with a blank user name.
  • Fixed: a possible issue that could cause the password recovery button to not send the email.
  • Added: when a user successfully logs in, their password will be automatically and silently reencoded in the preferred encoding method (most secure method) if it is using an older methodology.
  • Fixed: (case 38172) an issue where a user that didn't have privilges to edit users could still see the menu item for editing users, but it would launch an empty popup.

Parts

  • Added: (case 37381) destination address, destination city, destination state, destination zip, and destination country columns to the transactions list, and populated it appropriately for SOs, WOs, TOs, and POs.
  • Fixed: an issue where the destination information on WOs was pulling from the live customer record instead of the address saved on the WO. These could differ if the address had been modified on the WO directly.

Part Configuration

  • Fixed: a memory leak in the part type messages popup. Also, the "Display" column has been renamed to "Show/Print".
  • Changed: the part type configuration area has been renamed to "Inventory Types", and has been significantly reworked. Now, instead of needing to continually enter a popup, the user can interact with a list of inventory types, changing them all as they go, then save at the end (instead of saving in real time). However, part type messages and Q&A are still saved in real time, so the user is prompted to save before launching those popups.
  • Added: change detection to the inventory types area.
  • Added: a usage column to the inventory types list. Hovering over this number will tell the user what references this type and how many. Useful for knowing if its safe to delete a type.
  • Added: deleting a type that is in use now prompts the user to replace that inventory type with another. All existing inventory, documents, Q&A, models, etc will be merged into the new part type on save.
  • Added: (case 37454) columns for "Pickable", "Listable Online", and an optional column for mapping to an HTP part type when listing inventory. These are not new fields, but they didn't have any UI before.

Part Modification

  • Added: (case 36210) support for certain special 'ID' style fields that do not format using the user's windows locale options. This has the effect of making sure that fields like SKU or year will not contain commas, even if windows locale formatting for numbers specifies a thousands separator.

Purchase Orders

  • Changed: (case 37682) the PO type dropdown on the screen is larger to facilitate longer lists distinct types. Also, the dropdown is now limited to loading 100 distinct options from PO history. This speeds up screen loads on systems where there are many thousands of distinct PO types.
  • Added: (case 37682) an index to the purchase order table on the type column for speeding up loading distinct types into the dropdown.
  • Changed: (case 37682) when the screen clears or a PO is loaded, PO types, tax items, and shipping methods are no longer reloaded. In addition, the number of options loaded into these dropdowns is now limited for speed purposes. The user can type into the dropdown to load more specific options. This greatly speeds up the screen opening, clearing, and loading in systems with large numbers of distinct PO types, ship methods, and tax items. In addition, tax items should not be loaded until the user opens the tax item dialog.
  • Fixed: a potential crash when opening the tax info dialog. Also, loading the dialog should correctly display the previously selected tax item.
  • Fixed: (Case 37926) an issue where popups could appear during a PO save, which would cancel the save. The main popups that could case this was the "Do you want to mark the PO as prices finalized?" and a couple warnings. The warnings now appear in the status bar and the question about marking as prices finalized now happens before the save begins.
  • Changed: (case 37858) now, when the user closes an empty PO and the screen asks "Do you want to delete this PO?", instead it will now void the unused PO. This helps avoid issues with holes in the PO numbering and some rare cases of activity being lost when two people are working on the same PO.
  • Fixed: an issue where saving a transfer order could pop up a message box saying that part of the save could not be completed, but then the save operation would auto-retry and everything was good. Because of the auto-retry system, the popup has been removed.
  • Fixed: (case 38037) a database error that could occur when using order fulfillments on POs.

Sales Orders

  • Fixed: (case 37477) an issue where the paid amount on the invoice wouldn't refresh if the user added a new payment that had an automatic amount filled out.
  • Added: (case 28881) the void checkbox is now in the dropdown button as well as in the advanced options area. It has the same permissions as the previous void checkbox.
  • Fixed: an issue where clicking 'expand all' in the return dialog could cause drawing issues on the checkboxes.
  • Changed: (case 31698) an issue where the user could not uncheck the exchange checkbox in the return dialog for inherent cores.
  • Fixed: if the user unchecked the return checkbox for inherent core charges, the exchange checkbox will also be unchecked.
  • Added: (case 11539) when the user voids an open invoice or closes an open quote, the popup that asks about lost sales has been rephrased to make sure people know that finalizing a quote doesn't convert it to an invoice.
  • Changed: when a document type that doesn't affect inventory is selected, the "Finalize" checkbox is relabeled "Close out". This will hopefully help users know that finalizing a quote like this is not like finalizing an invoice.
  • Removed: (case 25828) double-clicking the price field on a part no longer cycles through pricing levels on the part. This feature was not well known by users, and it more often caused grief through accidental use.
  • Fixed: an issue where an error was shown in the tax box instead of $0 if there were no items on the document.
  • Added: (case 37834) the tax box is now red if there is an error communicating with the tax integration (if any) and blue when waiting for a response from the tax integration.
  • Changed: if there is a problem with the tax integration, the application now times out faster.
  • Changed: (case 37939) we now submit a tax document to the tax integration if it is enabled, even if a manual/local tax is chosen instead of "Automatic Calculation".
  • Added: (case 37930) a new setting: "Sales Orders"->"Serials: when choosing serial #'s, show "On Hold" serials" which controls whether held serial #'s should be visible in the choose serial popup.
  • Added: (case 37967) support for a new 'exemption type' column in the edit->documents->tax items popup.
  • Added: if the currently selected tax item has an exemption type, it is now sent to the tax system API for categorizing 'tax exempt' documents. In addition if AUTOMATIC CALCULATION is selected, the customer's default tax item will control the exemption type of the document.
  • Fixed: (case 38039) a corner case where the total paid amount might not be correct if the customer had no default payment method.
  • Fixed: an issue where a bad date was sent to Tax Jar when getting tax quotes.
  • Added: a setting that enables copying internal and external comments onto return documents as per a request by VTP. This defaults to on.
  • Fixed: when finalizing a document using a tax integration, if there was an error, the error message was not displayed correctly.
  • Fixed: an issue where inactive salespeople would be loaded into the dropdowns in a different format than active salespeople.
  • Fixed: (case 38172) an issue where clicking the red X on the "No search results found" popup would cause it to search HTP.net. The buttons have been reversed so that the default "OK" button searches HTP and the cancel button closes the popup. This means hitting escape or the red X will not search HTP anymore.

Vehicles

  • Fixed: (case 37114) previously, if the user had a vehicle open, then changed the vehicle's quantity (or any of the parts on the teardown) on another screen (such as through receiving a PO) then saved the out of date vehicle, quantity would revert. Now, quantity is only saved if the user modifies it on the screen. In addition, these quantity changes go through the 'adjust quantity' database function, which will cause average cost/core cost to be recalculated across remaining inventory (if the items had any expense on them).
  • Changed: sometimes, when loading vehicles and making no changes, the screen would still popup asking to save saying the vehicle had been modified. This was usually when loading vehicles that have had parts added to them from other screens that were not part of the teardown. Now, the user won't be prompted to save if this is the only thing that has been modified.
  • Added: (case 37115) a public column to the teardown list. This allows the user to modify whether new parts should be listed online.
  • Changed: (case 37115) whether teardown components are public by default now default based on the existing setting "Parts"->"Default: non-replenishable parts are public" like the parts screen does. In addition, when parts are added to the teardown manually (instead of from a template) the initial quantity will be set based on the existing setting "Parts"->"Default quantity for new standard parts".
  • Fixed: a memory leak on the costs page.
  • Fixed: an issue where the break even graph page was broken by recent changes, leading to a crash and incorrect graphs.
  • Added: (case 36519) if the user hits the 'add costs' button on a vehicle that is status S or C or D, the user is warned that the vehicle is no longer available and the vehicle may have to be written down if the new cost cannot be absorbed into remaining inventory.

Work Orders

  • Fixed: (case 36909) an issue where a database error would be thrown if the user opened the Manage Users->Worker Groups… dialog.
  • Added: (case 36824) the job list now saves the display order of jobs so that the user can organize jobs after creation.
  • Added: the job task list (in WO mode and in template mode) now save the display order of tasks so that the user can organize them.
  • Added: the job part list now saves display order in template mode like it does in WO mode.
  • Changed: when modifying an existing template and resaving it, the template will be updated instead of deleted and recreated.
  • Fixed: if the user reorders the parts list by dragging and dropping items the new order will now correctly be saved. Previously, only sorting the list would save.
  • Fixed: an issue where an error was shown in the tax box instead of $0 if there were no items on the document.
  • Added: (case 37834) the tax box is now red if there is an error communicating with the tax integration (if any) and blue when waiting for a response from the tax integration.
  • Fixed: an issue where the tax box might show Error after clearing the screen if a previous document had not returned its tax quote yet.
  • Added: (case 37930) a new setting: "Work Orders"->"Serials: when choosing serial #'s, show "On Hold" serials" which controls whether held serial #'s should be visible in the choose serial popup.
  • Fixed: minor display issues with the choose serial # popup.
4/8/2026

EE Change log version 25 REVISION 20966-21296 database version 2500

ITrack Enterprise Version 25

Highlights

  • (case 34386) Support for enabling external tax service in the EE API. If this is enabled, every time the totals of a SO or WO document change, an accurate tax quote will be retrieved from the external service. Currently TaxJar and Vertex are supported. When documents are finalized, a final tax document will be created in the tax system. Voiding or reopening the document will cancel these tax documents.
  • Online 'buy it now' synchronizer application now handles more complex online sales and more fields as part of the integration.
  • Most lists in the software now allow the user to right-click on column titles to show/hide columns.
  • Creating a part from a vendor catalog row now automatically adds a UPC row to the lookups tab. Also, the length, width, and height are copied from the catalog. In addition, if catalog entries are found with "Superseded By" filled out, supersession rows will automatially be added to the "Lookups" page.
  • 'Choose Serial #' popup on sales orders and work orders now shows held serials, status, and location information.
  • Significant rework to the part modification screen, including a better change log popup.
  • Added more protections against image related crashes on the search screen and better debugging tools.
  • Added GL account dropdowns for important settings on the chart of accounts page. One of the settings is a default tax account, which will be used for automated tax quotes and any fixed taxes with no other GL account.

Database

  • Changed: the default date range for the monthly inventory usage is now the trailing 12 full months instead of the last 360 days, as that could involve partial months in the average.
  • Added: a new setting to hide sequential invoice #'s, as they have proved to be confusing to new and existing companies. The values still exist in the background for any reporting needs. All existing companies default to not hiding the value, while new deployments will default to hidden.
  • Added: a field for remembering the tax document id generated by third party tax solutions.
  • Added: (case 35612) a new table for supplying customer-specific part numbers that can be applied to SKUs with matching inventory type, manufacturer, model, and/or category.
  • Added: (case 35612) a new data management import type for importing customer part numbers into the new lookup table.
  • Added: (case 35612) a trigger that automatically puts customer part #'s onto the part description when new line items are added if a matching customer part number was found in the new lookup table. Currently, this number will be added to the start of the description if it is found.
  • Added: to avoid any issues, the audit log triggers on salesorderline have been made standard.
  • Fixed: a minor update issue in version 23.
  • Added: support for triggers on the inventory table that will automatically put customer part numbers into a special Q&A option on every part save.
  • Changed: added some foreign keys to the inventorysettingselection table.
  • Changed: inventorysettingjoinid is now NULL instead of -1 for other external fields.
  • Changed: some date fields on the part modification screen no longer display a time of 00:00:00.
  • Changed: some fields on part modification now default to wider columns.
  • Changed: it was noted that some yards had permanent variance locations. These locations are no longer permanent and have been deleted as possible.
  • Added: new permission for whether the user can enter new conditions on the parts screen. If the user doesn't have this permission, they can only choose existing conditions.
  • Added: (case 34290) the vendor catalog now has fields for notes, length, width, and height. These have been added to the import mapping so that imported catalogs can fill out this information.
  • Added: unique key to the useractionkey table, and foreign keys to external tables.
  • Fixed: (case 36264) an issue where transactionalized tax item detail would not be cleared out if the user switched an invoice to be tax exempt and then saved.
  • Changed: the external tax transaction id is now a 50 character string to support more tax systems.
  • Added: (case 36378) logging triggers to the inventory table.
  • Fixed: an issue where pinventorymoveprimarylocation incorrectly marked other inventorylocation records (for other parts) as permanent.
  • Fixed: (case 36297) an issue where some part searches could be slow by adding an index on the model table. Also, removed a defunct search module that existed on some systems.
  • Added: (case 36419) permissions for SO and WO screens for whether a user can enter new serial #'s instead of choosing existing ones.
  • Changed: (case 36467) as per a suggestion at the user's conference 2019, the inventory import on the data management screen no longer overwrites fields with default values when updating existing inventory records. However, these defaults will still apply to new inventory records imported this way.
  • Added: view that can be used by UPS Worldship for pulling in Enterprise SO ship to address info.
  • Added: shippingmethod.pickup, which will control which shipping method(s) represent local pickup/will-call.
  • Added: (case 36316) pinventoryadjust_cost, which does all the work of recalculating either averagecost or averagecorecost for an inventory item.
  • Changed: (case 36316) averagecost/averagecorecost logic has been moved from pinventoryadjustquantity to pinventoryadjustcost. However, this procedure now calls the adjustcost procedure. Also, when the type is 'Dirty Core' the adjustcost procedure is now called twice, once for the averagecost and once for the averagecorecost. This solves a long-standing issue where a core bank with a nonzero averagecost and averagecorecost would only recalculate one of those values when inventorying a new core.
  • Changed: voiding or reopening a document with a core exchange will now undo the changes to quantity/averagecost/averagecorecost on the core bank item. Previously, voiding a core exchange and core charge would leave the inventoried core in inventory, which would have a net effect on inventory value.
  • Changed: inventorying a core from core management will now always put the core exchange cost into the average core cost of the core bank SKU, no matter of whether that core bank is marked "is a core" or not. Before, that cost would go into the average core cost of that bank.

Online Sale Synchronizer

  • Added: Multi item sales orders / quotes support.
  • Added: Miscellaneous line item support.
  • Fixed: An error state when the inventoryid is not found in the local database no longer occurs
  • Fixed: Script now set a misc glcategory on misc line items and the glcontext is now correctly set to 'Sale'
  • Fixed: We now get an error in logs when something can't be found in inventory.
  • Fixed: We now set the storeid for salesorderlines.
  • Fixed: Added an error message for when we can't load a customer.
  • Fixed (Case 35925) : Line Item descriptions are now filled in for a few choice fields.
  • Fixed (Case 35925) : the configuration option 'use_template' now works correctly, controlling whether to use the edocument template for lineitem descriptions.

Appraisals

  • Updated: new security (SSL) certificates have been generated and delivered.

Accounting

  • Added: dropdowns to the top of the chart of accounts page. These dropdowns allow the user to configure some settings that control important GL account choices. Current options are the A/R account, A/P account, as well as the account to hit for taxes with no other account chosen.

Credit Card Processing

  • Fixed: (case 36048) an issue where the module was not being initialized correctly.
  • Added: better error messages when unable to test the connection.
  • Added: "HTTP" as a connection method. This is the required method of connection for terminals that are configured for web application integrations.

Crystal Reports

  • Added: (case 35444) support for limits on which email address sources are shown in the advanced print dialog.
  • Changed: email addresses entered on previous advanced prints are now automatically 'forgotten' after 6 months.
  • Fixed: (case 35071) when creating report rows, we now do INSERT IGNORE to skip unnecessary duplicate report errors occurring in bursts during updates.

Customer

  • Fixed: the 'primary address' checkbox no longer gets grayed out if the user checks it on a particular address. This allows the user to change which address is primary freely.
  • Added: (case 35444) when emailing a statement from the customer screen, the email address dropdown is now only automatically populated with that customer's emails. This should prevent sending a statement to a different destination accidentally.
  • Fixed: an issue where the line item detail on the sales tab was not showing the right vendor and stock #.
  • Fixed: (case 36213) an issue where having no store region or sales person region might lead to an empty selection for default store or default salesperson.
  • Fixed (Case 36272): Removed the having clause from customer statements emailed from the customer screen
  • Fixed: (case 36510) an issue where the 'drag' bar on the messages tab could not be moved to resize. This was causing various display issues. Also, now the drag bar is limited so that the messages list cannot be completely hidden.
  • Fixed: some memory leaks.

Common Resources

  • Fixed: (case 36060) an issue where address verification popups would not remember where the user wants them positioned.
  • Added: support to the shared attachment popup for a new flag "Auto select first attachment". If set, as the target changes, the first attachment is automatically selected.
  • Added: if the user hits ok in the shared "edit/validate address" dialog, any modified value in the last edited field will now be guaranteed to save. Previously if the user closed the dialog by hitting Enter, some fields might not save.
  • Fixed: an issue where the verify address popup wouldn't size itself right.

Customer List

  • Fixed: an issue where doing a customer search would automatically put the user's focus into the multi-line read-only address column. Now the user can click into that multi-line edit, but they can arrow around the list to make a selection without bothering with those edits.

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.

Global Settings Extension

  • Changed: the queries that save settings now save in a way that will be less intensive on the database and should avoid errors when saving values to settings that have been deleted.
  • 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, store, or global levels.
  • Changed: global settings are now stored in globalsettingvalue instead of storesettingvalue with a storeid of -1. This enables foreign key constraints in the database.

Home

  • Added: ship via to the sales order list
  • Fixed: (case 36569) an issue where performing a search for SOs, WOs, POs, or TOs on a home screen tab would not refresh the footer totals when the totals were $0.

Interchange

  • Changed: (case 34138) the application interchange search area and the interchange group search area.
  • Fixed: a query error when opening the screen related to loading manufacturers.

Inventory Overview

  • Added: tag # column is now bolded.
  • Fixed: the tag # column now sorts in a more reasonable way.

ITrack Online

  • Fixed: an issue where API queries were coming back as successful if the data payload is present but so is the errors section. Now such a response is considered an error.

Login

  • Added: the 'user stores' page in the Edit->Users dialog now sorts stores by their code automatically.
  • Fixed: the 'user stores' page used to always hide private stores if you weren't logged into them. Now, users with 'Global' permission for configuring user stores will see private stores for choosing for a user. This solves an issue where private stores could not be activated or deactivated for users, even by an administrator with global permissions.

MAS90Accounting

  • Added: SO tax accounting can now handle automatically calculated taxes. In these cases, the "Default tax account" configurable on the accounting screen will be used. In addition, if a SO is accounted with a tax item that has no GL account specified on it, the "Default tax account" setting will be used.

Options

  • Fixed: an issue where the Edit->User Preferences->Database configuration was not usable if the user was not logged in. Now they can configure the database without logging in.

Parts

  • Changed: (case 35416) the default date range for the monthly inventory usage on the replenishable tab is now the trailing 12 full months instead of the last 360 days, as that could involve partial months in the average.
  • Fixed: (case 35414) an issue where closing and reopening the image viewer dialog would lead to an empty popup with no attachments shown.
  • Added: (case 32819) adding inventory from the vendor catalog will now automatically add a UPC lookup to the lookups page if the UPC is filled out.
  • Fixed: an issue where a part added from the vendor catalog would mark the part as replenishable, but not initially show the replenishable page.
  • Fixed: an issue where changing year might clear vehicle model, even when it was still valid for the new year.
  • Added: choosing a vehicle to associate the part with will now launch the 'choose interchange #' popup if appropriate.
  • Changed: replenishable parts no longer require a default purchase vendor or part number.
  • Added: support for a new permission "Create new conditions". This is required for the user to be able to enter a condition value that is not already in the dropdown. If the user doesn't have that permission, the dropdown will force selection of an existing value.
  • Added: (case 34290) when a part is created from the vendor catalog, the notes, length, width, and height fields are now filled out automatically from the catalog row.
  • Added: when a part is created from the vendor catalog, if there are any rows found where the "Superseded By" field point to the new part, supersession rows will automatically be added to the "Lookups" page. In addition, if that catalog row has a "Superseded By" filled out, a supersession entry will be added to the lookups as well.
  • Changed: (case 36100) opening an existing part no longer automatically puts focus into the part type. Instead, it goes into the first field, tag #.
  • Changed: the part type dropdown on the replenishable page now shows the part type # in the dropdown like the other dropdowns.
  • Fixed: (case 36187) an issue where the manufacturer name (including code) was sent to the search screen when the user hit the "similar parts" search button.
  • Fixed: (case 36202) an issue where copying a part would leave the old tag #. Now it will be cleared out so that it can be reassigned on save.
  • Fixed: copying a part now marks the tag as unprinted, since the new item will not have had its tag printed yet.
  • Fixed: (case 36181) an issue where a replenishable part with no default purchase vendor or part number might have a blank default tag number.
  • Added: tooltips to the attachments page

Part Configuration

  • Fixed: (case 36131) adding a new manufacturer that matches a previous manufacturer will no longer cause the system to lock up.

Part Modification

  • Fixed: the change log popup dialog now works like the popup on the parts screen. Newest entries at the top, and quantity and costs are now displayed.
  • Changed: the export button now uses the default right-click list export code.
  • Fixed: an issue where change log entries would not save the current average cost, quantity, and gl category.
  • Added: the change log popup dialog now displays useful strings instead of behind the scenes numbers.
  • Fixed: an issue where saving a change log could throw a database error if the user deleted the quantity from the quantity column.
  • Fixed: the manage columns dialog now greys out the global and log changes checkboxes for external fields correctly.
  • Changed: (case 36371) the Modify Fields button has been removed and replaced with the "Edit"->"Inventory"->"Manage Settings & Fields…" menu option. This is to reduce confusion between the global inventory settings and the user's displayed fields on the part modification screen.

Purchase Orders

  • Changed: the sort style of "Lookup" column so that tag #'s sort in a more reasonable order.
  • Fixed: (case 35977) a couple issues with the dropship customer on a fresh PO or after clearing the screen.
  • Fixed: generating an electronic document from the PO would crash or generate the wrong document type.
  • Fixed: an issue where the destination store of a PO was not properly enforced if the 'customer dropship' checkbox was checked.
  • Fixed: an issue where switching destination store of a PO was not deleting all items from the previous store correctly.

Reports

Back Orders (BackOrders.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Billing Statement (Billing.rpt)

  • Added: (case 35435) a setting to include invoice PO# on rows whenever possible.
  • Changed: (case 35435) set subreport descriptions lines to "can grow"
  • Removed: (case 35359) customer mailing address
  • Added: (case 35359) remittance country
  • Added: (case 35359) remittance address textbox that supports carriage returns
  • Changed: (case 35807) New setting to include PO#s now defaults to 'True', simplified setting name

Customer Address Label (CustomerAddressLabel.rpt)

  • Removed: (case 35359) customer mailing address

Customer Address Label 5160 (CustomerAddressLabel5160.rpt)

  • Removed: (case 35359) customer mailing address

Delivery Picking Labels (LabelDeliveryPicking.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Delivery Picking List By Document (DeliveryPickingListByDocument.rpt)

  • Removed: (case 35359) customer billing mailing address
  • Removed: (case 35359) customer shipping mailing address
  • Added: (case 35359) customer billing address textbox that supports carriage returns
  • Added: (case 35359) customer shipping address textbox that supports carriage returns
  • Removed: (case 35359) reference to deprecated column, purchaseorder.destination
  • Added: (case 36096) barcode to the bottom of every page after page 1 of each document group.

External Work Order (WorkOrderExternal.rpt)

  • Removed: (case 35359) customer mailing address
  • Added: (case 35359) customer address textbox that supports carriage returns

Label 5160 - Simple (Label5160Simple.rpt)

  • Added: (case 33940) a version of Avery inventory labels that only include the tag and barcode

Location Count History (LocationCountHistory.rpt)

  • Added: (case 34198) a new report that shows the count history of locations. By default, it shows most recent count.
  • Changed: (case 36032) report functionality to a more reasonable default. Most recent count + date range summary, or full date range detail. All countable locations are included.
  • Fixed: (case 36032) page headers and exclusion on date range detail mode
  • Added: (case 36032) order parameter

Lost Sales (LostSales.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Outside Sales Commission (SalespersonCommission.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Packing Slip (PackingSlip.rpt)

  • Removed: (case 35359) customer billing mailing address, for main and alt. headers
  • Added: (case 35359) customer billing address textbox that supports carriage returns, for main and alt. headers
  • Changed: (case 36185) updated counterperson/sales rep terminology

Payment Receipt (PaymentReceipt.rpt)

  • Added: (case 35359) customer address textbox that supports carriage returns
  • Added: (case 35359) customer country

Pick List (PickList.rpt)

  • Removed: (case 35359) customer billing mailing address
  • Added: (case 35359) customer billing address textbox that supports carriage returns
  • Added: (case 36096) barcode to the bottom of every page after page 1.
  • Changed: (case 36185) updated counterperson/sales rep terminology

Picking Label (LabelPicking.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Picking Tag (TagPicking.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Purchase Order (PurchaseOrder.rpt)

  • Changed: (case 35398) date to use system default short format like the SO
  • Added: (case 35498) a setting to ignore system locale date format and use standard YYYY-MM-DD date format instead
  • Added: (case 35522) Vendor Invoice Number(s) when present.

Purchase Order Adjustments (PurchaseOrderAdjustments.rpt)

  • Added: (case 35062) a new report for showing PO adjustments by adjustment type

Released Credit Hold (ReleasedCreditHold.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales By Category (SalesByCategory.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales By Invoice (SalesByInvoice.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales By Source (SalesBySource)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales By State (SalesByState.rpt)

  • Added: (case 35719) a new mode parameter to toggle whether the report is grouping and filtering by "Ship To State" (default) or "Billing State"

Sales History (SalesHistory.rpt)

  • Removed: (case 33752) deprecated an old report

Sales Order 11in (SalesOrder11in.rpt)

  • Added: (case 35498) a setting to ignore system locale date format and use standard YYYY-MM-DD date format instead
  • Removed: (case 35359) customer billing mailing address, for main and alt. headers
  • Added: (case 35359) customer billing address textbox that supports carriage returns, for main and alt. headers
  • Added: (case 36123) a new setting to include VIN, true by default
  • Added: (case 36123) a new setting to include flex fields, true by default
  • Added: (case 36108) salesperson and/or counterperson email address after their name, per a new setting.
  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales Order Adjustments (SalesOrderAdjustments.rpt)

  • Changed: (case 35062) overhauled the report, adding more and better filters.

Sales Orders (SalesOrders.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Salesperson Profit Analysis (SalespersonProfitAnalysis.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Top Salespeople Trending (TopSalespeopleTrending.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology
  • Added: (case 36185) a new parameter to pick between counterperson and sales rep reporting. Note: this makes the old setting that accomplished approximately the same thing obsolete

Voided Sales Orders (VoidedSalesOrders.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

WO Picking Label (LabelPickingWO.rpt)

  • Changed: (case 36185) updated counterperson/sales rep terminology

Sales Orders

  • Added: (case 35448) a new setting to hide the sequential invoice #, as they have proved to be confusing to new and existing companies. If hidden, the values still exist in the background for any reporting needs. All existing companies default to not hiding the value (for continuity), while new deployments will default to hidden.
  • Fixed: (case 35461) if the user does a return, core status, delivery status, and price validation status are all no longer copied from the original line. This can prevent information accidentally carrying forward from an original document to the return.
  • Added: (case 33441) now, the salesperson can see serial #'s in the "choose serial" popup that are currently on hold. However, held serials will not be chosen automatically, and if the user chooses a held serial, they will be warned that it is not available.
  • Added: if a serial has been sold or consumed on another document, the screen will now show an attention icon and throw an error when attempting to finalize. This means now that the "no serial # chosen" attention icon now throws a blocking error when attempting to finalize.
  • Added: the edit item dialog is now read-only on voided documents.
  • Added: the choose serial # popup now shows a status column, and just that field is colored, which should make serials in various states easier to read and know that they are on hold/on order/sold/etc.
  • Added: (case 34386) a setting for enabling external tax service in the EE API. If this is enabled, every time the totals of the document change, a tax quote is retrieved from the database.
  • Added: (case 34386) the tax box at the bottom of the screen now shows "ERROR" if a tax service is enabled and an error was returned. The user can hover over the field to see the full error message in the tooltip.
  • Changed: the sort style of "Lookup" column so that tag #'s sort in a more reasonable order.
  • Added: column order now saves for the attachment list.
  • Changed: some of the live tax integration has been modified to facilitate WO tax quotes.
  • Fixed: an issue where changing the customer of a historical sale could cause problems if that sale had a payment spread across several invoices. The code that split the payment between the old and new customer was not splitting the payment right. Also, the new payment generated by the split has more explanation for why it was created.
  • Changed: return documents no longer copy internal and external comments from the original document
  • Fixed: the Edit->Document->Shipping Methods popup now allows the user to edit the SCA code.
  • Changed: (case 36060) the shipping address dropdown's "Billing Address" has been renamed to "Same as Billing Address" to make its behavior more obvious. Also, the dropdown now has a new option "Custom Shipping Address". If this option is chosen, changes made to the shipping address will not be copied to the billing address and vice versa.
  • Added: if the user clicks the tax box, the tool tip text will be put in the user's clipboard. This can help when the tax system returned an error.
  • Added: tax quote gets refreshed if the document addresses change.
  • Added: a SO with any jobs on it will now properly send the itemized detail of the jobs as part of the tax quote request. That way, the taxability of labor, shop fees, and EPA charges can be evaluated separately from parts charges on the job.
  • Added: (case 34386) if a tax automation service is enabled, finalizing a SO with "Automatic" taxes selected will submit a final tax document to the tax service.
  • Removed: a SO save operation no longer calls finvoicetax or finvoicesubtotal after the save operation, since those functions cannot account for automatically calculated tax service amounts.
  • Fixed: the automated tax system no longer displays an error if no customer is chosen.
  • Fixed: the user can now click the 'reopen closed invoice' option for a SO that is voided but not closed.
  • Added: the automated tax system will now void the tax document if the SO gets reopened or voided.
  • Fixed (Case 35035): Added attention icons and a cancellation prompt for sales orders that have active ebay listings.
  • Fixed: an issue where a custom billing address that differed from the shipping address by only phone # or email would not correctly load back up as a custom shipping address.
  • Fixed: an issue where reopening a SO or voiding it was not correctly reversing external tax documents.
  • Added: (case 36419) permission for whether a user can enter new serial #'s instead of choosing existing ones.
  • Fixed: (case 36630) various crashes that could occur when adding or deleting tax items.
  • Fixed: an issue where the tax item popup could show a value for 'in use' for a new, unsaved tax item if there were invoices with no tax item. This could prevent the user from deleting an unsaved tax item.
  • Added: hitting "add" to add a new taxitem automatically puts the user's focus into the list control so they can give it a name without clicking around.
  • Fixed: an issue where finalizing a SO with automatically calculated taxes wouldn't show any error message to the user if it failed to finalize the taxes.
  • Fixed: an issue where doing a core exchange from the core management screen might not automatically enter the correct description and price.
  • Changed: even if automated taxes are enabled, the salesperson can still choose a different tax item. This should help in the cases of errors or weird corner cases with taxes.
  • Fixed: an issue where statically calculated taxes weren't playing well with automated taxes.
  • Added: the configure shipping methods dialog now allows the user to manage the new 'local pickup' flag on shipping methods. Local pickup shipping methods control the destination address for tax calculations in Will Call or counter pickup situations.
  • Removed: "None" as a shipping method is no longer treated as a special value.
  • Added: if a shipping method with the Local Pickup flag set, the shipping address area will be locked and tax calculations will use the document store address as the destination address.
  • Added: switching customer address or shipping method now cause tax quotes to be recalculated, since those can affect tax amounts.
  • Added: new setting: "Sales Orders", "Lock shipping address for local pickups" which defaults to "True". When set to False, local pickup shipping methods will no longer lock the customer destination address area. This facilitates companies who like to choose a destination contact on pickup orders as well. This does not affect the destination address used for tax calculations.
  • Changed: (case 35536) by user demand, many of the columns now use a special sort order that will treat columns that can contain numbers or letters more reasonably, such as tag # or Model. Numeric values will sort in a more obvious way.
  • Removed: suppressing the ability for the user to show/hide the appraised value column, as it is special and not like the other fields that can be hidden.
  • Added: more protections against image related crashes.

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.
  • Added: Case# 36438 Add Store Filter to Transaction List for the Inventory Source
  • Added: Case 36603 Add Payment Type, ID, Amount to the Transaction List for Sales Order Source
  • Added: Case 36605:Added Created By User to the Transaction List for the Sales Order source
  • Changed: (case 36521) date time pickers in list controls now show a calendar button for choosing date instead of an up/down arrow for cycling dates and times by +/-1.

User Hotkeys

  • Moved: customer search from "Search" area to "Customer" area.
  • Added: hotkeys for looking up WOs, POs, and TOs (like the SO lookup).

Vehicles

  • Added: (case 31939) newly created bid vehicles no longer default to setting their 'purchase date'. Now, status B vehicles will uncheck that date, and it will instead be set when a bid is accepted. For newly created vehicles of status A, it will continue to set to the current date.
  • Added: the performance page now remembers column sizes and order for the sold and available components lists.
  • Added: tooltips to the performance page's edits. The descriptions attempt to explain vehicle costs and best practices.
  • Added: a useful tooltip to each tab/page name on the screen.
  • Added: tooltips to all fields on the basic information tab.
  • Added: tooltips to the attachments page
  • Added: tooltips to all page headers and all controls on the screen to help explain the function of various fields.

Vendor List

  • Fixed: an issue where doing a vendor search would automatically put the user's focus into the multi-line read-only address column. Now the user can click into that multi-line edit, but they can arrow around the list to make a selection without bothering with those edits.

Vendor

  • Fixed: the 'primary address' checkbox no longer gets grayed out if the user checks it on a particular address. This allows the user to change which address is primary freely.
  • Added: the vendor catalog page now shows the notes and "Superseded By" fields from the vendor catalog, as they may contain important information.

Work Orders

  • Added: (case 33441) similar to sales orders, the user can now add serial #'s to a WO that are on hold. They are warned that these serial #'s are not available.
  • Added: the user can no longer finalize a WO if the serial # chosen for an item is no longer on hand (already sold or consumed).
  • Added: double-clicking the 'need serial #'s attention icon now opens up the choose serial # popup.
  • Added: current location to the "choose serial #" dialog.
  • Changed: the sort style of "Lookup" column so that tag #'s sort in a more reasonable order.
  • Fixed: (case 36075) an issue where non-stocked manufacturer items might not display the value in the lookup column correctly until after the user saved the WO.
  • Fixed: (case 36100) an issue where opening the WO screen would incorrectly put the user's focus into the complaint field instead of the WO type field, which is generally the first thing a user wants to choose.
  • Fixed: overactive change detection when loading a WO had automatically calculated taxes.
  • Added: support for automated tax quotes for work orders.
  • Added: tax quote gets refreshed if the WO address changes.
  • Fixed: (case 36382) inherent and dirty cores added to a job from a template will now correctly show up on core management.
  • Fixed: (case 36382) dirty cores added to a job from a template now show their cost correctly immediately. Before, they would need to be saved first.
  • Fixed: (case 36382) an issue where creating a job from a template didn't correctly set the core status to Available for inherent and dirty core lines.
  • Fixed: an issue where the parts list was not saving its column order correctly.
  • Added: the notes column in the parts list is now multiline and the user click in to read the entire notes.
  • Fixed: the screen no longer shows an error if no customer is selected.
  • Fixed: (case 36513) an issue where deleting an item with an inherent core charge could lead to the inherent core charge being left on the document.
  • Added: (case 36419) permission for whether a user can enter new serial #'s instead of choosing existing ones.
  • Fixed: an issue where sorting the job part list by the lookup column could cause inherent cores to become disassociated with the parent parts. This could lead to a crash.
4/8/2026

EE Change log version 24 REVISION 20835-20965 database version 2400

Highlights

  • Fixed a long-standing issue that lead to crashing/invalid images on the search screen (and possibly other screens with image viewers).
  • Most address areas in the software now support multi-line street and mailing addresses, and have had their maximum size increased from 50 characters to 100.
  • Added a new address validation sub-system. Most places where a customer or vendor address can be entered or edited now has a 'validate address' button. If a company has an address validation service configured, end users can use this feature to check to see if an address is valid, or choose between valid address options. If you're interested in using this feature, please contact ISoft Data.

General

  • Fixed: an issue where the application could crash in situations where columns are added and removed from list controls with active items.
  • Fixed: the image library always added a second useless image when it initialized, and it was just using up memory space.

Appraisals

  • Fixed: an issue where sales appraisals would be done over a new connection that did not copy the SSL settings or compression settings from the primary database connection. Now it does.

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.

Customer

  • Fixed: "use default customer/store" options should now fit in the dropdowns. Various UI adjustments to make the addresses easier to read and enter.
  • Added: (case 24521) mobile address to billing addresses, just like alternate shipping addresses.
  • Added: street and mailing addresses are now multi-line. This allows the user to enter specific address line 2 or address line 3 information as per the USPS standard. These fields also accept a maximum of 100 characters now instead of 50.
  • Added: county to alternate addresses.
  • Added: the email buttons in the address area now use the shared 'send email' dialog that allows attaching any customer attachments.
  • Added: the screen now remembers if an address has been validated, and will clear that flag if the user changes any part of the street address.
  • Added: a setting under "API Configuration" that will enable/disable the validate address buttons for companies that do not have an address validation API set up.
  • Fixed: an issue where creating new customer Q&A might ignore the user's choice on whether to show the question on the customer list screen.

Customer List

  • Added: mobile # to customer search as well as the list output.
  • Added: the street address and mailing address fields are now multi-line edits so the user can view the entire address.

Common Resources

  • Added: (case 34387) a shared address verification popup. This can be used by any screen where the user can edit an address and wish to verify the address with an external address validation service. More address validators will be added over time.
  • Added: the validate address popup now correctly handles address line 2.
  • Added: now, when the user selects an address result, it loads that address information into the "current address" pane. Also, double-clicking an address match will select that address and close the dialog.
  • Changed: now, when the user opens the address dialog, the address validation controls are hidden until the user clicks the "Validate Address" button.
  • Added: if the user verifies an address and it successfully validates, the resulting address match will be selecting automatically. If the user wishes to go back to the original value, they can deselect the row.
  • Added: the shared EMail dialog now handles the work of looking up the email configuration in one place, instead of on every screen that uses the dialog.
  • Added: the address validation dialog now changes an icon on the validate button to track whether or not the currently loaded address has been successfully validated or not.

Database

  • Fixed (Case 28462): Removed a deprecated ebay shipping option.
  • Removed: some duplicate settings in the "EBayExtension" location which have been superseded by those in the more consistent location of "EBay Extension"
  • Fixed: (case 35138) an issue with a misspelled index name on the inventory option table.
  • Added: (case 24521) mobile number for customer billing addresses. Also, mailing and street addresses allow 100 characters.
  • Added: (case 24521) mobile number for primary vendor addresses. Also, mailing and street addresses allow 100 characters.
  • Changed: customeraddress, vendoraddress, store, workorderaddress, purchaseorder, and salesorder all allow 100 characters on shipping and mailing addresses now.
  • Added: support for remembering customer shipping address that was selected on save.
  • Added: various address storage areas now have a field for when the address was last validated so that addresses that have already been verified do not need to be verified again.
  • Added: support for mobile phone # in the WO address area.
  • Changed: moved indices around on the model table to remove redundant entries and also speed up vehicle model lookups on some databases.
  • Added: retroactively setting the 'chosen' address for SOs and WOs based on matching customer addresses, where possible. This won't match everything, since many addresses probably differ from their current value, but where it can, it should make it easier to tell which customer addresses have been used on documents.

EBayExtension

  • Changed: a setting is now in the "EBay Extension" area instead of "EBayExtension" for consistency in the application settings.

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.

Master

  • Added: operations happening in worker threads can now customize what they return to the calling screen when they complete.
  • 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.

Online

  • Added: support for communicating with an external application API. This will be used more in the future.
  • Fixed: if the setting "API Configuration"->"Base URL" is blank, API requests return failure immediately with a specific error report regarding configuration.

Options

  • Added: the store configuration popup dialog now allows the user to enter multi-line addresses.
  • Added: the store configuration popup dialog now has a validate address button.

Parts

  • Fixed: an issue where interchange lookups were not working right now that the assembly dropdown has a the manufacturer code in the box.
  • Fixed: an issue where fields that had stock-category based defaults (public/quantity) would go back to default if the user modified the year/make/model/body style/VIN fields. Now, these fields only reset to their default when the user makes a change that changes the part from one stock category (Standard, Misc, or Replenishable) to another.

Purchase Orders

  • Fixed: a long standing bug where a user that had never gone to the PO screen before would have a really wide quantity column and a really skinny description (flipped widths) until they resized those columns.

Reports

Purchase Order Posting Report (PurchaseOrderPostingReport.rpt)

  • Fixed: (case 34813) missing storeid in the center header box

Sales By Customer (SalesByCustomer.rpt)

  • Added: (case 35143) a new customer type parameter to allow filtering by customer types
  • Changed: (case 35143) aesthetic overhaul
  • Fixed: (case 35143) new customer type parameter, which was not filtering correctly

Vehicle Search Results (VehicleSearchResults.rpt)

  • Changed: (case 33756) tidied the report

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.

Sales Orders

  • Added: the edit billing/shipping address popup now uses the shared address dialog that can validate customer addresses.
  • Added: the shipping address the user selected will now be remembered, even if the user modifies the address from the original value.
  • Fixed: if the user chose "Billing Address" for the shipping address and then modified it, it might not update the billing address correctly. Also, checking the "& Update Record" would not correctly update the billing address on the customer.
  • Added: clicking an address box will still show the view/validate address popup, even on closed documents. The address is read-only in this state.
  • Added: support for validate and get map buttons above both the billing and shipping addresses.

Transaction List

  • Changed: saved searches have been modified to facilitate sharing saved searches between different screens.

Vehicles

  • Added: (case 34303) if a VIN is decoded, and there vehicle model in the system that matches the model from the VIN decode, that model is automatically used. Also, removed references from the table vinmodel, which is not being maintained.

Vendor

  • Added: (case 34710) an issue where vendor alternate addresses were not sorted alphabetically in the address dropdown.
  • Added: a mobile number for the primary vendor address.
  • Added: the email buttons in the address area now use the shared 'send email' dialog that allows attaching any vendor attachments.
  • Added: the screen now remembers if an address has been validated, and will clear that flag if the user changes any part of the street address.
  • Added: a setting under "API Configuration" that will enable/disable the validate address buttons for companies that do not have an address validation API set up.
  • Added: support for 'last validation' date for addresses.
  • Added: street and mailing addresses now support 100 character limits instead of 50.

Vendor List

  • Added: mobile # to vendor search as well as the list output.
  • Added: the street address and mailing address fields are now multi-line edits so the user can view the entire address.

Work Orders

  • Added: the customer address dropdown has been moved directly to the screen, like the SO screen. It is now right above the sales tax dropdown. The edit address button has been moved right next to this.
  • Added: the customer address dropdown now populates with all the current customer's address options, and clears them at the right time. When the user loads a customer, an edit address popup no longer appears, as the user can choose them from a dropdown like on the Sales Orders screen.
  • Changed: the edit/view address popup can now be launched even on a locked WO.
  • Added: support for mobile # on WO addresses, and remembering when/if the shipping address has been validated.
4/8/2026

EE Change log version 23 REVISION 20664-20834 database version 2300

Highlights

  • Significant redesign of the parts screen: better keyboard navigation support, more info on the first tab, labels show which fields have been modified, which are global between all stores, and which are required to save.
  • Behind the scenes changes to make debugging remote crash dumps better. This should help us track down and solve more future crashes without detailed reproduction steps.
  • Major cleanup on the part modification screen. Vehicle model management has been combined with part model management. Now, vehicles' models can be edited on the vehicle whole unit part types. This allows companies to have multiple model lists for different unit types. In addition, UI for managing model series has been implemented on the part models, and unused fields on inventory types have been removed to avoid confusion.
  • Transfer orders can now have a source and destination of the same store, facilitating inventory 'move' documents within a store.
  • Further improvement to document saving and error management during document saves.

Credit Card Processing

  • Changed: the credit card configuration options page has been moved from the deprecated Edit->Options dialog to the Edit->Integrations->Credit Card Processing.

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.

Customer

  • Added: (case 33350) new permission for controlling choosing default customer terms.

Database

  • Added: (case 33904) some report fixes to support printing reports where parameters are used directly as a query clause.
  • Added: permission for changing customer default terms.
  • Added: message contexts for displaying messages for customers, parts, and part types onto the WO screen.
  • Removed: reference to an unused field in pinventorycreatecorerecord.
  • Fixed: the series table now has an auto-increment column and a unique key.
  • Added: foreign key from model series to the series table.
  • Changed: vehicle models have been merged into the inventory model list under the vehicle part type 9000. A view named vehiclemodel has been put in its place for backwards compatibility.
  • Added: all whole unit part types now inherit their model list from part type 9000's models.
  • Added: inventorytype now has an auto_increment primary key, and some cascading foreign keys for its typesetid and modelinventorytypeid.
  • Added: unique index to glcategory.
  • Changed: pinventorylocationverifyquantity now deletes quantity 0 Variance locations on parts.

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.

MAS90Accounting

  • Changed: how accounting errors are reported to be more specific and timely.

Parts

  • Fixed: (case 34083) a crash that could occur when clicking on part type in the assembly component list if the current part type had been deactivated.
  • Added: (case 27589) to edit any fields that are marked as 'global fields' the user has to have permission at all the stores the part is at. This means fields that are shared between each store the part is at requires access at all those stores.
  • Added: description and notes fields now expand to consume more space.
  • Changed: the locations list now consumes full width.
  • Changed: the tag # field at the top of the screen has been renamed to "Lookup", just like the vehicles screen. A new Tag # field has been added to the part info page. This is to distinguish between the field that can always be modified to do a lookup and the field that a user must have permission to edit.
  • Fixed: several issues where some fields were not locked down when the user loaded a part that they didn't have permission to edit.
  • Added: all fields required to save now have bold labels.
  • Added: all fields that are global now have underlined labels. This allows users to know when modifying values will affect the part at other stores.
  • Added: all fields that have been modified since the part was loaded now display an asterisk (*) at the end of the label text. This helps the user know what has changed since the last save.
  • Added: the part type and manufacturer dropdowns no longer have a separate edit box for their number or code. Now, that info is in the dropdown of the part type/manufacturer in the dropdown so that the user can use the auto-complete behavior to look up by name or number.
  • Removed: the stock category radio buttons have been removed. Now, stock category is automatic, based on whether the part is replenishable, has a vehicle associated, or has had its vehicle information customized. If the replenishable checkbox is checked, the part will be Replenishable; if it is unchecked, and a vehicle is on the part, the part will be Standard; if the part is not replenishable, has a vehicle, and the year/make/model/VIN/body style has been customized, the part will be Misc.
  • Added: the part info page now has various checkboxes from other tabs in a new "Stock Configuration" area. This makes some more important attributes more obvious on a part.
  • Changed: organization of the part information tab has been rearranged to make the interface more obvious and easy to use.
  • Added: Tag # field to the part info tab. The old tag# field has been renamed "Lookup" and can be used to look up parts, but not to modify the tag # on an existing part. This is now more like the lookup/stock # field on the vehicles screen.
  • Added: entering a 2 digit number in the year box will now be automatically turned into a 4 digit year.
  • Added: description and notes fields now expand to fill the entire remaining screen space.
  • Fixed: an issue where the replenishable field "Freeze until" was not correctly defaulting to unchecked. Also, change detection now works correctly on this field.

Part Configuration

  • Removed: various fields on the part type list that are not in use in the system. This should prevent confusion in the future.
  • Added: the edit part model dialog now allows the user to add new, edit existing, or delete old model series.
  • Removed: the vehicle model page, which is no longer necessary because vehicle models are done through the whole units' part type lists.
  • Fixed: several minor issues on the part model management area.

Part Modification

  • Changed: external columns that don't require a join to an external table still lock down like other external fields.

Purchase Orders

  • Fixed: (case 33972) an issue where errors during TO save might still allow the user to save instead of halting.
  • Fixed: (case 34027) an issue where the PO screen could crash when saving a document that fulfilled order routing.
  • Changed: a lot of the warning/error popups on the screen to be clearer, use more icons, and have more descriptive button text.
  • Added: by user request, transfer orders now allow TOs where the source and destination store are the same. This is useful if the user wants to have a document for inventory moves.

Reports

Bill Of Sale

  • Added: (case 27660) a new report that allows you to print a pre-generated vehicle Bill Of Sale for all vehicles on a specified PO or SO document. Documents with multiple vehicles can print a separate sheet for each vehicle or group them together, depending on parameter selection. It also has an option for printing a Blank Bill of Sale to be filled out by hand.

Inventory Age

  • Added: (case 33368) new parameters for filtering inventory by whether or not it has some quantity in an age range, a new column to display quantity in range when applicable
  • Added: (case 33368) * explanatory footer, when applicable
  • Added: (case 33368) grand total section
  • Fixed: (case 33368) inventory quantity totals, which were previously summing too high sometimes (summing for each source row)

Part Search Results

  • Removed: (case 33924) a reference to a deprecated field, inventory.serialnumber

Sales By Inventory Type

  • Fixed: (case 34051) issue with inventory type parameter not filtering

Sales Order 11in

  • Added: (case 33510) remittance address box to the bottom of the document if there is a balance and the new setting is 'True'

Teardown

  • Fixed: (case 33939) a reference to a deprecated field, inventory.serialnumber. There is now a subreport to handle serials and a hidden note explaining what the report is actually doing, because it's unusual.

Top Customer Types Trending

  • Fixed: (case 33109) the error when there were no customer types returned. Report will now print blank and say "No customer types found with given parameters."

Top Parts Trending (Age)

  • Fixed: (case 33109) the error when there were no results returned. Report will now print blank and say "No results found with given parameters."

Top Part Type Sales Trending

  • Fixed: (case 33109) the error when there were no results returned. Report will now print blank and say "No results found with given parameters."

Top Salespeople Trending

  • Fixed: (case 33109) the error when there were no users returned. Report will now print blank and say "No salespeople found with given parameters."

Vehicle Spec Sheet

  • Added: (case 33082) extended retail price on parts, per setting. By default, price does not show up.

Work Order External

  • Added: (case 33981) odometer/mileage

Work Order Internal

  • Added: (case 33981) odometer/mileage

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.

Sales Orders

  • Fixed: (case 33972) an issue where errors during save might still allow the user to save instead of halting.
  • Fixed: (case 33959) an issue where a user might hold database locks if they left an error message up on screen. Now, partial saves are rolled back and all database locks are released before the user is shown any popups. In addition, accounting errors are now more specific.
  • Changed: when loading an existing SO, focus is no longer automatically moved into the shipping address dropdown.

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.

Interchange

  • Fixed: (case 34065) an issue where the manufacturer/make dropdown wasn't loading vehicle makes correctly. Instead, vehicle models were shown. Now it should be correct.

Vehicles

  • Fixed: (case 34083) a crash that could occur when clicking on part type in the bid/teardown list if the current part type had been deactivated.
  • Fixed: the teardown/bid list will no longer remove the current part type from an item if the part type has been deactivated. In those scenarios, the inactive part type will not be available in new components' dropdowns, but any existing components of the inactive type will still have that option.

Work Orders

  • Added: messages page, which should show normal and priority messages for the current customer as well as any part messages.
  • Added: (case 31211) a new 'messages' page for displaying normal and important messages for the currently loaded customer, master parts (produced parts), as well as job parts (consumed parts) across all jobs.
  • Added: support for part type based messages for master parts (produced parts).
  • Fixed: (case 33972) an issue where errors during save might still allow the user to save instead of halting.
  • Changed: a lot of the warning/error popups on the screen to be clearer, use more icons, and have more descriptive button text.
Newer Older