Sales and invoicing

Remaining to bill

dolixresteafacturer · version 1.0.1

You see what remains to be invoiced on each customer order, line by line, in quantity and in amount excluding tax.

Price
€39 excl. VAT
Dolibarr
19.0 minimum
Version
1.0.1
Licence
GPL v3+
Languages
French, English, German

€39 excl. VAT.

Ordering, payment, invoicing and download are handled by the DoliStore.

Buy on the DoliStore — €39 excl. VAT
The by-order list: for each customer order, the total excluding tax, the amount already billed, the remaining amount to bill and the share billed, with the alerts to check.
The by-order list: for each customer order, the total excluding tax, the amount already billed, the remaining amount to bill and the share billed, with the alerts to check. Screenshot of the French-language interface.
01

What the module does

  • A “Remaining to bill on orders” list with three views. By order: total excl. tax, billed excl. tax, remaining to bill excl. tax, share billed, number of invoices, status, alerts. By line: quantity ordered, billed, remaining, and amounts. By customer: number of orders, totals and number of orders to check.
  • Filters: reference, third party, status, order dates, “Only with an amount remaining”, “Include orders classified billed”. Sorting on the columns and a grand total of all filtered rows, not just the current page.
  • CSV export of the view displayed, with all filtered rows. Semicolon separator, UTF-8 encoding, decimals in the format of the language.
  • A “Remaining to bill” tab on the sales order: summary, detail by line, invoices examined with the reason when they are not counted, and invoice lines without a matching order line.
  • Partial invoices and percentage invoices deducted line by line. Credit notes attached to an invoice of the order counted as negative. Invoices created from a shipment attached to the order of the shipment (option, on by default).
  • Down payments: a down payment invoice reduces the remaining amount until it is deducted; the deduction line on the final invoice offsets it. With the core option FACTURE_DEPOSITS_ARE_JUST_PAYMENTS, a down payment consumed as a payment is not counted twice.
  • An invoice shared by several orders is spread between them in sequence (date, then reference), each order line capped at its quantity. The same rule applies to a product present on several lines of one order. No double counting.
  • Six alerts: “Situation invoice”, “Shared invoice”, “Free line to check”, “Over-billed”, “Classified billed”, “Draft invoice”. Draft invoices are not counted by default (option); abandoned invoices never are.
02

Who it is for

In Dolibarr, an order only has a yes/no “Billed” status. As soon as you invoice it in several steps, nothing tells you what is left to invoice: you have to open the order and add up its invoices by hand.

In Dolibarr, an order only has a yes/no “Billed” status. As long as an order is invoiced in one go, that is enough.

As soon as it is invoiced in several steps — work delivered in stages, a down payment, a 30 % invoice, a credit note for a faulty window — nothing tells you what is left to invoice. You have to open the order, open each of its invoices and add them up by hand, line by line. And an invoice that groups several orders makes the calculation harder still.

Who it is for: Businesses that invoice the same order in several steps: work delivered in stages, down payments, percentage invoices, grouped invoicing of several orders.

03

What the module does not do

This section appears on all 12 module pages, without exception.

  • Amounts excluding tax only, in the company currency: no amounts including tax, and multi-currency is not taken into account.
  • Situation invoices are not computed. They are flagged by an alert: the remaining amount has to be checked by hand.
  • Only invoices linked to the order, or to one of its shipments, are seen. An invoice entered without a link to the order is not counted.
  • Matching is done by product, and by start of label and unit price for free lines. A free line edited on the invoice, or an invoice line whose product is not on the order, does not reduce the remaining amount: it is listed separately in the tab.
  • The module shows, it does not act: no button to invoice the remainder, no column added to the native order list, and the order's “Billed” status is not changed.
  • Customer orders only, validated, in progress or closed. No draft or cancelled orders, and no supplier orders or invoices.
  • In the by-line view, down payments not yet deducted are not spread over lines: they only appear in the by-order view.
  • Beyond 5,000 orders matching the filters, only the 5,000 most recent are computed. A message then asks you to narrow the filters.
04

How it works

For each customer order and each line, the module computes the quantity and amount excluding tax already invoiced, and what remains. It is read only: no order or invoice is changed.

The “Remaining to bill” list

Under CommerceSales OrdersRemaining to bill, three views:

View Columns
By order reference, third party, date, total excl. tax, billed excl. tax, remaining to bill excl. tax, share billed, number of invoices, status, alerts
By line reference, third party, date, description, quantity ordered, billed, remaining, total excl. tax, billed excl. tax, remaining to bill excl. tax
By customer third party, number of orders, total excl. tax, billed excl. tax, remaining to bill excl. tax, number of orders to check

Filters: reference, third party, status, order dates, “Only with an amount remaining”, “Include orders classified billed”. Sorting on the columns, a grand total of all filtered rows — not just the current page — and a CSV export of the view displayed (semicolon separator, UTF-8, decimals in the format of the language).

The tab on the order

Each sales order gets a “Remaining to bill” tab: the summary, the line-by-line detail, the invoices examined — with the reason when one is not counted — and the invoice lines that match no line of the order.

What is taken into account

