@socialgouv/modeles-social 4.89.0 → 4.90.1

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 (479) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +15 -0
  3. package/jest.config.js +2 -1
  4. package/jest.setup.ts +7 -0
  5. package/package.json +7 -4
  6. package/src/__test__/common/check-description-question.spec.ts +2 -2
  7. package/src/__test__/common/check-rule-title.spec.ts +2 -2
  8. package/src/__test__/common/extract-implemented-cc.spec.ts +2 -2
  9. package/src/__test__/common/legal-references.ts +24 -4
  10. package/src/__test__/common/publicode-matcher.ts +1 -1
  11. package/src/index.ts +3 -2
  12. package/src/internal/build.ts +25 -8
  13. package/src/internal/constants.ts +3 -0
  14. package/src/internal/extractSupportedCc.ts +6 -1
  15. package/src/internal/merger.ts +55 -7
  16. package/src/modeles/base/__tests__/indemnite-licenciement/anciennete.spec.ts +75 -0
  17. package/src/modeles/base/__tests__/indemnite-licenciement/formule.spec.ts +36 -0
  18. package/src/modeles/base/__tests__/indemnite-licenciement/indemnite.spec.ts +103 -0
  19. package/src/modeles/base/__tests__/indemnite-licenciement/references.spec.ts +54 -0
  20. package/src/modeles/base/__tests__/indemnite-licenciement/salaire-ref.spec.ts +77 -0
  21. package/src/modeles/base/__tests__/preavis-retraite/depart-mise.spec.ts +53 -0
  22. package/src/{__test__/common/legal → modeles/base/__tests__}/preavis-retraite/references.spec.ts +10 -15
  23. package/src/modeles/base/__tests__/travailleur-handicape/preavis-retraite/depart-mise.spec.ts +91 -0
  24. package/src/{__test__/common → modeles/base/__tests__}/travailleur-handicape/preavis-retraite/references.spec.ts +11 -16
  25. package/src/modeles/base/common.yaml +4 -20
  26. package/src/modeles/base/indemnite-licenciement.yaml +159 -37
  27. package/src/modeles/base/index.ts +2 -0
  28. package/src/modeles/base/preavis-retraite.yaml +29 -24
  29. package/src/modeles/base/salary.ts +45 -0
  30. package/src/modeles/base/seniority.ts +37 -0
  31. package/src/modeles/common/factory/index.ts +2 -0
  32. package/src/modeles/common/factory/salary.ts +48 -0
  33. package/src/modeles/common/factory/seniority.ts +63 -0
  34. package/src/modeles/common/index.ts +6 -0
  35. package/src/modeles/common/motif-keys.ts +13 -0
  36. package/src/modeles/common/seniority.ts +67 -0
  37. package/src/modeles/common/supported-agreements.ts +34 -0
  38. package/src/modeles/common/types/index.ts +3 -0
  39. package/src/modeles/common/types/salary.ts +48 -0
  40. package/src/modeles/common/types/seniority.ts +55 -0
  41. package/src/modeles/common/utils/__tests__/accumulate-absence-by-year.ts +27 -0
  42. package/src/modeles/common/utils/__tests__/array.test.ts +12 -0
  43. package/src/modeles/common/utils/__tests__/data/formule_avec_annotations.yaml +16 -0
  44. package/src/modeles/common/utils/__tests__/data/formule_avec_non_applicable.yaml +35 -0
  45. package/src/modeles/common/utils/__tests__/data/formule_avec_zero.yaml +20 -0
  46. package/src/modeles/common/utils/__tests__/data/formule_flag_$formule.yaml +26 -0
  47. package/src/modeles/common/utils/__tests__/data/formule_plusieurs_regles_actives.yaml +28 -0
  48. package/src/modeles/common/utils/__tests__/data/formule_plusieurs_regles_desactivees.yaml +26 -0
  49. package/src/modeles/common/utils/__tests__/data/formule_simple.yaml +14 -0
  50. package/src/modeles/common/utils/__tests__/data/formule_unite_manquante.yaml +14 -0
  51. package/src/modeles/common/utils/__tests__/date.spec.ts +63 -0
  52. package/src/{utils/__test__ → modeles/common/utils/__tests__}/extractMdxContentUrl.test.ts +1 -1
  53. package/src/modeles/common/utils/__tests__/formula.utils.spec.ts +72 -0
  54. package/src/modeles/common/utils/__tests__/formule.spec.ts +199 -0
  55. package/src/modeles/common/utils/__tests__/references.test.ts +62 -0
  56. package/src/modeles/common/utils/__tests__/split-by-seniority-year.test.ts +50 -0
  57. package/src/modeles/common/utils/__tests__/split-twelve-month-rolling.test.ts +121 -0
  58. package/src/modeles/common/utils/array.ts +12 -0
  59. package/src/{utils → modeles/common/utils}/ccn-supported.json +0 -0
  60. package/src/modeles/common/utils/common.ts +23 -0
  61. package/src/{utils → modeles/common/utils}/constants.ts +2 -0
  62. package/src/modeles/common/utils/date.ts +123 -0
  63. package/src/modeles/common/utils/formula.ts +161 -0
  64. package/src/{utils → modeles/common/utils}/global.ts +0 -0
  65. package/src/modeles/common/utils/index.ts +9 -0
  66. package/src/modeles/common/utils/notifications.ts +76 -0
  67. package/src/{utils → modeles/common/utils}/references.ts +13 -3
  68. package/src/modeles/common/utils/seniority.ts +136 -0
  69. package/src/{__test__/1043-concierge → modeles/conventions/1043_gardien_concierge/__tests__}/preavis-retraite/depart-mise.spec.ts +21 -23
  70. package/src/{__test__/1043-concierge → modeles/conventions/1043_gardien_concierge/__tests__}/preavis-retraite/references.spec.ts +21 -28
  71. package/src/modeles/conventions/1043_gardien_concierge/common.yaml +9 -0
  72. package/src/modeles/conventions/{1043_gardien_concierge.yaml → 1043_gardien_concierge/preavis-retraite.yaml} +0 -9
  73. package/src/modeles/conventions/1090_automobiles/__tests__/indemnite-licenciement/anciennete.spec.ts +96 -0
  74. package/src/modeles/conventions/1090_automobiles/__tests__/indemnite-licenciement/formule.spec.ts +34 -0
  75. package/src/modeles/conventions/1090_automobiles/__tests__/indemnite-licenciement/indemnite.spec.ts +41 -0
  76. package/src/modeles/conventions/1090_automobiles/__tests__/indemnite-licenciement/notifications.spec.ts +62 -0
  77. package/src/modeles/conventions/1090_automobiles/__tests__/indemnite-licenciement/references.spec.ts +47 -0
  78. package/src/{__test__/1090-automobile → modeles/conventions/1090_automobiles/__tests__}/preavis-retraite/depart.spec.ts +29 -31
  79. package/src/{__test__/1090-automobile → modeles/conventions/1090_automobiles/__tests__}/preavis-retraite/mise.spec.ts +27 -29
  80. package/src/{__test__/1090-automobile → modeles/conventions/1090_automobiles/__tests__}/preavis-retraite/references.spec.ts +13 -18
  81. package/src/modeles/conventions/1090_automobiles/common.yaml +9 -0
  82. package/src/modeles/conventions/1090_automobiles/indemnite-licenciement.yaml +21 -0
  83. package/src/modeles/conventions/1090_automobiles/index.ts +1 -0
  84. package/src/modeles/conventions/{1090_automobiles.yaml → 1090_automobiles/preavis-retraite.yaml} +0 -9
  85. package/src/modeles/conventions/1090_automobiles/seniority.ts +106 -0
  86. package/src/{__test__/1147-cabinets-medicaux → modeles/conventions/1147_cabinets_medicaux/__tests__}/preavis-retraite/depart-mise.spec.ts +41 -48
  87. package/src/{__test__/1147-cabinets-medicaux → modeles/conventions/1147_cabinets_medicaux/__tests__}/preavis-retraite/references.spec.ts +12 -17
  88. package/src/modeles/conventions/1147_cabinets_medicaux/common.yaml +9 -0
  89. package/src/modeles/conventions/{1147_cabinets_medicaux.yaml → 1147_cabinets_medicaux/preavis-retraite.yaml} +3 -12
  90. package/src/{__test__/1266-restauration-collectivit/303/251s → modeles/conventions/1266_restauration_collectivites/__tests__}/preavis-retraite/depart-mise.spec.ts +20 -22
  91. package/src/{__test__/1266-restauration-collectivit/303/251s → modeles/conventions/1266_restauration_collectivites/__tests__}/preavis-retraite/references.spec.ts +12 -17
  92. package/src/modeles/conventions/1266_restauration_collectivites/common.yaml +9 -0
  93. package/src/modeles/conventions/{1266_restauration_collectivites.yaml → 1266_restauration_collectivites/preavis-retraite.yaml} +0 -9
  94. package/src/modeles/conventions/1351_prevention_secu_ent/__tests__/indemnite-licenciement/anciennete.spec.ts +32 -0
  95. package/src/modeles/conventions/1351_prevention_secu_ent/__tests__/indemnite-licenciement/formule.spec.ts +33 -0
  96. package/src/modeles/conventions/1351_prevention_secu_ent/__tests__/indemnite-licenciement/indemnite.spec.ts +33 -0
  97. package/src/{__test__/1351-prevention-secu-ent → modeles/conventions/1351_prevention_secu_ent/__tests__}/preavis-retraite/depart-mise.spec.ts +18 -20
  98. package/src/{__test__/1351-prevention-secu-ent → modeles/conventions/1351_prevention_secu_ent/__tests__}/preavis-retraite/references.spec.ts +11 -16
  99. package/src/modeles/conventions/1351_prevention_secu_ent/common.yaml +9 -0
  100. package/src/modeles/conventions/1351_prevention_secu_ent/indemnite-licenciement.yaml +10 -0
  101. package/src/modeles/conventions/{1351_prevention_secu_ent.yaml → 1351_prevention_secu_ent/preavis-retraite.yaml} +0 -9
  102. package/src/{__test__/1404-sedima → modeles/conventions/1404_sedima/__tests__}/preavis-retraite/depart-mise.spec.ts +91 -82
  103. package/src/modeles/conventions/1404_sedima/common.yaml +11 -0
  104. package/src/modeles/conventions/{1404_sedima.yaml → 1404_sedima/preavis-retraite.yaml} +0 -11
  105. package/src/{__test__/1480-journalisme → modeles/conventions/1480_journalisme/__tests__}/preavis-retraite/depart-mise.spec.ts +10 -12
  106. package/src/{__test__/1480-journalisme → modeles/conventions/1480_journalisme/__tests__}/preavis-retraite/references.spec.ts +11 -16
  107. package/src/modeles/conventions/{1480_journalisme.yaml → 1480_journalisme/common.yaml} +1 -10
  108. package/src/modeles/conventions/1480_journalisme/preavis-retraite.yaml +9 -0
  109. package/src/{__test__/1483-habillement-textiles-commerce-de-detail → modeles/conventions/1483_habillement_textiles_commerce_de_detail/__tests__}/preavis-retraite/depart-mise.spec.ts +41 -50
  110. package/src/{__test__/1483-habillement-textiles-commerce-de-detail → modeles/conventions/1483_habillement_textiles_commerce_de_detail/__tests__}/preavis-retraite/references.spec.ts +11 -16
  111. package/src/modeles/conventions/1483_habillement_textiles_commerce_de_detail/common.yaml +9 -0
  112. package/src/modeles/conventions/{1483_habillement_textiles_commerce_de_detail.yaml → 1483_habillement_textiles_commerce_de_detail/preavis-retraite.yaml} +0 -9
  113. package/src/modeles/conventions/1486_bureaux_etudes_techniques/__tests__/indemnite-licenciement/anciennete.spec.ts +50 -0
  114. package/src/modeles/conventions/1486_bureaux_etudes_techniques/__tests__/indemnite-licenciement/formule.spec.ts +77 -0
  115. package/src/modeles/conventions/1486_bureaux_etudes_techniques/__tests__/indemnite-licenciement/indemnite.spec.ts +95 -0
  116. package/src/modeles/conventions/1486_bureaux_etudes_techniques/__tests__/indemnite-licenciement/references.spec.ts +109 -0
  117. package/src/modeles/conventions/1486_bureaux_etudes_techniques/__tests__/indemnite-licenciement/salaire-ref.spec.ts +31 -0
  118. package/src/{__test__/1486-bureaux-etudes → modeles/conventions/1486_bureaux_etudes_techniques/__tests__}/preavis-retraite/depart-mise.spec.ts +24 -26
  119. package/src/{__test__/1486-bureaux-etudes → modeles/conventions/1486_bureaux_etudes_techniques/__tests__}/preavis-retraite/references.spec.ts +18 -25
  120. package/src/modeles/conventions/1486_bureaux_etudes_techniques/common.yaml +9 -0
  121. package/src/modeles/conventions/1486_bureaux_etudes_techniques/indemnite-licenciement.yaml +182 -0
  122. package/src/modeles/conventions/1486_bureaux_etudes_techniques/index.ts +2 -0
  123. package/src/modeles/conventions/{1486_bureaux_etudes_techniques.yaml → 1486_bureaux_etudes_techniques/preavis-retraite.yaml} +0 -9
  124. package/src/modeles/conventions/1486_bureaux_etudes_techniques/salary.ts +66 -0
  125. package/src/modeles/conventions/1486_bureaux_etudes_techniques/seniority.ts +67 -0
  126. package/src/modeles/conventions/1501_restauration_rapide/__tests__/indemnite-licenciement/formule.spec.ts +81 -0
  127. package/src/modeles/conventions/1501_restauration_rapide/__tests__/indemnite-licenciement/indemnite.spec.ts +85 -0
  128. package/src/modeles/conventions/1501_restauration_rapide/__tests__/indemnite-licenciement/references.spec.ts +61 -0
  129. package/src/{__test__/1501-restauration-rapide → modeles/conventions/1501_restauration_rapide/__tests__}/preavis-retraite/depart-mise.spec.ts +37 -40
  130. package/src/modeles/conventions/1501_restauration_rapide/common.yaml +9 -0
  131. package/src/modeles/conventions/1501_restauration_rapide/indemnite-licenciement.yaml +323 -0
  132. package/src/modeles/conventions/{1501_restauration_rapide.yaml → 1501_restauration_rapide/preavis-retraite.yaml} +0 -9
  133. package/src/{__test__/1505-commerce-detail-fruits-legumes → modeles/conventions/1505_commerces_detail_fruits_legumes/__tests__}/preavis-retraite/depart-mise.spec.ts +45 -55
  134. package/src/modeles/conventions/1505_commerces_detail_fruits_legumes/common.yaml +8 -0
  135. package/src/modeles/conventions/{1505_commerces_detail_fruits_legumes.yaml → 1505_commerces_detail_fruits_legumes/preavis-retraite.yaml} +0 -8
  136. package/src/modeles/conventions/1516_organismes_formation/__tests__/indemnite-licenciement/formule.spec.ts +36 -0
  137. package/src/modeles/conventions/1516_organismes_formation/__tests__/indemnite-licenciement/indemnite.spec.ts +34 -0
  138. package/src/modeles/conventions/1516_organismes_formation/__tests__/indemnite-licenciement/references.spec.ts +42 -0
  139. package/src/modeles/conventions/1516_organismes_formation/__tests__/indemnite-licenciement/salaire-ref.spec.ts +92 -0
  140. package/src/modeles/conventions/1516_organismes_formation/__tests__/preavis-retraite/depart-mise.spec.ts +95 -0
  141. package/src/modeles/conventions/1516_organismes_formation/common.yaml +8 -0
  142. package/src/modeles/conventions/1516_organismes_formation/indemnite-licenciement.yaml +60 -0
  143. package/src/modeles/conventions/1516_organismes_formation/index.ts +1 -0
  144. package/src/modeles/conventions/{1516_organismes_formation.yaml → 1516_organismes_formation/preavis-retraite.yaml} +0 -8
  145. package/src/modeles/conventions/1516_organismes_formation/salary.ts +54 -0
  146. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/__tests__/indemnite-licenciement/anciennete.spec.ts +54 -0
  147. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/__tests__/indemnite-licenciement/formule.spec.ts +34 -0
  148. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/__tests__/indemnite-licenciement/indemnite.spec.ts +37 -0
  149. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/__tests__/indemnite-licenciement/references.spec.ts +42 -0
  150. package/src/{__test__/1517-commerce-detail-non-alimentaire → modeles/conventions/1517_commerces_de_detail_non_alimentaires/__tests__}/preavis-retraite/depart-mise.spec.ts +28 -33
  151. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/common.yaml +8 -0
  152. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/indemnite-licenciement.yaml +73 -0
  153. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/index.ts +1 -0
  154. package/src/modeles/conventions/{1517_commerces_de_detail_non_alimentaires.yaml → 1517_commerces_de_detail_non_alimentaires/preavis-retraite.yaml} +0 -8
  155. package/src/modeles/conventions/1517_commerces_de_detail_non_alimentaires/seniority.ts +22 -0
  156. package/src/modeles/conventions/1518_education_loisirs/__tests__/indemnite-licenciement/anciennete.spec.ts +32 -0
  157. package/src/modeles/conventions/1518_education_loisirs/__tests__/indemnite-licenciement/formule.spec.ts +35 -0
  158. package/src/modeles/conventions/1518_education_loisirs/__tests__/indemnite-licenciement/indemnite.spec.ts +37 -0
  159. package/src/modeles/conventions/1518_education_loisirs/__tests__/indemnite-licenciement/references.spec.ts +47 -0
  160. package/src/{__test__/1518-education-loisirs → modeles/conventions/1518_education_loisirs/__tests__}/preavis-retraite/depart-mise.spec.ts +33 -38
  161. package/src/modeles/conventions/1518_education_loisirs/common.yaml +8 -0
  162. package/src/modeles/conventions/1518_education_loisirs/indemnite-licenciement.yaml +11 -0
  163. package/src/modeles/conventions/1518_education_loisirs/index.ts +1 -0
  164. package/src/modeles/conventions/{1518_education_loisirs.yaml → 1518_education_loisirs/preavis-retraite.yaml} +0 -8
  165. package/src/modeles/conventions/1518_education_loisirs/seniority.ts +20 -0
  166. package/src/modeles/conventions/1527_immobilier/__tests__/indemnite-licenciement/anciennete.spec.ts +34 -0
  167. package/src/modeles/conventions/1527_immobilier/__tests__/indemnite-licenciement/formule.spec.ts +32 -0
  168. package/src/modeles/conventions/1527_immobilier/__tests__/indemnite-licenciement/indemnite.spec.ts +35 -0
  169. package/src/modeles/conventions/1527_immobilier/__tests__/indemnite-licenciement/references.spec.ts +57 -0
  170. package/src/modeles/conventions/1527_immobilier/__tests__/indemnite-licenciement/salaire-ref.spec.ts +73 -0
  171. package/src/{__test__/1527-immobilier → modeles/conventions/1527_immobilier/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  172. package/src/modeles/conventions/1527_immobilier/common.yaml +8 -0
  173. package/src/modeles/conventions/1527_immobilier/indemnite-licenciement.yaml +13 -0
  174. package/src/modeles/conventions/1527_immobilier/index.ts +2 -0
  175. package/src/modeles/conventions/{1527_immobilier.yaml → 1527_immobilier/preavis-retraite.yaml} +0 -8
  176. package/src/modeles/conventions/1527_immobilier/salary.ts +37 -0
  177. package/src/modeles/conventions/1527_immobilier/seniority.ts +106 -0
  178. package/src/modeles/conventions/1596_batiment_ouvriers_employes/__tests__/indemnite-licenciement/formule.spec.ts +39 -0
  179. package/src/modeles/conventions/1596_batiment_ouvriers_employes/__tests__/indemnite-licenciement/indemnite.spec.ts +82 -0
  180. package/src/modeles/conventions/1596_batiment_ouvriers_employes/__tests__/indemnite-licenciement/references.spec.ts +89 -0
  181. package/src/{__test__/1596-batiment-ouvriers-employes → modeles/conventions/1596_batiment_ouvriers_employes/__tests__}/preavis-retraite/depart-mise.spec.ts +16 -20
  182. package/src/modeles/conventions/1596_batiment_ouvriers_employes/common.yaml +8 -0
  183. package/src/modeles/conventions/1596_batiment_ouvriers_employes/indemnite-licenciement.yaml +179 -0
  184. package/src/modeles/conventions/{1596_batiment_ouvriers_employes.yaml → 1596_batiment_ouvriers_employes/preavis-retraite.yaml} +0 -8
  185. package/src/modeles/conventions/1597_batiment_employes_ouvriers_bis/__tests__/indemnite-licenciement/formule.spec.ts +38 -0
  186. package/src/modeles/conventions/1597_batiment_employes_ouvriers_bis/__tests__/indemnite-licenciement/indemnite.spec.ts +83 -0
  187. package/src/modeles/conventions/1597_batiment_employes_ouvriers_bis/__tests__/indemnite-licenciement/references.spec.ts +85 -0
  188. package/src/{__test__/1597-employes-ouvriers-bis → modeles/conventions/1597_batiment_employes_ouvriers_bis/__tests__}/preavis-retraite/depart-mise.spec.ts +16 -20
  189. package/src/modeles/conventions/1597_batiment_employes_ouvriers_bis/common.yaml +8 -0
  190. package/src/modeles/conventions/1597_batiment_employes_ouvriers_bis/indemnite-licenciement.yaml +204 -0
  191. package/src/modeles/conventions/{1597_batiment_employes_ouvriers_bis.yaml → 1597_batiment_employes_ouvriers_bis/preavis-retraite.yaml} +0 -8
  192. package/src/{__test__/1606-bricolage → modeles/conventions/1606_bricolage/__tests__}/preavis-retraite/depart-mise.spec.ts +46 -51
  193. package/src/modeles/conventions/1606_bricolage/common.yaml +8 -0
  194. package/src/modeles/conventions/{1606_bricolage.yaml → 1606_bricolage/preavis-retraite.yaml} +0 -11
  195. package/src/{__test__/1672-societes-assurances → modeles/conventions/1672_societes_assurances/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  196. package/src/modeles/conventions/1672_societes_assurances/common.yaml +8 -0
  197. package/src/modeles/conventions/{1672_societes_assurances.yaml → 1672_societes_assurances/preavis-retraite.yaml} +0 -8
  198. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/anciennete.spec.ts +72 -0
  199. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/formule.spec.ts +285 -0
  200. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/indemnite.spec.ts +293 -0
  201. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/missing-args.spec.ts +223 -0
  202. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/references.spec.ts +253 -0
  203. package/src/modeles/conventions/16_transports_routiers/__tests__/indemnite-licenciement/salaire-ref.spec.ts +244 -0
  204. package/src/{__test__/16-transports-routiers → modeles/conventions/16_transports_routiers/__tests__}/preavis-retraite/depart-mise.spec.ts +63 -69
  205. package/src/{__test__/16-transports-routiers → modeles/conventions/16_transports_routiers/__tests__}/preavis-retraite/references.spec.ts +14 -18
  206. package/src/modeles/conventions/16_transports_routiers/common.yaml +1 -45
  207. package/src/modeles/conventions/16_transports_routiers/indemnite-licenciement.yaml +593 -0
  208. package/src/modeles/conventions/16_transports_routiers/index.ts +2 -0
  209. package/src/modeles/conventions/16_transports_routiers/preavis-retraite.yaml +45 -0
  210. package/src/modeles/conventions/16_transports_routiers/salary.ts +87 -0
  211. package/src/modeles/conventions/16_transports_routiers/seniority.ts +126 -0
  212. package/src/modeles/conventions/1702_ouvriers_travaux_public/__tests__/indemnite-licenciement/formule.spec.ts +64 -0
  213. package/src/modeles/conventions/1702_ouvriers_travaux_public/__tests__/indemnite-licenciement/indemnite.spec.ts +72 -0
  214. package/src/modeles/conventions/1702_ouvriers_travaux_public/__tests__/indemnite-licenciement/references.spec.ts +44 -0
  215. package/src/modeles/conventions/1702_ouvriers_travaux_public/__tests__/indemnite-licenciement/salaire-ref.spec.ts +82 -0
  216. package/src/{__test__/1702-ouvriers-travaux-public → modeles/conventions/1702_ouvriers_travaux_public/__tests__}/preavis-retraite/depart-mise.spec.ts +27 -32
  217. package/src/modeles/conventions/1702_ouvriers_travaux_public/common.yaml +8 -0
  218. package/src/modeles/conventions/1702_ouvriers_travaux_public/indemnite-licenciement.yaml +108 -0
  219. package/src/modeles/conventions/1702_ouvriers_travaux_public/index.ts +1 -0
  220. package/src/modeles/conventions/{1702_ouvriers_travaux_public.yaml → 1702_ouvriers_travaux_public/preavis-retraite.yaml} +0 -8
  221. package/src/modeles/conventions/1702_ouvriers_travaux_public/salary.ts +44 -0
  222. package/src/{__test__/1740-batiment-ouvriers-parisien → modeles/conventions/1740_batiment_region_parisienne/__tests__}/depart-mise.spec.ts +41 -51
  223. package/src/modeles/conventions/1740_batiment_region_parisienne/common.yaml +8 -0
  224. package/src/modeles/conventions/{1740_batiment_region_parisienne.yaml → 1740_batiment_region_parisienne/preavis-retraite.yaml} +0 -8
  225. package/src/{__test__/176-industrie-pharmaceutique → modeles/conventions/176_industrie_pharmaceutique/__tests__}/preavis-retraite/depart-mise.spec.ts +67 -79
  226. package/src/{__test__/176-industrie-pharmaceutique → modeles/conventions/176_industrie_pharmaceutique/__tests__}/preavis-retraite/references.spec.ts +37 -43
  227. package/src/modeles/conventions/176_industrie_pharmaceutique/common.yaml +9 -0
  228. package/src/modeles/conventions/{176_industrie_pharmaceutique.yaml → 176_industrie_pharmaceutique/preavis-retraite.yaml} +0 -9
  229. package/src/modeles/conventions/1979_hotels_cafes_restaurants/__tests__/indemnite-licenciement/formule.spec.ts +34 -0
  230. package/src/modeles/conventions/1979_hotels_cafes_restaurants/__tests__/indemnite-licenciement/indemnite.spec.ts +38 -0
  231. package/src/modeles/conventions/1979_hotels_cafes_restaurants/__tests__/indemnite-licenciement/references.spec.ts +42 -0
  232. package/src/{__test__/1979-hotels-cafes-restaurants → modeles/conventions/1979_hotels_cafes_restaurants/__tests__}/preavis-retraite/depart-mise.spec.ts +35 -38
  233. package/src/modeles/conventions/1979_hotels_cafes_restaurants/common.yaml +8 -0
  234. package/src/modeles/conventions/1979_hotels_cafes_restaurants/indemnite-licenciement.yaml +70 -0
  235. package/src/modeles/conventions/{1979_hotels_cafes_restaurants.yaml → 1979_hotels_cafes_restaurants/preavis-retraite.yaml} +0 -8
  236. package/src/{__test__/1996-pharmacie → modeles/conventions/1996_pharmacie/__tests__}/preavis-retraite/depart-mise.spec.ts +60 -64
  237. package/src/modeles/conventions/1996_pharmacie/common.yaml +7 -0
  238. package/src/modeles/conventions/{1996_pharmacie.yaml → 1996_pharmacie/preavis-retraite.yaml} +0 -8
  239. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/anciennete.spec.ts +28 -0
  240. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/formule.spec.ts +110 -0
  241. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/indemnite.spec.ts +119 -0
  242. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/missing-var.spec.ts +77 -0
  243. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/references.spec.ts +109 -0
  244. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__/indemnite-licenciement/salaire-ref.spec.ts +58 -0
  245. package/src/{__test__/2098-personnel-presta-service → modeles/conventions/2098_personnel_presta_service_tertiaire/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  246. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/common.yaml +8 -0
  247. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/indemnite-licenciement.yaml +272 -0
  248. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/index.ts +2 -0
  249. package/src/modeles/conventions/{2098_personnel_presta_service_tertiaire.yaml → 2098_personnel_presta_service_tertiaire/preavis-retraite.yaml} +0 -8
  250. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/salary.ts +33 -0
  251. package/src/modeles/conventions/2098_personnel_presta_service_tertiaire/seniority.ts +20 -0
  252. package/src/modeles/conventions/2120_banque/__tests__/preavis-retraite/depart-mise-retraite-banque.spec.ts +86 -0
  253. package/src/modeles/conventions/2120_banque/common.yaml +8 -0
  254. package/src/modeles/conventions/2120_banque/preavis-retraite.yaml +6 -0
  255. package/src/{__test__/2148-telecommunications → modeles/conventions/2148_telecommunications/__tests__}/preavis-retraite/depart-mise.spec.ts +69 -85
  256. package/src/modeles/conventions/2148_telecommunications/common.yaml +8 -0
  257. package/src/modeles/conventions/{2148_telecommunications.yaml → 2148_telecommunications/preavis-retraite.yaml} +0 -8
  258. package/src/modeles/conventions/2216_commerces_detail_alimentation/__tests__/indemnite-licenciement/anciennete.spec.ts +48 -0
  259. package/src/modeles/conventions/2216_commerces_detail_alimentation/__tests__/indemnite-licenciement/formule.spec.ts +79 -0
  260. package/src/modeles/conventions/2216_commerces_detail_alimentation/__tests__/indemnite-licenciement/indemnite.spec.ts +113 -0
  261. package/src/modeles/conventions/2216_commerces_detail_alimentation/__tests__/indemnite-licenciement/r/303/251f/303/251rences.spec.ts +126 -0
  262. package/src/{__test__/2216-commerces-detail-alimentation → modeles/conventions/2216_commerces_detail_alimentation/__tests__}/preavis-retraite/depart-mise.spec.ts +26 -28
  263. package/src/{__test__/2216-commerces-detail-alimentation → modeles/conventions/2216_commerces_detail_alimentation/__tests__}/preavis-retraite/references.spec.ts +17 -24
  264. package/src/modeles/conventions/2216_commerces_detail_alimentation/common.yaml +9 -0
  265. package/src/modeles/conventions/2216_commerces_detail_alimentation/indemnite-licenciement.yaml +460 -0
  266. package/src/modeles/conventions/2216_commerces_detail_alimentation/index.ts +1 -0
  267. package/src/modeles/conventions/{2216_commerces_detail_alimentation.yaml → 2216_commerces_detail_alimentation/preavis-retraite.yaml} +0 -9
  268. package/src/modeles/conventions/2216_commerces_detail_alimentation/seniority.ts +76 -0
  269. package/src/modeles/conventions/2264_hospitalisation_privees/__tests__/indemnite-licenciement/formula.spec.ts +76 -0
  270. package/src/modeles/conventions/2264_hospitalisation_privees/__tests__/indemnite-licenciement/indemnite.spec.ts +111 -0
  271. package/src/modeles/conventions/2264_hospitalisation_privees/__tests__/indemnite-licenciement/missing-args.spec.ts +109 -0
  272. package/src/modeles/conventions/2264_hospitalisation_privees/__tests__/indemnite-licenciement/references.spec.ts +110 -0
  273. package/src/{__test__/2264-hospitalisation-privee → modeles/conventions/2264_hospitalisation_privees/__tests__/preavis-retraite}/depart-mise.spec.ts +28 -33
  274. package/src/modeles/conventions/2264_hospitalisation_privees/common.yaml +8 -0
  275. package/src/modeles/conventions/2264_hospitalisation_privees/indemnite-licenciement.yaml +445 -0
  276. package/src/modeles/conventions/{2264_hospitalisation_privees.yaml → 2264_hospitalisation_privees/preavis-retraite.yaml} +0 -8
  277. package/src/{__test__/2420-batiment-cadres → modeles/conventions/2420_cadres_batiment/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  278. package/src/modeles/conventions/2420_cadres_batiment/common.yaml +8 -0
  279. package/src/modeles/conventions/{2420_cadres_batiment.yaml → 2420_cadres_batiment/preavis-retraite.yaml} +0 -8
  280. package/src/modeles/conventions/2511_sport/__tests__/indemnite-licenciement/anciennete.spec.ts +43 -0
  281. package/src/modeles/conventions/2511_sport/__tests__/indemnite-licenciement/formule.spec.ts +32 -0
  282. package/src/modeles/conventions/2511_sport/__tests__/indemnite-licenciement/indemnite.spec.ts +35 -0
  283. package/src/modeles/conventions/2511_sport/__tests__/indemnite-licenciement/references.spec.ts +47 -0
  284. package/src/{__test__/2511-sport → modeles/conventions/2511_sport/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  285. package/src/modeles/conventions/2511_sport/common.yaml +31 -0
  286. package/src/modeles/conventions/2511_sport/indemnite-licenciement.yaml +70 -0
  287. package/src/modeles/conventions/2511_sport/index.ts +1 -0
  288. package/src/modeles/conventions/{2511_sport.yaml → 2511_sport/preavis-retraite.yaml} +0 -31
  289. package/src/modeles/conventions/2511_sport/seniority.ts +23 -0
  290. package/src/{__test__/2596-coiffure → modeles/conventions/2596_coiffure/__tests__}/preavis-retraite/depart-mise.spec.ts +54 -59
  291. package/src/modeles/conventions/2596_coiffure/common.yaml +8 -0
  292. package/src/modeles/conventions/{2596_coiffure.yaml → 2596_coiffure/preavis-retraite.yaml} +0 -8
  293. package/src/modeles/conventions/2609_batiment_etam/__tests__/indemnite-licenciement/anciennete.spec.ts +30 -0
  294. package/src/modeles/conventions/2609_batiment_etam/__tests__/indemnite-licenciement/formule.spec.ts +48 -0
  295. package/src/modeles/conventions/2609_batiment_etam/__tests__/indemnite-licenciement/indemnite.spec.ts +60 -0
  296. package/src/modeles/conventions/2609_batiment_etam/__tests__/indemnite-licenciement/references.spec.ts +64 -0
  297. package/src/modeles/conventions/2609_batiment_etam/__tests__/indemnite-licenciement/salaire-ref.spec.ts +37 -0
  298. package/src/{__test__/2609-batiment-etam → modeles/conventions/2609_batiment_etam/__tests__}/preavis-retraite/depart-mise.spec.ts +18 -20
  299. package/src/{__test__/2609-batiment-etam → modeles/conventions/2609_batiment_etam/__tests__}/preavis-retraite/references.spec.ts +12 -17
  300. package/src/modeles/conventions/2609_batiment_etam/common.yaml +9 -0
  301. package/src/modeles/conventions/2609_batiment_etam/indemnite-licenciement.yaml +192 -0
  302. package/src/modeles/conventions/2609_batiment_etam/index.ts +2 -0
  303. package/src/modeles/conventions/{2609_batiment_etam.yaml → 2609_batiment_etam/preavis-retraite.yaml} +0 -9
  304. package/src/modeles/conventions/2609_batiment_etam/salary.ts +29 -0
  305. package/src/modeles/conventions/2609_batiment_etam/seniority.ts +20 -0
  306. package/src/{__test__/2614-travaux-publics → modeles/conventions/2614_travaux_publics/__tests__}/preavis-retraite/depart-mise.spec.ts +29 -34
  307. package/src/modeles/conventions/2614_travaux_publics/common.yaml +8 -0
  308. package/src/modeles/conventions/{2614_travaux_publics.yaml → 2614_travaux_publics/preavis-retraite.yaml} +0 -8
  309. package/src/{__test__/275-transport-aerien-personnel-au-sol → modeles/conventions/275_transport_aerien_personnel_au_sol/__tests__}/preavis-retraite/depart-mise.spec.ts +18 -20
  310. package/src/{__test__/275-transport-aerien-personnel-au-sol → modeles/conventions/275_transport_aerien_personnel_au_sol/__tests__}/preavis-retraite/references.spec.ts +12 -17
  311. package/src/modeles/conventions/275_transport_aerien_personnel_au_sol/common.yaml +9 -0
  312. package/src/modeles/conventions/{275_transport_aerien_personnel_au_sol.yaml → 275_transport_aerien_personnel_au_sol/preavis-retraite.yaml} +0 -9
  313. package/src/{__test__/292-plasturgie → modeles/conventions/292_plasturgie/__tests__}/preavis-retraite/depart-mise.spec.ts +34 -36
  314. package/src/{__test__/292-plasturgie → modeles/conventions/292_plasturgie/__tests__}/preavis-retraite/references.spec.ts +25 -31
  315. package/src/modeles/conventions/292_plasturgie/common.yaml +9 -0
  316. package/src/modeles/conventions/{292_plasturgie.yaml → 292_plasturgie/preavis-retraite.yaml} +0 -9
  317. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/indemnite-licenciement/anciennete.spec.ts +34 -0
  318. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/indemnite-licenciement/formule.spec.ts +34 -0
  319. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/indemnite-licenciement/indemnite.spec.ts +36 -0
  320. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/indemnite-licenciement/notifications.spec.ts +23 -0
  321. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/indemnite-licenciement/references.spec.ts +47 -0
  322. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__/preavis-retraite/depart-mise.spec.ts +87 -0
  323. package/src/{__test__/2941-aide-accompagnement-soins-services-domicile → modeles/conventions/2941_aide_accompagnement_soins_services_domicile/__tests__}/preavis-retraite/references.spec.ts +19 -26
  324. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/common.yaml +8 -0
  325. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/indemnite-licenciement.yaml +11 -0
  326. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/index.ts +1 -0
  327. package/src/modeles/conventions/{2941_aide_accompagnement_soins_services_domicile.yaml → 2941_aide_accompagnement_soins_services_domicile/preavis-retraite.yaml} +0 -8
  328. package/src/modeles/conventions/2941_aide_accompagnement_soins_services_domicile/seniority.ts +95 -0
  329. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__/indemnite-licenciement/formule.spec.ts +34 -0
  330. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__/indemnite-licenciement/indemnite.spec.ts +95 -0
  331. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__/indemnite-licenciement/references.spec.ts +85 -0
  332. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__/indemnite-licenciement/salaire-ref.spec.ts +128 -0
  333. package/src/{__test__/29-hospitalisation-privee-but-non-lucratif → modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__}/preavis-retraite/depart.spec.ts +27 -32
  334. package/src/{__test__/29-hospitalisation-privee-but-non-lucratif → modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__}/preavis-retraite/mise.spec.ts +27 -32
  335. package/src/{__test__/29-hospitalisation-privee-but-non-lucratif → modeles/conventions/29_hospitalisation_privee_but_non_lucratif/__tests__}/preavis-retraite/references.spec.ts +12 -17
  336. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/common.yaml +9 -0
  337. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/indemnite-licenciement.yaml +54 -0
  338. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/index.ts +1 -0
  339. package/src/modeles/conventions/{29_hospitalisation_privee_but_non_lucratif.yaml → 29_hospitalisation_privee_but_non_lucratif/preavis-retraite.yaml} +0 -9
  340. package/src/modeles/conventions/29_hospitalisation_privee_but_non_lucratif/salary.ts +50 -0
  341. package/src/modeles/conventions/3043_entreprises_proprete/__tests__/indemnite-licenciement/anciennete.spec.ts +43 -0
  342. package/src/modeles/conventions/3043_entreprises_proprete/__tests__/indemnite-licenciement/formule.spec.ts +38 -0
  343. package/src/modeles/conventions/3043_entreprises_proprete/__tests__/indemnite-licenciement/indemnite.spec.ts +38 -0
  344. package/src/modeles/conventions/3043_entreprises_proprete/__tests__/indemnite-licenciement/references.spec.ts +43 -0
  345. package/src/{__test__/3043-entreprise-proprete → modeles/conventions/3043_entreprises_proprete/__tests__}/preavis-retraite/depart-mise.spec.ts +30 -32
  346. package/src/{__test__/3043-entreprise-proprete → modeles/conventions/3043_entreprises_proprete/__tests__}/preavis-retraite/references.spec.ts +11 -16
  347. package/src/modeles/conventions/3043_entreprises_proprete/common.yaml +9 -0
  348. package/src/modeles/conventions/3043_entreprises_proprete/indemnite-licenciement.yaml +137 -0
  349. package/src/modeles/conventions/3043_entreprises_proprete/index.ts +1 -0
  350. package/src/modeles/conventions/{3043_entreprises_proprete.yaml → 3043_entreprises_proprete/preavis-retraite.yaml} +0 -9
  351. package/src/modeles/conventions/3043_entreprises_proprete/seniority.ts +14 -0
  352. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/__tests__/indemnite-licenciement/anciennete.spec.ts +32 -0
  353. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/__tests__/indemnite-licenciement/formule.spec.ts +33 -0
  354. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/__tests__/indemnite-licenciement/indemnite.spec.ts +34 -0
  355. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/__tests__/indemnite-licenciement/references.spec.ts +42 -0
  356. package/src/{__test__/3127-ent-services-personne → modeles/conventions/3127_entreprises_services_a_la_personne/__tests__}/preavis-retraite/depart-mise.spec.ts +37 -42
  357. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/common.yaml +8 -0
  358. package/src/modeles/conventions/3127_entreprises_services_a_la_personne/indemnite-licenciement.yaml +65 -0
  359. package/src/modeles/conventions/{3127_entreprises_services_a_la_personne.yaml → 3127_entreprises_services_a_la_personne/preavis-retraite.yaml} +0 -8
  360. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/anciennete.spec.ts +42 -0
  361. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/formule.spec.ts +43 -0
  362. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/indemnite.spec.ts +77 -0
  363. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/notifications.spec.ts +149 -0
  364. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/r/303/251f/303/251rences.spec.ts +128 -0
  365. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/__tests__/indemnite-licenciement/salaire-ref.spec.ts +31 -0
  366. package/src/{__test__/3239-particuliers-employeurs-domicile → modeles/conventions/3239_particuliers_employeurs_domicile/__tests__}/preavis-retraite/depart-mise.spec.ts +61 -73
  367. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/common.yaml +9 -0
  368. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/indemnite-licenciement.yaml +98 -0
  369. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/index.ts +2 -0
  370. package/src/modeles/conventions/{3239_particuliers_employeurs_domicile.yaml → 3239_particuliers_employeurs_domicile/preavis-retraite.yaml} +0 -8
  371. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/salary.ts +39 -0
  372. package/src/modeles/conventions/3239_particuliers_employeurs_domicile/seniority.ts +30 -0
  373. package/src/modeles/conventions/413_handicap/__tests__/indemnite-licenciement/anciennete.spec.ts +72 -0
  374. package/src/modeles/conventions/413_handicap/__tests__/indemnite-licenciement/formule.spec.ts +84 -0
  375. package/src/modeles/conventions/413_handicap/__tests__/indemnite-licenciement/indemnite.spec.ts +97 -0
  376. package/src/modeles/conventions/413_handicap/__tests__/indemnite-licenciement/references.spec.ts +109 -0
  377. package/src/modeles/conventions/413_handicap/__tests__/indemnite-licenciement/salaire-ref.spec.ts +25 -0
  378. package/src/{__test__/413-handicap → modeles/conventions/413_handicap/__tests__}/preavis-retraite/depart-mise.spec.ts +34 -41
  379. package/src/{__test__/413-handicap → modeles/conventions/413_handicap/__tests__}/preavis-retraite/references.spec.ts +12 -17
  380. package/src/modeles/conventions/413_handicap/common.yaml +9 -0
  381. package/src/modeles/conventions/413_handicap/indemnite-licenciement.yaml +230 -0
  382. package/src/modeles/conventions/413_handicap/index.ts +2 -0
  383. package/src/modeles/conventions/{413_handicap.yaml → 413_handicap/preavis-retraite.yaml} +0 -9
  384. package/src/modeles/conventions/413_handicap/salary.ts +22 -0
  385. package/src/modeles/conventions/413_handicap/seniority.ts +125 -0
  386. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/anciennete.spec.ts +294 -0
  387. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/formule.spec.ts +372 -0
  388. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/indemnite.spec.ts +350 -0
  389. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/missing-var.spec.ts +130 -0
  390. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/references.spec.ts +308 -0
  391. package/src/modeles/conventions/44_industries_chimiques/__tests__/indemnite-licenciement/salaire-ref.spec.ts +203 -0
  392. package/src/modeles/conventions/44_industries_chimiques/__tests__/preavis-retraite/depart-mise.spec.ts +135 -0
  393. package/src/{__test__/44-industries-chimiques → modeles/conventions/44_industries_chimiques/__tests__}/preavis-retraite/references.spec.ts +20 -26
  394. package/src/modeles/conventions/44_industries_chimiques/common.yaml +9 -0
  395. package/src/modeles/conventions/44_industries_chimiques/indemnite-licenciement.yaml +754 -0
  396. package/src/modeles/conventions/44_industries_chimiques/index.ts +2 -0
  397. package/src/modeles/conventions/{44_industries_chimiques.yaml → 44_industries_chimiques/preavis-retraite.yaml} +0 -9
  398. package/src/modeles/conventions/44_industries_chimiques/salary.ts +75 -0
  399. package/src/modeles/conventions/44_industries_chimiques/seniority.ts +75 -0
  400. package/src/modeles/conventions/54_industries_metallurgiques_region_parisienne/__tests__/preavis-retraite/depart-mise.spec.ts +55 -0
  401. package/src/{__test__/54-industries-metallurgiques-region-parisienne → modeles/conventions/54_industries_metallurgiques_region_parisienne/__tests__}/preavis-retraite/references.spec.ts +11 -16
  402. package/src/modeles/conventions/54_industries_metallurgiques_region_parisienne/common.yaml +9 -0
  403. package/src/modeles/conventions/{54_industries_metallurgiques_region_parisienne.yaml → 54_industries_metallurgiques_region_parisienne/preavis-retraite.yaml} +0 -9
  404. package/src/modeles/conventions/573_commerces_de_gros/__tests__/indemnite-licenciement/formule.spec.ts +124 -0
  405. package/src/modeles/conventions/573_commerces_de_gros/__tests__/indemnite-licenciement/indemnite.spec.ts +128 -0
  406. package/src/modeles/conventions/573_commerces_de_gros/__tests__/indemnite-licenciement/references.spec.ts +162 -0
  407. package/src/modeles/conventions/573_commerces_de_gros/__tests__/indemnite-licenciement/salaire-ref.spec.ts +32 -0
  408. package/src/{__test__/573-commerces-de-gros → modeles/conventions/573_commerces_de_gros/__tests__}/preavis-retraite/depart-mise.spec.ts +38 -45
  409. package/src/{__test__/573-commerces-de-gros → modeles/conventions/573_commerces_de_gros/__tests__}/preavis-retraite/references.spec.ts +12 -17
  410. package/src/modeles/conventions/573_commerces_de_gros/common.yaml +9 -0
  411. package/src/modeles/conventions/573_commerces_de_gros/indemnite-licenciement.yaml +414 -0
  412. package/src/modeles/conventions/573_commerces_de_gros/index.ts +1 -0
  413. package/src/modeles/conventions/{573_commerces_de_gros.yaml → 573_commerces_de_gros/preavis-retraite.yaml} +0 -9
  414. package/src/modeles/conventions/573_commerces_de_gros/salary.ts +50 -0
  415. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__/indemnite-licenciement/anciennete.spec.ts +44 -0
  416. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__/indemnite-licenciement/formule.spec.ts +69 -0
  417. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__/indemnite-licenciement/indemnite.spec.ts +261 -0
  418. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__/indemnite-licenciement/notifications.spec.ts +219 -0
  419. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__/indemnite-licenciement/references.spec.ts +132 -0
  420. package/src/{__test__/650-metallurgie-ingenieurs-cadres → modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__}/preavis-retraite/depart-mise.spec.ts +32 -39
  421. package/src/{__test__/650-metallurgie-ingenieurs-cadres → modeles/conventions/650_metallurgie_ingenieurs_cadres/__tests__}/preavis-retraite/references.spec.ts +17 -24
  422. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/common.yaml +9 -0
  423. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/indemnite-licenciement.yaml +361 -0
  424. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/index.ts +1 -0
  425. package/src/modeles/conventions/{650_metallurgie_ingenieurs_cadres.yaml → 650_metallurgie_ingenieurs_cadres/preavis-retraite.yaml} +0 -10
  426. package/src/modeles/conventions/650_metallurgie_ingenieurs_cadres/seniority.ts +14 -0
  427. package/src/{__test__/675-habillement-commerce-succursales → modeles/conventions/675_habillement_commerce_succursales/__tests__}/preavis-retraite/depart-mise.spec.ts +22 -24
  428. package/src/{__test__/675-habillement-commerce-succursales → modeles/conventions/675_habillement_commerce_succursales/__tests__}/preavis-retraite/references.spec.ts +12 -17
  429. package/src/modeles/conventions/675_habillement_commerce_succursales/common.yaml +9 -0
  430. package/src/modeles/conventions/{675_habillement_commerce_succursales.yaml → 675_habillement_commerce_succursales/preavis-retraite.yaml} +0 -9
  431. package/src/modeles/conventions/787_comptables/__tests__/indemnite-licenciement/formule.spec.ts +33 -0
  432. package/src/modeles/conventions/787_comptables/__tests__/indemnite-licenciement/indemnite.spec.ts +35 -0
  433. package/src/modeles/conventions/787_comptables/__tests__/indemnite-licenciement/references.spec.ts +38 -0
  434. package/src/{__test__/787-comptables → modeles/conventions/787_comptables/__tests__}/preavis-retraite/depart-mise.spec.ts +18 -20
  435. package/src/{__test__/787-comptables → modeles/conventions/787_comptables/__tests__}/preavis-retraite/references.spec.ts +11 -16
  436. package/src/modeles/conventions/787_comptables/common.yaml +9 -0
  437. package/src/modeles/conventions/787_comptables/indemnite-licenciement.yaml +10 -0
  438. package/src/modeles/conventions/{787_comptables.yaml → 787_comptables/preavis-retraite.yaml} +0 -9
  439. package/src/modeles/conventions/843_boulangerie_patisserie/__tests__/indemnite-licenciement/formule.spec.ts +33 -0
  440. package/src/modeles/conventions/843_boulangerie_patisserie/__tests__/indemnite-licenciement/indemnite.spec.ts +35 -0
  441. package/src/modeles/conventions/843_boulangerie_patisserie/__tests__/indemnite-licenciement/references.spec.ts +38 -0
  442. package/src/{__test__/843-boulangerie-patisserie-entreprise-artisanales → modeles/conventions/843_boulangerie_patisserie/__tests__}/preavis-retraite/depart-mise.spec.ts +20 -22
  443. package/src/{__test__/843-boulangerie-patisserie-entreprise-artisanales → modeles/conventions/843_boulangerie_patisserie/__tests__}/preavis-retraite/references.spec.ts +12 -17
  444. package/src/modeles/conventions/843_boulangerie_patisserie/common.yaml +9 -0
  445. package/src/modeles/conventions/843_boulangerie_patisserie/indemnite-licenciement.yaml +10 -0
  446. package/src/modeles/conventions/{843_boulangerie_patisserie.yaml → 843_boulangerie_patisserie/preavis-retraite.yaml} +0 -9
  447. package/src/{__test__/86-publicite-fran/303/247aise → modeles/conventions/86_publicite_francaise/__tests__}/preavis-retraite/depart-mise.spec.ts +53 -74
  448. package/src/modeles/conventions/86_publicite_francaise/common.yaml +8 -0
  449. package/src/modeles/conventions/{86_publicite_francaise.yaml → 86_publicite_francaise/preavis-retraite.yaml} +0 -8
  450. package/src/modeles/conventions/index.ts +18 -0
  451. package/src/modeles/index.ts +2 -0
  452. package/src/modeles/modeles-indemnite-licenciement.json +8079 -0
  453. package/src/modeles/modeles-preavis-retraite.json +4834 -0
  454. package/src/publicodes/IndemniteLicenciementPublicodes.ts +10 -3
  455. package/src/publicodes/PreavisRetraitePublicodes.ts +4 -4
  456. package/src/publicodes/Publicodes.ts +3 -2
  457. package/src/publicodes/PublicodesBase.ts +31 -11
  458. package/src/publicodes/__tests__/PreavisRetraitePublicodes.test.ts +5 -14
  459. package/src/publicodes/types.ts +28 -7
  460. package/src/publicodes/utils/__tests__/preavis-retraite.test.ts +1 -1
  461. package/src/publicodes/utils/preavis-retraite.ts +1 -1
  462. package/src/simulators/preavis-licenciement/preavis-licenciement.data.json +3 -3
  463. package/tsconfig.json +2 -1
  464. package/types/index.d.ts +6 -0
  465. package/src/__test__/1516-organismes-formation/preavis-retraite/depart-mise.spec.ts +0 -100
  466. package/src/__test__/2120-banque/preavis-retraite/depart-mise-retraite-banque.spec.ts +0 -91
  467. package/src/__test__/2941-aide-accompagnement-soins-services-domicile/preavis-retraite/depart-mise.spec.ts +0 -87
  468. package/src/__test__/44-industries-chimiques/preavis-retraite/depart-mise.spec.ts +0 -137
  469. package/src/__test__/54-industries-metallurgiques-region-parisienne/preavis-retraite/depart-mise.spec.ts +0 -57
  470. package/src/__test__/common/legal/indemnite-licenciement/indemnite.spec.ts +0 -70
  471. package/src/__test__/common/legal/indemnite-licenciement/references.spec.ts +0 -65
  472. package/src/__test__/common/legal/preavis-retraite/depart-mise.spec.ts +0 -61
  473. package/src/__test__/common/travailleur-handicape/preavis-retraite/depart-mise.spec.ts +0 -105
  474. package/src/modeles/conventions/2120_banque.yaml +0 -14
  475. package/src/modeles/modeles.json +0 -3
  476. package/src/publicodes/utils/common.ts +0 -7
  477. package/src/publicodes/utils/index.ts +0 -2
  478. package/src/utils/index.ts +0 -4
  479. package/src/utils/notifications.ts +0 -20
package/.eslintignore ADDED
@@ -0,0 +1 @@
1
+ jest.setup.ts
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
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.90.1](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.90.0...v4.90.1) (2023-02-06)
7
+
8
+ **Note:** Version bump only for package @socialgouv/modeles-social
9
+
10
+ # [4.90.0](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.89.0...v4.90.0) (2023-02-01)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **indemnite-licenciement:** remise à zéro des données propres à la CC 3239 ([#4926](https://github.com/SocialGouv/code-du-travail-numerique/issues/4926)) ([6948136](https://github.com/SocialGouv/code-du-travail-numerique/commit/6948136fcfc4e0361d9083532e0da8a25e49ea09))
15
+ - **preavis-retraite:** ne supporte pas les espaces insécables ([#4929](https://github.com/SocialGouv/code-du-travail-numerique/issues/4929)) ([251c309](https://github.com/SocialGouv/code-du-travail-numerique/commit/251c309ad6407c0f266ffd3fed83383466bab671))
16
+
17
+ ### Features
18
+
19
+ - **licenciement:** support CC pour le simulateur ([#4469](https://github.com/SocialGouv/code-du-travail-numerique/issues/4469)) ([bb42c53](https://github.com/SocialGouv/code-du-travail-numerique/commit/bb42c53403000d679227905b7dd1664aa0e38bb6))
20
+
6
21
  # [4.89.0](https://github.com/SocialGouv/code-du-travail-numerique/compare/v4.88.1...v4.89.0) (2023-01-18)
7
22
 
8
23
  **Note:** Version bump only for package @socialgouv/modeles-social
package/jest.config.js CHANGED
@@ -1,10 +1,11 @@
1
1
  module.exports = {
2
2
  roots: ["<rootDir>/src"],
3
+ setupFilesAfterEnv: ["./jest.setup.ts"],
3
4
  testMatch: [
4
5
  "**/__tests__/**/*.+(ts|tsx|js)",
5
6
  "**/?(*.)+(spec|test).+(ts|tsx|js)",
6
7
  ],
7
8
  transform: {
8
- "^.+\\.(ts|tsx)$": "ts-jest",
9
+ "^.+\\.(ts|tsx)$": "@swc/jest",
9
10
  },
10
11
  };
package/jest.setup.ts ADDED
@@ -0,0 +1,7 @@
1
+ import {
2
+ mergeIndemniteLicenciementModels,
3
+ mergePreavisRetraiteModels,
4
+ } from "./src/internal/merger";
5
+
6
+ (global as typeof globalThis).modelsIndemniteLicenciement = mergeIndemniteLicenciementModels();
7
+ (global as typeof globalThis).modelsPreavisRetraite = mergePreavisRetraiteModels();
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },
7
- "version": "4.89.0",
7
+ "version": "4.90.1",
8
8
  "description": "Les règles publicodes des simulateurs de code du travail numérique",
9
9
  "main": "./lib/index.js",
10
10
  "types": "./lib/index.d.ts",
@@ -15,10 +15,12 @@
15
15
  },
16
16
  "devDependencies": {
17
17
  "@socialgouv/eslint-config-typescript": "^1.93.0",
18
+ "@swc/core": "^1.3.21",
19
+ "@swc/jest": "^0.2.23",
18
20
  "@types/fs-extra": "^9.0.12",
19
21
  "@types/jest": "^27.0.1",
20
22
  "eslint": "^7.32.0",
21
- "jest": "^27.0.6",
23
+ "jest": "^29.3.1",
22
24
  "lint-staged": "^13.0.0",
23
25
  "nodemon": "^2.0.12",
24
26
  "ts-jest": "^27.0.5",
@@ -37,8 +39,9 @@
37
39
  "type-check:watch": "npm run type-check -- --watch"
38
40
  },
39
41
  "dependencies": {
42
+ "date-fns": "^2.28.0",
40
43
  "fs-extra": "^10.0.0",
41
- "publicodes": "^1.0.0-beta.16",
44
+ "publicodes": "^1.0.0-beta.60",
42
45
  "yaml": "^2.0.0"
43
46
  },
44
47
  "lint-staged": {
@@ -46,5 +49,5 @@
46
49
  "yarn lint --fix --quiet"
47
50
  ]
48
51
  },
49
- "gitHead": "726f60603fa22a4d19e6e9bf6f1b006aeabfaa67"
52
+ "gitHead": "bb2726917249f903e6f39757ab5ac230bd664a16"
50
53
  }
@@ -1,8 +1,8 @@
1
1
  import Engine from "publicodes";
2
2
 
3
- import { mergeModels } from "../../internal/merger";
3
+ import modeles from "../../../src/modeles/modeles-preavis-retraite.json";
4
4
 
5
- const engine = new Engine(mergeModels());
5
+ const engine = new Engine(modeles as any);
6
6
 
7
7
  describe("Validation de la présence des descriptions pour afficher des aides", () => {
8
8
  describe.each`
@@ -2,10 +2,10 @@ import "./publicode-matcher";
2
2
 
3
3
  import Engine from "publicodes";
4
4
 
5
+ import modeles from "../../../src/modeles/modeles-preavis-retraite.json";
5
6
  import { extractCcnIds } from "../../internal/extractor";
6
- import { mergeModels } from "../../internal/merger";
7
7
 
8
- const engine = new Engine(mergeModels());
8
+ const engine = new Engine(modeles as any);
9
9
  const allCc = extractCcnIds(engine).concat("");
10
10
  allCc.forEach((idcc) => {
11
11
  test(`Vérification que l'ensemble des données manquantes pour la CC ${idcc} possède un titre avec un type cdtn`, () => {
@@ -1,9 +1,9 @@
1
1
  import Engine from "publicodes";
2
2
 
3
+ import modeles from "../../../src/modeles/modeles-preavis-retraite.json";
3
4
  import type { RuleNodeIdcc } from "../../internal/extractSupportedCc";
4
- import { mergeModels } from "../../internal/merger";
5
5
 
6
- const engine = new Engine(mergeModels());
6
+ const engine = new Engine(modeles as any);
7
7
 
8
8
  test("Check all agreements have an cdtn with idcc property", () => {
9
9
  Object.values(engine.getParsedRules())
@@ -24,12 +24,32 @@ export const DepartRetraiteReferences = [
24
24
 
25
25
  export const IndemniteLicenciementReferences = [
26
26
  {
27
- article: "Article L1234-9",
27
+ article: "Article L. 1234-9 à L. 1234-11",
28
28
  url:
29
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000035644154/",
29
+ "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006072050/LEGISCTA000006195623/#LEGISCTA000006195623",
30
30
  },
31
31
  {
32
- article: "Article R1234-1 à R1234-4",
33
- url: "https://www.legifrance.gouv.fr/codes/id/LEGISCTA000018537572/",
32
+ article: "Art. R. 1234-1 à R. 1234-5",
33
+ url:
34
+ "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006072050/LEGISCTA000018483186/#LEGISCTA000018537572",
35
+ },
36
+ {
37
+ article: "Art. L. 1226-7",
38
+ url: "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000023272293",
39
+ },
40
+ {
41
+ article: "Art. L. 1225-54",
42
+ url: "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000018764621",
43
+ },
44
+ {
45
+ article: "Art. L. 1225-65",
46
+ url: "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000038219280",
47
+ },
48
+ ];
49
+
50
+ export const IndemniteLicenciementInaptitudeReferences = [
51
+ {
52
+ article: "Art. L. 1226-14",
53
+ url: "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006900981",
34
54
  },
35
55
  ];
@@ -51,7 +51,7 @@ expect.extend({
51
51
  pass: false,
52
52
  };
53
53
  }
54
- const validCdtnType = ["oui-non", "liste", "entier"];
54
+ const validCdtnType = ["oui-non", "liste", "entier", "montant", "date"];
55
55
  return {
56
56
  message: () =>
57
57
  `Type ${type} on ${rule.nom} is not valid. Valid types are ${validCdtnType}`,
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { default as modeles } from "./modeles/modeles.json";
1
+ export * from "./modeles";
2
+ export { default as indemniteLicenciementModeles } from "./modeles/modeles-indemnite-licenciement.json";
3
+ export { default as preavisRetraiteModeles } from "./modeles/modeles-preavis-retraite.json";
2
4
  export * from "./publicodes";
3
5
  export * from "./simulators";
4
- export * from "./utils";
@@ -5,16 +5,26 @@ import path from "path";
5
5
  import Engine from "publicodes";
6
6
 
7
7
  import { extractSupportedCc } from "./extractSupportedCc";
8
- import { mergeModels } from "./merger";
8
+ import {
9
+ mergeCommonModels,
10
+ mergeIndemniteLicenciementModels,
11
+ mergePreavisRetraiteModels,
12
+ } from "./merger";
9
13
 
10
14
  const inDir = path.resolve(__dirname, "../../bin");
11
15
  const outDir = path.resolve(__dirname, "../../lib");
12
16
 
13
- function writeJsonModel() {
14
- const modeles = mergeModels();
17
+ function writeJsonModel({
18
+ merger,
19
+ outputName,
20
+ }: {
21
+ merger: () => any;
22
+ outputName: string;
23
+ }) {
24
+ const modeles = merger();
15
25
  fs.mkdirSync(`${outDir}/modeles`, { recursive: true });
16
26
  fs.writeFileSync(
17
- path.resolve(outDir, "modeles/modeles.json"),
27
+ path.resolve(outDir, `modeles/${outputName}.json`),
18
28
  JSON.stringify(modeles, null, 2)
19
29
  );
20
30
  }
@@ -32,19 +42,26 @@ function copyJSFile() {
32
42
  path.resolve(inDir, "index.d.ts"),
33
43
  path.resolve(outDir, "index.d.ts")
34
44
  );
35
- fse.copySync(`${inDir}/utils`, `${outDir}/utils`);
36
45
  fse.copySync(`${inDir}/publicodes`, `${outDir}/publicodes`);
46
+ fse.copySync(`${inDir}/modeles`, `${outDir}/modeles`);
37
47
  fse.copySync(`${inDir}/simulators`, `${outDir}/simulators`);
38
48
  }
39
49
 
40
50
  function writeSupportedCCFile() {
41
- const ccn = extractSupportedCc(new Engine(mergeModels()));
51
+ const ccn = extractSupportedCc(new Engine(mergeCommonModels()));
42
52
  fs.writeFileSync(
43
- path.resolve(outDir, "utils/ccn-supported.json"),
53
+ path.resolve(outDir, "modeles/common/utils/ccn-supported.json"),
44
54
  JSON.stringify(ccn, null, 2)
45
55
  );
46
56
  }
47
57
 
48
58
  copyJSFile();
49
59
  writeSupportedCCFile();
50
- writeJsonModel();
60
+ writeJsonModel({
61
+ merger: mergePreavisRetraiteModels,
62
+ outputName: "modeles-preavis-retraite",
63
+ });
64
+ writeJsonModel({
65
+ merger: () => mergeIndemniteLicenciementModels(),
66
+ outputName: "modeles-indemnite-licenciement",
67
+ });
@@ -0,0 +1,3 @@
1
+ export const commonFile = "common.yaml";
2
+ export const preavisRetraiteFile = "preavis-retraite.yaml";
3
+ export const indemniteLicenciementFile = "indemnite-licenciement.yaml";
@@ -1,12 +1,14 @@
1
1
  import type { Rule } from "publicodes";
2
2
  import type Engine from "publicodes";
3
3
 
4
- import type { AgreementInfo } from "..";
4
+ import type { AgreementInfo } from "../modeles/common";
5
5
 
6
6
  export type RuleNodeIdcc = Rule & {
7
7
  cdtn?: {
8
8
  idcc?: number;
9
9
  "préavis-retraite"?: boolean;
10
+ "indemnité-licenciement"?: boolean;
11
+ "indemnité-licenciement-sans-legal"?: boolean;
10
12
  };
11
13
  };
12
14
 
@@ -20,6 +22,9 @@ export function extractSupportedCc(engine: Engine): Partial<AgreementInfo>[] {
20
22
  if (idcc) {
21
23
  return {
22
24
  idcc,
25
+ indemniteLicenciement: cdtnNode["indemnité-licenciement"] ?? false,
26
+ indemniteLicenciementSansLegal:
27
+ cdtnNode["indemnité-licenciement-sans-legal"] ?? false,
23
28
  preavisRetraite: cdtnNode["préavis-retraite"] ?? false,
24
29
  };
25
30
  }
@@ -1,25 +1,73 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- import yaml from "yaml";
3
+ import { parse } from "yaml";
4
4
 
5
- const publicodesDir = path.resolve(__dirname, "../../src/modeles");
5
+ import {
6
+ commonFile,
7
+ indemniteLicenciementFile,
8
+ preavisRetraiteFile,
9
+ } from "./constants";
6
10
 
7
- export function mergeModels(): any {
8
- return yaml.parse(concatenateFilesInDir(publicodesDir));
11
+ export const publicodesDir = path.resolve(__dirname, "../../src/modeles");
12
+
13
+ export function mergePreavisRetraiteModels(): any {
14
+ return mergeModels([commonFile, preavisRetraiteFile]);
15
+ }
16
+
17
+ export function mergeIndemniteLicenciementModels(): any {
18
+ return mergeModelsWithKeys([commonFile, indemniteLicenciementFile]);
19
+ }
20
+
21
+ export function mergeCommonModels(): any {
22
+ return mergeModels([commonFile]);
23
+ }
24
+
25
+ function mergeModels(filenameFilter: string[]): any {
26
+ return parse(concatenateFilesInDir(publicodesDir, filenameFilter));
27
+ }
28
+
29
+ function mergeModelsWithKeys(filenameFilter: string[]): any {
30
+ return concatenateFilesInDirWithKeys(publicodesDir, filenameFilter);
9
31
  }
10
32
 
11
- function concatenateFilesInDir(dirPath: string): string {
33
+ function concatenateFilesInDir(
34
+ dirPath: string,
35
+ filenameFilter: string[]
36
+ ): string {
12
37
  return fs
13
38
  .readdirSync(dirPath)
14
39
  .map((filename) => {
15
40
  const fullpath = path.join(dirPath, filename);
16
41
  if (fs.statSync(fullpath).isDirectory()) {
17
- return concatenateFilesInDir(fullpath);
42
+ return concatenateFilesInDir(fullpath, filenameFilter);
18
43
  } else {
19
- return filename.endsWith(".yaml")
44
+ return filename.endsWith(".yaml") && filenameFilter.includes(filename)
20
45
  ? fs.readFileSync(fullpath).toString()
21
46
  : "";
22
47
  }
23
48
  })
24
49
  .join("\n");
25
50
  }
51
+
52
+ function concatenateFilesInDirWithKeys(
53
+ dirPath: string,
54
+ filenameFilter: string[]
55
+ ): any {
56
+ const dirName = path.basename(dirPath);
57
+ const result = fs
58
+ .readdirSync(dirPath)
59
+ .reduce<Record<string, any>>((obj, filename) => {
60
+ const fullpath = path.join(dirPath, filename);
61
+ if (fs.statSync(fullpath).isDirectory()) {
62
+ const dirData = concatenateFilesInDirWithKeys(fullpath, filenameFilter);
63
+ return { ...obj, ...dirData };
64
+ }
65
+ if (filename.endsWith(".yaml") && filenameFilter.includes(filename)) {
66
+ const data = parse(fs.readFileSync(fullpath).toString());
67
+ const idcc = dirName.split("_")[0];
68
+ return { ...obj, [idcc]: { ...obj[idcc], ...data } };
69
+ }
70
+ return obj;
71
+ }, {});
72
+ return result;
73
+ }
@@ -0,0 +1,75 @@
1
+ import {
2
+ MotifKeys,
3
+ SeniorityFactory,
4
+ SupportedCcIndemniteLicenciement,
5
+ } from "../../../common";
6
+
7
+ describe("Indemnité légale de licenciement avec une ancienneté spécifiée", () => {
8
+ test.each`
9
+ absences | entryDate | exitDate | expectedAnciennete
10
+ ${[]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
11
+ ${[{ motif: { key: MotifKeys.maladieNonPro } }, { motif: { key: MotifKeys.accidentTrajet } }, { motif: { key: MotifKeys.congesSabbatique } }, { motif: { key: MotifKeys.congesCreationEntreprise } }, { motif: { key: MotifKeys.congesParentalEducation } }, { motif: { key: MotifKeys.congesSansSolde } }, { motif: { key: MotifKeys.greve } }, { motif: { key: MotifKeys.miseAPied } }, { motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
12
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
13
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
14
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
15
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
16
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
17
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9583333333333334}
18
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
19
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
20
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
21
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
22
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.29166666666666663}
23
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/01/2021"} | ${"20/02/2021"} | ${-0.625}
24
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"01/01/1979"} | ${"01/01/2021"} | ${42}
25
+ `(
26
+ "Calcul de l'ancienneté pour le droit avec $entryDate et $exitDate en attendant $expectedAnciennete an",
27
+ ({ absences, entryDate, exitDate, expectedAnciennete }) => {
28
+ const seniority = new SeniorityFactory().create(
29
+ SupportedCcIndemniteLicenciement.default
30
+ );
31
+
32
+ const result = seniority.computeRequiredSeniority({
33
+ absencePeriods: absences,
34
+ dateEntree: entryDate,
35
+ dateNotification: exitDate,
36
+ dateSortie: "01/01/1979",
37
+ });
38
+ expect(result.value).toEqual(expectedAnciennete);
39
+ }
40
+ );
41
+
42
+ test.each`
43
+ absences | entryDate | exitDate | expectedAnciennete
44
+ ${[]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
45
+ ${[{ motif: { key: MotifKeys.maladieNonPro } }, { motif: { key: MotifKeys.accidentTrajet } }, { motif: { key: MotifKeys.congesSabbatique } }, { motif: { key: MotifKeys.congesCreationEntreprise } }, { motif: { key: MotifKeys.congesParentalEducation } }, { motif: { key: MotifKeys.congesSansSolde } }, { motif: { key: MotifKeys.greve } }, { motif: { key: MotifKeys.miseAPied } }, { motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
46
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${1}
47
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
48
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
49
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
50
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
51
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9583333333333334}
52
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
53
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
54
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
55
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.9166666666666666}
56
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/02/2020"} | ${"20/02/2021"} | ${0.29166666666666663}
57
+ ${[{ durationInMonth: 1, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 1, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 1, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 1, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 1, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 1, motif: { key: MotifKeys.greve } }, { durationInMonth: 1, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 1, motif: { key: MotifKeys.congesPaternite } }]} | ${"20/01/2021"} | ${"20/02/2021"} | ${-0.625}
58
+ ${[{ durationInMonth: 0, motif: { key: MotifKeys.maladieNonPro } }, { durationInMonth: 0, motif: { key: MotifKeys.accidentTrajet } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSabbatique } }, { durationInMonth: 0, motif: { key: MotifKeys.congesCreationEntreprise } }, { durationInMonth: 0, motif: { key: MotifKeys.congesParentalEducation } }, { durationInMonth: 0, motif: { key: MotifKeys.congesSansSolde } }, { durationInMonth: 0, motif: { key: MotifKeys.greve } }, { durationInMonth: 0, motif: { key: MotifKeys.miseAPied } }, { durationInMonth: 0, motif: { key: MotifKeys.congesPaternite } }]} | ${"01/01/1979"} | ${"01/01/2021"} | ${42}
59
+ `(
60
+ "Calcul de l'ancienneté pour le calcul avec $entryDate et $exitDate en attendant $expectedAnciennete an",
61
+ ({ absences, entryDate, exitDate, expectedAnciennete }) => {
62
+ const seniority = new SeniorityFactory().create(
63
+ SupportedCcIndemniteLicenciement.default
64
+ );
65
+
66
+ const result = seniority.computeSeniority({
67
+ absencePeriods: absences,
68
+ dateEntree: entryDate,
69
+ dateSortie: exitDate,
70
+ });
71
+
72
+ expect(result.value).toEqual(expectedAnciennete);
73
+ }
74
+ );
75
+ });
@@ -0,0 +1,36 @@
1
+ import { IndemniteLicenciementPublicodes } from "../../../../publicodes";
2
+
3
+ const engine = new IndemniteLicenciementPublicodes(modelsIndemniteLicenciement);
4
+
5
+ describe("Indemnité légale de licenciement avec une formule personnalisée et expliquée", () => {
6
+ test.each`
7
+ seniority | isForInaptitude | expectedFormula | expectedExplanations
8
+ ${7 / 12} | ${"non"} | ${""} | ${[]}
9
+ ${7 / 12} | ${"oui"} | ${"(1/4 * Sref * A) * 2"} | ${["A : Ancienneté totale (≈ 0.58 an : valeur arrondie)", "Sref : Salaire de référence (1000 €)"]}
10
+ ${8 / 12} | ${"non"} | ${"1/4 * Sref * A"} | ${["A : Ancienneté totale (≈ 0.67 an : valeur arrondie)", "Sref : Salaire de référence (1000 €)"]}
11
+ ${8 / 12} | ${"oui"} | ${"(1/4 * Sref * A) * 2"} | ${["A : Ancienneté totale (≈ 0.67 an : valeur arrondie)", "Sref : Salaire de référence (1000 €)"]}
12
+ ${7} | ${"oui"} | ${"(1/4 * Sref * A) * 2"} | ${["A : Ancienneté totale (7 ans)", "Sref : Salaire de référence (1000 €)"]}
13
+ ${7} | ${"non"} | ${"1/4 * Sref * A"} | ${["A : Ancienneté totale (7 ans)", "Sref : Salaire de référence (1000 €)"]}
14
+ ${10} | ${"oui"} | ${"(1/4 * Sref * A) * 2"} | ${["A : Ancienneté totale (10 ans)", "Sref : Salaire de référence (1000 €)"]}
15
+ ${10} | ${"non"} | ${"1/4 * Sref * A"} | ${["A : Ancienneté totale (10 ans)", "Sref : Salaire de référence (1000 €)"]}
16
+ ${12} | ${"oui"} | ${"((1/4 * Sref * A1) + (1/3 * Sref * A2)) * 2"} | ${["A1 : Ancienneté de 10 ans ou moins (10 ans)", "A2 : Ancienneté au-delà de 10 ans (2 ans)", "Sref : Salaire de référence (1000 €)"]}
17
+ ${12} | ${"non"} | ${"(1/4 * Sref * A1) + (1/3 * Sref * A2)"} | ${["A1 : Ancienneté de 10 ans ou moins (10 ans)", "A2 : Ancienneté au-delà de 10 ans (2 ans)", "Sref : Salaire de référence (1000 €)"]}
18
+ ${11.5} | ${"non"} | ${"(1/4 * Sref * A1) + (1/3 * Sref * A2)"} | ${["A1 : Ancienneté de 10 ans ou moins (10 ans)", "A2 : Ancienneté au-delà de 10 ans (1.5 an)", "Sref : Salaire de référence (1000 €)"]}
19
+ `(
20
+ "Formule $expectedFormula avec $seniority ans et inaptitude $isForInaptitude",
21
+ ({ seniority, isForInaptitude, expectedFormula, expectedExplanations }) => {
22
+ engine.setSituation({
23
+ "contrat salarié . indemnité de licenciement . ancienneté en année": seniority,
24
+ "contrat salarié . indemnité de licenciement . ancienneté requise en année": seniority,
25
+ "contrat salarié . indemnité de licenciement . inaptitude suite à un accident ou maladie professionnelle": isForInaptitude,
26
+ "contrat salarié . indemnité de licenciement . salaire de référence":
27
+ "1000",
28
+ });
29
+
30
+ const result = engine.getFormule();
31
+
32
+ expect(result.formula).toEqual(expectedFormula);
33
+ expect(result.explanations).toEqual(expectedExplanations);
34
+ }
35
+ );
36
+ });
@@ -0,0 +1,103 @@
1
+ import { IndemniteLicenciementPublicodes } from "../../../../publicodes";
2
+
3
+ const engine = new IndemniteLicenciementPublicodes(modelsIndemniteLicenciement);
4
+
5
+ describe("Indemnité légale de licenciement pour un employé", () => {
6
+ test.each`
7
+ seniority | salary | expectedCompensation
8
+ ${0} | ${0} | ${0}
9
+ ${1} | ${0} | ${0}
10
+ ${1.3} | ${0} | ${0}
11
+ ${0.12} | ${1000} | ${0}
12
+ ${0.5} | ${1000} | ${0}
13
+ ${8 / 12} | ${1000} | ${166.67}
14
+ ${11 / 12} | ${2000} | ${458.33}
15
+ ${1.083333333} | ${2000} | ${541.67}
16
+ ${1} | ${2000} | ${500}
17
+ ${2} | ${2000} | ${1000}
18
+ ${2.333333333} | ${2000} | ${1166.67}
19
+ ${10.91} | ${2000} | ${5606.67}
20
+ ${11.666666666666666} | ${2980} | ${9105.56}
21
+ ${42} | ${2500} | ${32916.67}
22
+ `(
23
+ "ancienneté: $seniority mois, salaire de référence: $salary => $expectedCompensation €",
24
+ ({ seniority, salary, expectedCompensation }) => {
25
+ const { result, missingArgs } = engine.setSituation({
26
+ "contrat salarié . indemnité de licenciement . ancienneté en année": seniority.toString(),
27
+ "contrat salarié . indemnité de licenciement . ancienneté requise en année": seniority,
28
+ "contrat salarié . indemnité de licenciement . inaptitude suite à un accident ou maladie professionnelle":
29
+ "non",
30
+ "contrat salarié . indemnité de licenciement . salaire de référence": salary.toString(),
31
+ });
32
+ expect(result.value).toEqual(expectedCompensation);
33
+ expect(result.unit?.numerators).toEqual(["€"]);
34
+ expect(missingArgs).toEqual([]);
35
+ }
36
+ );
37
+ test.each`
38
+ seniority | salary | expectedCompensation
39
+ ${0} | ${0} | ${0}
40
+ ${1} | ${0} | ${0}
41
+ ${1.3} | ${0} | ${0}
42
+ ${0.12} | ${1000} | ${60}
43
+ ${0.5} | ${1000} | ${250}
44
+ ${8 / 12} | ${1000} | ${333.34}
45
+ ${11 / 12} | ${2000} | ${916.66}
46
+ ${1.083333333} | ${2000} | ${1083.34}
47
+ ${1} | ${2000} | ${1000}
48
+ ${2} | ${2000} | ${2000}
49
+ ${2.333333333} | ${2000} | ${2333.34}
50
+ ${10.91} | ${2000} | ${11213.34}
51
+ ${11.666666666666666} | ${2980} | ${18211.12}
52
+ ${42} | ${2500} | ${65833.34}
53
+ `(
54
+ "licenciement pour inaptitude : ancienneté: $seniority mois, salaire de référence: $salary => $expectedCompensation €",
55
+ ({ seniority, salary, expectedCompensation }) => {
56
+ const { result, missingArgs } = engine.setSituation({
57
+ "contrat salarié . indemnité de licenciement . ancienneté en année": seniority,
58
+ "contrat salarié . indemnité de licenciement . ancienneté requise en année": seniority,
59
+ "contrat salarié . indemnité de licenciement . inaptitude suite à un accident ou maladie professionnelle":
60
+ "oui",
61
+ "contrat salarié . indemnité de licenciement . salaire de référence": salary,
62
+ });
63
+ expect(result.value).toEqual(expectedCompensation);
64
+ expect(result.unit?.numerators).toEqual(["€"]);
65
+ expect(missingArgs).toEqual([]);
66
+ }
67
+ );
68
+
69
+ describe("Cas limites pour le droit à l'indemnité de licenciement", () => {
70
+ test("Ancienneté requise pas atteinte et ancienneté de calcul atteinte", () => {
71
+ const { result, missingArgs } = engine.setSituation({
72
+ "contrat salarié . indemnité de licenciement . ancienneté en année":
73
+ "1",
74
+ "contrat salarié . indemnité de licenciement . ancienneté requise en année":
75
+ "0.6",
76
+ "contrat salarié . indemnité de licenciement . inaptitude suite à un accident ou maladie professionnelle":
77
+ "non",
78
+ "contrat salarié . indemnité de licenciement . salaire de référence":
79
+ "2000",
80
+ });
81
+ expect(result.value).toEqual(0);
82
+ expect(result.unit?.numerators).toEqual(["€"]);
83
+ expect(missingArgs).toEqual([]);
84
+ });
85
+
86
+ test("Ancienneté requise atteinte et ancienneté de calcul atteinte", () => {
87
+ const { result, missingArgs } = engine.setSituation({
88
+ "contrat salarié . indemnité de licenciement . ancienneté en année":
89
+ "1",
90
+ "contrat salarié . indemnité de licenciement . ancienneté requise en année": `${
91
+ 8 / 12
92
+ }`,
93
+ "contrat salarié . indemnité de licenciement . inaptitude suite à un accident ou maladie professionnelle":
94
+ "non",
95
+ "contrat salarié . indemnité de licenciement . salaire de référence":
96
+ "2000",
97
+ });
98
+ expect(result.value).toEqual(500);
99
+ expect(result.unit?.numerators).toEqual(["€"]);
100
+ expect(missingArgs).toEqual([]);
101
+ });
102
+ });
103
+ });