Would your company benefit from over
29 new features?


Since November 1, 2016, there have been 4 QuoteWerks updates released containing over 29 new features!

Please remember that New Features = Greater Productivity which gives you more time to sell and complete the countless other tasks you need to do on a daily basis!

Version 5.2 Build 2 (released November 16, 2016)

 1. The field size for CostModifier and PriceModifier fields on the DocumentItems tab have been increased from 8 to 18 allowing for longer compound discount modifiers like "D50\10\17".

Version 5.2 Build 1 (released November 11, 2016)

 2. ConnectWise 2016.6 is now supported!

 3. ConnectWise 2016.5 is now supported!

 4. QuickBooks USA 2017 is now supported!

 5. QuickBooks Australia 2016 is now supported!

 6. QuickBooks Canada 2017 is now supported!

 7. Peachtree/Sage 50 version 2017 is now supported!

 8. There is now an "Installation Password" feature that can be used to prevent an unauthorized person from updating a QuoteWerks Installation. This is especially useful for preventing remote installations from updating without the permission of their IT administrator. It is also useful for IT administrators and resellers in preventing some random user from updating the network installation of QuoteWerks. Now, before an installation update can begin, if an Installation Password has been set by the administrator, the user will have to supply a valid Installation Password before they will be able to proceed with installing the update.

 9. When a QuoteWerks update was just installed and a workstation runs QuoteWerks for the first time, it will now prevent other workstations from running QuoteWerks while QuoteWerks is upgrading the data to the new Build.

 10. Most data stored in .ini files has been moved into database tables. All of the settings that have been transferred to database tables can be viewed from the new Settings Manager accessible by clicking on the [Settings Manager] button on the System tab of the Help->About menu. The Settings Manager is also available from within the Medic Utility by selecting the Utilities->Settings Manager menu. For complete details please see the help file topic "Appendix: QuoteWerks Version 5.2 INI to Database Changes".

 11. Licensing enforcement no longer uses the .lck file based system. It now uses a Database license metering system. There are some powerful capabilities that come along with this change. Now, if a user is logged into QuoteWerks and locks their machine and leaves for the weekend, users with Master Rights can now revoke their license making it available for other users. When this user comes back they will only have the option to save and close their currently open quotes and exit. The Misc Access right "NonMasterRightsUser_CanRevokeOthersLicenseAllocation" can be granted to non Master Rights users to give them this capability.

 12. Administrators can now force QuoteWerks to terminate. When an IT administrator wants to make sure everyone is out of QuoteWerks (to apply an update for example) they can force the termination of running instances of QuoteWerks. Any unsaved quotes will be saved as recovery documents. It is not ideal to terminate QuoteWerks this way, but if the admin has no other options, then at least they have the ability to terminate the running exe. The Misc Access right "NonMasterRightsUser_CanTerminateOthersRunningInstances" can be granted to non Master Rights users to give them this capability.

 13. From the QuoteWerks Login window holding down SHIFT while clicking OK will launch the Logged In Users window where you can see what other users are logged into QuoteWerks. This window will only appear if have entered the correct password for the username. If you have rights to revoke licenses or terminate running instances you can do that from this window. An extra capability of this feature is that if a user is at this login screen and cannot login because there are not enough licenses, an administrator can walk over to this machine, choose their username, enter their password and get access to the Logged In Users window where they can revoke someone else's license. After closing this window, the login window will re-appear for the regular user to then login normally.

 14. Licensing events are now recorded. Certain events are always recorded like license revokings, forced terminations are now recorded, reaching max Primary license count, reaching max Real-time license count, and reaching max QuoteValet license count. Other events like "[] Record failed login attempts", and "[] Record successful login/logoff (includes duration)" can be turned on/off under the Security tab of the Tools->Options menu. You can display the Event Viewer by clicking on the [Event Viewer] button on the Utilities->LoggedInUsers menu.

 15. When a login fails because there are not enough licenses, the Logged In Users window will automatically be displayed.

 16. If you attempt to login using a UserName that is already logged into QuoteWerks, you will be given the option to revoke the license from the other logged in instance so that you can login.

 17. For Autotask users, when creating or updating an Autotask Quote the QuoteWerks Customer PO# now populates the PurchaseOrderNumber field in the Autotask quote.

 18. For ConnectWise 2016.3 and higher users, QuoteWerks recurring products can now be written to a ConnectWise Opportunity Item as a recurring product (utilizing this newer feature in ConnectWise). This feature is only available in the new ConnectWise REST API. It is not available in the older ConnectWise SOAP API, so you must enable the ConnectWise REST API in QuoteWerks setup to use this new feature.

 19. For ConnectWise 2016.3 and higher users, when the ConnectWise REST API is enabled, there is now an option on the REST API tab of the ConnectWise Setup window to "write QuoteWerks SoldToPONumber 'Cust PO#' to ConnectWise Opportunity".

 20. Bundles can now be searched by Begins with, Contains, and Ends with. The last selection is remembered per user.

 21. Configurations can now be searched by Begins with, Contains, and Ends with. The last selection is remembered per user.

 22. When rehosting to SQL you can now specify an existing Database to rehost to. This is useful so that you do not have to supply a SQL server UserID that has the security rights to create databases.

 23. Added new Misc Access rights CannotModifyFieldValue:DI_CustomDate01, CannotModifyFieldValue:DI_CustomDate02, CannotModifyFieldValue:DI_CustomNumber01, CannotModifyFieldValue:DI_CustomNumber02, CannotModifyFieldValue:DI_CustomNumber03, CannotModifyFieldValue:DI_CustomNumber04, CannotModifyFieldValue:DI_CustomNumber05, CannotModifyFieldValue:DI_CustomMemo01, CannotModifyFieldValue:DI_CustomMemo02, CannotModifyFieldValue:DI_InternalPartNumber

 24. For API users, added the events: BeforeSynchronization(sXMLData, bCancel) AND AfterSynchronization(sXMLData)

 25. For API users, the event BeforeSaveDocument(ByVal iSaveAction As Integer, ByRef bCancel as Boolean) now fires for the AutoSave events with an iSaveAction=4.

 26. For API users, added event AfterSaveDocumentEx(ByVal iSaveAction As Integer, ByVal iResult As Integer, ByVal sXMLData As String). This event provides more information than the existing AfterSaveDocument() event.

 27. The creation of user login names is no longer limited by the 8 character user INI file name generation. You used to receive a message like "The User Name specified cannot be added because it conflicts with the {username}.ini file of JLEWE.INI"

 28. Under the [Addons] section of the siteboot.ini file there is a new AutoRunXUsers= key. Here you can specify a comma delimited list of users that you want the addon for. For example the AutoRun1=notepad.exe and the AutoRun1Users=John Lewe, Brian Laufer

 29. For API users, added a series of methods to read/write/delete settings from the new Settings table since the data has been moved out of ini files into the database. Application.SiteSettingRead (sSectionName as String, sKeyName as String) Application.SiteSettingWrite (sSectionName as String, sKeyName as String, sKeyValue as String) Application.SiteSettingDelete (sSectionName as String, sKeyName as String) Application.SystemSettingRead (sSectionName as String, sKeyName as String) Application.SystemSettingWrite (sSectionName as String, sKeyName as String, sKeyValue as String) Application.SystemSettingDelete (sSectionName as String, sKeyName as String) Application.UserSettingRead (sUserName as String, sSectionName as String, sKeyName as String) Application.UserSettingWrite (sUserName as String, sSectionName as String, sKeyName as String, sKeyValue as String) Application.UserSettingDelete (sUserName as String, sSectionName as String, sKeyName as String, sKeyValue as String)