Changelog

Enterprise Desktop
4/8/2026

Release 5.10

Manage Warehouse

  • Fixed: (Case 11705) if the user changed a single manual count quantity multiple times, the value would trigger as 'not filled out' if the value was changed an even number of times.

Release 5.9

Database

  • Changed: the messagetype column in the message table has been changed to an enum to help mimimize the size and increase the speed of any indices on the field.
  • Changed: deliverylinehistory.userid is now NULL-able. This is because these records can no be created automatically by the database outside of ITrack.
  • Added: (case 9363) recursion protection to all triggers on deliverylinehistory that call frefreshdocument_delivered. This is because, in the case of auto-picking, that function can alter the deliverylinehistory table, causing recursion.
  • Added: (case 9363) frefreshdocument_delivered can now create deliverylinehistory records for all unpicked quantity on auto-pick documents. This will help users see who saved a document with auto-picking turned on (and when). All such pick history is created with an empty location, which shouldn't matter because auto-picking doesn't consider these records to count how many have been picked.
  • Added: (case 9363) recursion protection to frefreshdocument_delivered because it can insert deliverylinehistory records, which can cause triggers to fire that would call the function again.
  • Removed: (case 10865) the current handling for "auto-pick" shipping methods has been removed from frefreshdocument_delivered. This is because auto-picking is now being handled in a different way.
  • Removed: (case 10865) the triggers on the deliverylinehistory (picking history) table no longer check @AUTOPICKMUTEX because frefreshdocument_delivered no longer creates pick history.
  • Added: (case 10865) there is a script that will call frefreshdocument_delivered for all lineitems on all auto-picked SOs, POs, and TOs in order to ensure that pick quantities are correct based on the new functions.
  • Added: (case 10865) added a script that will retroactively generate general pick history for all lineitems on historical auto-picked SOs, POs, and TOs in order to make sure these documents show up as 'fully picked'.
  • Removed: (case 10865) the trigger when updating an existing shipping method will no longer refresh a bunch of documents' pick history if a shipping method has auto-pick turned on or off. This should speed up some saves.
  • Fixed: fmovedocument_allocations previously only supported moving 'whole quantities' (integers). Now, fractional quantities are supported.
  • Fixed: a possible issue where fmovedocument_allocations would do the wrong thing for TOs because storeid was NULL.
  • Fixed: a possible database error thrown by fmovedocument_allocations if MySQL strictmode was on.
  • Fixed: fmoveinventorywithallocations now supports fractional quantities (it only supported whole quantities before).
  • Added: (case 10865) fsalesordersaved now generates pick history if an auto-pick shipping method is selected. If the SO picking staging location is filled out, the quantity is also moved to that staging area (this is suppressed for returns).
  • Added: (case 10865) ftransferordersaved now generates pick history if an auto-pick shipping method is selected. If the TO picking staging location is filled out, the quantity is also moved to that staging area.
  • Added: (case 10865) fpurchaseordersaved now generates pick history if an auto-pick shipping method is selected. If the PO picking staging location is filled out, the quantity is also moved to that staging area (this is currently only active for PO returns).
  • Fixed: (case 11123) serialized inventory was only being moved if its current location matched the source location. Now that is only true if the inventory is being 'lost' (move to Variance)

Reports

Weekly Sales Insights

  • This is a new report. The is the first of a new type of report that presents information using graphs, this shows summarized sales for a 4 week period by day, customer, and part type.

Sales Orders

  • Added: (case 10865) SOs that have 'auto-pick' shipping methods selected now generate picking history on save as well as moving the items to the picking staging area, same as the pick operation on the delivery screen.
  • Added: (case 10865) when saving an open SO with an auto-picking shipping method selected, the user will be prompted to confirm that they have picked all quantity on the document and given it to the customer. This feature is controlled by a new setting which can be found at "Sales Orders"->"Require confirmation for automatic picking of inventory", and defaults to not required.

Release 5.8

Parts

  • Added: (case 10974) if the user adds or modifies a location on the parts screen, the hold quantity is now refreshed. This fixes an issue where switching a location might leave the hold quantity from the previous location. Now the hold quantity should match the new location name.

Reports

Label by Location

  • Updated the report to work with the new locations.

Tag by Location

  • Updated the report to work with the new locations.

Warehouse Management

  • Fixed: (Case 11000) an issue where serial #'s would show the wrong 'impact' value on count documents.

Release 5.7

Customer

  • Fixed: (case 10879) an issue where copy image to clipboard wasn't working.

Database

  • Fixed: (case 10867) a error that would occur on the Deliveries Screen when two items on a document were both pulling from the same location.
  • Fixed: a database error that occurred on the ebay screen because of missing data in the ebay tables.

