Date bug in macOS Sequoia 15.4

MacOS 15.4, released on 1 April appears to have a new bug that causes the currently-set d/m/y date format (at least in New Zealand and Australia locales; maybe others) to render in US format (m/d/y) in some apps (including current versions of MoneyWorks 9)

This results in a startup alert “This computer is set for non- standard date formats. If you wish to use day/month/year date formatting, please select it using the ‘Region and Language’ System Preferences pane, then quit and restart MoneyWorks.”

The workaround for this Apple bug is to quit out of MoneyWorks, go to System Settings → Date and Number Formats, and set your date format to a different option, and restart MoneyWorks. This should eliminate the incorrect date formatting. Reports seem to indicate that the format set at the time of upgrading to 15.4 will be the one that breaks.

The upcoming 9.2.1 release of MoneyWorks seems to be unaffected by the bug.

Posted in Uncategorized | Comments Off on Date bug in macOS Sequoia 15.4

Change History for 9.2

Performance and important stability enhancements

9.2r2 Jan 9

  • Fixed potential data corruption when merging accounts
  • Preferred bank account is no longer unexpectedly changed by opening a transaction that uses a different bank account
  • Fixed search optimiser crash searching for the pseudo-field detail.net
  • Fixed Forms Designer crash when changing visibility settings on Windows 64-bit Gold
  • Previous Custom plugins locations are now dropped when you close a document and open one that does not have custom plugins
  • Fixed a crash in the new Ledger Analysis with a large number of breakdown columns
  • Asset report addition column fixed
  • Diagnostic improvements
  • Journal importing no longer gets details don’t match gross errors seemingly at random. These were due to the importer applying a default contra account to newly imported transactions. This would cause problems when importing journals containing the same account
  • Fixed formatting of timestamp fields in lists with local files
  • Fixed bad error message when deleting validation list items
  • Fixed signatures breaking for analysis reports and forms (due to inadvertently including data that can change in normal operation of the form or analysis report). Note this fix may cause signatures applied by recent versions of MoneyWorks to become invalid. Please re-sign any affected forms and re-upload to your server as necessary
  • File → Open now includes .mwxml files under “All Readable Files” on Windows
  • Fixed SMTP OAUTH2 requiring frequent re-authorisation on Mac
  • Fixed potential crash committing a stocktake count update
  • Stocktake commit now always executes on the server

Server

  • 9.2r2: Fixed a new 9.2 bug that could set PostedBy to the wrong user
  • Fixed lingering threads/sockets when broken network connections are reestablished
  • The Datacentre REST server now adds a Access-Control-Allow-Origin: * header to support externally-hosted javascript clients

Scripting

  • GotoListField function
  • The External function now resolves symbolic links on Windows before executing the external. This is because some external commands do not behave properly when executed via a symbolic link
  • It is now an error to declare a local variable with the same name as a reserved word (such as let or end)
  • Curl_exec and External now invoke cancel event processing immediately after the function call, so that executing these potentially slow/synchronous operations in a loop will not delay window closing animation on Mac quite as much
  • Fix GetClipboardText crash when there is no text on the clipboard
  • Make InsertVars work with source text bigger than 32KB
  • New date format DateFormDateTimeBigEndian YYYY-MM-DD HH:MM:SS
  • File_ReadLine removed limit on line length (was 4K)
  • File_Open mode parameter may now include a "b" or "u" prefix (e.g. "br" or "ur") to request buffered or unbuffered (i.e. buffered within MoneyWorks as opposed to the OS). Default is currently unbuffered although it may still be buffered in the OS. Buffered can be orders of magnitude faster. It should only be used for sequential access
  • Sqlite3 support. See the Sqlite3 developer note
  • When sending output to the log via Syslog, the log file is now held open and buffered and only flushed once per second. This greatly reduces the CPU cost (Windows is particularly slow at opening and closing files). The log file will be closed if it has been idle for 20 seconds, which may cause the next logging to go to a new file if there are multiple instances and the log file has undergone rotation
  • ParseCSV will now convert quoted newlines to \v (the embedded newlines would otherwise break tab/newline parsing of the result)
  • Fixed ReplaceField to work properly for fields that allow newlines
  • String functions (Length, Left, Right, Mid, Position, etc) now have a faster and more reliable implementation for strings containing multibyte unicode characters
  • The numeric parameter of the Sort function is now an enumeration allowing for a third option SortCaseInsensitive
  • Fix script editor cash with very long single-line string constants
  • Fixed incorrect autocomplete prototype for Regex_Replace in script editor
  • Fixed crash assigning to nonexistent array

9.2r1

  • Right function fixed for multibyte unicode characters
  • RemoveLeading function fixed for multibyte unicode characters
  • External function removed symbolic link resolution for batch files because cmd.exe did not like UNC path names
Posted in Change History | Comments Off on Change History for 9.2

Change History for 9.1.9

