ITrack/Enterprise/Changelog 2010-04

From ISoft Wiki
Jump to: navigation, search



  • Fixed: issue where doing a smart search with no other criterion (including status) might throw a database error.


Common Resources

  • Fixed: when the user hits the cancel button the thread dialog, they should no longer see the "Server shutdown in progress" error.


  • Added: when code runs a select query with ignore errors on, no error report is thrown, but the last error member is updated to reflect the issue.


Database Updates

  • Removed: the following tables because they seemed to be unused and unnecessary: costtype, jobassignment, jobassignmentvalue, categories_quickbooks, qbglaccount, quickbooksdata, quickbookslog, vehiclecost.
  • Fixed: the function that calculates the number of items on a PO that are returnable still has been fixed to pay attention to quantity received on the original order instead of quantity ordered.
  • Added: a function to find a valid core inventory record for a specified inventory item.
  • Added: a function to create a new core inventory record for a specified inventory item.
  • Added: several indexes that should speed up PO reports.



  • Removed: unnecessary/unused resources to save space.
  • Fixed: a lot of code would use the store the user was currently logged into when deciding where to inventory parts, etc. This is wrong. The user's store should be used to default what invoices/parts to search for, but items are returned into the store that the return invoice received the dirty core return into. Currently, the user can only receive dirty cores back into the store they were sold from. An upcoming change should change this.
  • Changed: when you reject a dirty core, only the SKU is blanked out now, leaving the store alone.
  • Fixed: if the user does a part lookup, if the search returns no results, the lookup field is blanked out so that the user knows that the value was not accepted.
  • Added: the screen now uses two new database logic functions. One is a stored procedure to find a valid core inventory record at the destination store if the current part has no saved core record. This allows the system to automatically find/use core records to put inventory into based on company-specific logic. By default, it looks for a item matching based on purchase vendor and core class. The other function creates a new core record. This was done by the CM screen before, and now a company can customize what they wish to happen automatically to new core items created this way. This could include description/tag # formatting, etc.
  • Fixed: The process of inventorying dirty cores has been simplified. Before, the user needed to hit the inventory button twice (the first time created a blank core record, attached it to the original item, and opened it for editing on parts; the second time would actually inventory the dirty core). Now, the inventory button only has to be hit once. The 2 new functions mentioned above are used to automate the search for existing core records and the creation of new core records in a standard way.
  • Fixed: issue where creating a new part to inventory a core into would create the part, but then not open it on the parts screen correctly.
  • Fixed: if the user created a new core record, the parts screen got opened, but the new part wasn't loaded right.
  • Fixed: an error that would sometimes occur when typing in a tag # to do a lookup on.