Parts

  • Added: (case 10862) if the user manually adds a location to a part, it will automatically 'steal' all unsaved quantity from the special offset location (e.g. Variance). This solves certain situations where new standard/misc parts would end up with 0 at the location the user chose and 1 at Variance. Also, this means that, on saved inventory, if a location is deleted (moving quantity to variance) then another is added, that quantity will automatically be assigned to the new location. Any quantity that was in Variance when the part was loaded will remain at Variance.
  • Added: if a location is added to a part that has NO locations at all (generally only possible on new parts) the current inventory quantity on hand will be put at that new location.
  • Fixed: (case 10879) an issue where copy image to clipboard wasn't working.
  • Fixed: (case 10905) an issue where saving an item with assembly items might throw a database error, keeping the new items from being added to the collection.

Reports

Inventory Count Sheet LXW

  • Fixed: (case 10919) the report now includes items at virtual locations.

Work Order Internal

  • Added: (case 10869) job name now appears in the job section, instead of the customer name, which was already on the report.

Vehicles

  • Fixed: (case 10879) an issue where copy image to clipboard wasn't working.

Vendor

  • Fixed: (case 10879) an issue where copy image to clipboard wasn't working.

Warehouse Management

  • Fixed: (case 10887) an issue where, if the user performed a search for inventory counts, the screen would get stuck in a mode where all further searches for inventory moves would throw a database error.

Work Orders

  • Fixed: (case 10884) an issue where the job would calculate estimated taxes based on item cost instead of item price.

Release 5.6

Core Management

  • Fixed: (Case 10743) A crash when sending a core to the Sales Order screen. This was due to version compatibility.

Warehouse Management

  • Added: (Case 9417) Jobs are now exported on a consolidated document.

Release 5.5

Customer

  • Fixed: (case 10458) editing a payment was incorrectly saving a $0 unapplied payment line.

Database

  • Fixed: a database error in the ebay module that could occur when it attempting to access eBay conditions.

FIFO Subsystem

  • Added: (Case 10518) The FIFO system now properly handles Sales Order re-opens by removing the documents allocations and freeing the inventory source.
  • Added: (Case 10518) The FIFO system now treats returns differently. The system will now record the return as a negative allocation and record the credited document, whereas before it would simply delete credit allocations.

Sales Orders

  • Fixed: (case 10540) an issue where sending items to be adjusted from the warehouse management screen would cause an invoice to be written with the incorrect quantities (negative instead of positive when lost inventory is being written down).

Purchase Orders

  • Fixed: (case 10223) an issue where a PO return started by entering a negative quantity (not through the begin return button) for an item with a core charge would mix up the price of the master item and the core charge.
  • Fixed: doing a return with the begin return button no longer adds the items to the document in reverse order.

Release 5.4

Work Orders

  • Fixed: (case 10323) several crashes that could happen when deleting a job or task from a saved WO, especially if newly added tasks or labor were on the job.
  • Fixed: (case 10323) an issue that would cause a job to get deleted if the user deleted a saved task off of said job.

Release 5.3

Purchase Orders

  • Fixed: (case 10168) voiding POs no longer incorrectly reverses locations on parts that were received if the same item was received on two or more lines.
  • Added: (case 10160) voiding POs now uses the standard inventory adjustment functions in the database to reverse all quantity and cost changes (including add-on costs). This will fix issues with FIFO and other reports not always updating correctly after PO void.

Work Orders

  • Fixed: (case 9379) an issue where dirty core lineitems on a WO might show the incorrect cost value on the screen until the user hit the refresh prices button (the correct value was saved though).

Release 5.2

Payment Entry

  • Fixed: an issue where creating payments on the Payment Entry screen would not correctly generate accounting.

Reports

Inventory Count Sheet LXW

  • Added: Inventory Count Sheet LXW can now show out of stock inventory (optional). This can be done from the Manual Count Entry screen.

Release 5.1

Customer

  • Fixed: (case 10194) an issue where new attachments wouldn't save the customer ID correctly.

Manage Warehouse

  • Fixed: (case 9759) an issue where an item with no locations at all could not be added to a manual count.

Parts

  • Fixed: (case 10137) an issue where, if the user changed the location dropdown on the part info page, the primary location of the part would be saved, but it would not appear on the locations tab until the user reloaded the part.
  • Fixed: (case 10137) if a new primary location is added to a part using the location dropdown on the part info page, that location will now correctly be handled with the "delete non-permanent locations with 0 quantity" setting.
  • Fixed: (case 10137) if the user changed the primary location of a part to a location that had 0 quantity and was not permanent, the change log would record that the location was changed to that location even though that location was removed from the part before save.
  • Removed: (case 10137) newly created parts no longer automatically create a location at the default inventory location (default of "MAIN"). This is to alleviate confusion where this automatically added location was created as non-permanent so it would simply be deleted on save when quantity was 0 (common for replenishable parts). A previous update added a popup on save that allows the user to easily add remaining quantity to MAIN or Variance if necessary, which should cover situations where standard/misc parts are created with non-zero quantity.
  • Added: (case 10137) if the user adds a new location to a part (other than Variance), it will automatically be marked as a permanent location if its the first location (other than Variance) to be added to the part. This allows the user to pick a location on the parts screen for a new quantity 0 part and not have to worry about that location disappearing. This is commonly necessary for new (not yet stocked) replenishable parts.