18 Sep

  • Support for OAUTH2 authentication for Microsoft 365 mail servers
  • Budget and moving average overlay options for the dashboard Ledger chart
  • Sales Explorer Dashboard chart; explore top sales with cross-filtering
  • Columnar departmental P&L reports
  • Ledger analysis omission of zero lines now respects budgets
  • Ledger analysis auto zero omission supports include unposted
  • Fixed saving of new Ledger analysis reports
  • Optimised list searches in custom forms
  • Windows updates now run in silent mode instead of presenting an installer UI. This because Windows insists on putting the installer in the background, which makes the update process a bit confusing
  • Reinstated ability to use Replace on salesperson field for journals
  • Bill-of-materials report now supports BOM depth > 4
  • Custom Forms designer list options editor; fixed inability to change from calculated row count mode once selected
  • Account importer no longer uppercases Category2-4
  • Hot links in custom navigator or report can now more reliably select a view name
  • Custom reports can now access the stickies table
  • Subsummary by group now looks up the group name for the description
  • Check transaction SecurityLevel when drilling down in detail list or account enquiry
  • Report editor now calculates appropriate scaled page width when first opening a report/li>
  • Report editor part and cell editors no longer display out of scope for loop idents/li>
  • Details printout for products now includes location/batch, if present
  • Improved parameter navigation (⌘-→/Alt-→) in the report and form editor expression editing dialog
  • Commission Report
  • Crash with malformed XML import
  • Store Overpayment type preference per-user on Datacentre
  • Form searches now work with selections created with CreateSelection
  • Fixed issues with duplicated identifiers in expression editor dialog in custom forms
  • Import acct-dept with update no longer truncates descriptions at a comma. Note that comma is still used to delimit a department name when importing a new acct-dept
  • Changing report font/size app preferences is now reflected immediately by Show Movements in a report
  • Import tax codes/rates
  • Change tax code (updates all existing records to use the changed code)

Server

  • Changed the Pictures backup mode to put pictures into a separate backup file if you select not to back up pictures every time a file closes. This can greatly reduce the CPU and storage overhead for pictures backups
  • The separate pictures backup is now once every 1-5 days instead of a particular day of the week
  • CLI bulk backup restore now understands the new pictures backup system
  • CLI bulk backup restore no longer incorrectly changes the file type of folder.conf files
  • Server no longer panics if a client makes a corrupted search request
  • Server logs requests that take longer than 2 seconds
  • Optionally skip socket ssl_shutdown

Scripting

  • Script Editor autocomplete now includes parameter lists for builtin functions and standard handlers, and also an extra information variant that also displays the function’s documentation
  • Script Editor now supports ⌘-→/Ctrl-Alt-→ for selecting next parameter in a function template, which is useful now that the autocomplete can provide the full parameter list
  • Script Editor now supports Alt-shift-arrows for extending the selection by a word
  • File_Open function for writing with no supplied file name now offers a choice of textual file types, including one that does not force any file extension
  • Analyse function now supports discount and margin % output
  • Analyse function now sanitises description output to remove any stray control characters that would mess up the formatting
  • Fixed crash evaluating the Alert function in CLI mode. It now maps to syslog
  • Alert function no longer shows help button when a timeout is set
Posted in Change History | Comments Off on Change History for 9.1.9

Change History for 9.1.8

17 July 2024

  • Analysis reports can now be used to analyse Ledger records, providing an easy way to get information-dense GL charts over multiple periods (similar to Account Enquiry charts)
  • Ledger by Period/Categories stacked column chart report
  • Dashboard Ledger by Period/Categories stacked column chart
  • Further improvements to date entry: When in a date field, you can use Page Up and Page Down to go back or forward a month. You can also “drive” around the date picker using the arrow keys with Cmd (Mac) or Ctrl (Win) held down (actually you can use these keys whether using the date picker or not). Up/Down will go back/forward by a week. Left/Right by a day.
  • Additional Name and Item list windows may now be opened in MoneyWorks Gold using opt-shift-⌘-2/3 (Mac) or Ctrl-Shift-Alt-2/3 (Windows)
  • Tweaked the alpha and line widths of charts
  • List colours have been tweaked slightly on Windows (they were previously posterised to support 4-bit colour displays, but that should no longer be necessary)
  • Report setting window is now more spacious, mainly for the benefit of reports with custom controls
  • Popup control labels now align better on newer macOS versions (and probably worse on older macOS versions that predate the San Francisco system font)
  • Expression substitution (using <<expr>>) in a mail subject or body when emailing statements etc now works consistently even when the form is generated on the server, and also when PDFs are generated using Microsoft’s Print to PDF driver
  • Report Heading parts no longer spuriously double-space when a tabbed heading has fewer tabs than there are columns in the report
  • Yodlee Bank statement importing now prefers description.original to description.simple which should improve the data quality (in particular the random quality of BNZ statements)
  • Do not allow Replace to replace journal reference number
  • Advanced subsummary settings button no longer auto-clicks when you re-run the report with the Advanced sort option selected
  • Payment on invoice importer now flags overclaimed credit as an error instead of crashing
  • Payment on invoice importer is now tolerant of ” and $ in pay amounts on Mac
  • Fixed updating existing transactions when account security level is changed when connected to a server
  • Fixed potential crash reading from Mac address book
  • Fixed problem with pasting text with symbols in it on Windows
  • Optimised a redundant database access when drawing the transaction entry screen
  • XML importer now applies ISO formatting to date and number conversions in calculated fields
  • Account Choices now dims ‘heading only’ accounts and posts a coach tip as to why they are not selectable
  • Account Choices now disables ‘heading only’ accounts in Express and Cashbook
  • Fixed report editor issues with testing export to PDF
  • Purging is now logged in the log file
  • Fixed weird sharing menu item name in text box contextual menu on recent macOS versions
  • Fixed double-clicks not being detected when a coachtip is instantiated by the first click on Windows
  • Improved handling of received moneyworks:// URLs (at launch or AppleEvent)
  • Fix failure to open a new year with very old files

