1. Home
  2. HRM
  3. Attendance
  4. Resolve Attendance Conflicts (Two-Stage Workflow)

Resolve Attendance Conflicts (Two-Stage Workflow)

๐Ÿ› ๏ธ Resolve Attendance Conflicts (Two-Stage Workflow)

After every Attendance import, DaaiSuite compares each day’s punch evidence against the employee’s Leave record and flags every disagreement. A conflict is not a salary deduction โ€” it’s an HR action item. Conflicts are cleared through a two-stage workflow: Leaves grid first (for any pending leaves), Attendance grid second (for the mechanical fixes).

This article walks through where conflicts appear, the two-stage rule, the conflict types you’ll see, and the action menu DaaiSuite shows for each one.

๐Ÿ“ Screen: HRM โ†’ Attendance โ€” the Status column on each row is the entry point. Rows with a conflict show a small kebab menu (โ‹ฎ) instead of plain status text.

๐ŸŽฏ The Two-Stage Rule

The principle: Approval decisions live in Leaves; mechanical fixes live in Attendance. A leave has to be Approved, Rejected, or Marked Unnotified before Attendance has anything to reconcile against.

StageWhereWhoWhat
Stage 1 โ€” LeavesHRM โ†’ LeavesReporting Manager / HOD / Override userApprove, Reject, or Mark Unnotified every Pending leave for the month.
Stage 2 โ€” AttendanceHRM โ†’ AttendanceHR / Override userResolve mechanical conflicts (cancel a leave that contradicts a present punch, convert full-day to half, add LWP for a no-leave absence, etc.).

๐Ÿ“Œ Why two stages? Pending leaves are policy decisions (yes/no) that need a manager’s judgement; they belong in Leaves. Conflicts on already-decided leaves are mechanical (the punches and the leave just disagree); they belong in Attendance.

๐Ÿšซ Pending Leave โ†’ Locked in Attendance

If a Pending leave overlaps a date in the Attendance grid, that day’s row is intentionally not actionable from Attendance. The Status cell shows a non-clickable chip:

๐ŸŸก Resolve in Leaves โ€” chip-only, no kebab. Clicking the row body opens the Attendance edit aside (in case the punch needs correction), but no leave action is offered until the Pending leave is decided in the Leaves grid.

The flow: open HRM โ†’ Leaves, Approve / Reject / Mark Unnotified the pending leaf, come back to Attendance โ€” the row now shows the appropriate post-pending kebab menu.

๐Ÿ” Conflict Types You’ll See

DaaiSuite labels every conflict with a short, human-readable type. The type controls which actions appear in the kebab menu:

Conflict TypeMeaningTypical Cause
No RecordNo punch + no leave for that dateEmployee absent without applying; missed device punches
Half Day ยท No LeaveHalf-day worked, no leave covers the missing halfHalf-day absence without leave application
Worked on LeaveFull Approved leave but employee was PresentEmployee skipped leave informally; or duplicate punch capture
Half-Day Leave ยท AbsentHalf Approved leave but no punch at allEmployee took the leave but also didn’t come in for the other half
Full Leave ยท Half PunchFull Approved leave but employee punched only half a dayCame in briefly during a planned leave
Half Leave ยท Full PunchHalf Approved leave but employee worked full dayHalf-leave was no longer needed; should be cancelled
Pending Leave ยท โ€ฆAny pending leave overlapping the rowLeave still awaiting Approve/Reject โ€” locked from Attendance
Rejected Leave ยท No PunchLeave was Rejected but no attendance recordedEmployee absent after leave rejection โ€” convert to Unnotified
Cancelled Leave ยท No PunchApproved leave was Cancelled, but no punch on that dayBehave as if no leave existed โ€” pick LWP / Paid / Unnotified
Incomplete AttendanceFirst In present, Last Out missingDevice dropped the out-punch; needs manual correction

๐Ÿ“œ The Action Menu (Kebab โ‹ฎ)

Click the kebab on any conflicted row to open the floating action menu. The menu is context-aware โ€” it only shows actions that make sense for that row’s conflict type. Common items:

  • Add Paid Leave โ€” creates a one-day Paid leave (Approved, no manager round-trip).
  • Add Unpaid Leave (LWP) โ€” creates a one-day Unpaid leave; the day becomes Loss of Pay.
  • Add Half-Day Leave โ€” for half-day attendance with no leave; covers the missing half.
  • Add Unnotified Leave โ€” flags the absence as Unnotified for compliance / change log.
  • Cancel Leave โ€” cancels a leave that contradicts the punch evidence.
  • Convert to Half-Day Leave โ€” when a Full leave overlaps half-day attendance.
  • Convert to Full-Day Leave โ€” when a Half leave overlaps a full absence.
  • Mark as Unnotified โ€” for Rejected leaves; chains a Convert step automatically when the leave shape doesn’t match the attendance shape.
  • Edit Attendance โ€” opens the Attendance aside for manual correction.
  • Dismiss โ€” marks the row as reviewed without changing data; for known-and-accepted contradictions.

๐Ÿ“Œ The exact actions shown vary per row. Add Leave options only appear when no live leave exists; Cancel Leave only when one is cancellable; Convert options only when a leaf-attendance shape mismatch exists.