Reports

Label

  • Labels now display NO SERIALS instead of a barcode on serialized parts with no serials.

Sales Order 11in

  • Store name field now resizes to handle even longer store names.
  • Balance adjustments now show at the bottom of the SO along with payments. Both Subtotal and Balance Adjustments now pay attention to the new field, adjustmenttype.printable.
  • Added customer email fields, suppressed by a setting by default
  • Report now uses the fbackorderquantity function.
  • Gave term field more room, expanded rectangle at the top to be the same size as the main body.

Tag

  • Tags now display NO SERIALS instead of a barcode on serialized parts with no serials.

Work Order Internal

  • Set complaint, cause, and correction fields to grow. Cleaned up report.

Vehicles

  • Fixed: (case 10194) an issue where new attachments wouldn't save the vehicle ID correctly.

Vendor

  • Fixed: (case 10194) a regression where new attachments wouldn't save the vendor ID correctly.

Release 5.0

Common Resources

  • Added: support for a new screen-independent attachment management dialog. More coming on this soon.
  • Added: the edit choice dialog now has a parameter that allows the caller to say that leaving the edit blank and hitting ok is acceptable.
  • Added: the choose locations dialog, which is shared between all document screens, now allows for choosing a quantity on a range rather than a specific value. This is currently just used on SOs where the user can allocate between the sell quantity and the total quantity, to account for back orders.
  • Fixed: an issue where adding a new attachment to a target object, then reloading that object could cause new copies of the attachment to be loaded.
  • Fixed: an issue where adding attachments to new objects (no ID yet) wouldn't work right.
  • Added: the attachment dialog now removes an attachment from the attachment cache if the user unattaches it in the dialog. This solves an issue where new attachments couldn't be properly deleted.
  • Added: support for readonly mode in the attachment dialog. Editing, adding, and removing attachments is disabled in this state.
  • Added a new green right arrow icon. Kinda looks like a play or go button.
  • Fixed: an issue with the choose locations dialog where an inventory record would have its locations loaded, but none of them would be marked as the primary location. This was interfering with any yard that used $PRIMARY as a special location for documents.
  • Fixed: a crash that could happen when the user chooses locations on a document.
  • Fixed: an issue where looking at the locations on a document that was fully or partially received would show incorrect predictions in the 'available' quantity column. This was because it wasn't taking into effect the fact that some quantity was already sold/returned/consumed/received/transferred.
  • Added: some new icons
  • Added: (case 4097) ability for document screens to choose whether automatic location allocation should happen if there are multiple locations to choose from.

Customer List

  • Fixed: (case 9219) an issue where performing a search would always return all customers in some circumstances.
  • Fixed: (case 9750) the enter payments button now applies user permissions the same way that the customer screen does. Essentially this means taking the customer's default store into account.

Customers

  • Removed: (case 9556) unnecessary pop up dialogs that would happen if the user intentionally aborted a save operation.
  • Changed: Rewrote all message box pop ups on the customer screen, all its pages, and all its dialog boxes (such as the payment dialog). Several dozen message boxes have had their text rewritten to be clearer and more concise. Several dozen more have had their button text rewritten to give the user a clearer idea of what will happen when they click them.

Credit Approval

  • Fixed: (case 9320) the credit limit override value would get mangled when building the appoval query.

Crystal Reports

  • Fixed: (case 9618) an issue where the way we were identifying reports for update was causing new reports to overwrite the fileid of the first report on the system.
  • Fixed: a possible issue where resetting updates during an existing update process could cause reports to update the wrong reports if the rows got reordered.

