The MTS Advanced Invoice add-on helps you craft professional invoices, automatically generate new invoices and recurring invoices, and send payment reminders.
Release Notes
[Version 1.2.0]
Released: 2026-09-09 Compatibility: SuiteCRM 7.x (legacy) and SuiteCRM 8.x (Angular list view)
This is a major feature + hardening release that brings the shared package in line with the field-tested proman build, using only generic (non-client-specific) fields.
New features
Cancel Invoice (Stornorechnung) & Credit Note (Gutschrift)
- New Create Cancellation Invoice and Create Credit Note actions on the AOS_Invoices detail view (positioned between Edit and Delete).
- Cancellation invoice: clones the original with negated amounts, marks the
original invoice
Cancelled, and rolls back the linked recurring invoice's next date so the period can be re-issued. - Credit note: creates a negated draft (original invoice is not cancelled); opens in EditView with a guard that keeps quantities negative and within the original amounts.
- New AOS_Invoices tracking fields:
is_cancellation,cancellation_type,original_invoice_id,original_invoice_number.
Generate Next Invoice Now
- List view (SuiteCRM 8): bulk action "Generate Next Invoice Now" to generate the next invoice for one or many recurring invoices at once, with a per-record result summary (generated / skipped duplicate / failed).
- Detail view: on-demand generation with a preview dialog (customer, invoice date, due date, total) and duplicate protection with a force option.
Duplicate-invoice protection
- Recurring generation now skips creating a second invoice for the same billing
account + invoice date (
findDuplicateInvoice), preventing accidental doubles.
Working-day aware invoice dates
- Invoice document dates that fall on a weekend are shifted to the next working day (Mon–Fri). The billing cycle itself is calculated drift-free from the scheduled date.
Configurable PDF filename
- New PDF filename pattern setting (Admin → MTS Advanced Invoice Settings),
e.g.
{number}_{name}. Tokens resolve from invoice / billing-account fields; Unicode letters (ä ö ü ß …) are preserved and filesystem-unsafe characters are stripped. Applies to invoice PDFs generated by the plugin (recurring invoice notification / overdue reminder emails).
Invoice statuses
invoice_status_domnow includes Draft, Unpaid, Partially Paid, Paid, Sent, Cancelled so payment and cancellation states display correctly.
UI
- New shared dialog/toast/spinner UI (
MTS_UI.js) — modal confirmations and toasts replace native browser dialogs across all plugin actions. - Redesigned Admin settings page (sectioned layout, help text, real buttons in Maintenance Tools).
- "Record Payment" is hidden for Paid / Cancelled / Sent invoices and for cancellation documents.
Hardening & fixes
- SQL hardening — dynamic values are escaped with
db->quote()/ cast to int across recurring generation, reminders, summary and PDF queries. - PHP 8 compatibility —
post_installpatches coreaowTemplateParserfor a widenedparse_template()signature. - Fixed a latent bug where recurring generation used empty payment-terms /
frequency (dates are now computed from a single source of truth,
calcInvoiceDates). - Extension routing migrated to the CamelCase
MTS_RecurringInvoicelayout; the obsolete kebab-casemts-recurring-invoiceextension is removed automatically on install to resolve a routing conflict.
Upgrade / install notes
- Install the zip via Admin → Module Loader.
- SuiteCRM 8 only: after install, rebuild the container so the list-view
bulk action and module routing register:
php bin/console cache:clear php bin/console cache:warmup(The installer also clearscache/; run the above if the bulk action does not appear immediately.) - Run Admin → Repair → Quick Repair and Rebuild if custom fields/labels do not appear.
- Hard-refresh the browser to pick up updated JS/CSS.
No destructive schema changes. is_uninstallable remains true.
[Version 1.0.5]
- Change the status 'Drafts' to 'Draft'
- Add to migrate the existing Drafts invoice to the Draft invoice (Go to Admin > MTS Advanced Invoice Settings > Click on 'MIGRATE DRAFT INVOICE' button
[Version 1.0.4]
- Add the Payment module for the Invoice
[Version 1.0.1]
- Add the 'Once' option in Frequency to support the user create a standard invoice via the recurring invoice module.
- Fix bugs
[Version 1.0.0]
- Manage the recurring invoice in the recurring invoice module.
- Auto-generated the new invoice once the current invoice is outdated.
- Send the email notification to you employee that's the owner of the record
- Send the email to remind overdue the invoice
- Summary of the total amount of the recurring invoice