SocialGouv / code-du-travail-numerique

Code du Travail Numérique
https://code.travail.gouv.fr
Apache License 2.0
103 stars 21 forks source link

Calcul d'indemnité de licenciement: ajout de CCN #39

Closed jrduscher closed 5 years ago

jrduscher commented 6 years ago

Proposer un outil pour le calcul de l’indemnité de licenciement

Sur TeleRC on a un outil permettant de simuler l’indemnité légale de RC (même calcul que le licenciement donc)

jrduscher commented 6 years ago

Proposition calcul indemnité légale de licenciement. Amélioration 1.( amélioration à suivre: CCN) tag 300

principe

"Le salarié en CDI, a droit à une indemnité de licenciement, s'il cumule au moins un an d'ancienneté, et si le licenciement ne concerna pas une faute grave"

Calcul de l'indemnité légale

Vérifier type de faute

si non, continuer si oui, afficher: " l’indemnité légale de licenciement n'est pas due en cas de faute grave"

facultatif: "aide: vous reporter à la lettre de notification de licenciement, lorsqu'il est invoqué le motif de faute grave doit apparaître précisément dans le courrier"

recueillir la valeur "ancienneté". deux possibilités

a) demander la date de début et de fin de contrat:. ancienneté=date de fin- date de début

b) demander l'ancienneté en mois/années

c)vérifier: si ancienneté>12 mois. si oui: continuer si non: afficher principe. "l'indemnité de licenciement est due au delà d'un an d'ancienneté"

3) Recueillir salaire brut mensuel**

Afficher un formulaire comprenant 12 champs à remplir (4-10 caractères numériques type €) -> labelliser les champs mois 1 à 12 -> détacher visuellement les 3 derniers et afficher " trois derniers mois de salaire" valider : si le nb de champs remplis <12; fin. afficher principe: "l'indemnité de licenciement est due au delà d'un an d'ancienneté "

Primes dont 13ème mois?

a) moyenne des douze derniers mois s'il n'y a pas de prime ; (a)=moyenne(montants mois 1 à 12) si prime: (a)=moyenne((mois1+prime)+(mois2+prime)... (mois 12+prime)) b) moyenne des 3 derniers mois s'il n'y a pas de prime ; (b)=moyenne(montants mois 10 à 12) si prime: (b)=moyenne((mois10+prime)+(mois11+prime)... (mois 12+prime)) c) - si b>a, (c)=(b) sinon (c)=a

Calcul de l'indemnité légale (Il)

a) vérifier , que la date de modification de l'article R1234-2 du code du travail n'est pas différente de 25/09/2017 (signature du décret) ou 26/09/2017(publication) ou 27/09/2017 (entrée en vigueur). Si date différente: signaler erreur+ info utilisateur "Incident", si date ok, continuer b) vérifier disposition applicable. recueillir date du licenciement. aide " se reporter à la lettre de licenciement" si la date est postérieur à 26/09/2017 : "calcul2017", sinon "calculavant2017"

"calcul2017" : date du licenciement > 26/09/2017

Si "ancienneté inférieure ou égale à 10 ans indemnite=1/4*c*10

