PMIS Bills of Quantities
Adds PMIS project, demand, assessment, measurement and valuation workflows on top of CRM, Sales, Purchase and Accounting.
The English interface calls a demand a Bill of Quantities (BoQ) and an assessment a BoQ Item. Menus, fields, reports and messages use these terms. The backend names and DARE terminology remain demand and assessment.
The implemented hierarchy is:
pmis.project groups one or more demand records.
pmis.site optionally splits a project into physical or operational sites.
crm.lead records with type = "demand" hold demand-specific data and remain the direct container for assessments.
pmis.assessment records describe planned products, services, quantities, prices, costs and sections for a demand.
pmis.measurement.book records capture measured quantities against demand assessments, with draft and issued iterations.
pmis.situation records certify accepted measurement lines, variations and adjustments, and can prepare/post customer invoices for temporary sale situations.
The module supports two demand directions:
Sale / Outside demands generate quotations and sale orders from selected assessments.
Purchase / Inside demands generate purchase orders from selected assessments.
Assessment records then keep the operational value flow visible from the same planning line: sales order, delivered, invoiced, purchase order, receipt and vendor bill measures.
Assessments can depend on other assessments. When a selected assessment has dependencies, the commercial response wizards consolidate the selected assessment and its compatible dependency chain into one sale or purchase order line so the response line represents the complete work package.
The valuation layer adds project sites, measurement books, temporary/final situations, variations, PDF reports and accounting links. Completing measurement issuance and temporary sale Situation certification requires the separately installed pmis_signoff addon and its company-specific workflow configuration. It is not a dependency installed automatically by pmis_assessment.
Table of contents
DARE concept
The DARE concept was developed by Matjaž Mozetič as part of research into models of personality and reasoning. In its simplified form it models a knowledge database built from real-life experience gathering. We have needs, wants and wishes: demands. We assess actions needed and respond accordingly. That way we build experience by trial and error.
The DARE concept is composed of four levels:
D - Demand: a CRM Lead or Opportunity converted into a concrete demand, optionally grouped by a PMIS Project.
A - Assessment: product or service lines that estimate quantities, prices, costs and sections needed to satisfy the demand.
R - Response: the sale order or purchase order created from selected assessments.
E - Experience: downstream operational records such as sale order lines, purchase order lines, deliveries, invoices, receipts and vendor bills linked back to the assessment.
In the current implementation, the assessment line is the pivot between A, R and E. The same record starts as a plan, creates response documents through wizards, and accumulates actual sales, delivery, invoicing, purchase, receipt and billing values for comparison against the original plan.
DARE to learn, grow, progress.
Features
PMIS Projects
Adds the pmis.project model with company, responsible user, sales team, description, chatter and activities.
Adds project list, kanban, form and search views under Bills of Quantities > Operations > Projects.
Shows related demands on the project form and through a smart button.
Shows related sites on the project form and through a smart button.
Opens project demands with the existing demand action and pre-fills new demands with type = "demand", project, company, responsible user and sales team.
Enforces same-company project/demand links and prevents assigning non-demand CRM leads to a PMIS Project.
PMIS Sites
Adds pmis.site for project-specific locations or operational areas.
Stores code, investor/site owner, site contact, responsible user and notes.
Adds kanban, list, form, pivot, graph and activity views under Bills of Quantities > Analytics > Sites.
Restricts sites to the selected project company and keeps project/site domains multi-company safe.
Demands
Extends crm.lead with type = "demand" and demand direction: Sale / Outside or Purchase / Inside.
Adds demand list, kanban, form, search, graph and pivot views under Bills of Quantities > Operations > Bills of Quantities.
Adds project references to demand list, kanban, form, search and group-by workflows.
Keeps existing CRM leads and opportunities separate from demand-only workflows.
Provides conversion from opportunity to demand through a wizard. Leads must first become opportunities; direct lead-to-demand conversion is rejected.
Purchase demands use a vendor. Customer and contact fields are hidden in the form and cleared by create, write and onchange rules for this direction.
Creates sale demands from one or more sale orders through a modal assignment wizard. The wizard reuses the existing batch validation rules, then either assigns the new demand to an existing same-company PMIS Project or creates a new PMIS Project before linking the demand and source sale orders.
Keeps purchase order demand creation direct and purchase-specific: selected purchase orders create a Purchase / Inside demand with the commercial vendor when they satisfy the same single-company and single-commercial-partner batch rules.
Assessments
Adds pmis.assessment as the direct assessment container below a demand.
Supports assessment stages, sections, dependencies, assignment and dates.
Tracks planned value/cost and actual sale, delivery, invoice, purchase, receipt and vendor bill values.
Adds list, kanban, form, graph and pivot assessment views under Bills of Quantities > Analytics > BoQ Items.
Adds smart buttons from demands to assessments and from assessments to related sale or purchase lines.
Supports assessment dependencies through dependency_ids. A dependency is interpreted as work required by the assessment that owns the dependency relation.
Commercial response wizards traverse dependencies transitively, protect against cycles, avoid duplicate counting when both a parent and dependency are selected, and keep a deterministic order by section, sequence and record id.
Dependency consolidation requires compatible demand, company, section, product, UoM and commercial unit value. Sale consolidation requires the same planned sale price; purchase consolidation requires the same planned unit cost and a product. Conflicts are rejected with a user-facing error instead of creating a misleading order line.
Measurement books
Adds pmis.measurement.book and pmis.measurement.book.line for measured quantities by project, optional site and demand.
Adds pmis.measurement.book.iteration as the printable issuance unit of a measurement book. Each book keeps one active draft iteration for current editable pages and an immutable history of issued iterations.
Populates an empty draft from demand assessments in section and sequence order. Initial measured and accepted quantities equal the remaining planned quantity after previously accepted measurements, with a minimum of zero.
Preserves existing draft lines and quantities. Update Lines from Bill of Quantities adds missing assessments without overwriting controller edits.
Blocks changing the demand once measurement lines or issued evidence exist.
Tracks planned, ordered, delivered, previous accepted, current accepted, cumulative accepted and remaining quantities per assessment line.
Supports draft, submitted, accepted, rejected and cancelled states.
Provides iteration issuance for the pmis_signoff completion workflow: stores a PDF snapshot, locks the issued lines and creates the next empty draft iteration. Direct issuance is rejected even for authorized users.
Locks issued iteration content, ordering, quantities, snapshot lines and issued PDF snapshots while keeping audit-safe chatter and situation traceability readable.
Generates Measurement Book Iteration PDF reports from draft lines before issue and from immutable snapshot lines after issue.
Situations and valuation
Adds pmis.situation and pmis.situation.line for temporary and final certifications.
Generates situation work lines from issued measurement-book iterations and prevents certifying the same measurement line in multiple non-cancelled situations. Accepted measurement books' lines without an iteration are also eligible. Selection is limited to the same demand, company and optional site.
Stores explicit links from situations to the issued measurement-book iterations that support their certified quantities.
Calculates previous, current, cumulative and remaining certified quantities and values from measurement lines and accepted variations.
Supports variation/adjustment lines for additional work, reductions, price adjustments, deductions, retention, advance settlement and other adjustments.
Prepares draft customer invoices for temporary sale situations. Posting requires an accepted or already invoiced Situation and accounting permissions. Automatic preparation or posting after sign-off depends on the company policy.
Links generated invoice lines back to situation lines and stores the linked invoice or bill on the situation.
Provides Measurement Book and Situation PDF reports that pmis_signoff retains as document evidence when its workflow completes.
Responses and experience
Creates draft quotations from selected sale-demand assessments and draft purchase orders (requests for quotation) from purchase-demand assessments. Confirmation remains part of the standard Sales or Purchase workflow.
Links sale order lines and purchase order lines back to the originating root assessment through pmis_assessment_id and stores all assessments included in a consolidated commercial line through pmis_assessment_ids.
Builds consolidated commercial line descriptions from every included assessment, preserving multi-line assessment text in deterministic order.
Supports creating a demand from selected sale orders or purchase orders when they belong to a single company and commercial partner. Sale orders open the PMIS Project assignment wizard; purchase orders keep the direct creation workflow.
Reports
BoQ Item prints an individual assessment's scope and sale values.
Bill of Quantities Report prints the selected demand and its assessments in section and sequence order. It is available through Print Bill of Quantities Report and the demand's Print menu.
PMIS Project Bills of Quantities prints the project's demands and their assessments, with sale totals grouped by demand currency.
Measurement Book, Measurement Book Iteration and Situation provide the corresponding valuation documents. Draft iteration output is provisional; issued iteration output uses retained snapshot lines.
Situation reports use a dedicated A4 landscape paper format for their wide quantity/value tables. Other reports and company defaults remain unchanged. Existing signed snapshots retain their original format; upgrading pmis_assessment applies landscape to newly rendered reports.
Financial values in assessment, demand and project reports require Program Estimation access. Purchase-demand report content omits customer and commercial price/cost columns.
The dedicated PMIS report layout uses the document company and displays the document name and PDF page numbering in its footer. These reports do not require report_display_name_footer.
Configuration
The manifest dependencies are sale_crm, account, purchase and product.
Sales users can work with projects, assessments and demand-creation wizards. Sales managers can also delete projects and maintain assessment sections and stages; Sales users have read-only access to those configuration records.
Purchase order navigation requires Purchase access. Generating purchase orders from assessments also uses a wizard restricted to Sales users, so users need the relevant Sales and Purchase permissions.
Optional estimation columns are visible to users in the Program Estimation group.
Measurement book menus are visible to users in Measurement Operator or PMIS Valuation Manager.
Situation and variation menus are visible to users in Situation Operator or PMIS Valuation Manager.
PMIS Valuation Manager implies measurement, situation, control officer, accounting and Sales manager access.
PMIS Projects, Sites, Measurement Books and Situations are company-aware and protected by multi-company record rules.
Measurement Book and Situation references use dedicated sequences loaded by the module.
Sign-off integration
Install pmis_signoff to enable Financial Sign-off on measurement books and Certification Sign-off on temporary sale Situations. Configure an active workflow and signing authority for each participating company. The supplied workflow records target the main company; assigning valuation groups alone does not configure signing authority or responsibility.
The supplied integration covers measurement books and temporary sale Situations. It does not provide routes for final Situations, purchase Situations or individual variations. See the PMIS Sign-off documentation for its configuration and authority rules.
Temporary Situation invoicing
Under Settings > PMIS Bills of Quantities > Temporary Situations, configure the company-specific Invoice policy:
Certification only is the default and creates no invoice automatically.
Prepare draft invoice prepares or rebuilds the linked draft invoice.
Prepare and post invoice additionally posts it using accounting permissions.
These policies run after temporary sale Situation acceptance through sign-off. An existing posted invoice is reused without rebuilding or reposting it. A draft invoice can also be prepared manually before acceptance; preparing it does not post accounting entries or certify the Situation.
Usage
Create a PMIS Project:
Go to Bills of Quantities > Operations > Projects.
Create a project with a company, responsible user and optional sales team.
Use the project Bills of Quantities smart button or embedded demand list to create related demands.
Convert an opportunity into a demand:
Open a CRM Opportunity. Convert a Lead to an Opportunity first if needed.
Use the conversion wizard and choose Sale / Outside or Purchase / Inside.
Optionally assign the demand to a same-company PMIS Project.
Add assessment lines with product, section, planned quantity, planned sales price and planned unit cost.
For sale demands:
Use the sale creation wizard to select assessment sections or individual assessment lines.
If selected assessments have compatible dependencies, the wizard creates one consolidated commercial line per root assessment. The line description lists every included assessment.
Choose the standard pricing mode to keep the common unit price and aggregate quantity, or the totaled mode to set quantity to 1 and price to the aggregated planned sale value.
Create the quotation, then confirm it through the standard Sales workflow.
Track sales order price, value and cost, then delivered and invoiced values back on the assessment.
For purchase demands:
Set the demand vendor.
Use the purchase creation wizard to select assessment sections or individual assessment lines.
If selected assessments have compatible dependencies, the wizard creates one consolidated commercial line per root assessment. The line description lists every included assessment, the quantity is aggregated, and the common planned unit cost is used.
Create the request for quotation, then confirm it through the standard Purchase workflow.
Track purchase order, receipt and vendor bill costs back on the assessment.
Create a sale demand from sale orders:
Select one or more sale orders from a list or form view.
Use Create Bill of Quantities.
Confirm that all selected orders belong to the same company, the same commercial customer and are not already linked to a demand.
Choose Assign to existing PMIS Project and select a same-company project, or choose Create a new PMIS Project and enter the project name and optional responsible user or sales team.
Confirm the wizard. The module creates the project when requested, creates the demand linked to that project, links all selected sale orders, and posts traceability chatter messages on the demand and orders.
Create a purchase demand from purchase orders:
Select one or more purchase orders from a list or form view.
Use Create Bill of Quantities.
The selected orders must belong to the same company, the same commercial vendor and must not already be linked to a demand.
The module creates one Purchase / Inside demand, sets the vendor, links the selected purchase orders and posts traceability chatter messages.
Create and accept a measurement book:
Go to Bills of Quantities > Analytics > Measurements > Measurement Books.
Create a book for a project, optional site and sale or purchase demand.
Review the automatically populated draft lines. Open Open Active Iteration to inspect its editable pages and adjust measured or accepted quantities, basis, calculation, drawing reference and notes.
Use Update Lines from Bill of Quantities while the book is in draft if assessments have been added to the demand. Existing edits are retained.
Submit the book.
With pmis_signoff installed and configured, complete Financial Sign-off. The issued PDF snapshot is attached, issued lines become available for situations and the next draft iteration is created empty.
Create a temporary sale situation:
Go to Bills of Quantities > Analytics > Valuation > Situations.
Create a temporary situation for the same project, optional site and sale demand.
Use Generate Lines to pull eligible measurement lines from issued measurement-book iterations.
Add any variation or adjustment lines and submit, decline or cancel them. Only accepted variations contribute to certified amounts and invoices; a submitted variation is not automatically accepted with the Situation.
Use Prepare Draft Invoice if you need to inspect the draft invoice before acceptance.
Submit the situation and complete Certification Sign-off, supplied by the installed and configured pmis_signoff addon.
pmis_signoff retains the accepted Situation PDF snapshot. For temporary sale situations, the company-specific invoice policy either performs certification only (the safe default), prepares one reusable draft invoice, or prepares and posts it through normal accounting permissions. The Situation is the certified document; the invoice records the accounting effect.
Create a final situation:
Create a situation with type Final Situation.
Generate or enter the final work and variation lines.
Submit the situation.
Final Situation acceptance requires an additional integration: the supplied pmis_signoff routes do not support this type.
Assessment list, form, pivot and graph views expose concise flow terminology. Sales-specific labels start with Sales and purchase-specific labels start with Purchase so optional columns remain distinguishable in dense views.
Data model notes
Assessments belong directly to demands through pmis.assessment.crm_lead_id.
Assessment dependencies use pmis.assessment.dependency_ids. The relation is traversed from root assessment to required dependency assessments; direct and transitive dependencies are included in commercial consolidation.
Dependency consolidation does not cross demand, company, section, product, UoM or commercial unit value boundaries. If those attributes differ, the wizard raises a clear validation error instead of splitting silently.
Consolidated sale and purchase order lines keep pmis_assessment_id on the root assessment for flow metrics and expose pmis_assessment_ids for the full included assessment set.
Projects do not own assessments directly. A project reaches assessments through its linked demand records.
Sites belong to projects and inherit or validate the project company.
Measurement Books and Situations belong to one project, one demand and optionally one site. The selected demand must belong to the selected project and company.
Measurement Book lines point to assessments and snapshot assessment description, UoM and planned quantity for reporting.
Measurement Book Iterations own the editable draft lines before issue and immutable snapshot lines after issue. A book can have only one draft iteration at a time.
Situation work lines can link to measurement book lines from issued iterations. Active situations cannot reuse the same measurement line.
Situation records keep explicit many-to-many traceability to the issued measurement-book iterations used for confirmation.
Situation variation lines remain explicit workflow records; no variation sign-off route is provided by this addon.
Cross-company project, site, demand, measurement and situation links are blocked at ORM level, not only by UI domains.
CRM record rules still control access to demands; project actions do not widen CRM demand visibility.
Known limitations
Demand directions are limited to sale and purchase. The conversion wizard accepts opportunities only.
pmis_assessment alone does not provide the user-facing sign-off workflow needed to issue measurement iterations or accept Situations.
Final and purchase Situations have no supplied sign-off route. Variations have submission, decline and cancellation actions, but no supplied acceptance route.
Automatic Situation invoicing applies only to temporary sale Situations. It does not create vendor bills or final-settlement invoices.
Consolidated response quantities and values are measured through the root assessment's linked order lines. The full assessment set provides traceability; it does not distribute actual values back across dependency assessments.
Sales cost measures use product standard cost. The flow measures are not inventory valuation or general-ledger reconciliation.
Bug Tracker
Bugs are tracked on PMISuite Repository Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
Credits
Contributors
Matjaž Mozetič
Maintainers
Current maintainer:
Luxim is an independent R&D and deployment company focused on solving complex problems in the Odoo ecosystem.
Luxim is an active member of OCA (Odoo Community Association).






