Relevance: All users
Version release: Magnesium 8.00 (including patches 7.06 to 8.03)
Release to staging: 24/01/2023
Release to production: 20/02/2023

Summary of functionality

In this release, I finally caved in to the demand for an ‘approve all’ button. We released a bunch of new allowance and penalty triggers, made it easier to assign plant items, and a bunch of other stuff. Settle in and read all about it.

New condition to trigger penalties for working continuous hours

When people work X number of hours without a break, they need to be able to trigger a penalty (paid loading) on their base rate for the time from when the break should have occurred until a break does occur. Rather than rely on manual triggers to apply this penalty, we have created a new trigger called continuous hours and yes, it is awesome. Thank you.

This should help users who, for example, are entitled to a break after 5 hours but start work at 7 am and are still working at 1 pm. At this point the user should have penalties on any time worked after midday (when they exceeded the 5 hours). The penalty should apply until they have actually recorded a break.

You can now define the maximum hours able to be worked before a break happens.


New auto-allowance condition for excess time types

This provides a way to apply a condition to auto-allowances based on the excess-time type a user triggers. This helps when a council has allowances that are only applied on excess hours where the excess time hours are paid. This also allows for specifying the actual rule created, not just the type.


Change how the system requires comments against excess-time

Prior to this we had a system-wide flag to require comments against excess-time recorded. This change allows users to require comments based on what excess-time types they have triggered and how many hours were triggered.


Allow assigning plant items to users by pay group, department and plant classes

There are a large number of councils where plant items are used across multiple users and users have multiple plant items. Now, users have the ability to add a department or pay group to a plant item, similar to the work-orders which will then assign the plant item to all users in that department or pay group (as per existing work-order functionality).

Plus, when assigning plant to a user, the assign plant items modal now provides a new panel called “Assign plant class or in bulk”. The options give the ability to select from all active plant classes (and multi select) as well as an option in the drop down to assign all.


Add ability to filter staff (user) lists by system access

This filter allows payroll to quickly see users with a particular tag against their profile. For example, payroll officers.


Alter approval process of leave to validate against balances

Indulge us here because this one takes some explaining. Previously, users were able (if they were inventive) to get around the fact that they can’t go into negative on set leave types by breaking a single request into multiple requests. For example, if a user had 7.6 hours per day to work and has 20 hours of annual leave (pro rata and available) and they are not able to go into negative balance, they will not be able to submit a single request for three days of annual leave. But, they could submit 3 requests for one day each within the same payrun and the system would allow them to do it. This is due to the fact that technically leave balances are available until they are committed, and they are only committed once they are approved.

The problem with this means, of course, that when the 3 leave requests are approved they will now have a negative balance, as the total is over the 20 hours they have available.

This change resolves this as it shifts the validation to occur also on approval of requests. For example, in this case if the manager approved 1 request the user would now have a balance of 13.4 hours.

The next request when approved would leave them a balance of 5.8 hours.

This means the manager would not be able to approve the remaining request as it exceeds the remaining balance. Make sense?

Yes. And see, sometimes indulging is worth it.


Add approve all without issues button to payrun

We all know what I think of this one, but we have some councils where payroll and managers are only concerned about timesheets that have issues. Therefore they would like to be able to bulk approve timesheets that have no other issues. Now they can using the ‘Approve all waiting’ button.

When selected, the status of all timesheets waiting for that user to approve where the timesheet flag is ‘Approve now’ is changed to ‘Approved’ for that step of the timesheet workflow. This button is available to all workflow levels including payroll officers.

Note: Any timesheets with issues still need to have the issues resolved prior to the manager approving them.


Fix issue with replacing recorded hours with a full days leave request if worked hours are greater than a full day leave hours

Users with autocomplete timesheets that are using leave requests to replace auto completed hours within their timesheet are now able to make a single request even if their leave request for a full day is less than their expected hours of work for the day. Handy when staff work 8 hours a day but take a full day of leave at 7.6.

Note: If this toggle is true, when a full day leave request is made, it will remove all hours recorded in that day regardless of the time. This only applies to full day leave; part day leave requests will remain the same, replacing only the matching hours in any case.


Remove validation and create ability to create rules with sum different than 100% for allowance splits

We created the ability to select a single ad hoc allowance and split the allowance across multiple codes, which is awesome. However, we didn’t allow for the ability to post the full allowance amount selected to more than one allowance code. In order to do this, we need the ability to exceed 100% as well as less than 100%. This functionality allows that.

For example, having mileage where 100% of the code is pushed to allowance code 56 and 100% of the allowance is also pushed to allowance code 62 would mean that if 100 km was entered 100 km would be posted to both allowance code 56 and 62 in the payroll system.


Add prefix/suffix fields to auto allowances and plant