Database

  • Added: flocationrefresh now has extra WHERE clauses on all queries in the second section. This has been shown to speed these queries up by a factor of about 50%. Thanks goes to Ken Oehlers for this suggestion.
  • Added: (case 9101) there is now a new permission for whether the user can add new payments to a SO. The existing permission for editing payments has been renamed appropriately. This new permission defaults to the value of the existing payment edit permission.
  • Fixed: (case 9195) Fixes to make manual inventory quantity adjustments work without database errors.
  • Added: the fvehiclecost function now validates input to prevent it from running for vehicle ID 0.
  • Removed: vallocatedcosts, as it is no longer used.
  • Added: EDocuments can now (optionally) be for a particular store. EDocuments now must be unique per store.
  • Fixed: (case 9329) the description for the Locations -> "Open Screen" permission was describing the Data Management screen.
  • Added: (case 9367) missing function frefreshdocument_fulfillment.
  • Added: (case 9289) an assembly number search module called Collection SKU
  • Fixed: the location field in vehicle 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) Added an event that will run at 3 am every Sunday to optimize all tables
  • Added: (case 9367) another function that was missing on some databases.
  • Fixed: an issue where fmoveinventorywithallocations was updating inventoryserial.location but not inventoryserial.locationid
  • Fixed: an issue where fmoveinventoryprimarylocation wouldn't move existing locations correctly in some cases. Also, we now correctly use signed integers for location ids so that they won't have errors if an inventorylocation uses -1 for its locationid.
  • Fixed: an issue where frefreshdocument_locations would throw an error when called for work order master parts.
  • Added: (case 9462) support for a 'drop-in' database modification that makes the database 'remember' hold and on order quantities for inventory. This cut as much as 80% of search times out for large result sets in testing.
  • Changed: (case 9510) the "Inventory Type Name" field has been renamed to "Part Type Name" in the part modification screen for consistency
  • Fixed: (case 9442) A problem with frefreshdocumentlocationallocations where the inputs for the function had a name mismatch for work order parts. Added stubs for WOMP handling for additional clarity.
  • Fixed: (case 9624) removed a reference to inventory.holdquantity which has been removed.
  • Added: (Case 9603) a 'printable' flag for adjustments to add the user flexibility in reports.
  • Fixed: an issue where fcalculateaverage_cost wasn't adding in 'add-on' costs if inventory.cost was non-zero (% of price costing override).
  • Fixed: an issue where fadjustinventory was erroneously inserting records into the costdiscrepancy table with the message of Roundoff Error when non-depletable items were sold or standard items were sold (in some situations).
  • Fixed: (case 9629) an issue where picking and moving inventory after the document has been finalized (or partially received in the case of TOs) would still move inventory even though it had already been sold. Now, the document allocations are moved, but inventory is not. This avoids an issue where picking a document after finalization would end up leaving inventory in the picking staging area.
  • Fixed: an issue where moving document allocations might not recalculate some information correctly if the allocation already existed (like quantitypicked or quantityreceived).
  • Added: prunforeachtable, which is required for eoptimizeall_tables.
  • Added: (case 9703) inventoryserialhistory.picked, which keeps track of whether any particular serial on a PO or TO has been picked.
  • Changed: (case 9703) fmoveinventorywithallocations now passes serial information into fmovedocument_allocations so that we can properly move serial #'s on documents. Also, 2 queries were combined to make this function faster, especially in those cases where non-serialized inventory is being moved.
  • Added: (case 9703) fmovedocument_allocations now takes a serial # as an argument so that serial information can be appropriately shifted. Essentially this supports updating inventoryserialhistory.
  • Changed: (case 9703) all 4 pickable item views (vpickable) now return serial information with each line. For documents that can have multiple serials per line, this means breaking items up.
  • Fixed: (case 9688) A bug in fmoveinventoryprimarylocation that caused infinite looping in certain cases.
  • Changed: (case 9419) Made log_discreteinventorymove capable of storing more generic information.
  • Changed: fmoveinventorywithallocations now calls a post-execute function when done.
  • Added: fmoveinventorywithallocationspostexecute, which is a generic function that gets run at the end of fmoveinventorywithallocations. It contains block-commented code for putting discrete move inventory into the log table.
  • Fixed: (case 9796) an issue where a search done only with the serial # smart search might throw an error.
  • Added: (case 8126) Additional permissions used by LXW. This brings all LXW permissions into Enterprise.
  • Changed: (case 9899) freplicateinventory now has an enum for where it was called from rather than a string.
  • Fixed: an issue where vpickable[document]_line would return "" for its document type on some versions of mysql. This is a MySQL bug that is present in MySQL 5.6. Once the bug is fixed, we can remove this workaround.
  • Fixed: (case 9865) an issue where vpickable[document]_line wouldn't show 'non-stocked' items (items with no inventory record) to be picked.
  • Added: (case 9774) flocationrefresh is now store specific. This should make refreshing location information faster, especially on databases that have logging turned on on many tables.
  • Added: (case 9776) inventoryquantityadjustmentline.location, which is necessary for virtual locations in counts. There is a trigger for pre-update and pre-insert that sets this based on locationid if its empty.
  • Added: (case 9776) inventoryquantityadjustmentserial.newlocation, which is necessary for virtual locations on serials in counts. There is a trigger for pre-update and pre-insert that sets this based on newlocationid if its empty.
  • Added: (case 9961) there is now a function (fbackorderquantity) which returns the quantity that was backordered from a particular salesorder line. This is important because, in 4.0, back order quantities now get 'zeroed out' when an invoice is finalized.
  • Added: a new index that should make looking up back order quantities significantly faster.
  • Fixed: (case 9784) an issue where moving a serial using fmoveserial would move the inventorylocation record and document allocations but not the serial if the 'old' location didn't match the serial location. Now, the current location of the serial is used as the 'from' location no matter what is passed into the function. If no serial could not be moved, the rest of the operation is skipped.
  • Adding an inventory type per case 9846
  • Removed: a location setting that has not been in use for awhile, and it is complicating configuration.
  • Removed: (case 4097) a setting that was previously added to implement a feature has been removed because the feature has changed design.
  • Added: (case 4097) there is a new store setting, 'Locations'->'Automatically choose between multiple locations when adding items to documents'. This is an important setting that defaults to True. It should only be turned off if a yard wishes to 'force' users to manually choose locations when adding items to documents when there is more than one location to choose from.
  • Fixed: (case 10025) an issue where rows were being inserted into the cost discrepancy table in situations where the inventory record was not being adjusted.
  • Added: a placeholder function called by the transfer orders screen. This function is optional, but we'd prefer to have an empty function to avoid errors getting logged.