Case Handling
Partial invoice quantities and amounts deducted line by line
Percentage invoice Dolibarr reduces the quantity: it is deducted pro rata
Credit note on an invoice of the order counted as negative on the lines concerned
Down payment invoice reduces the remaining amount until it is deducted; the deduction line on the final invoice offsets it
Down payment consumed as a payment (FACTURE_DEPOSITS_ARE_JUST_PAYMENTS) not counted twice
One invoice for several orders spread in order sequence (date, then reference), each line capped at its quantity
Same product on several lines spread in line order
Invoice created from a shipment attached to the order of the shipment (option, on by default)
Draft invoice not counted by default, flagged (option to count it)
Abandoned invoice never counted

How lines are matched

Dolibarr does not keep, in an invoice line, the order line it comes from: only the link between the two documents exists. The module therefore matches lines by product, and free lines by start of label and unit price. The “start” of the label matters because grouped invoicing adds the order reference and date to the text of each line.

Invoice lines absent from the order — added fees, for example — are listed separately in the tab and do not reduce the remaining amount.

The alerts

When a figure is uncertain, the module flags it rather than showing a wrong amount.

Alert Meaning
Situation invoice a situation invoice is linked; its amounts are not taken into account, the remaining amount has to be checked by hand
Shared invoice an invoice shared by several orders contains lines that match none of them
Free line to check a free line of the order remains to bill while a free invoice line was not matched (label or price changed?)
Over-billed the amount invoiced exceeds the order amount
Classified billed the order is classified “billed” although an amount remains
Draft invoice a draft invoice is linked; it is not counted until it is validated

With the “Only with an amount remaining” filter, an order with nothing left is still shown if it carries a situation, shared-invoice or free-line alert.

The screenshots were taken with the interface in French.

The by-order view: six demonstration orders sorted by remaining amount. The order from the Mairie de Dorfbach is 28.1 % billed and €7,440.00 excl. tax remains. The Garage Weber order carries the “Facture brouillon” (Draft invoice) alert; the Cabinet Dr Roth order, with status “Validée - Facturée” (Validated - Billed), carries the “Classée facturée” (Classified billed) alert: the order is classified billed although €420.00 remains. The total row adds up the six orders.

The “Reste à facturer” (Remaining to bill) tab of order SO2609-0004: total excl. tax €10,350.00, billed €2,910.00, remaining €7,440.00 (28.1 % billed). The detail shows 6 motorised roller shutters and 6 installations billed out of 20, and the technical survey, a free line, not yet billed. Below, the invoice examined, counted, and the method note.

The by-line view: thirteen order lines with an amount remaining, each with the quantity ordered, billed and remaining. The remaining total (€21,240.00) is higher than in the by-order view (€20,656.50): the €583.50 down payment of Boulangerie Martin is not spread over its lines, as the note at the bottom of the page points out.

The “Reste à facturer” (Remaining to bill) tab of an order: the summary, the line-by-line detail, and the invoices examined.
The “Reste à facturer” (Remaining to bill) tab of an order: the summary, the line-by-line detail, and the invoices examined. Screenshot of the French-language interface.
The by-line view: each order line with its quantity ordered, billed and remaining, and the corresponding amounts.
The by-line view: each order line with its quantity ordered, billed and remaining, and the corresponding amounts. Screenshot of the French-language interface.
05

Settings

The setup page, reserved for administrators, has two options:

Setting Default Effect
Count draft invoices no By default, a draft invoice is not counted: it is only flagged on the order.
Count invoices created from a shipment yes An invoice created from a shipment is linked to the shipment, not to the order. When checked, it is attached to the order of the shipment.
06

Security and safeguards

  • Read only. The module writes nothing to orders or invoices.
  • One dedicated permission, “Read the remaining amount to bill on orders”.
  • Dolibarr permissions on top: “Read customers orders” and “Read customer invoices (and payments)”. Without them, the list, the export and the tab are refused.
  • Core restrictions respected: a sales representative without the permission to see all customers only sees their own customers, in the list as in the export; an external user, only their own company. The tab applies the same checks as the order card.
  • Setup reserved for administrators, with an anti-CSRF token on saving. The export link also carries a token.
  • Protected CSV export: a cell starting with =, +, - or @ is neutralised so that the spreadsheet does not interpret it as a formula.
07

What you get

What the module writes to your installation
Database tables createdNo table. The module reads orders, invoices and the links between documents; it writes nothing to the database. Its two settings are stored as Dolibarr constants: DOLIXRAF_INCLUDE_DRAFTS and DOLIXRAF_INCLUDE_SHIPMENTS.
PermissionsOne permission: “Read the remaining amount to bill on orders”. The Dolibarr permissions “Read customers orders” and “Read customer invoices (and payments)” are also required: without them, the list, the export and the tab are refused. A sales representative without the permission to see all customers only sees their own customers; an external user, only their own company. The setup page is reserved for administrators.
Uninstalling
  • Disable the module in SetupModules/Applications. The menu and the tab disappear.
  • No order or invoice has been changed by the module: there is nothing to undo.
  • The module's two settings, if they were saved, are not deleted.

