@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.
Files changed (128) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/workflows/release.yaml +10 -0
  3. package/.gitlab-ci.yml +68 -0
  4. package/CHANGELOG.md +274 -0
  5. package/README.doc.md +658 -0
  6. package/README.md +117 -0
  7. package/assets/favicon.ico +0 -0
  8. package/catalog-info.yaml +19 -0
  9. package/jest.config.js +17 -0
  10. package/package.json +48 -0
  11. package/prompt.md +15 -0
  12. package/run_build_win.bat +1 -0
  13. package/run_link.bat +3 -0
  14. package/run_test.bat +1 -0
  15. package/sonar-project.properties +21 -0
  16. package/src/data/changes/changes.ts +92 -0
  17. package/src/data/context/context.ts +251 -0
  18. package/src/data/context/contextReference.ts +376 -0
  19. package/src/data/contract/contract.ts +272 -0
  20. package/src/data/dataset/database.ts +130 -0
  21. package/src/data/dataset/dataset.ts +275 -0
  22. package/src/data/definition/timeEvaluationSituationDefinitionHistory.ts +1425 -0
  23. package/src/data/employee/employee.ts +434 -0
  24. package/src/data/foundation/companyBranch.ts +66 -0
  25. package/src/data/foundation/costCenter.ts +47 -0
  26. package/src/data/foundation/employer.ts +35 -0
  27. package/src/data/foundation/employmentRelationship.ts +63 -0
  28. package/src/data/foundation/holiday.ts +84 -0
  29. package/src/data/foundation/holidayGroup.ts +47 -0
  30. package/src/data/foundation/jobPosition.ts +73 -0
  31. package/src/data/foundation/person.ts +35 -0
  32. package/src/data/foundation/situation.ts +301 -0
  33. package/src/data/foundation/syndicate.ts +244 -0
  34. package/src/data/foundation/workschedule.ts +688 -0
  35. package/src/data/foundation/workshift.ts +647 -0
  36. package/src/data/foundation/workshiftBase.ts +113 -0
  37. package/src/data/histories/companyBranchHistory.ts +128 -0
  38. package/src/data/histories/costCenterHistory.ts +114 -0
  39. package/src/data/histories/employmentRelationshipHistory.ts +116 -0
  40. package/src/data/histories/histories.ts +419 -0
  41. package/src/data/histories/jobPositionHistory.ts +117 -0
  42. package/src/data/histories/leaveHistory.ts +227 -0
  43. package/src/data/histories/timeEvaluationHistory.ts +191 -0
  44. package/src/data/histories/workshiftHistory.ts +66 -0
  45. package/src/data/hourBank/hourBank.ts +43 -0
  46. package/src/data/hourBank/hourBankAccount.ts +77 -0
  47. package/src/data/log/log.ts +38 -0
  48. package/src/data/schedules/bridge.ts +84 -0
  49. package/src/data/schedules/compensation.ts +332 -0
  50. package/src/data/schedules/overtimeAuthorization.ts +174 -0
  51. package/src/data/schedules/readiness.ts +150 -0
  52. package/src/data/schedules/schedules.ts +398 -0
  53. package/src/data/schedules/workscheduleChange.ts +91 -0
  54. package/src/data/schedules/workshiftChange.ts +76 -0
  55. package/src/data/timeEvaluation/adjustmentReason.ts +46 -0
  56. package/src/data/timeEvaluation/clockingEvent.ts +198 -0
  57. package/src/data/timeEvaluation/estimatedHours.ts +245 -0
  58. package/src/data/timeEvaluation/interval.ts +568 -0
  59. package/src/data/timeEvaluation/separatedHours.ts +134 -0
  60. package/src/data/timeEvaluation/timeEvaluation.ts +1540 -0
  61. package/src/data/timeEvaluation/timeEvaluationSituation.ts +154 -0
  62. package/src/data/user/user.ts +44 -0
  63. package/src/index.ts +60 -0
  64. package/src/test/builder/bridgeBuilder.builder.ts +28 -0
  65. package/src/test/builder/clockingEvent.builder.ts +49 -0
  66. package/src/test/builder/companyBranchHistoryBuilder.ts +29 -0
  67. package/src/test/builder/compensation.builder.ts +84 -0
  68. package/src/test/builder/contextReference.builder.ts +69 -0
  69. package/src/test/builder/costCenterHistoryBuilder.ts +29 -0
  70. package/src/test/builder/database.builder.ts +21 -0
  71. package/src/test/builder/datasetBuilder.ts +111 -0
  72. package/src/test/builder/dateIntervalBuilder.ts +25 -0
  73. package/src/test/builder/employee.builder.ts +91 -0
  74. package/src/test/builder/employmentRelationshipBuilder.ts +35 -0
  75. package/src/test/builder/employmentRelationshipHistoryBuilder.ts +29 -0
  76. package/src/test/builder/historiesBuilder.ts +56 -0
  77. package/src/test/builder/holiday.builder.ts +44 -0
  78. package/src/test/builder/hourBankAccountBuilder.ts +77 -0
  79. package/src/test/builder/hourBankBuilder.ts +32 -0
  80. package/src/test/builder/interval.builder.ts +113 -0
  81. package/src/test/builder/jobPositionHistoryBuilder.ts +29 -0
  82. package/src/test/builder/overtimeAuthorization.builder.ts +42 -0
  83. package/src/test/builder/readinessBuilder.builder.ts +57 -0
  84. package/src/test/builder/schedules.builder.ts +126 -0
  85. package/src/test/builder/situation.builder.ts +59 -0
  86. package/src/test/builder/syndicate.builder.ts +96 -0
  87. package/src/test/builder/syndicateHistoryBuilder.ts +33 -0
  88. package/src/test/builder/timeEvaluation.builder.ts +138 -0
  89. package/src/test/builder/timeEvaluationHistory.builder.ts +49 -0
  90. package/src/test/builder/timeEvaluationSituation.builder.ts +34 -0
  91. package/src/test/builder/workschedule.builder.ts +96 -0
  92. package/src/test/builder/workshift.builder.ts +179 -0
  93. package/src/test/builder/workshiftBuilder.ts +55 -0
  94. package/src/test/data/clockingEvent.spec.ts +56 -0
  95. package/src/test/data/context.spec.ts +176 -0
  96. package/src/test/data/currentUser.spec.ts +11 -0
  97. package/src/test/data/dataset.spec.ts +144 -0
  98. package/src/test/data/employee/employee.spec.ts +20 -0
  99. package/src/test/data/employmentRelationship/employmentRelationship.spec.ts +48 -0
  100. package/src/test/data/estimatedHours/estimatedHours.spec.ts +96 -0
  101. package/src/test/data/histories/costCenterHistory.spec.ts +32 -0
  102. package/src/test/data/histories/histories.spec.ts +306 -0
  103. package/src/test/data/holyday.spec.ts +89 -0
  104. package/src/test/data/hourBank/hourBank.spec.ts +48 -0
  105. package/src/test/data/hourBank/hourBankAccount.spec.ts +32 -0
  106. package/src/test/data/schedules/bridge.spec.ts +13 -0
  107. package/src/test/data/schedules/compesation.spect.ts +89 -0
  108. package/src/test/data/schedules/overtimeAuthorization.spec.ts +52 -0
  109. package/src/test/data/schedules/readiness.spec.ts +64 -0
  110. package/src/test/data/schedules/schedules.spec.ts +134 -0
  111. package/src/test/data/schedules/workscheduleChange.spec.ts +21 -0
  112. package/src/test/data/syndicate/syndicate.spec.ts +51 -0
  113. package/src/test/data/timeEvaluation.spec.ts +1057 -0
  114. package/src/test/data/timeEvaluationDefinition.spec.ts +144 -0
  115. package/src/test/data/workschedule/workschedule.spec.ts +194 -0
  116. package/src/test/data/workshift/workshift.spec.ts +79 -0
  117. package/src/test/utils/date.utils.spec.ts +198 -0
  118. package/src/test/utils/dateIntervalUtils.spec.ts +210 -0
  119. package/src/test/utils/object.utils.spec.ts +83 -0
  120. package/src/utils/dateIntervalUtils.ts +284 -0
  121. package/src/utils/dateUtils.ts +456 -0
  122. package/src/utils/decompressGzipLambda.ts +15 -0
  123. package/src/utils/object.utils.ts +156 -0
  124. package/trivy/vulnerabilities_scan.json +1160 -0
  125. package/tsconfig.json +32 -0
  126. package/tsconfig.spec.json +21 -0
  127. package/tslint.json +92 -0
  128. package/typedoc.json +22 -0
