Employee attendance

This would be nice to see as we have similar high on our TODO list.

Our primary additional requirement useful in the French market is the physical workplace as there are reporting requirements (monthly mass salary per community code where majority time was spent) related to transport. Project [sub]task is parallel.
(ie a project can have many workplaces and at a particular workplace many projects can be worked on)

I think this should be managed by a process that create a summary (grouping) of all attendances per employee and per period (e.g: work day or week etc). This process will also ensure that we have a valid in/out alternence.

Indeed we manage the valid alternance (and other validations) in attendance workflow.

I’m not sure if a summary is really usefull. Normally the same employee should not have a lot of attendance records per day (one in/out, two as much) so I do not see a sumary will provide a big benefit for reporting proposes. Do you have any other usage in mind?

I think this is a presupposition.

The attendance could be used to check movement inside a building with controlled area for example. In such case, you may have a lot of entries per day.
This makes me think that the “place” of attendance may have some properties defining if it must be added or subtracted from the grand total of time.

If i may steal the concept of “place”, and adding it to my proposal (sorry for beat my drum):

Access audit

Gate

What’s a gate:

  • The “gate” is a fiscal place where a gate (a door, a turnstile, a punch clock 
) is located.
  • The “gate” has a direction (in/out)
  • The “gate” will take a identifier from a person (eg. badge UUID)
  • The “gate” will take a timestamp of the entry event.

Place

A “Place” is a physical area debilitated by places:

  • Just a list of gates(in/out)

Why we need a “Place”? Because physical spaces have multiple entry and exits, and it easy to implement a rule based on zones, than singular gates.

I think this should be a module on itself (like i suggested above). This will be in common with a future access control, radiation exposure control ecc

This will make easy to use a gate for clock-in/out if the user what to do so.

Attendance

Attendance line

What The “attendance line” record should do:

  • group together two in/out timestamp from a same place and same UUID/party
  • (@ced) based on a rule, add and subtract hours (I think we should permit to add/subtract fixed amount of hours)

Consideration

Why not there should be a reason on the “attendance line”?

I think this should be implemented in a future “payroll” module.

Why should be possible to have a fixed amount of hour?

In some company you detract a fixed amount of hours for lunch. (we have this arrangement at work because the trade union didn’t want the employer to track the lunch breaks).
Another user case is for fixed periods for shift (and no overtime) workplaces.

Attendance period

Group attendance line by party and time duration ( fixed or specified by the user). This can be a table_query.

Conclusion

This can be a way to not re implement a timestamp memorization module for similar module (like access control, radiation control/mitigation ecc
).
What do you think, am i too ambitions? is this reasonable?
This model works well for machine imputed timestamps, but don’t know if is reasonable for manual input, thoughts?

I believe your ‘place’ should somehow be tied to a physical address which, in turn, may be tied to one or more parties.
BTW, the ‘gate’ or perhaps ‘entry point’ is indeed useful when there is such control, but naturally it can not be mandatory nor is it used everywhere. It may, for example, be used only for secured areas.

As mentioned above, for the French case, it is typically the postal code of the address from where the communal (INSEE) code is derived (https://www.data.gouv.fr/fr/datasets/correspondance-entre-les-codes-postaux-et-codes-insee-des-communes-francaises/)

Dear all:

I might come to add some more complexity to this issue
 Sorry :wink:

There is a concept in manufacturing management called OEE (Overall Equipment Efficiency) that measures the efficiency of the Working Centers. In some local ERPs we have made it in order to solve local law as expossed by Pokoly and also get this KPI widely used nowadays.

Every working center has got a 24h register so the worker informs the state of it. Different states could be: repairing, adjusting, stopped because there is no working order assigned, stopped because there is no humar resource, stopped because worker is having rest, stopped because there is a meeting
 And there is also a state that would be working. In this case the worker should select the working order on curse and there would be a register of when it started and when it finished.

This gives enough info for two of the OEE components:

  • Availability: we know the time and percentage of the time that the work station hase been available
  • Performance: by having a standard, we could be able to know if the performance was good or not

With this info a production manager can apply other existing continuous improvement tools like the ones used in Lean Manufacturing

Regarding the employees attendance it is also solved. When in plant the employee must register himself to one workstation (could be multiple ones if needed) so all the tracks registered in the work station are also aplied to him. When the work station is stopped and the incident doesn’t apply to him (is repairing and he is not working on that) he should register himself in other work station. This could be a real work station or be “Meeting”, “Waiting for repair”, or whatever.

This way we know what the employees and work stations have done minute by minute and can manage the plant.

When the employee fails to come to work human resources would assign the “Work station” for him, being it : ill, holidays


I have seen this working in two different factories and “basically” (I know I am sometimes too simplistic) two tables are needed to maintain track of the employees and working centers state

I don’t know if there is any module that already considers the measuring of the OEE but I would ask you to have it into account seriously: every production manager will need and use it if wants to work under the Lean Manufacturing philosophy.

Regards

I like this simple idea. I would add a new field “Reason” (one2many) for action “out”. These “out Reasons” would be “effective” (e.g. working out of the office.) or “not effective” (e.g. lunch). The rational behind this is to control the working hours and additionally to know if the employee is in the company facilities (Important for safety policies)

I do not think that it is a good idea to mix employee attendance and facility access. There may be special cases where these two concepts match each other but we should solve these two concepts independently first. Combining the concepts later for the special matching case should be easy then.

1 Like

I built something like this a long time ago, with a small python/qt client running on a raspberry pi reading RFID cards. https://bitbucket.org/rmu/zeiterf. It is somewhat modelled after an SAP payroll app i knew in the dark ages.

Code is a bit quick and dirty. It records events (sign in/sign out/begin break/etc
) in an event table. A wizard matches sign in/out, breaks etc
 and fills another table (one row per employee and day). Different working time regimes can be defined.

Holidays, vacation, illness etc
 is more or less ignored and has to be entered manually by whoever generates the reports.