We have had a challenge where, for some councils, parts of the work-order or project string are dynamic but the dynamic part of the string is variable (i.e. it is inconsistent). We have added in some prefix and suffix fields to solve this one.


Changes to timesheet summary and other information pages

We noticed that the excess-time layouts were inconsistent across the summary views. Once we started playing, we just redid the lot so we have made changes to all the pages. It looks better, trust us.


Tiny and not so tiny things (and there are so so many of them)


8.2.1 [PERF] Improve performance on timesheets listing pages.

8.2.2 [FIX] Remove from error log when users look at integrations from type classes not defined (leave balances only have module classes, for example).

8.2.3 [FIX] Higher duties. Changes to hour code were not saving when requesting/editing/approving duty requests.

8.2.4 [FIX] When turning the flag “apply duty rate to all leave” on, this setting would not stay on. It does now.

8.2.5 [FIX] Fix issue with timesheets visible to role managers of old terminated roles.

8.2.6 [DEPLOY] Create auto-scaling policies.

8.2.7 [DEPLOY] Schedule auto-scaling based on time of the day and day of the week.

8.2.8 [FIX] Fix issue where shifts cannot be made inactive. If you have no one currently assigned to a shift, you have the option to make the shift inactive. However, when you tried to do so you got a 2002 error. Being able to make shifts inactive is super handy for tidying up the shift assignment and selection drop down options throughout the system, so we fixed it so that you can.

8.2.9 [FIX] Fix 500 error shown on role assignments page for users not linked to any pay group type.

8.2.10 [FIX] Fix issue with accessing deleted departments from relationships.

8.2.11 [FIX] Fix rounding on number of hours into ad hoc allowances modal.

8.2.12 [FIX] Fix number of hours calculations on ad hoc allowances where part hours with start and end times are required.

8.2.13 [CHORE] Add an exception for users with error on setup and they don’t have shifts assigned to master role, but to secondary roles only, and record period excess-time.

8.2.14 [FIX] Fix error on logs for users without a master role assigned and their profile is accessed.

8.2.15 [FIX] Assume that `null` values for amount paid on higher duties is 0 (zero) so it won’t cause 500 errors.

8.2.16 [FIX] Hide variances graphs from payrun processing page.

8.2.17 [FIX] Remove some unused code from payrun processing page that could be slowing the page down.



8.2.18 [FIX] Fix associated model to time recorded. It was selecting a project activity even on work-orders in some cases.

8.2.19 [FIX] Fix issue with calculating penalties based on continuous hours when end time was at the beginning of the hour (minute 00), but total hours of penalties were not whole hours.

8.2.20 [FIX] Fix validation error on form to request higher/additional duties where pay types were not required if, by the settings, they can’t have custom pay rates.

8.2.21 [FIX] Fix issue with time calculations when users don’t have tolerance and shift type is glide period.



8.2.22 [FIX] Fix excess-time error where the wrong code was being related in cases where multiple blocks recorded in the same day with different codes and different excess-time rules.

8.2.23 [FIX] Fix 500 error on excess-time view when user has period excess-time.

8.2.24 [FIX] Fix error on excess-time work block generation that was affecting auto-allowance calculations for types that are related to excess-time types or rules.



8.2.25 [FIX] Fix issue where when user sends message to timesheet that is partially approved (not by themselves). They can’t approve that any more.

8.2.26 [FIX] Fix issue with workflow rule that checks if timesheet is blank. The logic wasn’t right, so it was not behaving correctly in all cases.

8.2.27 [FIX] Fix on excess-time not approved into timesheet approval issues.

8.2.28 [FIX] Fix issue with workflow rule for role managers when there are higher duty requests for the managers.



8.2.29 [FIX] Fix accrued hours calculation in the end of the period to use actual adjusted hours instead of saved calculated value into the timesheet.

8.2.30 [FIX] Fix issue with command that fixes leave balances that was calculating wrong balances for committed hours for banks that have leave types associated.

8.2.31 [FIX] Fix issue with leave still being approved without enough balance.

8.2.32 [FIX] Fix leave taken hours and number of instances shown on leave details page.

8.2.33 FIX] Hide users without leave options from leave details page.



8.2.34 [FIX] Fix error on report “Total hours by employee by role” where users linked to departments that were deleted were stopping the report from working properly.

8.2.35 [FIX] Fix error with custom pay types on report “Total hours by employee by role”.

8.2.36 [FIX] Fix memory limits for background processes that generate reports. It was lower for normal hosts compared to socket and dev.

8.2.37 [PERF] Apply a few changes to report “Total hours by employee by role” to reduce memory usage.



8.2.38 [FIX] Fix issue with switching profiles when user was logged in on another device.



8.2.39 [CHORE] Add option `isLeaveAvailable` for logged user details on the return of auth API.

8.2.40 [FIX] Fix error on Authority user sync integrations on public API where users were not loading.