@@ -0,0 +1,1057 @@
1
+ import { ContextReference } from "../../../src/data/context/contextReference";
2
+ import { TimeEvaluationSituationBuilder } from "../builder/timeEvaluationSituation.builder";
3
+ import { ClockingEventBuilder } from "../builder/clockingEvent.builder";
4
+ import { IntervalBuilder } from "../builder/interval.builder";
5
+ import { ContextReferenceBuilder } from "../builder/contextReference.builder";
6
+ import { TimeEvaluationBuilder } from "../builder/timeEvaluation.builder";
7
+ import { Bridge } from "../../data/schedules/bridge";
8
+ import { SchedulesBuilder } from "../builder/schedules.builder";
9
+ import { BridgeBuilder } from "../builder/bridgeBuilder.builder";
10
+ import { CompensationBuilder } from "../builder/compensation.builder";
11
+ import { HourBankAccount } from "../../data/hourBank/hourBankAccount";
12
+ import { CompensationType, PeriodType } from "../../data/schedules/compensation";
13
+ import { HourBank } from "../../data/hourBank/hourBank";
14
+ import { Context } from "../../data/context/context";
15
+ import { IntervalSubTypes, IntervalTypes } from "../../data/timeEvaluation/interval";
16
+ import { ClockingEventOriginType, ClockingUseType } from "../../data/timeEvaluation/clockingEvent";
17
+ import { TimeEvaluationType } from "../../data/histories/timeEvaluationHistory";
18
+
19
+ describe("TimeEvaluation", () => {
20
+ let contextRef: ContextReference;
21
+
22
+ beforeEach(() => {
23
+ contextRef = new ContextReferenceBuilder().build();
24
+ ContextReference.setGlobalInstance(contextRef);
25
+ });
26
+
27
+ afterEach(() => {
28
+ ContextReference.setGlobalInstance(null);
29
+ });
30
+
31
+ it("deve invalidar uma apuração e recuperar a mensagem de erro", () => {
32
+ const situations = [new TimeEvaluationSituationBuilder().build()];
33
+ const clockingEvents = [new ClockingEventBuilder().build()];
34
+ const intervals = [new IntervalBuilder().build()];
35
+ const timeEvaluation = new TimeEvaluationBuilder().
36
+
37
+ withDate(new Date("2024-04-02"))
38
+ .withWorkschedule("99725665-2969-45a1-a1be-ee5e85610155")
39
+ .withWorkscheduleWorkshift("e2beeae2-1558-4281-8aa5-c0c5a9b87897")
40
+ .withWorkshift("e3a2f86a-3657-41fc-8de1-7b6a0f788f39")
41
+ .withTimeEvaluationSituations(situations)
42
+ .withClockingEvents(clockingEvents)
43
+ .withIntervals(intervals)
44
+ .build();
45
+
46
+ const message = "Apuração inválida por falta de marcações.";
47
+ timeEvaluation.invalidate(message);
48
+
49
+ expect(timeEvaluation.errorMessage).toBe(message);
50
+ });
51
+
52
+ it("não deve ter mensagem de erro inicialmente", () => {
53
+
54
+ const situations = [new TimeEvaluationSituationBuilder().build()];
55
+ const clockingEvents = [new ClockingEventBuilder().build()];
56
+ const intervals = [new IntervalBuilder().build()];
57
+
58
+ const timeEvaluation = new TimeEvaluationBuilder().
59
+ withDate(new Date("2024-04-02"))
60
+ .withWorkschedule("99725665-2969-45a1-a1be-ee5e85610155")
61
+ .withWorkscheduleWorkshift("e2beeae2-1558-4281-8aa5-c0c5a9b87897")
62
+ .withWorkshift("e3a2f86a-3657-41fc-8de1-7b6a0f788f39")
63
+ .withTimeEvaluationSituations(situations)
64
+ .withClockingEvents(clockingEvents)
65
+ .withIntervals(intervals)
66
+ .build();
67
+
68
+ expect(timeEvaluation.errorMessage).toBe("");
69
+ });
70
+ });
71
+
72
+ describe("TimeEvaluation", () => {
73
+ it("Compare bridge with origemDate", () => {
74
+ const origenDate = new Date("2023-01-01");
75
+ const bridges = BridgeBuilder.builder().withDestinationDate(new Date("2023-01-02")).withOriginDate(origenDate).build();
76
+ const schedule = SchedulesBuilder.builder().withBridges([bridges]).build();
77
+ const timeEvaluation = TimeEvaluationBuilder.builder().withDate(origenDate).withSchedule(schedule).build();
78
+
79
+ const bridge = timeEvaluation.bridge;
80
+ expect(bridge).toBeDefined();
81
+ expect(bridge).toBeInstanceOf(Bridge);
82
+ expect(bridge!.originDate).toEqual(origenDate);
83
+ });
84
+
85
+ it("Compare bridge with destinationDate", () => {
86
+ const origenDate = new Date("2023-01-01");
87
+ const destinationDate = new Date("2023-01-02");
88
+ const bridges = BridgeBuilder.builder().withDestinationDate(destinationDate).withOriginDate(origenDate).build();
89
+ const schedule = SchedulesBuilder.builder().withBridges([bridges]).build();
90
+ const timeEvaluation = TimeEvaluationBuilder.builder().withDate(destinationDate).withSchedule(schedule).build();
91
+
92
+ const bridge = timeEvaluation.bridge;
93
+ expect(bridge).toBeDefined();
94
+ expect(bridge).toBeInstanceOf(Bridge);
95
+ expect(bridge!.originDate).toEqual(origenDate);
96
+ expect(bridge!.destinationDate).toEqual(destinationDate);
97
+ });
98
+
99
+
100
+ it("Compare bridge with timeEvaluation=DestinationDate", () => {
101
+ const timeEvaluationDate = new Date("2023-01-03");
102
+ const origenDate = new Date("2023-01-01");
103
+ const destinationDate = new Date("2023-01-02");
104
+ const bridges = BridgeBuilder.builder().withDestinationDate(destinationDate).withOriginDate(origenDate).build();
105
+ const schedule = SchedulesBuilder.builder().withBridges([bridges]).build();
106
+ const timeEvaluation = TimeEvaluationBuilder.builder().withDate(timeEvaluationDate).withSchedule(schedule).build();
107
+
108
+ const bridge = timeEvaluation.bridge;
109
+ expect(bridge).toBeUndefined();
110
+ });
111
+
112
+
113
+ it("should return undefined if no bridge matches the evaluation date", () => {
114
+ const timeEvaluationDate = new Date("2023-01-03");
115
+ const schedule = SchedulesBuilder.builder().withBridges([]).build();
116
+ const timeEvaluation = TimeEvaluationBuilder.builder()
117
+ .withDate(timeEvaluationDate)
118
+ .withSchedule(schedule).build();
119
+
120
+
121
+ const bridge = timeEvaluation.bridge;
122
+ expect(bridge).toBeUndefined();
123
+
124
+ });
125
+
126
+ it('missingClockingEvent', () => {
127
+
128
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"ed21ea0e-f524-4b56-89e0-0f68d85a964e","processType":"EVALUATE","startDate":"2025-05-27","endDate":"2025-05-27","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidays":[],"timeEvaluation":[{"date":"2025-05-27","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":240},{"situationId":"1307faac-71ca-464b-9c2f-1f807b50b12b","situationCode":250,"numberOfHours":270}],"clockingEvents":[{"clockingEventDate":"2025-05-27","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-05-27","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-05-27T08:00:00","clockingEventEnd":"2025-05-27T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-05-27T13:30:00","clockingEventEnd":"2025-05-27T18:00:00","type":"SCHEDULED","subType":"ABSENSION_COMPENSATION","situationCode":250,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":true}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationship":{"code":"10","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}]},"schedules":{"bridges":[]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1307faac-71ca-464b-9c2f-1f807b50b12b","code":250,"type":"WORKING","exception":false,"complementarySituationId":"1307faac-71ca-464b-9c2f-1f807b50b12b","daytime":true},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}]},"currentUser":{"userName":"admin@allanalves.com.br"}}}';
129
+
130
+ const context = new Context({ body: inputRule });
131
+
132
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
133
+ expect(timeEvaluation.missingClockingEvent).toBe(true);
134
+ });
135
+
136
+
137
+ it('getSeparateHours - false', () => {
138
+
139
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"2550c82c-beb1-45a5-8839-2fd90e44a646","processType":"EVALUATE","startDate":"2025-04-22","endDate":"2025-04-22","contracts":[{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","holidays":[],"timeEvaluation":[{"date":"2025-04-22","workschedule":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workscheduleWorkshift":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workshift":{"code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"2022-08-01"},{"code":2,"baseDate":"2022-08-08"},{"code":3,"baseDate":"2022-08-15"},{"code":4,"baseDate":"1901-01-08"},{"code":4,"baseDate":"2022-08-22"},{"code":5,"baseDate":"2023-03-22"},{"code":5,"baseDate":"2022-08-29"},{"code":6,"baseDate":"2022-09-05"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-08-12"}]},"timeEvaluationSituations":[{"situation":1,"numberOfHours":460},{"situation":17,"numberOfHours":5},{"situation":20,"numberOfHours":171}],"clockingEvents":[{"clockingEventDate":"2025-04-22","clockingEventTime":429,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":717,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":812,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":1200,"identification":1002,"zoneOffset":"0"}],"intervals":[{"clockingEventStart":"2025-04-22T07:09:00","clockingEventEnd":"2025-04-22T08:00:00","type":"OVERTIME","subType":"ENTER","typeIntervalTolerance":"OVERTIME","subTypeIntervalTolerance":"ENTER","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T08:00:00","clockingEventEnd":"2025-04-22T09:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:00:00","clockingEventEnd":"2025-04-22T09:30:00","type":"SNACK","subType":"DAY_OFF","typeIntervalTolerance":"SNACK","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:30:00","clockingEventEnd":"2025-04-22T11:57:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T11:57:00","clockingEventEnd":"2025-04-22T12:00:00","type":"ABSENCE","subType":"ENTER","typeIntervalTolerance":"ABSENCE","subTypeIntervalTolerance":"ENTER","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T12:00:00","clockingEventEnd":"2025-04-22T13:30:00","type":"MEAL","subType":"DAY_OFF","typeIntervalTolerance":"MEAL","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:30:00","clockingEventEnd":"2025-04-22T13:32:00","type":"ABSENCE","subType":"BEFORE_WORKING","typeIntervalTolerance":"ABSENCE","subTypeIntervalTolerance":"BEFORE_WORKING","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:32:00","clockingEventEnd":"2025-04-22T16:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:00:00","clockingEventEnd":"2025-04-22T16:15:00","type":"SNACK","subType":"DAY_OFF","typeIntervalTolerance":"SNACK","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:15:00","clockingEventEnd":"2025-04-22T18:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T18:00:00","clockingEventEnd":"2025-04-22T20:00:00","type":"OVERTIME","subType":"CHECKOUT","typeIntervalTolerance":"OVERTIME","subTypeIntervalTolerance":"CHECKOUT","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2023-01-30_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[{"dailyHours":30,"nightlyHours":0},{"dailyHours":15,"nightlyHours":0}],"work":[{"dailyHours":60,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":105,"nightlyHours":0}]}}],"employee":{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","code":2,"person":{"name":"Franky"},"hireDate":"2022-01-01","employmentRelationship":{"code":"1","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":4},"histories":{"jobPositionHistories":[{"startDate":"2022-01-01","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2022-08-08","companyBranchKey":"1_1"}]},"schedules":{"bridges":[{"originDate":"2025-04-25","destinationDate":"2025-04-26"}]},"hourBankAccounts":[{"hourBank":{"code":5},"creationDate":"2024-01-01","extinctionDate":"2024-04-30"},{"hourBank":{"code":1},"creationDate":"2024-10-24"},{"hourBank":{"code":8},"creationDate":"2024-07-01"}]}],"database":{"situations":[{"id":"209c328d-3fe8-446a-b690-846d75ef5ed5","code":1,"type":"WORKING","exception":false,"complementarySituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","daytime":true},{"id":"489eab83-47ed-42ee-ab76-a1702bd13e79","code":9,"type":"VACATION","exception":false,"complementarySituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","daytime":true},{"id":"4be78b2c-cae5-46f8-93ae-850a1c85013a","code":11,"type":"WORKING","exception":true,"complementarySituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","daytime":true},{"id":"848ec42d-b2df-4c4d-94f4-151f381e4a54","code":12,"type":"WORKING","exception":false,"complementarySituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","daytime":true},{"id":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","code":17,"type":"ABSENCES","exception":true,"complementarySituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","daytime":true},{"id":"e75ba021-148e-4f36-bb3e-13e024cc1908","code":20,"type":"WORKING","exception":true,"complementarySituationId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","daytime":true},{"id":"2a2fae76-cf7e-498b-9107-0166f6e906ef","code":21,"type":"WORKING","exception":true,"complementarySituationId":"e75ba021-148e-4f36-bb3e-13e024cc1908","daytime":false},{"id":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","code":51,"type":"WORKING","exception":false,"complementarySituationId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","daytime":false},{"id":"950ba6cd-528d-42cc-aa07-9f15561735f9","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2023-01-30","workSituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","nightShiftWorkPremiumId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","invalidEventsSituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","vacationPaidLeaveSituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","dailyRestViolationSituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","workBreakViolationSituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","absenceSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","tardinessSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","intermediateLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","earlyLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","absenceSituationOnRelayScheduleHolidaysId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","percentageNextDay":true,"normalOvertimeSeparationLimit":0,"separateOvertimeAfterConvertingNightShiftHours":false,"overtimeBeforeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeEntryId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeDuringMealId":"e75ba021-148e-4f36-bb3e-13e024cc1908","leaveOvertimeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeAfterId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringRest":0,"overtimeDuringRestId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringCompensatedDays":0,"overtimeOnCompensatedDaysId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringHoliday":0,"overtimeDuringHolidayId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringDayOff":0,"overtimeDuringDayOffId":"2a2fae76-cf7e-498b-9107-0166f6e906ef"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"companyBranches":[{"key":"1_1","code":1}]},"currentUser":{"name":"admin@allanalves.com.br"}}}';
140
+
141
+ const context = new Context({ body: inputRule });
142
+
143
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
144
+
145
+ // Testando getSeparateHours
146
+ const separateHours = timeEvaluation.getSeparateHours(IntervalTypes.WORKING, false);
147
+ expect(separateHours.dailyHours).toBeGreaterThan(0); // Ajuste conforme esperado
148
+ expect(separateHours.nightlyHours).toBe(0);
149
+
150
+ // Testando getWorkHours
151
+ const workHours = timeEvaluation.estimatedHours.getWorkHours();
152
+ expect(workHours.dailyHours).toBe(465); // Soma de todas as partes
153
+ expect(workHours.nightlyHours).toBe(0);
154
+
155
+ // Testando getMealHours
156
+ const mealHours = timeEvaluation.estimatedHours.getMealHours();
157
+ expect(mealHours.dailyHours).toBe(90); // Soma de todas as refeições
158
+ expect(mealHours.nightlyHours).toBe(0);
159
+
160
+ // Testando getSnackHours
161
+ const snackHours = timeEvaluation.estimatedHours.getSnackHours();
162
+ expect(snackHours.dailyHours).toBe(45); // Soma de 30 + 15
163
+ expect(snackHours.nightlyHours).toBe(0);
164
+ });
165
+
166
+ it('getSeparateHours - true', () => {
167
+
168
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"2550c82c-beb1-45a5-8839-2fd90e44a646","processType":"EVALUATE","startDate":"2025-04-22","endDate":"2025-04-22","contracts":[{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","holidays":[],"timeEvaluation":[{"date":"2025-04-22","workschedule":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workscheduleWorkshift":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workshift":{"code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"2022-08-01"},{"code":2,"baseDate":"2022-08-08"},{"code":3,"baseDate":"2022-08-15"},{"code":4,"baseDate":"1901-01-08"},{"code":4,"baseDate":"2022-08-22"},{"code":5,"baseDate":"2023-03-22"},{"code":5,"baseDate":"2022-08-29"},{"code":6,"baseDate":"2022-09-05"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-08-12"}]},"timeEvaluationSituations":[{"situation":1,"numberOfHours":460},{"situation":17,"numberOfHours":5},{"situation":20,"numberOfHours":171}],"clockingEvents":[{"clockingEventDate":"2025-04-22","clockingEventTime":429,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":717,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":812,"identification":1002,"zoneOffset":"0"},{"clockingEventDate":"2025-04-22","clockingEventTime":1200,"identification":1002,"zoneOffset":"0"}],"intervals":[{"clockingEventStart":"2025-04-22T07:09:00","clockingEventEnd":"2025-04-22T08:00:00","type":"OVERTIME","subType":"ENTER","typeIntervalTolerance":"OVERTIME","subTypeIntervalTolerance":"ENTER","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T08:00:00","clockingEventEnd":"2025-04-22T09:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:00:00","clockingEventEnd":"2025-04-22T09:30:00","type":"SNACK","subType":"DAY_OFF","typeIntervalTolerance":"SNACK","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:30:00","clockingEventEnd":"2025-04-22T11:57:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T11:57:00","clockingEventEnd":"2025-04-22T12:00:00","type":"ABSENCE","subType":"ENTER","typeIntervalTolerance":"ABSENCE","subTypeIntervalTolerance":"ENTER","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T12:00:00","clockingEventEnd":"2025-04-22T13:30:00","type":"MEAL","subType":"DAY_OFF","typeIntervalTolerance":"MEAL","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:30:00","clockingEventEnd":"2025-04-22T13:32:00","type":"ABSENCE","subType":"BEFORE_WORKING","typeIntervalTolerance":"ABSENCE","subTypeIntervalTolerance":"BEFORE_WORKING","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:32:00","clockingEventEnd":"2025-04-22T16:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:00:00","clockingEventEnd":"2025-04-22T16:15:00","type":"SNACK","subType":"DAY_OFF","typeIntervalTolerance":"SNACK","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:15:00","clockingEventEnd":"2025-04-22T18:00:00","type":"WORKING","subType":"DAY_OFF","typeIntervalTolerance":"WORKING","subTypeIntervalTolerance":"DAY_OFF","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T18:00:00","clockingEventEnd":"2025-04-22T20:00:00","type":"OVERTIME","subType":"CHECKOUT","typeIntervalTolerance":"OVERTIME","subTypeIntervalTolerance":"CHECKOUT","situationCode":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"withinClockingEventTolerance":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2023-01-30_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[{"dailyHours":30,"nightlyHours":0},{"dailyHours":15,"nightlyHours":0}],"work":[{"dailyHours":60,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":105,"nightlyHours":0}]}}],"employee":{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","code":2,"person":{"name":"Franky"},"hireDate":"2022-01-01","employmentRelationship":{"code":"1","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":4},"histories":{"jobPositionHistories":[{"startDate":"2022-01-01","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2022-08-08","companyBranchKey":"1_1"}]},"schedules":{"bridges":[{"originDate":"2025-04-25","destinationDate":"2025-04-26"}]},"hourBankAccounts":[{"hourBank":{"code":5},"creationDate":"2024-01-01","extinctionDate":"2024-04-30"},{"hourBank":{"code":1},"creationDate":"2024-10-24"},{"hourBank":{"code":8},"creationDate":"2024-07-01"}]}],"database":{"situations":[{"id":"209c328d-3fe8-446a-b690-846d75ef5ed5","code":1,"type":"WORKING","exception":false,"complementarySituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","daytime":true},{"id":"489eab83-47ed-42ee-ab76-a1702bd13e79","code":9,"type":"VACATION","exception":false,"complementarySituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","daytime":true},{"id":"4be78b2c-cae5-46f8-93ae-850a1c85013a","code":11,"type":"WORKING","exception":true,"complementarySituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","daytime":true},{"id":"848ec42d-b2df-4c4d-94f4-151f381e4a54","code":12,"type":"WORKING","exception":false,"complementarySituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","daytime":true},{"id":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","code":17,"type":"ABSENCES","exception":true,"complementarySituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","daytime":true},{"id":"e75ba021-148e-4f36-bb3e-13e024cc1908","code":20,"type":"WORKING","exception":true,"complementarySituationId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","daytime":true},{"id":"2a2fae76-cf7e-498b-9107-0166f6e906ef","code":21,"type":"WORKING","exception":true,"complementarySituationId":"e75ba021-148e-4f36-bb3e-13e024cc1908","daytime":false},{"id":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","code":51,"type":"WORKING","exception":false,"complementarySituationId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","daytime":false},{"id":"950ba6cd-528d-42cc-aa07-9f15561735f9","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2023-01-30","workSituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","nightShiftWorkPremiumId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","invalidEventsSituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","vacationPaidLeaveSituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","dailyRestViolationSituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","workBreakViolationSituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","absenceSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","tardinessSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","intermediateLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","earlyLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","absenceSituationOnRelayScheduleHolidaysId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","percentageNextDay":true,"normalOvertimeSeparationLimit":0,"separateOvertimeAfterConvertingNightShiftHours":false,"overtimeBeforeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeEntryId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeDuringMealId":"e75ba021-148e-4f36-bb3e-13e024cc1908","leaveOvertimeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeAfterId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringRest":0,"overtimeDuringRestId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringCompensatedDays":0,"overtimeOnCompensatedDaysId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringHoliday":0,"overtimeDuringHolidayId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringDayOff":0,"overtimeDuringDayOffId":"2a2fae76-cf7e-498b-9107-0166f6e906ef"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"companyBranches":[{"key":"1_1","code":1}]},"currentUser":{"name":"admin@allanalves.com.br"}}}';
169
+
170
+ const context = new Context({ body: inputRule });
171
+
172
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
173
+
174
+ // Testando getSeparateHours
175
+ const separateHours = timeEvaluation.getSeparateHours(IntervalTypes.WORKING, true);
176
+ expect(separateHours.dailyHours).toBeGreaterThan(0); // Ajuste conforme esperado
177
+ expect(separateHours.nightlyHours).toBe(0);
178
+
179
+ // Testando getWorkHours
180
+ const workHours = timeEvaluation.estimatedHours.getWorkHours();
181
+ expect(workHours.dailyHours).toBe(465); // Soma de todas as partes
182
+ expect(workHours.nightlyHours).toBe(0);
183
+
184
+ // Testando getMealHours
185
+ const mealHours = timeEvaluation.estimatedHours.getMealHours();
186
+ expect(mealHours.dailyHours).toBe(90); // Soma de todas as refeições
187
+ expect(mealHours.nightlyHours).toBe(0);
188
+
189
+ // Testando getSnackHours
190
+ const snackHours = timeEvaluation.estimatedHours.getSnackHours();
191
+ expect(snackHours.dailyHours).toBe(45); // Soma de 30 + 15
192
+ expect(snackHours.nightlyHours).toBe(0);
193
+ });
194
+
195
+
196
+ it('syndicate', () => {
197
+
198
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"5897c26d-8875-40f6-ab02-27a36cc59632","processType":"EVALUATE","startDate":"2025-04-22","endDate":"2025-04-22","contracts":[{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","holidays":[],"timeEvaluation":[{"date":"2025-04-22","workscheduleId":"e7875638-42b4-479d-a825-10fa3b13fbae","workscheduleWorkshiftId":"e7875638-42b4-479d-a825-10fa3b13fbae","workshiftId":"47971e5f-3d1a-4494-8cf6-328c7dfa5394","timeEvaluationSituations":[],"clockingEvents":[{"clockingEventDate":"2025-04-22","clockingEventTime":429,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":717,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":812,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":1200,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[],"situationDefinitionKey":"3_2023-01-30_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[{"dailyHours":30,"nightlyHours":0},{"dailyHours":15,"nightlyHours":0}],"work":[{"dailyHours":60,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":150,"nightlyHours":0},{"dailyHours":105,"nightlyHours":0}]},"syndicateKey":"1"}],"employee":{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","code":2,"person":{"name":"Franky"},"hireDate":"2022-01-01","employmentRelationship":{"code":"1","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":4},"histories":{"jobPositionHistories":[{"startDate":"2022-01-01","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2022-08-08","companyBranchKey":"1_1"}]},"schedules":{"bridges":[{"originDate":"2025-04-25","destinationDate":"2025-04-26"}]},"hourBankAccounts":[{"hourBank":{"code":5},"creationDate":"2024-01-01","extinctionDate":"2024-04-30"},{"hourBank":{"code":1},"creationDate":"2024-10-24"},{"hourBank":{"code":8},"creationDate":"2024-07-01"}]}],"database":{"situations":[{"id":"209c328d-3fe8-446a-b690-846d75ef5ed5","code":1,"type":"WORKING","exception":false,"complementarySituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","daytime":true},{"id":"489eab83-47ed-42ee-ab76-a1702bd13e79","code":9,"type":"VACATION","exception":false,"complementarySituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","daytime":true},{"id":"4be78b2c-cae5-46f8-93ae-850a1c85013a","code":11,"type":"WORKING","exception":true,"complementarySituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","daytime":true},{"id":"848ec42d-b2df-4c4d-94f4-151f381e4a54","code":12,"type":"WORKING","exception":false,"complementarySituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","daytime":true},{"id":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","code":17,"type":"ABSENCES","exception":true,"complementarySituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","daytime":true},{"id":"e75ba021-148e-4f36-bb3e-13e024cc1908","code":20,"type":"WORKING","exception":true,"complementarySituationId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","daytime":true},{"id":"2a2fae76-cf7e-498b-9107-0166f6e906ef","code":21,"type":"WORKING","exception":true,"complementarySituationId":"e75ba021-148e-4f36-bb3e-13e024cc1908","daytime":false},{"id":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","code":51,"type":"WORKING","exception":false,"complementarySituationId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","daytime":false},{"id":"950ba6cd-528d-42cc-aa07-9f15561735f9","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2023-01-30","workSituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","nightShiftWorkPremiumId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","invalidEventsSituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","vacationPaidLeaveSituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","dailyRestViolationSituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","workBreakViolationSituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","absenceSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","tardinessSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","intermediateLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","earlyLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","absenceSituationOnRelayScheduleHolidaysId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","percentageNextDay":true,"normalOvertimeSeparationLimit":0,"separateOvertimeAfterConvertingNightShiftHours":false,"overtimeBeforeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeEntryId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeDuringMealId":"e75ba021-148e-4f36-bb3e-13e024cc1908","leaveOvertimeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeAfterId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringRest":0,"overtimeDuringRestId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringCompensatedDays":0,"overtimeOnCompensatedDaysId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringHoliday":0,"overtimeDuringHolidayId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringDayOff":0,"overtimeDuringDayOffId":"2a2fae76-cf7e-498b-9107-0166f6e906ef"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"e7875638-42b4-479d-a825-10fa3b13fbae","code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"47971e5f-3d1a-4494-8cf6-328c7dfa5394","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"2022-08-01"},{"code":2,"baseDate":"2022-08-08"},{"code":3,"baseDate":"2022-08-15"},{"code":4,"baseDate":"1901-01-08"},{"code":4,"baseDate":"2022-08-22"},{"code":5,"baseDate":"2023-03-22"},{"code":5,"baseDate":"2022-08-29"},{"code":6,"baseDate":"2022-09-05"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-08-12"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":30,"minimumInterval6Hours":90,"minimumWorkDuration6Hours":361}]},"currentUser":{"name":"admin@allanalves.com.br"}}}';
199
+
200
+ const context = new Context({ body: inputRule });
201
+
202
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
203
+
204
+ // Testando getSeparateHours
205
+ const syndicate = timeEvaluation.syndicate;
206
+
207
+ expect(syndicate.code).toBe(1);
208
+ expect(syndicate.nightStartHour).toBe(1320);
209
+ expect(syndicate.nightEndHour).toBe(300);
210
+ expect(syndicate.minimumInterval4to6Hours).toBe(30);
211
+ expect(syndicate.minimumInterval6Hours).toBe(90);
212
+ expect(syndicate.minimumWorkDuration6Hours).toBe(361);
213
+ });
214
+
215
+
216
+
217
+ });
218
+
219
+ describe("Situation", () => {
220
+
221
+ it('setSituationHour - new', () => {
222
+
223
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
224
+
225
+ const context = new Context({ body: inputRule });
226
+
227
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
228
+ timeEvaluation.setSituationHour(300, 60);
229
+
230
+ const changes = context.processChanges();
231
+
232
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
233
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
234
+ expect(changes.changesItems[0].getKey()).toBe("300");
235
+ expect(changes.changesItems[0].getValue()).toBe("60");
236
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
237
+
238
+ });
239
+
240
+
241
+ it('setSituationHour - update', () => {
242
+
243
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
244
+
245
+ const context = new Context({ body: inputRule });
246
+
247
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
248
+ timeEvaluation.setSituationHour(1, 600);
249
+
250
+ const changes = context.processChanges();
251
+
252
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
253
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
254
+ expect(changes.changesItems[0].getKey()).toBe("1");
255
+ expect(changes.changesItems[0].getValue()).toBe("600");
256
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
257
+
258
+ });
259
+
260
+
261
+ it('sumSituationHour - new', () => {
262
+
263
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
264
+
265
+ const context = new Context({ body: inputRule });
266
+
267
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
268
+ timeEvaluation.sumSituationHour(300, 30);
269
+
270
+ const changes = context.processChanges();
271
+
272
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
273
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
274
+ expect(changes.changesItems[0].getKey()).toBe("300");
275
+ expect(changes.changesItems[0].getValue()).toBe("30");
276
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
277
+
278
+ });
279
+
280
+
281
+ it('sumSituationHour - exists', () => {
282
+
283
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
284
+
285
+ const context = new Context({ body: inputRule });
286
+
287
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
288
+ timeEvaluation.sumSituationHour(1, 30);
289
+
290
+ const changes = context.processChanges();
291
+
292
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
293
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
294
+ expect(changes.changesItems[0].getKey()).toBe("1");
295
+ expect(changes.changesItems[0].getValue()).toBe("540");
296
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
297
+
298
+ });
299
+
300
+ it('sumSituationHour - exists double', () => {
301
+
302
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
303
+
304
+ const context = new Context({ body: inputRule });
305
+
306
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
307
+ timeEvaluation.sumSituationHour(1, 30);
308
+ timeEvaluation.sumSituationHour(1, 5);
309
+
310
+ const changes = context.processChanges();
311
+
312
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
313
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
314
+ expect(changes.changesItems[0].getKey()).toBe("1");
315
+ expect(changes.changesItems[0].getValue()).toBe("545");
316
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
317
+
318
+ });
319
+
320
+
321
+ it('resetSituationHour - new', () => {
322
+
323
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
324
+
325
+ const context = new Context({ body: inputRule });
326
+
327
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
328
+ timeEvaluation.resetSituationHour(300);
329
+
330
+ const changes = context.processChanges();
331
+
332
+ expect(changes.changesItems.filter((item) => item.getType() === "SITUATION").length).toBe(0);
333
+
334
+ });
335
+
336
+ it('resetSituationHour - exists', () => {
337
+
338
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
339
+
340
+ const context = new Context({ body: inputRule });
341
+
342
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
343
+ timeEvaluation.resetSituationHour(1);
344
+
345
+ const changes = context.processChanges();
346
+
347
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
348
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
349
+ expect(changes.changesItems[0].getKey()).toBe("1");
350
+ expect(changes.changesItems[0].getValue()).toBe("0");
351
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
352
+
353
+ });
354
+
355
+
356
+ it('resetSituationHourByCodes - oneIte,', () => {
357
+
358
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
359
+
360
+ const context = new Context({ body: inputRule });
361
+
362
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
363
+ timeEvaluation.resetSituationHourByCodes(1);
364
+
365
+ const changes = context.processChanges();
366
+
367
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
368
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
369
+ expect(changes.changesItems[0].getKey()).toBe("1");
370
+ expect(changes.changesItems[0].getValue()).toBe("0");
371
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
372
+
373
+ });
374
+
375
+ it('resetSituationHourByCodes - 2 item', () => {
376
+
377
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
378
+
379
+ const context = new Context({ body: inputRule });
380
+
381
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
382
+ timeEvaluation.resetSituationHourByCodes(1, 16);
383
+
384
+ const changes = context.processChanges();
385
+
386
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
387
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
388
+ expect(changes.changesItems[0].getKey()).toBe("1");
389
+ expect(changes.changesItems[0].getValue()).toBe("0");
390
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
391
+
392
+ expect(changes.changesItems[1].getType()).toBe("SITUATION");
393
+ expect(changes.changesItems[1].getTimeEvaluationDate()).toBe("2025-06-24");
394
+ expect(changes.changesItems[1].getKey()).toBe("16");
395
+ expect(changes.changesItems[1].getValue()).toBe("0");
396
+ expect(changes.changesItems[1].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
397
+
398
+ });
399
+
400
+
401
+ it('resetSituationHourByCodes - 1 item and 1 invalid', () => {
402
+
403
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
404
+
405
+ const context = new Context({ body: inputRule });
406
+
407
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
408
+ timeEvaluation.resetSituationHourByCodes(1, 300);
409
+
410
+ const changes = context.processChanges();
411
+
412
+ expect(changes.changesItems.filter((item) => item.getType() === "SITUATION").length).toBe(1);
413
+
414
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
415
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
416
+ expect(changes.changesItems[0].getKey()).toBe("1");
417
+ expect(changes.changesItems[0].getValue()).toBe("0");
418
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
419
+
420
+
421
+ });
422
+
423
+
424
+ it('resetSituationHourByCodes - 2 invalid', () => {
425
+
426
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
427
+
428
+ const context = new Context({ body: inputRule });
429
+
430
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
431
+ timeEvaluation.resetSituationHourByCodes(500, 300);
432
+
433
+ const changes = context.processChanges();
434
+
435
+ expect(changes.changesItems.filter((item) => item.getType() === "SITUATION").length).toBe(0);
436
+ });
437
+
438
+
439
+ it('resetSituationHourByRange - 2 item', () => {
440
+
441
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
442
+
443
+ const context = new Context({ body: inputRule });
444
+
445
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
446
+ timeEvaluation.resetSituationHourByRange(1, 16);
447
+
448
+ const changes = context.processChanges();
449
+
450
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
451
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
452
+ expect(changes.changesItems[0].getKey()).toBe("1");
453
+ expect(changes.changesItems[0].getValue()).toBe("0");
454
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
455
+
456
+ expect(changes.changesItems[1].getType()).toBe("SITUATION");
457
+ expect(changes.changesItems[1].getTimeEvaluationDate()).toBe("2025-06-24");
458
+ expect(changes.changesItems[1].getKey()).toBe("16");
459
+ expect(changes.changesItems[1].getValue()).toBe("0");
460
+ expect(changes.changesItems[1].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
461
+ });
462
+
463
+
464
+ it('resetSituationHourByRange - range completo', () => {
465
+
466
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
467
+
468
+ const context = new Context({ body: inputRule });
469
+
470
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
471
+ timeEvaluation.resetSituationHourByRange(1, 9999);
472
+
473
+ const changes = context.processChanges();
474
+
475
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
476
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
477
+ expect(changes.changesItems[0].getKey()).toBe("1");
478
+ expect(changes.changesItems[0].getValue()).toBe("0");
479
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
480
+
481
+ expect(changes.changesItems[1].getType()).toBe("SITUATION");
482
+ expect(changes.changesItems[1].getTimeEvaluationDate()).toBe("2025-06-24");
483
+ expect(changes.changesItems[1].getKey()).toBe("16");
484
+ expect(changes.changesItems[1].getValue()).toBe("0");
485
+ expect(changes.changesItems[1].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
486
+ });
487
+
488
+
489
+ it('resetSituationHourByRange - 1 item', () => {
490
+
491
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
492
+
493
+ const context = new Context({ body: inputRule });
494
+
495
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
496
+ timeEvaluation.resetSituationHourByRange(1, 1);
497
+
498
+ const changes = context.processChanges();
499
+
500
+ expect(changes.changesItems[0].getType()).toBe("SITUATION");
501
+ expect(changes.changesItems[0].getTimeEvaluationDate()).toBe("2025-06-24");
502
+ expect(changes.changesItems[0].getKey()).toBe("1");
503
+ expect(changes.changesItems[0].getValue()).toBe("0");
504
+ expect(changes.changesItems[0].getContractId()).toBe("943a66fb-3636-456f-b7ba-e3e1526e8892");
505
+ });
506
+
507
+ it('getSituationHour', () => {
508
+
509
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
510
+
511
+ const context = new Context({ body: inputRule });
512
+
513
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
514
+ expect(timeEvaluation.getSituationHour(1)).toBe(510);
515
+ expect(timeEvaluation.getSituationHour(16)).toBe(240);
516
+ expect(timeEvaluation.getSituationHour(999)).toBe(0);
517
+
518
+
519
+ });
520
+
521
+
522
+ });
523
+
524
+
525
+ describe("TimeEvaluation - getSituationHourByRange", () => {
526
+
527
+ /**
528
+ * Horas - código situação
529
+ * 280 - 1
530
+ * 180 - 66
531
+ * 125 - 101
532
+ * 105 - 103
533
+ * 205 - 523
534
+ */
535
+ it("Intervalos", () => {
536
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f4cbfe9c-4894-4bc9-852c-5729f339694a","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
537
+
538
+ const context = new Context({ body: inputRule });
539
+
540
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
541
+
542
+ expect(timeEvaluation.getSituationHourByRange(1, 1)).toEqual(280);
543
+ expect(timeEvaluation.getSituationHourByRange(66, 66)).toEqual(180);
544
+ expect(timeEvaluation.getSituationHourByRange(1, 66)).toEqual(460);
545
+ expect(timeEvaluation.getSituationHourByRange(1, 523)).toEqual(895);
546
+ expect(timeEvaluation.getSituationHourByRange(1, 9999)).toEqual(895);
547
+ expect(timeEvaluation.getSituationHourByRange(999, 9999)).toEqual(0);
548
+
549
+ expect(() => timeEvaluation.getSituationHourByRange(2, 1)).toThrow("startCode must be less than or equal to endCode");
550
+
551
+
552
+
553
+ });
554
+ });
555
+
556
+
557
+
558
+ describe("TimeEvaluation - hourBankAccounts", () => {
559
+ it("Deve retornar todas as contas de banco de horas válidas para a data de apuração", () => {
560
+ const validHourBankAccount1 = new HourBankAccount({
561
+ hourBank: new HourBank({ code: 1 }),
562
+ creationDate: new Date("2025-01-01"),
563
+ extinctionDate: new Date("2025-06-30"),
564
+ });
565
+
566
+ const validHourBankAccount2 = new HourBankAccount({
567
+ hourBank: new HourBank({ code: 2 }),
568
+ creationDate: new Date("2025-06-01"),
569
+ extinctionDate: new Date("2025-12-31"),
570
+ });
571
+
572
+ const timeEvaluation = TimeEvaluationBuilder.builder()
573
+ .withDate(new Date("2025-06-15"))
574
+ .withHourBankAccounts([validHourBankAccount1, validHourBankAccount2])
575
+ .build();
576
+
577
+ const result = timeEvaluation.hourBankAccounts;
578
+ expect(result).toHaveLength(2);
579
+ expect(result).toContain(validHourBankAccount1);
580
+ expect(result).toContain(validHourBankAccount2);
581
+ });
582
+
583
+ it("Deve retornar uma lista vazia se não houver contas de banco de horas", () => {
584
+ const timeEvaluation = TimeEvaluationBuilder.builder()
585
+ .withDate(new Date("2025-06-01"))
586
+ .withHourBankAccounts([])
587
+ .build();
588
+
589
+ const result = timeEvaluation.hourBankAccounts;
590
+ expect(result).toHaveLength(0);
591
+ });
592
+
593
+ it("Deve retornar uma lista vazia se nenhuma conta for válida para a data de apuração", () => {
594
+ const invalidHourBankAccount = new HourBankAccount({
595
+ hourBank: new HourBank({ code: 1 }),
596
+ creationDate: new Date("2024-01-01"),
597
+ extinctionDate: new Date("2024-12-31"),
598
+ });
599
+
600
+ const timeEvaluation = TimeEvaluationBuilder.builder()
601
+ .withDate(new Date("2025-06-01"))
602
+ .withHourBankAccounts([invalidHourBankAccount])
603
+ .build();
604
+
605
+ const result = timeEvaluation.hourBankAccounts;
606
+ expect(result).toHaveLength(0);
607
+ });
608
+
609
+ it("Deve retornar todas as contas válidas se extinctionDate for null", () => {
610
+ const validHourBankAccount1 = new HourBankAccount({
611
+ hourBank: new HourBank({ code: 1 }),
612
+ creationDate: new Date("2025-01-01"),
613
+ extinctionDate: null,
614
+ });
615
+
616
+ const validHourBankAccount2 = new HourBankAccount({
617
+ hourBank: new HourBank({ code: 2 }),
618
+ creationDate: new Date("2025-06-01"),
619
+ extinctionDate: null,
620
+ });
621
+
622
+ const timeEvaluation = TimeEvaluationBuilder.builder()
623
+ .withDate(new Date("2025-06-15"))
624
+ .withHourBankAccounts([validHourBankAccount1, validHourBankAccount2])
625
+ .build();
626
+
627
+ const result = timeEvaluation.hourBankAccounts;
628
+ expect(result).toHaveLength(2);
629
+ expect(result).toContain(validHourBankAccount1);
630
+ expect(result).toContain(validHourBankAccount2);
631
+ });
632
+
633
+ });
634
+
635
+
636
+ describe("getCalculatedIntervalByType", () => {
637
+
638
+ it("Intervalos", () => {
639
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
640
+
641
+ const context = new Context({ body: inputRule });
642
+
643
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
644
+
645
+ const intervals = timeEvaluation.getCalculatedIntervalByType(IntervalTypes.WORKING);
646
+
647
+ expect(intervals).toBeDefined();
648
+ expect(intervals.length).toBe(2);
649
+ expect(intervals[0].clockingEventStart).toEqual(new Date('2025-06-24T08:00:00Z'));
650
+ expect(intervals[0].clockingEventEnd).toEqual(new Date('2025-06-24T12:00:00Z'));
651
+ expect(intervals[0].inClockingEventTolerance).toBe(false);
652
+ expect(intervals[0].type).toBe(IntervalTypes.WORKING);
653
+
654
+ expect(intervals[1].clockingEventStart).toEqual(new Date('2025-06-24T13:30:00Z'));
655
+ expect(intervals[1].clockingEventEnd).toEqual(new Date('2025-06-24T18:00:00Z'));
656
+ expect(intervals[1].inClockingEventTolerance).toBe(false);
657
+ expect(intervals[1].type).toBe(IntervalTypes.WORKING);
658
+
659
+ });
660
+
661
+ it("empty", () => {
662
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
663
+
664
+ const context = new Context({ body: inputRule });
665
+
666
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
667
+
668
+ const intervals = timeEvaluation.getCalculatedIntervalByType(IntervalTypes.DIRECTION);
669
+
670
+ expect(intervals).toBeDefined();
671
+ expect(intervals.length).toBe(0);
672
+
673
+ });
674
+ });
675
+
676
+
677
+ describe("getCalculatedIntervalBySubType", () => {
678
+
679
+ it("Intervalos", () => {
680
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
681
+
682
+ const context = new Context({ body: inputRule });
683
+
684
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
685
+
686
+ const intervals = timeEvaluation.getCalculatedIntervalBySubType(IntervalSubTypes.CHECKOUT);
687
+
688
+ expect(intervals).toBeDefined();
689
+ expect(intervals.length).toBe(1);
690
+ expect(intervals[0].clockingEventStart).toEqual(new Date('2025-06-24T18:00:00Z'));
691
+ expect(intervals[0].clockingEventEnd).toEqual(new Date('2025-06-24T22:00:00Z'));
692
+ expect(intervals[0].inClockingEventTolerance).toBe(false);
693
+ expect(intervals[0].type).toBe(IntervalTypes.OVERTIME);
694
+
695
+ });
696
+
697
+ it("empty", () => {
698
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
699
+
700
+ const context = new Context({ body: inputRule });
701
+
702
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
703
+
704
+ const intervals = timeEvaluation.getCalculatedIntervalBySubType(IntervalSubTypes.DAY_OFF);
705
+
706
+ expect(intervals).toBeDefined();
707
+ expect(intervals.length).toBe(0);
708
+
709
+ });
710
+ });
711
+
712
+
713
+ describe("getClockingEvents", () => {
714
+
715
+ it('getClockingEvents', () => {
716
+
717
+ const inputRule = '{"version":"1.0.0","input":{"batchId":"89738d21-112f-4c9f-a5d3-05db02ca05ab","processType":"EVALUATE","startDate":"2025-04-22","endDate":"2025-04-22","contracts":[{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","holidays":[],"timeEvaluation":[{"date":"2025-04-22","workschedule":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workscheduleWorkshift":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workshift":{"code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"2022-08-01"},{"code":2,"baseDate":"2022-08-08"},{"code":3,"baseDate":"2022-08-15"},{"code":4,"baseDate":"1901-01-08"},{"code":4,"baseDate":"2022-08-22"},{"code":5,"baseDate":"2023-03-22"},{"code":5,"baseDate":"2022-08-29"},{"code":6,"baseDate":"2022-09-05"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-08-12"}]},"timeEvaluationSituations":[{"situation":1,"numberOfHours":460},{"situation":17,"numberOfHours":5},{"situation":20,"numberOfHours":171}],"clockingEvents":[{"clockingEventDate":"2025-04-22","clockingEventTime":429,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":717,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":812,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":1200,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-04-22T07:09:00","clockingEventEnd":"2025-04-22T08:00:00","type":"OVERTIME","subType":"ENTER","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T08:00:00","clockingEventEnd":"2025-04-22T09:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:00:00","clockingEventEnd":"2025-04-22T09:30:00","type":"SNACK","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:30:00","clockingEventEnd":"2025-04-22T11:57:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T11:57:00","clockingEventEnd":"2025-04-22T12:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T12:00:00","clockingEventEnd":"2025-04-22T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:30:00","clockingEventEnd":"2025-04-22T13:32:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:32:00","clockingEventEnd":"2025-04-22T16:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:00:00","clockingEventEnd":"2025-04-22T16:15:00","type":"SNACK","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:15:00","clockingEventEnd":"2025-04-22T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T18:00:00","clockingEventEnd":"2025-04-22T20:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2023-01-30_null"}],"employee":{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","code":2,"person":{"name":"Franky"},"hireDate":"2022-01-01","employmentRelationship":{"code":"1","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":4},"histories":{"jobPositionHistories":[{"startDate":"2022-01-01","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2022-08-08","companyBranchKey":"1_1"}]},"schedules":{"bridges":[{"originDate":"2025-04-25","destinationDate":"2025-04-26"}]},"hourBankAccounts":[{"hourBank":{"code":5},"creationDate":"2024-01-01","extinctionDate":"2024-04-30"},{"hourBank":{"code":1},"creationDate":"2024-10-24"},{"hourBank":{"code":8},"creationDate":"2024-07-01"}]}],"database":{"situations":[{"id":"209c328d-3fe8-446a-b690-846d75ef5ed5","code":1,"type":"WORKING","exception":false,"complementarySituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","daytime":true},{"id":"489eab83-47ed-42ee-ab76-a1702bd13e79","code":9,"type":"VACATION","exception":false,"complementarySituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","daytime":true},{"id":"4be78b2c-cae5-46f8-93ae-850a1c85013a","code":11,"type":"WORKING","exception":true,"complementarySituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","daytime":true},{"id":"848ec42d-b2df-4c4d-94f4-151f381e4a54","code":12,"type":"WORKING","exception":false,"complementarySituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","daytime":true},{"id":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","code":17,"type":"ABSENCES","exception":true,"complementarySituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","daytime":true},{"id":"e75ba021-148e-4f36-bb3e-13e024cc1908","code":20,"type":"WORKING","exception":true,"complementarySituationId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","daytime":true},{"id":"2a2fae76-cf7e-498b-9107-0166f6e906ef","code":21,"type":"WORKING","exception":true,"complementarySituationId":"e75ba021-148e-4f36-bb3e-13e024cc1908","daytime":false},{"id":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","code":51,"type":"WORKING","exception":false,"complementarySituationId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","daytime":false},{"id":"950ba6cd-528d-42cc-aa07-9f15561735f9","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2023-01-30","workSituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","nightShiftWorkPremiumId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","invalidEventsSituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","vacationPaidLeaveSituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","dailyRestViolationSituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","workBreakViolationSituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","absenceSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","tardinessSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","intermediateLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","earlyLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","absenceSituationOnRelayScheduleHolidaysId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","percentageNextDay":true,"normalOvertimeSeparationLimit":0,"separateOvertimeAfterConvertingNightShiftHours":false,"overtimeBeforeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeEntryId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeDuringMealId":"e75ba021-148e-4f36-bb3e-13e024cc1908","leaveOvertimeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeAfterId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringRest":0,"overtimeDuringRestId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringCompensatedDays":0,"overtimeOnCompensatedDaysId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringHoliday":0,"overtimeDuringHolidayId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringDayOff":0,"overtimeDuringDayOffId":"2a2fae76-cf7e-498b-9107-0166f6e906ef"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"companyBranches":[{"key":"1_1","code":1}]},"currentUser":{"name":"admin@allanalves.com.br"}}}';
718
+
719
+ const context = new Context({ body: inputRule });
720
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
721
+
722
+ /************************* getClockingEvents *******************************************/
723
+ const clockingEvents = timeEvaluation.getClockingEvents(true);
724
+ expect(clockingEvents.length).toEqual(4);
725
+ expect(clockingEvents[0].clockingEventDateTime).toEqual(new Date("2025-04-22T07:09:00"));
726
+ expect(clockingEvents[0].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
727
+ expect(clockingEvents[0].clockingEventTime).toEqual(429);
728
+ expect(clockingEvents[0].functionCode).toEqual(0);
729
+ expect(clockingEvents[0].originType).toEqual(ClockingEventOriginType.TYPED);
730
+ expect(clockingEvents[0].useType).toEqual(ClockingUseType.CLOCKING);
731
+
732
+ expect(clockingEvents[1].clockingEventDateTime).toEqual(new Date("2025-04-22T11:57:00"));
733
+ expect(clockingEvents[1].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
734
+ expect(clockingEvents[1].clockingEventTime).toEqual(717);
735
+ expect(clockingEvents[1].functionCode).toEqual(0);
736
+ expect(clockingEvents[1].originType).toEqual(ClockingEventOriginType.TYPED);
737
+ expect(clockingEvents[1].useType).toEqual(ClockingUseType.CLOCKING);
738
+
739
+ expect(clockingEvents[2].clockingEventDateTime).toEqual(new Date("2025-04-22T13:32:00"));
740
+ expect(clockingEvents[2].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
741
+ expect(clockingEvents[2].clockingEventTime).toEqual(812);
742
+ expect(clockingEvents[2].functionCode).toEqual(0);
743
+ expect(clockingEvents[2].originType).toEqual(ClockingEventOriginType.TYPED);
744
+ expect(clockingEvents[2].useType).toEqual(ClockingUseType.CLOCKING);
745
+
746
+ expect(clockingEvents[3].clockingEventDateTime).toEqual(new Date("2025-04-22T20:00:00"));
747
+ expect(clockingEvents[3].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
748
+ expect(clockingEvents[3].clockingEventTime).toEqual(1200);
749
+ expect(clockingEvents[3].functionCode).toEqual(0);
750
+ expect(clockingEvents[3].originType).toEqual(ClockingEventOriginType.TYPED);
751
+ expect(clockingEvents[3].useType).toEqual(ClockingUseType.CLOCKING);
752
+
753
+ /************************* getOvertimeByRangeTime *******************************************/
754
+ // tem horas extras das 7:09 as 8:00 e das 18:00 as 20:00
755
+
756
+ // não traz horas extras
757
+ let startTime = 8 * 60;
758
+ let endTime = 18 * 60;
759
+ let overttime = timeEvaluation.getOvertimeByRangeTime(startTime, endTime);
760
+ expect(overttime.total).toEqual(0);
761
+
762
+ // traz todas as horas extras
763
+ startTime = 0;
764
+ endTime = 24 * 60;
765
+ overttime = timeEvaluation.getOvertimeByRangeTime(startTime, endTime);
766
+ expect(overttime.total).toEqual(171);
767
+
768
+ // traz hora extra somente antes das 8hrs
769
+ startTime = 5 * 60;
770
+ endTime = 8 * 60;
771
+ overttime = timeEvaluation.getOvertimeByRangeTime(startTime, endTime);
772
+ expect(overttime.total).toEqual(51);
773
+
774
+ // traz hora extra somente após as 18hrs
775
+ startTime = 18 * 60;
776
+ endTime = 22 * 60;
777
+ overttime = timeEvaluation.getOvertimeByRangeTime(startTime, endTime);
778
+ expect(overttime.total).toEqual(120);
779
+ });
780
+
781
+
782
+ it('getClockingEvents empty', () => {
783
+
784
+ const inputRule = '{"version":"1.0.0","input":{"batchId":"daa29341-f6c6-4499-a87b-1e1264680024","processType":"EVALUATE","startDate":"2025-06-22","endDate":"2025-06-22","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-22","workscheduleId":"0233ec11-01f2-49f1-bc33-eecbdecaafde","workscheduleWorkshiftId":"0233ec11-01f2-49f1-bc33-eecbdecaafde","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[],"clockingEvents":[],"intervals":[],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[],"snack":[],"work":[]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"0233ec11-01f2-49f1-bc33-eecbdecaafde","code":9999,"workload":0,"type":"RIGID","definitionType":"DSR","clockingRegisters":[],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
785
+
786
+ const context = new Context({ body: inputRule });
787
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
788
+
789
+ /************************* getClockingEvents *******************************************/
790
+ const clockingEvents = timeEvaluation.getClockingEvents(true);
791
+ expect(clockingEvents.length).toEqual(0);
792
+ });
793
+
794
+
795
+ it('getClockingEvents - generated', () => {
796
+
797
+ const inputRule = '{"version":"1.0.0","input":{"batchId":"89738d21-112f-4c9f-a5d3-05db02ca05ab","processType":"EVALUATE","startDate":"2025-04-22","endDate":"2025-04-22","contracts":[{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","holidays":[],"timeEvaluation":[{"date":"2025-04-22","workschedule":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workscheduleWorkshift":{"code":1,"workload":465,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":540,"toleranceBefore":540,"toleranceAfter":540,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":3,"clockingEvent":570,"toleranceBefore":570,"toleranceAfter":570,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":4,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":5,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":6,"clockingEvent":960,"toleranceBefore":960,"toleranceAfter":960,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":7,"clockingEvent":975,"toleranceBefore":975,"toleranceAfter":975,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"NOM_MANDATORY","usingType":"NON_MANDATORY_SNACK"},{"sequence":8,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":10,"mealOvertimeTolerance":11,"overtimeDailyTotalTolerance":12,"absenceDailyTotalTolerance":15,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},"workshift":{"code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"2022-08-01"},{"code":2,"baseDate":"2022-08-08"},{"code":3,"baseDate":"2022-08-15"},{"code":4,"baseDate":"1901-01-08"},{"code":4,"baseDate":"2022-08-22"},{"code":5,"baseDate":"2023-03-22"},{"code":5,"baseDate":"2022-08-29"},{"code":6,"baseDate":"2022-09-05"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-08-12"}]},"timeEvaluationSituations":[{"situation":1,"numberOfHours":460},{"situation":17,"numberOfHours":5},{"situation":20,"numberOfHours":171}],"clockingEvents":[{"clockingEventDate":"2025-04-22","clockingEventTime":429,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":717,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":812,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-04-22","clockingEventTime":1200,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-04-22T07:09:00","clockingEventEnd":"2025-04-22T08:00:00","type":"OVERTIME","subType":"ENTER","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T08:00:00","clockingEventEnd":"2025-04-22T09:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:00:00","clockingEventEnd":"2025-04-22T09:30:00","type":"SNACK","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T09:30:00","clockingEventEnd":"2025-04-22T11:57:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T11:57:00","clockingEventEnd":"2025-04-22T12:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T12:00:00","clockingEventEnd":"2025-04-22T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:30:00","clockingEventEnd":"2025-04-22T13:32:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T13:32:00","clockingEventEnd":"2025-04-22T16:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:00:00","clockingEventEnd":"2025-04-22T16:15:00","type":"SNACK","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T16:15:00","clockingEventEnd":"2025-04-22T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-04-22T18:00:00","clockingEventEnd":"2025-04-22T20:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2023-01-30_null"}],"employee":{"id":"92f38c8c-cdd3-461b-ad04-43711c48956b","code":2,"person":{"name":"Franky"},"hireDate":"2022-01-01","employmentRelationship":{"code":"1","contractType":"EMPLOYEE"},"employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":4},"histories":{"jobPositionHistories":[{"startDate":"2022-01-01","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2022-08-08","companyBranchKey":"1_1"}]},"schedules":{"bridges":[{"originDate":"2025-04-25","destinationDate":"2025-04-26"}]},"hourBankAccounts":[{"hourBank":{"code":5},"creationDate":"2024-01-01","extinctionDate":"2024-04-30"},{"hourBank":{"code":1},"creationDate":"2024-10-24"},{"hourBank":{"code":8},"creationDate":"2024-07-01"}]}],"database":{"situations":[{"id":"209c328d-3fe8-446a-b690-846d75ef5ed5","code":1,"type":"WORKING","exception":false,"complementarySituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","daytime":true},{"id":"489eab83-47ed-42ee-ab76-a1702bd13e79","code":9,"type":"VACATION","exception":false,"complementarySituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","daytime":true},{"id":"4be78b2c-cae5-46f8-93ae-850a1c85013a","code":11,"type":"WORKING","exception":true,"complementarySituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","daytime":true},{"id":"848ec42d-b2df-4c4d-94f4-151f381e4a54","code":12,"type":"WORKING","exception":false,"complementarySituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","daytime":true},{"id":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","code":17,"type":"ABSENCES","exception":true,"complementarySituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","daytime":true},{"id":"e75ba021-148e-4f36-bb3e-13e024cc1908","code":20,"type":"WORKING","exception":true,"complementarySituationId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","daytime":true},{"id":"2a2fae76-cf7e-498b-9107-0166f6e906ef","code":21,"type":"WORKING","exception":true,"complementarySituationId":"e75ba021-148e-4f36-bb3e-13e024cc1908","daytime":false},{"id":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","code":51,"type":"WORKING","exception":false,"complementarySituationId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","daytime":false},{"id":"950ba6cd-528d-42cc-aa07-9f15561735f9","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2023-01-30","workSituationId":"209c328d-3fe8-446a-b690-846d75ef5ed5","nightShiftWorkPremiumId":"aa1506e9-edd3-44bd-893c-56d00d3c6ca3","invalidEventsSituationId":"950ba6cd-528d-42cc-aa07-9f15561735f9","vacationPaidLeaveSituationId":"489eab83-47ed-42ee-ab76-a1702bd13e79","dailyRestViolationSituationId":"848ec42d-b2df-4c4d-94f4-151f381e4a54","workBreakViolationSituationId":"4be78b2c-cae5-46f8-93ae-850a1c85013a","absenceSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","tardinessSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","intermediateLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","earlyLeaveSituationId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","absenceSituationOnRelayScheduleHolidaysId":"74072aa1-e4b0-4f2a-8573-72b7ad9f1cf5","percentageNextDay":true,"normalOvertimeSeparationLimit":0,"separateOvertimeAfterConvertingNightShiftHours":false,"overtimeBeforeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeEntryId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeDuringMealId":"e75ba021-148e-4f36-bb3e-13e024cc1908","leaveOvertimeId":"e75ba021-148e-4f36-bb3e-13e024cc1908","overtimeAfterId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringRest":0,"overtimeDuringRestId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringCompensatedDays":0,"overtimeOnCompensatedDaysId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringHoliday":0,"overtimeDuringHolidayId":"2a2fae76-cf7e-498b-9107-0166f6e906ef","overtimeSeparationLimitDuringDayOff":0,"overtimeDuringDayOffId":"2a2fae76-cf7e-498b-9107-0166f6e906ef"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"companyBranches":[{"key":"1_1","code":1}]},"currentUser":{"name":"admin@allanalves.com.br"}}}';
798
+
799
+ const context = new Context({ body: inputRule });
800
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
801
+
802
+ const clockingEvents = timeEvaluation.getClockingEvents(false);
803
+ expect(clockingEvents.length).toEqual(4);
804
+ expect(clockingEvents[0].clockingEventDateTime).toEqual(new Date("2025-04-22T07:09:00"));
805
+ expect(clockingEvents[0].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
806
+ expect(clockingEvents[0].clockingEventTime).toEqual(429);
807
+ expect(clockingEvents[0].functionCode).toEqual(0);
808
+ expect(clockingEvents[0].originType).toEqual(ClockingEventOriginType.TYPED);
809
+ expect(clockingEvents[0].useType).toEqual(ClockingUseType.CLOCKING);
810
+
811
+ expect(clockingEvents[1].clockingEventDateTime).toEqual(new Date("2025-04-22T11:57:00"));
812
+ expect(clockingEvents[1].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
813
+ expect(clockingEvents[1].clockingEventTime).toEqual(717);
814
+ expect(clockingEvents[1].functionCode).toEqual(0);
815
+ expect(clockingEvents[1].originType).toEqual(ClockingEventOriginType.TYPED);
816
+ expect(clockingEvents[1].useType).toEqual(ClockingUseType.CLOCKING);
817
+
818
+ expect(clockingEvents[2].clockingEventDateTime).toEqual(new Date("2025-04-22T13:32:00"));
819
+ expect(clockingEvents[2].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
820
+ expect(clockingEvents[2].clockingEventTime).toEqual(812);
821
+ expect(clockingEvents[2].functionCode).toEqual(0);
822
+ expect(clockingEvents[2].originType).toEqual(ClockingEventOriginType.TYPED);
823
+ expect(clockingEvents[2].useType).toEqual(ClockingUseType.CLOCKING);
824
+
825
+ expect(clockingEvents[3].clockingEventDateTime).toEqual(new Date("2025-04-22T20:00:00"));
826
+ expect(clockingEvents[3].clockingEventDate).toEqual(new Date("2025-04-22T00:00:00"));
827
+ expect(clockingEvents[3].clockingEventTime).toEqual(1200);
828
+ expect(clockingEvents[3].functionCode).toEqual(0);
829
+ expect(clockingEvents[3].originType).toEqual(ClockingEventOriginType.TYPED);
830
+ expect(clockingEvents[3].useType).toEqual(ClockingUseType.CLOCKING);
831
+
832
+ });
833
+ })
834
+
835
+ describe("timeEvaluationHistory", () => {
836
+
837
+ it("timeEvaluationHistory", () => {
838
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
839
+
840
+ const context = new Context({ body: inputRule });
841
+
842
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
843
+
844
+ const timeEvaluationHistory = timeEvaluation.timeEvaluationHistory;
845
+
846
+ expect(timeEvaluationHistory).toBeDefined();
847
+ expect(timeEvaluationHistory.startDate).toEqual(new Date("2025-04-10"));
848
+ expect(timeEvaluationHistory.endDate).toBeNull();
849
+ expect(timeEvaluationHistory.type).toEqual(TimeEvaluationType.NORMAL);
850
+ expect(timeEvaluationHistory.situationDefinition[0].code).toEqual(3);
851
+ expect(timeEvaluationHistory.findSituationDefinitionByDate(new Date("2025-04-10"))?.code).toEqual(3);
852
+
853
+ });
854
+ });
855
+
856
+ describe("employmentRelationshipHistory", () => {
857
+
858
+ it("employmentRelationshipHistory", () => {
859
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
860
+
861
+ const context = new Context({ body: inputRule });
862
+
863
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
864
+
865
+ const employmentRelationshipHistory = timeEvaluation.employmentRelationshipHistory;
866
+
867
+ expect(employmentRelationshipHistory).toBeDefined();
868
+ expect(employmentRelationshipHistory.startDate).toEqual(new Date("2025-06-01"));
869
+ expect(employmentRelationshipHistory.endDate).toBeNull();
870
+ expect(employmentRelationshipHistory.employmentRelationship.code).toEqual("10.10.10");
871
+
872
+ });
873
+ });
874
+
875
+ describe("workscheduleChange", () => {
876
+
877
+ it("workscheduleChange", () => {
878
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f3ebbaa9-88f7-4ac1-824e-6bbe16ceaedb","processType":"EVALUATE","startDate":"2025-06-24","endDate":"2025-06-24","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-24","workscheduleId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":510},{"situationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","situationCode":16,"numberOfHours":240}],"clockingEvents":[{"clockingEventDate":"2025-06-24","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":810,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-24","clockingEventTime":1320,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-24T08:00:00","clockingEventEnd":"2025-06-24T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T12:00:00","clockingEventEnd":"2025-06-24T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T13:30:00","clockingEventEnd":"2025-06-24T18:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-24T18:00:00","clockingEventEnd":"2025-06-24T22:00:00","type":"OVERTIME","subType":"CHECKOUT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-24","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
879
+
880
+ const context = new Context({ body: inputRule });
881
+
882
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
883
+
884
+ const workscheduleChange = timeEvaluation.workscheduleChange;
885
+
886
+ expect(workscheduleChange).toBeDefined();
887
+ expect(workscheduleChange?.date).toEqual(new Date("2025-06-24"));
888
+ expect(workscheduleChange?.workschedule.code).toEqual(6);
889
+
890
+ });
891
+ });
892
+
893
+ describe("getSeparateHoursIntervalSubType", () => {
894
+
895
+ it("getSeparateHoursIntervalSubType", () => {
896
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f7940aae-c0ca-439f-b907-e729192dd3d1","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
897
+
898
+ const context = new Context({ body: inputRule });
899
+
900
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
901
+
902
+ const separeted = timeEvaluation.getSeparateHoursIntervalSubType(IntervalSubTypes.BEFORE_WORKING, false);
903
+
904
+ expect(separeted).toBeDefined();
905
+ expect(separeted.dailyHours).toEqual(0);
906
+ expect(separeted.nightlyHours).toEqual(180);
907
+ expect(separeted.total).toEqual(180);
908
+
909
+ });
910
+
911
+ it("getSeparateHoursIntervalSubType - tolerance", () => {
912
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f7940aae-c0ca-439f-b907-e729192dd3d1","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
913
+
914
+ const context = new Context({ body: inputRule });
915
+
916
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
917
+
918
+ const separeted = timeEvaluation.getSeparateHoursIntervalSubType(IntervalSubTypes.BEFORE_WORKING, true);
919
+
920
+ expect(separeted).toBeDefined();
921
+ expect(separeted.dailyHours).toEqual(0);
922
+ expect(separeted.nightlyHours).toEqual(180);
923
+ expect(separeted.total).toEqual(180);
924
+
925
+ });
926
+ });
927
+
928
+
929
+ describe("getCalculatedIntervalByIndex", () => {
930
+
931
+ it("getCalculatedIntervalByIndex", () => {
932
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f7940aae-c0ca-439f-b907-e729192dd3d1","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
933
+
934
+ const context = new Context({ body: inputRule });
935
+
936
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
937
+
938
+ const interval = timeEvaluation.getCalculatedIntervalByIndex(1);
939
+
940
+ expect(interval).toBeDefined();
941
+ expect(interval?.clockingEventStart).toEqual(new Date('2025-06-25T00:00:00Z'));
942
+ expect(interval?.clockingEventEnd).toEqual(new Date('2025-06-25T03:00:00Z'));
943
+ expect(interval?.type).toEqual(IntervalTypes.OVERTIME);
944
+
945
+ });
946
+
947
+
948
+ it("getCalculatedIntervalByIndex", () => {
949
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f7940aae-c0ca-439f-b907-e729192dd3d1","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
950
+
951
+ const context = new Context({ body: inputRule });
952
+
953
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
954
+
955
+ const interval = timeEvaluation.getCalculatedIntervalByIndex(6);
956
+
957
+ expect(interval).toBeDefined();
958
+ expect(interval?.clockingEventStart).toEqual(new Date('2025-06-25T15:55:00Z'));
959
+ expect(interval?.clockingEventEnd).toEqual(new Date('2025-06-25T18:00:00Z'));
960
+ expect(interval?.type).toEqual(IntervalTypes.ABSENCE);
961
+
962
+ });
963
+
964
+ it("getCalculatedIntervalByIndex", () => {
965
+ let inputRule = '{"version":"1.0.0","input":{"batchId":"f7940aae-c0ca-439f-b907-e729192dd3d1","processType":"EVALUATE","startDate":"2025-06-25","endDate":"2025-06-25","contracts":[{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","holidaysKeys":[],"timeEvaluation":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5","workscheduleWorkshiftId":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","workshiftId":"87db8a76-156c-4265-9989-39be06859135","timeEvaluationSituations":[{"situationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","situationCode":1,"numberOfHours":280},{"situationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","situationCode":103,"numberOfHours":105},{"situationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","situationCode":101,"numberOfHours":125},{"situationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","situationCode":66,"numberOfHours":180},{"situationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","situationCode":523,"numberOfHours":205}],"clockingEvents":[{"clockingEventDate":"2025-06-25","clockingEventTime":0,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":180,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":480,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":720,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":915,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"},{"clockingEventDate":"2025-06-25","clockingEventTime":955,"functionCode":0,"originType":"TYPED","useType":"CLOCKING"}],"intervals":[{"clockingEventStart":"2025-06-25T00:00:00","clockingEventEnd":"2025-06-25T03:00:00","type":"OVERTIME","subType":"BEFORE_WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":true,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T08:00:00","clockingEventEnd":"2025-06-25T12:00:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T12:00:00","clockingEventEnd":"2025-06-25T13:30:00","type":"MEAL","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T13:30:00","clockingEventEnd":"2025-06-25T15:15:00","type":"ABSENCE","subType":"DELAY","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":true},{"clockingEventStart":"2025-06-25T15:15:00","clockingEventEnd":"2025-06-25T15:55:00","type":"WORKING","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":1},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false},{"clockingEventStart":"2025-06-25T15:55:00","clockingEventEnd":"2025-06-25T18:00:00","type":"ABSENCE","subType":"EARLY_EXIT","situationCode":0,"situationReasonCode":0,"justifiedSituationCode":0,"justifiedDays":0,"positionWorkingPart":{"workingHours":1,"part":2},"isNightly":false,"isOvertimeAuthorized":false,"isTolerancePeriod":false,"inClockingEventTolerance":false}],"situationDefinitionKey":"3_2025-01-01_null","estimatedHours":{"meal":[{"dailyHours":90,"nightlyHours":0}],"snack":[],"work":[{"dailyHours":240,"nightlyHours":0},{"dailyHours":270,"nightlyHours":0}]},"syndicateKey":"1","missingClockingEvent":false}],"employee":{"id":"943a66fb-3636-456f-b7ba-e3e1526e8892","code":1,"person":{"name":"Eric Blauerstein"},"hireDate":"2020-01-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751","employer":{"code":1},"jobPositionCode":"2","companyBranchCode":1,"workshiftCode":1,"workshiftGroupCode":1},"histories":{"jobPositionHistories":[{"startDate":"2025-04-10","jobPositionKey":"1_2"}],"companyBranchHistories":[{"startDate":"2020-01-01","companyBranchKey":"1_1"}],"employmentRelationshipHistories":[{"startDate":"2020-01-01","endDate":"2025-05-31","employmentRelationshipId":"9f051554-763f-4d7a-a688-2ce8922f83a8"},{"startDate":"2025-06-01","employmentRelationshipId":"bda638aa-a392-4900-a388-58dd80b2d751"}],"timeEvaluationHistories":[{"startDate":"2025-04-10","type":"NORMAL","situationDefinitionKey":["3_2025-01-01_null"]}],"workshiftHistories":[{"startDate":"2020-01-01","workshiftId":"87db8a76-156c-4265-9989-39be06859135","workshiftGroupsCode":1}],"leaveHistories":[{"startDate":"2025-06-04","endDate":"2025-06-08","startTime":0,"endTime":0,"situationId":"07a513ab-a523-492b-af98-c04884241014"},{"startDate":"2025-06-13","endDate":"2025-06-13","startTime":0,"endTime":0,"situationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9"},{"startDate":"2025-06-15","endDate":"2025-06-16","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":480,"endTime":600,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-18","endDate":"2025-06-18","startTime":900,"endTime":1080,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"},{"startDate":"2025-06-20","endDate":"2025-06-23","startTime":0,"endTime":0,"situationId":"bee787b7-94ec-477f-b2fd-3403007e28fb"}]},"schedules":{"bridges":[{"originDate":"2025-06-08","destinationDate":"2025-06-09"},{"originDate":"2025-06-09","destinationDate":"2025-06-10"}],"workscheduleChanges":[{"date":"2025-06-25","workscheduleId":"2ea56497-6df6-489d-94b5-3baa3ac166d5"},{"date":"2025-05-19","workscheduleId":"5e6678d0-e63a-4fca-852c-7f481293487a"}],"workshiftChanges":[{"startDate":"2025-05-02","endDate":"2025-05-03","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":1},{"startDate":"2025-05-20","endDate":"2025-05-21","workshiftId":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","workshiftGroupsCode":7}]},"hourBankAccounts":[{"hourBank":{"code":1},"creationDate":"2025-04-01","extinctionDate":"2025-04-11"},{"hourBank":{"code":1},"creationDate":"2025-05-01"}]}],"database":{"situations":[{"id":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","code":1,"type":"WORKING","exception":false,"complementarySituationId":"1ff19942-ace7-45ea-b886-861e75471795","daytime":true},{"id":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","code":2,"type":"VACATION","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"bee787b7-94ec-477f-b2fd-3403007e28fb","code":4,"type":"LABORACCIDENT","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"21ddf37a-7388-488c-afe3-53ce9868dbb9","code":5,"type":"MILITARYSERVICE","exception":false,"complementarySituationId":"4313de66-ec62-4bbf-b469-fe87546fc5c3","daytime":true},{"id":"07a513ab-a523-492b-af98-c04884241014","code":10,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"bb5e3c0e-642d-481d-9726-7985a2e559aa","daytime":true},{"id":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","code":15,"type":"ABSENCES","exception":true,"complementarySituationId":"61963c0b-213c-4fbc-9329-6afadc971b34","daytime":true},{"id":"77c72619-b2a8-4777-bdfb-ff63a0283400","code":16,"type":"OVERTIME","exception":true,"complementarySituationId":"ae0b0bc6-2178-4876-91a7-c468360070ec","daytime":true},{"id":"bb5e3c0e-642d-481d-9726-7985a2e559aa","code":60,"type":"PAIDLEAVE","exception":false,"complementarySituationId":"07a513ab-a523-492b-af98-c04884241014","daytime":false},{"id":"61963c0b-213c-4fbc-9329-6afadc971b34","code":65,"type":"ABSENCES","exception":true,"complementarySituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","daytime":false},{"id":"ae0b0bc6-2178-4876-91a7-c468360070ec","code":66,"type":"OVERTIME","exception":true,"complementarySituationId":"77c72619-b2a8-4777-bdfb-ff63a0283400","daytime":false},{"id":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","code":101,"type":"ABSENCES","exception":true,"complementarySituationId":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","daytime":true},{"id":"71d9ba6f-8a49-4e46-8251-67b8626fbeeb","code":102,"type":"ABSENCES","exception":true,"complementarySituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","daytime":false},{"id":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","code":103,"type":"ABSENCES","exception":true,"complementarySituationId":"f8e7a234-6d85-499b-836e-9f5b78884be7","daytime":true},{"id":"f8e7a234-6d85-499b-836e-9f5b78884be7","code":104,"type":"ABSENCES","exception":true,"complementarySituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","daytime":false},{"id":"e6077a7c-645b-4bc6-8698-402c68467ce9","code":105,"type":"ABSENCES","exception":true,"complementarySituationId":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","daytime":true},{"id":"37d56ac4-8cd6-4a3d-b660-1c53890dca1f","code":106,"type":"ABSENCES","exception":true,"complementarySituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","daytime":false},{"id":"1ff19942-ace7-45ea-b886-861e75471795","code":501,"type":"WORKING","exception":false,"complementarySituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","daytime":false},{"id":"ef6bd93e-53da-4b41-b532-d85006b9e607","code":502,"type":"OTHERS","exception":true,"complementarySituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","daytime":false},{"id":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","code":503,"type":"WORKING","exception":true,"complementarySituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","daytime":true},{"id":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","code":504,"type":"ABSENCES","exception":true,"complementarySituationId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","daytime":true},{"id":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","code":505,"type":"OVERTIME","exception":false,"complementarySituationId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","daytime":true},{"id":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","code":506,"type":"OVERTIME","exception":false,"complementarySituationId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","daytime":true},{"id":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","code":507,"type":"OVERTIME","exception":false,"complementarySituationId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","daytime":true},{"id":"803645a7-5f43-49b1-bafa-70fa910733d6","code":508,"type":"OVERTIME","exception":false,"complementarySituationId":"803645a7-5f43-49b1-bafa-70fa910733d6","daytime":true},{"id":"60030488-fe09-423a-9b1f-248d366430b4","code":509,"type":"OVERTIME","exception":false,"complementarySituationId":"60030488-fe09-423a-9b1f-248d366430b4","daytime":true},{"id":"3f61cff5-18d7-4042-b44f-791a4c308f2c","code":510,"type":"OVERTIME","exception":false,"complementarySituationId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","daytime":true},{"id":"b3d37da3-21bd-4902-9358-0bbc4721b327","code":511,"type":"OVERTIME","exception":false,"complementarySituationId":"b3d37da3-21bd-4902-9358-0bbc4721b327","daytime":true},{"id":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","code":512,"type":"OVERTIME","exception":false,"complementarySituationId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","daytime":true},{"id":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","code":513,"type":"OVERTIME","exception":false,"complementarySituationId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","daytime":true},{"id":"c705ea33-88b4-44dc-b755-fe2ae6fff151","code":514,"type":"OVERTIME","exception":false,"complementarySituationId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","daytime":true},{"id":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","code":515,"type":"OVERTIME","exception":false,"complementarySituationId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","daytime":true},{"id":"e5b79a9d-5093-4b68-aa0d-34cac5536053","code":516,"type":"OVERTIME","exception":false,"complementarySituationId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","daytime":true},{"id":"5f728686-409a-44c8-8b7e-e848e598de60","code":517,"type":"OVERTIME","exception":false,"complementarySituationId":"5f728686-409a-44c8-8b7e-e848e598de60","daytime":true},{"id":"a5da8e1f-612c-4903-865a-de1b861ad98c","code":518,"type":"OVERTIME","exception":false,"complementarySituationId":"a5da8e1f-612c-4903-865a-de1b861ad98c","daytime":true},{"id":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","code":519,"type":"OVERTIME","exception":false,"complementarySituationId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","daytime":true},{"id":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","code":520,"type":"OVERTIME","exception":false,"complementarySituationId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","daytime":true},{"id":"94dec6d5-e769-4668-9b52-8896452b5e39","code":521,"type":"OVERTIME","exception":false,"complementarySituationId":"94dec6d5-e769-4668-9b52-8896452b5e39","daytime":true},{"id":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","code":522,"type":"OVERTIME","exception":false,"complementarySituationId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c","daytime":true},{"id":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","code":523,"type":"OVERTIME","exception":true,"complementarySituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","daytime":false},{"id":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","code":524,"type":"OVERTIME","exception":false,"complementarySituationId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","daytime":false},{"id":"4313de66-ec62-4bbf-b469-fe87546fc5c3","code":750,"type":"VACATION","exception":false,"complementarySituationId":"21ddf37a-7388-488c-afe3-53ce9868dbb9","daytime":false},{"id":"c5e72905-07fb-4baf-929f-847d96fe0a05","code":999,"type":"TIMEEVALUATIONSITUATION","exception":true,"complementarySituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","daytime":true}],"holidays":[],"timeEvaluationSituationDefinitions":[{"code":3,"startDate":"2025-01-01","workSituationId":"ceeacf87-0df3-4263-a8fa-d66d4bd3f4b0","nightShiftWorkPremiumId":"1ff19942-ace7-45ea-b886-861e75471795","invalidEventsSituationId":"c5e72905-07fb-4baf-929f-847d96fe0a05","vacationPaidLeaveSituationId":"d609b9e3-25f3-419e-be4a-63d7cffdb5c1","dailyRestViolationSituationId":"ef6bd93e-53da-4b41-b532-d85006b9e607","workBreakViolationSituationId":"ebaf5a44-bed7-4646-96fa-7582b496ab0a","absenceSituationId":"814b36c4-aabf-4639-b0d7-884ba7cf17bb","tardinessSituationId":"ccb72e89-c9d6-4ea6-960d-ed99e573d77f","intermediateLeaveSituationId":"e6077a7c-645b-4bc6-8698-402c68467ce9","earlyLeaveSituationId":"eab898c7-87f8-4b6a-b67e-f62bba5c1c14","absenceSituationOnRelayScheduleHolidaysId":"65d5b620-5889-4819-b7d3-c17ebffd1ac0","percentageNextDay":false,"normalOvertimeSeparationLimit":90,"separateOvertimeAfterConvertingNightShiftHours":false,"unauthorizedOvertimeId":"77c72619-b2a8-4777-bdfb-ff63a0283400","overtimeBeforeId":"b809cc96-bcdb-4ca8-b2be-f71a2d014c30","overtimeEntryId":"3d6f1c23-bd6d-4d97-a6f6-0bce25703a1b","overtimeDuringMealId":"60030488-fe09-423a-9b1f-248d366430b4","leaveOvertimeId":"b3d37da3-21bd-4902-9358-0bbc4721b327","overtimeAfterId":"48f5bc52-4fdf-4479-9a4c-7c2d70d89a2b","overtimeSeparationLimitDuringRest":240,"overtimeDuringRestId":"c3df3a50-6ac4-4fea-b166-66ffd90a89c5","overtimeSeparationLimitDuringCompensatedDays":240,"overtimeOnCompensatedDaysId":"5f728686-409a-44c8-8b7e-e848e598de60","overtimeSeparationLimitDuringHoliday":240,"overtimeDuringHolidayId":"90b4e18c-80fe-4ccb-86eb-e59f9168115c","overtimeSeparationLimitDuringDayOff":240,"overtimeDuringDayOffId":"94dec6d5-e769-4668-9b52-8896452b5e39","overtimeSituationOnRelayScheduleHolidaysId":"3a01f30a-c58f-4a7d-af4e-5f6c08951e9d","nightShiftOvertimePremiumSituationId":"ae7950c4-2b50-4c95-93ea-e6e8e924e776","overtimeSeparationBeforeId":"804a6ecc-df01-42b9-ad37-ed68de3a8a0d","overtimeSeparationEntryId":"803645a7-5f43-49b1-bafa-70fa910733d6","overtimeSeparationDuringMealId":"3f61cff5-18d7-4042-b44f-791a4c308f2c","overtimeSeparationLeaveId":"1d62f6c8-b128-4c8d-a63b-e9e056a7b07e","overtimeSeparationAfterId":"c705ea33-88b4-44dc-b755-fe2ae6fff151","overtimeSeparationDuringRestId":"e5b79a9d-5093-4b68-aa0d-34cac5536053","overtimeSeparationDuringCompensatedDaysId":"a5da8e1f-612c-4903-865a-de1b861ad98c","overtimeSeparationDuringHolidayId":"97fa2f0e-bac1-4cbe-b1a3-83c43a74072b","overtimeSeparationDuringDayOffId":"18d6ae61-9b3e-43ce-8fb3-82cf9d05a45c"}],"jobPositions":[{"key":"1_2","code":2,"structureCode":1}],"workschedules":[{"id":"2ea56497-6df6-489d-94b5-3baa3ac166d5","code":6,"workload":510,"type":"FLEXIBLE_AT_INTERVALS","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":810,"toleranceAfter":810,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"FLEXIBLE","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"dc3dd08e-f0b6-4569-8a5b-83e55b5b9ce3","code":1,"workload":510,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":470,"toleranceAfter":485,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":715,"toleranceAfter":730,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":3,"clockingEvent":810,"toleranceBefore":800,"toleranceAfter":815,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1075,"toleranceAfter":1090,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}},{"id":"5e6678d0-e63a-4fca-852c-7f481293487a","code":344,"workload":540,"type":"RIGID","definitionType":"NORMAL","clockingRegisters":[{"sequence":1,"clockingEvent":480,"toleranceBefore":480,"toleranceAfter":480,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"},{"sequence":2,"clockingEvent":720,"toleranceBefore":720,"toleranceAfter":720,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":3,"clockingEvent":780,"toleranceBefore":780,"toleranceAfter":780,"mobilityBefore":0,"mobilityAfter":0,"intervalType":"RIGID","clockingEventScheduleType":"GENERATED","usingType":"GENERATED_PRE_ASSIGNED_MEAL"},{"sequence":4,"clockingEvent":1080,"toleranceBefore":1080,"toleranceAfter":1080,"mobilityBefore":0,"mobilityAfter":0,"clockingEventScheduleType":"MANDATORY","usingType":"MANDATORY_ENTRY_OR_EXIT"}],"clockingEvent":{"workStartEndOvertimeTolerance":0,"mealOvertimeTolerance":0,"overtimeDailyTotalTolerance":0,"absenceDailyTotalTolerance":0,"workStartEndAbsenceTolerance":0,"mealAbsenceTolerance":0}}],"workshifts":[{"id":"87db8a76-156c-4265-9989-39be06859135","code":1,"type":"PERMANENT","rotationWorkShift":true,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"GENERAL","workshiftGroups":[{"code":1,"baseDate":"1998-12-28"},{"code":2,"baseDate":"2001-01-20"},{"code":8,"baseDate":"1901-01-07"}],"workshiftDetails":[{"holidayGroup":{"code":0},"holidayType":"BRANCH","startDate":"2022-10-01"}]},{"id":"0672b0da-0406-4fbf-a4ac-9c2631c2b5cd","code":9,"type":"PERMANENT","rotationWorkShift":false,"extensionNightHours":true,"dsrMinutes":440,"weekMinutes":2640,"monthMinutes":13200,"timeShiftType":"THIRDSHIFT","workshiftGroups":[{"code":1,"baseDate":"2001-01-01"},{"code":2,"baseDate":"2001-01-02"},{"code":3,"baseDate":"2001-01-03"},{"code":4,"baseDate":"2001-01-04"},{"code":5,"baseDate":"2001-01-05"},{"code":6,"baseDate":"2001-01-06"},{"code":7,"baseDate":"2001-01-07"},{"code":8,"baseDate":"2001-01-08"}],"workshiftDetails":[{"holidayGroup":{"code":2},"holidayType":"OWN","startDate":"2022-10-01"}]}],"companyBranches":[{"key":"1_1","code":1}],"syndicates":[{"key":"1","code":1,"nightStartHour":1320,"nightEndHour":300,"minimumInterval4to6Hours":0,"minimumInterval6Hours":0,"minimumWorkDuration6Hours":361}],"employmentRelationships":[{"id":"bda638aa-a392-4900-a388-58dd80b2d751","code":"10.10.10","contractType":"EMPLOYEE"},{"id":"9f051554-763f-4d7a-a688-2ce8922f83a8","code":"2.2.2","contractType":"APRENTICE"}]},"currentUser":{"userName":"admin@matiello.com.br"}}}';
966
+
967
+ const context = new Context({ body: inputRule });
968
+
969
+ const timeEvaluation = context.contracts[0].timeEvaluation[0];
970
+
971
+ let interval = timeEvaluation.getCalculatedIntervalByIndex(0);
972
+ expect(interval).toBeUndefined();
973
+
974
+ interval = timeEvaluation.getCalculatedIntervalByIndex(10);
975
+ expect(interval).toBeUndefined();
976
+
977
+ });
978
+
979
+ });
980
+
981
+ describe("TimeEvaluation - compensations", () => {
982
+ it("Deve retornar todas as compensações válidas para a data de apuração", () => {
983
+ const validCompensation = CompensationBuilder.default()
984
+ .withStartDate(new Date("2025-06-30"))
985
+ .withEndDate(new Date("2025-06-30"))
986
+ .withIntervalStart(480)
987
+ .withIntervalEnd(1020)
988
+ .withCompensationType(CompensationType.ABSENCE_FOR_COMPENSATION)
989
+ .withPeriodType(PeriodType.ANY_PART_OF_WORKDAY)
990
+ .withNumberOfHours(8)
991
+ .withSituationId("123")
992
+ .withWorkscheduleId("workschedule-456")
993
+ .build();
994
+
995
+ const schedules = SchedulesBuilder.builder()
996
+ .withCompensations([validCompensation])
997
+ .build();
998
+
999
+ const timeEvaluation = TimeEvaluationBuilder.builder()
1000
+ .withDate(new Date("2025-06-30"))
1001
+ .withSchedule(schedules)
1002
+ .build();
1003
+
1004
+ const result = timeEvaluation.compensations;
1005
+ expect(result).toHaveLength(1);
1006
+ expect(result[0].startDate).toStrictEqual(validCompensation.startDate);
1007
+ expect(result[0].endDate).toStrictEqual(validCompensation.endDate);
1008
+ expect(result[0].intervalStart).toBe(validCompensation.intervalStart);
1009
+ expect(result[0].intervalEnd).toBe(validCompensation.intervalEnd);
1010
+ expect(result[0].compensationType).toBe(validCompensation.compensationType);
1011
+ expect(result[0].periodType).toBe(validCompensation.periodType);
1012
+ expect(result[0].numberOfHours).toBe(validCompensation.numberOfHours);
1013
+ });
1014
+
1015
+ it("Deve retornar uma lista vazia se não houver compensações", () => {
1016
+ const schedules = SchedulesBuilder.builder()
1017
+ .withCompensations([])
1018
+ .build();
1019
+
1020
+ const timeEvaluation = TimeEvaluationBuilder.builder()
1021
+ .withDate(new Date("2025-06-01"))
1022
+ .withSchedule(schedules)
1023
+ .build();
1024
+
1025
+ const result = timeEvaluation.compensations;
1026
+ expect(result).toHaveLength(0);
1027
+ });
1028
+
1029
+ it("Deve retornar uma lista vazia se nenhuma compensação for válida para a data de apuração", () => {
1030
+ const invalidCompensation = CompensationBuilder.default()
1031
+ .withStartDate(new Date("2024-01-01"))
1032
+ .withEndDate(new Date("2024-12-31"))
1033
+ .withIntervalStart(480)
1034
+ .withIntervalEnd(1020)
1035
+ .withCompensationType(CompensationType.ABSENCE_FOR_COMPENSATION)
1036
+ .withPeriodType(PeriodType.ANY_PART_OF_WORKDAY)
1037
+ .withNumberOfHours(8)
1038
+ .withSituationId("situation-123")
1039
+ .withWorkscheduleId("workschedule-456")
1040
+ .build();
1041
+
1042
+ const schedules = SchedulesBuilder.builder()
1043
+ .withCompensations([invalidCompensation])
1044
+ .build();
1045
+
1046
+ const timeEvaluation = TimeEvaluationBuilder.builder()
1047
+ .withDate(new Date("2025-06-01"))
1048
+ .withSchedule(schedules)
1049
+ .build();
1050
+
1051
+ const result = timeEvaluation.compensations.filter(comp =>
1052
+ comp.startDate <= timeEvaluation.date &&
1053
+ (!comp.endDate || comp.endDate >= timeEvaluation.date)
1054
+ );
1055
+ expect(result).toHaveLength(0);
1056
+ });
1057
+ });