-
-
Notifications
You must be signed in to change notification settings - Fork 12
Regulations
Regulation reduces the complexity of payroll software by splitting it up. Unlike networked architectures (e.g. microservices), the components of Payroll Engine are stacked in a layered model. Each layer contains models, calculations and evaluations. Object inheritance concepts allow this information to be overridden and extended.
Regulations can be shared between tenants, which saves resources and greatly simplifies deployment. The Payroll Console can be used to import, export and test regulations. The Web Application supports editing of regulations taking into account the inheritance hierarchy.
The regulation consists of the following objects.
Object | Description | Features |
---|---|---|
Case |
Wage-relevant event of an employee 1) | - Case availability - Container for input fields |
CaseField |
Data field of a case | - Unique field name - Data- and time type - Control of user input |
CaseRelation |
Relationship between two cases | - Conditional relationship - Relationship to cases in other regulations |
Collector |
Aggregation of payrun results | - Aggregation type (default: summary) - Group collectors - Custom results |
WageType |
Wage type in the payrun | - Wage types for wages, deductions and contributions - Numbered processing sequence - Custom results |
Report |
Data evaluation and exchange | - Dynamic report parameters - Multilingual report templates - Raw data reports |
Lookup |
Data tables from external data 2) | - Values by key - Multilingual values - Values for number ranges |
Script |
Shared functionality in C# | - Assignment to Functions - Custom Actions |
1) There are four case types: Employee
, Company
, National
and Global
.
2) External data should be kept in isolated regulations to ensure correct time data by means of versioning.
A regulation object has the following properties
- Audit trail of changes
- Object can be deactivated and is no longer considered
- Extensible by user-defined attributes
- Unique key for override
A cluster is used to select or exclude regulation objects according to certain criteria. This is done using an advanced tagging mechanism with whitelist and blacklist tags. This can be used to
- group and filter settlement objects, e.g. for cases and reports (see web application)
- narrow down the available case data in the payroll run
- optimize the results of retroactive accounting
Actions can be used to control data entry and verification without programming knowledge. As in Excel, an action is a predefined function that can also be executed conditionally, analogous to the Excel function IIf()
. The action provides access to user input, previous case data, and lookup tables.
.
Custom Actions are also possible as part of the Regulation.
The runtime behavior of the Payroll Engine is determined by functions. Each rule object provides corresponding functions, such as the Wage Type Value
function from the Wage Type
object. The function is described by C# code (script expression).
C# scripts for the Case and Report functions can also be executed in the local debugger.
Regulations can be offered on platforms such as GitHub with the desired license. There are various options for commercialization, such as a private repository that is unlocked for a fee.
A regulation consists of JSON, C# and report files that can be distributed as compressed zip files. Regulations with extended functions are distributed as NuGet packages. These contain the versioning of the package as well as the dependencies to other regulations.
Various tools exist for the development of a regulation
- Web App - Prototyping of a payroll solution with modern user interface
- Payroll Console - Development of a payroll solution using JSON/C# files, incl. version management and tests
- Visual Studio, VS Code - Development of a complex payroll solution in .NET projects, incl. version management, tests and debug support
🤝 Thank you for supporting this project with a donation.
⚡ This is a pre-relase version of the initial development, please read the restrictions.
- Payroll Engine