Si ancienneté supérieur à 10 ans: (// en mois par années d'ancienneté) (d)=ancienneté-10 indemnite=1/4 *c*10 + 1/3*c*d

// on peut le dire comme ça si vous voulez: SI(ancienneté en mois par année>10;(salaire brut mensuel/4ancienneté en mois par année)+(salaire brut mensuel/3(ancienneté en mois par années-10));"")

"calculavant2017" : date du licenciement < 26/09/2017

Si "ancienneté inférieure ou égale à 10 ans indemnite=1/5*c*10 Si ancienneté supérieur à 10 ans: d=ancienneté-10 `indemnite=1/5cancienneté+2/15*(ancienneté en mois par années d'ancienneté - 10 ans)

Une structure commune ( d'ailleurs commune aussi à l'indmenité de départ en retraite) apparait au regrd des CCN consultés (qui reprend sans surprise les composantes structurelles de l’indemnité légale): le modèle ci après se dégage: et apparaot transposable:

branche. récupérer le choix de la branche récupération de données nécessaire au calcul de "indmenité légale":

  • ancienneté
  • salaires saisies sur 12 mois, salaires des trois derniers mois
    • faute récupérer d'autres données
    • age
    • licenciment pour inaptitude -autre criètres

ancienneté: calcul de l'ancienenté au regrd de composantes spécifiques conventionnel : ( le nombre ressert dans le calcul ci après, sous la forme de" mois par années d'ancienneté") base de calcul ( si différente de la base légale): permet de dégager le salaire mensuel de référence application des taux spécifiques. ( calcul de l'indemnité conventionnelle au regrd des règls posées ou indication de renvoi au calcul d indemnité légale application d'un complément indemnitaire au reagrd d'un critère supplémentaire.

Comparaison avec l'indemnité légale pour en dégager la plus favorable

jrduscher commented 6 years ago

Intégration des modalités de calcul de l'indemnité de licenciement au regard de la CCN industries Chimiques.

Un accord portant modification notamment de cet article est en vigueur. (accord de 1991).
"Article 11 Sans préjudice des dispositions relatives aux indemnités de congédiement prévues au chapitre V du présent accord, en cas de licenciement pour raisons économiques :

L'accord de 1991 n'a pas d'incidence directe en matière de licenciement ( mais de retraite).

Thème: contrat de travail sous thème: licencimeent sous thème: indemnité de licenciement type de contrat: CDI profil: salarié/employeur type de réponse: principe CCN: Industries chimiques

Principe 1: L'indemnité légale Calcul de l'indemnité dans la CCN de l'indus Chimique.(Il_chem) > (Il). si la valeur de Prinicipe 2:Le calcul de la CCN démarre à partir de deux ans d'ancienneté, contre une année pour le code du travail; en principe donc, entre 1 et 2 ans d'ancienneté: le calcul Code du travail . // à terminer//

groupe coefficients description
groupe I 130 Emploi impliquant l’exécution de travaux ne demandant qu’une mise au courant sommaire.
groupe I 140 Emplois impliquant l’exécution de travaux nécessitant une durée d’adaptation n’excédant pas normalement 1 mois. Ces travaux peuvent, le cas échéant, être exécutés sur machine ou à l’aide d’un outillage approprié.
groupe II 150 Emplois impliquant l’exécution de travaux qualifiés courants. Remarque : le salarié qui assure, de façon effective et permanente, au moins 3 emplois relevant de ce coefficient, suffisamment différenciés pour impliquer une véritable polyvalence, est classé au coefficient immédiatement supérieur.
groupe II 160 Emplois impliquant l’exécution de travaux qualifiés nécessitant la mise en oeuvre d’une bonne connaissance du métier acquise par une expérience suffisante.
groupe II 160 CQP: Fabrication / opérateur de fabrication.
groupe II 160 CQP. Logistique: Agent logistique
groupe II 160 CQP: Maintenance/ Opérateur de maintenance industrielle
groupe III 175 Emplois impliquant la mise en oeuvre de moyens connus, d’une expérience particulière du métier et de l’esprit d’initiative pour exécuter des travaux comportant des difficultés techniques d’un bon niveau.
groupe III 190 Emplois impliquant la mise en oeuvre de moyens connus et diversifiés pour exécuter des travaux requérant des initiatives et des connaissances professionnelles étendues.
groupe III 190 CQP. Fabrication: Conducteur d'équipement de fabrication
groupe III 190 CQP.Fabrication: Pilote d'installation de fabrication
groupe III 190 CQP. Conditionnement/ Conducteur de ligne de conditionnement.
groupe III 190 CQP. Conditionnement/Pilote de ligne de conditionnement
groupe III 190 CQP. Maintenance. Technicien de maintenance industrielle.
groupe III 205 Emplois impliquant, dans le cadre de consignes générales larges, l’exécution de travaux comportant des difficultés techniques sérieuses. L’exécution des travaux exige des efforts de réflexion ; le contrôle en est le plus souvent effectué par sondage.
groupe IV 225 Agent de maîtrise : agent assurant d’une façon permanente l’encadrement d’une équipe d’exécutants classés le plus souvent au groupe I. Il peut, exceptionnellement, prendre directement part à l’exécution du travail.
groupe IV 225 Technicien : agent dont la fonction exige des connaissances acquises soit par une formation pouvant être sanctionnée par un BTS ou un DUT, soit par une expérience pratique équivalente.
groupe IV 225 CQP: Fabrication. Animateur d'équipe de fabrication
groupe IV 225 CQP: Conditionnemnt. Animateur d'équipe de conditionnement.
groupe IV 225 CQP: Logistique. Animateur d'équipe de logistique.
groupe IV 225 CQP: Maintenance/ Animateur d'équipe de maintenance.
groupe IV 235 Agent de maîtrise : agent assurant l’encadrement d’un groupe pouvant comporter du personnel classé aux groupes I, II et III. Il répartit le travail et s’assure de l’application des consignes.
groupe IV 235 Technicien : agent ayant les connaissances générales et techniques du coefficient précédent. Il a une expérience pratique suffisante lui permettant d’adapter ses interventions. Il peut être appelé, dans sa spécialité, à assister des agents de classification inférieure.
groupe IV 250 Agent de maîtrise : agent assurant l’encadrement d’un groupe dont notamment la taille peut justifier qu’il comporte un ou des agents de maîtrise de classification inférieure. Il peut n’avoir sous son autorité que du personnel classé aux groupes I, II et III. Il assure la gestion courante et la formation du personnel. Il veille directement à l’application des consignes. Dans le cadre des instructions reçues il peut avoir à prendre des décisions ayant des répercussions sur les programmes et les coûts.
groupe IV 250 Technicien : agent ayant des connaissances professionnelles et une expérience étendues lui permettant de prendre des décisions pour adapter ses interventions après avoir interprété des informations variées et complexes. Il peut être appelé, dans sa spécialité, à assurer une assistance technique et à contrôler des agents de classification inférieure.
groupe IV 275 Agent de maîtrise : agent assurant l’encadrement d’un groupe comportant un ou plusieurs agents de maîtrise de classification inférieure dont il coordonne et contrôle l’activité. Il veille à l’application des consignes. Dans le cadre des instructions reçues, il peut avoir à prendre des décisions ayant des répercussions sur les programmes et les coûts.
groupe IV 275 Technicien : agent ayant des connaissances et une expérience lui permettant d’adapter ou de transposer à des situations nouvelles des moyens ou des méthodes déjà appliqués dans d’autres cas. Il peut être appelé, dans sa spécialité, à assurer une assistance technique et à contrôler des agents de classification inférieure.
groupe IV 300 Agent de maîtrise : agent assurant l’encadrement d’un groupe comportant plusieurs agents de maîtrise de classification inférieure. Il est responsable de l’organisation et de la répartition du travail. Il participe à l’élaboration des consignes et veille à leur application.
groupe IV 300 Technicien : agent dont la compétence acquise lui permet d’intervenir dans des cas inhabituels ou difficiles. Il est apte à proposer des modifications des méthodes ou des procédures existantes.
groupe IV 325 Agent de maîtrise : agent assurant l’animation et la coordination des groupes placés sous son autorité. Dans le cadre d’objectifs définis de façon très générale, il répond des résultats d’ensemble de son secteur.
groupe IV 325 Technicien : agent dont les connaissances approfondies et la très large expérience recouvrent plusieurs techniques. Dans le cadre d’objectifs définis de façon très générale, il répond des résultats d’ensemble de son secteur. Le classement entre les deux coefficients dépend de l’importance des fonctions, du degré de responsabilité, de l’expérience nécessaire.
groupe V 350 Ingénieurs et cadres débutants engagés pour remplir des fonctions relevant du présent groupe, ayant acquis par leur première formation les connaissances indiquées dans la définition générale ci-dessus, mais ne possédant pas l’expérience professionnelle et n’assumant pas encore des responsabilités leur permettant d’être classés dans l’un des niveaux [supérieurs]ci-après :
groupe IV 360 Agent de maîtrise : agent assurant l’animation et la coordination des groupes placés sous son autorité. Dans le cadre d’objectifs définis de façon très générale, il répond des résultats d’ensemble de son secteur.
groupe IV 360 Technicien : agent dont les connaissances approfondies et la très large expérience recouvrent plusieurs techniques. Dans le cadre d’objectifs définis de façon très générale, il répond des résultats d’ensemble de son secteur. Le classement entre les deux coefficients dépend de l’importance des fonctions, du degré de responsabilité, de l’expérience nécessaire.
groupe V 400 Ingénieurs et cadres agissant à partir de directives dans le secteur d’activité qui leur est imparti. Ils animent et coordonnent l’activité des agents de maîtrise et techniciens placés sous leur autorité. Ils assistent les ingénieurs et cadres d’un niveau supérieur auxquels incombe la responsabilité d’ensemble du secteur. Ils participent à la définition des objectifs de leur secteur.
groupe V 460 Ingénieurs et cadres agissant à partir de directives générales dans le secteur d’activité qui leur est imparti. Ils animent et coordonnent l’activité des agents de maîtrise, techniciens ou cadres des coefficients précédents placés sous leur autorité. Dans les unités de taille limitée sur le plan de la complexité technique ou d’autres éléments spécifiques équivalents, la responsabilité d’ensemble leur incombe sous l’autorité d’un cadre de coefficient supérieur. Ils participent à la définition des objectifs de leur secteur.
groupe V 480
groupe V 510
groupe V 550 Ingénieurs et cadres assumant des responsabilités importantes au plan de la complexité technique ou d’autres éléments spécifiques équivalents. Ils animent et coordonnent l’activité des agents de maîtrise, techniciens et cadres des coefficients précédents placés sous leur autorité. Ils participent à la définition des objectifs de leur secteur d’activité. Les ingénieurs et cadres, dont l’expérience et la compétence leur permettent d’assumer des responsabilités équivalentes, sont également classés à ce niveau.
groupe V 660 Ingénieurs et cadres assumant la responsabilité : - soit d’une unité importante d’un établissement en raison notamment des liaisons ou interconnexions avec les autres unités de celui-ci ; - soit de plusieurs unités appartenant, le cas échéant, à des établissements différents ; - soit d’un établissement d’importance moyenne ; - soit d’un important secteur d’activité de l’entreprise. Leurs principales décisions ont des répercussions sensibles sur les autres unités et nécessitent la prise en compte préalable et la coordination d’éléments complexes et variés. Les ingénieurs et cadres placés à ce niveau sont associés à la définition des objectifs ou orientations de l’ensemble auquel ils appartiennent.
groupe V 770 Ingénieurs et cadres exerçant des responsabilités importantes nécessitant une compétence étendue et de haut niveau. Ils participent à l’élaboration et à la définition des politiques, des structures et des objectifs de l’ensemble auquel ils appartiennent ; leurs décisions ont des répercussions importantes sur les unités de cet ensemble, sur des unités extérieures à celui-ci, ou sur l’environnement et nécessitent de ce fait la prise en compte préalable et la coordination d’éléments complexes et variés.
groupe V 880 Ingénieurs et cadres dont la classification se justifie par la haute compétence et les responsabilités étendues qu’impliquent la nature de l’entreprise, la nécessité d’une coordination entre multiples activités ou l’importance de l’établissement. Cette classification exige la plus large autonomie de jugement et d’initiative. Les cadres dirigeants des entreprises sont classés à ce coefficient.

}

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire + prime))

