ITrack/Enterprise/Changelog Version 1.0

From ISoft Wiki
Jump to navigationJump to search

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 CR_SERVER_WENT_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 CAN_ENTER_INVENTORY_COUNT_MANUALLY permission (case 6188)
  • Changing f_move_inventory_with_allocations to not call the overly-liberal f_correct_inventory_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) f_calculate_average_cost 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 f_vehicle_cost_allocated_ignore.
  • Added: (case 6331) when inventory records are created through f_create_core_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, f_adjust_inventory 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: f_replicate_inventory now creates inventory at the correct primary location based on the destination store.
  • Added: (case 7300) the new permission 'VEHICLES_CAN_EDIT_GL_CATEGORY'.
  • 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.

Search

  • 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 'VEHICLES_CAN_EDIT_GL_CATEGORY', 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.