SStoneSydney stone fabrication
Projects/NewEdit

PRJ-2601 — Mosman

Choose the record kind once. Main projects begin at Enquiry; subcontract packages begin at Planned and never run a quote/Won cycle.
i
One Project entity, two distinct lifecyclesThe kind is required at creation and immutable afterwards. Conditional fields and the first state are validated from that kind.

Project identity

Required and immutable after creation
Main project
Assigned atomically on savePRJ-2601
Never caller-edited or re-issued

Main-project terms

Required when Main
Retention is unavailable until the payment-claim rules are approved.

Defaults from the customer and remains the job's own editable commercial term. Contract value is derived from the Won original plus customer-accepted variations; it is not stored here.

Subcontract-package fields

Required when Package

The package carries its own schedule and costs; cost rolls into its parent exactly once on Completed. Customer quotation fields are rejected for this kind.

Validated create outcomes

1
Main project → EnquiryCreates the durable code immediately; measuring and quotation attach to this same identity.
1
Subcontract package → PlannedRequires parent, subcontractor and scope; no quotation and no Won state are created.

Current lifecycle

In Production

Status is read-only here and changes only through guarded lifecycle actions. Changing record kind is never an edit path.