| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Sales (sale_management) • Discuss (mail) |
| Lines of code | 5638 |
| Technical Name |
work_structure_levels |
| License | OPL-1 |
| Website | https://spre.es |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Sales (sale_management) • Discuss (mail) |
| Lines of code | 5638 |
| Technical Name |
work_structure_levels |
| License | OPL-1 |
| Website | https://spre.es |
Bill of Quantities (BoQ)
Create clearer, more professional quotations, sales orders, and invoices with a structured Bill of Quantities designed for detailed commercial projects.
In Odoo 19, this module adapts to the native section and subsection structure and extends it with deeper levels, so you can build section / subsection / subsection / subsection trees while keeping quantity totalizers, print points, and the reporting features from previous versions.
Video Demo
Copy/paste in your browser: https://youtu.be/kfKMFxezkZ0
At a glance
- Build complete BoQ structures directly in sales.
- Extend Odoo 19 sections and subsections with multiple hierarchy levels.
- Control exactly what appears in customer-facing documents.
- Keep invoicing fast and focused on adjustments.
- Keep quantity totalizer taxation controlled and predictable.
Start in Sales
Build the full BoQ structure in the quotation or sales order, where you can organize every level clearly and define how the final document will be presented to the customer.
Consistent Reports
Keep the same structured layout across preview and PDF, so quotations, sales orders, and invoices remain consistent, clear, and professional at every stage.
Faster Invoicing
Use invoices for price and quantity adjustments without rebuilding the hierarchy, helping your team work faster while keeping the approved structure intact.
Built for the Odoo 19 structure
Odoo 19 includes native sections and subsections. This version of Bill of Quantities uses that native behavior as the base instead of replacing it with a separate structural line type.
The module extends that native model with additional depth: where standard Odoo works with section and subsection, this module lets you continue nesting as deeply as the project requires.
In practical terms, you can organize documents as section / subsection / subsection / subsection / ..., while still using the familiar Odoo controls and keeping the advanced BoQ features from previous module versions.
Step-by-step usage
Step 1. Enable the structure
Open the quotation or sales order and enable Use Work Structure. Once enabled, the document becomes ready for a structured and professional BoQ setup.
Step 2. Add the lines you need
Build your BoQ using the elements that best fit each project:
- regular products
- native Odoo sections
- native Odoo subsections with additional BoQ depth levels
- notes
- quantity totalizers
Step 3. Organize the tree in sales
In the sales document, the handle gives you full control over the structure:
- Horizontal drag: changes the level of the line.
- Vertical drag: moves the line to another position in the document.
If a section, subsection, quantity totalizer, or line has children, the full subtree moves with it so the hierarchy stays clear, organized, and consistent.
Step 4. Define print behavior
Print behavior is controlled in the sales document. The invoice keeps those print decisions and shows the active print points in green.
In quotations and sales orders, the printed result is practically the same as what you see on screen. The only difference is that yellow-background section headers are not printed, and red lines or red subtrees are excluded from the final document.
Step 5. Generate the invoice
The invoice keeps the structure, uses the same shared report layout, and displays the lines that represent the print points, preserving consistency from quotation to invoice.
Line colors and print states
Yellow
Used for structural section or subsection headers when the header itself should not be printed, while the child lines remain visible in the final document.
Red
The line is excluded from printing. For structural sections or subsections, the whole related block is excluded as well.
Green
In invoices, green lines mark the print points used by preview and PDF, making the visible output easier to control.
How Sales Documents Print
In quotations and sales orders, the printed result is practically the same as what you see on screen.
Yellow-background lines are not printed, and red lines or red subtrees are excluded from the final document.
Double click behavior
In sales, double click gives you two practical ways to manage print behavior and structure visibility.
- Double click on the amount cell: changes the print state of the line.
- Double click on the sequence handle: collapses or expands BoQ groups and helps define the visible print points.
In invoices, double click does nothing. Print logic and print-point behavior belong to the quotation or sales order.
Quantity Totalizer taxes
The general BoQ structure can contain different taxes in different branches.
Inside a quantity totalizer subtree, the quantity totalizer is the taxable accounting line. Its taxes are applied to the taxable child lines in that subtree so the calculation stays consistent, including cases with multiple taxes such as VAT plus withholding.
If the quantity totalizer taxes are changed, the subtree follows that tax configuration.
Recommended way of working
- Build the full structure in the quotation first.
- Define print states in the sales document.
- Use native sections and subsections for the structure, with BoQ depth levels when more detail is needed.
- Use quantity totalizers when a subtree needs to be billed as a quantity-based accounting line.
- Generate the invoice from that prepared structure.
- Use the invoice only for commercial adjustments, not for hierarchy design.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module