Skip to main content

Expense Approval and Rejection UI

Summary​

The HR Operations pending table exposes Approve and Reject actions through the shared approval modal. There is no dedicated manager queue.

Screen contract​

  • Purpose: decide a pending compatibility claim.
  • Navigation: Workforce > Expenses.
  • Intended users: users presented the HR Operations approval experience; authoritative approver roles require confirmation.
  • Preconditions: pending row, authenticated route, compatible backend route.
  • Main components: pending table, action buttons, approval modal.
  • Fields: claim summary columns; modal reason/comment supplied to the action.
  • Filters: in-memory pending-only selection.
  • Actions: approve or reject.
  • Validation: rejection ultimately requires a reason; invalid lifecycle and workflow-managed decisions return conflicts.
  • Loading: no dedicated action spinner is confirmed in the Expense wrapper.
  • Empty: explicit no-pending-approvals state.
  • Success: toast and workspace reload.
  • Error: API error is shown on the page.
  • Permissions: navigation includes view/approve candidates, but UI visibility does not prove backend authority.
  • API: compatibility approve/reject.
  • Business rules: compatibility approval checks the related payroll period; workflow-managed claims must be decided through Workflow.

Screenshot placeholder: pending approval table and decision modal with synthetic data.

Requires confirmation​

Approver authority, manager/team scope, action-level permission enforcement, and workflow task-to-UI handoff require confirmation.

Source References​

  • UI/salary-ui/apps/client-hrms-portal/src/pages/hr/HrOperationsPage.tsx
  • UI/salary-ui/apps/client-hrms-portal/src/components/ApprovalActionModal.tsx
  • microservices/src/expense-service/Application/Compatibility/ExpenseCompatService.cs
  • microservices/src/expense-service/Application/Commands/ExpenseClaimCommands.cs

See Also​

Keywords​

  • Expense UI
  • Approval and Rejection

Revision Information​

  • Status: Draft
  • Last reviewed: 2026-07-16
  • Review cycle: Quarterly