-
-
Notifications
You must be signed in to change notification settings - Fork 19
CaseModel
Jani Giannoudis edited this page Jan 21, 2026
·
1 revision
The Payroll Engine categorizes cases into one of four categories.
- Employees
- Companies
- National
- Global
Each area has its own API endpoints and database tables. The procedure for determining company and employee cases is outlined below.
The cases assigned to a company must be identified.
- Legally required company data
- Data shared across employees
- Data related to business partners (insurance conditions, etc.)
- Subdivide use cases, e.g., by
- Actor
- Business partners
- Company regulations
- Per case
- Determine case fields with data type and time type
- Determine rules for availability and validation
The following example shows two business cases:
"regulations": [
{
"name": "RegulationName",
"updateMode": "NoUpdate",
"cases": [
{
"name": "Company",
"caseType": "Company",
"fields": [
{
"name": "CompanyId",
"valueType": "String",
"timeType": "Calendar"
}
]
},
{
"name": "CompanyInsurance",
"caseType": "Company",
"fields": [
{
"name": "CompanyInsurancePlan",
"valueType": "Integer",
"timeType": "Calendar"
}
]
}
]
}
]Case availability and validation is performed using Actions.
The employee's cases during his time of employment should be identified.
- Legally required employee data
- Wage-related cases
- Subdivide use cases, e.g., by
- Partner
- Children
- Pension plan
- Benefits
- Per case
- Determine case fields with data type and time type
- Determine rules for availability and validation
The following example shows the cases for the employee and his partner:
"regulations": [
{
"name": "RegulationName",
"updateMode": "NoUpdate",
"cases": [
{
"name": "Employee",
"caseType": "Employee",
"fields": [
{
"name": "EmployeeIdentifier",
"valueType": "String",
"timeType": "Calendar"
},
{
"name": "EmployeeFirstName",
"valueType": "String",
"timeType": "Calendar"
},
{
"name": "EmployeeLastName",
"valueType": "String",
"timeType": "Calendar"
},
{
"name": "EmployeeSalary",
"valueType": "Money",
"timeType": "Calendar"
}
]
},
{
"name": "EmployeeAddress",
"caseType": "Employee",
"fields": [
{
"name": "EmployeeAddressCity",
"valueType": "String",
"timeType": "Calendar"
}
]
},
{
"name": "EmployeePartner",
"caseType": "Employee",
"fields": [
{
"name": "EmployeePartnerFirstName",
"valueType": "String",
"timeType": "Calendar"
},
{
"name": "EmployeePartnerLastName",
"valueType": "String",
"timeType": "Calendar"
}
]
},
{
"name": "EmployeePartnerAddress",
"caseType": "Employee",
"fields": [
{
"name": "EmployeePartnerAddressCity",
"valueType": "String",
"timeType": "Calendar"
}
]
}
]
}
]- Regulation Design guidelines
- Lookups design guidelines
- Payrun design guidelines
🤝 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