Added the Expense ID as a visible field on the Expenses list and entry form.
The new 'Send Test Email' feature (Configuration->System Settings->Email) could create an error condition when trying to view the Mail Log report, if values for CC or BCC were filled in.
If a custom field of type URL was added to a base table (Ie. Clients) and the based table's record was added or edited, with the URL field left empty, a prompt would display showing, “Please enter a valid URL…”.
The newly improved responsive invoice display (better visibility viewing invoices and quotes on mobile devices) could cut off the view for very long invoices.
The improved Mollie payments gateway could error when attempting a payment for larger amounts.
The System Settings function (button) Download Database Backup could fail with a "Whoops, looks like something went wrong" error when the MySQL server was configured to use a port other than the default.
Payment Gateways for Stripe, PayPal and Mollie have been significantly refactored and now use the most current vendor libraries. For our European customers who use Stripe, this means support of SCA (Strong Customer Authentication).
Substantial improvements to Custom Fields. Previous versions supported custom field types of: Text, Textarea and Dropdown, which used a comma delimited list for its data source. Now all multi-option fields, like Dropdown and Radio buttons, Checkboxes, etc. are defined with JSON text.
Added support for more flexible use of Custom Fields within code. Previously the only way to reference a custom field was by its column number, like this: @if( $client->custom->column_2 == "TOP10") Now we can reference the custom field by its label name, Ie.: @if( $client->customField('Rating') == "TOP10").
The Custom Fields entry page has been revamped, with a separate tab for each table, and added ability to drag-and-drop sort the entries to order them for the most effective data entry layout.
A Tags field was added to the Client view, allowing for ad-hoc tags to be added to any client record for quick identification.
An Important Note field was added to the Clients view. When a client record is accessed and the field is not empty, an alert will pop-up, with the contents of the important note.
Client deletion safeguard. Added a more visually impactful warning and confirmation prompt when a user attempts to delete a client record.
Added Unpaid as a new status filter to the invoice view.
Added a Mailed flag as a new status option for invoices for customers that choose to send paper / postal system mailed invoices.
Added tracking and visibility of the source recurring invoice that was used, when new live invoices are created from a recurring invoice scheduled job.
Contacts improvements. Added a Title field to contacts. Also added visibility of Contacts to the View Client page. It was previously only accessible within the Edit mode of the Clients page.
Added Exception Type to the internal exception handler for improved error reporting.
Added the ability to test system email settings directly from the System Email page.
Added a color coded Client Name label to the top of the Clients view. The label color matches that of the client type: Customer, Lead or Prospect.
The Payments Collected report now groups and subtotals by the payment method.
Added report totals to the Items Sales and Revenue by Client reports.
Added a Discounts column to the Item Sales report.
Improved navigation bar highlight colors for better visibility on several of the supported color schemes.
Refactored the recurring invoice end-of-month date timing. (When a recurring invoice had a Next Date set on or after the 28th of a month, its subsequent generated dates could creep ahead a day or two into the next month. This has been changed so that if a Next Date is set on or after the 28th, should that date occur on the end of a month, the following and all subsequent Next Dates will be created on the end of the month.)
Dates on Tax report. (If first, second, third or fourth quarter was used for a date ranges selection, a quarter that ended on the 31st of the month could have the transactions for the 31st omitted.
Public Invoice and Quote views were not 100% responsive. Fixed issues related to viewing these from a mobile device, where it could cut off the right-hand amounts and was not scrollable, horizontally.
Selecting a new logo image under the Company Profiles editor would error on saving.
Attachments are now stored in the database as opposed to the filesystem.
Attachments can now set to visible when uploaded directly on a client record; Added new Attachments area to Client Center where logged in clients can access all of their client visible attachments in one place.
Clients now have a Type field to indicate whether they're a Lead, Prospect or Customer.
Clients now have a Timezone field which will display the client's local time on the Client View screen if populated.
Expense categories and vendors can now be managed under System -> Expense Categories and System -> Expense Vendors.
Added a System tab to System Settings to list basic system status indicators.
The Client list now includes the Client ID field so it can be searched on, sorted by, etc.
The API can now accept the client_id field instead of the client_name field when creating a quote or an invoice.
Added context aware placeholder text to the sidebox search bars.
Dashboard widget date settings are now modified through a single control.
Added a Dashboard widget date option for This Month.
Fixed a number of PHP 7.3 compatibility issues.
Fixed a bug preventing the email payment receipt link from working on the Client View screen.