Promotions

  • Advanced Notifier

    Our advanced notification module is designed to enhance the efficiency of your company by keeping you informed of events directly from your Dolibarr interface.

    125.00 €  (300€)
  • Fast Product - CODE 42

    Allows you to create products or services directly in the Sales Proposals, Sales Orders and Invoices interface.

    15.00 €  (30€)

New products

  • SafeLogin 2FA

    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.

    55.00 €
  • MultiPaiement

    This module allows you to specify the different payment methods for a transaction (cash, mobile money, or check).

    FREE

SOA Pro

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.

49.00 €
Excl. tax

  • Author Anas Memon
  • Module version 1.1.0
  • Release date 02/28/2026
  • Access to download and updates 1 year
  • How to contact 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+   -   PHP7.4 - 8.3
  • Last update 03/19/2026 10:18 AM

More info...

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+
 




If you think this module is a fork of another one (published after the first one) or violates some terms or conditions of use (for users or vendors), you can make a report at dolistore@dolibarr.org