Contract Details: Contract Contract Status
Contract header, vehicle, and options information
Contract Status
The Contract Status and Contract Sub Status define where a contract sits within your business process.
These fields are available on:
Contract tab
Order tab
Terminate tab
They can also be used as filters in Contracts / Search.
Both Status and Sub Status are fully configurable.
Overview
Contract Status
Configurable list of primary contract stages.
Each Status can be configured to:
Display specific Sub Statuses
Link to other status tables
Trigger automatic updates
Contract Sub Status
Behaviour depends on how the selected Contract Status is configured.
Can be:
Linked to Order Status
Linked to Due Off Status
Linked to a dedicated Sub Status table
Not linked at all
Renaming, Hiding & Display Order
Both:
Contract Status
Contract Sub Status
Can be:
Renamed
Hidden
Reordered
Lists display in record order, but this can be modified using the display_order field.
Important:
display_orderonly affects display in Contracts / Search – Status field.
Inactive records (status_flag = inactive):
Will not display in drop lists.
Will be silently removed from edited contracts on Save.
Date Validation Rules
If Contract Status is changed to:
Suspended
Suspend Date must be entered.
Record cannot be saved without it.
Terminated
Terminated Date must be entered.
Record cannot be saved without it.
If active payment schedules exist:
Entering Suspend or Terminated dates triggers the Stop Payment process.
Linked Tables – How Sub Status Works
Contract Sub Status can be linked to one of three tables:
Order Status
Due Off Status
Contract Sub Status table
Changing from one linked Status to another will:
Automatically change or clear the Sub Status value
Display only values linked to the selected Status
Example
If:
Status/Sub Status = Ordering / Delivered
And Status changes to Active
Then:
Sub Status becomes blank
(Because Order Status is no longer linked)
Auto-Updating Contract Status
If linked to Order or Due Off Status tables:
Selecting certain Sub Statuses can automatically update the Contract Status.
Example
Ordering / New
→ Change Order Status to Cancelled
→ Contract Status automatically updates to Terminated
Linking Options Explained
Linked to Order Status
Use this when:
You want Order Status visible in Contracts / Search.
You want Order Status selections to update Contract Status.
Behaviour:
Contract Sub Status mirrors Order Status.
Changes in one update the other.
Order Status can auto-move Contract Status.
Example:
Selecting Order Status “Settled”
→ Contract Status moves to Active.
Linked to Due Off Status
Use this when:
You want Due Off Status visible in Contracts / Search.
You want Due Off Status to control Contract Status movement.
Behaviour:
Contract Sub Status mirrors Due Off Status.
Changes update both fields.
Example:
Selecting Due Off Status “Sold”
→ Contract Status moves to Terminated.
Linked to Contract Sub Status Table
Use this when:
You want a Sub Status that stays with the contract for its entire life.
You want processes that operate independently of Order and Due Off screens.
You already manage Order/Due Off in separate modules.
Behaviour:
A unique Sub Status list is shown.
Sub Status can remain even when Status changes (depending on configuration).
Not Linked
If Contract Status is not linked to any Sub Status table:
Sub Status list will be blank.
No Sub Status value will be stored.
Scheduler – Automatic Status Updates
The system includes standard statuses:
Order
Active
Due Off
Suspended
Terminated
A nightly scheduled job automatically updates Contract Status based on rules.
These rules can be customised via your Account Manager.
Scheduler Rules
Update to: Order
If:
Contract Status is blank
ANDReg Number = “ORDER”
ORStart Date is blank
ANDSuspend Date is blank or greater than System Date
Update to: Active
If:
Contract Status = Order
Reg Number ≠ “ORDER”
Start Date not blank
End Date > System Date
Suspend Date blank or future
Terminated Date blank
Due Off Status blank
Update to: Due Off
If either:
Scenario 1
Contract Status = Active
Reg Number ≠ “ORDER”
Start Date not blank
End Date ≤ System Date
Suspend Date blank or future
Terminated Date blank
OR
Scenario 2
Contract Status = Active
Reg Number ≠ “ORDER”
Start Date not blank
Suspend Date blank or future
Terminated Date blank
Due Off Status not blank
Update to: Suspended
If:
Contract Status = Order, Active or Due Off
Reg Number ≠ “ORDER”
Suspend Date ≤ System Date
Terminated Date blank
Update to: Terminated
If either:
Scenario 1
Reg Number = “ORDER”
Suspend Date populated
OR
Scenario 2
Reg Number ≠ “ORDER”
Suspend Date populated
Terminated Date populated
Set-Up Configuration
fmcontractstatuses
First record = default Status for new contracts.
Controls available primary statuses.
Modify
display_orderto change list sequence.Only affects Contracts / Search display.
Linking to Order & Due Off Statuses
Choose this when:
You want visibility of Order/Due Off Status in Contracts / Search.
You want Sub Status to control Contract Status movement.
Linking to Sub Status Table
Choose this when:
You want persistent Sub Status across contract life.
You want separate workflow from Order/Due Off.
fmorderstatuses
Important:
On contract acceptance, Order Status defaults to record with
orderstatuscode = NEW.
Ensure your configuration aligns with this behaviour.
Auto-Update Example
If:
'SETTLED' record has
contractstatusid_update = 100001
Then:
Selecting SETTLED updates Contract Status to Active.
Note:
Only works when linked to Order/Due Off Statuses.
fmcontractsub_statuses
Not populated by default.
Configuration rules:
contractstatusid field
If populated:
Sub Status only available for that Contract Status.
Removed automatically if Status changes.
If set to 0:
Sub Status usable for any Contract Status.
Remains unless user changes it.
Modify display_order to control listing order.
fmdueoff_statuses
Works similarly to Order Status table.
Auto-Update Example
If:
'SOLD' record has
contractstatusid_update = 100003
Then:
Selecting SOLD updates Contract Status to Terminated.
Only works when linked to Order/Due Off Statuses.