The dolixresteafacturer folder, in readable PHP, under the GPL v3 or later licence: the module descriptor, the list, the order tab, the setup page, the calculation class and its shared functions, the icons.

  • Languages: French (fr_FR), English (en_US) and German (de_DE).
  • A README.md describing the calculation, the alerts and the limits (in French).
  • A ChangeLog.md.
  • No table is added. The module reads orders, invoices, their lines and the links between documents.
  • Nothing is written to orders or invoices, neither on display nor on export.
  • The only writes are the two settings of the setup page, stored as Dolibarr constants: DOLIXRAF_INCLUDE_DRAFTS and DOLIXRAF_INCLUDE_SHIPMENTS.
  • The CSV export is a file downloaded by your browser; it is not kept on the server.
  • No outgoing connection: nothing is sent anywhere.
08

Compatibility

The module descriptor only declares a minimum version. No upper bound is written in the code: the versions below are those on which the module has actually been run.

Compatibility of the Remaining to bill module
Dolibarr versionsDolibarr 19.0 minimum. Installed and run on 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4, 24.0.1 and 24.0.2.
Minimum PHP7.4
Dolibarr modules to enableSales Orders, Invoices
LicenceGPL v3 or later, full source code
LanguagesFrench, English, German
MenuCommerce menuSales Orders“Remaining to bill”. A “Remaining to bill” tab on each sales order.
09

Installation

  1. Get the module from the DoliStore and download the zip file.
  2. In Dolibarr: HomeSetupModules/Applications“Deploy/install external app/module” tab, then upload the zip. Otherwise, unzip the dolixresteafacturer folder into htdocs/custom/.
  3. Enable “Remaining to bill” in the list of modules. Dolibarr also enables the Sales Orders and Invoices modules if they are not already enabled. No table is created.
  4. Grant the “Read the remaining amount to bill on orders” permission to the users concerned. They also need the “Read customers orders” and “Read customer invoices (and payments)” permissions.
  5. If needed, set the two options in the module's setup page: count draft invoices (off by default), count invoices created from a shipment (on by default).

The details — permissions on the custom folder, shared hosting, upgrades, uninstalling — are on the page Installation and upgrades.

10

Frequently asked questions

Which Dolibarr versions does this module work on?

The descriptor requires Dolibarr 19.0 minimum and PHP 7.4 minimum. The module has been installed and run on 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4 and 24.0.1. If you are on another version and have any doubt, write before buying.

Does the module change my orders or invoices?

No. It only reads orders, invoices and the links between documents. It creates no table. Nor does it change an order's “Billed” status: it only flags an order classified billed while an amount remains.

How does the module know which invoice line matches which order line?

Dolibarr does not record it: an invoice line does not keep the order line it comes from, only the link between the two documents exists. The module therefore matches by product, and free lines by start of label and unit price. A free line whose label or price was changed on the invoice is not matched: it appears in the tab, and the “Free line to check” alert is shown.

How are down payments and credit notes handled?

A down payment invoice reduces the order's remaining amount until it is deducted. When the final invoice deducts it, the two offset each other. If the down payment is consumed as a payment (core option FACTURE_DEPOSITS_ARE_JUST_PAYMENTS), it is no longer counted. A credit note attached to an invoice of the order is counted as negative on the lines concerned.

One invoice groups several orders. Is it counted twice?

No. Its lines are spread between the linked orders, in order sequence (date, then reference), each order line capped at its quantity. Lines of that invoice that match no order are assigned to none, and the “Shared invoice” alert says so.

What if I uninstall?

The menu and the tab disappear. Since the module wrote nothing to your orders or invoices, there is nothing to restore. The module's two settings remain stored.

Who handles support, and how do updates work?

Support is provided by the person who wrote the module, at support@dolix.fr. Ordering, payment, the invoice and the download are handled by the DoliStore, where new versions are published.

11

Version history

Taken from the module’s ChangeLog.md file: a single source.

1.0.114 October 2026

Display fix: on a 1280 px screen with the left menu, the list no longer overflows to the right (filters and help text cut off); when not all columns fit, only the table scrolls. Narrower Third party and Description columns, full text in the tooltip.

1.0.012 October 2026

First version: remaining amount to bill on customer orders, in quantity and amount excluding tax, line by line. List with three views (by order, by line, by customer) with filters, sorting, grand total and CSV export. “Remaining to bill” tab on the order. Partial invoices, percentage invoices, credit notes, down payments, invoices shared by several orders and invoices created from a shipment are taken into account. Six alerts. Core restrictions respected. Interface in French, English and German.

12

Support for this module

Write to support@dolix.fr. The person who wrote the module is the one who replies.

Reply within two working days. This is not an on-call service.

To include in your message

  • The exact Dolibarr version.
  • The module concerned and its version — here dolixresteafacturer 1.0.1.
  • What you did, and what you expected.
  • The error message copied exactly, or a screenshot.
  • How Dolibarr is installed, if you know.

This module is on sale on the DoliStore.

Ordering, payment, invoicing and download are handled by the DoliStore.

Buy on the DoliStore — €39 excl. VAT
Also

The other modules