@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,84 @@
|
|
|
1
|
+
import { ObjectUtils } from "../../utils/object.utils";
|
|
2
|
+
import { HolidayGroupParams, HolidayGroup } from "./holidayGroup";
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
export interface HolidayParams {
|
|
7
|
+
key: string;
|
|
8
|
+
date: Date;
|
|
9
|
+
holidayGroup: HolidayGroupParams;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Representa um feriado.
|
|
14
|
+
* Um feriado é um dia específico que é reconhecido como um dia de descanso ou celebração e está associado a um grupo de feriados.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* context.logInfo(`Feriado, Data: ${DateUtils.format(holiday.date)}, Tabela: ${holiday.holidayGroup.name}`);
|
|
19
|
+
* ```
|
|
20
|
+
* @see {@link HolidayGroup}
|
|
21
|
+
*/
|
|
22
|
+
export class Holiday {
|
|
23
|
+
private readonly _key: string;
|
|
24
|
+
private readonly _date: Date;
|
|
25
|
+
private readonly _holidayGroup: HolidayGroup;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
constructor(params: HolidayParams) {
|
|
31
|
+
this._key = params.key;
|
|
32
|
+
this._date = ObjectUtils.toDateOrThrow(params.date, "Holiday.date");
|
|
33
|
+
this._holidayGroup = new HolidayGroup(params.holidayGroup);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @hidden
|
|
38
|
+
*/
|
|
39
|
+
get key(): string {
|
|
40
|
+
return this._key;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Retorna a data do feriado.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* let holidayDate = holiday.date; // Retorna a data do feriado.
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
get date(): Date {
|
|
52
|
+
return this._date;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Retorna a tabela de feriados ao qual este feriado pertence.
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* let holidayGroup = holiday.holidayGroup; // Retorna a tabela de feriados do feriado.
|
|
60
|
+
* ```
|
|
61
|
+
* @return A tabela de feriados do feriado.
|
|
62
|
+
* @see {@link HolidayGroup}
|
|
63
|
+
*/
|
|
64
|
+
get holidayGroup(): HolidayGroup {
|
|
65
|
+
return this._holidayGroup;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Clona um feriado.
|
|
70
|
+
* @param holiday Feriado a ser clonado.
|
|
71
|
+
* @returns
|
|
72
|
+
*/
|
|
73
|
+
public static clone(holiday: Holiday): Holiday {
|
|
74
|
+
return new Holiday({
|
|
75
|
+
key: holiday.key,
|
|
76
|
+
date: holiday.date,
|
|
77
|
+
holidayGroup: {
|
|
78
|
+
code: holiday.holidayGroup.code,
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parâmetros para a criação de um HolidayGroup.
|
|
3
|
+
* @hidden
|
|
4
|
+
*/
|
|
5
|
+
export interface HolidayGroupParams {
|
|
6
|
+
/**
|
|
7
|
+
* Código da tabela de feriados.
|
|
8
|
+
*/
|
|
9
|
+
code: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Representa uma tabela de feriados.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* holidayGroup.code; // Retorna o código da tabela de feriados.
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export class HolidayGroup {
|
|
22
|
+
/**
|
|
23
|
+
* Código da tabela de feriados.
|
|
24
|
+
*/
|
|
25
|
+
private readonly _code: number;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
constructor(params: HolidayGroupParams) {
|
|
31
|
+
this._code = params.code;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Código da tabela de feriados.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* let code = holidayGroup.code; // Retorna o código da tabela de feriados.
|
|
40
|
+
* ```
|
|
41
|
+
* @return Código da tabela de feriados.
|
|
42
|
+
*/
|
|
43
|
+
get code(): number {
|
|
44
|
+
return this._code;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
export interface JobPositionParams {
|
|
5
|
+
/**
|
|
6
|
+
* Código do cargo.
|
|
7
|
+
*/
|
|
8
|
+
code: number;
|
|
9
|
+
/**
|
|
10
|
+
* Código da estrutura do cargo.
|
|
11
|
+
*/
|
|
12
|
+
structureCode: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Representa um cargo de um colaborador.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* jobPosition.code; // Retorna o código do cargo.
|
|
21
|
+
* jobPosition.structureCode; // Retorna o código da estrutura do cargo.
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class JobPosition {
|
|
25
|
+
/**
|
|
26
|
+
* Código do cargo.
|
|
27
|
+
*/
|
|
28
|
+
private readonly _code: number;
|
|
29
|
+
/**
|
|
30
|
+
* Código da estrutura do cargo.
|
|
31
|
+
*/
|
|
32
|
+
private readonly _structureCode: number;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @hidden
|
|
36
|
+
* @param params Parâmetros para a criação de JobPosition.
|
|
37
|
+
*/
|
|
38
|
+
constructor(params: JobPositionParams) {
|
|
39
|
+
this._code = params.code;
|
|
40
|
+
this._structureCode = params.structureCode;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Código do cargo.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* let jobPositionCode = jobPosition.code;
|
|
50
|
+
* console.log(`Código do cargo: ${jobPositionCode}`);
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @returns Código do cargo.
|
|
54
|
+
*/
|
|
55
|
+
get code(): number {
|
|
56
|
+
return this._code;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Código da estrutura do cargo.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* let structureCode = jobPosition.structureCode;
|
|
65
|
+
* console.log(`Código da estrutura do cargo: ${structureCode}`);
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @returns Código da estrutura do cargo.
|
|
69
|
+
*/
|
|
70
|
+
get structureCode(): number {
|
|
71
|
+
return this._structureCode;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
export interface PersonParams {
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Representa uma pessoa no sistema, com um nome associado.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* person.name; // Retorna o nome da pessoa.
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export class Person {
|
|
16
|
+
private readonly _name: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @hidden
|
|
20
|
+
*/
|
|
21
|
+
constructor(params: PersonParams) {
|
|
22
|
+
this._name = params.name;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Retorna o nome da pessoa.
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* let name = person.name; // Retorna o nome da pessoa.
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
get name(): string {
|
|
33
|
+
return this._name;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
// Situation.ts
|
|
2
|
+
|
|
3
|
+
import { ContextReference } from "../context/contextReference";
|
|
4
|
+
/**
|
|
5
|
+
* Interface para os parâmetros do construtor de Situation.
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export interface SituationParams {
|
|
9
|
+
id: string;
|
|
10
|
+
code: number;
|
|
11
|
+
type: SituationType;
|
|
12
|
+
exception: boolean;
|
|
13
|
+
daytime: boolean;
|
|
14
|
+
complementarySituationId: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Representa uma situação de um colaborador.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* console.log(situation.code); // Retorna o código da situação.
|
|
23
|
+
* console.log(situation.type); // Retorna o tipo da situação.
|
|
24
|
+
* console.log(situation.exception); // Retorna se a situação é uma exceção.
|
|
25
|
+
* console.log(situation.daytime); // Retorna se a situação é diurna.
|
|
26
|
+
* console.log(situation.complementarySituation); // Retorna a situação complementar.
|
|
27
|
+
* ```
|
|
28
|
+
* @see {@link SituationType}
|
|
29
|
+
*/
|
|
30
|
+
export class Situation {
|
|
31
|
+
/**
|
|
32
|
+
* * O código da situação é o código que identifica a situação do colaborador, como férias, atestado, etc..
|
|
33
|
+
*/
|
|
34
|
+
private readonly _id: string;
|
|
35
|
+
private readonly _code: number;
|
|
36
|
+
private readonly _type: SituationType;
|
|
37
|
+
private readonly _exception: boolean;
|
|
38
|
+
private readonly _daytime: boolean
|
|
39
|
+
private readonly _complementarySituationId: string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @hidden
|
|
43
|
+
* Construtor privado para garantir que a classe seja construída apenas através do método estático build.
|
|
44
|
+
*/
|
|
45
|
+
constructor(params: SituationParams) {
|
|
46
|
+
this._id = params.id;
|
|
47
|
+
this._code = params.code;
|
|
48
|
+
this._type = params.type;
|
|
49
|
+
this._exception = params.exception;
|
|
50
|
+
this._daytime = params.daytime;
|
|
51
|
+
this._complementarySituationId = params.complementarySituationId;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
* @param _situationCode
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
static build(_situationCode: number): Situation {
|
|
60
|
+
return new Situation({
|
|
61
|
+
id: "",
|
|
62
|
+
code: _situationCode,
|
|
63
|
+
type: SituationType.OTHERS,
|
|
64
|
+
exception: false,
|
|
65
|
+
daytime: false,
|
|
66
|
+
complementarySituationId: ""
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Retorna o identificador único da situação.
|
|
72
|
+
* @hidden
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
75
|
+
get id(): string {
|
|
76
|
+
return this._id;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Retorna o código da situação.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* let code = situation.code; // Retorna o código da situação.
|
|
85
|
+
* ```
|
|
86
|
+
* @return Código da situação.
|
|
87
|
+
*/
|
|
88
|
+
get code(): number {
|
|
89
|
+
return this._code;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Retorna o tipo da situação, como trabalhando, férias, auxílio doença, etc.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* let type = situation.type; // Retorna o tipo da situação.
|
|
98
|
+
* ```
|
|
99
|
+
* @return Tipo da situação.
|
|
100
|
+
* @see {@link SituationType}
|
|
101
|
+
*/
|
|
102
|
+
get type(): SituationType {
|
|
103
|
+
return this._type;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Retorna se a situação é uma exceção.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* let isException = situation.exception; // Retorna se a situação é uma exceção.
|
|
112
|
+
* ```
|
|
113
|
+
* @return Verdadeiro se a situação for uma exceção, falso caso contrário.
|
|
114
|
+
*/
|
|
115
|
+
get exception(): boolean {
|
|
116
|
+
return this._exception;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Retorna se a situação é diurna.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* let isDaytime = situation.daytime; // Retorna se a situação é diurna.
|
|
125
|
+
* ```
|
|
126
|
+
* @return Verdadeiro se a situação for diurna, falso caso contrário.
|
|
127
|
+
*/
|
|
128
|
+
get daytime(): boolean {
|
|
129
|
+
return this._daytime;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @hidden
|
|
134
|
+
* Retorna o ID da situação complementar, se houver.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* let complementarySituationId = situation.complementarySituationId; // Retorna o ID da situação complementar
|
|
139
|
+
* ```
|
|
140
|
+
* @return ID da situação complementar.
|
|
141
|
+
*/
|
|
142
|
+
private get complementarySituationId(): string {
|
|
143
|
+
return this._complementarySituationId;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Retorna a situação complementar associada a esta situação.
|
|
148
|
+
* Observação: Se a situação complementar não for encontrada no contexto de regras, uma exceção será lançada.
|
|
149
|
+
* Somente estão disponíveis as situações complementares que estão referenciadas no contexto de regras ou seja utilizadas em definição de situação, situação do dia, histórico de afastamento, etc.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* let complementarySituation = situation.complementarySituation; // Retorna a situação complementar.
|
|
154
|
+
* complementarySituation.code; // Retorna o código da situação complementar.
|
|
155
|
+
* complementarySituation.type; // Retorna o tipo da situação complementar.
|
|
156
|
+
* ```
|
|
157
|
+
* @return Situação complementar.
|
|
158
|
+
* @throws Se a situação complementar não for encontrada no contexto de regras.
|
|
159
|
+
*/
|
|
160
|
+
get complementarySituation(): Situation {
|
|
161
|
+
const situation = ContextReference.getGlobalInstance().getSituationById(this._complementarySituationId);
|
|
162
|
+
if (!situation) {
|
|
163
|
+
throw new Error(`Complementary situation not found for ID: ${this._complementarySituationId}`);
|
|
164
|
+
}
|
|
165
|
+
return situation;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Verifica se a situação é uma situação completa com todas os atributos ou se é uma situação padrão somente com o código.
|
|
170
|
+
* Isso pode acontecer caso for criado uma situação somente com o código e a situação não for encontrada no contexto de regras, por não ser referenciado por nenhum cadastro.
|
|
171
|
+
*/
|
|
172
|
+
get isLoaded(): boolean {
|
|
173
|
+
return this._id !== "";
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
public static clone(situation: Situation): Situation {
|
|
178
|
+
return new Situation({
|
|
179
|
+
id: situation.id,
|
|
180
|
+
code: situation.code,
|
|
181
|
+
type: situation.type,
|
|
182
|
+
exception: situation.exception,
|
|
183
|
+
daytime: situation.daytime,
|
|
184
|
+
complementarySituationId: situation.complementarySituationId
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Enumeração para os tipos de situações.
|
|
193
|
+
* @enum
|
|
194
|
+
*/
|
|
195
|
+
export enum SituationType {
|
|
196
|
+
/**
|
|
197
|
+
* Trabalhando.
|
|
198
|
+
*/
|
|
199
|
+
WORKING = "WORKING",
|
|
200
|
+
/**
|
|
201
|
+
* Férias.
|
|
202
|
+
*/
|
|
203
|
+
VACATION = "VACATION",
|
|
204
|
+
/**
|
|
205
|
+
* Auxílio doença.
|
|
206
|
+
*/
|
|
207
|
+
ILLNESSAID = "ILLNESSAID",
|
|
208
|
+
/**
|
|
209
|
+
* Acidente de trabalho.
|
|
210
|
+
*/
|
|
211
|
+
LABORACCIDENT = "LABORACCIDENT",
|
|
212
|
+
/**
|
|
213
|
+
* Serviço militar.
|
|
214
|
+
*/
|
|
215
|
+
MILITARYSERVICE = "MILITARYSERVICE",
|
|
216
|
+
/**
|
|
217
|
+
* Licença maternidade.
|
|
218
|
+
*/
|
|
219
|
+
MATERNITYLEAVE = "MATERNITYLEAVE",
|
|
220
|
+
/**
|
|
221
|
+
* Licença maternidade - Aborto não criminoso.
|
|
222
|
+
*/
|
|
223
|
+
MATERNITYLEAVENONCRIMINALABORTION = "MATERNITYLEAVENONCRIMINALABORTION",
|
|
224
|
+
/**
|
|
225
|
+
* Licença maternidade - Prorrogação mediante atestado médico.
|
|
226
|
+
*/
|
|
227
|
+
MATERNITYLEAVEANTICIPATIONEXTENSION = "MATERNITYLEAVEANTICIPATIONEXTENSION",
|
|
228
|
+
/**
|
|
229
|
+
* Licença maternidade - Empresa cidadã.
|
|
230
|
+
*/
|
|
231
|
+
CITIZENCOMPANYMATERNITY = "CITIZENCOMPANYMATERNITY",
|
|
232
|
+
/**
|
|
233
|
+
* Licença maternidade - INSS.
|
|
234
|
+
*/
|
|
235
|
+
INSSMATERNITYLEAVE = "INSSMATERNITYLEAVE",
|
|
236
|
+
/**
|
|
237
|
+
* Licença sem remuneração.
|
|
238
|
+
*/
|
|
239
|
+
LEAVEWITHOUTCOMPENSATION = "LEAVEWITHOUTCOMPENSATION",
|
|
240
|
+
/**
|
|
241
|
+
* Licença remunerada.
|
|
242
|
+
*/
|
|
243
|
+
PAIDLEAVE = "PAIDLEAVE",
|
|
244
|
+
/**
|
|
245
|
+
* Licença paternidade.
|
|
246
|
+
*/
|
|
247
|
+
PATERNITYLEAVE = "PATERNITYLEAVE",
|
|
248
|
+
/**
|
|
249
|
+
* Licença paternidade - Empresa cidadã.
|
|
250
|
+
*/
|
|
251
|
+
CITIZENCOMPANYPATERNITY = "CITIZENCOMPANYPATERNITY",
|
|
252
|
+
/**
|
|
253
|
+
* Férias coletivas.
|
|
254
|
+
*/
|
|
255
|
+
COLLECTIVEVACATION = "COLLECTIVEVACATION",
|
|
256
|
+
/**
|
|
257
|
+
* Licença médica (pgto empresa).
|
|
258
|
+
*/
|
|
259
|
+
MEDICALLEAVE = "MEDICALLEAVE",
|
|
260
|
+
/**
|
|
261
|
+
* Licença médica sem incidência INSS.
|
|
262
|
+
*/
|
|
263
|
+
MEDICALLEAVEWITHOUTINSS = "MEDICALLEAVEWITHOUTINSS",
|
|
264
|
+
/**
|
|
265
|
+
* Faltas.
|
|
266
|
+
*/
|
|
267
|
+
ABSENCES = "ABSENCES",
|
|
268
|
+
/**
|
|
269
|
+
* Horas extras.
|
|
270
|
+
*/
|
|
271
|
+
OVERTIME = "OVERTIME",
|
|
272
|
+
/**
|
|
273
|
+
* Situação de apuração ponto.
|
|
274
|
+
*/
|
|
275
|
+
TIMEEVALUATIONSITUATION = "TIMEEVALUATIONSITUATION",
|
|
276
|
+
/**
|
|
277
|
+
* Sobreaviso/Prontidão.
|
|
278
|
+
*/
|
|
279
|
+
PRECAUTIONREADINESS = "PRECAUTIONREADINESS",
|
|
280
|
+
/**
|
|
281
|
+
* Mandato sindical.
|
|
282
|
+
*/
|
|
283
|
+
TRADEUNIONMANDATE = "TRADEUNIONMANDATE",
|
|
284
|
+
/**
|
|
285
|
+
* Licença acidente de trabalho (pgto empresa).
|
|
286
|
+
*/
|
|
287
|
+
WORKACCIDENTLEAVE = "WORKACCIDENTLEAVE",
|
|
288
|
+
/**
|
|
289
|
+
* Licença acidente de trabalho sem incidência INSS.
|
|
290
|
+
*/
|
|
291
|
+
WORKACCIDENTLEAVEWITHOUTINSS = "WORKACCIDENTLEAVEWITHOUTINSS",
|
|
292
|
+
/**
|
|
293
|
+
* Aposentadoria por invalidez.
|
|
294
|
+
*/
|
|
295
|
+
RETIREMENTDUETODISABILITY = "RETIREMENTDUETODISABILITY",
|
|
296
|
+
/**
|
|
297
|
+
* Outros.
|
|
298
|
+
*/
|
|
299
|
+
OTHERS = "OTHERS"
|
|
300
|
+
}
|
|
301
|
+
|