1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
server:
host: 0.0.0.0
port: 8080
grpc_port: 50051
database:
url: postgresql://root:password@localhost:5432/skeletondb
max_connections: 10
min_connections: 5
connect_timeout: 30
idle_timeout: 600
logging:
level: info
format: json
file: logs/payroll.log
module:
name: payroll
enabled: true
features:
soft_delete: true
state_machines: false
workflows: false
entities:
payroll_entry:
collection: payroll_entries
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
salary_slip:
collection: salary_slips
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
salary_slip_line:
collection: salary_slip_lines
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
salary_structure:
collection: salary_structures
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
salary_component:
collection: salary_components
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
compensation_change:
collection: compensation_changes
enabled: true
cache_ttl: 300
pagination:
default_limit: 20
max_limit: 100
tracing:
enabled: true
exporter: otlp
endpoint: http://localhost:4317
metrics:
enabled: true
endpoint: /metrics
port: 9090
statutory:
pph21:
brackets:
- lower_bound: '0'
upper_bound: '60000000'
rate: '0.05'
- lower_bound: '60000000'
upper_bound: '250000000'
rate: '0.15'
- lower_bound: '250000000'
upper_bound: '500000000'
rate: '0.25'
- lower_bound: '500000000'
upper_bound: '5000000000'
rate: '0.30'
- lower_bound: '5000000000'
upper_bound: null
rate: '0.35'
ptkp_map:
tk0: '54000000'
tk1: '58500000'
tk2: '63000000'
tk3: '67500000'
k0: '58500000'
k1: '63000000'
k2: '67500000'
k3: '72000000'
npwp_surtax_multiplier: '1.2'
bpjs:
kesehatan:
employee_rate: '0.01'
employer_rate: '0.04'
salary_cap: '12000000'
ketenagakerjaan:
jht_employee_rate: '0.02'
jht_employer_rate: '0.037'
jp_employee_rate: '0.01'
jp_employer_rate: '0.02'
jp_salary_cap: '10547400'
jkk_rates_by_risk_class:
'1': '0.0024'
'2': '0.0054'
'3': '0.0089'
'4': '0.0127'
'5': '0.0174'
jkm_rate: '0.003'