Deliveries

  • Fixed: (case 9358) an issue where the SO destination location was being used as the WO destination location when picking.
  • Fixed: an issue where unpicking (picking negative quantity) would throw a database error when pick and move was enabled. Now an un-pick and move simply moves the quantity in the opposite direction rather than picking a negative quantity.
  • Changed: (case 9703) the pickable items list now shows a row for each serial #. Also, when a user picks a specific serial #, that information is passed into the database functions, which eliminates a problem where QoH was getting moved but the serial #'s were not.
  • Removed: the user is no longer able to unpick (pick negative quantity) for POs and TOs because the database functions do not currently support it on serialized items.

EDocuments

  • Fixed: a crash issue that could happen if a function in a template didn't have a valid close bracket.

Global Settings Extension

  • Fixed: a database error that would occur when attaching a new report file to an existing report record in the database.

ITrack.exe

  • Added: Checks for impossible version numbers. If you try to update to a database version number that's more than 5000 versions away from the current version, it simply writes an error and continues on. Note: This change was added as another avenue to prevent a bad product update
  • Fixed: (case 1503) a long-standing (but very rare) issue where updates would fail to download twice on some machines, generally related to cookie storage.
  • Fixed: (case 9934) when the user logged out, a cleanup message which is reserved for application close was being called on all loaded extensions. This was disrupting extensions that used libraries that stop working after cleanup (like the Chromium embedded framework). Now, this cleanup is only performed on the final close of the application.

ITMySQLConnection

  • Added: support for tracking open transactions for mysql connections.
  • Fixed: an issue where hitting retry on a query error dialog would fail if multiple queries were being passed in for that operation.
  • Performance: eliminated some unnecessary string conversions so that queries are executed faster. Should help speed up very large queries (not large result sets).
  • Performance: refactored to combine similar query execution code for consistency and smaller executable code.

ITSQLFramework

  • Changed: several query methods have been combined to lower executable size and code redundancy.

Locations

  • Added: (case 9330) Permission-checking and handling code to the locations dialog. Now respects the location delimiter permission.
  • Added: Embedded location page on Location screen updates when permissions change.
  • Added button icons
  • Fixed: the configure locations dialog's editability permission is no longer based on whether the user can open the locations screen.
  • Added: the configure locations dialog now only shows a list of stores in the dropdown that the user has permission to edit locations at.
  • Changed: the 'global' location delimiter is now per-store, and the permission that controls the ability to edit it is also per-store. Also, for speed purposes, when the delimiter is modified, only locations at the current store are refreshed now.
  • Changed: (case 9774) the location refresh function is now store specific, and it is only called on save for each store that had a location added or modified.

