formula-parser-payroll 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +202 -0
- package/dist/database/database-connector.d.ts +60 -0
- package/dist/database/database-connector.d.ts.map +1 -0
- package/dist/database/database-connector.js +9 -0
- package/dist/database/database-connector.js.map +1 -0
- package/dist/database/helpers.d.ts +44 -0
- package/dist/database/helpers.d.ts.map +1 -0
- package/dist/database/helpers.js +120 -0
- package/dist/database/helpers.js.map +1 -0
- package/dist/database/index.d.ts +11 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +29 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/payroll-formula.service.d.ts +118 -0
- package/dist/database/payroll-formula.service.d.ts.map +1 -0
- package/dist/database/payroll-formula.service.js +794 -0
- package/dist/database/payroll-formula.service.js.map +1 -0
- package/dist/database/types.d.ts +117 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +9 -0
- package/dist/database/types.js.map +1 -0
- package/dist/formula-engine.d.ts +18 -0
- package/dist/formula-engine.d.ts.map +1 -0
- package/dist/formula-engine.js +356 -0
- package/dist/formula-engine.js.map +1 -0
- package/dist/formula-parser.d.ts +60 -0
- package/dist/formula-parser.d.ts.map +1 -0
- package/dist/formula-parser.js +366 -0
- package/dist/formula-parser.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/nestjs/database-connector.d.ts +60 -0
- package/dist/nestjs/database-connector.d.ts.map +1 -0
- package/dist/nestjs/database-connector.js +9 -0
- package/dist/nestjs/database-connector.js.map +1 -0
- package/dist/nestjs/helpers.d.ts +44 -0
- package/dist/nestjs/helpers.d.ts.map +1 -0
- package/dist/nestjs/helpers.js +120 -0
- package/dist/nestjs/helpers.js.map +1 -0
- package/dist/nestjs/index.d.ts +11 -0
- package/dist/nestjs/index.d.ts.map +1 -0
- package/dist/nestjs/index.js +29 -0
- package/dist/nestjs/index.js.map +1 -0
- package/dist/nestjs/payroll-formula.service.d.ts +91 -0
- package/dist/nestjs/payroll-formula.service.d.ts.map +1 -0
- package/dist/nestjs/payroll-formula.service.js +640 -0
- package/dist/nestjs/payroll-formula.service.js.map +1 -0
- package/dist/nestjs/types.d.ts +117 -0
- package/dist/nestjs/types.d.ts.map +1 -0
- package/dist/nestjs/types.js +9 -0
- package/dist/nestjs/types.js.map +1 -0
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payroll-formula.service.js","sourceRoot":"","sources":["../../src/database/payroll-formula.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NestJS Module Types for Payroll Formula Parser
|
|
3
|
+
*
|
|
4
|
+
* This module provides type definitions for database-integrated formula parsing.
|
|
5
|
+
* The types are now generic and work with any database client.
|
|
6
|
+
*/
|
|
7
|
+
import { FormulaContext, IDatabaseConnection, CompanyContext, EncryptionConfig } from './database-connector';
|
|
8
|
+
export { FormulaContext, IDatabaseConnection, CompanyContext, EncryptionConfig };
|
|
9
|
+
/**
|
|
10
|
+
* Database connection interface
|
|
11
|
+
* @deprecated Use IDatabaseConnection from database-connector instead
|
|
12
|
+
* Kept for backward compatibility
|
|
13
|
+
*/
|
|
14
|
+
export interface DatabaseConnection {
|
|
15
|
+
query: (sql: string, params?: any[]) => Promise<any>;
|
|
16
|
+
getRepository?: (entity: any) => any;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* User data from authentication
|
|
20
|
+
* @deprecated Use CompanyContext from database-connector instead
|
|
21
|
+
* Kept for backward compatibility
|
|
22
|
+
*/
|
|
23
|
+
export interface UserData {
|
|
24
|
+
companyId: string | number;
|
|
25
|
+
companyCode?: string;
|
|
26
|
+
currentCompanyCode?: string;
|
|
27
|
+
taxCountry?: string;
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Access token configuration for encryption/decryption
|
|
32
|
+
* @deprecated Use EncryptionConfig from database-connector instead
|
|
33
|
+
* Kept for backward compatibility
|
|
34
|
+
*/
|
|
35
|
+
export interface AccessTokenConfig {
|
|
36
|
+
confParse: {
|
|
37
|
+
PNUMBER: string;
|
|
38
|
+
LNUMBER: string;
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
};
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Authentication context interface (Legacy)
|
|
45
|
+
* @deprecated Use FormulaContext from database-connector instead
|
|
46
|
+
* Kept for backward compatibility with existing payroll-server code
|
|
47
|
+
*/
|
|
48
|
+
export interface AuthContext {
|
|
49
|
+
/** Main database connection (for employee/organization data) */
|
|
50
|
+
conn: DatabaseConnection | any;
|
|
51
|
+
/** Finance database connection (for payroll data) */
|
|
52
|
+
connFin: DatabaseConnection | any;
|
|
53
|
+
/** User data from authentication */
|
|
54
|
+
userData: UserData | any;
|
|
55
|
+
/** Access token with encryption config */
|
|
56
|
+
accessToken: AccessTokenConfig | any;
|
|
57
|
+
/** Allow additional properties */
|
|
58
|
+
[key: string]: any;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Module configuration options
|
|
62
|
+
*/
|
|
63
|
+
export interface PayrollFormulaModuleOptions {
|
|
64
|
+
/** Whether to enable debug logging */
|
|
65
|
+
debug?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Input for parsing formula by employee ID
|
|
69
|
+
*/
|
|
70
|
+
export interface ParseByEmpIdInput {
|
|
71
|
+
/** The formula to parse */
|
|
72
|
+
formula: string;
|
|
73
|
+
/** Employee ID (for single employee) */
|
|
74
|
+
empId?: string;
|
|
75
|
+
/** List of Employee IDs (for multiple employees) */
|
|
76
|
+
listEmpId?: string[];
|
|
77
|
+
/** Authentication context with database connections */
|
|
78
|
+
auth: AuthContext;
|
|
79
|
+
/** Optional: for claim-specific processing */
|
|
80
|
+
checkType?: 'claimSetting' | 'payroll';
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Cached data for formula processing
|
|
84
|
+
*/
|
|
85
|
+
export interface FormulaDataCache {
|
|
86
|
+
position?: any;
|
|
87
|
+
costCenter?: any;
|
|
88
|
+
grade?: any;
|
|
89
|
+
workLocation?: any;
|
|
90
|
+
employmentStatus?: string;
|
|
91
|
+
customField?: any;
|
|
92
|
+
childDependents?: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reserved word list result
|
|
96
|
+
*/
|
|
97
|
+
export interface ReservedWordResult {
|
|
98
|
+
words2: string[];
|
|
99
|
+
arrayAcr: string[];
|
|
100
|
+
claimTypes2: string[];
|
|
101
|
+
attStatuses: any[];
|
|
102
|
+
leaveTypes: any[];
|
|
103
|
+
payvarMaster: any[];
|
|
104
|
+
arrayDiscp: string[];
|
|
105
|
+
attintfWord: any[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Result format compatible with payroll-server
|
|
109
|
+
* Uses 'hasil' instead of 'result' to match existing API
|
|
110
|
+
*/
|
|
111
|
+
export interface FormulaParseResultLegacy {
|
|
112
|
+
/** The calculated result (matches payroll-server format) */
|
|
113
|
+
hasil: number | string | boolean;
|
|
114
|
+
/** Success or error message */
|
|
115
|
+
message: string;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* NestJS Module Types for Payroll Formula Parser
|
|
4
|
+
*
|
|
5
|
+
* This module provides type definitions for database-integrated formula parsing.
|
|
6
|
+
* The types are now generic and work with any database client.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payroll Formula Parser - Core Formula Engine
|
|
3
|
+
*
|
|
4
|
+
* This module contains the formula parser using hot-formula-parser library
|
|
5
|
+
* with custom functions for payroll calculations.
|
|
6
|
+
*/
|
|
7
|
+
import { Parser } from 'hot-formula-parser';
|
|
8
|
+
/**
|
|
9
|
+
* Parse and evaluate a formula string
|
|
10
|
+
* @param formula The formula to parse
|
|
11
|
+
* @returns The result of the formula evaluation
|
|
12
|
+
*/
|
|
13
|
+
export declare const parseFormula: (formula: string) => number | string | boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Get the parser instance for advanced usage
|
|
16
|
+
*/
|
|
17
|
+
export declare const getParser: () => Parser;
|
|
18
|
+
//# sourceMappingURL=formula-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-engine.d.ts","sourceRoot":"","sources":["../src/formula-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA4X5C;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,MAAM,GAAG,OAQhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAAgB,CAAC"}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payroll Formula Parser - Core Formula Engine
|
|
4
|
+
*
|
|
5
|
+
* This module contains the formula parser using hot-formula-parser library
|
|
6
|
+
* with custom functions for payroll calculations.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getParser = exports.parseFormula = void 0;
|
|
10
|
+
const moment = require("moment");
|
|
11
|
+
// @ts-ignore - hot-formula-parser doesn't have types
|
|
12
|
+
const hot_formula_parser_1 = require("hot-formula-parser");
|
|
13
|
+
// Create parser instance
|
|
14
|
+
const parser = new hot_formula_parser_1.Parser();
|
|
15
|
+
/**
|
|
16
|
+
* Get current date in MM/DD/YYYY format
|
|
17
|
+
*/
|
|
18
|
+
const dateNow = () => {
|
|
19
|
+
return moment().format('MM/DD/YYYY');
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get current datetime
|
|
23
|
+
*/
|
|
24
|
+
const dateTimeNow = () => {
|
|
25
|
+
return moment().format('MM/DD/YYYY HH:mm:ss');
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Check if a value is a valid date
|
|
29
|
+
*/
|
|
30
|
+
const isDate = (params) => {
|
|
31
|
+
if (params[0]) {
|
|
32
|
+
const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
|
|
33
|
+
const date = new Date(formattedDate);
|
|
34
|
+
return date instanceof Date && !isNaN(date.getTime());
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Get day of month from date
|
|
40
|
+
*/
|
|
41
|
+
const day = (params) => {
|
|
42
|
+
return params && params[0] !== null && params[0] !== ''
|
|
43
|
+
? new Date(params[0]).getDate()
|
|
44
|
+
: 0;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Get month from date (1-12)
|
|
48
|
+
*/
|
|
49
|
+
const month = (params) => {
|
|
50
|
+
return params && params[0] !== null && params[0] !== ''
|
|
51
|
+
? (new Date(params[0]).getMonth() + 1).toString().padStart(2, '0')
|
|
52
|
+
: '0';
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Get year from date
|
|
56
|
+
*/
|
|
57
|
+
const year = (params) => {
|
|
58
|
+
return params && params[0] !== null && params[0] !== ''
|
|
59
|
+
? new Date(params[0]).getFullYear()
|
|
60
|
+
: 0;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Get number of days in month
|
|
64
|
+
*/
|
|
65
|
+
const daysInMonth = (params) => {
|
|
66
|
+
const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
|
|
67
|
+
return moment(formattedDate).daysInMonth();
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Get day of week (1=Monday, 7=Sunday)
|
|
71
|
+
*/
|
|
72
|
+
const dayOfWeek = (params) => {
|
|
73
|
+
const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
|
|
74
|
+
return moment(formattedDate).isoWeekday();
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Check if value is numeric
|
|
78
|
+
*/
|
|
79
|
+
const isNumeric = (params) => {
|
|
80
|
+
return !isNaN(parseFloat(params[0])) && !isNaN(Number(params[0]));
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Get hour from datetime
|
|
84
|
+
*/
|
|
85
|
+
const hour = (params) => {
|
|
86
|
+
params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
|
|
87
|
+
return params && params[0] !== null && params[0] !== ''
|
|
88
|
+
? new Date(params[0]).getHours()
|
|
89
|
+
: new Date().getHours();
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Get minute from datetime
|
|
93
|
+
*/
|
|
94
|
+
const minute = (params) => {
|
|
95
|
+
params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
|
|
96
|
+
return params && params[0] !== null && params[0] !== ''
|
|
97
|
+
? new Date(params[0]).getMinutes()
|
|
98
|
+
: new Date().getMinutes();
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Get second from datetime
|
|
102
|
+
*/
|
|
103
|
+
const second = (params) => {
|
|
104
|
+
params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
|
|
105
|
+
return params && params[0] !== null && params[0] !== ''
|
|
106
|
+
? new Date(params[0]).getSeconds()
|
|
107
|
+
: new Date().getSeconds();
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Calculate difference between two dates
|
|
111
|
+
* @param params [unit, date1, date2] - unit can be YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
|
|
112
|
+
*/
|
|
113
|
+
const dateDiff = (params) => {
|
|
114
|
+
params[1] = moment(new Date(params[1])).format('YYYY-MM-DD');
|
|
115
|
+
params[2] = moment(new Date(params[2])).format('YYYY-MM-DD');
|
|
116
|
+
let date1 = new Date(params[1]);
|
|
117
|
+
let date2 = new Date(params[2]);
|
|
118
|
+
const swapped = date1 < date2;
|
|
119
|
+
if (swapped)
|
|
120
|
+
[date1, date2] = [date2, date1];
|
|
121
|
+
const diffInMs = date1.getTime() - date2.getTime();
|
|
122
|
+
if (!diffInMs) {
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
switch (params[0]) {
|
|
126
|
+
case 'YEAR': {
|
|
127
|
+
let years = date1.getFullYear() - date2.getFullYear();
|
|
128
|
+
if (date1.getMonth() < date2.getMonth() ||
|
|
129
|
+
(date1.getMonth() === date2.getMonth() && date1.getDate() < date2.getDate())) {
|
|
130
|
+
years -= 1;
|
|
131
|
+
}
|
|
132
|
+
return swapped ? -years : years;
|
|
133
|
+
}
|
|
134
|
+
case 'MONTH': {
|
|
135
|
+
let months = (date1.getFullYear() - date2.getFullYear()) * 12 + (date1.getMonth() - date2.getMonth());
|
|
136
|
+
if (date1.getDate() < date2.getDate()) {
|
|
137
|
+
months -= 1;
|
|
138
|
+
}
|
|
139
|
+
return swapped ? -months : months;
|
|
140
|
+
}
|
|
141
|
+
case 'DAY':
|
|
142
|
+
return swapped ? -Math.floor(diffInMs / (1000 * 60 * 60 * 24)) : Math.floor(diffInMs / (1000 * 60 * 60 * 24));
|
|
143
|
+
case 'HOUR':
|
|
144
|
+
return swapped ? -Math.floor(diffInMs / (1000 * 60 * 60)) : Math.floor(diffInMs / (1000 * 60 * 60));
|
|
145
|
+
case 'MINUTE':
|
|
146
|
+
return swapped ? -Math.floor(diffInMs / (1000 * 60)) : Math.floor(diffInMs / (1000 * 60));
|
|
147
|
+
case 'SECOND':
|
|
148
|
+
return swapped ? -Math.floor(diffInMs / 1000) : Math.floor(diffInMs / 1000);
|
|
149
|
+
default:
|
|
150
|
+
throw new Error(`Invalid date diff unit: ${params[0]}`);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Add time to a date
|
|
155
|
+
* @param params [unit, amount, date] - unit can be YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
|
|
156
|
+
*/
|
|
157
|
+
const dateAdd = (params) => {
|
|
158
|
+
const hasTime = params[2].includes(' ');
|
|
159
|
+
let date = new Date(moment(new Date(params[2])).format('YYYY-MM-DD'));
|
|
160
|
+
if (hasTime) {
|
|
161
|
+
date = new Date(moment(new Date(params[2])).format('YYYY-MM-DD HH:mm:ss'));
|
|
162
|
+
}
|
|
163
|
+
switch (params[0]) {
|
|
164
|
+
case 'YEAR':
|
|
165
|
+
date.setFullYear(date.getFullYear() + params[1]);
|
|
166
|
+
break;
|
|
167
|
+
case 'MONTH':
|
|
168
|
+
date.setMonth(date.getMonth() + params[1]);
|
|
169
|
+
break;
|
|
170
|
+
case 'DAY':
|
|
171
|
+
date.setDate(date.getDate() + params[1]);
|
|
172
|
+
break;
|
|
173
|
+
case 'HOUR':
|
|
174
|
+
date.setHours(date.getHours() + params[1]);
|
|
175
|
+
break;
|
|
176
|
+
case 'MINUTE':
|
|
177
|
+
date.setMinutes(date.getMinutes() + params[1]);
|
|
178
|
+
break;
|
|
179
|
+
case 'SECOND':
|
|
180
|
+
date.setSeconds(date.getSeconds() + params[1]);
|
|
181
|
+
break;
|
|
182
|
+
default:
|
|
183
|
+
throw new Error(`Invalid date add unit: ${params[0]}`);
|
|
184
|
+
}
|
|
185
|
+
const yearVal = date.getFullYear();
|
|
186
|
+
const monthVal = String(date.getMonth() + 1).padStart(2, '0');
|
|
187
|
+
const dayVal = String(date.getDate()).padStart(2, '0');
|
|
188
|
+
if (hasTime) {
|
|
189
|
+
const hourVal = String(date.getHours()).padStart(2, '0');
|
|
190
|
+
const minuteVal = String(date.getMinutes()).padStart(2, '0');
|
|
191
|
+
const secondVal = String(date.getSeconds()).padStart(2, '0');
|
|
192
|
+
return `${monthVal}/${dayVal}/${yearVal} ${hourVal}:${minuteVal}:${secondVal}`;
|
|
193
|
+
}
|
|
194
|
+
return `${monthVal}/${dayVal}/${yearVal}`;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Concatenate multiple values
|
|
198
|
+
*/
|
|
199
|
+
const concatenate = (params) => {
|
|
200
|
+
return params.join('');
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Concatenate multiple values, skipping null/empty
|
|
204
|
+
*/
|
|
205
|
+
const concatenateskipnull = (params) => {
|
|
206
|
+
return params.filter(o => o !== '').join('');
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Find position in a comma-separated list
|
|
210
|
+
*/
|
|
211
|
+
const findList = (params) => {
|
|
212
|
+
return params[0].split(',').findIndex((o) => o === params[1]) + 1;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Convert date string to timestamp for comparison
|
|
216
|
+
*/
|
|
217
|
+
const theDate = (params) => {
|
|
218
|
+
if (!params || params.length === 0) {
|
|
219
|
+
throw new Error('DATE function requires at least one argument.');
|
|
220
|
+
}
|
|
221
|
+
const dateStr = params[0];
|
|
222
|
+
if (typeof dateStr === 'number') {
|
|
223
|
+
return dateStr;
|
|
224
|
+
}
|
|
225
|
+
if (typeof dateStr !== 'string') {
|
|
226
|
+
throw new Error(`Invalid DATE input: ${dateStr}`);
|
|
227
|
+
}
|
|
228
|
+
const regex = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
|
|
229
|
+
const match = dateStr.match(regex);
|
|
230
|
+
if (!match) {
|
|
231
|
+
throw new Error(`Invalid date format: ${dateStr}. Expected MM/DD/YYYY.`);
|
|
232
|
+
}
|
|
233
|
+
const [, mm, dd, yyyy] = match.map(Number);
|
|
234
|
+
return new Date(yyyy, mm - 1, dd).getTime();
|
|
235
|
+
};
|
|
236
|
+
/**
|
|
237
|
+
* Calculate days between two dates
|
|
238
|
+
*/
|
|
239
|
+
const theDays = (params) => {
|
|
240
|
+
if (!params || params.length < 2) {
|
|
241
|
+
throw new Error('DAYS function requires exactly two arguments.');
|
|
242
|
+
}
|
|
243
|
+
const [date1, date2] = params;
|
|
244
|
+
if (date1 === '' || date2 === '')
|
|
245
|
+
return 0;
|
|
246
|
+
const parseDate = (dateStr) => {
|
|
247
|
+
const parts = dateStr.split('/');
|
|
248
|
+
if (parts.length !== 3)
|
|
249
|
+
return null;
|
|
250
|
+
const monthVal = parseInt(parts[0], 10) - 1;
|
|
251
|
+
const dayVal = parseInt(parts[1], 10);
|
|
252
|
+
const yearVal = parseInt(parts[2], 10);
|
|
253
|
+
const parsedDate = new Date(yearVal, monthVal, dayVal);
|
|
254
|
+
if (parsedDate.getFullYear() !== yearVal ||
|
|
255
|
+
parsedDate.getMonth() !== monthVal ||
|
|
256
|
+
parsedDate.getDate() !== dayVal) {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
return parsedDate;
|
|
260
|
+
};
|
|
261
|
+
const d1 = parseDate(date1);
|
|
262
|
+
const d2 = parseDate(date2);
|
|
263
|
+
if (!d1 || !d2)
|
|
264
|
+
return 0;
|
|
265
|
+
return Math.floor((d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24));
|
|
266
|
+
};
|
|
267
|
+
/**
|
|
268
|
+
* Create a date from year, month, day
|
|
269
|
+
*/
|
|
270
|
+
const createDate = (params) => {
|
|
271
|
+
if (params.length > 0) {
|
|
272
|
+
const yearVal = Number(params[0]);
|
|
273
|
+
const monthVal = Number(params[1]) - 1;
|
|
274
|
+
const dayVal = Number(params[2]);
|
|
275
|
+
return moment([yearVal, monthVal, dayVal]).format('MM/DD/YYYY');
|
|
276
|
+
}
|
|
277
|
+
return moment().format('MM/DD/YYYY');
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Calculate length of service between two dates
|
|
281
|
+
* @param params [startDate, endDate, unit] - unit can be 'm'/'M' for months, 'y'/'Y' for years
|
|
282
|
+
*/
|
|
283
|
+
const lengthOfService = (params) => {
|
|
284
|
+
if (params.length === 3) {
|
|
285
|
+
const [startDate, endDate, unit] = params;
|
|
286
|
+
const d1 = moment(startDate, 'MM/DD/YYYY');
|
|
287
|
+
const d2 = moment(endDate, 'MM/DD/YYYY');
|
|
288
|
+
if (!d1.isValid() || !d2.isValid()) {
|
|
289
|
+
return 0;
|
|
290
|
+
}
|
|
291
|
+
const yearsDifference = d2.year() - d1.year();
|
|
292
|
+
const monthsDifference = d2.month() - d1.month();
|
|
293
|
+
const daysDifference = d2.date() - d1.date();
|
|
294
|
+
const roundUpFractionalMonths = false;
|
|
295
|
+
let monthCorrection = 0;
|
|
296
|
+
if (!roundUpFractionalMonths && daysDifference < 0) {
|
|
297
|
+
monthCorrection = -1;
|
|
298
|
+
}
|
|
299
|
+
if (unit === 'm' || unit === 'M') {
|
|
300
|
+
const hasil = (yearsDifference * 12 + monthsDifference + monthCorrection);
|
|
301
|
+
if (hasil === 0) {
|
|
302
|
+
const d1Y = d1.year();
|
|
303
|
+
const d2Y = d2.year();
|
|
304
|
+
const d1M = d1.month() + 1;
|
|
305
|
+
const d2M = d2.month() + 1;
|
|
306
|
+
return d2M + 12 * d2Y - (d1M + 12 * d1Y);
|
|
307
|
+
}
|
|
308
|
+
return hasil;
|
|
309
|
+
}
|
|
310
|
+
else if (unit === 'y' || unit === 'Y') {
|
|
311
|
+
return yearsDifference + (monthsDifference < 0 ? -1 : 0);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return null;
|
|
315
|
+
};
|
|
316
|
+
// Register custom functions
|
|
317
|
+
parser.setFunction('LENGTHOFSERVICE', lengthOfService);
|
|
318
|
+
parser.setFunction('TODAY', dateNow);
|
|
319
|
+
parser.setFunction('DATETIME_NOW', dateTimeNow);
|
|
320
|
+
parser.setFunction('ISDATE', isDate);
|
|
321
|
+
parser.setFunction('DAY', day);
|
|
322
|
+
parser.setFunction('MONTH', month);
|
|
323
|
+
parser.setFunction('YEAR', year);
|
|
324
|
+
parser.setFunction('DAYSINMONTH', daysInMonth);
|
|
325
|
+
parser.setFunction('DAYOFWEEK', dayOfWeek);
|
|
326
|
+
parser.setFunction('ISNUMERIC', isNumeric);
|
|
327
|
+
parser.setFunction('HOUR', hour);
|
|
328
|
+
parser.setFunction('MINUTE', minute);
|
|
329
|
+
parser.setFunction('SECOND', second);
|
|
330
|
+
parser.setFunction('DATEDIFF', dateDiff);
|
|
331
|
+
parser.setFunction('DATEADD', dateAdd);
|
|
332
|
+
parser.setFunction('CONCATENATE', concatenate);
|
|
333
|
+
parser.setFunction('CONCATENATESKIPNULL', concatenateskipnull);
|
|
334
|
+
parser.setFunction('FINDLIST', findList);
|
|
335
|
+
parser.setFunction('DATE', theDate);
|
|
336
|
+
parser.setFunction('DAYS', theDays);
|
|
337
|
+
parser.setFunction('CREATEDATE', createDate);
|
|
338
|
+
/**
|
|
339
|
+
* Parse and evaluate a formula string
|
|
340
|
+
* @param formula The formula to parse
|
|
341
|
+
* @returns The result of the formula evaluation
|
|
342
|
+
*/
|
|
343
|
+
const parseFormula = (formula) => {
|
|
344
|
+
const parsedResult = parser.parse(formula);
|
|
345
|
+
if (parsedResult.error) {
|
|
346
|
+
throw new Error(`Formula parse error: ${parsedResult.error}`);
|
|
347
|
+
}
|
|
348
|
+
return parsedResult.result === null ? 0 : parsedResult.result;
|
|
349
|
+
};
|
|
350
|
+
exports.parseFormula = parseFormula;
|
|
351
|
+
/**
|
|
352
|
+
* Get the parser instance for advanced usage
|
|
353
|
+
*/
|
|
354
|
+
const getParser = () => parser;
|
|
355
|
+
exports.getParser = getParser;
|
|
356
|
+
//# sourceMappingURL=formula-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-engine.js","sourceRoot":"","sources":["../src/formula-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payroll Formula Parser - Main Service
|
|
3
|
+
*
|
|
4
|
+
* This module contains the main formula parsing service that processes
|
|
5
|
+
* formulas with employee and organizational data.
|
|
6
|
+
*/
|
|
7
|
+
import { EmployeeData, OrganizationalData, FormulaParseInput, FormulaParseResult } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Default reserved words for formula parsing
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_RESERVED_WORDS: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Extract words that exist in the formula from a word list
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractRequiredWords(formula: string, wordList: string[]): Set<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Sort keys by length descending (for replacement order)
|
|
18
|
+
*/
|
|
19
|
+
export declare function sortKeyByLengthDesc(keys: string[]): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Format name for formula with proper case handling
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatNameForFormula(name: string, formula: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Process personal data fields from employee data
|
|
26
|
+
*/
|
|
27
|
+
export declare function processPersonalData(word: string, objectVal: Record<string, string>, empData: EmployeeData): void;
|
|
28
|
+
/**
|
|
29
|
+
* Process organizational data fields
|
|
30
|
+
*/
|
|
31
|
+
export declare function processOrganizationalData(word: string, objectVal: Record<string, string>, orgData: OrganizationalData, formula: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Process custom field data
|
|
34
|
+
*/
|
|
35
|
+
export declare function processCustomFields(word: string, objectVal: Record<string, string>, orgData: OrganizationalData): void;
|
|
36
|
+
/**
|
|
37
|
+
* Main formula parsing function
|
|
38
|
+
*
|
|
39
|
+
* @param input - The input containing formula, employee data, and component values
|
|
40
|
+
* @returns The result of formula parsing
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const result = parsePayrollFormula({
|
|
45
|
+
* formula: 'SALARY * 0.1 + AL_001',
|
|
46
|
+
* employeeData: {
|
|
47
|
+
* empId: 'EMP001',
|
|
48
|
+
* empNo: '12345',
|
|
49
|
+
* personal: { gender: 'MALE' }
|
|
50
|
+
* },
|
|
51
|
+
* componentValues: {
|
|
52
|
+
* 'SALARY': 5000000,
|
|
53
|
+
* 'AL_001': 500000
|
|
54
|
+
* }
|
|
55
|
+
* });
|
|
56
|
+
* console.log(result.result); // 1000000
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function parsePayrollFormula(input: FormulaParseInput): FormulaParseResult;
|
|
60
|
+
//# sourceMappingURL=formula-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-parser.d.ts","sourceRoot":"","sources":["../src/formula-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAoB1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAc1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,YAAY,GACpB,IAAI,CAuGN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,GACd,IAAI,CA6EN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAuBN;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA4GhF"}
|