No products
* Prices may vary depending on your country.
* An additional contribution can be added at the time of payment.
New products
Protect your Dolibarr with enterprise-grade Two-Factor Authentication. SafeLogin adds TOTP (Google Authenticator, Authy), WebAuthn Passkeys (YubiKey, Face ID, Windows Hello), and recovery codes — with enforcement policies and admin control.
This module allows you to specify the different payment methods for a transaction (cash, mobile money, or check).
mp24262d20260228064854
Generate professional Statement of Account PDFs directly from billing tab — with permission-based access, multi-currency support, and email delivery. No Export module access needed.
|
|
Long Description
SOAPro adds a dedicated Statement of Account (SOA) generator to Dolibarr, solving a critical gap in the native invoice module. Currently the only way to produce an SOA is through the Export module — which exposes all company data to any user who needs it. SOAPro gives you a self-contained, permission-controlled solution.
Key Features
Generate SOA for customers, suppliers, or both in a single consolidated view. When a third party exists as both customer and supplier, SOAPro automatically detects this and offers three options — Customer SOA, Supplier SOA, or Consolidated SOA showing the net position.
All generated PDF, Excel, CSVs are saved within the module and can be printed, downloaded, or emailed directly using Dolibarr's native email system with the PDF pre-attached and the recipient pre-populated.
Granular Permission Control
SOAPro has its own permission set independent of the Export module. Assign exactly what each user can do — view, generate, print, email, or delete. Restrict access by SOA type so a user can only access customer SOA, supplier SOA, or consolidated view based on their role.
Financial Accuracy
Every SOA includes opening balance brought forward, full transaction history with original amount, paid amount and outstanding balance per invoice, running balance, and an ageing summary showing outstanding balances by overdue period. Multi-currency transactions are grouped by currency with separate totals and ageing per currency.
Audit Trail
Every action — generate, print, email, delete — is logged with user name, timestamp, IP address, third party, SOA type, and date range used. Full accountability for every SOA produced.
Professional PDF Output
Company logo, address, CR number and VAT number pulled automatically from your Dolibarr configuration. Clean single-table ledger layout consistent across all SOA types. Ageing summary included at the bottom of every PDF.
Compatibility
Dolibarr v17 and above. Developed and tested on v22.0.3. Uses only stable Dolibarr APIs and hook system — no core file modifications.
# SOAPro Changelog
All notable changes to this project will be documented in this file.
---
## [1.1.1] – 2026-03-19
### Bug fixes
**Fix 1 – Fatal error on Delete, Email, and Generate actions**
**Problem:** Calling Delete, Send Email, or Generate SOA resulted in a fatal PHP error:
`Call to undefined function verifCsrfToken()` — this function does not exist in any version of Dolibarr.
**Changes:**
- `soa_delete.php`: Replaced `verifCsrfToken()` with correct inline session token check
- `soa_email.php`: Same fix applied to the send action handler
- `soa_generate.php`: Same fix applied to the generate action handler
**Fix 3 – "Field 'To' is required" error when sending email**
**Problem:** Email form showed a valid address in the To field but submitted with it empty, triggering a validation error. Root cause: `GETPOST('sendto', 'alphawithdot')` strips the `@` character, making the email address blank after filtering.
**Changes:**
- `soa_email.php`: Changed filter from `'alphawithdot'` to `'nohtml'` to preserve `@` and all valid email characters
**Fix 2 – "Menu entry already exists" error on upgrade**
**Problem:** Upgrading from v1.0.0 caused a fatal activation error because stale menu entries from the previous installation were still in the database.
**Changes:**
- `core/modules/modSoapro.class.php`: `init()` now purges any existing soapro menu entries before inserting fresh ones — no manual database cleanup required on upgrade
---
## [1.1.0] – 2026-03-16
### Bug fix – Supplier SOA debit/credit convention
**Problem:** Supplier invoices were displayed in the Debit column and supplier payments in the Credit column, which is incorrect. Correct AP accounting convention is: supplier invoice = Credit (liability increases), supplier payment = Debit (liability decreases).
**Changes:**
- `class/soa.class.php`: Supplier invoices (including brought-forward invoices) now assigned `credit = amount, debit = 0`
- `class/soa.class.php`: Supplier payments now assigned `debit = amount, credit = 0`
- `class/soa.class.php`: Supplier opening balance sign corrected — a net amount owed to supplier is now stored as a negative (credit) balance, consistent with AP convention
- Running balance for supplier SOA now shows negative values (displayed as CR) when you owe the supplier, and approaches zero as payments are made
- Customer SOA behaviour unchanged
---
## [1.0.0] – 2026-02-28
### Initial release
**Core features:**
- Customer SOA, Supplier SOA, and Consolidated SOA generation
- Multi-currency support — transactions grouped per currency with separate totals and ageing per currency block
- Single-table ledger: Date | Due Date | Ref | Type | Description | Orig Amt | Paid | Outstanding | Debit | Credit | Running Balance
- Partially paid invoice rows showing original amount, paid amount, and outstanding balance
- Ageing summary on outstanding balances (Current / 1–30 / 31–60 / 61–90 / 90+ days)
**PDF & Email:**
- PDF generation via Dolibarr's bundled TCPDF (A4 landscape, colour-coded rows)
- Deterministic PDF filename — re-generating overwrites the existing file for the same third party / type / currency combination
- Email via Dolibarr's native `CMailFile` class with PDF pre-attached
**Integration:**
- Hook-based entry points on Third Party card, Customer Invoice, Supplier Invoice, Sales Order, and Purchase Order cards
- No core Dolibarr files modified
**Permissions:**
- Eight granular permission keys: `soa_read`, `soa_generate`, `soa_print`, `soa_email`, `soa_delete`, `soa_customer`, `soa_supplier`, `soa_consolidated`
**Audit trail:**
- Full audit log in `llx_soapro_log` (generate, print, email, delete events)
- IP address, user, third party, period, currency, and filename recorded per event
**Support:**
- For support, bug reports, and feature requests please open a ticket at info@hamzaviinfotech.com
- Response within 48 hours on business days
**Compatibility:**
- Dolibarr v6 through v23
- PHP 7.4 – 8.3
- MySQL 5.7+ / MariaDB 10.3+