- Documentation
- /
- Cworkshop
- /
- Application Overview
Application Overview
What Council Workshop models, and the ideas behind it
Core Chains
Asset → AssetInspection → InspectionResponse → Defect
→ WorkRequest → WorkOrder → WorkOrderTask / WorkOrderLabour / WorkOrderPart
MaintenanceTemplate (+Tasks) → AssetMaintenancePlan (due by date and meter)
Store → StoreStock → InventoryTransaction; WorkOrder → WorkOrderPart
PurchaseRequisition (+Lines) → PurchaseOrder (+Lines) → GoodsReceipt (+Lines)
Asset → FuelTransaction; Tyre → TyreFitment
Asset → RenewalAssessment → Disposal; AssetIncident → WorkRequest
Budget (per cost centre / type / asset class / asset)
Key Concepts
One register, every kind of plant. An Asset can be a motor grader, a
garbage compactor, a ute, a trailer or the blade hanging off the grader
(assets nest via parent_asset_id). Each belongs to an AssetClass that sets
expectations — asset type, criticality, expected life, primary meter,
whether registration and pre-starts are required — and carries its own
meters, registration, warranty, costs and current assignment.
Maintenance is projected, not remembered. A MaintenanceTemplate defines a service (tasks, trades, estimated hours and parts) with an interval in days and/or meter units. An AssetMaintenancePlan instances that template on an asset and tracks next-due date and next-due meter against tolerance — an overdue 1000-hour service is visible the moment either threshold passes.
Inspections have teeth. Inspection templates itemise prompts per class;
a failed item carries a configured defect severity, and items flagged
stop_use_on_fail mean a failed pre-start takes the asset OUT_OF_SERVICE
immediately — the demo's ute is parked by exactly this rule. Defects then
track their own lifecycle (open → assessed → work order raised → repaired →
verified → closed, or formally deferred with approval).
Work flows request → order. A WorkRequest captures the demand (breakdown, defect, scheduled service…) with priority up to EMERGENCY; a WorkOrder plans and delivers it — statuses run through planning, scheduling, execution, AWAITING_PARTS, quality check and return to service, with tasks (safety- critical ones verified), labour by type and rate, downtime and failure codes.
Stores close the loop with purchasing. StoreStock tracks on-hand, reserved and reorder points per store and item — a critical spare at zero raises the flag, an urgent requisition becomes a purchase order, and the goods receipt books stock back in through an InventoryTransaction that also feeds the work order's parts. Every movement is a transaction with a reference.
Whole-of-life, not just workshop. Fuel transactions meter consumption per asset; tyres are tracked as assets of their own through fitment history (the demo scraps one for sidewall damage); incidents record damage and insurer details; budgets hold approved/committed/actual/forecast per cost centre and type; renewal assessments score condition, reliability, cost and downtime to recommend replacement; and disposals record method, proceeds and the settlement certificate.