Changelog

Enterprise Desktop
4/8/2026

Release 4.0

General Notices/Concerns:

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

Common Resources

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

Credit Approval

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

Crystal Reports Extension

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

Customer

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

Customer List

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

Data Management

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

Database

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

Deliveries

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

Ebay Extension

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

FIFO

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

Graphing

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

Home

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

Interchange

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

Inventory Overview

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

ITSQLFramework:

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

Locations

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

Location Management

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

Mas90Accounting

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

Master

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

Parts

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

Part Modification

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

Payment Entry

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

Purchase Orders

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

Report: Label

  • Updating report for location changes in 4.0

Report: Label Picking

  • Updating report for location changes in 4.0

Report: Label Receiving

  • Updating report for location changes in 4.0

Report: Tag

  • Updating report for location changes in 4.0

Report: Tag Picking

  • Updating report for location changes in 4.0

Report: Tag Receiving

  • Updating report for location changes in 4.0

Report: Sales Order 11in

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

Report: Work Order Internal

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

Report: Part Search Results

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

Report: Inventory Summary

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

Report: Inventory Count Sheet LXW

  • Updating report for location changed in 4.0

Sales Orders

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

Vehicles

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

Vendor List:

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

Warehouse Management

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

Work Orders

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

Version 3.4

Warehouse Management

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

Version 3.3

Parts

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

Version 3.2

Work Orders

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

Version 3.1

EBay

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

Version 3.0

Accounting

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

Common Resources

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

Options and Settings

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

Customer

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

Database

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

Deliveries

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

Ebay

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

Common Resources

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

Graphing

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

Home

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

ITMySQLConnection_d

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

Location Management

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

Master

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

Parts

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

Purchase Orders

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

Report Viewer

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

Sales Orders

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

Vehicles

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

Vendor

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

Work Orders

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

Accounting

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

Common Resources

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

Options and Settings

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

Customer

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

Database

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

Deliveries

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

Ebay

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

Common Resources

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

Graphing

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

Home

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

ITMySQLConnection_d

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

Location Management

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

Master

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

Parts

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

Purchase Orders

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

Report Viewer

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

Sales Orders

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

Search

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

Vehicles

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

Vendor

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

Work Orders

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

Parts

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

Report Viewer

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

Work Order

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

Parts

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

Sales Orders

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

Vehicles

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

Work Orders

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

Common

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

Sales Orders

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

Work Orders

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

All screens

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

Accounting

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

Customer

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

Crystal Reports

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

Common

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

Database

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

Graphing

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

Home

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

Inventory Overview

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

GL Accounting

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

Parts

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

Purchase Orders

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

Sales Orders

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

Vehicles

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

Location Management

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

Work Orders

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

SalesOrders:

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

GL Accounting

  • Fixed: an issue where payments on multiple invoices wouldn't perform their accounting correctly when the associated invoice was saved.
4/8/2026

Database

  • Fixed: the 'Both' setting for attachments now works correctly.
  • Added: a new permission at Sales Orders > 'Return expired/past-due items' to control sales returns after the expiration date.
  • Fixed: a round-off error when adjusting average core costs.
  • Added: a new permission at Configuration > 'Manage sell price classes' that controls users' permission to modify sell price classes.

GL Accounting

  • Fixed (case 7617): an issue where voiding an existing invoice could cause a crash during accounting in some circumstances.
  • Fixed (case 7622): a possible crash during accounting when a payment had its amount changed.
  • Fixed: (case 7617) an issue where voiding invoice with payments on them might crash.

Purchase Orders

  • Fixed: (case 7620) an issue that might ignore some return lines when returning 2 or more contiguous items off of the same PO.
4/8/2026

Enterprise

Appraisals

  • Added: Appraisal Data can now be hashed, which allows us to use a simple primitive to match up between appraisal results and current items.
  • Changed: Sales Appraisals no longer use FinancialNumbers because it was adding noticeable time to the calculation of mean and standard deviation.
  • Removed: unnecessary recalculation of some statistics if the previous value was 0. This was causing sales appraisals to recalculate mean a lot (0 was being considered 'bad data').
  • Changed: sales appraisals are now returned in one large batch, like the other appraisals, instead of one at a time. This improves speed for large appraisals (such as 400 items) by reducing SendMessage overhead, and it allows the destination screen to do preliminary calculations just once.
  • Added: for speed, the sales appraisals run for each item are kept in a map and reused if more than one item runs the same query.
  • Added: the appraisal system now calls several functions designed to allow the screen to 'pre-calculate' computation-expensive data just once before large operations.
  • Added: all current items' appraisal key hashes are computed once right before appraisals are applied to resulting items, which speeds up this process greatly.
  • Changed: for the sake of speed, several operations have been optimized or adjusted. Loading large appraisals (400 items) now takes only 12s instead of 60s.
  • Fixed: if the appraisal module gets duplicate items, they are ignored, instead of throwing database errors.
  • Fixed: an issue where using 32bit unsigned numbers for the appraisal item hash was causing overflow.
  • Added: appraisal data can now be hashed, which allows us to use a simple primitive to match up between appraisal results and current items.
  • Changed: sales appraisals no longer use lossless decimal numbers because it was adding noticeable time to the calculation of mean and standard deviation.
  • Removed: unnecessary recalculation of some statistics if the previous value was 0. This was causing sales appraisals to recalculate mean a lot (0 was being considered 'bad data').
  • Changed: sales appraisals are now returned in one large batch, like the other appraisals, instead of one at a time. This improves speed for large appraisals (such as 400 items) by reducing SendMessage overhead, and it allows the destination screen to do preliminary calculations just once.
  • Added: for speed, the sales appraisals run for each item are kept in a map and reused if more than one item runs the same query.
  • Added: appraisals are now tracked by a hash of their appraisal key fields. This is safer than using POSITIONs (which are just memory pointers), and it will work better for cases where the items in question have changed since the appraisal was begun, and it should allow matching against all items that match the appraisal key.
  • Changed: for the sake of speed, several operations have been optimized or adjusted. Loading large appraisals (400 items) now takes only 12s instead of 60s.

