Antylogic
DemoApp login

399 operational guides

Docs sections
DocsStaff attendance
Device

Resolve a clock-in/out correction

Review a pending entry or exit correction, approve the submitted time, or open the shift form to adjust the pending time before saving it as corrected.

In this article

Use this guide when a staff member has requested a change to an entry or exit time and a location manager needs to close the pending attendance exception.

The manager can approve the submitted time directly, or use Reject to open the staff shift form, adjust the pending time, and save the shift as corrected. This flow does not store a separate rejected status.

Before you start

  • You are signed in to Harbor Demo Group and working in Harbor Soho.
  • Your role includes `staff-shifts:manage`; calendar event view access is also needed for list and detail data.
  • A Harbor Soho `staff_shift` attendance event has `start_status` or `end_status` set to `correction_requested`.
  • The corrections list has a date range. If the route does not provide one, the screen uses the current year by default.

Instructions

  1. 1.

    Open Pending Corrections

    Open the Harbor Soho attendance corrections view at `/:orgId/:locationId/attendance/corrections?pending_only=true`. With pending-only filtering active, the list shows staff shifts where an entry or exit correction still needs review.

  2. 2.

    Review The Request

    Check the Employee, Status, Entry, Exit, and Hours columns to confirm the affected shift. Approve and Reject are enabled only while the row still has a pending correction and no update is already in progress.

  3. 3.

    Approve The Submitted Time

    Choose Approve, review the confirmation, and confirm. The application keeps the requested entry or exit time and saves the pending field as `correction_made`, then shows Correction updated and refreshes the list.

  4. 4.

    Adjust The Pending Time Instead

    Choose Reject to open the staff shift edit form. The dates stay locked, and the manager changes only the pending entry or exit time. If the time is unchanged the action reads Accept correction; after changing it, the action reads Reject correction.

  5. 5.

    Check Completion

    Return to Pending corrections and confirm the row no longer appears. The row leaves the pending list only when no entry or exit status remains `correction_requested`; the employee may be notified when they have a linked user account and are not the manager who saved the change.

Validations and limits

  • The screen is blocked without `staff-shifts:manage`, or if organisation or location context is missing.
  • `GET /calendar-events` needs both `from` and `to`; ranges where `to` is earlier than `from` are rejected.
  • The save uses `PUT /api/app/{orgId}/{locationId}/calendar-events/{eventId}` and the event must exist in the current location.
  • The event must remain `kind = staff_shift`; the calendar event update does not allow changing the kind.
  • A staff shift must keep `staff_id` and `starts_at`; if `ends_at` is included, it must be after `starts_at`.
  • The staff shift payload only accepts `source`, `start_status`, and `end_status`; statuses are limited to `normal`, `correction_requested`, and `correction_made`.
  • There is no separate approve or reject endpoint, and Reject does not produce a persisted `rejected` backend status.
  • A staff member with only `staff-shifts:notify` can request their own correction, but cannot resolve it as a manager.

Expected result

The attendance correction is no longer pending, the shift remains a `staff_shift` calendar event with corrected entry or exit status, the pending corrections view and summary refresh, and the linked employee can receive a decision notification.