app.payroll_lines
TableRow level security on
Lines of a payroll run: hours paid under an earning code at the rate the run calculated. Amounts are derived. Lines change only while the run is Draft or Calculated. The rate is Restricted.
Primary key: id
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | uuid | No | Primary key, UUID v7. |
| org_id | uuid | No | Owning org, derived from app.payroll_runs on insert; never accepted from the caller and never changed.References app.organizations.id |
| payroll_run_id | uuid | No | Run the line belongs to.References app.payroll_runs.id |
| membership_id | uuid | No | Membership of the person paid.References app.memberships.id |
| earning_code_id | uuid | No | Earning code paid.References app.earning_codes.id |
| hours | numeric | No | Hours paid. |
| rate_minor | bigint | No | Rate paid in minor units per hour, as calculated for the run. Restricted (data.restricted.read.payroll). |
| deleted_at | timestamp with time zone | Yes | Soft delete time. A row with deleted_at set is ignored by every access helper. |
| created_at | timestamp with time zone | No | When the row was inserted. Set by the database. |
| created_by | uuid | Yes | Person who inserted the row, or null for a platform process. Set by the database.References app.people.id |
| updated_at | timestamp with time zone | No | When the row last changed. Set by the database. |
| updated_by | uuid | Yes | Person who last changed the row, or null for a platform process. Set by the database.References app.people.id |
| role_code | text | Yes | Canon role the hours were worked in. Its class decides the labor expense account; required before a run with pay posts.References xpms.role.role_code |
| cost_center_id | uuid | Yes | Dimension 1 cost center the labor posts to; NULL posts without one.References app.cost_centers.id |