Timesheets
Timesheets holds the workforce records of everyone working on the project and the number of days worked in each month.
1. What it is for
Timesheets holds the workforce records of everyone working on the project and the number of days worked in each month. Who works under which subcontractor, when they started and left, and how many days they worked in a given month all live here.
The module is built around a single month: the screen always shows one month, with the whole workforce for that month in one list. You never have to leave the page to enter days.
Timesheets is a self-contained ledger — it holds no amounts, no prices and no link to current accounts. What it produces is person-days.
2. Opening it, and who can see it
In the sidebar: Site Operations › Timesheets.
| Your permission | What you can do |
|---|---|
| View | You see the list, the summaries and the charts. You can export to Excel and PDF. The day cells are locked and the New worker, edit and delete controls are not drawn at all |
| Edit | You can enter days and add, edit and delete people in the workforce |
| No permission | The module appears dimmed and locked in the sidebar |
3. Anatomy of the screen
From top to bottom, the page is made of these blocks.
Title and actions. The title carries the selected month and the description "workforce and days-worked tracking". On the right there are four buttons: Refresh, Download PDF, Download Excel and — if you have permission — New worker.
The save bar. It only appears when there are unsaved changes. It is a single thin strip showing how many people have changes, with two buttons: Save and Discard.
The toolbar. Three parts:
| Part | What it holds |
|---|---|
| Period | Previous month / Next month arrows, the Month and Year pickers, and Back to current month if you have moved away from today |
| Search workers | Searches full name, ID no. and subcontractor |
| Filter by | The Subcontractor and Status filters, with the Employed this month / Entire workforce switch beside them; Clear filters appears when any filter is active |
The summary card and chart. A wide card sits at the top: the month's two headline numbers on the left, a twelve-month column chart on the right. A Person-days / People switch at the top right of the chart changes what it plots.
| Measure | What it shows |
|---|---|
| Total Person-Days | The sum of days worked across everyone in the list |
| People in List | How many people pass the filters, with how many are employed and how many left that month underneath |
Four smaller measures sit below the card: Employed · Subcontractor (how many firms) · Average Days · Not Entered.
Breakdown. Two blocks:
- Subcontractor distribution — which firms account for most of the month's person-days, with each firm's day total, headcount and percentage share.
- Workforce changes — who started and who left during the month, with names and dates. If nothing changed, it says so plainly.
Timesheet list. The table itself. Its columns are Full name (the person's ID number sits in small type under the name), Start, End, Status, and on the right the editable Days worked cell. The table header carries the Bulk fill menu and a Collapse all button for the groups.
Rows are grouped by subcontractor: each firm arrives with its own header row showing how many people it has and how many days they add up to for the month. Within a group, rows are sorted alphabetically. Clicking a row opens the Person details panel on the right, with the person's information, their days worked in the selected month, and the edit and delete actions.
4. Fields
What a worker record holds:
| Field | Description | Required |
|---|---|---|
| Full name | The person's first and last name | Yes |
| ID No. | 11 digits, numbers only | Yes |
| Subcontractor | The firm the person works under; picked from a list | Yes |
| Start date | The date they started work | Yes |
| End date | The date they left. If left blank, the person counts as Employed | No |
| Days worked | Days worked in the selected month. Entered in the list, not in the form | — |
Status is not something you type; it is worked out from the selected month:
| Status | When it appears |
|---|---|
| Employed | Still employed at the end of the month — no end date, or an end date after this month |
| Left | The end date falls inside this month |
| Not employed | Not employed during that month at all — started after it, or left before it began |
5. Step by step
5.1 Choosing a month
Use the arrows in the toolbar to move one month at a time, or the Month and Year pickers. If you have moved away from the current month, a Back to current month button appears.
5.2 Entering days
- Click the Days worked cell in the person's row. When the cell takes focus its contents are selected, so you can just type over them.
- Only digits are accepted; letters and symbols never reach the box.
- Enter or ↓ moves to the next row, ↑ to the previous one. You can fill in the whole list without touching the mouse.
- Every row you change is marked and the save bar appears at the top.
- Choose Save.
Saving sends only the rows that changed; no request is made for rows you did not touch. If a row cannot be saved it stays in the list and the message says so.
Discard rolls back every change you made for that month and restores the saved values.
5.3 Filling in bulk
The Bulk fill menu in the table header offers three options:
| Option | What it does |
|---|---|
| All days in the month | Enters the number of days in the month (e.g. 30) |
| Weekdays | Enters the number of weekdays in the month (e.g. 22) |
| Reset visible rows | Enters 0 for everyone |
Bulk fill is a change like any other; nothing reaches the server until you choose Save.
5.4 Adding someone to the workforce
- Choose New worker.
- Fill in Full name, ID No., Subcontractor and Start date. Leave the end date blank so the person counts as Employed.
- Choose Add to workforce.
The app checks the ID number before saving:
- If it is already registered in this project, it refuses and names the person it clashes with.
- If it appears to be active in another project, it says "An end date must first be entered in that project."
- If it is not 11 digits of numbers only, it is not accepted.
5.5 Editing a worker
Click the row and choose Edit worker in the details panel. The same checks apply when editing; an end date cannot be before the start date.
When someone leaves, the thing to do is enter an end date. They stop appearing in the list in later months, while timesheets for past months stay exactly as they were.
5.6 Deleting a worker
Choose Delete worker in the details panel. The confirmation counts how many monthly timesheet records will be deleted along with the person and reminds you that person-day totals for past months will change.
5.7 Searching and filtering
Search workers looks at the full name, the ID number and the subcontractor name. The search ignores Turkish letter differences: typing istanbul finds İstanbul and typing ozturk finds Öztürk.
The Workforce scope filter has two values:
| Value | What it lists |
|---|---|
| Employed this month (default) | Only the people employed during that month |
| Entire workforce | Everyone; those not employed that month are marked Not employed |
The default is deliberate: leaving someone who left two years ago in this month's list, with an editable day box next to them, invites mistakes.
6. Exports
There are two exports, and both write out the list as you see it — whatever the filters, the sort order and the selected month are, that is what reaches the file.
Download Excel
The file carries the header rows, then the column headings and the records. The columns are worker, ID no., subcontractor, status, start date, end date and days worked. A TOTAL row closes the sheet.
Two useful details: the heading row is frozen, so the column names stay on screen as you scroll, and filtering is switched on, so you can build your own sort order. Dates are real date cells — they can be sorted and pivoted. The ID number is written as text so that a leading zero is preserved.
Download PDF
A4 portrait, laid out for signature, with two signature boxes at the end (one of them for the subcontractor's representative).
An empty list is not exported; both buttons are disabled while the list is empty.
7. Things worth knowing
An empty cell and a 0 are not the same thing. An empty cell means "this person's timesheet has not been entered yet" and keeps them in the Not Entered count. A 0 is a decision: "this person did not work at all this month." That distinction is what lets you see from the screen whether the month is finished.
Working offline. With no internet connection the page warns you, but the days you entered stay on screen. Once the connection is back, choosing Save is enough — you do not have to type them again.
Sorting follows subcontractor groups. It works this way so that each firm's monthly total can be read directly. If you want a different order, use the filter in the Excel export.
Workforce changes ignore the filters. The "who started and who left" block always covers the whole month, even when you have narrowed the list.
The subcontractor list comes from the Subcontractors module. If a firm is missing from the dropdown when you add a worker, it has to be defined there first.
8. Related sections
- Subcontractors — the firms workers are attached to are defined there.
- Site Daily Report — the daily headcount is a separate ledger; timesheets hold the monthly total.