Year-to-date, finished
October's main achievement was finishing the year-to-date report started in August. Year-to-date totals are what employers lean on at year end and whenever an employee asks how much tax they have paid so far. The final version was cleaner than the first attempt and now shows warnings where the data looks inconsistent, rather than quietly producing a number that might be wrong.
We also added taxable income as a hook in the calculation, so it can be adjusted in the same structured way as other items, along with a migration to record it.
Closing, one step at a time
Closing a payroll is one of the most important actions in the system, because it locks a period and prepares the next. Until now the code for it lived in several places. This month it moved into its own class and was broken into clear steps, with checks for weekly and fortnightly payrolls before anything is changed. Splitting it up makes it easier to see where a close stopped if something goes wrong, and easier to add new steps later.
Events and reports
We moved more of the system onto events. When something changes that affects many employees, an event now triggers an update of the entire payroll rather than relying on each screen to recalculate its own part. Rebuilding employee details was also moved onto a background job.
Finally, a new reports module was added and the payslip template was refined. It was a quieter month by commit count, but much of the work was in areas where getting it right matters more than getting it fast.
This article was written from Mintage Payroll’s commit history for October 2021. See Mintage Payroll today