@seniorsistemas/hcm-clocking-event-rule-nodejs 0.35.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/.github/copilot-instructions.md +11 -0
- package/.github/workflows/release.yaml +10 -0
- package/.gitlab-ci.yml +68 -0
- package/CHANGELOG.md +274 -0
- package/README.doc.md +658 -0
- package/README.md +117 -0
- package/assets/favicon.ico +0 -0
- package/catalog-info.yaml +19 -0
- package/jest.config.js +17 -0
- package/package.json +48 -0
- package/prompt.md +15 -0
- package/run_build_win.bat +1 -0
- package/run_link.bat +3 -0
- package/run_test.bat +1 -0
- package/sonar-project.properties +21 -0
- package/src/data/changes/changes.ts +92 -0
- package/src/data/context/context.ts +251 -0
- package/src/data/context/contextReference.ts +376 -0
- package/src/data/contract/contract.ts +272 -0
- package/src/data/dataset/database.ts +130 -0
- package/src/data/dataset/dataset.ts +275 -0
- package/src/data/definition/timeEvaluationSituationDefinitionHistory.ts +1425 -0
- package/src/data/employee/employee.ts +434 -0
- package/src/data/foundation/companyBranch.ts +66 -0
- package/src/data/foundation/costCenter.ts +47 -0
- package/src/data/foundation/employer.ts +35 -0
- package/src/data/foundation/employmentRelationship.ts +63 -0
- package/src/data/foundation/holiday.ts +84 -0
- package/src/data/foundation/holidayGroup.ts +47 -0
- package/src/data/foundation/jobPosition.ts +73 -0
- package/src/data/foundation/person.ts +35 -0
- package/src/data/foundation/situation.ts +301 -0
- package/src/data/foundation/syndicate.ts +244 -0
- package/src/data/foundation/workschedule.ts +688 -0
- package/src/data/foundation/workshift.ts +647 -0
- package/src/data/foundation/workshiftBase.ts +113 -0
- package/src/data/histories/companyBranchHistory.ts +128 -0
- package/src/data/histories/costCenterHistory.ts +114 -0
- package/src/data/histories/employmentRelationshipHistory.ts +116 -0
- package/src/data/histories/histories.ts +419 -0
- package/src/data/histories/jobPositionHistory.ts +117 -0
- package/src/data/histories/leaveHistory.ts +227 -0
- package/src/data/histories/timeEvaluationHistory.ts +191 -0
- package/src/data/histories/workshiftHistory.ts +66 -0
- package/src/data/hourBank/hourBank.ts +43 -0
- package/src/data/hourBank/hourBankAccount.ts +77 -0
- package/src/data/log/log.ts +38 -0
- package/src/data/schedules/bridge.ts +84 -0
- package/src/data/schedules/compensation.ts +332 -0
- package/src/data/schedules/overtimeAuthorization.ts +174 -0
- package/src/data/schedules/readiness.ts +150 -0
- package/src/data/schedules/schedules.ts +398 -0
- package/src/data/schedules/workscheduleChange.ts +91 -0
- package/src/data/schedules/workshiftChange.ts +76 -0
- package/src/data/timeEvaluation/adjustmentReason.ts +46 -0
- package/src/data/timeEvaluation/clockingEvent.ts +198 -0
- package/src/data/timeEvaluation/estimatedHours.ts +245 -0
- package/src/data/timeEvaluation/interval.ts +568 -0
- package/src/data/timeEvaluation/separatedHours.ts +134 -0
- package/src/data/timeEvaluation/timeEvaluation.ts +1540 -0
- package/src/data/timeEvaluation/timeEvaluationSituation.ts +154 -0
- package/src/data/user/user.ts +44 -0
- package/src/index.ts +60 -0
- package/src/test/builder/bridgeBuilder.builder.ts +28 -0
- package/src/test/builder/clockingEvent.builder.ts +49 -0
- package/src/test/builder/companyBranchHistoryBuilder.ts +29 -0
- package/src/test/builder/compensation.builder.ts +84 -0
- package/src/test/builder/contextReference.builder.ts +69 -0
- package/src/test/builder/costCenterHistoryBuilder.ts +29 -0
- package/src/test/builder/database.builder.ts +21 -0
- package/src/test/builder/datasetBuilder.ts +111 -0
- package/src/test/builder/dateIntervalBuilder.ts +25 -0
- package/src/test/builder/employee.builder.ts +91 -0
- package/src/test/builder/employmentRelationshipBuilder.ts +35 -0
- package/src/test/builder/employmentRelationshipHistoryBuilder.ts +29 -0
- package/src/test/builder/historiesBuilder.ts +56 -0
- package/src/test/builder/holiday.builder.ts +44 -0
- package/src/test/builder/hourBankAccountBuilder.ts +77 -0
- package/src/test/builder/hourBankBuilder.ts +32 -0
- package/src/test/builder/interval.builder.ts +113 -0
- package/src/test/builder/jobPositionHistoryBuilder.ts +29 -0
- package/src/test/builder/overtimeAuthorization.builder.ts +42 -0
- package/src/test/builder/readinessBuilder.builder.ts +57 -0
- package/src/test/builder/schedules.builder.ts +126 -0
- package/src/test/builder/situation.builder.ts +59 -0
- package/src/test/builder/syndicate.builder.ts +96 -0
- package/src/test/builder/syndicateHistoryBuilder.ts +33 -0
- package/src/test/builder/timeEvaluation.builder.ts +138 -0
- package/src/test/builder/timeEvaluationHistory.builder.ts +49 -0
- package/src/test/builder/timeEvaluationSituation.builder.ts +34 -0
- package/src/test/builder/workschedule.builder.ts +96 -0
- package/src/test/builder/workshift.builder.ts +179 -0
- package/src/test/builder/workshiftBuilder.ts +55 -0
- package/src/test/data/clockingEvent.spec.ts +56 -0
- package/src/test/data/context.spec.ts +176 -0
- package/src/test/data/currentUser.spec.ts +11 -0
- package/src/test/data/dataset.spec.ts +144 -0
- package/src/test/data/employee/employee.spec.ts +20 -0
- package/src/test/data/employmentRelationship/employmentRelationship.spec.ts +48 -0
- package/src/test/data/estimatedHours/estimatedHours.spec.ts +96 -0
- package/src/test/data/histories/costCenterHistory.spec.ts +32 -0
- package/src/test/data/histories/histories.spec.ts +306 -0
- package/src/test/data/holyday.spec.ts +89 -0
- package/src/test/data/hourBank/hourBank.spec.ts +48 -0
- package/src/test/data/hourBank/hourBankAccount.spec.ts +32 -0
- package/src/test/data/schedules/bridge.spec.ts +13 -0
- package/src/test/data/schedules/compesation.spect.ts +89 -0
- package/src/test/data/schedules/overtimeAuthorization.spec.ts +52 -0
- package/src/test/data/schedules/readiness.spec.ts +64 -0
- package/src/test/data/schedules/schedules.spec.ts +134 -0
- package/src/test/data/schedules/workscheduleChange.spec.ts +21 -0
- package/src/test/data/syndicate/syndicate.spec.ts +51 -0
- package/src/test/data/timeEvaluation.spec.ts +1057 -0
- package/src/test/data/timeEvaluationDefinition.spec.ts +144 -0
- package/src/test/data/workschedule/workschedule.spec.ts +194 -0
- package/src/test/data/workshift/workshift.spec.ts +79 -0
- package/src/test/utils/date.utils.spec.ts +198 -0
- package/src/test/utils/dateIntervalUtils.spec.ts +210 -0
- package/src/test/utils/object.utils.spec.ts +83 -0
- package/src/utils/dateIntervalUtils.ts +284 -0
- package/src/utils/dateUtils.ts +456 -0
- package/src/utils/decompressGzipLambda.ts +15 -0
- package/src/utils/object.utils.ts +156 -0
- package/trivy/vulnerabilities_scan.json +1160 -0
- package/tsconfig.json +32 -0
- package/tsconfig.spec.json +21 -0
- package/tslint.json +92 -0
- package/typedoc.json +22 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
export interface SyndicateParams {
|
|
5
|
+
key: string;
|
|
6
|
+
code: number;
|
|
7
|
+
nightStartHour: number;
|
|
8
|
+
nightEndHour: number;
|
|
9
|
+
minimumInterval4to6Hours: number;
|
|
10
|
+
minimumInterval6Hours: number;
|
|
11
|
+
minimumWorkDuration6Hours: number;
|
|
12
|
+
maxDailyWorkTime: number;
|
|
13
|
+
maxContinuousDrivingTime: number;
|
|
14
|
+
minContinuousRestTime: number;
|
|
15
|
+
allowDailyRestFractionation: boolean;
|
|
16
|
+
calculateWeeklyRest: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Representa um sindicato de colaboradores.
|
|
21
|
+
* Um sindicato é uma organização que representa os interesses dos trabalhadores de uma empresa ou setor.
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* sindicate.code; // Retorna o código do sindicato.
|
|
25
|
+
* sindicate.nightStartHour; // Retorna a hora inicial do período noturno.
|
|
26
|
+
* sindicate.nightEndHour; // Retorna a hora final do período noturno.
|
|
27
|
+
* sindicate.minimumInterval4to6Hours; // Retorna o intervalo mínimo para jornada entre 4 e 6 horas.
|
|
28
|
+
* sindicate.minimumInterval6Hours; // Retorna o intervalo mínimo para jornada acima de 6 horas.
|
|
29
|
+
* sindicate.maxDailyWorkTime; // Retorna o máximo de horas de trabalho diário.
|
|
30
|
+
* sindicate.maxContinuousDrivingTime; // Retorna o máximo de horas de direção contínua.
|
|
31
|
+
* sindicate.minContinuousRestTime; // Retorna o mínimo de horas de descanso contínuo.
|
|
32
|
+
* sindicate.allowDailyRestFractionation; // Retorna se permite fracionar repouso diário.
|
|
33
|
+
* sindicate.calculateWeeklyRest; // Retorna se deve calcular repouso semanal.
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
export class Syndicate {
|
|
38
|
+
private readonly _key: string;
|
|
39
|
+
private readonly _code: number;
|
|
40
|
+
private readonly _nightStartHour: number;
|
|
41
|
+
private readonly _nightEndHour: number;
|
|
42
|
+
private readonly _minimumInterval4to6Hours: number;
|
|
43
|
+
private readonly _minimumInterval6Hours: number;
|
|
44
|
+
private readonly _minimumWorkDuration6Hours: number;
|
|
45
|
+
private readonly _maxDailyWorkTime: number;
|
|
46
|
+
private readonly _maxContinuousDrivingTime: number;
|
|
47
|
+
private readonly _minContinuousRestTime: number;
|
|
48
|
+
private readonly _allowDailyRestFractionation: boolean;
|
|
49
|
+
private readonly _calculateWeeklyRest: boolean;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @hidden
|
|
53
|
+
* @param params parâmetros para a criação de Syndicate.
|
|
54
|
+
*/
|
|
55
|
+
constructor(params: SyndicateParams) {
|
|
56
|
+
this._key = params.key;
|
|
57
|
+
this._code = params.code;
|
|
58
|
+
this._nightStartHour = params.nightStartHour;
|
|
59
|
+
this._nightEndHour = params.nightEndHour;
|
|
60
|
+
this._minimumInterval4to6Hours = params.minimumInterval4to6Hours;
|
|
61
|
+
this._minimumInterval6Hours = params.minimumInterval6Hours;
|
|
62
|
+
this._minimumWorkDuration6Hours = params.minimumWorkDuration6Hours;
|
|
63
|
+
this._maxDailyWorkTime = params.maxDailyWorkTime;
|
|
64
|
+
this._maxContinuousDrivingTime = params.maxContinuousDrivingTime;
|
|
65
|
+
this._minContinuousRestTime = params.minContinuousRestTime;
|
|
66
|
+
this._allowDailyRestFractionation = params.allowDailyRestFractionation;
|
|
67
|
+
this._calculateWeeklyRest = params.calculateWeeklyRest;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Uso interno da lib */
|
|
71
|
+
/**
|
|
72
|
+
* @hidden
|
|
73
|
+
* @param syndicate
|
|
74
|
+
* @returns
|
|
75
|
+
*/
|
|
76
|
+
static getKey(syndicate: Syndicate): string {
|
|
77
|
+
return syndicate._key;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Código do sindicato.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* sindicate.code; // Retorna o código do sindicato.
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @returns Código do sindicato.
|
|
89
|
+
*
|
|
90
|
+
*/
|
|
91
|
+
get code(): number {
|
|
92
|
+
return this._code;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Hora inicial do período noturno em minutos.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* sindicate.nightStartHour; // Retorna a hora inicial do período noturno em minutos.
|
|
101
|
+
* ```
|
|
102
|
+
* @returns Hora inicial do período noturno em minutos.
|
|
103
|
+
*/
|
|
104
|
+
get nightStartHour(): number {
|
|
105
|
+
return this._nightStartHour;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Hora final do período noturno em minutos.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* sindicate.nightEndHour; // Retorna a hora final do período noturno em minutos.
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @returns Hora final do período noturno em minutos.
|
|
117
|
+
*
|
|
118
|
+
*/
|
|
119
|
+
get nightEndHour(): number {
|
|
120
|
+
return this._nightEndHour;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Intervalo mínimo para jornada entre 4 e 6 horas em minutos.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* sindicate.minimumInterval4to6Hours; // Retorna o intervalo mínimo para jornada entre 4 e 6 horas em minutos.
|
|
129
|
+
* ```
|
|
130
|
+
* @returns Intervalo mínimo para jornada entre 4 e 6 horas em minutos.
|
|
131
|
+
*/
|
|
132
|
+
get minimumInterval4to6Hours(): number {
|
|
133
|
+
return this._minimumInterval4to6Hours;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Intervalo mínimo para jornada acima de 6 horas em minutos.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* sindicate.minimumInterval6Hours; // Retorna o intervalo mínimo para jornada acima de 6 horas em minutos.
|
|
142
|
+
* ```
|
|
143
|
+
* @returns Intervalo mínimo para jornada acima de 6 horas em minutos.
|
|
144
|
+
*/
|
|
145
|
+
get minimumInterval6Hours(): number {
|
|
146
|
+
return this._minimumInterval6Hours;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Mínimo trabalho para jornada acima de 6 horas em minutos.
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* sindicate.minimumWorkDuration6Hours; // Retorna o mínimo trabalho para jornada acima de 6 horas em minutos.
|
|
155
|
+
* ```
|
|
156
|
+
* @returns Mínimo trabalho para jornada acima de 6 horas em minutos.
|
|
157
|
+
*/
|
|
158
|
+
get minimumWorkDuration6Hours(): number {
|
|
159
|
+
return this._minimumWorkDuration6Hours;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Tempo máximo de jornada diária em minutos.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* sindicate.maxDailyWorkTime; // Retorna o tempo máximo de jornada diária em minutos.
|
|
168
|
+
* ```
|
|
169
|
+
* @returns Tempo máximo de jornada diária em minutos.
|
|
170
|
+
*/
|
|
171
|
+
get maxDailyWorkTime(): number {
|
|
172
|
+
return this._maxDailyWorkTime;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Tempo máximo de direção contínua em minutos.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* sindicate.maxContinuousDrivingTime; // Retorna o tempo máximo de direção contínua em minutos.
|
|
181
|
+
* ```
|
|
182
|
+
* @returns Tempo máximo de direção contínua em minutos.
|
|
183
|
+
*/
|
|
184
|
+
get maxContinuousDrivingTime(): number {
|
|
185
|
+
return this._maxContinuousDrivingTime;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Tempo mínimo de descanso contínuo em minutos.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* sindicate.minContinuousRestTime; // Retorna o tempo mínimo de descanso contínuo em minutos.
|
|
194
|
+
* ```
|
|
195
|
+
* @returns Tempo mínimo de descanso contínuo em minutos.
|
|
196
|
+
*/
|
|
197
|
+
get minContinuousRestTime(): number {
|
|
198
|
+
return this._minContinuousRestTime;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Permite fracionar repouso diário.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* sindicate.allowDailyRestFractionation; // Retorna se permite fracionar repouso diário.
|
|
207
|
+
* ```
|
|
208
|
+
* @returns Permite fracionar repouso diário.
|
|
209
|
+
*/
|
|
210
|
+
get allowDailyRestFractionation(): boolean {
|
|
211
|
+
return this._allowDailyRestFractionation;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Calcular repouso semanal.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* sindicate.calculateWeeklyRest; // Retorna se deve calcular repouso semanal.
|
|
220
|
+
* ```
|
|
221
|
+
* @returns Calcular repouso semanal.
|
|
222
|
+
*/
|
|
223
|
+
get calculateWeeklyRest(): boolean {
|
|
224
|
+
return this._calculateWeeklyRest;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
public static clone(syndicate: Syndicate): Syndicate {
|
|
228
|
+
return new Syndicate({
|
|
229
|
+
key: syndicate._key,
|
|
230
|
+
code: syndicate.code,
|
|
231
|
+
nightStartHour: syndicate.nightStartHour,
|
|
232
|
+
nightEndHour: syndicate.nightEndHour,
|
|
233
|
+
minimumInterval4to6Hours: syndicate.minimumInterval4to6Hours,
|
|
234
|
+
minimumInterval6Hours: syndicate.minimumInterval6Hours,
|
|
235
|
+
minimumWorkDuration6Hours: syndicate.minimumWorkDuration6Hours,
|
|
236
|
+
maxDailyWorkTime: syndicate.maxDailyWorkTime,
|
|
237
|
+
maxContinuousDrivingTime: syndicate.maxContinuousDrivingTime,
|
|
238
|
+
minContinuousRestTime: syndicate.minContinuousRestTime,
|
|
239
|
+
allowDailyRestFractionation: syndicate.allowDailyRestFractionation,
|
|
240
|
+
calculateWeeklyRest: syndicate.calculateWeeklyRest,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
}
|