Manage warehouse

  • Changed: Fixed some very overactive change detection.
  • Added: Extra items added to a manual count try to auto-select a candidate location if there is a good candidate location.
  • Changed: De-escalated an error popup about variance requirements to a warning in the status bar.
  • Added: Warnings and errors for trying to do counting without having a Variance location configured.
  • Fixed: A bug where the batch scan management results would hard-limit at 200 instead of what the user selected. It's currently without limits now, so if the user selects something large, the database will lock as it grabs the data.
  • Added: ordering to the batch scan management results.
  • Fixed: A subtle bug where it was possible to be missing the ID for a location involving the location autocomplete.
  • Fixed: A bug where having an inappropriate serial count could lead to the wrong variance/old location being used.
  • Fixed: (case 9227) A bug where having an ambiguous entry in manually-entered lookup would cause a whole-inventory search to happen.
  • Changed: lots adjustment to the UI to improve flow
  • Added: lots of state specific tooltips
  • Added: Pressing certain buttons will automatically set the focus to the next button. This doesn't always make sense in ITrack but this screen's UI already felt very wizard-like as it locked down certain parts of the UI as you did things.
  • Added: Start Manual Count and Cancel are now the same button, act as a toggle.
  • Added: (batch scan management page) Buttons are now inactive when they don't perform an action, with tooltips.
  • Removed: the start/stop "mode". Now there is change detection. The user can change the location at any time. If they have quantity values entered at the time they change the location, a dialog will appear.
  • Added: Focus automatically gets set in the list edit when adding a part via the Add button
  • Changed (case 9727) previously, the user could not view items at locations containing more than 500 items. Now, the user is warned in these situations and they can either continue anyway, cancel, or load just the first 500 items.
  • Changed: items on a count that were not counted (left blank) are now no longer added to the count operation. This allows the user to do a partial count of a location without setting all other items to 0 quantity.
  • Added: there is now a store setting under the "Manage Warehouse" section that controls whether to automatically set quantity counted to 0 when the user leaves the field if the field is blank. This setting defaults to off.
  • Added: there is now a quantity on hand and a quantity available column in the manual count list. This allows the user to see the current expected quantity for that item at the specified location.
  • Removed: some unnecessary queries run when saving a manual count.
  • Added: Projected impact column to the inventory adjustment page. This column shows a signed value which predicts the value that inventory will be adjusted by if the user proceeds. All items that are associated with a vehicle have a grey background in order to warn the user that the projections are just a guess (since vehicle cost pools can fluctuate). If the adjustment will add quantity ('found' inventory) this column shows 0, since no expense will be associated with the new inventory.
  • Added: non-depletable items now always show 0 in the impact column.
  • Changed: average cost column no longer multiplies by quantity. This is to differentiate it from the projected impact column.
  • Added: quantity column is now colored red or green, depending on whether the quantity difference will increase or decrease QOH if the adjustment proceeds.
  • Removed: sum of the averagecost column, since it is no longer very useful.
  • Added: sum of the projected impact column in the footer
  • Added: support for finding/losing fractional quantity. Before, only whole quantity could be adjusted.
  • Fixed: an issue where adjustment quantity might not show correctly if a large 'loss' was partially 'found' or vice versa. This was impossible before some recent database changes anyway.
  • UX: added wait cursors to loading/summing up inventory adjustment entries.
  • Changed: (case 9859) the query that grabs inventory counts on the scan job administration was taking an inappropriately long amount of time to return on large data sets. The queries have been rewritten and tested on very long date ranges and found to be 99% faster.
  • Added: the location column in the scan job administration list now shows the location serials were moved to in addition to the locations counted for non-seralized parts. Currently any locations appearing in both lists will be duplicated. We're looking into a way to fix this without introducing significant time to the loading process.
  • Changed: inventory status must be A or H in order to be loaded into the count list
  • Fixed: serialized items now only show serials that are 'Available', 'In Transit', 'Work In Progress', or 'Allocated'. Available is the only important one, but the others are still sort of in stock, so it may be useful to count them.
  • Changed: serialized items with no valid serials no longer show up.
  • Added: (case 9752) there is a check that controls whether items with 0 QOH show up or not.
  • Added: there is now a check that controls whether stock levels show on the screen and another that controls whether they show on the printout.
  • Changed: labeled several sections of the manual count screen and other minor UX tweaks.
  • Changed: serials that are part of a count now show their 'to'/'new' location in the location list, not their old location, as the location they are currently at is probably the location that was counted.
  • Changed: (case 9776) the batch scan history page now uses the location text fields in the database in order to support counts at virtual locations.
  • Changed: the variance column has been renamed to 'difference' in order to differentiate it from Variance the location.
  • Added: (case 9776) approving a count now works correctly with virtual locations.
  • Added: the manual count page now supports deleting multiple items off of a count.
  • Added: the manual count page now always shows an 'empty' item at the bottom like the document screens.
  • Changed: (case 9776) the add found item button on the manual count page now sends the user to search and they can return any number of search results.
  • Added: (case 9776) the manual count page now supports counting virtual locations. The 'invalid location selected' icon only appears on virtual locations if the "Enforce Location Hierarchy" setting is set to True.
  • Added: the manual count page now remembers the column size and order for the current user.
  • Fixed: an issue where changing the location on the manual count page wouldn't refresh the list if the user hit tab or clicked out of the combo.
  • Added: when the user doubleclicks a scan job detail row, the corresponding inventory record is now opened on the parts screen
  • Changed: on the scan job admin tab, the detail list is no longer gray all the time (read only list).
  • Added: the scan job list and detail list now alternate row colors.
  • Changed: (case 9784) the detail list has been made much more consistent and usable between serialized and non-serialized parts. Changes include:
  • Non-serialized parts show the same location in from and to if no change happened (used to show blank in 'to')
  • $ impact column is now colorized in the main list
  • $ impact and quantity difference columns are now colorized in the detail list
  • There is now an increase/decrease/move icon shown in the difference column for every line where an adjustment was made.
  • The totals in the footer now show sums even when the total is 0
  • All currency values now correctly use the user's windows locale format for currency.
  • Fixed: if no scan jobs are selected, the detail list is now correctly cleared.

