Changelog

Enterprise Desktop
4/8/2026

Release 4.3

Sales Orders

  • Changed: (case 8345) setting a back order quantity no longer reduces the location allocations based on the backorder quantity. This is important because, if we're going to send locations over to a back order, we need location quantities to not be removed.
  • Added: (case 8345) when finalizing a SO with back order quantities, an appropriate quantity of location allocations will get removed from the invoice and moved to the back order. Priority is given to items that have not been picked yet, but after that, picked locations will be moved.
  • Renamed: the advanced page is now the "Item Info" page on the left of the screen.
  • Added: the item info page now has a field that shows the quantity of the selected item that has been picked so far.
  • Changed: there was a query that ran during save when creating back orders that updated the initial SO. This is now only run in situations where it would affect something, which should speed up the save process.
  • Added: when automatically or manually allocating locations for a lineitem, back order quantities are now taken into account. Any allocation count between the quantity to be sold (total quantity - back order quantity) and the total quantity is allowed. No warnings or errors will be shown if the user chooses a location count on this range. This fixes an issue (case 9483) where the user would have to manually decrease allocations down to sell quantity if they were back ordering quantity.
  • Added: the warning "Item is has insufficient quantity available at the specified location(s)" is disabled if the user overallocated a location by an amount less than the back order quantity. This is because upon finalization, the excess allocations will be moved onto the back order document.
4/8/2026

Release 4.2

Database

  • Added (case 9289) an assembly number search module
  • Fixed: the location vehicle in vehicles is now large enough to handle all locations.
  • Added: new function: fmoveinventoryprimarylocation, which can set a new primary location for a part. It has a flag that specifies whether all QoH should be moved to the new location or not. In general though, a new primary location is created and the quantity at the current primary location are moved to it.
  • Added: fmoveinventorywithallocations now sets a session variable called SUPPRESSINVENTORYINTEGRITYCHECK before calling fadjustinventorylocation. This skips calling fverifyinventorylocationintegrity twice inside child functions. This is done because f_adjust is called twice, and inventory is moved into and out of variance if we don't skip it.
  • Added: fadjustinventorylocation now skips calling fverifyinventorylocationintegrity if SUPPRESSINVENTORYINTEGRITYCHECK is set. Also, the special whole unit behavior is skipped if the session variable SUPPRESSVEHICLELOCATIONHANDLING is set to TRUE. This behavior normally deletes all other secondary locations and updates vehicle.location. This is undesirable for fmoveinventoryprimary_location, which handles all secondary locations.
  • Added: (case 9233) an event that will run at 3 am every Sunday to optimize all tables
  • Added: a new function that updates document location allocations.

Locations

  • Fixed: Now pays attention to the delimiter permission as expected.

Sales Orders

  • Added: (case 9101) the ability to add new payments has been split from the permission to edit the amount and payment information on existing, saved payments.
  • Added: the delete payment button is now greyed out if the user doesn't have add payment permission.
  • Fixed: (case 9100) a regression where the user could no longer add or edit payments on a SO if they did not have the permission to edit sales orders. Now, if the user doesn't have permission to save a SO, new or modified payments will still be saved during the print operation.
  • Added: the choose print options dialog now pops up correctly if the user is printing a SO that they don't have permission to edit.
  • Added: 2 new popups during save that will tell the user that they don't have permission to save a new payment or modified existing payment if they are missing the corresponding permission. This is just a redundancy, and should be rarely seen.

Vehicles

  • Fixed: (case 9178) an issue where the user could hit backspace in a dropdown in a list combo box and have nothing get selected.
  • Added: The bidding/teardown page now uses an auto-complete for the location dropdowns.
  • Added: when the user changes the location of teardown parts using the pop-up "vehicle location changed" dialog, the primary location of the parts will be correctly adjusted using a new database function.
  • Fixed: the vehicle location field now allows 50 characters like other location fields.
  • Added: the vehicle location dropdown now defaults to a default vehicle location specified in setting "Vehicles"->"Default vehicle location".
  • Added: teardown parts should correctly get location id as well as location name when they inherit data from the vehicle.
  • Fixed: if the vehicle has its location changed, a new 'move primary location' database function is called on the whole unit, which should correctly adjust the location of the whole unit.
  • Added: whole units now get an inventorylocation row when they are created for their primary location. Also, if the user manually changes the availability of the whole unit, the quantity of the primary location is correctly adjusted.

Work Orders

  • Fixed: (case 9478) an issue where creating inventory on a stock WO wouldn't adjust the quantity at any locations, which could cause the new quantity to end up in the Variance location after saving the part.
4/8/2026

Release 4.1

Database

  • Added: speed optimization for flocationrefresh
  • Fixed: fvehiclecost now validates vehicleid input
  • Removed: unused view vallocatedcosts
  • Removed: unused column transferorder.documentstatus
  • Added: frefreshdocument_fulfillments now being released as it was missed in an earlier update

Deliveries

  • Fixed: (case 9358) an issue where the SO destination location was being used as the WO destination location when picking.

General

  • Added: eDocuments are now store specific
  • Added: Inventory Count Sheet LXW is now part of the standard installation
  • Added: Sales Person Commission report parameters
  • Added: Tag Receiving report
  • Added parameter to Received Items by Source
  • Removed several unused reports: Inventory By Location With QOH, Inventory By Location With Qty Available, Pick List Fixed Width, Tag 4inch, Tag New, Tag Used, Inventory By Part Type With Sales

Vendor

  • Added: (Case 9328) internal comments to the purchase order history list
4/8/2026

Release 4.0

General Notices/Concerns:

  • Primary locations have been merged with secondary locations. Previously, they were stored in the inventory table, but that was creating a lot of issues where the scanner, reports, and other behavior was more difficult because it had to manage both the primary and secondary locations. Now, the primary location is simply the 'top' secondary location. Queries have been written to move all the data over so that this process should be seamless to the user, and the parts screen attempts to deal with any corner cases. However, there is now the possibility (from a data perspective) that there are inventory records with no locations whatsoever.
  • WO accounting has been very close to completely rewritten, for those yards that use GL entries for WO accounting. Testing showed this as fixing many problems, but its worth paying attention to. Part of this incorporates introducing the regenerative accounting system that the SOs screen has been using for awhile. However, since we're now attempting to regenerate historical accounting, it was necessary to make sure that all gl accounts were properly transactionalized on the WO document. Since we didn't have this historical data previously, a current snapshot has been taken. Unfortunately, its possible that a yards' configuration has changed since a WO was accounted, leading to inaccuracies which could cause WOs to get 're-accounted' when they get opened and resaved.
  • Enterprise now requires that events be turned on in the database.

Common Resources

  • Added: several new icons, an 'up and left' and a 'down and right' icon. These are in use for suggesting tree behavior to the user.
  • Added: the choose locations dialog now shows picked quantity at each of the document locations.
  • Added: new attachment dialog to common resources, including new dependencies.

Credit Approval

  • Changed: money values will now be displayed in the user's currency locale format.

Crystal Reports Extension

  • Fixed an error that would always occur if they user unchecked the "Remember my Selection" checkbox.

Customer

  • Changed: If you lack permissions to edit customers, the edits with customer address information will be read-only but not grayed out.
  • Changed: money values will now be displayed in the user's currency locale format.
  • Fixed (case 8566): modifying an existing payment no longer updates the gl account that that payment hits. This was causing old payments that were getting modified to update their account to a new bank account instead of using the historical account.
  • Added (case 8566): the AR account at the time of a payment being saved is now captured and saved with the payment. AR rarely changes, but it will allow more accurate historical accounting recreation.
  • Added: Now show check/auth # in the Invoice History list for payments. I decided to add a new column for this. case 8558

Customer List

  • Search and Show All buttons are combined now.(empty search criteria does show all)
  • Search and Show All now both trigger the wait cursor, before it was only show all.
  • Button text automatically updates as they type in the search field
  • Alt key shortcut is now the same, since its the same button(always alt+s)
  • Clear button now has an icon
  • Updated status bar messages

Data Management

  • Fixed: an issue where the number of columns that were inserted/updated could incorrectly show as 0 when the user does an import.

Database

  • Added: (case 8385) a new permission for restricting access to the location dropdowns on the picking tab of the deliveries screen. This permission has automatically been granted to anyone who could open the screen.
  • Removed: a couple old queries that were causing a duplicate entry in inventorysetting, which could cause a database error related to sell price class.
  • Added: a fix for the above duplicate entry error, rolled out as database update 243.
  • Added: there is a new column, inventorylocation.permanent, which will control whether a location can be deleted automatically when its quantity reaches 0.
  • Changed: all existing primary locations have been moved into the inventorylocation table as the highest rank location. They were also all marked as permanent automatically.
  • Deprecated: inventory.holdquantity, as primary locations will be managed in inventorylocation now.
  • Changed: fquantityatmain, fquantityavailableatmain, fquantityatlocation have all been updated to realize that primary locations are now the highest rank secondary location.
  • Removed: unnecessary primary location handling from the functions frefreshinventorylocation, fmoveinventorywithallocations, fadjustinventorylocation.
  • Changed: the Location and Location # inventorysetting rows have been renamed to Primary Location and Primary Location #, and are no longer searchable and are hidden.
  • Added: new inventorysetting row, Locations, which will allow the user to easily search all secondary locations.
  • Removed: Location (Primary) search module, and renamed the Location (Alternates) search module to just Locations.
  • Removed: fcreatecore_inventory no longer does anything with primary locations.
  • Added: for speed purposes, the notes and description fields now have indices, to make non-fulltext searches against them quicker.
  • Added: for speed purposes, all 4 of the flex fields now have indices on them for faster searching.
  • Added: for speed purposes, the vehicles table now has an index on make and model, making some part searching by make and model quicker.
  • Removed: all 4 of the deliverable document views no longer reference primary locations, as it was unused.
  • Added: new function, fverifylocation_integrity, which will ensure that the first location gets copied into inventory.location, and it also makes sure that location quantities add up to inventory.location. If they don't, it puts the difference into the location specified in the variance location setting.
  • Added: fadjustinventorylocation now calls fverifylocationintegrity at the end.
  • Fixed: frefreshdocumentlocationallocations no longer references the deprecated primary location.
  • Added: the global event handler has been enabled, as we are now going to add several EVENTs to the general schema.
  • Added: there is now an event that is run at 12:01 AM every night, which recalculates hold quantities for all documents that expired in the last week. This is so that, in case the server is off for a night, we can make sure the hold quantities get recalculated.
  • Fixed: fvehiclecost now only sums up work order master parts on WOs that are internal. Thanks go to Chad@VHI for this suggestion.
  • Added: (Case 8518) An index to jobpart to increase parentjobpartid lookup speed.
  • Fixed: fverifylocation_integrity now handles situations where a part has no locations correctly.
  • Added: pgetlocation_subtree, which is required for some operations on the location screen.
  • Added: labor, work in progress labor, EPA charges, and shop fees now all have columns in the job table for transactionalizing gl account ids for historical accounting purposes, this way accounting can be retroactively rebuilt. All of these fields are being populated with current values, since we can't know what the values were historically.
  • Added: work order master parts now transactionalize the 4 accounts hit during WO finalization for retroactive accounting.
  • Added: payment.arglaccountid, which will store the gl account of the AR account at the time of finalization for retroactive accounting.
  • Fixed: an error that was keeping fworkordersaved from running.
  • Added: an index on the message table that existed in different formats on different databases. This will standardize the index for faster reporting.
  • Added: (case 4701) the function that marks items as delivered now calls an optional, yard-specific function for seeing if specific items should skip delivery (auto-reject). By default, no items are auto-rejected from delivery.
  • Fixed: (Case 8581) a bug where the Inventory import would update old inventory items even though the input data did not match. The imported now properly creates new inventory for those items.
  • Fixed: (Case 8869) an issue where bad location data on a deliverylinehistory record could cause double-allocation on picking.
  • Fixed: (Case 8869) an issue where a trigger was not properly setting the destination location of document lines.
  • Added: an index that will improve the speed of loading sales orders.
  • Added: Speed improvements to the Vehicle Make - Model and Flex Fields search modules.
  • Removed: as per customer request, fadjustinventory (called by documents that affect inventory averagecost and quantity) no longer sets the cost on parts in some circumstances. It was decided that, since it only fires in very focused circumstances, it is confusing, and possibly always a bad idea to automatically change a user set field without confirmation, especially one that affects inventory valuation.