Si catégorie:"groupe I,II,III", affiliation: non

Si ancienneté < 2, : indemnité légale de licenciement (la ccn prévoit une un calcul d'indemnité qu'à partir de 2 ans d'ancienneté) si ancienneté >1 ? affiliation = oui , et si licenciement pour motif économique= oui: indem_cc = min(indem_cc, 1s) ** Si ancienneté >=2

indem_cc =s/103a ( 3/10 de mois par année à compter de l'entrée dans l'entreprise)

si 50 < age < 55 ET a >5 indem_cc = s/10 3 a + 1s ( un mois de salaire s'ajoute à l'indemnité de licenciement) *si affiliation = oui , et si licenciement pour motif économique= oui: indem_cc = s/10 3 a + 2s ( un mois de salaire s'ajoute à l'indemnité de licenciement)

si age > 55 ET a > 5 indem_cc = s/10 3 a + 2s

indem_cc = min(indem_cc, 14s) l'indemnité de congédiement ne peut être supérieur à 14 mois de salaire) si affiliation = oui , et si licenciement pour motif économique= oui: indem_cc = max(indem_cc, 2s) **

SI catégorie:"groupe IV", affiliation: non

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire + prime))

Si a<2, : indemnité légale de licenciement ( "la ccn prévoit un calcul d'indemnité qu' à partir de 2 ans d'ancienneté") SI 2 <= a < 10

