Asset status is displayed to the user in two ways:
Project Status
System Status
These two fields indicate the asset status derived by either an explicit statement made by the user, or by aggregating the individual system level statuses.
System Status Aggregation
Each system contains a System Status property. Each time this status is changed, the project evaluates each of its systems to try and dynamically derive the whole status.
The method can briefly be described by the following:
If there are no systems in the project: The project status is "New Project" Else: If every system status is the same: If the shared status is "New System": The project status is "New Project" Else: The project status is whatever this shared status is. Else if some of the systems are "Operational", but not all of them: The project status is "Partially Operational" Else: The project status is "In Progress"
The potential benefit to this approach is that it allows for more fine control over system level progress reporting, with the entire project status therefore merely being a reflection of the sum of all systems.