Quotes and pricing

Margin per day

margeparjour · version 1.0.0

You see what a working day brings in before you accept the quote.

Price
€19 excl. VAT
Dolibarr
19.0 minimum
Version
1.0.0
Licence
GPL v3+
Languages
French, English

€19 excl. VAT.

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

Buy on the DoliStore — €19 excl. VAT
Card of a draft quote on Dolibarr 24.0.0: the “Marge par jour” line (Margin per day) shows €45.00, with the detail “marge totale 90,00 € / 2 j” (total margin €90.00 / 2 days), just above the “Journées prévues” field (Planned days).
Card of a draft quote on Dolibarr 24.0.0: the “Marge par jour” line (Margin per day) shows €45.00, with the detail “marge totale 90,00 € / 2 j” (total margin €90.00 / 2 days), just above the “Journées prévues” field (Planned days). Screenshot of the French-language interface.
01

What the module does

  • Adds a “Planned days” field on the quote, decimals allowed.
  • Shows “Margin per day” on the quote card, with the detail: total margin and number of days.
  • Adds a sortable “Margin / day” column in the quote list, as well as the “Planned days” column.
  • Uses Dolibarr's official calculation (FormMargin::getMarginInfosArray): same figures as the “Margins” block of the card.
  • As long as the days are not filled in, the card shows “Fill in ‘Planned days’ to get the margin per day” instead of a wrong figure.
  • Creates no table in your database.
02

Who it is for

You accept a job without knowing whether it brings in more or less than another one of the same duration.

Two quotes, two similar amounts. The first takes one day, the second three. Dolibarr gives you the total margin of each quote, but not the margin relative to the duration. So you decide without the figure that matters: what the day really brings in.

Who it is for: Any business that sells time together with supplies and wants to compare two quotes of the same duration: tradespeople, engineering consultancies, service providers.

03

What the module does not do

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

  • Only handles commercial proposals. Not orders, not invoices, not projects.
  • The margin depends on the cost prices entered on the quote lines. Without a cost price, the margin shown is the amount sold.
  • The number of days is entered by hand. The module does not work it out from the tasks, from the time consumed or from the quantities.
  • No dedicated permission: anyone who can open a quote sees the margin per day.
  • Does not add the margin per day to PDF documents.
04

How it works

The module adds a “Planned days” field on the quote card. It divides the total margin of the lines by that number and shows the result in two places: on the quote card, and in a sortable column of the quote list.

The margin calculation is not reinvented: the module calls the Dolibarr core function that feeds the “Margins” block of the card. The figures shown are therefore the same as the ones you already read, labour included as long as the Services module is enabled and cost prices are filled in on the lines.

As long as “Planned days” is empty, the card shows “Fill in ‘Planned days’ to get the margin per day” rather than a figure that would mean nothing.

On the quote card. The “Margin per day” line sits with the other header information. In the screenshot, a €300 excl. VAT quote on Dolibarr 24.0.0 shows 45,00 € (marge totale 90,00 € / 2 j), and the official “Margins” block does show €90.00 of total margin, on the right of the same screen.

In the quote list. Two columns are added on the right of the table: “Planned days” and “Margin / day”. The second sorts like any native column, which lets you rank the jobs in progress by how much they earn per unit of time.

The “Marge / jour” column (Margin / day) sorts like the others. Two jobs of almost identical amounts do not bring in the same: €2,850 over 3 days is worth €665/day, €2,880 over 8 days only €108.
The “Marge / jour” column (Margin / day) sorts like the others. Two jobs of almost identical amounts do not bring in the same: €2,850 over 3 days is worth €665/day, €2,880 over 8 days only €108. Screenshot of the French-language interface.
As long as the days are not entered, the module calculates nothing and says so. It does not make up a figure.
As long as the days are not entered, the module calculates nothing and says so. It does not make up a figure. Screenshot of the French-language interface.
07

What you get

What the module writes to your installation
Database tables createdNo table. The module folder does not contain a sql/ directory. On activation, the module creates a “Planned days” complementary attribute (code mpj_journees) on commercial proposals: the value is stored in the quotes' complementary attributes table, already present in Dolibarr.
PermissionsThe descriptor declares rights = array(): the module adds no permission. The “Margin per day” line is visible to anyone who can open the quote.
Uninstalling
  • Disable the module in SetupModules/Applications. The line and the column disappear.
  • The “Planned days” attribute and the values already entered stay in the database: nothing is erased.
  • To remove everything: SetupModules/ApplicationsProposalsComplementary attributesdelete mpj_journees. This deletion erases the values entered.
  • The complete margeparjour folder, in clear: nothing is encrypted, nothing is obfuscated.
  • The French and English translations.
  • A README.md file and a ChangeLog.md.
  • No table is created. The module folder does not contain a sql/ directory.
  • The module adds a complementary attribute on quotes, mpj_journees. Its value is stored in the complementary attributes table that Dolibarr already manages.
  • The module does not change any existing data. It reads the quote lines and displays a calculation.
  • 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 Margin per day module
Dolibarr versionsDolibarr 19.0 minimum. Run on 19.0.4, 23.0.4 and 24.0.0.
Minimum PHP7.4
Dolibarr modules to enableCommercial proposals
LicenceGPL v3 or later, full source code
LanguagesFrench, English
MenuNo menu entry. The module shows up on the quote card and in the quote list.
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 margeparjour folder into htdocs/custom/.
  3. In the module list, enable “Margin per day”. The “Planned days” complementary attribute is created at that point.
  4. Open a quote and fill in “Planned days”: the margin per day is shown.

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 run on 19.0.4, 23.0.4 and 24.0.0. It uses only one core function, FormMargin::getMarginInfosArray, present across that whole range. If you are on an intermediate version and have a doubt, write before buying.

Does it touch my database?

The module creates no table. It adds a “Planned days” complementary attribute on quotes, that is, a column in the complementary attributes table that Dolibarr already manages. It does not change any existing data: it reads the quote lines and displays a calculation.

What if I uninstall?

Disabling the module makes the line and the column disappear. The “Planned days” attribute and the values entered remain: you find them again if you re-enable it. To delete them, you have to remove the mpj_journees attribute by hand in the setup of the Proposals module.

Is the figure shown the same as the one in the “Margins” block?

Yes, it is the same calculation: the module calls the core function that feeds that block. One consequence worth knowing: if the Services module is not enabled, the “Margins” block does not show the services line, and so not your labour. Enable it to see the full margin.

Who provides support?

The person who wrote the module. Write to support@dolix.fr with your Dolibarr version, the module version and what you are seeing.

How do payment and updates work?

Ordering, payment, the invoice and the download are handled by the DoliStore. New versions are published there, and the version history on this page is updated with each release.

11

Version history

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

1.0.08 September 2026

First version: “Planned days” field on quotes, margin per day on the card and as a sortable column in the list.

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 margeparjour 1.0.0.
  • 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 — €19 excl. VAT
Also

The other modules