Skip to main content

Attendance (Attendance Punching)

Introduction

The Attendance module (flag AttPunch, Area AttendancePunching) captures daily attendance, supports supervisor approval workflows, maintains shift masters, and produces attendance reports. Approved attendance feeds payroll salary processing.

Purpose

Attendance enables:

  • Unit-wise and standard attendance entry
  • Supervisor approval queues
  • Shift master configuration
  • Leave entry at the punching layer
  • Unit permission restrictions for field operators
  • Printable attendance reports

When to Use

Use Attendance when you:

  • Record present/absent/OT days before payroll run
  • Approve or reject unit attendance batches
  • Configure shifts tied to units or employees
  • Export attendance registers for client audit
Upstream of payroll

Payroll Attendance screens read processed data; this module is where raw entry and approval typically occur.

Overview / Architecture

AttendancePunching uses _AttPunchingLayout.cshtml with legacy header-navbar styling (similar to Sales and Operation). DAL classes live under DAL/AttendancePunching/.

Entry URL: /AttendancePunching/AttendanceDashboard/Index
PageID: AttPunch
Module flag: AttPunch

Controllers

ControllerPrimary responsibility
AttendanceDashboardModule home
AttendanceEntryStandard attendance entry
AttEntryUnitWiseUnit-wise bulk entry
AttendanceApprovalApproval / rejection workflow
LeaveEntryLeave at attendance layer
ShiftMasterShift definitions
UnitPermissionUnit-scoped operator access
AttendanceReportsRegister and summary reports

Report viewer pages (.aspx) under the Area support Crystal attendance outputs.

Views / Layout

AssetRole
_AttPunchingLayout.cshtmlModule layout with header-navbar
AttReportViewer .aspxCrystal report host
Dashboard viewsKPI and navigation tiles

DAL

DAL classRole
AttendanceEntry_DALEntry read/write
AttRegDash_DALDashboard metrics
ShiftMaster_DALShift CRUD

Payroll consumes approved rows through EmployeeAttendance_DAL and process SPs after approval completes here.

Business Objects

Namespace: BO.AttendancePunching

BO typeRole
AttendanceDash_BODashboard data
AttendanceEntry_BODaily attendance lines

Typical Workflow

Unit attendance from entry to payroll:

Data Flow

  1. Operator with unit permission opens entry screen for period + unit.
  2. Rows saved via AttendanceEntry_DAL → insert/update SPs with CompID.
  3. Approval controller transitions status flags consumed by payroll verification.
  4. Reports read finalized attendance for Crystal export.
  5. Payroll salary process joins the same tables—unapproved batches block accurate pay.

Reports

OutputController
Attendance registersAttendanceReports
Crystal viewersAttReportViewer .aspx pages

Permissions

GateRequirement
Module flagdtVerifyUser.AttPunch == true
SessionValid CompID
UnitPermissionLimits units per operator
Approval roleOften separate menu permission for AttendanceApproval

Common Issues

SymptomLikely cause
Payroll shows zero daysBatch not approved in AttendanceApproval
Unit missing in dropdownUnitPermission not assigned
Shift not appliedShiftMaster not linked to unit
Report blankPeriod/unit filter mismatch

Important Notes

Approval is the gate

Salary process assumes attendance approval completed for the target month and unit. Skipping approval is the most common payroll discrepancy root cause.

Legacy navbar

UI differs from modern Payroll sidebar—do not mix layout partials when customizing views.

Common Mistakes

MistakeConsequence
Editing attendance after payroll processedRequires reversal/reprocess
Using AttendanceEntry when AttEntryUnitWise neededIncomplete unit bulk entry
Same user entry + approval without segregationWeak internal control

Next Steps

  1. Configure ShiftMaster and UnitPermission for pilot units.
  2. Enter and approve one month before payroll UAT.
  3. Reconcile AttendanceReports register with Payroll attendance screen.