indem_cc = s/10 3 a

SI 10 < a < 20

indem_cc = s/10 (3+1) a

SI a >= 20

indem_cc =s/10 (3+1+1) a

SI 50 < age <55 ET a >= 5

indem_cc = indem_cc + 1s ( un mois de salaire s'ajoute à l'indemnité de licenciement

SI age > 55 ET a >= 5

indem_cc = indem_cc + 2s

indem_cc = min(indem_cc, 18s) l'indemnité de congédiement ne peut être supérieur à 18 mois de salaire

SI catégorie:"groupe V", affiliation: non

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire avant préavis (n°8) + prime)) Warning Rappeler que le mois est celui avant préavis et prévenir qu'un accord d'entreprise peut modifier cela

Si a<2, : indemnité légale de licenciement ( "la ccn prévoit un calcul d'indemnité qu' à partir de 2 ans d'ancienneté") SI 2 <= a < 10

indem_base = s/10 4 a

SI 10 < a < 15

indem_base = s/10 6 a

SI a > 15 indem_base = s/10 8 a

indem_cc = indem_base

SI age>45 et age<55 ET a>5

indem_cc = indem_base + 1s

SI age > 55 ET a>5

indem_cc = indem_base + 2s

indem_cc = min(indem_cc, 20s) l'indemnité de congédiement ne peut être supérieur à 20 mois de salaire


Si catégorie:"groupe I,II,III", Si affiliation: oui et Si "Licenciement pour motif économique:non = Si catégorie:"groupe I,II,III", Si affiliation: non

Si affiliation: oui et Si "Licenciement pour motif économique"=oui:

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire + prime))

Si ancienneté<1, :

indem_cc= indemnité légale de licenciement (CDT : 8 mois et "la ccn prévoit une indemnité à partir de 2 ans d'ancienneté")

si ancienneté>1 et ancienneté<2,

indem_cc=1s

si ancienneté >=2

indem_cc= s/10 3 a + 2s ( un mois de salaire s'ajoute à l'indemnité de licenciement)
si indem_cc< 2s : indem_cc=2s si indem_cc>14s: indem_cc =14s; (l'indemnité de congédiement ne peut être supérieur à 14 mois de salaire)

indem_cc=s/10 3 a+2s

indem_cc=max(indem_cc,2s) indem_cc=min(indem_cc,14s; (l'indemnité de congédiement ne peut être supérieur à 14 mois de salaire)

Si catégorie:"groupe IV",

Si affiliation: oui et Si "Licenciement pour motif économique:non = Si catégorie:“groupe IV”, Si affiliation: non

Si affiliation: oui et Si “Licenciement pour motif économique”=oui:

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire + prime))

Récupérer "motif, mo" ( dans votre cas s'agit t-il 'un licenciement pour motif économique {oui/non}) indemnité de licenciement, indem_cc salaire mensuel de base, s age, age ancienneté, ancienneté

Si ancienneté<1, : indemnité légale de licenciement ( "la ccn prévoit une indemnité à partir de 2 ans d'ancienneté")/!\ Si ancienneté>1 et ancienneté<2, indem_cc=1s Si ancienneté >=2

Récupérer l'indem_cc calculée juste au dessus et ajouter un bonus pour les + de 50 et 55 ans:

indem_cc=indem_cc+2s ( rien n'est prévu d'autre que l'indemnité cc pour les autres motifs, calcul rapelé ici)

indem_cc = max(indem_cc, 2s) indem_cc = min(indem_cc, 18s)

Si catégorie:"groupe V" Si affiliation: oui et Si "Licenciement pour motif économique:non = Si catégorie:“groupe V”, Si affiliation: non Si affiliation: oui et Si “Licenciement pour motif économique”=oui:

SalaireRef = max( moy(Salaire + Prime, 12mois), Dernier salaire avant préavis (n°8) + prime)) Warning Rappeler que le mois est celui avant préavis et prévenir qu'un accord d'entreprise peut modifier cela

Si ancienneté < 2 : indem_cc= 1s Si ancienneté >=2

si age>50 et age<55

indem_cc=indem_cc + 1s + 1s

indem_cc = min(indem_cc, 20s)
si age > 55

indem_cc=indem_cc + 2s

indem_cc = max(indem_cc, 2s) indem_cc = min(indem_cc, 20s)

revolunet commented 6 years ago

Spécifications au top :)

