> For the complete documentation index, see [llms.txt](https://kb.logicerp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/attendance-register.md).

# Attendance Register

**Available on:** Desktop · Web · Phone

Navigate to **Payroll Entry** and click on "Attendance Register".

**Attendance Register** marks attendance one date at a time, for one employee or for several at once. Times typed in work out the hours worked, and overtime where the employee is allowed it.

## Mark a day

### **Step 1: Open the date**

* Choose the date. To work on particular employees only, tick **Employee** and pick them.
* Press the button beside the date (**...**). The register switches to the marking panel, with the employees working on that date.
* **Configuration**, on the date panel, holds the register's settings: working days per month, time format and overtime rules.

### **Step 2: One employee or several**

* **Single Employee:** click the employee in the list. In the times grid, enter the **Date In**, **Time In**, **Date Out** and **Time Out**; each finished row starts a new one, for a day with more than one in and out. Choose **Present** or **Absent** and the kind of day, then press **Save**. The next employee in the list is picked for you (after the last, the first).
* **Multi Employee:** tick the employees in the list, choose **Present** or **Absent** and the kind of day, then press **Save**. Every ticked employee is marked and the ticks are cleared. If one employee's save fails, the save stops there: those before it are saved, the rest are not, and the ticks stay.

| Present                                                                                       | Absent                                                                                                                                                            |
| --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Full Day · Half Day · Full Day + Overtime Hrs · Full Day + Half Day · Full Day + Overtime Day | Casual Leave · Leave Without Pay · Paid Leave · Optional Leave · Sick Leave · Earned Leave · Half Day (Casual) · Half Day (Sick) · Comp Off · Half Day (Comp Off) |

Overtime hours can be typed only for **Full Day + Overtime Hrs**.

**Comp Off** takes 1 day of the employee's comp-off and **Half Day (Comp Off)** half a day - see [How Comp-off Works](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/setup-compensatory-off-rules/how-comp-off-works.md). Without enough comp-off for that day the save stops with *... not enough comp-off for that day (... left).* On a compulsory attendance date the day is saved as leave without pay instead. Changing or deleting a comp-off day gives the comp-off back.

### **Search and sort**

* Type part of a name in the search box above the list: the list narrows to the names that contain it, whatever the capitals. It stays narrowed after **Refresh** or a change of **Sort On** (Employee Name or Employee Code); clear the box to see everyone again.
* Ticked employees that a search is hiding are still saved — or deleted — with the rest.

### **Delete**

* **Delete** removes the date's attendance for the picked employee (Single Employee — then the next employee is picked) or for every ticked one (Multi Employee — the ticks stay). It needs delete rights, and asks first.

**Close** on the marking panel goes back to the date; **Close** there leaves the register.

## Rostered employees

For an employee on a shift roster:

* the day's **shift** comes from their roster: it shows in the **Shift** column of the times grid, and the day is saved with it — including when several ticked employees are saved together. Employees with no roster use the **Shift** chosen above the grid;
* the minimum hours for the day, when the employee has none set, are the length of that shift — so only time beyond the shift counts as overtime;
* on a rostered **half-day off**, the half not worked is charged to casual or sick leave — see [Setup Week-off Patterns](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/setup-week-off-patterns.md).

**Update Holiday / Sunday** also appears on a day that is a roster week-off or holiday, not only on a branch holiday. It marks the employees not yet marked on that date as paid leave: those who keep their own holiday list when they have a holiday that day (roster week-offs included), and the others only when their branch has the holiday.

> **Example —** Rahul is rostered on NIGHT SHIFT on Tuesday, though his employee record says DAY SHIFT. When HR marks Tuesday, his times grid shows NIGHT SHIFT in the Shift column, and his day is saved and worked out against the night shift.

## Messages you may see

| Message                                                                                                   | Why                                                               | What to do                                    |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------- |
| Cannot Generate PayRoll. Date Locked                                                                      | **...** on a date in a locked payroll month                       | Choose a later date                           |
| Please Set Configuration                                                                                  | **...** for a year with no register settings                      | Set them with **Configuration**               |
| No Working Days in the Month                                                                              | The month's working days are not set                              | Set them with **Configuration**               |
| No Employees                                                                                              | Nobody is working on that date in your branches or selection      | Check the date and the selection              |
| Select an employee first                                                                                  | **Save** or **Delete** in Single Employee with no employee picked | Click an employee in the list                 |
| No Employee Selected / No Employee Selected For Deletion                                                  | **Multi Employee** with nobody ticked                             | Tick the employees, then Save or Delete again |
| Please Specify Overtime Hours                                                                             | **Full Day + Overtime Hrs** with no overtime entered              | Enter the hours                               |
| Invalid Date In. / Invalid Date Out. / Invalid Time In. / Invalid Time Out.                               | A date or time in the grid could not be read                      | Correct it                                    |
| Are You Sure To Delete Attendance                                                                         | The delete question                                               | **Yes** to delete                             |
| Deletion Rights Are Not Allow\...........                                                                 | Your user may not delete attendance                               | Ask for delete rights on the screen           |
| ALL UnMarked Employees For Date … Will be Marked Absent(Paid Leave). Are You Sure You Want To Continue... | **Update Holiday / Sunday**                                       | **Yes** to mark them                          |

## On the web

On a wide screen the register looks and works as on the desktop. On a phone it has two tabs, **Employees** and **Attendance**:

1. On **Employees**, search and tap an employee. **Attendance** opens with their name at the top, then Present / Absent, the times grid and the buttons.
2. Enter the times and press **Save**. The next employee opens straight away; after the last one in the list you are back on **Employees**.
3. With **Multi Employee**, tapping and ticking stay on **Employees**; open **Attendance** to save, and it goes back to the list.

**Close** is on both tabs. The search waits until you stop typing, and does not jump into the times grid.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/attendance-register.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