Common Resources

  • Changed: (case 6236) when serialized items are being sent to the special location (dock for POs, return bin for SOs, etc) the system will now use that location instead of the serial #'s current location when allocating locations on the document. This is important since, most of the time in these situations, the serial doesn't exist yet, or is being transferred, and its old location is not valid at the destination store.
  • Added: when choosing locations for serialized items, if no primary location was found, and the destination location is $PRIMARY (this can happen if the destination part doesn't exist yet) the default inventory location at the destination store will be used.
  • Added: a diagnostic where clause dialog for debugging.
  • Where clause output is now NULL instead of blank if the user did not specify elements that affect the clause.
  • Fixed: (case 6165) if a location 'suggestion' is specified, it will no overwrite the 'special location' (such as DOCK or Return Bin or whatever) when stock would normally go to that location. This should affect any documents that are creating inventory. This fixes an issue for found items on inventory adjustment documents not coming out of variance.
  • Added: Hinting of locations and serials to the tag print dialog.
  • Added: Automatically print tags that are hinted to a single item.
  • Fixed a bug where serials with blank locations weren't having that blank location being counted in the location list on the Print Tag Dialog.
  • Fixed: an issue with serial locations on POs.
  • Fixed: an issue where available quantity might not display correctly
  • Fixed: (case 6873) ITDocumentLineLocation now compensates for situations where the hold quantity is NULL (instead of treating it like it was 0). This is important because if hold quantity is NULL, the location has been deleted, so the hold was lost, and therefore we shouldn't add the document quantity back onto the hold.
  • Changed: (case 6376) the Cancel button on the thread dialog now runs the query "KILL QUERY x" instead of "KILL x". It turned out that the old "KILL" option would restart the entire connection, which took longer, and it also threw a CRSERVERWENT_AWAY error to ITrack, causing ITrack to automatically retry the query. This fixes an issue where hitting cancel on searches/etc wouldn't actually cancel them.
  • Fixed: A bug where blank locations would show up when printing tags when they really shouldn't.
  • Fixed: (breakdown/vehicle teardown remaing cost dialog) several possible roundoff issues and values that were not using the windows locale format for currency.
  • Added: the location choosing operation now makes a third pass across locations when choosing locations. Now, the second pass allocates available quantity and the third pass allocates quantity on hold. This adds support for case 6664.

Core Management

  • Fixed: (case 6587) the customer cores tab could take a minute or longer (depending on CPU speed) to load several thousand items. It now takes about 2 seconds to load 5k items.
  • Fixed a bug with printing tags.

Crystal Reports Extension

  • Fixed: we now ignore IDispatch error # 14597, which is just 'the user cancelled the print'.
  • Unregistered report variables now show up in the print log (if enabled).
  • Added: Print functionality for unregistered report inputs (things that didn't have a reportparameter entry).

Customer

  • Fixed: (Case: 6340) some erroneous and long-winded phrasing in the void payments confirmation dialog.
  • Fixed: (case 6240) an issue where the tax column was showing invoices' subtotal rather than tax amount.
  • Fixed: an issue where negative payments might be considered positive if the user's currency locale format used parentheses for negative currency.
  • Fixed: an issue where negative payments weren't saving correctly.
  • Changed: when the user modifies existing payments (such as amount or payment method) all existing payment gl entries are reversed and combined with the current entries. This has the effect of creating an 'adjustment' (if required) at that time.
  • Fixed: an issue where negative payments were not being saved correctly.
  • Added: (Case 7111) the user can now delete multiple attachments at once.
  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Fixed: possible roundoff error in the finance charge dialog.

Customer List

  • Added: (Case 6490) customer salesperson, default terms, and default payment method are now all columns in the output, as well as searchable fields.
  • Fixed: date searches in the customer list weren't working quite right. They also required that the user write dates in ISO format. Now, date searches work properly whether the user uses ISO or USA date formats.
  • Changed: the old export dialog has been removed. Now, the export button simply calls the new 'export all items to csv' function on the list control.
  • Fixed a bug where customers couldn't merge.
  • Added: (Case 6490) customer salesperson, default terms, and default payment method are now all columns in the output, as well as searchable fields.
  • Fixed: date searches in the customer list weren't working quite right. They also required that the user write dates in ISO format. Now, date searches work properly whether the user uses ISO or USA date formats.
  • Changed: the old export dialog has been removed. Now, the export button simply calls the new 'export all items to csv' function on the list control.
  • Fixed: Old queries causing errors when trying to merge customers.

Data Management

  • Fixed: (case: 5186) the import and test import buttons now remove the 'skipped' rows (header rows) from the 'total input rows' count. Also, they now report an 'unchanged rows' field which make the results more explicit.

Database

  • Removed: a view that is based on the old attachment tables, which have been removed.
  • Removing the CANENTERINVENTORYCOUNTMANUALLY permission (case 6188)
  • Changing fmoveinventorywithallocations to not call the overly-liberal fcorrectinventory_locations, at least for now. Related to case 6177
  • Adding pickedforlocation, pickedatlocationid, destinationlocationid, and scanjobid to the deliverylinehistory table, as per case 6073
  • Removed: the deprecated inventorymodelattachment table, which I don't think was ever used.
  • Removed: some quickbooks fields from the taxitem table that are not used. Some databases have these fields and some do not.
  • Added: an index to the inventory table to make the vendor catalog search module faster. Not everyone has this search module, but maybe they should.
  • Modified the index on inventorysourceallocation
  • Added: printtag field for serials, per Matthew's request as I was working on the current case. This will eventually work exactly like inventory tags will.
  • Changing the unique index on numbers to be the primary key
  • Added: inventoryserialhistory.sourcelocation and inventoryserialhistory.destinationlocation, which are used by POs and TOs to track the location that serials came from and the location that they'll go into when they are received. This allows us to reverse TO serialized activity correctly, as well as create accurate location allocations at the source and destination stores.
  • Added: the field documentlinelocation.transferlocation enum now has a new option, 'N/A', which is used for all documents other than TOs (source/destination are TO only).
  • Fixed: inventorysetting had a misspelled human-readable field.
  • Fixed: Serial# searches on the Search screen were not limiting by StoreID. See the note above.
  • Fixed: A misspelled table name in a rarely-used function.
  • Added: (case 6165) there is a new setting that controls the default user to load onto inventory adjustment documents.
  • Added: tag report to the database
  • Fixed: an issue where hold quantities were not getting set correctly for secondary locations.
  • Fixed: an issue where document locations didn't 'follow' when items were moved.
  • Fixed: (case 6238) an issue where dirty core lines might affect allocations of the item they are attached to.
  • Added: (case 6242) fcalculateaveragecost now checks the setting that controls whether a company wishes to think of inventory.averagecost on standard parts to be part of the part cost or not. This was already being checked in fvehiclecostallocated_ignore.
  • Added: (case 6331) when inventory records are created through fcreatecore_inventory, the createdbyuserid is now set correctly.
  • Fixed: (case 4546) an issue where changing the status of a whole unit with a teardown might cause collection items to become available in some cases. This mainly applies to receiving a whole unit as a WO master part or on a PO that already has sold components.
  • Fixed: some users partnumber and partnumberstripped entries in the inventorysetting table didn't match on 'global' and 'logchanges'. We added a query to make them the same.
  • Added: as suggested by Chad@VHI, fadjustinventory now sets status to D instead of S if the part is being manually adjusted to 0.
  • Updated all vehicle inventory records to be non-serialized. This is to make sure they are compatible with the new tag report.
  • Added: xref.partnumberstripped, since this will let us more easily join against other tables.
  • Added: several triggers to xref to keep the stripped part # up to date.
  • Added: indices to xref to keep lookups fast.
  • Added: a new search module that uses the xref table. It will work if the user puts in 'vendorcode partnumber' or 'partnumber'.
  • Changed: (case 6664) renamed the setting "Always Automatically Choose Locations" to "Attempt automatic location choosing when loading and saving documents". The description has also been updated to be more accurate.
  • Added: new setting (case 6664) called "Allow over-allocation of quantity at a location that is already on hold" that allows document screens to allocate quantity that is already on hold on other documents.
  • Added: freplicateinventory now creates inventory at the correct primary location based on the destination store.
  • Added: (case 7300) the new permission 'VEHICLESCANEDITGLCATEGORY'.
  • Fixed: (case 7305) some yards had a duplicate 'Sales Tax' taxitem. The unused one is now being deleted, and a unique key is being added to the tax item table.

Global Settings

  • Added: the configure->locations dialog now has a column for the 'allow inventory' check.

Home

  • Fixed: the PO # column on the sales order list now sorts more intelligently when PO #'s are both numbers and strings.

Inventory Overview

  • Fixed: context menu in the list now works properly with the default list context menu.
  • Fixed: possible roundoff and negative value issues.

Location Management

  • Added: (case 6357) print button. This button (similar to the print on inventory overview) exports a temporary HTML file and prints it with the user's default HTML printer.
  • Changed: the export button no longer attempts to print the csv.
  • Added: if the user hits print or export when no items are selected, the entire top list will be exported.
  • Added: there is a location column that shows in the job list for counts and moves. It is now populated with locations from the job detail for these job types.
  • Added: the tag # column is bolded, and several columns now resize to fit their data.
  • Added: the average cost column now uses commas to separate thousands.
  • Fixed: an issue where column tooltips in the list were sometimes displaying over the wrong columns.
  • Added: there is now a store dropdown filter on the inventory adjustment tab that filters based on the store of the inventory that was lost or found.
  • Added: the manual count page now uses a normal auto-complete dropdown for location.
  • Fixed: an issue where items in the list did not correctly find their location, which kept the system from allowing the user to do a manual count.
  • Changed: the list is now readonly instead of locked down, so that it can be scrolled even while 'greyed out'.
  • Added: by user request, the store dropdown on the inventory adjustment tab has been made-readonly. Later, this will probably be permission controlled.
  • Fixed: an issue where the footer on the inventory adjustment list would be invisible initially.
  • Removed: the 'send' check column has been removed. Now, the user simply selects the items they wish to send to an adjustment document.
  • Fixed a bug where logging into a different store after the scanner ID was established at a first would cause a query error.
  • Fixed: an error when loading pick lists.
  • Fixed: Manual Count prints off Tag By Location, because the Tag report parameters are very different from what this report can accept.

Login

  • Fixed: (case: 6806) Reverting a change made awhile ago that made the dropdown sortable. This conflicts with the fact that users like their stores sorted by id, not by string.

Parts

  • Fixed: The location column in the serial list is now wider and further to the left to make it easier to interact with.
  • Fixes: Vendor pricing dialog when creating inventory from catalog now finds existing inventory that matches the catalog records.
  • Fixed: an issue where the user might get a 'the location does not exist' error when saving a serialized part, even if the location did exist.
  • Added: the screen now uses lossless decimal numbers to avoid roundoff errors.
  • Fixed: an issue where the system might believe the primary location was virtual, even when it wasn't. The parts screen will now attempt to validate locations more aggressively if virtual locations are turned off, preventing these kinds of errors in the future.
  • Fixed: possible computation error when allocating cost to component items on assembly breakdown.
  • Fixed: an issue where cloning parts didn't clear the hold quantity of the part.
  • Fixed: (case 6950) an issue where the hold quantity field was being saved incorrectly, resulting in database errors or incorrect hold quantities for the primary location of replenishable parts.
  • Fixed: an issue where parts that exist at only one store could not be replicated.
  • Fixed: an issue where cloning parts didn't clear the hold quantity of the part.
  • Fixed: (case 6950) an issue where the hold quantity field was being saved incorrectly, resulting in database errors or incorrect hold quantities for the primary location of replenishable parts.
  • Added: (Case 7111) the user can now delete multiple attachments at once.
  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Fixed: some user input strings weren't getting formatted in locale currency format.
  • Fixed: several more possible roundoff errors.
  • Added: (case 4429) when the user hits the copy part button, the system now resets the location to the default location and deletes all secondary locations. This can be disabled with the new setting "Parts"->"Clear locations when copying a part".
  • Fixed: a query error on the links page related to loading collections.
  • Fixed: an issue where the replicate button wouldn't work on any part that existed at only 1 store.
  • Added: (case 4429) when copying a part, if the part is attached to a vehicle, and "Parts"->"Clear locations when copying a part" is set to "True", the vehicle is re-loaded, which will ensure that a copied part will start with the location of its vehicle rather than the location of the original part.
  • Added: (case 4429) when replicating a part, all new parts created in other stores will inherit a primary location equal to the default part location at that store. The locationid should also be set correctly.
  • Fixed: when replicating parts, averagecorecost should now be set to 0.
  • Changed: for performance reasons, replication is now done as a large set of semi-colon separated statements rather than individual queries. This avoids race conditions, and increases the speed of replication because of fewer roundtrips to the server.
  • Fixed: (case 6505) an issue where a new serialized part would show the incorrect primary location if the first serial added had a location that differed from the current primary location.
  • Added: (case 6461) the user can edit the primary location of a part on the first tab if there are fewer than 2 available serial #'s at the current store. This allows the user to manage location from the first tab on single quantity serialized parts.
  • Fixed: an issue where new parts would only show one option in the location dropdown until the user typed in them.
  • Fixed: (case 4528) an issue where the user might be able to save a part at locations that do not 'allow inventory' by manually typing the location name in.
  • Fixed: (case 7212) a rare issue where a serialized item could have a duplicate location after save because the primary location would not get updated if the previous primary location was deleted because of a sold serial number.
  • Fixed: if the user doubleclicks or hits enter on an item on search when doing a location specific search, the items now properly open on the parts screen.
  • Fixed (case 7309): an issue where inventory items were saving their 'date modified' as local time instead of server time. This introduced a possible bug where documents might appear as though they haven't been modified if users in different timezones modify the same item.
  • Fixed: (case 7309) an issue where part race condition detection wasn't being fired if the date modified moved backwards in time. Now, if date modified changes at all, the item won't save.
  • Fixed: (case 7323) an issue where the location dropdown was causing the inventory record to get the wrong locationid saved in the database in a very rare case.
  • Changed: (case 7391) the copy part button is no longer greyed out for new parts.
  • Added: (case 7391) copying a part now prompts the user to save if the part is new or otherwise modified.
  • Added: (case 7391) there is now only one save button, and it has a dropdown (similar to the save button on the sales orders screen) that allows the user to choose whether they want the save to also clear the screen or close the screen (or both/neither). This allows easily saving without closing the screen.

Part Configuration

  • Added: (case 6392) the user can now set whether inventory Q&A options are public or not. This is important because options can be marked as private so that they don't show on the Internet or get emailed.
  • Fixed: possible roundoff errors on quantity numbers on the configure templates area, and on financial numbers on the manufacturer page.
  • Fixed (case 6861) an issue where new messages created for part types were getting an invalid store that was throwing off later queries.

Payment Entry

  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Fixed: several more possible roundoff errors.

Purchase Orders

  • Fixed: when serialized items are added to a transfer order, locations are no longer automatically chosen. This fixes an issue where transfering more than 2 serials between stores would complain that locations needed to be chosen at the source.
  • Case 6564: Vendor pricing is now chosen by matching part # if other data is identical.
  • Fixed: a crash on load.
  • Fixed: an issue where serials would not be created at the right location.
  • Fixed: an issue where the location allocations for serialized parts wouldn't be correct.
  • Added: implemented lossless decimal numbers to avoid roundoff errors.
  • Added: financial numbers now display in the user's windows locale format.
  • Fixed: an issue where the cost column might change to "" if the user typed a value with a $ in it.
  • Fixed: a crash issue on POs and TOs when closing the edit item dialog.
  • Fixed: several areas that were not correctly using user locale settings for currency.
  • Fixed: an issue where the cost on items going through order routing might not be computed correctly.
  • Fixed: an issue where transfer orders were not using the correct setting for the Receiving location (They were using a setting for Return location).
  • Fixed: an issue where, if the user manually chose the locations to receive a PO on the second half of partial receipt, the system would think the user was under-allocating locations.
  • Added: (case 6828) now, if there are pre-existing postings for a part, the first location allocation will be used automatically for any subsequent receipts. This means that if you do a partial receipt against a location you chose manually, the next posting will automatically go to the same place.
  • Added: (case 6388) the PO return dialog now has date pickers at the top that let the user narrow down a range to find original PO documents on. They default to showing the last 90 days.
  • Fixed: an issue where the return dialog was drawing the wrong plus/minus icon sizes, causing the icons to look strange and pixelated.
  • Added: support for the new right click options to export all list controls along with existing right click options to both POs and TOs.
  • Fixed: a possible crash when the user hits receive all.
  • Fixed: the return dialog's context menu now works with the new global list control context menu options.
  • Fixed: (case 6857) an issue where the PO return dialog could cause crashing when the user hit expand all items in the context menu.
  • Fixed: an issue where, after mass-expanding the tree some items' checkboxes weren't being drawn right.
  • Fixed: an issue where adjustments would not treat negative values correctly.
  • Fixed: an issue where, if the user manually chose the locations to receive a PO on the second half of partial receipt, the system would think the user was under-allocating locations.
  • Added: (case 6828) now, if there are pre-existing postings for a part, the first location allocation will be used automatically for any subsequent receipts. This means that if you do a partial receipt against a location you chose manually, the next posting will automatically go to the same place.
  • Added: (case 6388) the PO return dialog now has date pickers at the top that let the user narrow down a range to find original PO documents on. They default to showing the last 90 days.
  • Fixed: an issue where the return dialog was drawing the wrong plus/minus icon sizes, causing the icons to look strange and pixelated.
  • Added: support for the new right click options to export all list controls along with existing right click options to both POs and TOs.
  • Fixed: the return dialog's context menu now works with the new global list control context menu options.
  • Fixed: (case 6857) an issue where the PO return dialog could cause crashing when the user hit expand all items in the context menu.
  • Fixed: an issue where, after mass-expanding the tree some items' checkboxes weren't being drawn right.
  • Fixed: an issue where the adjustments page wasn't treating negative values correctly for some windows locale formats.
  • Added: (case 6664) support for the new setting "Allow over-allocation of quantity at a location that is already on hold" which allows document screens to allocate quantity that is already on hold on other documents.
  • Fixed: (case 7281) an issue where returning more than one item on a return PO might cause crashing.
  • Fixed (case 7309): an issue where POs, and TOs were saving their 'date modified' as local time instead of server time. This introduced a possible bug where documents might appear as though they haven't been modified if users in different timezones modify the same item.
  • Fixed: (case 7309) an issue where document race condition detection wasn't being fired if the date modified moved backwards in time. Now, if date modified changes at all, the item won't save.

Sales Orders

  • Fixed: serialized items will no longer complain about overallocated locations, since serials already track their holds, and this warning is a bit erroneous for serials.
  • Removed: the automatic location recalculation (the thing that allocates locations when you load a SO based on a setting) no longer runs for serialized items, as they choose their locations differently.
  • Added: (case 6236) if a return invoice is being finalized, any serials being returned will attempt to inherit a new location based on the current location allocations. This will cause the serial to be received into whatever the default return location is, like all other returned parts. This is especially important for when serials are returned into a store other than the one they were sold out of.
  • Fixed: an issue where creating a new serial on a return for a serialized item didn't work quite right for locations, etc.
  • Fixed: (case 6236) when serials are being received for returned items, their store id and location are now updated to reflect the store and location they were really received into. This fixes an issue where they retained their old store id and location, which can be incorrect if the item was returned to a different store than where it was sold from.
  • Fixed: an issue where, if the user opened the edit item dialog for a serialized item when returning to a different store than the item was sold from, the serial would always show up as New even though it was an Existing serial.
  • Fixed: an issue where, if the user unchecked the 'cost override' checkbox only, the change would be ignored.
  • Fixed: an issue where, if the user unchecked cost override, the cost would not be recalculated when they closed the edit item dialog.
  • Fixed: cost for some return items would be incorrect on the initial load, but then would get corrected when the user refreshed the document.
  • Added: (case 6165) 'found items' sent from the inventory adjustment screen are now properly marked as annonymous returns. This will cause their cost to be $0, mark them as returns in the database, and affect behavior of location allocation and quantity warnings.
  • Removed: return items on SOs should no longer show warnings about overallocating inventory at a location.
  • Fixed: an issue where return items wouldn't calculate hold quantities at locations correctly.
  • Added: the store dropdown is no longer editable when the current document is an inventory adjustment document.
  • Fixed: an issue where the store dropdown wouldn't work correctly if there were one or more stores whose code didn't match their store #.
  • Fixed: (case 6652) an issue where resaving a SO with a serialized item on it might cause the location column to be shown as empty.
  • Fixed: an issue where closed or voided SOs would sometimes recalculate location allocations.
  • Removed: the refresh process (run from the refresh button or on every save) was recalculating all location allocations. This has been removed if the items are fully allocated since this process requires running queries for each item. This should make saving large SOs much faster.
  • Added: if the user moves a serial # between locations, if that serial is on any SOs, those SOs will now update their locations to reflect this change.
  • Fixed: an issue where the location over-allocation warnings wouldn't show if the user saved and reloaded a SO.
  • Added: implemented lossless decimal numbers to avoid roundoff errors.
  • Added: financial numbers now display in the user's windows locale format.
  • Fixed: an issue where hitting space in an edit in a list control could be interpreted as checking the checkbox in the row.
  • Fixed: some of the currency fields on the screen weren't using the user's windows locale format.
  • Part of refactoring duplicate functions in the database. Case 6646.
  • Fixed: an issue where the cost column might change to "" if the user typed a value with a $ in it.
  • Fixed: a possible crash issue
  • Fixed: an issue where serialized parts might not allocate against their location correctly. This would cause the location column to be empty and any picking reports to show no locations.
  • Fixed: (case 6559) an issue where the user might not be able to change the quantity on a dirty core exchange line until they save and reopen the screen.
  • Fixed: a possible computation error.
  • Fixed: an issue where return invoices were not showing balance correctly after a payment was added.
  • Fixed: an issue where if the user typed negative numbers or money values using parenthesis format (such as "($100.00)") the system would interpret that as a positive number.
  • Added: (case 6479) support for exporting from any list control (this can be accessed from the right click menu).
  • Fixed: (case 6416) if the user is voiding a SO, the screen will no longer prompt them to perform a suggested order if there is insufficient quantity.
  • Fixed: reworded several error messages and warnings to be shorter and more concise.
  • Fixed: an issue where the location quantity warning wouldn't show up if the location was deleted from the part.
  • Fixed: an issue where return invoices were not showing balance correctly after a payment was added.
  • Fixed: an issue where if the user typed negative numbers or money values using parenthesis format (such as "($100.00)") the system would interpret that as a positive number.
  • Added: (case 6479) support for exporting from any list control (this can be accessed from the right click menu).
  • Fixed: (case 6416) if the user is voiding a SO, the screen will no longer prompt them to perform a suggested order if there is insufficient quantity.
  • Fixed: reworded several error messages and warnings to be shorter and more concise.
  • Added: when SOs perform accounting, they now just call PerformCompleteSalesOrderAccounting, instead of manually accounting the invoice, payments, and WOs. This will allow for more consistent SO accounting.
  • Added: when voiding a SO, the normal accounting function is called, which can now correctly deal with voided documents.
  • Changed: when voiding a SO, the 'void SO dialog' that pops up no longer allows the user to uncheck the 'void adjustments' check box. This is because adjustments are accounted with the SO, so it doesn't make sense to not void them.
  • Fixed: several more possible roundoff errors, as well as a couple places where negative numbers might not parse correctly if the user's locale used parentheses for negative values.
  • Added: (case 6664) support for the new setting "Allow over-allocation of quantity at a location that is already on hold" which allows document screens to allocate quantity that is already on hold on other documents.
  • Fixed (case 7309): an issue where SOs, were saving their 'date modified' as local time instead of server time. This introduced a possible bug where documents might appear as though they haven't been modified if users in different timezones modify the same item.
  • Fixed: (case 7309) an issue where document race condition detection wasn't being fired if the date modified moved backwards in time. Now, if date modified changes at all, the item won't save.
  • Fixed: (case 7447) a minor issue where gl accounting wouldn't be posted until save if the user reopened an invoice. Now, reversing entries are posted immediately when the document is reopened. This will better match the fact that inventory values are modified immediately as well.
  • Added: (case 6378) all part and vehicle info pane searches that can return a lot of results now have a LIMIT on their results to ensure quick execution. The limit is stored as a user preference, and defaults to 200 results. This fixes issues where very common items might take a long time to open some info panes.
  • Fixed a bug where wildcard serial searches could lead to duplicate rows in search results.
  • Fixed: (case 4420) a possible search error if the user did a smart search with a single quote in it.
  • Fixed: context (right click) menu now works properly with the default list context menu.
  • Changed: the order of the options in the right click menu in the part and vehicle search result lists to match and be logically grouped.
  • Fixed: (case 6745) an issue where doubleclicking a vehicle vs hitting the enter key would perform different operations, leading to different behavior.
  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Fixed: a query error when viewing images in the pop-up image dialog.
  • Fixed: (case 7203) an issue where clicking the bottom pixel in a multiline list control might crash if the bottom line had a checkbox and the height of the item didn't divide evenly.

Vehicles

  • Fixed a bug with the printing of vehicle tags.
  • Fixed a bug where trying to print during bid/teardown appraising would cause a crash.
  • Fixed: (case 6260) a pair of queries related to loading teardowns that were slower than necessary.
  • Added: various optimizations to increase vehicle loading speeds.
  • Changed: loading a large number of items onto a bid or template took a really long time, partly because each one required a message be sent up to the view to fill out basic data. Now, this process is only done once.
  • Fixed: several remaining possible crashes related to in-progress appraisal threads returning.
  • Added: much of the appraisal information and manufacturer/model lists are now cached for faster item loading.
  • Fixed: an issue where currency numbers might show invalid values if they were larger than a specific threshhold (this had to do with multiplication against high precision quantities).
  • Fixed: (case 6260) a pair of queries related to loading teardowns that were slower than necessary.
  • Changed: loading 400 items onto a bid or template took a really long time, partly because each one required a message be sent up to the view to fill out basic data. Now, this data is cached just once.
  • Added: (Case 7111) the user can now delete multiple attachments at once.
  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Added: several more fields now use lossless decimals for avoiding roundoff errors and formatting currency to the user.
  • Fixed: (case 7165) an issue where using the add new item button on a teardown was creating items that, on save, would not save correctly.
  • Added: (case 4888) there is now a taxable checkbox on the whole units tab. This allows the user to control whether a whole unit will show as taxable on a SO if it is sold whole.
  • Added: there is now an 'advanced unit editing' button on the whole units tab. The user must have the 'advanced whole unit editing' permission to hit it. This button will open the whole unit on the parts screen for advanced management.
  • Added: (case 7300) there is now a new permission 'VEHICLESCANEDITGLCATEGORY', which controls whether the user can edit the gl category and the inventory gl category of vehicles on the basic tab.

Vendor

  • Added: (Case 7111) the user can now delete multiple attachments at once.

VendorList

  • Fixed: date searches in the vendor list weren't working quite right. They also required that the user write dates in ISO format. Now, date searches work properly whether the user uses ISO or USA date formats.
  • Added: the user can now export results by right clicking on the list.

Work Orders

  • Added: implemented lossless decimal numbers to avoid roundoff errors.
  • Added: financial numbers now display in the user's windows locale format.
  • Part of refactoring duplicate functions in the database. Case 6646.
  • Fixed: (case 6761) a crash related to adding serialized parts.
  • Fixed: the total at the bottom had a bad number in it.
  • Fixed: (case 6761) a crash related to adding serialized parts.
  • Fixed: the total at the bottom had a bad number in it.
  • Fixed: a possible computation error when splitting WO cost across master parts or when calculating billing hours.
  • Added: support for the new right click options to export all items in each list control, along with existing right click behavior.
  • Fixed: (case 6934) an issue where voiding a WO that had master parts with a quantity > 1 wouldn't reverse average cost changes correctly.
  • Fixed: an issue where voiding WOs that had master parts that had their average core cost changed wouldn't reverse their average core cost changes.
  • Fixed: new work order master parts will now show values in the user's locale currency format correctly.
  • Fixed: a query error in the address dialog.
  • Fixed: various issues where the numeric edits in the edit job dialog would either appear to ignore the user's input or show trash numbers (even though the correct numbers were being stored).
  • Added: support for the new right click options to export all items in each list control, along with existing right click behavior.
  • Fixed: (case 6934) an issue where voiding a WO that had master parts with a quantity > 1 wouldn't reverse average cost changes correctly.
  • Fixed: an issue where voiding WOs that had master parts that had their average core cost changed wouldn't reverse their average core cost changes.
  • Fixed: new work order master parts will now show values in the user's locale currency format correctly.
  • Fixed: a query error in the address dialog.
  • Fixed: various issues where the numeric edits in the edit job dialog would either appear to ignore the user's input or show trash numbers (even though the correct numbers were being stored).
  • Fixed: a database error that could happen if the database was in strict mode when the user saved or updated a job template.
  • Fixed: an issue where WOs with multiple jobs might not refresh the job totals correctly when the refresh operation was run right before save (or when the user hit the refresh button).
  • Fixed: (case 6955) an issue where loading a job template onto the WO would show new costs, but old prices (the prices saved with the items) until the next time the refresh operation was run (normally on save).
  • Fixed: an issue where the total column was showing values not in currency format.
  • Fixed: an issue where dirty core lines were grabbing their cost from the parent item instead of the inherent core.
  • Fixed: all hard-coded initial currency values of "$0.00" have now been switched to a locale specific 0.
  • Added: several more fields now use lossless decimals for avoiding roundoff errors and formatting currency to the user.
  • Fixed: an issue where items newly added to a WO would show the 'insufficient locations chosen' attention icon even when enough locations were chosen.
  • Added: (case 6664) support for the new setting "Allow over-allocation of quantity at a location that is already on hold" which allows document screens to allocate quantity that is already on hold on other documents.
  • Added: (case 6354) work orders now automatically allocate locations for all parts on the WO on load and on refresh/save if the setting "Locations"->"Attempt automatic location choosing when loading and saving documents" is turned on (it defaults to on). This makes the WO screen similar to the SO screen, which already contained this functionality.
  • Fixed: (case 7309) an issue where document race condition detection wasn't being fired if the date modified moved backwards in time. Now, if date modified changes at all, the item won't save.

GL Accounting

General

  • Fixed a couple of interrelated bugs that could cause accounting to be done incorrectly.
  • Added: implemented lossless decimal numbers to avoid roundoff errors.
  • Added: a general function for getting all the previous activity for one or more documents, and reversing it. This is a very common operation when trying to calculate the difference between current accounting and what accounting should be.
  • Added: a new accounting procedure for perofming sales order accouting similar to the existing method, except that it automatically performs accounting for all payments and WOs attached to that invoice.
  • Added: when performing invoice accounting, we now load all previous activity for that SO up and reverse it, that way, if previous operations created partial, incomplete, or incorrect accounting, saving again will correct the issue.
  • Added: calling PerformSalesOrderAccounting is now safe if the SO is open or voided, it won't double activity as though the document were closed.
  • Added: work order accounting now has more specific comments in the gl transaction.
  • Added: final WO accounting now loads and reverses all previous WO activity. That way, if previous operations created partial, incomplete, or incorrect accounting, saving again will correct the issue.
  • Fixed: payment accounting no longer relies on the payments that were passed in have accurate 'previous payment method' or 'previous amount'.
  • Added: payment accounting now loads and reverses all previous payment activity. That way, if previous operations created partial, incomplete, or incorrect accounting, saving again will correct the issue. This includes situations where a payment's payment method or amount changed.
  • Changed: for now, all payments gl activity will be created without a department. The reason for this is that payments are global, and department of a payment should probably be based on the invoice the payment is applied to, not the user that saved the payment.
  • Changed: payment accounting now uses the gl account id saved with the payment, instead of the gl account id in the payment method. This has the effect of not modifying gl accounting for old invoices if a payment method's gl account changes.
  • Fixed: if a SO that does not affect inventory is passed into the accounting module, no new gl entries should be created.
  • Fixed: an issue where WOs that were on open SOs were thinking their SOs were closed, and were therefore going ahead with their accounting.
  • Fixed: possible roundoff when computing tax gl entries.
  • Fixed: (case 7447) an issue where, when reversing the previous activity performed by a document that affected multiple stores, the entries that hit other stores' accounts were not being reversed. This could lead to imbalanced transactions and partially reversed transactions.
  • Fixed: (case 7447) an issue where, if an imbalanced transaction was detected, the popup message showed trash data instead of the correctly formatted currency values. Also, the parentheses around the numbers have been removed to avoid any confusion related to users whose locale settings show negative currency with parentheses.

Accounting

  • Changed: when the user rebuilds SO accounting, all SOs are rebuilt, even voided, open, and quote SOs. This is because theses are now accounted correctly by the gl entry creation script.
  • Removed: for now, the 'back date' gl entries feature is disabled, all correcting gl entries are created on the current date/time. This aims to fix an issue where subdocuments (such as WOs on a SO) weren't getting back dated to the parent document correctly.
  • Added: there is now a checkbox for 'delete old entries' and it is unchecked by default. Before, previous entries were always deleted before new ones were created.
  • Fixed: some message boxes to be accurate with the previous changes.
  • Added: when SOs are accounted, they are done so in a way that all sub-documents (such as payments and WOs) are accounted as well.

Sales Orders

  • Added: when SOs perform accounting, they now just call PerformCompleteSalesOrderAccounting, instead of manually accounting the invoice, payments, and WOs. This will allow for more consistent SO accounting.
  • Added: when voiding a SO, the normal accounting function is called, which can now correctly deal with voided documents.

Reports

Label

  • Replaced query to work better with serialized inventory.
  • Location field taller. OEM field now optionally prints Int #.
  • Added compatibility with new printing dialog.

Tag

  • Replaces query to work better with serialized inventory.
  • Added website address at the top.
  • Added compatibility with new printing dialog

Core Tag

  • Barcode reformatted to be scanner friendly.

Core Tag Large

  • Barcode reformatted to be scanner friendly.

Label Picking

  • Added for scanning.

Label Receiving

  • Added for scanning.

Tag Picking

  • Added for scanning.

Tag Receiving

  • Added for scanning.

Tag Landscape

  • Removed due to non-use.

Tag Serialized

  • Replaced with Tag, which now handles serials.

Tag by Location

  • Removed, printing tags for a location can now be done from the search screen.

Label by Location

  • Removed, printing labels for a locations can now be done from the search screen.

Tag Serialized General

  • Removed, replaced with Tag.
Newer Older