Purchase Link Task
Link purchase orders, vendor bills and stock moves to project tasks and cost sectors
Connects the purchase, invoicing and inventory documents to the project tasks they belong to, and classifies every line into a cost sector. It is the backbone the project cost modules build on.
Features
- New model Purchase Cost Sector (
sector.purchase.project) with five sectors loaded on install: Raw Material, Equipment, Project Cost, Contractor, Raw Material Contractor. - Sector and Tasks on purchase order lines, journal items and stock moves, propagated from the purchase order line downstream.
- Analytic Account stored on those three models, derived from the first account of the analytic distribution.
- Three stat buttons on the task: linked invoices, purchase orders and pickings.
- The analytic account lists back its purchase order lines and its journal items.
- Project / Tasks / Sector on the approval requests, driven by a switch on the approval category.
- Short Name on the project, prefixed to the task display names.
- Project stages can be flagged State Not Selectable to keep them out of the approval project selection.
Main fields
| Model | Field | Type | Description |
|---|---|---|---|
| purchase.order.line | sector_id / task_ids / account_analytic_account_id | — | Cost sector, tasks and analytic account of the line |
| account.move.line | sector_id / task_ids / account_analytic_account_id | — | Same three fields, propagated from the purchase order line |
| stock.move | sector_id / task_ids / account_analytic_account_id | — | Same three fields, propagated from the purchase order line |
| project.task | task_purchase_line_ids / task_move_line_ids / task_stock_move_ids | Many2many | Reverse links to the documents of the task |
| project.task | invoice_task_count / purchase_task_count / stock_task_count | Integer | Counters behind the stat buttons |
| project.project | short_name | Char | Short project code prefixed to the task names |
| approval.request | project_id / task_ids / sector_id | — | Project, tasks and sector of the request |
Demo data
- The flagship scenario every module of the stack builds on: the Palazzo Mercanti renovation site (short name
PM24) for customer Immobiliare Palazzo Mercanti, with four tasks — structural works, MEP, finishing and custom furniture. - One confirmed purchase order to Edilsud Forniture carrying three cost sectors (Raw Material, Equipment, Contractor) and pointing at two tasks; confirming it propagates sector, tasks and analytic account down to the stock moves.
- An approval category and request showing the Project / Tasks / Sector fields, plus a Closed Site project stage flagged as not selectable.
Changelog
| Version | Notes |
|---|---|
| 19.0.1.0.0 | Migration to Odoo 19.0: unit tests, demo data, Italian translation and documentation. |
Developed by STeSI Consulting — Francesco Moccia <moccia.f@stesi.consulting>