Il manque quelques exemples de calculs "validés" qui pourront servir à des tests unitaires pour valider l'algo.

Quelques questions :

-> je fais quelques itérations ici : https://codesandbox.io/s/6wryx6zpvr

je te propose pour l'instant le scenario suivant:

Janvier 1000
février 1000
Mars 1000
Avril 1000
Mai 1000
Juin 1000
Juillet 1000
Août 1000
Septembre 1000
Octobre 1000
Novembre 1000
Décembre 1500
ancienneté 11 ans 132 mois

rupture du contrat: 5/10/2018 Prime : 0€

vérifié avec excel et sIRC https://www.telerc.travail.gouv.fr/RuptureConventionnellePortailPublic/jsp/site/Portal.jsp?page_id=14

salaire mensuel brut 3 derniers mois: 1166,67 12 derniers mois: 1041,67

Indemnité due : 3305,57

jrduscher commented 6 years ago

hey c'est plutôt pas mal! d'autant que j'avais pas vu ton commentaire plus tôt. j'aime bien le préremplissage des salaires. Cool. quelques petites choses: 1) Ce serait cool de pouvoir choper le détail du calcul avec le résultat. 2) Problème: pour les cas ancienneté inférieur à 9 mois, la faute grave, il y a un message d'erreur. Me suis planté dans la spec, ca doit pas juste afficher un message, mais arrêter la simulation là. 3) je vais continuer la partie Chimie pour pouvoir itérer avec des CCN. Merci en tout cas!

5) on peut essayer de rajouter nu texte au début de la simulation? : " L'indemnité de licenciement est prévue dans le but d'atténuer les inconvénients du licenciement".