Server

  • Blocklists for portscanners updated
  • Address potential failure to restore unsaved changes after a crash due to a race condition in server startup
  • Log connections even when folder login is not required

Scripting

  • MWScript now supports multi-line string constants (i.e. hard newlines are now allowed inside "" and ``). The expression can continue after the closing quote
  • MWScript now supports Nowdoc-style syntax for defining string constants that contain newlines and/or string delimiters that would be hard to properly escape (Nowdoc uses ad-hoc delimiting markers: You define the marker using an introductory << and then terminate the string with the marker you defined e.g: <<MARK ... MARK. The terminating marker for a multiline string should be at the beginning of a line on its own. There is also a single line variant where the terminating marker can be on the same line as the initiating marker and the expression can continue afterwards. e.g. let a = <<ND string with " and ` in it ND + " normal str". A whitespace character is required at the end of the initial marker; it is not included in the string
  • New InsertVars function for inserting variables and expression results into a string. This works like the embedded expressions in custom form text or the subject or message text in the mail dialog. Any variable name or expression enclosed in double angle brackets will be replaced with the result of the expression. E.g. let t = InsertVars("The date is <<Today()>>"). You can also optionally pass your own arbitrary delimiters for the start and end of expressions (particularly useful if your string includes embedded Nowdoc strings)
  • The Analyse function can now be used to analyse Ledger records using a basis of “ledger”. e.g. analyse("ledger", "account", "type=`IN`", "transaction.period,account.category", "2", PeriodOffset(CurrentPer, -12), CurrentPer, "I"). The column values are 1=count, 2=movement, 3=budget, 4=budgetB, 5=balance.
  • New Val(expressionString, RunOnServer) mode for the Val function to evaluate an expression on the server. This is very useful for running expensive latency-sensitive functions on the server, such as Analyse and SumSelection. Pass RunOnServer (a new constant with value 1) as second parameter to ask for server-side evaluation (if latency is low, or you are not connected to server, the evaluation will still happen on the client. There is some overhead involved, therefore this should only be used for expensive calculations
  • It is no longer an error to declare a handler parameter with the same name as an existing identifier. This is to prevent existing scripts from breaking when they happen to have handler params that are now an intrinsic function name, constant, or global. It also means you can now have parameter names like name and val. Reserved words are still reserved
  • Custom navigator panels that lack an accompanying icon will now be given a default icon
  • Extensive improvements to WebView/MWScript interactivity. Observer callbacks may pass a JSON object, or a string
  • Specific handlers for edit lists that include the tab name for the list (esp. TweakColumnList) now work more reliably on Windows
  • Analyse function: fixed crashes and failures with bad input
  • Analyse function: fixed breakdown by colour which was only working for transaction
  • Added a bunch of TRUE constants for use with intrinsic functions that take an optional boolean parameter to change the function’s behaviour: RunOnServer (Val or Find), BreakLines (Base64Encode), SortSkipFirst (Sort), TrimAllWhitespace (Trim), GetReversedRate (GetTaxRate), WantDept (AutoFillAcctDeptField), DecodePeriod (GetFieldValue, for popups), ListSelectedOnly, ListAsSelection (GetListContents), ListClearOldSel (SetListSelect), XMLFinal (XML_Parse), AsCDATA (AddXMLElement)
  • Find with RunOnServer mode requested will no longer generate output on the server when only one record is found
  • WebViews using WebView2 on Windows no longer eat all the keyboard shortcuts
  • Less dark inactive highlight in script editor on Windows
  • Fixed a problem with executing certain searches in a report script SetupReport handler (missing symbolic names for and and or)
  • The script editor on Mac now supports transpose, move to start of line, and move to end of line commands using the Cocoa Text System key bindings (the standard bindings for these are ctrl-t, ctrl-a, and ctrl-e)
  • Initialising a property at compile-time with CreateSelection is now flagged as an error
  • It is now possible to reliably compare table, array, selection handles against NULL and get a false result when they are non-NULL
  • Fixed a memory leak when standalone script editor is closed
  • Fixed a potential crash when a standalone script editor is closed after a script it contains installed a web observer
  • Fixed crash in SetListField when calling it when another window is active
  • The script editor now autocompletes form identifiers for speciliised window handlers
  • Script editor now treats a single paste operation as a change to to the script (previously such a change was not being saved)
  • Script editor no longer annoyingly offers autocomplete in response to typing on Load
  • TextToNum now supports a format parameter of NumFormPrintf to force ISO format number parsing (i.e. dot decimal)
  • Worked around a severe performance bug in the WebView2 control in Windows that forces all other windows to redraw constantly when a WebView2 control is visible. To mitigate the bug, MoneyWorks will display a static image of the contents of a WebView2 control when its window is inactive so these controls will not update when in a background window. If you don’t need javascript injection or any web standards, the IE control is still available
  • Esc() function to escape quotes and backslashes in a string. This is useful when using user-supplied data when constructing a search expression that requires quoting of text
  • Fixed -z loading Preload_SMTP twice
  • REST and CLI export commands with user-specified format or plain tab-delimited format now support start and limit similar to the xml export format
  • LastModifiedTime in exports is now in big-endian format (YYYYMMDDHHMMSS) for more reliable parsing (previously it was in a localised format)
  • -P CLI option to not update standard plugins (in the case of the CLI version differing from the Gold version installed on the same machine)
  • AutomationFilesFolderPath global variable
  • Import(txt, ":/Account") now returns a result (-1 for error; last account seq created if no error)

🌻

Posted in Change History | Comments Off on Change History for 9.1.8

Applying Interest to Overdue Accounts

If you want to apply interest to overdue debtors, we have a handy report script for you.

This will calculate the interest to be applied to overdue receivable balances, where “overdue” is one of the 30+, 60+ or 90+ day aged balances. When invoked, you can specify the monthly interest rate, and a report will be prepared listing the interest amount. You can also opt for invoices to be created, coded to the nominated Income account, which can be sent to the recalcitrant customers.

Running the Script

Once the report script is installed (see below), you will be able to run the script by choosing Apply Interest from the Command menu. Note that the report script processes only the highlighted debtors in the Names list (or all debtors if none are highlighted). The following dialog will be displayed:

Apply Interest Setup

The options are:

  • Overdue: A pop-up menu to determine the basis on which you want to charge interest, based on the values in the Aged Receivables. For example choosing 30+ will calculate the total outstanding for 30+, 60+ and 90+, and (providing the debtor does not have a credit balance), calculate the interest on that total.
  • Rate: The monthly interest rate percent that is applied to the overdue amount to calculate the interest amount.
  • Create Invoices: Set this only if you want to create the invoices—you should normally run the report script before creating the invoices to check the amounts. Any invoices created will be unposted.
  • Dated: The date to use on any invoices created.
  • Account: The income account, against which the interest will be coded on the created invoices. Note that this is a finance charge, so your interest account will not normally be subject to VAT, GST or other taxes (if in doubt check with your accountant).

Sample output to the report script is shown below:

Apply Interest Output

Installing the Script

The report script Apply Interest.crep can be downloaded from here. Once unzipped, it needs to be put into your MoneyWorks Custom Plug-ins/Scripts folder.

The location of the MoneyWorks Custom Plug-ins folder is determined by your currently open MoneyWorks file, and whether you are using Express/Gold or are a Datacentre client. To locate the folder:

  1. Start MoneyWorks and open (or connect to) your MoneyWorks file
  2. Go to the Housekeeping panel of the Navigator
  3. Click on the path next to Custom Plug-ins at in the Data section of the panel
     
    If there is no custom plug-ins, there will be a create button, click this, then the link that will appear in the Navigator.
     
    The Custom Plug-ins folder will reveal itself in the Finder (macOS) or Windows Explorer.
  4. Move the Apply Interest.crep file into the Scripts folder

Flick back into MoneyWorks and pull down the Command menu. You should see Apply Interest towards the bottom of the menu (if you don’t, just restart MoneyWorks).

Datacentre users should note that the script is only installed on your local machine. If you want other users to have access to the script, you need to upload it to the Datacentre server. The script can only be run by users who have the Statements & Aging MoneyWorks privilege.

Posted in Scripts | Comments Off on Applying Interest to Overdue Accounts

Change History for 9.1.7

Apr 2024

Performance and reliability enhancements, and new features:

  • Emailed PDF forms can have a specified attachment name (see Form Options in the forms designer. An attachment name can be specified as e.g. <<Name>> Invoice <<OurRef>> for <<NameCode>> to get Acme Widgets Invoice 45033 for SPRING.pdf
  • Configuration options for the Dashboard Income & Expense pie charts. You can now break down by additional category options. We have additional new data visualisation facilities in the works…
  • Better truncation of over-length fields when generating PDFs on Windows with libHaru
  • Save as PDF file using Microsoft Print to PDF now suggests a file name
  • Support future MWNow SHA-256 TLS CA root
  • Database performance improvements
  • Diagnostic ledger integrity performance improvement (up to 60x faster in some cases)
  • Diagnostic Stop button now more responsive during ledger integrity phase
  • Entering a date as DDMM is now smarter about autocompleting the year when you are working in a prior year (assume the year of the latest open period rather than the real time current calendar year)
  • Fixed issue with keyboard shortcut assignment in 9.1.6 that reassigned and broke the keyboard shortcut for the Name code checkbox in payment/receipt entry
  • Fixed ctrl-alt-key shortcuts for buttons in modal windows on Windows
  • The frontmost transaction list window (when there is more than one) is now always the window from which the current selection for reports is taken
  • Updated calendar dates
  • Batch Debtor Receipts fixed for head office receipts (broken in 9.1.6)
  • Account Enquiry include unposted now works for account ranges when running on a server
  • Statement form message is no longer truncated when the statement is rendered on the server
  • Load Old Bank Statement now disables the “Start Over” button
  • 64-bit crash reporter now uses static runtime lib (Windows)
  • Improved session recovery resilience
  • Software updates can now use build number as well as version
  • Fixed some truncated text on Navigator on Windows
  • Improved sanity checking when updating product codes
  • Name and product code fields can be activated to copy them even when they are read-only
  • Find Related Components for Product now goes to the All view (since components might not be inventoried)
  • Bank funds transfers and other special transactions can no longer be made recurring (doing so would result in currency error or other problems)
  • Save a Clone now clears GST reprint cycles in the clone
  • Fix faulty start date for online GST filing
  • Age by Due date report performance improvement
  • Prevent merging accounts with different security levels
  • Fixed failure sorting by order number in payment on invoice entry
  • Fixed a bug in the database engine that could—in very rare circumstances—corrupt database indexes when purging (this bug had survived for 34 years)
  • Fixed a bug in purging when there are very many unpurged/unclosed periods
  • Find Related landing in the Detail Lines list is now much faster. It delays sorting the list until the found records are selected
  • Reversed Tax codes now allow an alt code for foreign jurisdictions
  • Entering a new transaction from the bank reconciliation now sets the preferred bank account for both receipt and payment to the bank being reconciled, so that it remains the same if you change the transaction type
  • Require on-hold payables/receivables to be taken off hold before cancellation
  • JobSheet.CostCentre is mutable via Replace
  • 9.1.7r1 Job Allocation Report privilege protection
  • 9.1.7r1 Fixed invoice payment entry wrong column resizing with window size
  • 9.1.7r1 Removed spurious extra Tax by Currency report

Server

  • Fixed missing folder icon in Console
  • Time limit on verbose logging
  • Removed spurious log message when backing up
  • 9.1.7r1 Fixed connection failures from cascading errors under high REST load on Mac servers (9.1.7 regression)

Scripting

  • Command to open a new standalone script document window (Shift-opt-⌘-N / Ctrl-Shift-Alt-N)
  • Ask function now supports a “title” control type to set the window title
  • ConcatAllWith function — this is the same as ConcatWith except it does not omit blank items in the input. Use this for tabulating fields into a string
  • CreateListWindow: implemented property initialisation
  • Record editing windows instantiated from a custom list window now get a property named __parent_list which is the window handle of the list window
  • TaggedText fields now support using _ ; : characters in the stored data. Previously these were reserved delimiters. The following sequences in tagged text data will not survive a round trip since these are the byte-stuffed versions of the tagged text delimiters: ._ :_ ;_
  • InstallMenuCommand can now add up to 30 commands to the menu (previous limit was 20). Attempting to add more will now log an error and return 0 from the InstallMenuCommand function
  • DoReport can now access a built-in report named “~textreport.crep” to output plain text in columns
  • Support for html pages as Navigator panels. See Web views in the MoneyWorks Navigator
  • Fixed some problems with web view observers and javascript injection
  • Copying a script as styled HTML now entity-encodes angle brackets and ampersands
  • PreviewXMLtoPDF(xmlpath) function converts a preview xml file (“xml” format from DoReport or DoForm) to a PDF, returning the path to the pdf file create in the temp directory
  • REST doform now returns an HTTP 422 if your search expression finds no records to render. You should always check the HTTP status code and the returned MIME type, because if you ask for a pdf but supply bad parameters, you will get text/plain with an error message
  • In custom windows instantiated by a script, GetListHandle will no longer return the current (default) list in custom forms if the listName identifier is not found (it is assumed that you must have a typo in the identifier). MoneyWorks standard windows still behave the same
  • UpdateOrderLines an invoice sequence number parameter of -2 will now force complete the order
  • Find function will ignore the Run On Server parameter if latency is low
  • The Date function now has defined behaviour for for out-of-range month values (the supplied year value will be adjusted by one for each 12 months out of range the month is)
  • Accessing a window handle from its Close handler is no longer crashy
  • There is a publicly exposed function to get calendar entries from the MoneyWorks calendar: Cal:GetEntries(date, calendar_name)
  • There are new global variables for UserIsReadOnly and BuildNumber
  • The server will now be slightly more relaxed about accepting connections from CLI clients that are slightly out of date
  • Javascript alert() is now supported by the web view on Mac
  • Added support for custom/user fields 5-8 to the FieldLabel function
Posted in Change History | Comments Off on Change History for 9.1.7

Change History for 9.1.6

Dec 2023

Client

  • 9.1.6r5: Cashbook and Express SMTP fix
  • 9.1.6r4: Fix inability to link new bank accounts in Yodlee on Windows
  • 9.1.6r4: Prevent tabs from being pasted into fields on Mac
  • 9.1.6r4: Prevent potential document preferences corruption due to updating software before restoring from session file
  • 9.1.6r2: Adjust preferred location handling so that preferred location does not get clobbered
  • 9.1.6r2: Fixed libxml2 XML parser crashing on Windows when running emulated on arm64
  • 9.1.6r2: Save a Compacted Copy no longer requires a relaunch when running on 64 bit Windows
  • 9.1.6r2: Fixed a typo n an error message
  • 9.1.6r1: Fixed crash in autocomplete if a line item is deleted when an autocomplete window is open
  • 9.1.6r1: Fix timeout error sending SMTP mail via Office365 on Windows
  • 9.1.6r1: Fix crash clicking SMTP Test button on Windows when PDF via MS Print to PDF option is enabled
  • Additional transaction list windows may now be opened in MoneyWorks Gold using Shift-⌘-T (Mac) or Ctrl-Alt-T (Windows). Likewise for the Detail Line Items list window (Shift-option-⌘-T / Ctrl-Shift-Alt-T)
  • The automatic assignment of keyboard shortcut for controls will no longer assign shift-⌘-N/ctrl-alt-N and shift-⌘-C/ctrl-alt-C to Next and Cancel (when they already have Enter and Esc as shortcuts). As a result, some keyboard shortcuts for checkboxes and buttons may have changed: On Mac, hold down the Cmd key for a few seconds to see the keyboard shortcuts in a window. To see keyboard shortcuts on Windows 10 and later, turn on Underline Access Keys in the system settings.
  • The invoice payment entry list now also displays the other party’s reference number (TheirRef) for the invoice
  • Administrator may temporarily override period locking to post adjustments into locked periods
  • Native support for dragging an image attachment from Windows Outlook into a MoneyWorks transaction
  • The date for the build journal can now be specified in the Build Product command
  • Windows MAPI mail now supports unicode recipient addresses and addresses containing punctuation
  • Fix macOS Sonoma startup crash when numeric format has a non-breaking space for thousands separator
  • Bank transactions imported from Yodlee now import oldest first instead of oldest last for better invoice payment matching
  • Profit Actuals for Rolling 12 Months report: Added EBITDA option
  • Order processing alert for unused deposit for a non-credit customer no longer keeps the database locked while the alert is up
  • Stock value correction journal for invoice-after-goods with changed prices now includes OriginatingOrderSeq
  • End of the Month (EOM) option for the Debtor/Creditor Terms now supported for more than one month in the future: use 131st, 231st, 331st for end of second, third, fourth month after invoice date
  • Switching to an order’s Backordered tab now always scrolls to the top
  • Entering a receipt for a debtor with no outstanding invoices now defaults to Payment on Invoice again (on the assumption that you want to enter an overpayment/prepayment)
  • Better Analysis report editor scaling in Magoo mode
  • Details list view was missing the new Customise list view toolbar icon
  • Fixed problem with IRD Connect on Cashbook and Express
  • New preference option on Windows 10/11 to use Microsoft Print to PDF driver to generate PDFs instead of libHaru. This has the advantage of having full Unicode support instead of just the ANSI codepage, so it supports non-latin scripts. (You do, however, lose the ability to embed http links in the PDF)
  • All clients (including Mac) will do their own PDF generation when connected to a Windows server and running reports or statements on the server
  • Statements generated on the server should now get a more useful attachment name for the PDF generated
  • Fixed incorrect text alignment and line breaking on Windows with some unicode character ranges (particularly Asian languages)
  • Enter Serial dialog box makes more sense
  • Profit Budget for Next Year: Show as COGS and EBITDA
  • Updated Notepad2 build; 64-bit on 64-bit installs
  • The Name type checkboxes for inactive debtor/creditor may now be turned off without requiring single-user mode (balance must be zero with no outstanding invoices); Cancelling a payment for a deactivated account will reactivate it
  • Prevent duplicate validation items
  • Clear line item location when product code is changed to an inventoried product
  • OpenSSL updated to 3.1.x
  • libcurl and zlib on Windows updated to latest releases (Mac uses OS-provided versions of these libraries)
  • Warning when MoneyWorks Now primary login gateway could not be reached
  • Password fields no longer try to evaluate an expression if the password happens to start with =
  • Prevent changing MoneyWorks Now password to blank
  • Fixed incorrect message regarding crediting of unused deposit on order
  • CSV bank statement importer now tolerates currency symbols in the data
  • Network connectivity tester under support info
  • Expired subscription will no longer force read-only mode when logging into a server

Server

  • IMPORTANT note for Mac Datacentre administrators: The option to specify a custom location for the Documents directory anywhere was removed some time ago. 9.1.6 will now reset the configured location to /Library/MoneyWorks/Documents. If your data files are located elsewhere, you must move them to this location. Then apply permissions by opening the Datacentre Console app
  • REST requests will now cause auto-opening of a new period—the same as a regular login in a new month—if the REST client has write access to the database. This should resolve the issue of high REST activity preventing a new period from being auto-opened on the first of a month
  • Mac Datacentre will now set the owner of backup files to the owner of the folder they are moved to. This will prevent e.g. iCloud from ignoring them
  • Reports and forms generated on the server now use the default currency symbol and date order from the client
  • Fixed midnight restart port bind failure when under REST load
  • Additional REST worker process logging
  • moneyworks_datacentre.log rotation is now rate-limited
  • Added missing IP blocklist file on Windows
  • Rationalised configuration files: There is now only one .conf file for the main server configuration. Please note that this change means that you cannot downgrade the server version
  • Fixed Console start/stop not working on High Sierra

Scripting

  • ParseCSV function to convert a CSV line to tab-delimited (which you can use with Slice
  • The CLI now supports cur_sym and cur_end parameters to commands to override the locale currency symbol and position when formatting numbers as currency quantities
  • There are new transaction flags to indicate fTrans_WasImported and fTrans_WasRecurring
  • SetPersistent no longer throws a runtime error if the record being updated is locked by another user. Instead it will first retry after a 200ms delay, and if it still fails it returns 0 to indicate failure (1 for success). Scripts should check the result of SetPersistent, but also see the next change…
  • SetPersistent as a special case, when setting User.Data, the return value of SetPersistent is the previous value of User.Data. This allows SetPersistent to be used as an atomic Test-and-Set
  • Executing a .mwscript file with the -Z option now forces non-localised numeric formatting
  • Export("xmlschema") now indicates field mutability
  • Memo table is mutable by ReplaceField
  • Mac CLI now logs to moneyworks_cli.log instead of MoneyWorks_Gold.log
  • Saving a .mwscript from standalone script editor now truncates the file if it is shorter
  • Import now works the same importing clientside/serverside when the full path to an import map is not provided (previously serverside only worked with a full path)
  • Fixed file error when a script sends multiple smtp emails with attachments with the same name
  • Allowed("Write Access") will now return false if the user is logged in read-only for any reason

🌻

Posted in Change History | Comments Off on Change History for 9.1.6

MoneyWorks Support and Support-ID

To expedite telephone and email support, we have introduced the concept of a MoneyWorks Support-ID number. This is available to all users of MoneyWorks 9, and has the following advantages:

  • When quoted for support, the support team can instantly see your recent support history
  • It is more secure, as you no longer need to provide your credit card details to our support team when you call
  • It saves you and us time

Setting up your Support-ID

A Support-ID number is generated when you register your company file by choosing File>Manage Servers and enabling support. For added security a random PIN is also generated, and both numbers need to be supplied when seeking support.

To get your Support-ID and set your support options, open your MoneyWorks file and:

  1. Choose File>Manage Services
    The Manage Services window will open. This is where you register your MoneyWorks documents and can also subscribe to optional MoneyWorks services, such as e-Invoicing or connecting to an on-line store.
  2. If you haven’t already registered your file, click the Register link and follow the instructions to register your file
  3. If you haven’t already lodged a credit/debit card, click the Lodge Card link and lodge your credit card
    MoneyWorks support is not bundled in with your purchase/subscription price, but is charged only when required.
  4. Click the Enable Support link
    The Support Options window will open.
  5. Support options

  6. Turn on the Use lodged credit card for support option
    Any lodged support events will be automatically charged to the lodged card.
  7. Set any other options (see below) and click the Update button
    You will be returned to the previous screen, which will now display your Support-ID and PIN number.

Note: In MoneyWorks 9.1.4 and later you must be an Administrator to be able to activate support and other MoneyWorks Services.

Retrieving your Support-ID

Before you call (or email) for support you should retrieve your Support-ID and PIN number. Our support team will ask for the Support-ID, PIN number and your name. Depending on the support options selected, you might also be asked for a purchase order number. If you are emailing you should include this information in the body of the email.

  • In MoneyWorks 9.1.4, choose Help>Get Support. Your Support-ID and PIN will be displayed, along with current support charges, a contact phone number and email address. A list of previous support events is also shown in the window.
  • Getting support

  • In earlier versions of MoneyWorks 9, the Support-ID and PIN can be accessed by choosing File>Manage Services.

Without a Support-ID, you will need to provide a credit card for each support incident. With a Support-ID the lodged card will be automatically charged overnight (NZ time) for all support events in a day.

Before calling, you should also start your TeamViewer
TeamViewer enables you to share your screen with our support team so they can view what the problem is. You can start it by choosing Help>User TeamViewer QuickSupport (if you haven’t used it before, MoneyWorks will offer to install it).


Support Options

PIN Number:

For added security, your account will be issued with a random 4 digit PIN number, which must be supplied for all support incidents. You can change this at any time (for example, if a staff member leaves). You will need to quote the PIN number when you ask for support.

Purchase Order Number:

You can also opt to require a Purchase Order (PO) number with each support incident. This will appear on your receipt when the support is charged. There are several ways in which you can manage this:

  1. You can specify a purchase order number when you set up your support options. The caller must supply this PO Number to get support.
  2. You can opt to require any PO Number, although we have no way to verify the supplied number is valid.
  3. If you opt to require a PO number, the user will need to have it when they call/email (it will not be displayed in the MoneyWorks Support window).

Authorised users can change the PO settings at any time by clicking MoneyWorks Support in the MoneyWorks Services window.

Mulitple Entities:

If you have more than one entity operating under this licence, you can opt for all these entities to be covered under this Support-ID, or they can be covered under their individual Support-IDs.

Posted in Resources | Comments Off on MoneyWorks Support and Support-ID

Change History for 9.1.5

September 2023

Client

  • 9.1.5r1: fix field size and tab display glitch on product entry screen in Gold
  • 9.1.5r2: fix field size glitch caused by the above fix
  • Set sidebar colour in Document Preferences to help visually differentiate different companies
  • Auto-balance general journals. Just click the debit or credit footer total to automatically add a balancing line to the journal
  • Optionally record debtor overpayments as a debit/credit note pair for cases where GST/VAT needs to be recorded for overpayments
  • Adding a debtor or creditor code to an existing unposted receipt or payment now offers the option of converting it to a payment on invoice
  • Libraries of list views: You can now store multiple customised list views and recall them from the list toolbar
  • Product BOM now also shows replacement cost of parts, because inflation
  • Copy/Paste list view is now in the Customise List View window
  • Due date calculation: for day of month following terms: If the day of month is greater that the number of days in the month following, then the calculated due date will now be no more than the number of days in the month. Therefore you can now use 31st of month following as effectively end of following month. Prior to this, 31st of month following would be 1st of subsequent month if the following month only had 30 days
  • Date picker no longer pops up in a newly instantiated window just because a date field happens to have initial focus
  • Check new user initials are not duplicate of existing user
  • Save a Copy now requires Save and Backup privileges
  • Security hardening of the reference number service
  • Support for future Apple changes to Apple Silicon runtime model and API changes
  • Notepad2 log reader is now signed (Windows)
  • Restored missing Asset Register submenu on Windows
  • Calculated columns now have the currency field always available to a format expression
  • Auto-build from a Sales Order now uses the invoice date, not the order date for the build
  • Asset register: fixed a case of wrong Depreciation calculation on DV method
  • Trial Balance report control issue
  • The default stock journal filter (for new documents) now includes stocktake journals. You can update an existing filter by adding or OurRef=`JT@` to the search
  • Price List report now uses the new names for Product.BuyTaxCodeOverride/SellTaxCodeOverride introduced in 9.1.4r2
  • VAT Guide SA: Was using invalid taxrate.taxpaid field
  • Reorder Products now pre-excludes processed orders, improving performance when there are many processed orders

Server

  • Finalise GST with cash sales on invoice basis is now much faster over a network
  • Loading and saving bank reconciliations is faster
  • Non-default Archive location now works properly on Mac servers
  • Backup hourly throttle now works properly
  • Rebooting a Mac server should no longer give spurious alerts about disk space and backup locations
  • More informative error message when a database fails to open
  • Fixed REST import error message formatting
  • Serverside image recompression is now asynchronous
  • Increased default socket timeout
  • HTTP requests to HTTPS endpoint now only have one log entry instead of two
  • HTTP(S) servers now impose a 15 second Keep-Alive timeout rather than waiting forever for clients that never close the connection
  • Network error recovery is now on by default
  • Reconnection allowance for clients that get a network error now only made for actual logins, not internet noise
  • Reconnection allowance for clients that get a network error no longer made during server shutdown
  • Windows logs now get a new creation time when they are created (work around MS filesystem tunnelling)
  • Ability to limit log rotation rate (manual setting in conf file)
  • Multiple stale connections are now cleaned up faster

Scripting

  • ChangePrimaryKeyCode function. Currently implements the ability to change tax codes
  • REST/CLI doform search parameter was failing for multi-field searches since 9.1.1
  • ReadCurrentRecordForWindow now clears tag pseudofields when stepping through a selection
  • Electing to edit a script when a runtime error occurs will now only disable the script if you hold down the Control key
  • Find All in script editor navigation to found text now works on 64-bit Windows
Posted in Change History | Comments Off on Change History for 9.1.5

Mac Mini as a server—preventing it from going to sleep

The Apple Mac Mini with Apple Silicon makes a great, fast, efficient server for MoneyWorks Datacentre.

However, there is one important thing to know about Mac desktop computers like the Mac Mini:

By default, the Mac will go to sleep after a time and all network connections to the server will hang

This is not good behaviour for a server.

Furthermore, Apple—in their great wisdom—have buried the setting that controls sleep in a hard-to-find place. It is in the Display settings.

In macOS Ventura, the setting is called “Prevent automatic sleeping on power adapter when the display is off”. You must turn this setting on if you are using a Mac as a server.

Posted in Uncategorized | Comments Off on Mac Mini as a server—preventing it from going to sleep