feat: add RRoP payroll edit field builders - #2687
Closed
serikjensen wants to merge 3 commits into
Closed
serikjensen wants to merge 3 commits into
serikjensen wants to merge 3 commits into
Conversation
First slice of the regular-rate-of-pay UNSTABLE_PayrollEditEmployee rebuild (behind the payrollRegularRateOfPay flag). Pure logic, no UI or hook wiring yet: - payrollEditEmployeeSchema: workweek-keyed Zod schema and form-data types, workweek normalization, defaults derivation from prepared compensation, and the PayrollUpdate employee-compensation payload builder with per-workweek breakdown tiling and non-negative validation. - isOvertimeEligibleFlsaStatus helper: gates per-workweek splitting to the nonexempt family only. The field builders and the usePayrollEditEmployeeForm hook that consume this land in follow-up PRs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHcXHWSPAnznxVGqsauQcS
Second slice of the regular-rate-of-pay UNSTABLE_PayrollEditEmployee rebuild. Builds the render-ready field collections the hook exposes on form.Fields: - Per-job hours and additional-earnings sections, each flat (single-workweek or overtime-ineligible) or keyed by workweek start (multi-workweek and eligible), discriminated by isSplitByWorkweek. - Flat other, time-off, and dismissal-only final-payout sections. - Bound numeric field factories and the payment-method radio field, present only when direct deposit is set up. Consumes the schema types from the previous PR; the usePayrollEditEmployeeForm hook that wires these lands in the next PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHcXHWSPAnznxVGqsauQcS
serikjensen
force-pushed
the
claude/rrop-edit-employee-01-schema
branch
2 times, most recently
from
September 3, 2026 16:20
fbd2f76 to
1e848ca
Compare
Member
Author
|
Superseding this PR. The stack was restructured to separate the schema from its data-mapping helpers (each now with its own unit tests), which shifted the field builders down a step. This PR's work now lives in #2692, stacked on #2686 (schema) → #2691 (helpers). Closing in favor of that. Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second of three stacked PRs for the regular-rate-of-pay (RRoP)
UNSTABLE_PayrollEditEmployeeform infrastructure. Adds the render-ready field builders the hook exposes onform.Fields. Still no UI wiring and behind thepayrollRegularRateOfPayflag, so no default behavior changes.Changes
fields.tsx: builds per-job hours and additional-earnings sections, each either flat (single-workweek or overtime-ineligible) or keyed by workweek start (multi-workweek and eligible), discriminated byisSplitByWorkweek.other, time-off, and dismissal-only final-payout sections.Related
Stack (merge in order):
usePayrollEditEmployeeFormhook + tests (base: this branch)Testing
Consumes the schema types from #2686; exercised end-to-end by the hook test suite in PR 3 of the stack.
npm run tscandnpm run lint:checkpass.🤖 Generated with Claude Code
https://claude.ai/code/session_01FHcXHWSPAnznxVGqsauQcS
Generated by Claude Code