The following all apply to the returned cores page, and most pertain to bug 518

  • Removed: old "Document #" column on the list, as it was confusing which document it referred to.
  • Added: "Doc # (original)" and "Doc # (return)" that have the document line of the original sale (or WO) and the document the items were returned on. Doubleclicking on these values open those documents. I also changed the format of the doc # display so that the user can tell which lines are WOs and which are SOs, and are formatted "<doc type> <storeid>-<doc num> #<line num>".
  • Added: tooltips to the columns in the list to make their purpose more clear.
  • Changed: the store # column now displays the store that the dirty core return is being inventoried into, rather than the store of the document. These can be different now. This column represents the store that the salesperson chose to inventory the item into on the return invoice (and it is the store that the core will be inventoried into).
  • Fixed: if a dirty core is returned into the inventory of a store other than the original sale store, that setting is respected when the user accepts the core.
  • Changed: the code and database functions that: 1. finds a compatible core record and 2. creates a core inventory record, take both original store and return store into account.


  • Fixed: issue where, if the user hit "select all" on the customer payment methods, the customer would get saved with an invalid payment method.


  • Fixed: the way that CSV parser works has been completely rewritten. This was because it was incompatible with some valid features of a CSV input file, such as line breaks within a cell. This now works.


  • Fixed: issue where the screen would sometimes detect a change on an empty part after saving/clearing.
  • Fixed: issue where attachments would not save correctly.
  • Fixed: the GetFiles function that opened the open file dialog now properly trims the '\' from the left of the filename.
  • Added: if the user changes the vehicle association on an old part, and that part is on any historical orders, the user will be warned that the system is going to associate all those POs/WOs/TOs/SOs with the new vehicle, to avoid cost discrepancies. When the user saves, those historical orders are associated with the new vehicle.
  • Fixed: error where attempting to load a vehicle onto an existing part from search would cause the parts screen to clear.


  • Fixed: the screen now exclusively uses quantity received instead of quantity ordered when considering how many of an item can be returned (you can't return more than you received). * Fixed: as per above, the return dialog now displays quantity received instead of quantity ordered.
  • Fixed: if the user did a merchandise return on an item that had an inherent core charge, the core charge was added as a seperate, independent line on the return PO. However, the user couldn't modify the quantity of the return line.


  • Fixed: the void dialog now no longer insinuates that gl activity will be deleted (instead it says 'undo').
  • Fixed: voiding an invoice with adjustments now correctly reverses adjustment accounting.
  • Fixed: reopening a closed invoice with adjustments now correctly reverses adjustment accounting.
  • Fixed: a rare display issue caused by the payments list when a company has no sales order document types.
  • Added: the store column is now a dropdown for items that are being returned. Changing the value in this dropdown changes what store the item will be returned into.
  • Added: the stores a user can return into is restricted to their current store (always an option) and any location they have the "Sales Orders"->"Can perform returns" permission for.
  • Added: the return dialog now shows the store # for documents and the inventory store that items came out of.
  • Added: return dialog now displays (and sorts by) user locale dates.
  • Added: the return dialog now has tooltips that explain the function of the various columns in the dialog's list.
  • Added: returns now default as going back into the current document store. They used to default to going back into the original inventory store. This means that if store 1 sells an item from store 2, and the customer brings the item back, by default (if the user doesn't change it on the invoice) the item will be returned back into store 1's inventory.
  • Fixed: several issues where item attention icons would not properly display on new, return items.
  • Fixed: an issue where new return items would not highlight the correct field and would not display manufacturer/model info on misc items.
  • Added: if the user picks to return an item to a location other than where it was sold from, the system will replicate the inventory record to the new location in the background (similar to the clone part functionality on the parts screen).
  • Added: return items do not reclaculate their gl store #. This means it will remain the same as the original sale line, which will cause the AR, Sales, and COGS accounts on a return to hit the same place the original sale hit.
  • Added: the optional database API function f_item_transferred is now called when the user performs a return where the destination store is different than the original sale store.
  • Fixed: issue where inherent core charges didn't remember what store they came from (necessary for replicating inventory if items get transferred between stores).


  • Added: a new part search module that counts open quotes associated with each record in the search results. If the user desires, this can be disabled with a switch in the ini configuration file under the performance section. Tests showed this module to be quite quick.
  • Added: a new icon (similar to the pro quotes icon of "!") to the attention column that shows up (with a count) when the above search extension is turned on and the item has open quotes.
  • Added: all attention icons now have information when you hover over the attention column.
  • Added: all attention icons now perform the most reasonable task when you double-click on them. Usually, they take the user to an area with detailed information.
  • Added: the search button now includes store information when sending the URL.
  • Changed: the Search Summary info pane type for vehicle searches now no longer looks at the deprecated vehiclecost table. Instead, it cals f_vehicle_cost instead.
  • Added: a special case for when the user searches by "Default purchase vendor". This was identified as a special case where some searches were slower than they needed to be. This special case now does a lookup in the background for the vendor # corresponding to the vendor code typed in. If this is unique, it will be used in the lookup instead of the code. This can make such searches much quicker.


  • Fixed: issue where the enter parts button wasn't working right.



  • Fixed: as per bug 1250, the customer screen no longer selects a default tax item for new customers. This is so that such new customers will select the empty tax item, and be assigned the default when they are assigned to a sales order. For single-store yards, this shouldn't have any effect. For multi-store yards, this will have the effect of new customers automatically being charged local tax when added to an invoice at a particular store. Customers can still have a tax item assigned to them, for example, when they are tax exempt.
  • Fixed: saving customers with default price type "List Price" wasn't working.



  • Fixed: issue where the sell price class list was no longer listing in alphabetical order.


  • Added: a new options page to ITrack under edit->options labeled "Interface". The interface options page will contain any ITrack look and feel settings or global interface options. Currently, it has a list of visual themes for ITrack. Currently, the only 2 options are "Classic (default)" and "Current windows user theme". The first method is the same visual theme we've used for a long time, the second uses the operating system theme. This means that if the user is on windows xp/vista/7, it will use the 'modern' look and feel of that operating system.
  • Fixed: the updater should now correctly parse database function definitions when doing database updates through the updater.
  • Added: ability to walk the call stack for the current process. This allows us to retrieve some information about what was happening in ITrack at a certain point, such as at the moment of a crash. A future update will probably integrate this with the error reporting system.


A lot of changes have been made to the assembly/collection interface on the links tab, details follow:

  • Fixed: many dropdown columns were getting part types in them accidentally.
  • Added: tab now resizes to use all the available space.
  • Fixed: when child parts are being loaded in a collection, any information about the parts will come from items at the same store as the part that is loaded (rather than the user's store). This comes into play if you have an assembly that exists at more than one store. Or if the components exist at multiple stores.
  • Added: the 4 'flex field' columns now properly load based on the currently selected part type. If any of those 1-4 flex fields aren't used, those columns will be uneditable and greyed out.
  • Fixed: overactive change detection.
  • Fixed: loading saved assemblies wasn't selecting the Assembly choice in the collection type dropdown.
  • Added: blank selection to the assembly template dropdown. Choosing this option doesn't show any template entries. This is useful for building an assembly from scratch, or for when you load a saved assembly (as you don't want more components to be added again most likely).
  • Fixed: several crash bugs.
  • Removed: a lot of the restrictions that kept part types from being child components of other part types. Now, the system makes suggestions, but is ok with anything the user chooses.
  • Fixed: the 'use' checkbox is now paid attention to for which new parts to save/create.
  • Added: new components inherit the location of the master part (but the user can change it to something else). As long as the new parts haven't been created yet, any changes to location will cascade down to the components.
  • Added: when the user creates new component records, the system uses the company's custom tag # naming scheme to assign a tag # to that part if it doesn't have one.
  • Added: many other fields are now loading into the list when the user loads up an assembly, including location, OEM #, interchange #, retail/wholesale/core price.
  • Fixed: doing multiple parts in a row caused the breakdown template list to keep growing.
  • Fixed: issue on the transactionlist where doubleclicking a document might pop up an error.


  • Added: the user can now doubleclick rows in the order requests list in the sidebar to open the corresponding document.


  • Added: if the SO the user opens is closed/finalized, the perform return and edit back order requests options are greyed out.
  • Fixed: crash issue when adding return items to a closed SO.
  • Fixed: voiding return invoices wasn't causing average cost to get recalculated. The result of this was that, if a user returned an item that caused average cost to change, voiding the return didn't change the cost back. This is probably a pretty rare situation.
  • Added: when a user finalizes an invoice, it sets the invoice date to the current date, no matter what the original date was. Many installations had a trigger to do this, but this should no longer be required.
  • Added: the returns dialog now has another column for the quantity of an item that is on open return invoices. In addition, if an item's full quantity is already on return invoices, the item will be colored blue and checking the return dialog will confirm that the user really wishes to return the item anyway. This should cut down on cases in which the same item gets returned more than once.
  • Added: as per customer request, when the screen is first opened (or the clear button is hit), focus is put on the customer field, rather than document type. When you open a saved document, the screen puts focus into the list.
  • Fixed: when the user is in the list, ctrl+left and ctrl+right now correctly work in the edit controls. Now, when you hold ctrl, the arrow keys will not leave the field. Also, as per windows standard, ctrl + left and ctrl + right move the cursor a whole word.


  • Fixed: if an item being consumed on a WO had a serial #, that SN was marked as CONSUMED when you finalized the WO. However, voiding that WO didn't make the SN AVAILABLE again.
  • Fixed: WOs was using an old method for reversing/voiding inventory activity that had several rare cases in which voiding wouldn't recalculate average cost correctly. In addition, the old method didn't mark parts that were 'S' (from being consumed) back to a status of 'A'. The void process should now use the same considerations as the SO screen.
  • Changed: the text on the void dialog to make what will happen be a bit clearer.
  • Fixed: when the user is in the list, ctrl+left and ctrl+right now correctly work in the edit controls. Now, when you hold ctrl, the arrow keys will not leave the field. Also, as per windows standard, ctrl + left and ctrl + right move the cursor a whole word.



  • Fixed: non-assembly collections were duplicating rows for each store when loading onto the screen.
  • Fixed: error when adding existing items to non-assembly collections.