ITrack/Enterprise/Changelog 2010-03

From ISoft Wiki
Jump to: navigation, search

2010-03-30

General

Master

  • Changed: the downloader is/was receiving updates where <QUERY> and </QUERY> surrounded every line, even if queries took more than one line.
  • Added: we now use the MySQLTokenizer to scan the input script and find where all queries/comments begin.
  • Added: several speed and readability improvements.
  • Added: DB versioning tools. Mostly, there is now a GetCurrentDatabaseVersion() and UpdateDatabaseVersion() functions. These retrieve the current DB schema version (or -1 if none is found), and update the db schema version, respectively.
  • Added: the query parser now use the new DELIMITER pre-parser to deal with occurances of that clause in update scripts.
  • Added: the query parser now logs the original version of the query, instead of the version the tokenizer returns.
  • Added: when ITrack performs database updates, errors are not reported to the user, but they are sent to the error reporting server (and logged in the update log locally).
  • Added: support for $VERSTION=XX$ or $VER=XX$ tag inside of ITrack database script comments. When one of these tags are present, it marks all queries between it and the next tag as part of that version.
  • Added: ITrack checks current database version before attempting to apply any database updates. This means that if the database is already at version 4, version 3 queries are not run. This helps us to speed up updating and ensures that queries are run only once per database server.
  • Added: ITrack changes the db version after applying the upgrade queries (even if they fail). The version update is canceled if the version was changed since the update began.

ITMySQLConnection_d

  • Added: When a database gains a live connection, it will immediately check what the max query length is and set the value internally.
  • Fixed: Pesky locking issue where a PerformQuery call that had no returned values would fail to give up a lock, meaning the program would hang when the caller tried to run another locking query.
  • Fixed: StoreMultiple did not properly report errors that occurred.

ITSQLFramework

  • Fixed: the Debug button no longer throws an assertion, but instead calls AfxDebugBreak directly. This resolves an issue where a second error dialog would launch when you chose to debug.
  • Added: the sql framework now remembers the last sql error as an ITSQLError as well as a string. This way, if error reporting is off, one can still get the error report (and manually handle it).
  • Added: ErrorReportDialog::TransmitError which is a static function that allows the caller to use the common ITErrorReport transmission code to 'send' an error report to our server without the user interface coming up.