Part Modification

  • Fixed: (case 4090) an issue where sending results from search wouldn't be added if the user did a search grouped by location. For now, the locations specified in the search results are ignored.
  • Changed: (case 6931) by user request, the user can now change whether all columns can be set up to log changes or be global. Previously readonly columns could not have these 2 attributes modified, as the readonly columns were considered to be outside these behaviors. However, since this is an advanced area only modified by power users, this is now possible. It is important to note, however, that some readonly fields, even if set to global (or log changes) won't always respect these settings. For example, averagecost, which is modified by the system and assumed to be a non-global field which does not require a change log entry when modified.
  • Added: all date and date/time columns now display in the user's windows locale format for dates and date/times. Also, these columns can now be edited with windows date/time pickers (when they are editable).
  • Fixed: (case 9973) all date and date/time columns should now sort correctly.
  • Changed: read-only columns should still use the appropriate control type. For example, readonly true/false columns would show the word True/False, now they show a readonly checkbox. Readonly text fields now show an edit control so that the user can copy the data into the clipboard.

Parts

  • Fixed: A bug where the wrong screen name was supplied to the Edit Locations function, causing it to do nothing instead of opening the locations list.
  • Fixed: A bug where an un-inventoryable location being added to the part (perhaps through manual/scanner counts) would cause the part to be uneditable. Now we only care about locations that haven't been changed.
  • Changed: (case 9685) Adjusted tab order to match user expectations
  • Added: (Case 6577) the user is warned if they are deleting a location that has held quantity.
  • Added: (case 6577) if the user deletes a location that is on any open documents, those location allocations will be deleted. This will allow those document screens to re-allocate correct locations on the next load, or force the user to choose.
  • Changed: deleting a saved inventory location now only deletes open document allocations. Closed allocations against that location will remain.
  • Changed: the warning that pops up when the current part has been modified since the user loaded it has been rewritten to be more concise and easy to understand.
  • Fixed: the "vehicle cost overrun" warning dialog will no longer assign a negative cost if the vehicle's cost has already been overallocated. Also, the dialog no longer pops up if cost is already set to 0.
  • Fixed: (case 9858) an issue where the user would not be presented with entering a comment into the change log if they manually adjusted quantity.
  • Fixed: (case 4380) an issue where replenishable parts were asking the question "the quantity has been set to 0, do you want to set the status to D or S?". This question is more applicable to non-replenishable parts.
  • Added: (case 4380) if the user sets the status of a part to something other than A or H (and quantity is not 0), the system will ask if the user wants to set the part quantity to 0 (so long as they have permission to adjust part quantity). This should help yards avoid situations where they have inventory records that are not reported as part of inventory valuation but have a cost value associated.

Purchase Orders

  • Fixed: (case 8552) the current time was not being saved in purchaseorder line history's "lastmodified" date.
  • Added: support for E-documents being store specific.
  • Fixed: (case 9111) an issue where core items were using averagecorecost instead of averagecost for transfer order line cost.
  • Removed: an unused field from the TO table.
  • Added: when user hits 'add item' on the TOs tab, the message sent to search will now ensure that any clicked parts are sent back to TOs instead of POs.
  • Added: (case 4090) if the user sends search results grouped by location to either a PO or a TO, items will now be loaded (previously the message was ignored). Currently, this is treated just like a normal set of item results (the locations passed from search are ignored).
  • Fixed: an issue where transferring serialized items would not correctly allocate locations at the source to match the serial #'s the user chose.
  • Changed: (case 9964) when the user loads a historical posting, the 'total quantity received' will no longer exclude 'future' postings. Previously this figure only showed quantity on postings performed before the currently loaded posting in order to simulate showing a historical version of the posting. However, this was somewhat inconsistent/confusing and was leading to several issues where editing an existing posting could lead to location errors or overreceipt of a PO.
  • Fixed: (case 9964) if the user loads and edits an existing posting that has future postings, the receive all button will now only suggest the quantity to fully receive the PO (no more over-receipt). Also, the colorizing of the quantity column should work correctly in this circumstance again.
  • Fixed: (case 9964) if the user loads and edits an existing posting that has future postings, they should no longer incorrectly get 'insufficient QOH to return the item' for return POs.
  • Fixed: (case 9964) an issue where the user was incorrectly allowed to remove items from a PO if the user loaded a historical posting and the item was only received on later postings.
  • Performance: loading a large PO is now somewhat faster due the improvement of some purchase order line features.
  • Added: (case 9970) the force closed checkbox on TOs now says "Done Receiving", and loading a TO that is done receiving will check this box. This should make this screen more consistent with the PO screen. Previously, this check was only used to force a TO closed and was unchecked on saved TOs.
  • Added: (case 9982) the 'quantity returned' in the PO return dialog was using purchaseorder line quantity, even if a return PO was forced closed without receipt. Now, if a PO is done receiving, just the quantity received is used. Credit to Chad A for the solution.
  • Added: (case 4097) support for the new 'Automatically choose between multiple locations when adding items to documents' setting for allocating locations automatically. This is supported for PO returns and the source locations of TOs.
  • Fixed: (case 9975) if a transfer order was received in multiple postings, it was possible that items on the TO would have unnecessary activity in and out of the Variance location.
  • Performance: saving a transfer order now batches many of the queries run on save instead of running them individually. This can make creation of a large TO much faster on slow connections.