Deliveries

  • Added: (case 8385) a new permission has been added for restricting access to the picking staging location dropdowns. This permission is refreshed whenever the user changes the store dropdown on the screen.
  • Removed: an unnecessary reference to the primary location of deliverable items.
  • Fixed: an issue where new delivery history wasn't saving the name of the location an item was moved to when it was picked.

Ebay Extension

  • Made default templates more robust
  • Added Motorcycle Category map
  • Users can now switch between using motorcycle and Car and Truck categories

FIFO

  • Fixed: (Case 8943) a bug where returning an items that used multiple sources when sold would cause a database error.

Graphing

  • Fixed: A bad crash where loading list entries after the first time would cause memory issues.
  • Added: A IDMUPDATEDGRAPHRUN_CACHE for when the graphrun list is updated (it changes memory addresses, so you have to change your cache pointers if you're using them).
  • Added: Graph forking now works as expected. Forked graphs save but are user-specific and contain timestamps.
  • Changed: Removing the forking checkbox will change your graph from a forked variant to its parent, provided the names match.
  • Fixed: An issue where the order of combo manipulation and saving could result in invalid UI.
  • Added: Requirement that source is always set.
  • Added: Work for a user-facing graphing screen in Report Viewer. The UI and layout and interactivity stuff seems mostly done, next step is how to properly save/run/report these.

Home

  • Added: Totals to each of the four at-a-glance document tabs.

Interchange

  • Once again you can do a Part Search using Interchange & SubInterchange Number.
  • Now, when you click an Interchange Option in the list below, the Interchange & SubInterchange number get put in the edits above. case 8750
  • Clear now also clears the Year field.

Inventory Overview

  • Changed: (case 8349) the store list is no longer a 'sticky' list. Now, the list shows a checkbox that the user can use to choose which stores to show inventory for. This makes deslecting or selecting many stores at once much easier since the user can cause just a single refresh to happen, instead of a refresh on every selected item. The user can easily toggle several checks at once by selecting multiple items and hitting the space bar.
  • Changed: money values will now be displayed in the user's currency locale format.

ITSQLFramework:

  • Added: when the user gets a database error, the system now automatically runs a Rollback operation. This will only affect systems using transactional database engines, but it should keep someone from locking other users out while reviewing an error message.
  • Added: now, if no extension is loaded with a database connection, real SQL errors are shown/reported instead of just pop up message boxes.

Locations

  • Fixed: (case 8377) an issue where, if the user deleted a location, all child locations would be deleted, no matter what the user chose. Now, we update existing locations BEFORE deleting removed locations, which fixes this issue.
  • Added: the save process now happens in a single transaction, which should allow full rollback if there was an issue while saving.
  • Added: the prompts relating to deleting locations are now more user friendly, concise, and informative.
  • Added: there is a new insert option, insert sibling, which inserts a copy of the selected item at the same level as the selected item. This is now the default behavior of the insert button.
  • Changed: insert parent, insert child, and insert sibling all have new, more intuitive icons.
  • Added: if the user inserts a copy of an item with a number in the code and the description, whatever value the code gets updated to will also be reflected in the description. For example, if R1 becomes R5, then a description of "Rack 1" will become "Rack 5"
  • Fixed: an issue where copying and pasting an existing item would replace/move the original item instead of copying it.
  • Added: the initial location list is now sorted on load.

Location Management

  • Fixed: (case 8952) an issue where items would get duplicated in the manual count entry page if the primary location of a part was loaded.
  • Added: the manual count entry page now properly resizes to fit the user's resolution.
  • Fixed bugs where manual count extra items would do bad things with their quantities.
  • Manually added items now try to auto-select their location if there is a sensible candidate.
  • Fixed a bug where the scan administration page would hard-limit its results to 200 rows.
  • Made the query for manual counts match the matching report query.
  • Made the need for Variance being configured correctly more obvious.
  • Fixed a bug where having an ambiguous entry in manually-entered tag lookups would cause a whole-inventory search to happen.
  • Fixed Double-clicking a search result to disambiguate a manually-entered tag would do nothing, as opposed to loading the part.

Mas90Accounting

  • Changed: the way WOs perform their accounting has been completely rewritten. Now, WOs do 'regenerative' accounting on every save, just like the sales orders. This means that if there was an error during finalization or voiding, etc on a WO, the user can simply load and resave that document and corrective entries will be inserted, no matter how long its been since the error occurred.
  • Changed: in order to facilitate accurate historical accounting on WOs, labor, master parts, epa charges, fixed job prices, and shop fees all now remember the gl account they hit when they were finalized. The accounting module now takes these into account when doing regenerative WO accounting.
  • Fixed: several situations in which accounting for WOs could cause credits to not match debits. These mostly revolved around roundoff error due to consuming fractional quantities of parts. Now all lineitems have their quantity * cost rounded to the nearest cent to match the WO screen's behavior.
  • Fixed: an issue where regenerative SO accounting might insert corrective accounting values if the accounting configuration has changed since the SO was closed.
  • Added (case 8566): payment accounting now uses the AR account that was captured when the payment was first created instead of the current AR account. This will help avoid issues where accounting gets adjusted when an old payment is modified.
  • Fixed: an issue where voided payments might perform their void accounting a second time when the payment or associated SO was re-saved.

Master

  • Added: if there is a problem connecting to the database when attempting an update operation, the user will be notified and asked if they want to download all updates. If they say no, all further update checks will be disabled until restarting the application.
  • Added: if the user manually checks for or resets updates, updating will be re-enabled.
  • Added: database updates are disabled if the database connection is invalid.
  • Added: updating the versionlist in the database is disabled if the database connection is invalid.
  • Fixed: if the database connection is invalid, resetting updates should still work, but it will not attempt to clear out the versionlist in the database.

Parts

  • Fixed: an issue where an empty part would pop up a change detected dialog box if the last part that was saved was a standard part and the vehicle it was on had a gl category different from the default gl category.
  • Fixed: an issue where clearing a part wouldn't properly hide the 4 flex field dropdowns.
  • Changed: primary locations are now just the top location in the list, and are not stored anywhere special. This means that a part can now have no locations at all.
  • Added: if the user deletes the text out of the location dropdown, it will delete the primary location out of the location list.
  • Added: there is now a permanent checkbox in the location list. Permanent locations don't get deleted when quantity reaches 0.
  • Added: when saving, if a part has no locations and a non-zero quantity, they will be told they need to add a location. There are 2 buttons to automatically add either the default location or variance as a location.
  • Removed: an unnecessary query that was being run when clearing a part.
  • Fixed: serialized parts now correctly put a quantity deficit into the location specified in the store setting for variance location (defaults to Variance).
  • Added: non-serialized inventory now lets the user edit the quantity on the primary location of a part if the store setting for variance location is not set to $PRIMARY. If this setting is set to $PRIMARY, the primary location is still used as the 'offset location' for storing quantity deficits.
  • Added: if the user changes the quantity of a part with the quantity field, the difference is always put into the primary location, even if the offset location is set to be Variance.
  • Fixed: (Case 8907) a bug where cloning a part would cause the new part to have the opposite quantity of the parent part.
  • Fixed: the part transactions tab now correctly shows WOs at all stores if the current part was the master part on a WO at another store and the 'show current store activity only' checkbox is unchecked.
  • Fixed: A bug where copying a part would cause an assertion due to having no locations but forcing a list update on entry 0.
  • Fixed: (case 8950) an issue where modifying the primary location of a saved part would not properly update the primary location on the locations tab after save.
  • Added: when saving locations, a function that verifies locations are saved correctly is run. This is to aggressively correct an issue where some locations were not saving correctly.
  • Fixed: (Case 8950) an issue where modifying the primary location of a saved part would not properly update the primary location on the locations tab after save.
  • Fixed a bug where the user couldn't save if there were invalid locations in the part location list, even if they weren't altered or added during the session.
  • Fixed a bug where the Edit Locations button would do nothing.

Part Modification

  • Added: any column that displays information from another table is now run through a function that will cause all distinct values to be displayed, seperated by commas. This is especially useful when viewing serial #'s or the new Location column, which shows all locations the part is at, comma separated.

Payment Entry

  • Changed: money values will now be displayed in the user's currency locale format.

Purchase Orders

  • Fixed: an issue where the sidebar width % edit would round down to the nearest multiple of 100%.
  • Fixed: A memory leak that only occurs when a user presses cancel on the dialog for printing historical pick lists.
  • Added the Vendor ID to the screen. Shows "N/A" when no Vendor is loaded, to be consistent with the Sales Order screen. case 3096

Report: Label

  • Updating report for location changes in 4.0

Report: Label Picking

  • Updating report for location changes in 4.0

Report: Label Receiving

  • Updating report for location changes in 4.0

Report: Tag

  • Updating report for location changes in 4.0

Report: Tag Picking

  • Updating report for location changes in 4.0

Report: Tag Receiving

  • Updating report for location changes in 4.0

Report: Sales Order 11in

  • Added: (Case 7053) functionality for hiding child parts of kits based on a setting, but only if the price of the child part is 0.00.

Report: Work Order Internal

  • Added: overhauled the report to work better with multiple job, locations, and multiple master parts.

Report: Part Search Results

  • Fixed: report now shows correct serial numbers.
  • Updating report for location changes in 4.0

Report: Inventory Summary

  • Fixed: report now shows inventory that has no valid inventory type.
  • Changed: quantity rounding to one decimal instead of whole numbers to match the detail report.
  • Changed: Unknown Manufacturer line to display as "Unknown Manufacturer" instead of a blank line with it exists and the results are grouped by Manufacturer.

Report: Inventory Count Sheet LXW

  • Updating report for location changed in 4.0

Sales Orders

  • Fixed: adding a new document type in the configure->sales order document types dialog no longer immediately shows activity on that document type if there were SOs with invalid documents.
  • Fixed: (case 8504) an issue where sending search results to a sales order would use a quantity other than 1 if the user did a search broken out by location.
  • Fixed: the message box that pops up to warn the user that they are selling items from a location that is on hold is now clearer and more obvious.
  • Fixed: an issue where typing into the tax item dropdown might not find items if you typed in something that is from the middle of the name of a taxitem.
  • Changed: (case 8345) setting a back order quantity no longer reduces the location allocations based on the backorder quantity. This is important because, if we're going to send locations over to a back order, we need location quantities to not be removed.
  • Added: (case 8345) when finalizing a SO with back order quantities, an appropriate quantity of location allocations will get removed from the invoice and moved to the back order. Priority is given to items that have not been picked yet, but after that, picked locations will be moved.
  • Renamed: the advanced page is now the "Item Info" page on the left of the screen.
  • Added: the item info page now has a field that shows the quantity of the selected item that has been picked so far.
  • Changed: there was a query that ran during save when creating back orders that updated the initial SO. This is now only run in situations where it would affect something, which should speed up the save process.
  • Changed: (case 8348) the store list that a user uses to choose which stores they want to search now uses checkboxes instead of a 'sticky' list. This is because sticky lists don't allow easy mass-deselection of items. Now, the user can select as many items as they wish, and use the space bar to toggle the check value. This should making adding or removing lots of stores to search easier and more obvious.
  • Added: the store list now resizes to take up more space, when possible. Also, the list now shows gridlines and tooltips.
  • Changed: the store list tooltips now give the user a hint about using the space bar to toggle checks.
  • Removed: various code related to searching by location to deal with the fact that the primary location has been moved into the secondary location table.
  • Changed: the store list on the part search page now uses checkboxes insetad of which items are selected to control which stores get searched. This makes it easier to select or deselect all, or some of the stores.
  • Changed: the search query now handles locations differently, and in a way that should be faster to search.
  • Changed: the quantities that get loaded into memory now deal correctly no matter if the search is a normal search or per-location search.
  • Changed: the store list on the vehicle search page now uses checkboxes to specify which stores are being searched instead of a sticky list. This makes selecting/deselecting any number of stores at once much easier.
  • Changed: on the vehicle search, the purpose of the date pickers should be more obvious.
  • Added: the alternate parts infopane now ignores alternate parts that are not status A or H.
  • Fixed: (case 8559) the query that is used to look up how many messages apply to a particular part is now drastically faster on larger databases (as much as 30x faster).
  • Changed: if the user double-clicks on the quote count icon in the search results, it now opens the allocations info pane instead of the quotes infopane. This is because the quotes infopane shows mostly closed/expired historical quotes, and the allocations pane shows the open ones.
  • Fixed: (case 6607) Essentially, now, if the user puts wildcards in the smart search field with no other characters, the Search screen won't perform the Smart Search, instead it will just do the search as though they had left the field empty.

Vehicles

  • Changed: the vehicle performance and costs pages now display currency in the user's locale format.
  • Fixed: an issue where the inventory gl category dropdown didn't require a value on save, which could affect inventory on the part, as well as cause a database error in some situations.
  • Changed: The totals for the "available" list is no longer using a special line at the end of the list, its using the footer feature of the ITListCtrl like the Customer and Part Modification screens.

Vendor List:

  • Made same changes to Vendor List screen that was made to the Customer List screen.
  • Now Search and Show All are the same button
  • Other UX improvements

Warehouse Management

  • Fixed: (case 8952) an issue where items would get duplicated in the manual count entry page if the primary location of a part was loaded.
  • Added: the manual count entry page now properly resizes to fit the user's resolution.

Work Orders

  • Fixed: an issue where consuming fractional quantity of parts on a job could cause the job's total to not match the sum of the line items. Now, every line is rounded to the nearest cent after taking quantity * cost. This is more consistent across all places the total is displayed, and will more accurately match the values used by the accounting system.
  • Changed: in order to facilitate accurate historical accounting on WOs, labor, master parts, epa charges, fixed job prices, and shop fees all now remember the gl account they hit when they were finalized. This information is refreshed for the current WO on every save, as long as the WO was not closed or voided when it was loaded.
  • Fixed: (case 8566) an issue where, if accounting failed in the middle of a save (finalization, voiding, or work in progress), the save would halt even though inventory had already been removed, etc. This could allow the user to perform the operation again, doubling their inventory adjustments. Now, if a save completes successfully, the WO will clear normally even if the accounting save process fails (there is a new pop up that alerts the user to the current situation).
  • Added: (case 8566) the work order system now uses "regenerative" accounting on every save. This means that, on every save, the WO will examine the accounting that has been performed for that document and compare it to what should have been done, and will insert corrections in the case that they differ. This is the same as the regenerative accounting currently in use on the SO screen. This means that, if a user has an error performing the accounting for a WO during finalization or void, etc, they can simply load the WO again and save it to correct the accounting.
  • Fixed: (case 8566) several issues which could lead to credits not matching debits when performing WO accounting, especially if the user consumed fractional part quantity.
  • Fixed: A bug where loading a work order of a different type than the default would cause the default to still display.
  • Changed: Changing type now warns differently in different circumstances, and stops warning after accepting a transition once… unless they go back to the main type and do it again.
  • Added: A warning stating that changing WO types after adding jobs could affect the way they are represented.
  • Fixed: (case 8780) an issue where selecting the blank WO type "" and hitting the edit type button was not correctly letting the user add a new type (it was instead editing the last selected type).
  • Fixed: a crash that would happen when the user selected the blank WO type ("") on a saved WO.
4/8/2026

Version 3.4

Warehouse Management

  • Fixed bugs where manual count extra items would store incorrect quantities.
  • Manually added items now try to auto-select their location if there is a sensible candidate.
  • Fixed: a bug where the scan administration page would hard-limit its results to 200 rows.
  • Made the query for manual counts match the matching report query.
  • Made the need for Variance being configured correctly more obvious.
  • Fixed: (Case 9227) a bug where having an ambiguous entry in manually-entered tag lookups would cause a whole-inventory search to happen.
  • Fixed: Double-clicking a search result to disambiguate a manually-entered tag would do nothing, as opposed to loading the part.

Version 3.3

Parts

  • Fixed: a bug where cloning a part would cause the new part to have the opposite quantity of the parent part.

Version 3.2

Work Orders

  • Fixed: a bug where the work order type could show incorrectly if it differed from the default type on load.

Version 3.1

EBay

  • Fixed: a bug where Enterprise would crash if items were sent to the eBay screen. (Case 8450)

Version 3.0

Accounting

  • Fixed: (case 7813) a rare issue where gl account configurations might save -1 instead of NULL if the user left accounts blank. This could cause accounting issues on WOs for systems where GL accounting is turned on.

Common Resources

  • Fixed: the whole unit parts dialog no longer shows the quantity formatted as currency. This also fixes an issue where all components were removed from inventory, despite the user's choice.
  • Fixed: items with 0 quantity now lock their 'keep available' checkbox because these items are always removed.
  • Fixed: an issue where the items that were marked as staying in inventory wouldn't respect the cost the user specified.
  • Changed: minor formatting and labeling tweaks to make the dialog more usable.
  • Fixed: an issue where user locale format was not being used for currency input.
  • Added: play, pause, zoom in and zoom out icons.
  • Added: 16x16 icon for the camera and zoom in icons.
  • Changed: the "choose components to leave in inventory" dialog that popped up when selling assemblies has been modified to not allow the user to move cost around. Also, non-depletable items no longer show up in the list as items that can be taken out of stock. In addition, items with average cost also no longer show up to be taken out of stock. This is to ensure that the user doesn't accidentally mess up their inventory valuation. If the user has component parts they wish to sell with the assembly that have cost, they should put them on the invoice as well to ensure that accounting happens correctly.
  • Added: 'Collection' icon, which is similar to the '3 bolts' similar parts icon except I did some color changing.

Options and Settings

  • Changed: (case 7820) Printer Type has been renamed to Report Type, which should be more easy to understand in the printer configuration page.

Customer

  • Fixed: (case 7826) if the user did a smart search on the price contract page, then sent one (or multiple) results back to the customer screen, the sent parts would be ignored. Now, as many parts as the user wants can be returned from this search.
  • Fixed: all numeric fields in the payment dialog are now right aligned. Also, the balance field is now grey since it is readonly.
  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.

Database

  • Added: an edocument that generates the graphs for the list controls.
  • Added: drawobject table, which stores information about text, rectangles, and images that are saved for a particular store's location map.
  • Added: the location table now has coordinates.
  • Added: several new permissions related to locations, and moved some permissions to be under Locations instead of Configuration.
  • Fixed: an issue where fpurchaseorder_saved was throwing an error because some functions were returning BOOL (tinyint) and some were returning enum('False','True').
  • Changed: several foreign keys in the transferorderline and salesorderline tables have been changed to be unsigned to ensure the query optimizer uses appropriate indices.
  • Added: speed index to transferorder and transferorderlin that are used as part of fquantityon_order
  • Added: speed index to salesorderline to attempt to speed up calls to fquantityavailable.
  • Added: fsplitstring, in case it doesn't already exist.
  • Added: pgraphrun support for valuelist.
  • Fixed: Dynamic reporting: Date escaping now lets you just do whatever, but still won't let you inject code.
  • Added: Better support for parsing custom graphsourcefield.field setups (you use double pipes to indicate the active table name).
  • Fixed: A bug where the source field name would be used twice in joins instead of source->destination.
  • Changed: (case 8123) the function fmoveinventorywithallocations now only moves the vehicle manually in the special case for standard parts where the entire quantity is being moved.
  • Added: (case 8123) the function fadjustinventorylocation, which is called both by fmove_inventory by the scanner, as well as all documents that receive or sell inventory at locations now move both the whole unit inventory record and the vehicle record when quantity is being received at a location. This should avoid vehicles ever getting secondary locations.
  • Added: (case 7907) documentlinelocation.quantitypicked. This tracks the amount of a document line location allocation has been picked. This is more useful than salesorderline.quantitypicked now because picking is per document location allocation now.
  • Added: (case 7907) frefreshdocument_delivered now updates documentlinelocation.quantitypicked, which is the number of items picked so far on each document line location allocation.
  • Changed: (case 7907) vpickablesalesorderline, vpickablejobpart, vpickablepurchaseorderline, and vpickabletransferorderline have all been modified to return one row per documentlinelocation instead of one row per document line. This means a document line with no location allocations cannot be picked anymore. This shouldn't negatively impact users because they will at least have an allocation against the primary location of the part if a hold was able to be created. Also, all of these views now return location quantity for QOH, and location information from the specific location.
  • Added: fsetsetting, which is a database API function for all components of the ITrack framework to update a setting at a spcific store, user, etc. This is the complimentary function to fgetsetting.
  • Changed: fmovedocumentlinelocation has been rewritten to be more readable, also this function calls frefreshdocument_delivered on whatever document lines it updates. This is important now because moving document allocations requires those document allocations to have their picked quantity refreshed.
  • Changed: frefreshdocument_delivered is now much more accurate when it computes picked quantity for documentlinelocations. If there is picking history with no obvious documentlinelocation (possibly because the allocations were moved after picking) the picking history is assigned to document line locations that are not fully picked. This fixes an issue where a document would look 'unpicked' if its items were moved after they were picked.
  • Added: deliverylinehistory.destinationlocation, which is a text version of destinationlocationid. This is required for ITrack to properly pick items without a location library.
  • Added: deliverylinehistory.documenttype, which is like the document column, except its string contents match the values in documentlinelocation and some other tables.
  • Added: a query that will set the locationids and locations in deliverylinehistory for all historical picks that don't have them. This should help the system know that these items are indeed picked without requiring a refresh first.
  • Changed: all 3 of the triggers on deliverylinehistory have been redone in order to automatically set the new documenttype column, as well as match the other itrack triggers' syntax.
  • Added: a new table called transferorderlinehistory, which transactionalizes financial information at the source and destination every time quantity is transferred. This is important because averagecost and averagecorecost can change in between transfers.
  • Added: (case 8139) a new permission: "Sales Orders"->"Edit payments", which copies its initial values from "Payments"->"Edit Payments". This new permission controls just the SO screen.
  • Added: an option for "Sell Price Class" is now available for searching. This will search for sell price class names.
  • Fixed: a syntax error caused by the Sales Order search module.

Deliveries

  • Added: (case 7907) the picking screen now has an area with a location auto-complete dropdown that lets the user view/change the picking staging location for all 4 document types (WO, SO, PO, TO). All picking operations on the screen now move picked items to the specified location. All of these dropdowns default to the location 'Shipping', but the user can leave any of these dropdowns empty in order to tell the system not to move inventory during picking.
  • Added: if the user changes the picking location, they're notified that this is a store-level setting, and are given a chance to reverse what they did. Also, all 4 location dropdowns change when the store being searched is changed.
  • Added: the location search field at the top of picking now uses a location auto-complete for easy location typing.
  • Added: line item detail is now one row per picking location. Previously, line item detail was per document line item. This distinction only comes into play when a single lineitem (such as a sales order item) is being pulled from several locations. The quantity on hand, as well as several other informational fields have been updated to reflect this.
  • Added: the picking history list now shows the location that an item was picked at, as well as where it was moved to (if any).
  • Added: the save process on picking now displays the current save status on the status bar so that the user knows what is happening if a save takes a long time.
  • Added: when inserting deliverylinehistory, the new documenttype column is now filled out.
  • Added: (case 8250) a hide closed documents checkbox, which works similarly to hide open documents when viewing picking history.
  • Added: (case 8250) the start/end date pickers for picking history searching now save the user's preferred date. This allows the user to uncheck or change the date pickers and those settings will be automatically loaded when the user reopens the screen. The start date defaults to checked and set to 7 days in the past.

Ebay

  • Fixed: (case 7814) a bug where log file wouldn't get populated properly.
  • Added: (case 7798) functionality that allows a user to send an auction from the ebay screen to become an invoice on the sales screen.
  • Added: Got rid of the ebay sold status and replaced it with a new status called "Closed" which represents what used to be sold as well as auctions who sold items but not all of the items.
  • Added: a check if ebay is enabled in customer stub and if it isn't throws errors similar to those of the Appraisals extension.
  • Fixed: (Case 8136) a bug where the Logger was invalid so it couldn't execute properly to prompt login to ebay.

Common Resources

  • Removed: the old configure->locations dialog. This feature is now supplied by the locations dll.
  • Added: support for retrieving and updating database settings from a store or user other than the currently loaded store/user.
  • Added: this extension now uses fgetsetting and fsetsetting for most of the database interaction with settings as each setting is updated or retrieved (initial load of all valid settings is still run through a normal select). This allows companies to more easily customize their settings framework.
  • Changed: group settings have been partially deprecated. They have never been used, and there are several design issues that must be solved before they will make complete sense.
  • Changed: most calls to update a setting in memory now usually flush that setting out to the database immediately using fsetsetting in order to ensure that user users will see the same values. The exception to this is user settings, which are kept in memory and flushed en-masse when ITrack is closed. This is because these are the most numerous settings, and they don't generally affect any other terminals. Flushing individual settings out to the database are now done with a single query instead of several, making this process faster.

Graphing

  • Changed: the default graph type has been changed from Bar to Column. Also, the options for making bar graphs has been temporarily deprecated, since column graphs seems to be more useful for people anyway.
  • Fixed: the configure graph dialog being too small by default

Home

  • Fixed: an issue where a user who changed the 'documents per page' setting to 0 or less would see 0 results. Now, a value of 0 makes the list load all results (no limit).

ITMySQLConnection_d

  • Fixed: an issue where very specific mysql errors were not being reported because they are only thrown when the data set is retrieved, not when the query is executed.

Location Management

  • Fixed: the date columns in the scan job list should now sort by date and time, not just date.
  • Added: there is now a context menu (right click) option for the scan item detail list that sends all the detail items to the location map to be visualized.
  • Added: there is now a global hotkey option for sending all current scan item detail items to the location map, it defaults to ctrl + M. Whatever the user's default is, it is shown in the context menu.
  • Added: when auditing scan jobs of type 'Picking', there should now be item detail. This facilitates seeing items/locations picked as well as sending picking history to the location map for replay.
  • Fixed: an issue where the list footers might show incorrect data due to not handling user locale display settings correctly.

Master

  • Added: the options dialog now respects the 'minimum size' of the options pages that are loaded. This will make sure the dialog is not too small to display any options.

Parts

  • Added: (case 4421) parts with a status of D or C no longer show up in the collections list on the links tab. Also, collections whose master part is status C or D only show up when the master part itself is loaded.
  • Fixed: an issue where the user might type in a full manufacturer code/model name into the model edit box, but a different model would be selected if the model text was present in another model name (due to inexact searching).
  • Added: by user request, the locations page now uses the new 'no auto dropdown' style on its location combo boxes. This means the combo boxes won't automatically show their dropdown when the user clicks into them.
  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.
  • Fixed: an issue where the user could not delete a secondary location whose location name was ''.
  • Added: external function to allow other screens to cause the assembly breakdown dialog to pop up.
  • Added: external function that accepts a component inventory record and a quantity. The user will be presented with a choice between all available assemblies that item is a component on, and then they perform a breakdown on that assembly.
  • Added: the assembly breakdown dialog now supports being given a desired component and desired quantity for that component. If these are present, that component will automatically be checked to be created, and its quantity will be set correctly. If the desired component is integral, an appropriate quantity of the assembly will be set to be dispersed.
  • Changed: when the user opens the assembly breakdown dialog, it now shows a dispersal quantity of 0 initially.
  • Changed: any breakdown done directly from the parts screen will assume the user wishes do completely destroy 1 assembly and will automatically check all components to be created from this dispersal.
  • Fixed: (case 8219) an issue where doing a breakdown for a large number of items would not allocate less than $1 to an item. Also, we now use 6 digits of precision in our calculations, which will end up rounding item allocations down slightly more often. This has the effect (on large assemblies with lots of small value items) of rounding component costs down slightly more often.
  • Changed: when saving the stripped part number, previously ITrack was stripping out all characters specified in the global setting "Search"->"Search string delimeters". Now, we use fstrippartnumber to set the final stripped partnumber. The main effect this has is that a part number containing a forward slash will automatically strip that forward slash. Also, if a company customizes their fstrippartnumber function, those customizations will affect all part saves.
  • Fixed: an issue where, if the "Part Number (Compressed)" (AKA stripped partnumber) field was set to log changes, the full partnumber was showing in the change log dialog. Now, it will show a stripped version of the part number.

Purchase Orders

  • Fixed: (case 7977) a possible crash related to failing to add duplicate items.
  • Fixed: a crash related to editing the locations for the destination locations on a transfer order.
  • Fixed: an issue that was keeping purchase orders tab from showing the 'insufficient locations chosen' for return POs.
  • Added: return POs now respect the new 'automatically choose locations' setting.
  • Added: TOs no longer automatically choose source locations if 'automatically choose locations' setting is off.
  • Fixed: at the users' conference, a user pointed out that the Fulfill Orders Dialog on POs wasn't sorting dates correctly if the user was searching for fulfillable orders by order date.
  • Changed: at the users' conference, it was brought up that an item could not be deleted from a PO after ANY item had been received on that PO. Now, an item can be deleted off of a PO as long as that item has not been received on any posting and as long as it has no adjustments on any posting. If either of these things is not true, the user is notified of it so that they can make the appropriate change. This also fixes an issue where the user could delete an item off of a PO after an add-on cost was addded to it, as long as nothing had been received on the PO.
  • Added: loading an existing TO will refresh the destination averagecost/averagecorecost/glcategory in memory, which can affect doing subsequent transfers.
  • Changed: adding lots of items to a transfer order should now be significantly faster because information about the destination inventory record (if any) is loaded at the same time as the source inventory information, instead of running a single query for each item that got loaded.
  • Added: (case 7983) when quantity is transferred, a row is inserted into the new table transferorderlinehistory. This gives a company a paper trail related to the exact financial value that is transferred between stores. This is important because the average cost and average core cost can change between the source and destination stores as stock is transferred (if it was received in multiple shipments, for example).
  • Added: (case 7983) when quantity is transferred, a second call to fadjustinventory is called for the inherent core value. This will keep average core cost up to date at the destination when items are transferred.

Report Viewer

  • Fixed: (case 8213) an issue where the date/time pickers wouldn't redraw correctly after the user navigated to another page in the calendar control.

Sales Orders

  • Fixed: (case 7977) a crash if the user sent 2 duplicate items to an invoice and clicked no to 'add duplicate?' pop up for both items.
  • Added: (case 4097) there is now a new store setting (important configuration) that controls whether the system will automatically choose locations for the user or not as items are added to the document. The setting is "Locations"->"Automatically allocate locations when adding items to documents" and it defaults to True. This allows a yard that wants salespeople to manually choose locations to do so.
  • Added: (case 4090) if the new store setting 'automatically choose locations' is off, locations will still be set correctly when the user sends specific locations to the SO from search or warehouse management.
  • Added: there is now a context menu (right click) option for sending all selected items to the location map for visualization.
  • Added: there is now a global hotkey for sending selected SO items to the location map for visualization. The user's preference for this hotkey is shown in the context menu.
  • Added: other items with hotkeys have had that key added to the context menu (right click) text to prompt the user with this hotkey knowledge.
  • Added: job and inherent core items are no longer sent to the location map screen.
  • Changed: many of the message boxes that pop up due to various warnings/errors during SO save have been reworded to be more concise. Also, in most cases, the buttons have had their text changed from general things like "OK"/"Cancel" to more specific verbs, depending on the message box.
  • Added: there is now an attention icon that shows up when an assembly component item is present on the document. The user can double-click on this icon to begin an assembly breakdown on the parent assembly. The unavailable quantity will automatically be passed in as the quantity to be pulled.
  • Changed: (case 8139) adding/editing payments on the SO screen now looks at the new permission "Sales Orders"->"Edit payments" instead of the old permission "Payments"->"Edit Payments". This new permission defaults to having the same value for existing users as the old permission. This allows an administrator to separate payment management on SOs from payment management on the Customer and Payment Entry screens.
  • Fixed: (case 8359) an issue where loading and resaving an invoice with a payment that had allocations on multiple invoices might move the other allocations to that invoice.
  • Added: tool tips (hover text) for all controls in the part search area. Fixed several broken tool-tips and made them more concise.
  • Added: tool-tips for several newer controls on the main screen.
  • Fixed: tool-tips were not displaying correctly for some controls in the info-pane on the right side.
  • Renamed: the Module Name header has been renamed to Smart Search Module, to more closely match the tooltips on smart search.
  • Added: (case 7951) there is now a customizable hotkey for locking and unlocking part and vehicle search results. The default for this key is ctrl + L, and can be seen in the right click menu on the list controls.
  • Added: there is now a right-click menu option for sending part search results to be visualized on the location map on the new Locations screen.
  • Added: global hotkeys for sending selected search results to SOs, WOs, POs, TOs, part modification, and the new location map on the Locations screen. Most of these work for both vehicles and pa
  • Added: if the user changes the 'group results by location', their preference is stored in a setting.
  • Renamed: "Sales/Usage History" info pane option to "Sales/Usage History (Detail)" and renamed "Aggregate sales history" to "Sales/Usage History (Summary)" to tell the user that the show similar data in a different way.
  • Changed: Aggregate sales history now shows its information in an easier to read format and columns are wider.
  • Fixed: an issue where the width of the sidebar and the info-pane were not saving if the user resized them. Now, their last size will be used when the user reopens the screen.
  • Changed: the "assemblies" infopane is now much more useful. It shows tag #, QOH, and QA for all component parts, and shows manufacturer/model instead of "Inventory vendor".
  • Removed: an unnecessary query being run when retrieving sales/usage history (summary). Also, results are now grouped by document type, in case a yard has multiple invoice or quote document types.
  • Fixed: (case 8014) search can now find items with invalid inventory type IDs.

Vehicles

  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.
  • Fixed: a query error that could occur when loading a teardown.
  • Fixed: an issue where teardown items created at the same time as the vehicle might get an invalid store id (-1) or vehicleid.
  • Changed: if the location of a vehicle changes, it will only change the location of the whole unit inventory record at the same store, in case the vehicle has been transferred between stores.
  • Changed: (case 8219) master part cost calculations now use 6 digits of precision. This has the effect (on WOs with many master parts, each getting a small value) of round component costs down slightly more often, which can avoid a large negative value needing to be dumped onto the first master part.

Vendor

  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.

Work Orders

  • Fixed: a crash that could be caused during loading a WO when an existing WO was selected and an item was selected in the part list.
  • Fixed: (case 7812) an issue where, if part average cost changed between saves of an internal WO, it was possible for the master parts to have the wrong cost.
  • Changed: to speed up loads, an unnecessary query has been removed (loading inventory for inventoryid -1).
  • Added: (case 4097) there is now a new store setting (important configuration) that controls whether the system will automatically choose locations for the user or not as items are added to the document. The setting is "Locations"->"Automatically allocate locations when adding items to documents" and it defaults to True. This allows a yard that wants salespeople to manually choose locations to do so.
  • Fixed: an issue where lineitem notes were not displaying correctly on loaded work orders.
  • Fixed: (case 8011) an issue where non-depletable items were not using order routing costs for their document costs. This was a rare issue, but it could cause non-depletable items purchased through order routing to show the incorrect cost.
  • Fixed: (case 8089) an issue where loading multiple saved WOs might cause the last WO to show the wrong prices if the WOs had different pricing methods.
  • Added: there is now a context menu (right click) for sending all items on the work order to the location map for visualization.
  • Added: global hotkey for sending items to location map. The default for this hotkey now shows in the context menu.
  • Removed: select all from the context menu since the job part list is a single selection only list.
  • Fixed (case 8219): an issue where assembly breakdowns weren't calculating cost spread correctly if there were so many parts that the components were getting less than 1% of the total assembly cost. Now, components can get as little as .01%, rounded to the nearest cent.
  • Added: (case 8133) component items (items inside of an assembly collection) now show a special attention icon when added to a WO. If the user doubleclicks this icon, they will be taken to the assembly breakdown dialog for the assembly in question. This makes performing breakdowns on demand much easier.

Accounting

  • Fixed: (case 7813) a rare issue where gl account configurations might save -1 instead of NULL if the user left accounts blank. This could cause accounting issues on WOs for systems where GL accounting is turned on.

Common Resources

  • Fixed: the whole unit parts dialog no longer shows the quantity formatted as currency. This also fixes an issue where all components were removed from inventory, despite the user's choice.
  • Fixed: items with 0 quantity now lock their 'keep available' checkbox because these items are always removed.
  • Fixed: an issue where the items that were marked as staying in inventory wouldn't respect the cost the user specified.
  • Changed: minor formatting and labeling tweaks to make the dialog more usable.
  • Fixed: an issue where user locale format was not being used for currency input.
  • Added: play, pause, zoom in and zoom out icons.
  • Added: 16x16 icon for the camera and zoom in icons.
  • Changed: the "choose components to leave in inventory" dialog that popped up when selling assemblies has been modified to not allow the user to move cost around. Also, non-depletable items no longer show up in the list as items that can be taken out of stock. In addition, items with average cost also no longer show up to be taken out of stock. This is to ensure that the user doesn't accidentally mess up their inventory valuation. If the user has component parts they wish to sell with the assembly that have cost, they should put them on the invoice as well to ensure that accounting happens correctly.
  • Added: 'Collection' icon, which is similar to the '3 bolts' similar parts icon except I did some color changing.

Options and Settings

  • Changed: (case 7820) Printer Type has been renamed to Report Type, which should be more easy to understand in the printer configuration page.

Customer

  • Fixed: (case 7826) if the user did a smart search on the price contract page, then sent one (or multiple) results back to the customer screen, the sent parts would be ignored. Now, as many parts as the user wants can be returned from this search.
  • Fixed: all numeric fields in the payment dialog are now right aligned. Also, the balance field is now grey since it is readonly.
  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.

Database

  • Added: an edocument that generates the graphs for the list controls.
  • Added: drawobject table, which stores information about text, rectangles, and images that are saved for a particular store's location map.
  • Added: the location table now has coordinates.
  • Added: several new permissions related to locations, and moved some permissions to be under Locations instead of Configuration.
  • Fixed: an issue where fpurchaseorder_saved was throwing an error because some functions were returning BOOL (tinyint) and some were returning enum('False','True').
  • Changed: several foreign keys in the transferorderline and salesorderline tables have been changed to be unsigned to ensure the query optimizer uses appropriate indices.
  • Added: speed index to transferorder and transferorderlin that are used as part of fquantityon_order
  • Added: speed index to salesorderline to attempt to speed up calls to fquantityavailable.
  • Added: fsplitstring, in case it doesn't already exist.
  • Added: pgraphrun support for valuelist.
  • Fixed: Dynamic reporting: Date escaping now lets you just do whatever, but still won't let you inject code.
  • Added: Better support for parsing custom graphsourcefield.field setups (you use double pipes to indicate the active table name).
  • Fixed: A bug where the source field name would be used twice in joins instead of source->destination.
  • Changed: (case 8123) the function fmoveinventorywithallocations now only moves the vehicle manually in the special case for standard parts where the entire quantity is being moved.
  • Added: (case 8123) the function fadjustinventorylocation, which is called both by fmove_inventory by the scanner, as well as all documents that receive or sell inventory at locations now move both the whole unit inventory record and the vehicle record when quantity is being received at a location. This should avoid vehicles ever getting secondary locations.
  • Added: (case 7907) documentlinelocation.quantitypicked. This tracks the amount of a document line location allocation has been picked. This is more useful than salesorderline.quantitypicked now because picking is per document location allocation now.
  • Added: (case 7907) frefreshdocument_delivered now updates documentlinelocation.quantitypicked, which is the number of items picked so far on each document line location allocation.
  • Changed: (case 7907) vpickablesalesorderline, vpickablejobpart, vpickablepurchaseorderline, and vpickabletransferorderline have all been modified to return one row per documentlinelocation instead of one row per document line. This means a document line with no location allocations cannot be picked anymore. This shouldn't negatively impact users because they will at least have an allocation against the primary location of the part if a hold was able to be created. Also, all of these views now return location quantity for QOH, and location information from the specific location.
  • Added: fsetsetting, which is a database API function for all components of the ITrack framework to update a setting at a spcific store, user, etc. This is the complimentary function to fgetsetting.
  • Changed: fmovedocumentlinelocation has been rewritten to be more readable, also this function calls frefreshdocument_delivered on whatever document lines it updates. This is important now because moving document allocations requires those document allocations to have their picked quantity refreshed.
  • Changed: frefreshdocument_delivered is now much more accurate when it computes picked quantity for documentlinelocations. If there is picking history with no obvious documentlinelocation (possibly because the allocations were moved after picking) the picking history is assigned to document line locations that are not fully picked. This fixes an issue where a document would look 'unpicked' if its items were moved after they were picked.
  • Added: deliverylinehistory.destinationlocation, which is a text version of destinationlocationid. This is required for ITrack to properly pick items without a location library.
  • Added: deliverylinehistory.documenttype, which is like the document column, except its string contents match the values in documentlinelocation and some other tables.
  • Added: a query that will set the locationids and locations in deliverylinehistory for all historical picks that don't have them. This should help the system know that these items are indeed picked without requiring a refresh first.
  • Changed: all 3 of the triggers on deliverylinehistory have been redone in order to automatically set the new documenttype column, as well as match the other itrack triggers' syntax.
  • Added: a new table called transferorderlinehistory, which transactionalizes financial information at the source and destination every time quantity is transferred. This is important because averagecost and averagecorecost can change in between transfers.
  • Added: (case 8139) a new permission: "Sales Orders"->"Edit payments", which copies its initial values from "Payments"->"Edit Payments". This new permission controls just the SO screen.
  • Added: an option for "Sell Price Class" is now available for searching. This will search for sell price class names.
  • Fixed: a syntax error caused by the Sales Order search module.

Deliveries

  • Added: (case 7907) the picking screen now has an area with a location auto-complete dropdown that lets the user view/change the picking staging location for all 4 document types (WO, SO, PO, TO). All picking operations on the screen now move picked items to the specified location. All of these dropdowns default to the location 'Shipping', but the user can leave any of these dropdowns empty in order to tell the system not to move inventory during picking.
  • Added: if the user changes the picking location, they're notified that this is a store-level setting, and are given a chance to reverse what they did. Also, all 4 location dropdowns change when the store being searched is changed.
  • Added: the location search field at the top of picking now uses a location auto-complete for easy location typing.
  • Added: line item detail is now one row per picking location. Previously, line item detail was per document line item. This distinction only comes into play when a single lineitem (such as a sales order item) is being pulled from several locations. The quantity on hand, as well as several other informational fields have been updated to reflect this.
  • Added: the picking history list now shows the location that an item was picked at, as well as where it was moved to (if any).
  • Added: the save process on picking now displays the current save status on the status bar so that the user knows what is happening if a save takes a long time.
  • Added: when inserting deliverylinehistory, the new documenttype column is now filled out.
  • Added: (case 8250) a hide closed documents checkbox, which works similarly to hide open documents when viewing picking history.
  • Added: (case 8250) the start/end date pickers for picking history searching now save the user's preferred date. This allows the user to uncheck or change the date pickers and those settings will be automatically loaded when the user reopens the screen. The start date defaults to checked and set to 7 days in the past.

Ebay

  • Fixed: (case 7814) a bug where log file wouldn't get populated properly.
  • Added: (case 7798) functionality that allows a user to send an auction from the ebay screen to become an invoice on the sales screen.
  • Added: Got rid of the ebay sold status and replaced it with a new status called "Closed" which represents what used to be sold as well as auctions who sold items but not all of the items.
  • Added: a check if ebay is enabled in customer stub and if it isn't throws errors similar to those of the Appraisals extension.
  • Fixed: (Case 8136) a bug where the Logger was invalid so it couldn't execute properly to prompt login to ebay.

Common Resources

  • Removed: the old configure->locations dialog. This feature is now supplied by the locations dll.
  • Added: support for retrieving and updating database settings from a store or user other than the currently loaded store/user.
  • Added: this extension now uses fgetsetting and fsetsetting for most of the database interaction with settings as each setting is updated or retrieved (initial load of all valid settings is still run through a normal select). This allows companies to more easily customize their settings framework.
  • Changed: group settings have been partially deprecated. They have never been used, and there are several design issues that must be solved before they will make complete sense.
  • Changed: most calls to update a setting in memory now usually flush that setting out to the database immediately using fsetsetting in order to ensure that user users will see the same values. The exception to this is user settings, which are kept in memory and flushed en-masse when ITrack is closed. This is because these are the most numerous settings, and they don't generally affect any other terminals. Flushing individual settings out to the database are now done with a single query instead of several, making this process faster.

Graphing

  • Changed: the default graph type has been changed from Bar to Column. Also, the options for making bar graphs has been temporarily deprecated, since column graphs seems to be more useful for people anyway.
  • Fixed: the configure graph dialog being too small by default

Home

  • Fixed: an issue where a user who changed the 'documents per page' setting to 0 or less would see 0 results. Now, a value of 0 makes the list load all results (no limit).

ITMySQLConnection_d

  • Fixed: an issue where very specific mysql errors were not being reported because they are only thrown when the data set is retrieved, not when the query is executed.

Location Management

  • Fixed: the date columns in the scan job list should now sort by date and time, not just date.
  • Added: there is now a context menu (right click) option for the scan item detail list that sends all the detail items to the location map to be visualized.
  • Added: there is now a global hotkey option for sending all current scan item detail items to the location map, it defaults to ctrl + M. Whatever the user's default is, it is shown in the context menu.
  • Added: when auditing scan jobs of type 'Picking', there should now be item detail. This facilitates seeing items/locations picked as well as sending picking history to the location map for replay.
  • Fixed: an issue where the list footers might show incorrect data due to not handling user locale display settings correctly.

Master

  • Added: the options dialog now respects the 'minimum size' of the options pages that are loaded. This will make sure the dialog is not too small to display any options.

Parts

  • Added: (case 4421) parts with a status of D or C no longer show up in the collections list on the links tab. Also, collections whose master part is status C or D only show up when the master part itself is loaded.
  • Fixed: an issue where the user might type in a full manufacturer code/model name into the model edit box, but a different model would be selected if the model text was present in another model name (due to inexact searching).
  • Added: by user request, the locations page now uses the new 'no auto dropdown' style on its location combo boxes. This means the combo boxes won't automatically show their dropdown when the user clicks into them.
  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.
  • Fixed: an issue where the user could not delete a secondary location whose location name was ''.
  • Added: external function to allow other screens to cause the assembly breakdown dialog to pop up.
  • Added: external function that accepts a component inventory record and a quantity. The user will be presented with a choice between all available assemblies that item is a component on, and then they perform a breakdown on that assembly.
  • Added: the assembly breakdown dialog now supports being given a desired component and desired quantity for that component. If these are present, that component will automatically be checked to be created, and its quantity will be set correctly. If the desired component is integral, an appropriate quantity of the assembly will be set to be dispersed.
  • Changed: when the user opens the assembly breakdown dialog, it now shows a dispersal quantity of 0 initially.
  • Changed: any breakdown done directly from the parts screen will assume the user wishes do completely destroy 1 assembly and will automatically check all components to be created from this dispersal.
  • Fixed: (case 8219) an issue where doing a breakdown for a large number of items would not allocate less than $1 to an item. Also, we now use 6 digits of precision in our calculations, which will end up rounding item allocations down slightly more often. This has the effect (on large assemblies with lots of small value items) of rounding component costs down slightly more often.
  • Changed: when saving the stripped part number, previously ITrack was stripping out all characters specified in the global setting "Search"->"Search string delimeters". Now, we use fstrippartnumber to set the final stripped partnumber. The main effect this has is that a part number containing a forward slash will automatically strip that forward slash. Also, if a company customizes their fstrippartnumber function, those customizations will affect all part saves.
  • Fixed: an issue where, if the "Part Number (Compressed)" (AKA stripped partnumber) field was set to log changes, the full partnumber was showing in the change log dialog. Now, it will show a stripped version of the part number.

Purchase Orders

  • Fixed: (case 7977) a possible crash related to failing to add duplicate items.
  • Fixed: a crash related to editing the locations for the destination locations on a transfer order.
  • Fixed: an issue that was keeping purchase orders tab from showing the 'insufficient locations chosen' for return POs.
  • Added: return POs now respect the new 'automatically choose locations' setting.
  • Added: TOs no longer automatically choose source locations if 'automatically choose locations' setting is off.
  • Fixed: at the users' conference, a user pointed out that the Fulfill Orders Dialog on POs wasn't sorting dates correctly if the user was searching for fulfillable orders by order date.
  • Changed: at the users' conference, it was brought up that an item could not be deleted from a PO after ANY item had been received on that PO. Now, an item can be deleted off of a PO as long as that item has not been received on any posting and as long as it has no adjustments on any posting. If either of these things is not true, the user is notified of it so that they can make the appropriate change. This also fixes an issue where the user could delete an item off of a PO after an add-on cost was addded to it, as long as nothing had been received on the PO.
  • Added: loading an existing TO will refresh the destination averagecost/averagecorecost/glcategory in memory, which can affect doing subsequent transfers.
  • Changed: adding lots of items to a transfer order should now be significantly faster because information about the destination inventory record (if any) is loaded at the same time as the source inventory information, instead of running a single query for each item that got loaded.
  • Added: (case 7983) when quantity is transferred, a row is inserted into the new table transferorderlinehistory. This gives a company a paper trail related to the exact financial value that is transferred between stores. This is important because the average cost and average core cost can change between the source and destination stores as stock is transferred (if it was received in multiple shipments, for example).
  • Added: (case 7983) when quantity is transferred, a second call to fadjustinventory is called for the inherent core value. This will keep average core cost up to date at the destination when items are transferred.

Report Viewer

  • Fixed: (case 8213) an issue where the date/time pickers wouldn't redraw correctly after the user navigated to another page in the calendar control.

Sales Orders

  • Fixed: (case 7977) a crash if the user sent 2 duplicate items to an invoice and clicked no to 'add duplicate?' pop up for both items.
  • Added: (case 4097) there is now a new store setting (important configuration) that controls whether the system will automatically choose locations for the user or not as items are added to the document. The setting is "Locations"->"Automatically allocate locations when adding items to documents" and it defaults to True. This allows a yard that wants salespeople to manually choose locations to do so.
  • Added: (case 4090) if the new store setting 'automatically choose locations' is off, locations will still be set correctly when the user sends specific locations to the SO from search or warehouse management.
  • Added: there is now a context menu (right click) option for sending all selected items to the location map for visualization.
  • Added: there is now a global hotkey for sending selected SO items to the location map for visualization. The user's preference for this hotkey is shown in the context menu.
  • Added: other items with hotkeys have had that key added to the context menu (right click) text to prompt the user with this hotkey knowledge.
  • Added: job and inherent core items are no longer sent to the location map screen.
  • Changed: many of the message boxes that pop up due to various warnings/errors during SO save have been reworded to be more concise. Also, in most cases, the buttons have had their text changed from general things like "OK"/"Cancel" to more specific verbs, depending on the message box.
  • Added: there is now an attention icon that shows up when an assembly component item is present on the document. The user can double-click on this icon to begin an assembly breakdown on the parent assembly. The unavailable quantity will automatically be passed in as the quantity to be pulled.
  • Changed: (case 8139) adding/editing payments on the SO screen now looks at the new permission "Sales Orders"->"Edit payments" instead of the old permission "Payments"->"Edit Payments". This new permission defaults to having the same value for existing users as the old permission. This allows an administrator to separate payment management on SOs from payment management on the Customer and Payment Entry screens.
  • Fixed: (case 8359) an issue where loading and resaving an invoice with a payment that had allocations on multiple invoices might move the other allocations to that invoice.

Search

  • Added: tool tips (hover text) for all controls in the part search area. Fixed several broken tool-tips and made them more concise.
  • Added: tool-tips for several newer controls on the main screen.
  • Fixed: tool-tips were not displaying correctly for some controls in the info-pane on the right side.
  • Renamed: the Module Name header has been renamed to Smart Search Module, to more closely match the tooltips on smart search.
  • Added: (case 7951) there is now a customizable hotkey for locking and unlocking part and vehicle search results. The default for this key is ctrl + L, and can be seen in the right click menu on the list controls.
  • Added: there is now a right-click menu option for sending part search results to be visualized on the location map on the new Locations screen.
  • Added: global hotkeys for sending selected search results to SOs, WOs, POs, TOs, part modification, and the new location map on the Locations screen. Most of these work for both vehicles and pa
  • Added: if the user changes the 'group results by location', their preference is stored in a setting.
  • Renamed: "Sales/Usage History" info pane option to "Sales/Usage History (Detail)" and renamed "Aggregate sales history" to "Sales/Usage History (Summary)" to tell the user that the show similar data in a different way.
  • Changed: Aggregate sales history now shows its information in an easier to read format and columns are wider.
  • Fixed: an issue where the width of the sidebar and the info-pane were not saving if the user resized them. Now, their last size will be used when the user reopens the screen.
  • Changed: the "assemblies" infopane is now much more useful. It shows tag #, QOH, and QA for all component parts, and shows manufacturer/model instead of "Inventory vendor".
  • Removed: an unnecessary query being run when retrieving sales/usage history (summary). Also, results are now grouped by document type, in case a yard has multiple invoice or quote document types.
  • Fixed: (case 8014) search can now find items with invalid inventory type IDs.

Vehicles

  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.
  • Fixed: a query error that could occur when loading a teardown.
  • Fixed: an issue where teardown items created at the same time as the vehicle might get an invalid store id (-1) or vehicleid.
  • Changed: if the location of a vehicle changes, it will only change the location of the whole unit inventory record at the same store, in case the vehicle has been transferred between stores.
  • Changed: (case 8219) master part cost calculations now use 6 digits of precision. This has the effect (on WOs with many master parts, each getting a small value) of round component costs down slightly more often, which can avoid a large negative value needing to be dumped onto the first master part.

Vendor

  • Added: when saving new attachments, the system now checks to see if there is a duplicate file already in the database. If it does, it silently attaches the existing file instead of creating a copy. This makes saves faster and helps prevent creating new duplicate attachment files.

Work Orders

  • Fixed: a crash that could be caused during loading a WO when an existing WO was selected and an item was selected in the part list.
  • Fixed: (case 7812) an issue where, if part average cost changed between saves of an internal WO, it was possible for the master parts to have the wrong cost.
  • Changed: to speed up loads, an unnecessary query has been removed (loading inventory for inventoryid -1).
  • Added: (case 4097) there is now a new store setting (important configuration) that controls whether the system will automatically choose locations for the user or not as items are added to the document. The setting is "Locations"->"Automatically allocate locations when adding items to documents" and it defaults to True. This allows a yard that wants salespeople to manually choose locations to do so.
  • Fixed: an issue where lineitem notes were not displaying correctly on loaded work orders.
  • Fixed: (case 8011) an issue where non-depletable items were not using order routing costs for their document costs. This was a rare issue, but it could cause non-depletable items purchased through order routing to show the incorrect cost.
  • Fixed: (case 8089) an issue where loading multiple saved WOs might cause the last WO to show the wrong prices if the WOs had different pricing methods.
  • Added: there is now a context menu (right click) for sending all items on the work order to the location map for visualization.
  • Added: global hotkey for sending items to location map. The default for this hotkey now shows in the context menu.
  • Removed: select all from the context menu since the job part list is a single selection only list.
  • Fixed (case 8219): an issue where assembly breakdowns weren't calculating cost spread correctly if there were so many parts that the components were getting less than 1% of the total assembly cost. Now, components can get as little as .01%, rounded to the nearest cent.
  • Added: (case 8133) component items (items inside of an assembly collection) now show a special attention icon when added to a WO. If the user doubleclicks this icon, they will be taken to the assembly breakdown dialog for the assembly in question. This makes performing breakdowns on demand much easier.
4/8/2026

Parts

  • Fixed (case 8219): an issue where assembly breakdowns weren't calculating cost spread correctly if there were so many parts that the components were getting less than 1% of the total assembly cost. Now, components can get as little as .01%, rounded to the nearest cent.
  • Fixed: (case 8219) an issue where doing a breakdown for a large number of items would not allocate less than $1 to an item. Also, we now use 6 digits of precision in our calculations, which will end up rounding item allocations down slightly more often. This has the effect (on large assemblies with lots of small value items) of rounding component costs down slightly more often.
  • Added: by user request, the locations page now uses the new 'no auto dropdown' style on its location combo boxes. This means the combo boxes won't automatically show their dropdown when the user clicks into them.

Report Viewer

  • Uploading again to attempt to fix weird date-time picker issues.

Work Order

  • Fixed (case 8219): an issue where assembly breakdowns weren't calculating cost spread correctly if there were so many parts that the components were getting less than 1% of the total assembly cost. Now, components can get as little as .01%, rounded to the nearest cent.
  • Fixed: (case 8219) master part cost calculations now use 6 digits of precision. This has the effect (on WOs with many master parts, each getting a small value) of round component costs down slightly more often, which can avoid a large negative value needing to be dumped onto the first master part.
4/8/2026

Parts

  • Fixed: an issue where the user could not delete a secondary location whose location name was ''.

Sales Orders

  • Fixed: the whole unit parts dialog no longer shows the quantity formatted as currency. This also fixes an issue where all components were removed from inventory, despite the user's choice.
  • Fixed: items with 0 quantity now lock their 'keep available' checkbox because these items are always removed.
  • Fixed: an issue where the items that were marked as staying in inventory wouldn't respect the cost the user specified.
  • Changed: minor formatting and labeling tweaks to make the dialog more usable.

Vehicles

  • Fixed: a query error that could occur when loading a teardown.
  • Fixed: an issue where teardown items created at the same time as the vehicle might get an invalid store id (-1) or vehicleid.

Work Orders

  • Fixed: (case 8089) an issue where loading multiple saved WOs might cause the last WO to show the wrong prices if the WOs had different pricing methods.
4/8/2026

Common

  • Added: Data Management screen added to the standard extension list

Sales Orders

  • Fixed: a crash issue related to adding 2 duplicate items onto a SO and cancelling both adds.

Work Orders

  • Fixed: (case 8011) an issue where non-depletable items were not using order routing costs for their document costs. This was a rare issue, but it could cause non-depletable items purchased through order routing to show the incorrect cost.
4/8/2026

All screens

  • Added: all list controls now have a right click menu option that allows the user to send all items in the list to a graph. This feature requires the new graphing dll to be loaded.
  • Added: the extension list has now been standardized. So, now every install should load every screen. Access to screens can still be determined with permissions.

Accounting

  • Changed: (case 5376) the entries tab has been completely rewritten. It is now a useful area for searching through historical gl entries.
  • Added: the gl entries tab is now paginated, default is 1000 items per page.
  • Fixed: possible crash issue on the entries page.
  • Fixed: an issue where the end date was limiting to the day before the selection.
  • Fixed: (case 7813) a rare issue where gl account configurations might save -1 instead of NULL if the user left accounts blank. This could cause accounting issues on WOs for systems where GL accounting is turned on.

Customer

  • Added: only active tax items are shown in the tax item drodpown. Also, the tax item dropdown is now an auto-complete dropdown which shows (by default) 1000 items at a time. This will make really large lists of tax items load much faster.
  • Added: if a record is loaded with an inactive tax item, that tax item is temporarily added as an option to the dropdown, then removed when the screen is cleared. This will make historical documents work correctly even with deactivated tax items.
  • Fixed: (case 7826) if the user did a smart search on the price contract page, then sent one (or multiple) results back to the customer screen, the sent parts would be ignored. Now, as many parts as the user wants can be returned from this search.

Crystal Reports

  • Added: the critical section for printing reports has been expanded, in the hope that this will help prevent errors caused by multiple print jobs being launched at once.
  • Fixed: (case 7353) an issue where hitting cancel on the disambiguation dialog would throw a 'no report chosen' error.

Common

  • Fixed: the choose store dialog now greys out the 'select all' button when the user is only allowed to choose one item.
  • Changed: the choose store dialog is now slightly larger to facilitate larger prompts.
  • Added: new UI for creating and modifying Sell Price Classes located at Configure > Inventory > Sell Price Classes.
  • Added: if an ITError or ITErrorReport are 'thrown' ITrack now reasonably catches and reports these exceptions using the error reporting dialog.

Database

  • Fixed: fadjustinventory no longer incorrectly inserts a 'roundoff error' row into costdiscrepancy for every valid adjustment to average core cost. However, averagecorecost was being recalculated correctly, so no corrective action is needed.
  • Added: if fadjustinventory is called for manual inventory adjustments, inventory status is not changed.
  • Added: (case 2835) there is new permission that controls whether the user can use the configure sell price classes dialog. This permission automatically inherits from whether the user can configure document types.
  • Added: (case 7597) there is now an 'active' column for taxitems.
  • Removed: several triggers on the insert or update of the location table. These triggers were keeping tables that referenced location up to date (keeping location and locationid synchronized). However, firing a trigger for each row was found to be slow, so now flocationrefresh runs a single query per table to update any related tables.
  • Added: (case 7600) there is now a permission for disallowing users to change the location delimiter string in the configure->locations dialog. This permission is auto-granted to anyone with the ability to modify locations.
  • Added: a couple indices related to locations that should make some queries faster.
  • Fixed: a database warning in frefreshinventory caused by passing FALSE instead of 'False' to fgetsetting.
  • Added: frefreshinventory now manually updates inventory, vehicle, inventoryserial, inventorylocation, and documentlinelocation to keep location and locationid synched with the location table. This is much faster than firing triggers for each modified row in location.
  • Added: the vehicle and inventoryserial tables now have a locationid column. Previously, they only stored a location name. Adding a locationid allows us to more easily have vehicles and serials 'follow' modifications/renamings that happen to their locations. The database script will run flocationrefresh once after making this change, which should set vehicle.locationid and inventoryserial.locationid automatically for all valid locations.
  • Added: Function changes and additions that cause vehicles to have their receiveddate set when a PO is done receiving.
  • Added: Three new search modules that will search documents in the system and return any items on those documents. To use, they need to be passed "[storeid]-[documentid]"

Graphing

  • Added: A new page for working with the graphing configuration of a database.
  • Added: A dialog for choosing which fields should be involved in a join.
  • Note: Builder and Results pages are not set up to work with the schema changes currently.
  • Added: Support for parsing 'range' filter values.
  • Added: A Database folder. This contains the new schema as I understand it, and will require few if any changes to work correctly once the rest of the screen work is done.
  • Added: Creator page now actually saves values appropriately
  • Fixed: Type guessing for the creator now works pretty much as one would expect it to.
  • Updated: Graphing objects once again reflect the database they come from.

Home

  • Added: (case 7760) the WOs total column now includes tax. Also, the total is now displayed in locale format.

Inventory Overview

  • Changed: the prompt that the user sees when they do a multi-branch order is now slightly clearer regarding the choice of a destination store.

GL Accounting

  • Fixed (case 7617): an issue where finalizing or voiding a SO could cause a crash in some circumstances.
  • Fixed: an issue where payments on multiple invoices wouldn't perform their accounting correctly when the associated invoice was saved.

Parts

  • Changed: most of the message boxes on the parts screen have been updated to be more concise, use clearer language, and always show an icon.
  • Changed: most pop-up message boxes on the parts screen have had their button text modified to make the user's choices clearer (instead of always showing ok/cancel or yes/no).
  • Added: (case 4380) if the user adjusts the quantity of a part down to 0, a pop-up appears asking them if they'd like to mark the part's status as S or D.
  • Added: if the user changes the quantity of a part through manual adjustment, we now call fadjustinventory to change the quantity in inventory. This is important because it allows the system to recalculate inventory value across remaining inventory stock, as well as dump any missing value into costdiscrepancy (which could happen from roundoff error, as well as the total loss of inventory value when quantity reaches 0).
  • Added: inventory serials now store a locationid as well as a location name, this change makes it so that the parts screen respects this new field and attempts to fill out locationid whenever possible.
  • Fixed: (case 7716) changed the way the screen handles the user typing into the paging combo boxes to better handle and speed up part loads.
  • Added: (case 4421) parts with a status of D or C no longer show up in the collections list on the links tab. Also, collections whose master part is status C or D only show up when the master part itself is loaded.

Purchase Orders

  • Fixed: a rare crash related to tax items.
  • Performance: lots of adjustments have been made to the way that items are loaded onto a PO, making this process much faster. The effects are greater for longer lists of items, but some large lists of items (75 or more) now load in a third of the time it took them before. The details of these changes are below.
  • Removed: during mass-item loading, total recalculation is disabled for speed. Also, the process that recalculates stock availability is only done once, after all items are loaded.
  • Added: several queries were be running for each line being loaded onto the PO, which could take a long time, especially on slow connections. The query that gets vehicle information has been eliminated, and the one that gets messages for displaying on the PO is only run if the item in question has messages to display. There was also up to 3 queries that could be run for each item to get vendor catalog information in one of several ways. These have been combined into just a single query that is run for each item on the PO.
  • Performance: hitting receive all on large POs should now be much faster.
  • Performance: voiding large POs should now be somewhat faster.

Sales Orders

  • Fixed: a rare crash related to tax items.
  • Added: the configure->Tax items dialog now has a column for 'active', which allows the user to deactivate unused taxitems.
  • Fixed: the configure->tax items dialog now remembers its last size and position, and has a more reasonable default size.
  • Added: (case 7597) only active tax items are loaded onto the screen.
  • Added: (case 7598) the tax item dropdown is now an auto-complete dropdown which loads 1000 items by default. This means the user can type in the dropdown to filter to a specific result.
  • Removed: the default checkbox is now hidden in the taxitem configuration dialog. This is because it wasn't affecting anything.
  • Added: only active tax items are shown in the tax item drodpown. Also, the tax item dropdown is now an auto-complete dropdown which shows (by default) 1000 items at a time. This will make really large lists of tax items load much faster.
  • Added: if a record is loaded with an inactive tax item, that tax item is temporarily added as an option to the dropdown, then removed when the screen is cleared. This will make historical documents work correctly even with deactivated tax items.
  • Added: there is now a check on save to ensure that the user has chosen a valid tax item. Also, the system keeps them from saving a new document with an inactive tax item.
  • Fixed: (case 7706) an issue where, if a user had both the 'edit closed invoices' and 'reopen closed invoices' permissions revoked, the 'Reopen invoice' option ceased to be locked down on a closed invoice.
  • Fixed: (case 7706) the void SO checkbox was not greyed out correctly if the user didn't have the 'edit closed invoices' permission. However, the user couldn't actually void an invoice in this situation because they didn't have permission to save.
  • Fixed: (case 7728) finalized invoices will no longer show any attention icons related to quantity at locations that the items were sold out of. Previously, looking at a finalized invoice might show 'insufficient quantity at location' in the attention column on a successfully finalized invoice.
  • Fixed: (case 7745) an issue where multi-invoice payments would show the grand total of the payment instead of the invoice total of the payment.
  • Fixed: a rare issue where a payment that had multiple payment lines that pointed at the same invoice might show the wrong total.

Vehicles

  • Added: (case 7882) vehicles now store a locationid as well as a location name, this change makes it so that the vehicles screen saves the correct locationid for the current vehicle location.
  • Added: (case 7882) when the user changes a vehicle location and cascades this change to parts, those parts' location id will now be set correctly. This is important for any yard that uses the LXW scanner software, since it relies on valid location ids.
  • Added: (case 5417) vehicle taxability is controlled by a new global setting. This allows companies to configure whether vehicle whole units are taxable by default or not.

Location Management

  • Fixed: an issue where unconfigured variance locations were causing a crash due to poorly handled exceptions. Now, this situation is reported to the user through a message box and execution continues.

Work Orders

  • Fixed: an issue where, whenever a saved WO was loaded onto the screen, all inventory records would show availability of 0/0 until the user hit the refresh button, even when there was quantity on hand.
  • Added: only active tax items are shown in the tax item drodpown. Also, the tax item dropdown is now an auto-complete dropdown which shows (by default) 1000 items at a time. This will make really large lists of tax items load much faster.
  • Added: if a record is loaded with an inactive tax item, that tax item is temporarily added as an option to the dropdown, then removed when the screen is cleared. This will make historical documents work correctly even with deactivated tax items.
  • Fixed: an issue where choosing the empty tax item wasn't working correctly.
  • Fixed: (case 7812) an issue where, if part average cost changed between saves of an internal WO, it was possible for the master parts to have the wrong cost.
  • Changed: to speed up loads, an unnecessary query has been removed (loading inventory for inventoryid -1).
4/8/2026

SalesOrders:

  • Fixed: (case 7706) an issue where, if a user had both the 'edit closed invoices' and 'reopen closed invoices' permissions revoked, the 'Reopen invoice' option ceased to be locked down on a closed invoice.
  • Fixed: (case 7706) the void SO checkbox was not greyed out correctly if the user didn't have the 'edit closed invoices' permission. However, the user couldn't actually void an invoice in this situation because they didn't have permission to save.
  • Fixed: (case 7745) an issue where multi-invoice payments would show the grand total of the payment instead of the invoice total of the payment.
  • Fixed: a rare issue where a payment that had multiple payment lines that pointed at the same invoice might show the wrong total.
Newer Older