MAS90Accounting

  • Fixed: assertion that was incorrectly coming up (claiming that credits didn't equal debits) because of roundoff error.

Parts

  • Added: as per a request, a local hotkey has been added to Parts (Add picture) that launches the add pictures dialog, no matter where you are on parts. This is to make adding parts to standard/misc parts faster.
  • Changed: we were using an 'old-style' pre-xp file open dialog because of an error that could occur when using the XP or newer version. This issue has been resolved, and the open pictures dialog now uses the up to date file open dialog.
  • Changed: attachments now use the modern file open dialog as well.
  • Added: files can be attached more than 1 at a time now (you could only do them one at a time before). (The following changes all relate to the links tab)
  • Changed: wording of many areas. Standardized the use of the words Assembly and Breakdown. Use of Assembly refers to an item that is a collection of other items. Breakdown refers to the process of breaking an Assembly down into component parts.
  • Fixed: QOH column is no longer editable.
  • Changed: when the user adds items to an assembly, the process goes differently now. If there is an empty/unchecked item on the assembly template already, the item being added replaces that item. If an item is added more than once, the new add replaces the old add. If parts of the same part type are added, they are put next to each other. Items with a part type not in the collection are added at the bottom.
  • Fixed: issue where the user would type in the model dropdown. The database connection launched to search for matching models was failing to create, but the screen was attempting to use it anyway.
  • Added: the 'Default format for tag #'s on new replenishable parts' setting now recognizes {inventory.category} and {inventory.vendorproductcode} by user request.

PurchaseOrders

  • Added: the choose PO posting dialog now responds to the user hitting enter when an item is selected (as well as the user doubleclicking an item). This selects that posting and closes the dialog. This should allow users to pick a posting without using the mouse if they would like to.
  • Fixed: assertion crash on PO page when loading a PO that was prices finalized that had one or more adjustments on it.
  • Fixed: as per user request, an item added as a dirty core exchange never uses the SKU of the original item. It attempts to use core inventory SKU of the original item. If that doesn't exist, the return will be a non-stocked dirty core return.
  • Added: the return dialog now has several new columns: Store #, Core Record. The Store # is the store of the original order. Core record shows the tag # and QOH of the associated core inventory record (core bank) for the item being returned. This is because, on return POs, this is the item the quantity will come out of (not the original order item).
  • Fixed: as per the statement above, when performing a return PO, if an inventory item does not have a valid core record associated with it, the user cannot check the dirty core return checkbox. In these situations, the system does not know what item to return (automatically), so the user must add the item to return to the PO manually and associate that item to the original purchase.
  • Fixed: the date column now correctly sorts.
  • Fixed: the 'current' PO now correctly shows up when doing return POs.

SalesOrders

  • Removed: advanced operation dropdown/perform button.
  • Added: replaced the above 2 controls with a single dropdown button. Similar to POs, using a dropdown (split) button, we have more control over the layout of the items, and we can lock individual items down. In addition, it makes performing an advanced operation simpler.
  • Fixed: the SO screen doesn't attempt to send the quote email to the salesman if the SO is void.
  • Added: 2 new permissions (see below) "Reopen Quotes" and "Reopen Invoices".
  • Added: new advanced operation "Re-open SO". This new feature fills a gap in what administrators could do. Using the 2 above permissions as access control, a user with permission can use this feature on a closed or voided invoice or quote to return the document to its open state. If the document was closed and not voided, inventory activity and gl accounting will be reversed, and the document will be opened. If the document was voided, those things have already been reversed, so it simple un-voids and reopens the document and adjustments. Currently, payments voided this way are not un-voided because they are documents of their own.

WorkOrders

  • Fixed: non-stocked job parts with a core charge were throwing a database error because the storeid could not be null.

2010-03-26

General

ini

  • Turn On: Turns on database stream compression for ITrack. This speeds up transfer of data from and to the database.

2010-03-23

General

Master

  • Fixed: if the user was using a windows theme or custom font, the screen list would not pick the right size, and would show scroll bars.

Payment Entry

  • Fixed: several roundoff errors that were causing payment lines of $0 to be inserted.

2010-03-22

General

Master

  • Fixed: about dialog now has an icon.
  • Added: master is now capable of dealing with hotkeys in the shortcut map that are not global (screen specific hotkeys).
  • Added: when a user logs out, the hotkeys are correctly reset back to system defaults.
  • Added: hotkeys for common menu options: log out, Actions->Updater->Reset Updates, Actions->updater->Check for updates, Edit->Options, Help->Manual, Help->Recent Changes, Help->About. All these hotkeys can be configured in the Edit->User Hotkeys menu.
  • Added: the user's assigned hotkeys are now displayed in parentheses after the menu option. This way, the user can be reminded of their hotkeys.
  • Fixed: global hotkeys now work correctly if no screen is open (or if the user has focus in an area other than the child window.
  • Fixed: global hotkey keystrokes are now ignored if a user is not logged in. This was to prevent issues caused by using hotkeys to perform actions that should require a user login.
  • Added: code to the manifest that will allow ITrack to display in modern styles (once we're ready for that).
  • Fixed: ITrack had a fixed formula for calculating the height of items in the screen list, now it uses windows settings.

ITMySQLConnection_d

  • Fixed: issue where some errors were reported when we attempted to retrieve the data, not when the query was run. These situations were not reporting the error # correctly.

ITSQLFramework

  • Fixed: inability to launch the error reporting dialog if the master window disappeared in the middle of an error report.

Global Settings

  • Added: global hotkey option for launching the user hotkey configuration dialog. This defaults to ctrl + F12.
  • Added: when a user logs out, their user settings, user group settings, and hotkeys are emptied.
  • Changed: the edit->user hotkeys dialog has had its usability significantly improved. The dialog is resizable now, and instead of 2 separate lists, there is one tree ctrl, which makes setting your hotkeys much easier.
  • Fixed: when the user changes a hotkey, the dialog now shows that hotkey removed from other actions with the same hotkey if they collided.
  • Added: new icon for this configure hotkeys dialog.

Customer List

  • Updated: modified to work with new hotkey system.

Data Management

  • Fixed: the data written to the import queries is now formatted before writing. This makes the output smaller in some cases, and corrects bugs where characters such as ',', '$', or '%' were allowed in numerical fields, but weren't being taken out before the import.
  • Added: empty table checkbox. This new action will empty the destination table before importing data into it. This is useful for some imports where the entire table is in the csv input file.
  • Fixed: re-arranged the action checkboxes to be in a more logical order.
  • Added: new button: "Edit Backups". This opens a dialog showing all backups created by the data management screen. The user can review these backups and how much space they are consuming on the server. The user can also delete backups from here.

Interchange

  • Updated: modified to work with new hotkey system.

Inventory Overview

  • Added: local hotkey actions (they work on this screen only) for all the options in the 'send' menu. These can all be configured in edit->user hotkeys.
  • Added: current user hotkey assignemnt is now listed in parenthesis after the menu option for items with hotkeys assigned.

Login

  • Added: a global message is now sent out when a user logs in or out so that extensions can do things when the user changes.

Parts

  • Added: a check that verifies if the value a user entered into the "Tag # search" box at the top is empty when they hit search. This is because some yards were having trouble with users accidentally performing laggy searches with this button.
  • Changed: re-arranged the links page to give more space to the collection list and less to the (still unimplemented) interchange relationships list.
  • Changed: removed the two lists that showed what collections a part was in and replaced it with a single tree ctrl.
  • Added: many columns that will be useful when doing assembly breakdowns.
  • Added: "Use" checkbox to the breakdown list. This checkbox controls whether to include an item in the assembly. This checkbox is automatically checked if the user changes anything on the line.
  • Added: colors on collection components. These will help the user identify existing inventory items being attached and new inventory items to be created.
  • Fixed: issue where tag # was not being preserved on new inventory records.
  • Fixed: flickering when loading collection components.
  • Added: the assembly collection type now has a template dropdown which populates from a new table. When the user switches a collection to an assembly, the default template is selected automatically. When template changes, the list automatically loads all potential collection components from the assembly.
  • Added: when part type changes, the links page now tries to reload templates based on the current part type.
  • NOTICE: the assembly breakdown interface is not yet complete, but this file has an intermediate version of the interface that people can test and submit feedback on bug 1139. More changes to come.

Purchase Orders

  • Fixed: the query that was looking up vendor catalog records was joining inventory to the vendor catalog with an old/unsupported field. This may have caused catalog data to be missing.
  • Changed: per user request, the code that uses buypackage/purchase factor on POs uses the values in inventory over the values in vendor catalog (for inventory items). This is because many vendors supply bad/spotty data for buypack/purchase factor.

Purchase Orders

  • Fixed: issue where set form editability was being called to early on load.This was causing the approve posting checkbox to always be hidden.
  • Fixed: item availablity was not being loaded properly. This caused the insufficient QA warning to always come up on returns.
  • Changed: as per a user request, if you do a manual return and you point an inventory item with an inherent core charge to a return line without an inherent core charge, the core line will not be deleted from the PO, but its price will be set to 0.
  • Changed: the query that returns valid PO lines to be much faster.
  • Removed: requirement that items be marked as 'returnable to vendor' in order to be available in the return dialog.

Sales Orders

  • Fixed: as per bug 1198, removed the line load limit restriction. This had been created to make loading very large closed invoices faster, but it has ramifications when the invoice hasn't been finalized yet
  • Added: various usability tweaks/improvements to the whole unit items dialog (the one that pops up when you sell a whole unit asking which parts to sell and which to keep in stock):
  • Fixed: whole unit dialog: rearranged UI slightly and renamed fields for more obvious meaning. Also, the total fields are now just readonly, rather than light grey, as this is easier to view/select.
  • Added: whole unit dialog: tool tips to the dialog to explain various fields.
  • Fixed: whole unit dialog: issue where the dialog was sometimes not appearing.
  • Fixed: whole unit dialog: issue where the cost total fields were not always displaying reasonable values.

Search

  • Fixed: whole units search info pane "Vehicle options" wasn't working right if a whole unit existed at more than one store (possible through Transfer Orders). Bug 1188.
  • Added: double clicking on a row in the vendor catalog search tab now opens the associated part (if any).
  • Fixed: vendor catalog search wasn't finding associated inventory records unless the user had mapped their vendor catalog to models.
  • Added: print tags button is now visible on the vehicles search. This will print tags for all selected whole units.

2010-03-15

Purchase Orders

  • Fixed: error related to loading POs where the approve posting checkbox was always hidden.

2010-03-09

General

DevIL (ILU dependency)

  • Updated: new version of the image library to help fix issues with images saving as empty/grey images.

ILU (ILUT dependency)

  • Updated: new version of the image library to help fix issues with images saving as empty/grey images.

ILUT

  • Updated: new version of the image library to help fix issues with images saving as empty/grey images.

ITSQLFramework

  • Fixed: several crashes and errors caused by error reporting situations where the main ITrack window doesn't exist yet, but the error reporting dialog assumed it did.

Crystal Reports

  • Fixed: issue where sending reports to the 'Preview' printer wasn't working and the item was actually printing on the user's default windows printer.

Customer

  • Fixed: Bug where the options list would be blank for new customers. Now the options list only loads once, on init, and every customer is allowed to have options. Also added in a bit of extra checking for array bounds. (Bug 1159)
  • Fixed: an error was submitted through the error reporting interface where doubleclicking a payment would throw a database error. This was because the stores the user had access to was an empty string. This situation no longer throws an error.
  • Fixed: an error submitted through the error reporting interface where a database error might be thrown when the user tried to display sales history on a new customer.

Data Management

  • Added: the type checking functions now have a non strictmode that doesn't mind if the input is empty.
  • Fixed: if a numeric field or a boolean field is empty, the screen won't complain.

Home

  • Updated: compatible with the new image library.

Parts

  • Fixed: issue where trying to open the first transaction in the transaction list didn't work.
  • Added: double clicking a manual adjustment on the transaction list now opens the change log.
  • Fixed: an error submitted through the error reporting interface where vendor lookups containing an apostrophe would throw a database error.

Purchase Orders

  • Fixed: Many static windows were allowing prefixes, so ampersands would show up as underscored spaces and such.
  • Removed: advanced operation dropdown and perform button.
  • Added: replaced the above controls with a single "Perform..." split button. This allows us to more easily perform one of these functions, and allows us to enable/disable these functions individually.
  • Fixed: issue where item's editability would get set incorrectly when you load a PO vs when you're building it.
  • Fixed: sidebar drag static wasn't placed correctly.
  • Added: context menu (right click) option to the list ctrl: "Reference/credit historical PO line". This is available on standard PO lines. This allows the user to manually attach an item to a historical PO line. This facilitates returning one item to the core liability from another purchase, or returning like items.
  • Added: manual PO line return automatically sets the return line's price and quantity to match the original purchase line (quantity can't exceed QOH).
  • Added: return dialog now displays dates in user's default date format.
  • Added: when the user changes the quantity of an item to less than 0, the 'choose original purchase' return dialog comes up.
  • Added: when the dialog mentioned above is launched, it starts out showing only po lines that match the current item. The user can click "Show all historical POs" checkbox to see all of them.
  • Fixed: when you add vendor return items to a PO, they are taken out of the inventory store doing the return PO, not the original order store.
  • Added: the system should now correctly handle 'anonymous returns' on POs. Similar to SOs, this is when you return an item without referencing an original line/document.
  • Added: when you open the 'return items' dialog on POs, only historical POs that have items you can return (items you have a record for at your location) show up.
  • Fixed: the PO screen no longer lets you return more than the unreturned quantity of an item. The screen now correctly computes the unreturned quantity of an item.
  • Fixed: an error submitted through the error reporting interface where the order fulfillments dialog would sometimes throw one or more errors when you were viewing order fulfillments for a stocked item.
  • Added: a check that notifies the user if they are returning items to a vendor but they have insufficient QOH to fulfill the order. This will prevent users from driving QOH below 0 with PO returns. For now, this is just a warning, but once its finished, it will be an error that stops the user.
  • Added: when the user opens the return dialog for a specific item in 'smart mode' it now hides items that cannot be returned on this PO and items that don't relate to the current item.
  • Fixed: customer 'smart search' used in the lookup no longer throws an error if you have "Show all stores's customers" unchecked and you search for a non existant customer.
  • Added: POs now show icons when there are lines on the PO that are returns (have a quantity less than 0) when there is insufficient QOH or QA to fulfill the return. Their are no error messages associated with these icons.
  • Added: POs now has a new icon that is displayed on return items when the "New" quantity being returned is greater than the QOH. ITrack throws an error in this situation, to make sure that QOH isn't driven below 0.
  • Added: TOs now have a 'insufficient available quantity' attention icon (same icon as the other screens).
  • Added: TOs now has a new icon that is displayed when the "New" quantity being transferred is greater than the QOH at the source store. ITrack throws an error in this situation, to make sure that QOH isn't driven below 0.
  • Removed: message boxes throws by TOs on save if some items don't have enough stock to fulfill the order. This was to make the screen more like SOs (the user can see the icon, but they don't get a message box until they try to transfer the items).

Sales Orders

  • Fixed: Many static windows were allowing prefixes, so ampersands would show up as underscored spaces and such.
  • Fixed: customer 'smart search' used in the lookup no longer throws an error if you have "Show all stores's customers" unchecked and you search for a non existant customer.

Search

  • Fixed: issue where vendor pricing search always showed $0 for several columns.

Vehicles

  • Updated: compatible with the new image library.

Vendor

  • Fixed: Many static windows were allowing prefixes, so ampersands would show up as underscored spaces and such.

WorkOrders

  • Fixed: an error submitted through the error reporting interface where "part #" lookups would throw a database error.

Purchase Order, Sales Order, and Work Order Screens

  • The following changes all relate to the way the list control works on the screen. By user request we have made these changes to make the list controls work more like excel or other windows applications. They will affect all screens that are released, but especially 'list heavy' screens like SO/WO/PO/TO/Part modification.
  • Added: the list ctrl now defaults to the style of "enter goes down" to be more like excel. This was in response to several user requests.
  • Added: the sales list ctrl now defaults to the style of "enter is carriage return" to be more like spreadsheet entry (like excel). This was in response to user request so that entry on such screens as PO/TO/SO would be easier.
  • Added: the list ctrl now allows the user to "exit edit mode" by hitting escape when they're on an edit. When in this mode, certain keystrokes, (like ctrl + A, home, end, ctrl+home, ctrl+end, etc) operate on the entire list instead of the specific edit.
  • Fixed: ITLC now prioritizes enter=carriage return over enter goes down, as I felt it was more specific behavior.
  • Fixed: issue where the user could use the space bar to toggle readonly checkboxes.
  • Added: arrows now control user movement in the list even when there is no control. For example, if you hit esc to close an edit, you can still hit an arrow to go to the next/previous item.
  • Added: Home/End keys now go to the start/end of an edit (like normal edits), and the start/end of the current line of a multiline edit. This makes them more like normal edits (use ctrl + Home/End to go to the start/end of a multiline edit).
  • Added: ctrl+A now selects all text in an edit.
  • Added: ctrl + arrow keys now navigates within an edit ctrl without leaving (like a normal edit).
  • Added: user can hit ctrl+enter in multiline edits to insert a newline (just hitting enter only does this now in lists where enter doesn't go down or act like a carriage return).
  • Added: if the user leaves cell edit mode (by hitting escape when in an edit), the user can hit home/end to go to the first/last cell in that row or ctrl + home/end to go to the first/last cell in the list.

2010-03-08

General

Master

  • Added: Compression support for downloads. This will make files download significantly faster, especially when bandwidth is low (tests showed updates downloading over 6 times faster).

libcurl

  • Added: compression support. This allows ITrack to download updates much faster, especially when bandwidth is low.

2010-03-04

General

Master

  • Added: whenever the updater is launched, the update log file is trimmed down to 64KB. This should fix issues where it has grown very large for users that have been on the system for a long time.
  • Fixed: a couple small issues with strings written to the update log.
  • Added: if it takes longer than 60 seconds for ITrack to contact the update server, it will stop waiting and report an error.
  • Changed: Further minor changes trying to make the updater not crash or hang or do anything weird.
  • Added: Now that the 409 response is working just fine, I added in some error handling for that, and also to renew session IDs if we receive a 409 (which itself just means that the server denied our file request because it doesn't know which user we are).
  • Removed: Connection re establishing procedures. We're back to a single CURL instance. We do continue to clean it up after use, however.
  • Fixed: Made it so that you can only deallocate valid CURL pointers to fix a crashing issue.
  • Added: curl_global_init and curl_global_cleanup. The curl docs strongly suggest using this, though its inclusion didn't help anything.

libcurl

  • Updated: version of CURL we use. This newer version fixes some bugs and adds some new features.

libeay32 (libcurl dep)

  • Updated: new version of SSL introduces some security fixes.

ssleay32 (libcurl dep)

  • Updated: new version of SSL introduces some security fixes.