PMIS Field Service
Adds operational Construction Daily Log workflows on top of pmis_assessment and OCA Field Service.
The implemented hierarchy is:
pmis.project groups the project context supplied by pmis_assessment.
pmis.site optionally identifies the physical or operational project site.
fsm.order records schedule and execute field-service work and can carry PMIS project and site context.
pmis.field.service.daily.log records the daily site header, operational narrative, site conditions, review state, correction lineage and evidence attachments.
pmis.field.service.daily.log.diary.entry records time-based diary events such as activities, instructions, inspections, safety notes, quality notes, interruptions, incidents and observations.
pmis.field.service.daily.log.labour records personnel evidence.
pmis.field.service.daily.log.equipment records machinery and equipment evidence.
pmis.field.service.daily.log.material records operational material evidence with optional product, UoM, quantity, context, reference and stock picking link.
The module intentionally keeps the Construction Daily Log separate from measurement, certification, commercial delivery, stock movement and accounting workflows. It records what happened on site and preserves operational evidence; it does not create accepted, certified, delivered, invoiced or accounted quantities.
Table of contents
Operational concept
pmis_field_service implements the operational daily site journal layer of PMISuite.
It connects:
PMIS project and site context;
optional OCA Field Service orders;
daily operational narrative and diary entries;
personnel, machinery/equipment and material evidence;
evidence attachments;
controlled review, approval and correction history.
The Construction Daily Log is deliberately an operational record. It is not a Measurement Book, Situation, invoice, stock document or qualified electronic- signature evidence. Material, personnel and equipment records are supporting site evidence only and never update stock, sales, purchases, valuation, invoicing or accounting records.
Features
Construction daily logs
Adds pmis.field.service.daily.log as a company-aware, chatter-enabled Construction Daily Log header.
Tracks reference, company, date, PMIS project, optional PMIS site, optional Field Service order, FSM location, team, assigned person, assigned persons, contractor, investor and responsible user.
Captures weather, temperature, site conditions, work start/end, downtime hours and downtime reason.
Captures planned activities, daily operational narrative, instructions and notices, supervision findings, inspections and tests, deviations and incidents, safety and quality records, and corrective measures.
Supports embedded diary entries, personnel evidence, machinery/equipment evidence and material evidence.
Provides an evidence attachment smart button and blocks attachment changes after approval.
Generates references from pmis.field.service.daily.log in the log's company context and enforces unique references per company. The supplied sequence is shared across companies, with prefix GDN/%(y)s/ and five-digit padding.
Adds list, form, kanban, search, pivot and graph views under Bills of Quantities > Operations > Field Operations > Construction Daily Logs.
Workflow and corrections
Supports draft -> submitted -> reviewed -> approved as the positive flow.
Requires either a daily operational narrative or at least one diary entry before submission.
Restricts review, approval, cancellation and corrective-revision creation to PMIS Field Service Managers.
Allows managers to reject submitted or reviewed logs with a reason. A Field Service User can then return a rejected log to draft; this increments the revision and clears the correction reason while retaining the rejection reason.
Allows non-approved logs to be cancelled with a reason.
Locks approved logs against direct business-content edits and deletion.
Allows only chatter, activities and controlled correction metadata on approved logs.
Creates corrective draft revisions from approved logs when a manager enters a correction reason.
Keeps correction lineage explicit through source and superseding daily-log links, rejects correction cycles and validates that corrections keep the same company, project, site and FSM order as their source.
Marks a source daily log as superseded only when its corrective revision is approved. The source stays approved and locked. Once superseded, it cannot create another correction; a second correction cannot supersede it again.
Diary entries
Adds pmis.field.service.daily.log.diary.entry for structured event-level diary records.
Tracks sequence, time from/to, shift, category, location area, reporting person, description and notes.
Supports activity, instruction, inspection/test, safety, quality, interruption, incident, observation and other categories.
Keeps diary entries operational-only; they have no BoQ item, sale, purchase, measurement, situation, invoice or quantity fields.
Blocks creating, moving, editing or deleting diary entries on approved daily logs.
Personnel evidence
Adds pmis.field.service.daily.log.labour for personnel evidence.
Tracks FSM person, partner, external person name, role, shift, time from/to, hours and notes.
Enforces non-negative hours.
Blocks creating, moving, editing or deleting personnel evidence on approved daily logs.
Machinery and equipment evidence
Adds pmis.field.service.daily.log.equipment for machinery and equipment evidence.
Tracks FSM equipment, free-text equipment description, time from/to, usage hours, condition notes and notes.
Enforces non-negative usage hours.
Blocks creating, moving, editing or deleting equipment evidence on approved daily logs.
Material evidence
Adds pmis.field.service.daily.log.material for operational material evidence.
Requires a UoM, quantity and material context; the context defaults to Delivery. Product, description, reference, stock picking and notes are optional.
Supports delivery, consumption, return, waste and storage contexts.
Sets the UoM from the selected product on change.
Enforces non-negative quantities.
Allows linking to a stock picking as evidence only; creating material evidence does not create or update stock moves, quants, sale orders, purchase orders, Measurement Books, Situations, invoices, vendor bills or accounting entries.
Blocks creating, moving, editing or deleting material evidence on approved daily logs.
Field Service integration
Extends fsm.order with optional PMIS Project and PMIS Site fields.
Adds a Daily Logs smart button on Field Service orders.
Adds Create Daily Log on Field Service orders.
Reuses the newest visible draft for the same order, company and current date. If none exists, creates a new draft. This lookup is not a database uniqueness constraint on order and date.
Prefills new daily logs from the FSM order with company, location, team, assigned person, assigned persons, planned activities, daily narrative, work start/end from the order's date_start and date_end, PMIS project, PMIS site and the current user as responsible person.
Opens linked daily logs with a company-safe domain.
Reporting
Adds a QWeb PDF report titled Construction Daily Log.
Uses a report filename pattern of Construction Daily Log - <reference>.
Shows document identity, PMIS context, FSM context, weather/site conditions, operational narrative, diary entries, personnel evidence, machinery/equipment evidence, material evidence, attachment index, review metadata and correction links.
States explicitly that the PDF is operational evidence only and is not a Measurement Book, Situation, invoice or qualified electronic-signature evidence.
Renders the current record on demand; approval does not create a stored PDF snapshot. The attachment index lists filenames without embedding their contents.
Security and multi-company
Adds PMIS Field Service Viewer for read-only access to daily logs and evidence. The group implies OCA Field Service own-user access.
Adds PMIS Field Service User for ordinary daily-log creation and editing. The group implies the viewer group and OCA Field Service user access.
Adds PMIS Field Service Manager for review, approval, cancellation, deletion of draft/cancelled records and corrective revisions. The group implies the user group and OCA Field Service dispatcher access.
Grants field-service viewers read access to PMIS Projects and Sites so daily logs can expose project/site context.
Protects daily logs and child evidence models with company record rules. The addon does not restrict these records to the assigned responsible user or project members within an allowed company.
Validates cross-company references at ORM level for PMIS project, PMIS site, FSM order, FSM location, FSM team, FSM person and assigned FSM persons.
Configuration
Install the module with its standard dependencies: pmis_assessment, OCA fieldservice and stock.
Give users access through one of the PMIS Field Service groups: Viewer, User or Manager.
Configure PMIS Projects and Sites in pmis_assessment before creating daily logs.
Set PMIS Project before using Create Daily Log on a Field Service order: the order field is optional, but the created daily log requires a project. PMIS Site is optional and must belong to that project.
The Bills of Quantities > Operations menu requires Sales user access in addition to the Field Service group used by the child menu. Users can also open linked logs through the Daily Logs smart button on accessible FSM orders.
Daily-log references use the shared sequence loaded by this module unless a company-specific sequence with the same code is configured. A reference supplied during creation is retained instead of consuming the sequence.
Usage
Create a standalone Construction Daily Log:
Go to Bills of Quantities > Operations > Field Operations > Construction Daily Logs.
Create a daily log for the company, date and PMIS Project.
Optionally set the PMIS Site, Field Service order, contractor, investor, responsible user and site conditions.
Enter the daily operational narrative or add at least one diary entry.
Add personnel, machinery/equipment, material records and evidence attachments as needed.
Submit the daily log for review.
Create a Construction Daily Log from a Field Service order:
Open an fsm.order.
Set the PMIS Project and optional PMIS Site in the PMIS Context section.
Use Create Daily Log.
The module opens the existing same-day draft for that order, or creates a new draft with FSM context prefilled.
Complete the operational record and submit it.
Review and approve a Construction Daily Log:
A PMIS Field Service User submits the draft daily log.
A PMIS Field Service Manager reviews the submitted daily log.
The manager approves the reviewed daily log.
Approved daily-log content, child evidence and attachments become immutable.
Reject or cancel a Construction Daily Log:
A manager enters Correction Reason on the Review and Correction tab.
Use Reject on a submitted or reviewed log. A Field Service User can then use Return to Draft to increment its revision and resume editing.
Use Cancel on a non-approved log when a cancellation reason is present.
Approved logs cannot be cancelled; they must be corrected through a corrective revision.
Correct an approved Construction Daily Log:
A manager opens the approved daily log.
Enter a correction reason.
Use Create Correction.
The module creates a new draft revision linked to the approved source log and copies the operational content and child evidence for controlled correction. The new revision receives its own reference and cleared review/approval attribution. Source attachments remain on the original log; upload any evidence needed for the correction to the new log.
Submit, review and approve the corrective revision.
When approved, the corrective revision supersedes the source daily log.
Data model notes
Daily logs are linked directly to pmis.project and optionally to pmis.site and fsm.order.
Diary entries, personnel, equipment and material evidence are separate child models. Each inherits its company from the parent daily log and is copied into corrective revisions.
Submission and review do not lock operational content. Approval locks the header and child evidence; managers may still enter a correction reason, and chatter and activities remain available.
Material evidence can reference a stock picking, but that reference is informational and does not change inventory or valuation.
Draft and cancelled daily logs can be deleted subject to access rights; submitted, reviewed, rejected and approved logs cannot be deleted.
Correction records use normal daily-log records with explicit source and supersession links rather than a separate correction model.
Non-goals
The addon does not replace the PMIS Measurement Book or Situation workflows.
The addon does not create Measurement Books, Measurement Book lines, Situations, invoices, bills, stock moves, sale orders or purchase orders.
The addon does not accept, certify, deliver, invoice or account for quantities.
The addon does not implement statutory construction-log form compliance or qualified electronic-signature compliance.
The addon does not synchronize daily-log evidence to accounting, stock, sale, purchase or valuation documents.
Tests
Tests use filenames matching the model under test, including test_fsm_order.py, test_pmis_field_service_daily_log.py, test_ir_attachment.py and separate diary-entry, material and report tests. Cross-model daily-log lifecycle scenarios stay with the parent model. Shared setup is in common_daily_log.py.
Run the addon with the standard PMIVerse runner against a disposable test database:
/srv/pmiverse/_pmiconfig/scripts/test/run_pytest_addon.sh \ -a /srv/pmiverse/_pmisuite18/repos/pmiverse/operations/pmis_field_service/tests \ -d test_pmis_field_service -- -q -r a
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).