โšก Auto-Approval Inside Attendance

Any leave you create from the Attendance kebab โ€” Add Paid / Add Unpaid / Add Half-Day / Add Unnotified โ€” is created in Approved state. No manager round-trip, no HOD round-trip, no email reminders. The reasoning:

  • The actor already holds the Leave Override permission, which is a higher trust level than line-manager approval.
  • You’re recording a fact (the employee was/wasn’t here) โ€” not soliciting a decision.

The leave then participates in salary calculation, balance tracking, and reports the same way any approved leave would.

โš ๏ธ Because conflict-resolution leaves bypass the normal approval chain, treat them as audit-significant. Use the Reason / Notes field on the resulting leave (visible from the Leaves list) to record why it was created retroactively.

โ†ฉ๏ธ The Compound “Mark as Unnotified” Action

When the rejected-leaf shape doesn’t match the attendance shape (for example, a Rejected Half leave on an Absent day), Mark as Unnotified chains a Convert step before marking, so the resulting Unnotified leave matches the attendance:

Rejected Leaf ShapeAttendance ShapeStepsEnd State
FullAbsentMarkRejected + Unnotified + Full
HalfAbsentConvert to Full โ†’ MarkRejected + Unnotified + Full
HalfHalf Day (matching)MarkRejected + Unnotified + Half
FullHalf DayConvert to Half โ†’ MarkRejected + Unnotified + Half

The leave’s lifecycle stays Rejected throughout โ€” no Approval override happens.

๐Ÿ‘๏ธ Dismiss โ€” Audit-Only

Some contradictions are real but acceptable: a leave was approved on policy grounds even though the punch-log shows the employee was on premises briefly that day, or vice versa. Dismiss is for those rows.

  • It marks the row as reviewed and stops surfacing it as Needs Action.
  • It does not change attendance, leave duration, leave status, leave balance, or salary.
  • It is purely an “I have looked at this and accepted it” record.

๐Ÿ’ก Use Dismiss when the contradiction is real but expected. If the contradiction is a mistake on either side, prefer Cancel Leave / Edit Attendance / Add Leave instead โ€” Dismiss should never be used to hide a problem.

๐Ÿ”’ Permission

The conflict actions on the Attendance grid require the Leave Override permission on the Leaves module. Roles without it see plain status text on every row โ€” no kebab, no menu โ€” even when conflicts exist on those rows.

Reasoning: the actions create or cancel leaves on someone else’s record without manager round-trip. That requires a higher trust level than ordinary leave approval. If your HR team sits inside an existing role without Leave Override, ask the tenant Admin to enable it on that role from Settings โ†’ Roles.

๐Ÿšซ What This Workflow Does NOT Do

  • No auto-LWP. An absent-no-leave row is flagged, never converted automatically.
  • No bulk apply. Each row is acted on individually. Bulk operations (e.g., apply LWP to every No Record in March) are not supported.
  • No retroactive scan. The conflict list is computed live from current Attendance + Leave state. Yesterday’s verdicts are not stored.
  • No cross-month spillover. Multi-day approved leaves that span the conflict day are flagged as multi-day and the destructive actions (Cancel / Convert / Mark Unnotified) are disabled โ€” those still need to be handled from the Leaves module.

๐Ÿชœ Recommended Cadence

  1. Import attendance for the month.
  2. Open HRM โ†’ Leaves and clear every Pending leaf for that month (Stage 1).
  3. Open HRM โ†’ Attendance, filter to the month, and walk every row with a kebab (Stage 2).
  4. Generate salary.

๐Ÿ’ก Reserve a 30-minute slot in your monthly payroll routine for Stage 2 โ€” even a 50-employee company rarely has more than 10โ€“15 conflict rows in a month, and the kebab makes each one a 2-click fix.

๐Ÿ’ก Tips

  • Pending shows a chip, not a kebab. If you don’t see actions on a row you expected to fix, check whether the leave is still Pending. Decide it in Leaves first.
  • Comment when you create. When you Add Paid / Unpaid / Half-Day / Unnotified Leave from Attendance, jump to the resulting leave in the Leaves list and add a one-line reason.
  • Dismiss sparingly. If you find yourself dismissing dozens of rows a month, the underlying policy is probably fighting your attendance reality โ€” fix the policy or the punch source rather than masking the rows.
  • Don’t fix punches from here. For attendance corrections (wrong In/Out times), use Edit Attendance from the kebab โ€” the Correction Log entry that auditors expect is created automatically.
  • Multi-day leaves stay in Leaves. If the kebab grays out a destructive action with a multi-day tooltip, finish the change in the Leaves module instead of trying to force it from Attendance.

๐Ÿ”— Related Articles

  • Attendance โ€” the daily grid where conflicts surface.
  • Import Attendance from a Time-Punching Machine โ€” feeds the punch evidence the conflicts are computed against.
  • Leaves โ€” where Stage 1 (Approve / Reject / Mark Unnotified) happens.
  • Leave Lifecycle โ€” the strict transition rules behind the action menu (Approved โ†’ Cancel only; Rejected โ†’ Mark Unnotified only).
  • Salary โ€” reads the post-resolution Attendance and Leave state at salary-generation time.

How can we help?