@socialgouv/modeles-social 4.60.2 → 4.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,45 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.63.0](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.62.0...v4.63.0) (2021-12-22)
7
+
8
+ **Note:** Version bump only for package @socialgouv/modeles-social
9
+
10
+
11
+
12
+
13
+
14
+ # [4.62.0](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.61.0...v4.62.0) (2021-12-21)
15
+
16
+ **Note:** Version bump only for package @socialgouv/modeles-social
17
+
18
+
19
+
20
+
21
+
22
+ # [4.61.0](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.60.3...v4.61.0) (2021-12-20)
23
+
24
+
25
+ ### Features
26
+
27
+ * **simulator:** add CC 1516 (Organismes de formation) ([#4056](https://github.com/SocialGouv/code-du-travail-numerique/issues/4056)) ([3d6feec](https://github.com/SocialGouv/code-du-travail-numerique/commit/3d6feec0acdcdad973daa469d169e721fe661d68))
28
+ * **simulator:** add CC 1606 (Bricolage) ([#4061](https://github.com/SocialGouv/code-du-travail-numerique/issues/4061)) ([c440440](https://github.com/SocialGouv/code-du-travail-numerique/commit/c44044037b72335f2565a134d2b97b34fad3004a))
29
+ * **simulator:** add CC 2420 (Bâtiment cadres) ([#4057](https://github.com/SocialGouv/code-du-travail-numerique/issues/4057)) ([ac2d827](https://github.com/SocialGouv/code-du-travail-numerique/commit/ac2d8276b9c588f219e29214a193ef1ae771720b))
30
+ * **simulator:** add CC 2511 (Sport) ([#4058](https://github.com/SocialGouv/code-du-travail-numerique/issues/4058)) ([1c9838e](https://github.com/SocialGouv/code-du-travail-numerique/commit/1c9838efcbc2678398716df63f57a30af725dcd3))
31
+ * **simulator:** add CC 2614 (Travaux publics) ([#4059](https://github.com/SocialGouv/code-du-travail-numerique/issues/4059)) ([2023c7c](https://github.com/SocialGouv/code-du-travail-numerique/commit/2023c7c87bb3ff3f122a6903d068245a2c2acb9a))
32
+
33
+
34
+
35
+
36
+
37
+ ## [4.60.3](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.60.2...v4.60.3) (2021-12-07)
38
+
39
+ **Note:** Version bump only for package @socialgouv/modeles-social
40
+
41
+
42
+
43
+
44
+
6
45
  ## [4.60.2](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.60.1...v4.60.2) (2021-12-06)
7
46
 
8
47
  **Note:** Version bump only for package @socialgouv/modeles-social
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@socialgouv/modeles-social",
3
- "version": "4.60.2",
3
+ "version": "4.63.0",
4
4
  "description": "Les règles publicodes des simulateurs de code du travail numérique",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -40,5 +40,5 @@
40
40
  "yarn lint --fix"
41
41
  ]
42
42
  },
43
- "gitHead": "fc29530ad8acaa587b2cf2b01e2c0386d8368166"
43
+ "gitHead": "115a08a536a56aeb72b3b909c79910b501ff8009"
44
44
  }
@@ -0,0 +1,97 @@
1
+ import Engine from "publicodes";
2
+
3
+ import { mergeModels } from "../../../internal/merger";
4
+ import { getReferences } from "../../../utils/GetReferences";
5
+ import {
6
+ DepartRetraiteReferences,
7
+ MiseRetraiteReferences,
8
+ } from "../../common/legal-references";
9
+
10
+ const engine = new Engine(mergeModels());
11
+
12
+ const CommonReferences = [
13
+ {
14
+ article: "Article 9.1",
15
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005775560/?idConteneur=KALICONT000005635435",
16
+ },
17
+ ];
18
+
19
+ const MiseRetraiteCcReferences = [
20
+ ...MiseRetraiteReferences,
21
+ ...CommonReferences,
22
+ ];
23
+
24
+ describe("Convention collective 1702", () => {
25
+ describe("Pour un départ à la retraite", () => {
26
+ test.each`
27
+ seniority | expectedResult
28
+ ${5} | ${0}
29
+ ${6} | ${1}
30
+ ${24} | ${2}
31
+ ${25} | ${2}
32
+ `(
33
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
34
+ ({ seniority, expectedResult }) => {
35
+ const situation = engine.setSituation({
36
+ "contrat salarié . ancienneté": seniority,
37
+ "contrat salarié . convention collective": "'IDCC1516'",
38
+ "contrat salarié . mise à la retraite": "non",
39
+ "contrat salarié . travailleur handicapé": "non",
40
+ });
41
+ const result = situation.evaluate(
42
+ "contrat salarié . préavis de retraite"
43
+ );
44
+ const references = getReferences(situation);
45
+
46
+ expect(result.missingVariables).toEqual({});
47
+ expect(result.nodeValue).toEqual(expectedResult);
48
+ expect(result.unit?.numerators).toEqual(["mois"]);
49
+ expect(references).toHaveLength(DepartRetraiteReferences.length);
50
+ expect(references).toEqual(
51
+ expect.arrayContaining(DepartRetraiteReferences)
52
+ );
53
+ }
54
+ );
55
+ });
56
+
57
+ describe("Pour une mise à la retraite", () => {
58
+ test.each`
59
+ seniority | category | expectedResult
60
+ ${5} | ${"Employés"} | ${1}
61
+ ${6} | ${"Employés"} | ${1}
62
+ ${24} | ${"Employés"} | ${2}
63
+ ${25} | ${"Employés"} | ${2}
64
+ ${5} | ${"Techniciens"} | ${2}
65
+ ${6} | ${"Techniciens"} | ${2}
66
+ ${24} | ${"Techniciens"} | ${2}
67
+ ${25} | ${"Techniciens"} | ${2}
68
+ ${5} | ${"Cadres"} | ${3}
69
+ ${6} | ${"Cadres"} | ${3}
70
+ ${24} | ${"Cadres"} | ${3}
71
+ ${25} | ${"Cadres"} | ${3}
72
+ `(
73
+ "Pour un $category possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
74
+ ({ seniority, category, expectedResult }) => {
75
+ const situation = engine.setSituation({
76
+ "contrat salarié . ancienneté": seniority,
77
+ "contrat salarié . convention collective": "'IDCC1516'",
78
+ "contrat salarié . convention collective . organismes de formation . catégorie professionnelle": `'${category}'`,
79
+ "contrat salarié . mise à la retraite": "oui",
80
+ "contrat salarié . travailleur handicapé": "non",
81
+ });
82
+ const result = situation.evaluate(
83
+ "contrat salarié . préavis de retraite"
84
+ );
85
+ const references = getReferences(situation);
86
+
87
+ expect(result.nodeValue).toEqual(expectedResult);
88
+ expect(result.unit?.numerators).toEqual(["mois"]);
89
+ expect(result.missingVariables).toEqual({});
90
+ expect(references).toHaveLength(MiseRetraiteCcReferences.length);
91
+ expect(references).toEqual(
92
+ expect.arrayContaining(MiseRetraiteCcReferences)
93
+ );
94
+ }
95
+ );
96
+ });
97
+ });
@@ -0,0 +1,142 @@
1
+ import Engine from "publicodes";
2
+
3
+ import { mergeModels } from "../../../internal/merger";
4
+ import { getReferences } from "../../../utils/GetReferences";
5
+ import {
6
+ DepartRetraiteReferences,
7
+ MiseRetraiteReferences,
8
+ } from "../../common/legal-references";
9
+
10
+ const engine = new Engine(mergeModels());
11
+
12
+ const DepartReferences = [
13
+ {
14
+ article: "Article 9.3.1",
15
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870737/?idConteneur=KALICONT000005635871",
16
+ },
17
+ ];
18
+
19
+ const DepartRetraiteCcReferences = [
20
+ ...DepartRetraiteReferences,
21
+ ...DepartReferences,
22
+ ];
23
+
24
+ const MiseRetraiteEmployesReferences = [
25
+ {
26
+ article: "Article 9.2.1",
27
+ url: "https://www.legifrance.gouv.fr/conv_coll/article/KALIARTI000005870734?idConteneur=KALICONT000005635871",
28
+ },
29
+ ];
30
+
31
+ const MiseRetraiteEmployesCcReferences = [
32
+ ...MiseRetraiteReferences,
33
+ ...MiseRetraiteEmployesReferences,
34
+ ];
35
+
36
+ const MiseRetraiteAgentsReferences = [
37
+ {
38
+ article: `Annexe "agents de maîtrise", article 9`,
39
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870772/?idConteneur=KALICONT000005635871",
40
+ },
41
+ ];
42
+
43
+ const MiseRetraiteAgentsCcReferences = [
44
+ ...MiseRetraiteReferences,
45
+ ...MiseRetraiteAgentsReferences,
46
+ ];
47
+
48
+ const MiseRetraiteCadresReferences = [
49
+ {
50
+ article: `Annexe "cadres", article 9`,
51
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870787/?idConteneur=KALICONT000005635871",
52
+ },
53
+ ];
54
+
55
+ const MiseRetraiteCadresCcReferences = [
56
+ ...MiseRetraiteReferences,
57
+ ...MiseRetraiteCadresReferences,
58
+ ];
59
+
60
+ describe("Convention collective 1606", () => {
61
+ describe("Pour un départ à la retraite", () => {
62
+ test.each`
63
+ seniority | expectedResult
64
+ ${5} | ${1}
65
+ ${6} | ${1}
66
+ ${24} | ${1}
67
+ ${25} | ${2}
68
+ `(
69
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
70
+ ({ seniority, expectedResult }) => {
71
+ const situation = engine.setSituation({
72
+ "contrat salarié . ancienneté": seniority,
73
+ "contrat salarié . convention collective": "'IDCC1606'",
74
+ "contrat salarié . mise à la retraite": "non",
75
+ "contrat salarié . travailleur handicapé": "non",
76
+ });
77
+ const result = situation.evaluate(
78
+ "contrat salarié . préavis de retraite"
79
+ );
80
+ const references = getReferences(situation);
81
+
82
+ expect(result.nodeValue).toEqual(expectedResult);
83
+ expect(result.unit?.numerators).toEqual(["mois"]);
84
+ expect(result.missingVariables).toEqual({});
85
+ expect(references).toHaveLength(DepartRetraiteCcReferences.length);
86
+ expect(references).toEqual(
87
+ expect.arrayContaining(DepartRetraiteCcReferences)
88
+ );
89
+ }
90
+ );
91
+ });
92
+
93
+ describe("Vérification des mises à la retraite et des références juridiques", () => {
94
+ test.each`
95
+ seniority | category | expectedResult | expectedUnit | expectedReferences
96
+ ${0} | ${"Employés"} | ${0} | ${"mois"} | ${MiseRetraiteEmployesCcReferences}
97
+ ${5} | ${"Employés"} | ${15} | ${"jour"} | ${MiseRetraiteEmployesCcReferences}
98
+ ${6} | ${"Employés"} | ${1} | ${"mois"} | ${MiseRetraiteEmployesCcReferences}
99
+ ${24} | ${"Employés"} | ${2} | ${"mois"} | ${MiseRetraiteEmployesCcReferences}
100
+ ${25} | ${"Employés"} | ${2} | ${"mois"} | ${MiseRetraiteEmployesCcReferences}
101
+ ${1} | ${"Agents de maîtrise"} | ${0} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
102
+ ${5} | ${"Agents de maîtrise"} | ${1} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
103
+ ${6} | ${"Agents de maîtrise"} | ${1} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
104
+ ${7} | ${"Agents de maîtrise"} | ${2} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
105
+ ${24} | ${"Agents de maîtrise"} | ${2} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
106
+ ${25} | ${"Agents de maîtrise"} | ${2} | ${"mois"} | ${MiseRetraiteAgentsCcReferences}
107
+ ${2} | ${"Cadres"} | ${0} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
108
+ ${5} | ${"Cadres"} | ${1} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
109
+ ${6} | ${"Cadres"} | ${1} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
110
+ ${7} | ${"Cadres"} | ${3} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
111
+ ${24} | ${"Cadres"} | ${3} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
112
+ ${25} | ${"Cadres"} | ${3} | ${"mois"} | ${MiseRetraiteCadresCcReferences}
113
+ `(
114
+ "Pour un $category possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
115
+ ({
116
+ seniority,
117
+ category,
118
+ expectedResult,
119
+ expectedUnit,
120
+ expectedReferences,
121
+ }) => {
122
+ const situation = engine.setSituation({
123
+ "contrat salarié . ancienneté": seniority,
124
+ "contrat salarié . convention collective": "'IDCC1606'",
125
+ "contrat salarié . convention collective . bricolage . catégorie professionnelle": `'${category}'`,
126
+ "contrat salarié . mise à la retraite": "oui",
127
+ "contrat salarié . travailleur handicapé": "non",
128
+ });
129
+ const result = situation.evaluate(
130
+ "contrat salarié . préavis de retraite"
131
+ );
132
+ const references = getReferences(situation);
133
+
134
+ expect(result.nodeValue).toEqual(expectedResult);
135
+ expect(result.unit?.numerators).toEqual([expectedUnit]);
136
+ expect(result.missingVariables).toEqual({});
137
+ expect(references).toHaveLength(expectedReferences.length);
138
+ expect(references).toEqual(expect.arrayContaining(expectedReferences));
139
+ }
140
+ );
141
+ });
142
+ });
@@ -0,0 +1,108 @@
1
+ import Engine from "publicodes";
2
+
3
+ import { mergeModels } from "../../../internal/merger";
4
+ import { getNotifications } from "../../../utils/GetNotifications";
5
+ import { getReferences } from "../../../utils/GetReferences";
6
+ import {
7
+ DepartRetraiteReferences,
8
+ MiseRetraiteReferences,
9
+ } from "../../common/legal-references";
10
+
11
+ const engine = new Engine(mergeModels());
12
+
13
+ const DepartReferences = [
14
+ {
15
+ article: "Article 7.12",
16
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000017941945/?idConteneur=KALICONT000017941839",
17
+ },
18
+ ];
19
+
20
+ const MiseReferences = [
21
+ {
22
+ article: "Article 7.9",
23
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000017941940/?idConteneur=KALICONT000017941839",
24
+ },
25
+ ];
26
+
27
+ const DepartRetraiteCcReferences = [
28
+ ...DepartRetraiteReferences,
29
+ ...DepartReferences,
30
+ ];
31
+
32
+ const MiseRetraiteCcReferences = [...MiseRetraiteReferences, ...MiseReferences];
33
+
34
+ describe("Convention collective 2420", () => {
35
+ describe("Pour un départ à la retraite", () => {
36
+ test.each`
37
+ seniority | expectedResult
38
+ ${5} | ${3}
39
+ ${6} | ${1}
40
+ ${24} | ${2}
41
+ ${25} | ${2}
42
+ `(
43
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
44
+ ({ seniority, expectedResult }) => {
45
+ const situation = engine.setSituation({
46
+ "contrat salarié . ancienneté": seniority,
47
+ "contrat salarié . convention collective": "'IDCC2420'",
48
+ "contrat salarié . mise à la retraite": "non",
49
+ "contrat salarié . travailleur handicapé": "non",
50
+ });
51
+ const result = situation.evaluate(
52
+ "contrat salarié . préavis de retraite"
53
+ );
54
+ const references = getReferences(situation);
55
+ const notifications = getNotifications(situation);
56
+
57
+ expect(result.nodeValue).toEqual(expectedResult);
58
+ expect(result.unit?.numerators).toEqual(["mois"]);
59
+ expect(result.missingVariables).toEqual({});
60
+ expect(references).toHaveLength(DepartRetraiteCcReferences.length);
61
+ expect(references).toEqual(
62
+ expect.arrayContaining(DepartRetraiteCcReferences)
63
+ );
64
+ expect(notifications).toHaveLength(1);
65
+ expect(notifications[0].description).toBe(
66
+ `Attention : L'article de la convention collective ou la convention collective saisie n’a pas été étendu au niveau national. Par conséquent, pour que ce résultat soit applicable à votre situation, il faut que l’employeur ait adhéré à l’organisation patronale signataire de cette convention. Sans cette adhésion, l'employeur n'a pas l'obligation d'appliquer les règles de la convention mais il applique le préavis prévu par le code du travail.`
67
+ );
68
+ }
69
+ );
70
+ });
71
+
72
+ describe("Pour une mise à la retraite", () => {
73
+ test.each`
74
+ seniority | expectedResult
75
+ ${5} | ${3}
76
+ ${6} | ${3}
77
+ ${24} | ${3}
78
+ ${25} | ${3}
79
+ `(
80
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
81
+ ({ seniority, expectedResult }) => {
82
+ const situation = engine.setSituation({
83
+ "contrat salarié . ancienneté": seniority,
84
+ "contrat salarié . convention collective": "'IDCC2420'",
85
+ "contrat salarié . mise à la retraite": "oui",
86
+ "contrat salarié . travailleur handicapé": "non",
87
+ });
88
+ const result = situation.evaluate(
89
+ "contrat salarié . préavis de retraite"
90
+ );
91
+ const references = getReferences(situation);
92
+ const notifications = getNotifications(situation);
93
+
94
+ expect(result.nodeValue).toEqual(expectedResult);
95
+ expect(result.unit?.numerators).toEqual(["mois"]);
96
+ expect(result.missingVariables).toEqual({});
97
+ expect(references).toHaveLength(MiseRetraiteCcReferences.length);
98
+ expect(references).toEqual(
99
+ expect.arrayContaining(MiseRetraiteCcReferences)
100
+ );
101
+ expect(notifications).toHaveLength(1);
102
+ expect(notifications[0].description).toBe(
103
+ `Attention : L'article de la convention collective ou la convention collective saisie n’a pas été étendu au niveau national. Par conséquent, pour que ce résultat soit applicable à votre situation, il faut que l’employeur ait adhéré à l’organisation patronale signataire de cette convention. Sans cette adhésion, l'employeur n'a pas l'obligation d'appliquer les règles de la convention mais il applique le préavis prévu par le code du travail.`
104
+ );
105
+ }
106
+ );
107
+ });
108
+ });
@@ -0,0 +1,115 @@
1
+ import Engine from "publicodes";
2
+
3
+ import { mergeModels } from "../../../internal/merger";
4
+ import { getReferences } from "../../../utils/GetReferences";
5
+ import {
6
+ DepartRetraiteReferences,
7
+ MiseRetraiteReferences,
8
+ } from "../../common/legal-references";
9
+
10
+ const engine = new Engine(mergeModels());
11
+
12
+ const CommonReferences = [
13
+ {
14
+ article: "Article 4.4.2.1",
15
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652",
16
+ },
17
+ {
18
+ article: "Article 4.4.1",
19
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652",
20
+ },
21
+ ];
22
+
23
+ const DepartRetraiteCcReferences = [
24
+ ...DepartRetraiteReferences,
25
+ ...CommonReferences,
26
+ ];
27
+
28
+ const MiseRetraiteCcReferences = [
29
+ ...MiseRetraiteReferences,
30
+ ...CommonReferences,
31
+ ];
32
+
33
+ describe("Convention collective 2511", () => {
34
+ describe("Pour un départ à la retraite", () => {
35
+ test.each`
36
+ seniority | category | expectedResult
37
+ ${5} | ${"Ouvriers"} | ${1}
38
+ ${6} | ${"Ouvriers"} | ${1}
39
+ ${24} | ${"Ouvriers"} | ${1}
40
+ ${25} | ${"Ouvriers"} | ${1}
41
+ ${5} | ${"Techniciens"} | ${2}
42
+ ${6} | ${"Techniciens"} | ${1}
43
+ ${24} | ${"Techniciens"} | ${2}
44
+ ${25} | ${"Techniciens"} | ${2}
45
+ ${5} | ${"Cadres"} | ${3}
46
+ ${6} | ${"Cadres"} | ${1}
47
+ ${24} | ${"Cadres"} | ${2}
48
+ ${25} | ${"Cadres"} | ${2}
49
+ `(
50
+ "Pour un $category possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
51
+ ({ seniority, category, expectedResult }) => {
52
+ const situation = engine.setSituation({
53
+ "contrat salarié . ancienneté": seniority,
54
+ "contrat salarié . convention collective": "'IDCC2511'",
55
+ "contrat salarié . convention collective . sport . catégorie professionnelle": `'${category}'`,
56
+ "contrat salarié . mise à la retraite": "non",
57
+ "contrat salarié . travailleur handicapé": "non",
58
+ });
59
+ const result = situation.evaluate(
60
+ "contrat salarié . préavis de retraite"
61
+ );
62
+ const references = getReferences(situation);
63
+
64
+ expect(result.nodeValue).toEqual(expectedResult);
65
+ expect(result.unit?.numerators).toEqual(["mois"]);
66
+ expect(result.missingVariables).toEqual({});
67
+ expect(references).toHaveLength(DepartRetraiteCcReferences.length);
68
+ expect(references).toEqual(
69
+ expect.arrayContaining(DepartRetraiteCcReferences)
70
+ );
71
+ }
72
+ );
73
+ });
74
+
75
+ describe("Pour une mise à la retraite", () => {
76
+ test.each`
77
+ seniority | category | expectedResult
78
+ ${5} | ${"Ouvriers"} | ${1}
79
+ ${6} | ${"Ouvriers"} | ${1}
80
+ ${24} | ${"Ouvriers"} | ${2}
81
+ ${25} | ${"Ouvriers"} | ${2}
82
+ ${5} | ${"Techniciens"} | ${2}
83
+ ${6} | ${"Techniciens"} | ${2}
84
+ ${24} | ${"Techniciens"} | ${2}
85
+ ${25} | ${"Techniciens"} | ${2}
86
+ ${5} | ${"Cadres"} | ${3}
87
+ ${6} | ${"Cadres"} | ${3}
88
+ ${24} | ${"Cadres"} | ${3}
89
+ ${25} | ${"Cadres"} | ${3}
90
+ `(
91
+ "Pour un $category possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
92
+ ({ seniority, category, expectedResult }) => {
93
+ const situation = engine.setSituation({
94
+ "contrat salarié . ancienneté": seniority,
95
+ "contrat salarié . convention collective": "'IDCC2511'",
96
+ "contrat salarié . convention collective . sport . catégorie professionnelle": `'${category}'`,
97
+ "contrat salarié . mise à la retraite": "oui",
98
+ "contrat salarié . travailleur handicapé": "non",
99
+ });
100
+ const result = situation.evaluate(
101
+ "contrat salarié . préavis de retraite"
102
+ );
103
+ const references = getReferences(situation);
104
+
105
+ expect(result.nodeValue).toEqual(expectedResult);
106
+ expect(result.unit?.numerators).toEqual(["mois"]);
107
+ expect(result.missingVariables).toEqual({});
108
+ expect(references).toHaveLength(MiseRetraiteCcReferences.length);
109
+ expect(references).toEqual(
110
+ expect.arrayContaining(MiseRetraiteCcReferences)
111
+ );
112
+ }
113
+ );
114
+ });
115
+ });
@@ -0,0 +1,105 @@
1
+ import Engine from "publicodes";
2
+
3
+ import { mergeModels } from "../../../internal/merger";
4
+ import { getNotifications } from "../../../utils/GetNotifications";
5
+ import { getReferences } from "../../../utils/GetReferences";
6
+ import {
7
+ DepartRetraiteReferences,
8
+ MiseRetraiteReferences,
9
+ } from "../../common/legal-references";
10
+
11
+ const engine = new Engine(mergeModels());
12
+
13
+ const DepartReferences = [
14
+ {
15
+ article: "Article 8.12",
16
+ url: "https://www.legifrance.gouv.fr/conv_coll/article/KALIARTI000018926442?idConteneur=KALICONT000018926209",
17
+ },
18
+ ];
19
+
20
+ const MiseReferences = [
21
+ {
22
+ article: "Article 8.9",
23
+ url: "https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000018926437/?idConteneur=KALICONT000018926209",
24
+ },
25
+ ];
26
+
27
+ const DepartRetraiteCcReferences = [
28
+ ...DepartRetraiteReferences,
29
+ ...DepartReferences,
30
+ ];
31
+
32
+ const MiseRetraiteCcReferences = [...MiseRetraiteReferences, ...MiseReferences];
33
+
34
+ describe("Convention collective 2614", () => {
35
+ describe("Pour un départ à la retraite", () => {
36
+ test.each`
37
+ seniority | expectedResult
38
+ ${5} | ${2}
39
+ ${6} | ${1}
40
+ ${24} | ${2}
41
+ ${25} | ${2}
42
+ `(
43
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
44
+ ({ seniority, expectedResult }) => {
45
+ const situation = engine.setSituation({
46
+ "contrat salarié . ancienneté": seniority,
47
+ "contrat salarié . convention collective": "'IDCC2614'",
48
+ "contrat salarié . mise à la retraite": "non",
49
+ "contrat salarié . travailleur handicapé": "non",
50
+ });
51
+ const result = situation.evaluate(
52
+ "contrat salarié . préavis de retraite"
53
+ );
54
+ const references = getReferences(situation);
55
+ const notifications = getNotifications(situation);
56
+
57
+ expect(result.nodeValue).toEqual(expectedResult);
58
+ expect(result.unit?.numerators).toEqual(["mois"]);
59
+ expect(result.missingVariables).toEqual({});
60
+ expect(references).toHaveLength(DepartRetraiteCcReferences.length);
61
+ expect(references).toEqual(
62
+ expect.arrayContaining(DepartRetraiteCcReferences)
63
+ );
64
+ expect(notifications).toHaveLength(1);
65
+ expect(notifications[0].description).toBe(
66
+ `Attention : L'article de la convention collective ou la convention collective saisie n’a pas été étendu au niveau national. Par conséquent, pour que ce résultat soit applicable à votre situation, il faut que l’employeur ait adhéré à l’organisation patronale signataire de cette convention. Sans cette adhésion, l'employeur n'a pas l'obligation d'appliquer les règles de la convention mais il applique le préavis prévu par le code du travail.`
67
+ );
68
+ }
69
+ );
70
+ });
71
+
72
+ describe("Pour une mise à la retraite", () => {
73
+ test.each`
74
+ seniority | expectedResult
75
+ ${5} | ${3}
76
+ ${6} | ${3}
77
+ ${24} | ${3}
78
+ ${25} | ${3}
79
+ `(
80
+ "Pour un employé possédant $seniority mois d'ancienneté, son préavis devrait être $expectedResult mois",
81
+ ({ seniority, expectedResult }) => {
82
+ const situation = engine.setSituation({
83
+ "contrat salarié . ancienneté": seniority,
84
+ "contrat salarié . convention collective": "'IDCC2614'",
85
+ "contrat salarié . mise à la retraite": "oui",
86
+ "contrat salarié . travailleur handicapé": "non",
87
+ });
88
+ const result = situation.evaluate(
89
+ "contrat salarié . préavis de retraite"
90
+ );
91
+ const references = getReferences(situation);
92
+ const notifications = getNotifications(situation);
93
+
94
+ expect(result.nodeValue).toEqual(expectedResult);
95
+ expect(result.unit?.numerators).toEqual(["mois"]);
96
+ expect(result.missingVariables).toEqual({});
97
+ expect(references).toHaveLength(MiseRetraiteCcReferences.length);
98
+ expect(references).toEqual(
99
+ expect.arrayContaining(MiseRetraiteCcReferences)
100
+ );
101
+ expect(notifications).toHaveLength(0);
102
+ }
103
+ );
104
+ });
105
+ });
@@ -0,0 +1,54 @@
1
+ contrat salarié . convention collective . organismes de formation:
2
+ description: Convention collective nationale des organismes de formation du 10 juin 1988.
3
+ applicable si: convention collective = 'IDCC1516'
4
+ valeur: oui
5
+ cdtn:
6
+ idcc: 1516
7
+ préavis-retraite: true
8
+
9
+ contrat salarié . convention collective . organismes de formation . catégorie professionnelle:
10
+ applicable si: mise à la retraite
11
+ titre: Catégorie professionnelle
12
+ question: Quelle est la catégorie professionnelle du salarié ?
13
+ description: La catégorie professionnelle du salarié est habituellement mentionnée sur le <strong>bulletin de salaire</strong>.
14
+ cdtn:
15
+ type: liste
16
+ valeurs:
17
+ Employés: "'Employés'"
18
+ Techniciens: "'Techniciens'"
19
+ Cadres: "'Cadres'"
20
+
21
+ contrat salarié . convention collective . organismes de formation . employés:
22
+ applicable si: catégorie professionnelle = 'Employés'
23
+ valeur: oui
24
+
25
+ contrat salarié . convention collective . organismes de formation . employés . mise à la retraite:
26
+ remplace: préavis de retraite collective
27
+ grille:
28
+ assiette: ancienneté
29
+ tranches:
30
+ - montant: 1 mois
31
+ plafond: 25 mois
32
+ - montant: 2 mois
33
+ références:
34
+ Article 9.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005775560/?idConteneur=KALICONT000005635435
35
+
36
+ contrat salarié . convention collective . organismes de formation . techniciens:
37
+ applicable si: catégorie professionnelle = 'Techniciens'
38
+ valeur: oui
39
+
40
+ contrat salarié . convention collective . organismes de formation . techniciens . mise à la retraite:
41
+ remplace: préavis de retraite collective
42
+ valeur: 2 mois
43
+ références:
44
+ Article 9.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005775560/?idConteneur=KALICONT000005635435
45
+
46
+ contrat salarié . convention collective . organismes de formation . cadres:
47
+ applicable si: catégorie professionnelle = 'Cadres'
48
+ valeur: oui
49
+
50
+ contrat salarié . convention collective . organismes de formation . cadres . mise à la retraite:
51
+ remplace: préavis de retraite collective
52
+ valeur: 3 mois
53
+ références:
54
+ Article 9.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005775560/?idConteneur=KALICONT000005635435
@@ -0,0 +1,90 @@
1
+ contrat salarié . convention collective . bricolage:
2
+ description: Convention collective nationale du bricolage (vente au détail en libre-service) du 30 septembre 1991.
3
+ applicable si: convention collective = 'IDCC1606'
4
+ valeur: oui
5
+ cdtn:
6
+ idcc: 1606
7
+ préavis-retraite: true
8
+
9
+ contrat salarié . convention collective . bricolage . départ à la retraite:
10
+ applicable si: départ à la retraite
11
+ remplace: préavis de retraite collective
12
+ grille:
13
+ assiette: ancienneté
14
+ tranches:
15
+ - montant: 1 mois
16
+ plafond: 25 mois
17
+ - montant: 2 mois
18
+ références:
19
+ Article 9.3.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870737/?idConteneur=KALICONT000005635871
20
+
21
+ contrat salarié . convention collective . bricolage . catégorie professionnelle:
22
+ applicable si: mise à la retraite
23
+ titre: Catégorie professionnelle
24
+ question: Quelle est la catégorie professionnelle du salarié ?
25
+ description: La catégorie professionnelle du salarié est habituellement mentionnée sur le <strong>bulletin de salaire</strong>.
26
+ cdtn:
27
+ type: liste
28
+ valeurs:
29
+ Employés: "'Employés'"
30
+ Agents de maîtrise: "'Agents de maîtrise'"
31
+ Cadres: "'Cadres'"
32
+
33
+ contrat salarié . convention collective . bricolage . employés:
34
+ applicable si: catégorie professionnelle = 'Employés'
35
+ valeur: oui
36
+
37
+ contrat salarié . convention collective . bricolage . employés . mise à la retraite:
38
+ applicable si: mise à la retraite
39
+ remplace: préavis de retraite collective
40
+ grille:
41
+ assiette: ancienneté
42
+ tranches:
43
+ - montant: 0 mois
44
+ plafond: 1 mois
45
+ - montant: 15 jour
46
+ plafond: 6 mois
47
+ - montant: 1 mois
48
+ plafond: 24 mois
49
+ - montant: 2 mois
50
+ références:
51
+ Article 9.2.1: https://www.legifrance.gouv.fr/conv_coll/article/KALIARTI000005870734?idConteneur=KALICONT000005635871
52
+
53
+ contrat salarié . convention collective . bricolage . agents:
54
+ applicable si: catégorie professionnelle = 'Agents de maîtrise'
55
+ valeur: oui
56
+
57
+ contrat salarié . convention collective . bricolage . agents . mise à la retraite:
58
+ applicable si: mise à la retraite
59
+ remplace: préavis de retraite collective
60
+ grille:
61
+ assiette: ancienneté
62
+ tranches:
63
+ - montant: 0 mois
64
+ plafond: 2 mois
65
+ - montant: 1 mois
66
+ plafond: 7 mois
67
+ - montant: 2 mois
68
+ références:
69
+ Annexe "agents de maîtrise", article 9: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870772/?idConteneur=KALICONT000005635871
70
+
71
+ contrat salarié . convention collective . bricolage . cadres:
72
+ applicable si: catégorie professionnelle = 'Cadres'
73
+ valeur: oui
74
+
75
+ contrat salarié . convention collective . bricolage . cadres . mise à la retraite:
76
+ applicable si: mise à la retraite
77
+ remplace: préavis de retraite collective
78
+ grille:
79
+ assiette: ancienneté
80
+ tranches:
81
+ - montant: 0 mois
82
+ plafond: 3 mois
83
+ - montant: 1 mois
84
+ plafond: 7 mois
85
+ - montant: 3 mois
86
+ références:
87
+ Annexe "cadres", article 9: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000005870787/?idConteneur=KALICONT000005635871
88
+
89
+
90
+
@@ -0,0 +1,26 @@
1
+ contrat salarié . convention collective . cadres du bâtiment:
2
+ description: Convention collective nationale des cadres du bâtiment du 1er juin 2004.
3
+ applicable si: convention collective = 'IDCC2420'
4
+ valeur: oui
5
+ cdtn:
6
+ idcc: 2420
7
+ préavis-retraite: true
8
+
9
+ contrat salarié . convention collective . cadres du bâtiment . départ à la retraite:
10
+ applicable si: départ à la retraite
11
+ remplace: préavis de retraite collective
12
+ valeur: 3 mois
13
+ références:
14
+ Article 7.12: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000017941945/?idConteneur=KALICONT000017941839
15
+
16
+ contrat salarié . convention collective . cadres du bâtiment . mise à la retraite:
17
+ applicable si: mise à la retraite
18
+ remplace: préavis de retraite collective
19
+ valeur: 3 mois
20
+ références:
21
+ Article 7.9: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000017941940/?idConteneur=KALICONT000017941839
22
+
23
+ contrat salarié . convention collective . cadres du bâtiment . notification:
24
+ type: notification
25
+ description: "Attention : L'article de la convention collective ou la convention collective saisie n’a pas été étendu au niveau national. Par conséquent, pour que ce résultat soit applicable à votre situation, il faut que l’employeur ait adhéré à l’organisation patronale signataire de cette convention. Sans cette adhésion, l'employeur n'a pas l'obligation d'appliquer les règles de la convention mais il applique le préavis prévu par le code du travail."
26
+ valeur: oui
@@ -0,0 +1,51 @@
1
+ contrat salarié . convention collective . sport:
2
+ description: Convention collective nationale du sport du 7 juillet 2005 étendue par arrêté du 21 novembre 2006.
3
+ applicable si: convention collective = 'IDCC2511'
4
+ valeur: oui
5
+ cdtn:
6
+ idcc: 2511
7
+ préavis-retraite: true
8
+
9
+ contrat salarié . convention collective . sport . catégorie professionnelle:
10
+ titre: Catégorie professionnelle
11
+ question: Quelle est la catégorie professionnelle du salarié ?
12
+ description: La catégorie professionnelle du salarié est habituellement mentionnée sur le <strong>bulletin de salaire</strong>.
13
+ cdtn:
14
+ type: liste
15
+ valeurs:
16
+ Ouvriers, Employés: "'Ouvriers'"
17
+ Techniciens et agents de maîtrise (TAM): "'Techniciens'"
18
+ Cadres: "'Cadres'"
19
+
20
+ contrat salarié . convention collective . sport . ouvriers:
21
+ applicable si: catégorie professionnelle = 'Ouvriers'
22
+ valeur: oui
23
+
24
+ contrat salarié . convention collective . sport . ouvriers . préavis de retraite:
25
+ remplace: préavis de retraite collective
26
+ valeur: 1 mois
27
+ références:
28
+ Article 4.4.2.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
29
+ Article 4.4.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
30
+
31
+ contrat salarié . convention collective . sport . techniciens:
32
+ applicable si: catégorie professionnelle = 'Techniciens'
33
+ valeur: oui
34
+
35
+ contrat salarié . convention collective . sport . techniciens . préavis de retraite:
36
+ remplace: préavis de retraite collective
37
+ valeur: 2 mois
38
+ références:
39
+ Article 4.4.2.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
40
+ Article 4.4.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
41
+
42
+ contrat salarié . convention collective . sport . cadres:
43
+ applicable si: catégorie professionnelle = 'Cadres'
44
+ valeur: oui
45
+
46
+ contrat salarié . convention collective . sport . cadres . préavis de retraite:
47
+ remplace: préavis de retraite collective
48
+ valeur: 3 mois
49
+ références:
50
+ Article 4.4.2.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
51
+ Article 4.4.1: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000021063914/?idConteneur=KALICONT000017577652
@@ -0,0 +1,27 @@
1
+ contrat salarié . convention collective . travaux publics:
2
+ description: Convention collective nationale des employés, techniciens et agents de maîtrise des travaux publics du 12 juillet 2006.
3
+ applicable si: convention collective = 'IDCC2614'
4
+ valeur: oui
5
+ cdtn:
6
+ idcc: 2614
7
+ préavis-retraite: true
8
+
9
+ contrat salarié . convention collective . travaux publics . départ à la retraite:
10
+ applicable si: départ à la retraite
11
+ remplace: préavis de retraite collective
12
+ valeur: 2 mois
13
+ références:
14
+ Article 8.12: https://www.legifrance.gouv.fr/conv_coll/article/KALIARTI000018926442?idConteneur=KALICONT000018926209
15
+
16
+ contrat salarié . convention collective . travaux publics . mise à la retraite:
17
+ applicable si: mise à la retraite
18
+ remplace: préavis de retraite collective
19
+ valeur: 3 mois
20
+ références:
21
+ Article 8.9: https://www.legifrance.gouv.fr/conv_coll/id/KALIARTI000018926437/?idConteneur=KALICONT000018926209
22
+
23
+ contrat salarié . convention collective . travaux publics . départ à la retraite notification:
24
+ applicable si: départ à la retraite
25
+ type: notification
26
+ description: "Attention : L'article de la convention collective ou la convention collective saisie n’a pas été étendu au niveau national. Par conséquent, pour que ce résultat soit applicable à votre situation, il faut que l’employeur ait adhéré à l’organisation patronale signataire de cette convention. Sans cette adhésion, l'employeur n'a pas l'obligation d'appliquer les règles de la convention mais il applique le préavis prévu par le code du travail."
27
+ valeur: oui
@@ -1,7 +0,0 @@
1
- contrat salarié . convention collective . bricolage:
2
- description: Convention collective nationale du bricolage (vente au détail en libre-service) du 30 septembre 1991.
3
- applicable si: convention collective = 'IDCC1606'
4
- valeur: oui
5
- cdtn:
6
- idcc: 1606
7
- préavis-retraite: false
@@ -1,7 +0,0 @@
1
- contrat salarié . convention collective . cadres du bâtiment:
2
- description: Convention collective nationale des cadres du bâtiment du 1er juin 2004.
3
- applicable si: convention collective = 'IDCC2420'
4
- valeur: oui
5
- cdtn:
6
- idcc: 2420
7
- préavis-retraite: false
@@ -1,7 +0,0 @@
1
- contrat salarié . convention collective . organismes de formation:
2
- description: Convention collective nationale des organismes de formation du 10 juin 1988.
3
- applicable si: convention collective = 'IDCC2111'
4
- valeur: oui
5
- cdtn:
6
- idcc: 1516
7
- préavis-retraite: false
@@ -1,7 +0,0 @@
1
- contrat salarié . convention collective . sport:
2
- description: Convention collective nationale du sport du 7 juillet 2005 étendue par arrêté du 21 novembre 2006.
3
- applicable si: convention collective = 'IDCC2511'
4
- valeur: oui
5
- cdtn:
6
- idcc: 2511
7
- préavis-retraite: false
@@ -1,7 +0,0 @@
1
- contrat salarié . convention collective . travaux publics:
2
- description: Convention collective nationale des employés, techniciens et agents de maîtrise des travaux publics du 12 juillet 2006.
3
- applicable si: convention collective = 'IDCC2614'
4
- valeur: oui
5
- cdtn:
6
- idcc: 2614
7
- préavis-retraite: false