EC Time – hints and tipps Nr.3: validation that overtime is recorded only outside planned time
again a short how-to blog on setting up EC Time Valuation in order to illustrate how a real life customer requirement can be covered in EC Time. This shall demonstrate how to best use the different time valuation types – and also to show that it is less complicated as it looks ;-).
Business requirement is to have a validation that a dedicated overtime time type can only be recorded outside the employees scheduled working time and not during the employees scheduled working time.
You know that there are always several ways how customer want to have their overtime processes covered. Customers can choose to have only 1 attendance time type to be recorded by employees and the time valuation sorts out in its daily, weekly or monthly calculations what is overtime and what normal working time, thus generating overtime pay types or regular paid types.
But some customers want that employees explicitly record a dedicated “overtime” time type. Be it for better reporting purpose (but here you could report on time valuation results, too) or to trigger a time sheet workflow only when this time type is recorded (but here again in the workflow rule the time valuation results can be queried) or due to the explicit action that an employee simply need to record something different than his normal working time.
So, when customers want employees to record an explicit overtime time type they often want that this time type is validated to be recorded only outside their scheduled working time. This requirement is best covered within the time valuation rules. But wait, why not using the time sheet validation rules based on business rules for it? Cause it is much more complicated to set this up with the business rules and it is slow in performance.
With the time sheet valuation rules it is much more easier, you need only 1 small rule:
As a precondition you need to have already time type groups created that collect the scheduled working time and the recorded overtime – but this you need to do anyway when you want to use the time sheet. Looks like this:
Scheduled working time:
Lets look onto the time valuation rule then. You need one that contains the time valuation type “Deduct Group from Input Group” and you need to use the above mentioned “Scheduled working time” and the “Recorded overtime”. Lets just look how this rule looks like:
So, what´s going on in there?
The input time type group “scheduled working time” per day is checked against the deduction group “Recorded overtime”. When there is a time slice containing an overlap of this two time type groups an entry is written to the time type group stated in the time type group below field. This is simply a kind of dummy-time type group that we need to raise an error on it. It is not important how many hours are put into this time type group nor on which day, the sheer fact that there is a value in it states that there is an overlap and this is enough for our purpose. Cause this means in the end that an recorded time type “overtime” overlaps with the scheduled working time per day. And this should not happen. Hence, I raise an error message by seting the error flag to “raise error message on time type group below” and as a message text I choose for example: “Overtime can only be recorded outside planned time”.
Done. Nice, clean and easy. Result in the time sheet looks when an overtime time type is recorded outside the planned time looks like this:
All good, no error. You can see that the scheduled time is 08:00 – 17:00 and I recorded overtiem from 17:00 – 21:00. But when I record overtime outside the planned time….
… the defined error message pops-up. And this works not only when the record is completly inside the scheduled time, but also partially inside and partially outside:
Let me add some finetuning suggestion:
You don´t have to create dozend of valuation rules when you have got dozend of time types that you want to veto when recorded inside the planned working time.
When the time types are of the same category (like attendance, absence, on call…) you just add them as Input time type when you define the time type group that you want to use as “deduction group” or “input time type group” in the time valuation rule.
However, when you have got multiple time types of different category (overtime and on-call for example) then you can´t mix them into 1 time type group. You better adapt the above mentioned rule in a way that you exchange the value in the “input time type group” with the time type group you have entered in the “deduction group”. Cause a deduction group can only be 1, whereas as input time type group you can enter multiple time type groups. Hence you can assign here time type groups that collect on call time types and time type groups that collect overtime time types. Means the “deduct” time valuation type works vice versa the same way.
Looks like this:
I just exchanged the “deduction group” with the “input time type group” entries and added there a new time type group that collects the on-call times.
And of course the error message needs to be more generic when you enter more Input time type groups. It can´t be something like: “Overtime allowed only outside planned time” when the user tries to record an on call time type 😉
End of story. Hope this little example of how the “Deduct Group from Input Group” can be used was helpful to you.