Sales Orders

  • 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.
  • 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.
  • Fixed: (case 6660) voiding an invoice now properly recalculates the hold quantities on all inventory on the voided document. This resolves issues where these holds would remain until the user added the item to another document or saved the original document again.
  • Added: support for fractional quantity inventory adjustments sent from the manage warehouse screen.
  • Fixed: (case 9899) when inventory is replicated for a return, the database function is now called with the correct document type.
  • Added: (case 4097) support for the new 'Automatically choose between multiple locations when adding items to documents' setting for allocating locations automatically.
  • Fixed: (case 9691) an issue where performing an inventory adjustment invoice would sometimes incorrectly show prices on inherent core charges.
  • Fixed: an issue where "Receiving" was misspelled on vehicle search. Thanks to user tcamarigg for the catch.
  • Changed: (case 4090) the context menu (right click menu) now shows all "Send to" options when the user right clicks on results after performing a search where results are grouped by location.
  • Added: the screen handles returning results to other screens slightly differently now to ensure that sending items to a PO vs a TO will always arrive in the correct area
  • Fixed: no matter whether the user is doing a search that is grouped by location or not, the send to ebay option will always send the results in a way that the ebay extension can handle.
  • Changed: data storage method to avoid a crash related to inventory locations.
  • Minor tab order fix on the Vehicle Search tab.
  • Performance: reduced the time spent attaching lookups to the current result set. This can speed up performing an appraisal for large sets of parts significantly.
  • Added: (case 9880) there is now a total for appraisals in the totals section in the bottom right. The value is always $0 until the user performs an appraisal.
  • Changed: the part search result totals now allow the user to select and copy the values.
  • Fixed: an issue where the totals for the current search would be incorrect if the a 'location' search was performed and parts existed at multiple locations.
  • Added: all part search result totals are now shown in the user's windows locale format for currency.

Updater

  • Added: (case 9862) if (for whatever reason) the 'command' to run in run_delayed has quotes around it, they are removed. This is because CreateProcess apparently fails if the executable to be run is in quotes.

Vendor

  • Fixed: (case 9766) the notes field was getting truncated even though the database field has no limit.

VendorList

  • Fixed: a bug where performing a search would always return all vendors (case 9219) in some circumstances.

Vehicles

  • 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.
  • Fixed: an issue where the user could not enter virtual locations into the location field during teardown.
  • Fixed: (case 9579) an issue where parts created from teardown might inherit the wrong vehicle model if the vehicle's make or model changed. This was not reflected on the parts screen, so the user probably won't notice a change.
  • Fixed: an issue where, if the default vehicle location matched a location in the location list but had a different capitalization, the screen would erroneously throw a "The vehicle changed" message on an empty vehicle.
  • Added: (case 9749) when the user is saving a vehicle, if any parts are on the teardown that have been modified and they have been changed by another instance of ITrack or another screen, the user is warned about this collision. They can either choose to abort the save or simply skip all colliding parts. This helps to avoid any issues where changes made on the parts screen might be reverted by saving the vehicle that part is on.

Vendors

  • Added: (case 9328) internal comments to the "Purchase Order History" list on the Purchase Orders tab.

Work Orders

  • Fixed: (case 7829) workorder.dateclosed is now set to the current time when a work order is finalized. When a work order is updated, it is checked to make sure its not already closed before it's set. If it's already closed, it will be not be changed. If it's not closed it gets set to NULL.
  • 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.
  • Fixed: (case 4090) an issue where sending results from search wouldn't be added if the user did a search grouped by location. For now, the locations specified in the search results are ignored.
  • Fixed: (case 9878) loading items that had a markup based on retail, wholesale, list, or jobber price would use the retail core charge, retail wholesale price, etc for an inventory item as well as its core.
  • Added: (case 4097) support for the new 'Automatically choose between multiple locations when adding items to documents' setting for allocating locations automatically.
4/8/2026

Release 4.5

Common Resources

  • Fixed: an issue with the choose locations dialog where an inventory record would have its locations loaded, but none of them would be marked as the primary location. This was interfering with any yard that used $PRIMARY as a special location for documents.
  • Fixed: a crash that could happen when the user chooses locations on a document.

Work Orders

  • Fixed: (case 9878) loading items that had a markup based on retail, wholesale, list, or jobber price would use the retail core charge, retail wholesale price, etc for an inventory item as well as its core.
4/8/2026

Release 4.4

Common Resources

  • Added: the choose locations dialog now shows picked quantity at each of the document locations.
  • Added: (case 9483) the choose locations dialog, which is shared between all document screens, now allows for choosing a quantity on a range rather than a specific value. This is currently just used on SOs where the user can allocate between the sell quantity and the total quantity, to account for back orders.

Database

  • Fixed: a database error that could occur when transferring parts

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.

Reports

  • New Report: Internal Vehicle Bid
  • New Report: External Vehicle Bid
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.
Newer Older