Ancienneté: contrôle des 12 mois d'ancienneté requis, il est question d'une année ininterrompue. ( test à partir des mois de salaire renseignés et de l'ancienneté renseigné, ça pourrait être pas mal ( si ancienneté déclarée >= 12 mois, le nombre de salaire des 12 derniers mois doit =12). Pour la prise en compte de l'ancienneté, :

jrduscher commented 5 years ago

Hierarchie des normes:

Textes officiels Textes applicables

Consultez votre convention ou accord d'entreprise.

Il n'y a pas de clause sur ce thème au niveau de l'accord d'entreprise?

Il n'y a aucune clause sur ce thème : tant dans l'accord d'entreprise, que dans la Convention collective ou l'accord à portée plus large ?

revolunet commented 5 years ago

Nouvelle version : https://codesandbox.io/s/6wryx6zpvr

Points non traités :

jrduscher commented 5 years ago

Metallurgie: accords nationaux.

Le montant de l'indemnité de licenciement est comme suit : demander ancienneté. soit x : salaire mensuel. calcul de la moyenne des mois sur 12 MOIS. ( récupérer la moyenne des 12 deniers mois)

soit y l’ancienneté en année complète"récupérer années complète": ex si 25 mois : 25 mois/12 2,1, récupérer 2

soit z, ancienneté de 10 ans/ 120 mois., valeur 10 ans ou 120 mois soit z', quand y>z , z' est en année complète

si y>z: "non" : x/5+(x/5)/12*11

si y>z: "oui"

1/5x+(1/5x)/1211+ [(x/152)+(x/15x2)/12*11.

le résultat est à comparer avec l'indemnité de licenciement légale. Ensuite, vérifier que l'indemnité n'est pas différente en départements. on ajoutera que les calculs des départements pour lequel c'est le cas. prévoir aussi le cas où la CC locale stipule autrement.

Une passe sera nécessaire pour affiner la notion d'ancienneté, et d'autre part des cas particuliers ( comme les différences de catégories...)

revolunet commented 5 years ago
jrduscher commented 5 years ago

bureau d'étude technique "article 19", "en vigueur", "étendu" (s'applique à toute la branche)

si ""branche":"bureau d'étude technique" Récupérer "catégorie" {"ETAM","Ingénieur Cadres"} Récupérer "ancienneté,a" en années. (l'ancienneté est en années, dans le calcul 1 an=1 mois) Récupérer: s'agit il de votre premier contrat dans l'entreprise?{oui, non} engagement successif[oui/non] ( Afficher: vous été réengagé à la suite d'un premier licenciement, votre ancienneté a été reprise, oui/non ) si oui, "engagement successif" =0 si non, "engagement successif" =1

Récupérer "mois de rémunération,x", "année incomplète"

Mois de rémunération: rentrer le salaire des 12 derniers mois. ("afficher: attention entrer le salaire brut, sans les hs, ni les frais de déplacement, avec les primes. )

Si des champs sont vides: alors "année incomplète":1 (année incomplète permet de récupérer x1 ou x2) Si tous les champs (12 derniers mois)sont remplis alors "année incomplète:0 si année incomplète =0 "Mois de rémunération, x1" = (mois 1+mois2+(...)mois12)/12 si ""année incomplète,P" :=1 ""Mois de rémunération, x2"= (somme des mois (mois>0))/nb de mois ( mois >0)

"catégorie","ETAM"

check: ancienneté,a>2, mois de rémunération>0, année incomplète=0, engagement successif=0 "Indemnité de licenciement (z): si Ancienneté,a < 2: " 0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si 2< Ancienneté,a <20: Indemnité de licenciement = Ancienneté0,25 x1 si Ancienneté,a >=20: Indemnité de licenciement= Ancienneté0,30 x1 si a0,30>10 z=10x1

check: ancienneté>2, mois de rémunération>0, année incomplète=1, engagement successif=0 "Indemnité de licenciement (z): si Ancienneté < 2: " 0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si 2< Ancienneté <20: Indemnité de licenciement = Ancienneté0,25 x2 si Ancienneté >=20: Indemnité de licenciement= Ancienneté0,30 x2 si a0,30>10 z=10x1

Engagement successif=1, afficher ("en cas d'engagements successif, avec reprise de l'ancienneté, l'indemnité de licenciement qui vous est due tient compte de celle déjà versée") récupérer "Indemnité de licenciement_old,y" (afficher: indiquez le montant de l'indemnité de licenciement perçue précédemment)

check: mois de rémunération>0, année incomplète=0, engagement successif=1 "Indemnité de licenciement (z): si Ancienneté < 2: " 0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si 2< Ancienneté <20: Indemnité de licenciement = Ancienneté0,25 x1 si Ancienneté >=20: Indemnité de licenciement= Ancienneté0,30 x1 si a0,30>10 z=10x1 w=y-z

check: mois de rémunération>0, année incomplète=1, engagement successif=1 "Indemnité de licenciement (z): si Ancienneté < 2: " 0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si 2< Ancienneté <20: Indemnité de licenciement = Ancienneté0,25 x2 si Ancienneté >=20: Indemnité de licenciement= Ancienneté0,30 x2 si a0,30>10 z=10x1 w=y-z

"catégorie","Ingénieur Cadres" récupérer mois de rémunération, x récupérer année incomplète {1,0}

check: mois de rémunération>0, année incomplète=0, "Indemnité de licenciement (z): si Ancienneté < 2: " 0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si Ancienneté > 2: Indemnité de licenciement = Ancienneté/3* x1

si a0,30>12(//33) z=12x1

check: mois de rémunération>0, année incomplète=1, "Indemnité de licenciement (z): si Ancienneté < 2: " z=0", " la CCN ne prévoit pas d’indemnité de licenciement avant 2 ans d'ancienneté, si Ancienneté >=20: Indemnité de licenciement,z= Ancienneté/3 x2 si a/3>12 (//33) z=12x1

jrduscher commented 5 years ago

Boulangerie "branche", "boulangerie" avenant n°67, en vigueur et étendu.

récupérer inaptitude {oui,non} (afficher " Votre licenciement fait il suite à une décision d'inaptitude?"), {oui,non}

si inaptitude =non: "indemnité légale de licenciement,w". ( on affiche le résultat indemnité légal de licenciement, "votre branche ne prévoit pas de calcul spécifique, en dehors de l’indemnité légale de licenciement")

si inaptitude = oui, récupérer "age,ag" ( ou date de naissance ?) si age,ag <55: "indemnité légale de licenciement,w". ( on affiche le résultat indemnité légal de licenciement, "votre branche ne prévoit pas de calcul spécifique, en dehors de l’indemnité légale de licenciement") si age,ag >55: "Indemnité légale de licenciement, w"+ "Indemnité complémentaire,IC" ("vous avez droit dans votre branche à une indemnité complémentaire à l’indemnité de licenciement du fait de votre inaptitude)

" Indemnité complémentaire, IC," (//différence entre l’indemnité de départ à la retraite et l'indemnité de licenciement) récupérer: travail à temps plein/temps partiel ( sans incidence sur le calcul, mais l'usager peut se poser la question) (// définir ce qui est le mieux entre poser la question et afficher le chiffre de l'IC ou afficher un disclaimer ou les deux mon capitaine?)

indemnité de départ à la retraite, IR, récupérer "salaire brut mensuel, s" ( calcul au 1/12 ou au 1/3 comme pour l'indmenité légale de licenciement: récupérer la variable salarie brut mensuel, de l'indmenité légale de licenciement) "salaire brut mensuel,s" récupérer "ancienneté,a"

si a<10, IR=0 si a>10, a<15, IR=s si a>15, a<20, IR=1,5s si a>20 a<25, IR=2s si a>25 a<30, IR=2,5s si a>30 a<35, IR=3s si a>35 a<40, IR=3,5s si a >40 IR=4s

IC=IR-w

jrduscher commented 5 years ago

"branche": commerce de gros art 37 CC, en vigueur, étendu.

récupérer ancienneté,a récupérer salaire de base mensuel, s ( même base de calcul que l'indemnité légale)

indemnité de licenciement, z si a>1 et si a <10: z=s/5 a si a>10 z=s/5a + (a-10) (s/152)

comparer z et l’indemnité légale, afficher les deux. afficher le montant le plus favorable et sa provenance. ( selon vos indications, et sauf stipulation d'un accord d'entreprise, l'indemnité de licenciement auquel vous avez droit correspond à l'indemnité {légale,conventionnelle} dont le montant est le suivant: "")

jrduscher commented 5 years ago

branche HCR art 32 CC, en vigueur, étendu. "https://www.legifrance.gouv.fr/affichIDCC.do;jsessionid=76445D7E289FB3CA5914033397B20C6F.tplgfr30s_2?idSectionTA=KALISCTA000005747401&cidTexte=KALITEXT000005670044&idConvention=KALICONT000005635534"

récupérer ancienneté,a récupérer salaire de base mensuel, s ( même base de calcul que l'indemnité légale) si a>10, récupérer oui, non ( "êtes vous mensualisé?", oui/non)

indemnité de licenciement, z si a>2 et si a <10: z=s/10* a si a>10 z=s/10a + (a-10) (s/15)

comparer z et l’indemnité légale, afficher les deux. afficher le montant le plus favorable et sa provenance. ( selon vos indications, et sauf stipulation d'un accord d'entreprise, l'indemnité de licenciement auquel vous avez droit correspond à l'indemnité {légale,conventionnelle} dont le montant est le suivant: "")

jrduscher commented 5 years ago

branche: services de l'automobile IDCC 1090 article 4.11, en vigueur, étendu https://www.legifrance.gouv.fr/affichIDCCArticle.do?cidTexte=KALITEXT000005685156&idArticle=KALIARTI000005865239&categorieLien=cid

check faute grave ou lourde=non récupérer inaptitude {oui,non} (afficher " Votre licenciement fait il suite à une décision d'inaptitude?"), {oui,non} récupérer age : {années}

récupérer ancienneté,a récupérer salaire de base mensuel, s ( même base de calcul que l'indemnité légale) si a>10, récupérer oui, non ( "êtes vous mensualisé?", oui/non)

si age<60, si inaptitude=non.

indemnité de licenciement, z si a>1 et si a <10: z=s/102 a si a>10 z=s/152a + (a-10) (s/152)

comparer z et l’indemnité légale, afficher les deux. afficher le montant le plus favorable et sa provenance. ( selon vos indications, et sauf stipulation d'un accord d'entreprise, l'indemnité de licenciement auquel vous avez droit correspond à l'indemnité {légale,conventionnelle} dont le montant est le suivant: "") si inaptitude= non, si age>60 (afficher "vous avez droit à une indemnité complémentaire prévue dans la CCN") si inaptitude= oui, si age =< 50 IR=z

si inaptitude = oui. si age >50 (afficher "vous avez droit à une indemnité complémentaire prévue dans la CCN")

//incomplet mais integrable: il manque les calculs de l'IC...

jrduscher commented 5 years ago

HOSPITALISATION A BUT NON LUCRATIF FEHAP en vigueur ou pas? étendue ou pas???

"branche","" assistant familial,af: (afficher êtes assistant(e) familial(e)?"{oui, non}) ("afficher: médecin, pharmacien ou biologiste: en cas de faute médicale reconnue ou de faite administrative grave, l'indemnité de licenciement n'est pas due") (afficher: attention, en cas de licenciement lié à la perturbation dans le fonctionnement de l' entreprise due à des absences, l’indemnité de licenciement due ne peut vous priver des indemnités complémentaire en cas de maladie")

récupérer faute grave ou lourde, si faute grave ou lourde= non: si af=0

IR=IRL

si af=1 // modalité de calcul // to be continued

jrduscher commented 5 years ago

PROPRETE ENTREPRISES ET SERVICES ASSOCIES

calcul spécifique ancienneté conventionnel récupérer salaire de base mensuel, s /base de calcul branche?

base de calcul: indemnité légale de licenciement récupérer ancienneté,a //règle particulière branche?

si a<2 , ( afficher " Votre branche ne prévoit pas d'indemnité spécifique de licenciement en dessous de deux années d'ancienneté) si a>2 , a=<5, IR=s/10a si a>6, a<10, IR=s/10a5+s/6(a-5) // à tester si a>11 , IR=s/105+s/65+s/5*(a-10)// à tester

jrduscher commented 5 years ago

_REMONTEE DE BUGS_POC https://6wryx6zpvr.codesandbox.io/ après vérification des calculs suivant le test unitaire cité plus haut

1) salaire mensuel brut récupère la moyenne mensuelle brute: soit moy des 12 dernires mois soit moy des 3 derniers mois. sur la moyenne des 12 derniers mois, on ne trouve pas le bon nombre. (1042,79 au lieu de 1041,67) 2) le résultat final est faux: 3694 affichés contre 3305,56 attendues => en cause à mon avis la notion d'ancienneté dans le calcul: l'ancienneté est saisie en mois et est redonnée en mois: l'ancienneté devrait être saisie en année complètes mais surtout le chiffre prélevé est invariable, puisque repris "en mois par années d'ancienneté càd 1 an d'ancienneté = 1 mois dans le calcul". J'ai tenté de forker une version en corrigeant des paramètres, mais je ne tombe pas juste non plus...

jrduscher commented 5 years ago

Indemnité légale de licenciement: temps plein et temps partiel

1) détecter temps partiel.

Phase 1 Poser la question: attendus oui/non " travaillez vous ou avez vous travaillé à temps partiel dans l'entreprise?", Si 'non', continuer Si oui, demander la précision ci-après: Vous avez toujours travaillé à temps partiel dans l'entreprise [oui, j'ai toujours travaillé à temps partiel dans l'entreprise/ non, j'ai aussi travaillé à temps complet ] si oui, continuer : pas d'incidence sur le calcul si non: [action 1]

[action 1]: FIN + afficher wording de renvoi aux services de renseignement "Eu égard aux particularités de votre situation, nous vous conseillons de consulter les services de renseignement de l'inspection du Travail"+ formulaire "trouver son SR"

phase 2

on peut également poser ces questions différemment ( résultat identique): a)Quel est la durée du travail hebdomadaire en heures prévue à votre contrat de travail? HH [tpl_ouinon] si tpl_ouinon>=35H; temps plein demander" avez vous toujours travaillé à temps plein au cours de vos XXX (mois d'ancienneté)? si oui, continuer Si non, [action1] si tpl_ouinon<35H: temps partiel; demander" avez vous toujours travaillé à temps partiel au cours de vos XXX [mois d'ancienneté]? si oui, continuer Si non, [action1]

** [action 2] // aller plus loin que l'action 1: renvoi aux sdr _//artL3132-5 du code du travail. "L'indemnité de licenciement (....) du salarié, occupé à temps plein et à temps partiel_ Afficher explication: " l'indemnité de rupture de licenciement tient compte des périodes à temps plein et à temps partiel, par nécessité d'égalité de traitement"

a) séquencer et identifier les différentes périodes de travail à temps plein et à temps partiel l'usager doit remplir un questionnaire comme suit: période ++, tptpl: "temps plein/temps partiel; "date de début"AAAA, "date de fin" doit nous donner par exemple:
(période1: de 1976 à 1987: temps plein durée 11 ans période 2: de 1987 à 2000: temps plein durée 13 ans)

b) définition du salaire de référence // à vérifier là par contre salaire de référence brut au prorata du temps de travail ( exemple salaire de référence 1000 à temps plein mi temps: 5000)

c) calcul par période d) IL= somme des IL par période, ( évidemment la durée totale des périodes doit correspondre à l'ancienneté renseignée en début de formulaire) e) affichage du résultat

jrduscher commented 5 years ago
lionelB commented 5 years ago

closed by #201 Les prochaines ccn feront l'objet de nouvelles issues

jrduscher commented 5 years ago

branche Assistante maternelle du particulier employeur:

Explication: L'indemnité légale de licenciement est prévue par le code du travail. Le statut des assistatns maternels du Particulier employeur est régit par dispositions du code de l'action sociale et des familles et du code du travail, pour les matières expressément cités dans le CASF qui renvoient au CDTL. L423-2 CASF. => L'indemnité légale de licenciement telle que prévue dans le code du travail ne s'applique pas pour une assistante maternelle; ( le juge confirme ce point).

Donc, pour calculer l'indemnité de licenciement d'un(e) assistant(e) maternel(le) du particulier employeur, seule la CCN doit être utilisée.

Si CCN= 2395; convention collective des assistants maternels, garder les variables suivantes:

-

En page résultat n'afficher que le résultat issu du calcul de l’indemnité de licenciement prévue par la convention collective.

Prévoir un wording particulier pour l'expliquer en page résultat: " L'indemnité légale de licenciement prévue par le code du travail n'est pas applicable pour une assistante maternelle". S'affiche ensuite le résultat issu du calcul convention collective ( voir modif interface).

///WIP

lionelB commented 5 years ago

@jrduscher il vaut mieux créer une nouvelle issue plutot que de ré-ouvrir une ancienne issue pour rajouter une nouvelle fonctionnalité