Correction et mise à jour du gestionnaire de rubrique
Nouvelles rubriques
MALADIE_AM : Cotisation majoration maladie Alsace Moselle.
- Base de cotisation BC_BRUT_URSSAF
- Elle concerne les salariés exerçant une activité dans les départements du Bas-Rhin, du Haut-Rhin et de la Moselle
- Le taux est de taux 1.30% et est déclarée à l'aide du CTP 381 et du code cotisation 115
PREV_TH : Prévoyance travailleur handicapé
- Base de cotisation BC_SALDIR
FORMATION_TH : Formation professionnelle continue travailleur handicapé
- Base de cotisation BC_SALDIR
ACCIDENT_TH : Accident du travail travailleur handicapé
Ajout de accident_TH : Base de cotisation BC_CPLDDTE CTP 999 et CTP1 122
V_PLAFPREV : Nombre de plafond prévoyance à appliquer
Cette rubrique libre permet de définir le nombre de plafond de prévoyance à appliquer pour la tranche B et la tranche C de prévoyance.
En effet, jusqu'à présent, ce nombre était directement intégré dans les rubriques bases de cotisation de prévoyance :
Avec la mise à jour, les formules EIG de ces rubriques utilisent la rubrique libre V_PLAFPREV.
Exemple pour BC_TR_B_PREV_C :
Avant
F_TRANCHEBPREV([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];
[BC_TR_B_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC];3)
Après
F_TRANCHEBPREV([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];
[BC_TR_B_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC];[V_PLAFPREV.NB_TRB_C])
Les formules de la rubrique libre V_PLAFPREV ont été définies comme suit, afin de ne pas modifier la codification actuelle
- NB_TRB_C -> 3
- NB_TRC_C -> 4
- NB_TRB_NC -> 2
- NB_TRC_NC -> 4
A quoi ça sert ?
Dans la majorité des cas, cette modification n'est pas utile. Mais il arrive parfois que le nombre de plafond de prévoyance dépende d'une caractéristique du salarié : La convention, le type de contrat ou de salarié, etc. Dans ce cas, il sera possible de définir en un endroit le nombre de plafond à utiliser.
Exemple : En CCN51 , le nombre de plafond de prévoyance cadre est comme celui des non cadres, c'est à dire 2 plafonds pour la tranche B et 4 plafonds pour la tranche C. Pour les autres conventions pas de changement.
On va modifier la formule V_PLAFPREV.NB_TRB_C comme suit ;
si ([NUMCONV.NUMCONV]=51)
alors (2)
sinon (3)
Les cas exceptionnels où le salarié change de convention ne sont pas gérés. Dans ce cas, c'est le dernier nombre qui sera pris en compte dans le cumul annuel
Non résident actif
Pour l'assurance maladie, la cotisation suivante a été créée.
MALADIE_NRA : Cotisation maladie non résidents actif
- Base de cotisation BC_BRUT_NRA : Est égal à zéro si le salarié n'est pas résident à l'étranger (fonction de son code pays de résidence)
si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
alors ([BC_BRUT_URSAFF.MONTANT])
sinon (0)
- Elle concerne les personnes non domiciliées fiscalement en France et relevant à titre obligatoire d’un régime français d’assurance maladie.
Depuis le 1er mars 2018, le taux de la cotisation salariale d’assurance maladie pour les non-résidents fiscaux français est de 5,50 %. - Elle est déclarée à l'aide du CTP 206 « salariés non-résidents actifs » et le code cotisation 075.
Cette cotisation peut être ajoutée dans tous les régimes car la base de cotisation s'appuie sur le pays de résidence du salarié pour déterminer si la cotisation est due ou pas
Pour la retenue à la source, plusieurs éléments ont été créés.
Une liste de constante : RETSOURCE : Permet de renseigner les valeurs du barème MENSUEL pour le taux d'imposition
- 1 : Montant mensuel maximum pour la fraction à 0% : 1402€
- 2 : Montant mensuel maximum pour la fraction à 12% : 4066€
- 3 : Montant journalier maximum pour la fraction à 0% : 54€
- 4 : Montant journalier maximum pour la fraction à 12% : 156€
- 5 : Pourcentage d'abattement du net imposable : 10%
Pour rappel , le barème est le suivant en 2024 :
RET_JRSTRAV : Nombre de jours travaillés retenue à la source
Si le nombre de jours non travaillés est égal à zéro, cette rubrique sera égale à zéro et dans ce cas c'est le barème mensuel qui sera utilisé. Sinon, on utilise le barème journalier et cette rubrique est égale au nombre de jour travaillés (NB_JRSTRAV). En effet, en cas d'entrée sortie, c'est le barème journalier qui doit être appliqué. La rubrique RET_JRSTRAV est saisissable en paye dans le cas ou vous désirez ajuster le nombre de jour de travail.
si ([JRSNONTRAV.BASE]=0)
alors (0)
sinon ([NB_JRSTRAV.MONTANT])
RET_SOURCE : Retenue cotisation retenue à la source à ajouter dans le gestionnaire de régime
Comme pour la cotisation maladie, cette cotisation peut être ajoutée dans tous les régimes car la base de cotisation s'appuie sur le pays de résidence du salarié pour déterminer si la cotisation est due ou pas.
BC_RET_SOURCE : Base de cotisation de la retenue à la source
declarer (BASE)
affecter (base;arrondir([NETIMP.MONTANT]*(100-LISTEGEN(RETSOURCE;5))/100))
declarer (PLAF1)
affecter (PLAF1;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;1)) sinon (LISTEGEN(RETSOURCE;3)*[RET_JRSTRAV.BASE])
)
declarer (PLAF2)
affecter (PLAF2;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;2)) sinon (LISTEGEN(RETSOURCE;4)*[RET_JRSTRAV.BASE])
)
si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
alors (
arrondir(
0.12
*
si (:BASE>:PLAF2)
alors (:PLAF2-:PLAF1)
sinon (
si (:BASE>:PLAF1)
alors (:BASE-:PLAF1)
sinon (0)
)
)
+
arrondir(
0.20
*
si (:BASE>:PLAF2)
alors (:BASE-:PLAF2)
sinon (0)
)
)
sinon (0)
Base de CSG-CRDS
Les rubriques BC_CSG et BC_CRDS ont été modifiées pour prendre en compte le pays de résidence du salarié (constante contrat PAS_RESIDENTETRANGER). Si le code pays de résidence est différent de la France, ces bases de cotisations seront égales à zéro.
On peut donc utiliser un régime quelconque (général, cadre) qui inclut les cotisations CSG-CRDS, celles ci seront égales à zéro lorsque le salarié réside hors de France
Correctifs
V_NEWAGCP.HREMU : Heures rémunérées pour le nouveau calcul AGCP
- Le correctif permet d'ajuster le nombre d'heure rémunéré pour les cas de forfait jour, lors de l'entrée-sortie. Le nombre d'heure est alors proratisé en trentième en fonction du nombre de jour travaillé (30 - JRSNONTRAV)
Avant
si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5))
alors (
{Assistante Maternelle}
si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003)
alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
)
*
(
si ([IJBRUT.MONTANT]<>0)
alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) )
sinon (1)
)
)
sinon (
{Forfait Annuel en jours}
si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
*
si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0))
alors ([BC_BRUT_URSAFF.MONTANT]
/
([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT])
)
sinon (1)
)
sinon (
{Forfait Annuel en heures}
si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596
*
si ([IJBRUT.MONTANT]<>0)
alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) )
sinon (1)
)
{Horaire fixe / Horaire variable}
sinon (
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors ([AD_HNEXO.BASE])
sinon ([NB_HEURESCON.MONTANT])
*
(
([AGCP_NUMHREMU.MONTANT]
/
[B_PXHEURE.MONTANT]
)
)
+
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])
)
)
)
)
sinon ( [NB_HEUREREMU.BASE])
+[NB_HREMUREGUL.BASE]
si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5))
alors (
{Assistante Maternelle}
si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003)
alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
)
*
(
si ([IJBRUT.MONTANT]<>0)
alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) )
sinon (1)
)
)
sinon (
{Forfait Annuel en jours}
si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
*
si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0))
alors ([BC_BRUT_URSAFF.MONTANT]
/
([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT])
)
sinon (1)
-----------------------NOUVEAU CODE ----------------------------------------------------------------
*
si ([JRSNONTRAV.BASE]<>0)
alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30)
sinon(1)
----------------------------------------------------------------------------------------------------
)
sinon (
{Forfait Annuel en heures}
si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596
*
si ([IJBRUT.MONTANT]<>0)
alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) )
sinon (1)
)
{Horaire fixe / Horaire variable}
sinon (
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors ([AD_HNEXO.BASE])
sinon ([NB_HEURESCON.MONTANT])
*
(
([AGCP_NUMHREMU.MONTANT]
/
[B_PXHEURE.MONTANT]
)
)
+
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])
)
)
)
)
sinon ( [NB_HEUREREMU.BASE])
+[NB_HREMUREGUL.BASE]
APPRENTI.ABTBRANCHE : Abattement en % de la rémunération Accord de Branche
Modification pour prendre en compte les nouveaux pourcentages dans l'accord de branche :
- Pas d'ancienneté avant 18 ans : on passe de 30 à 35%
- Ancienneté>1 avant 18 ans : on passe de 0 à 55%
- Après 25 ans : Toujours 100%
Avant
selon (
cas ([APPRENTI.AGES] = 1)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (30)
cas ([APPRENTI.ANC] = 2) alors (45)
cas ([APPRENTI.ANC] = 3) alors (0)
)
)
cas ([APPRENTI.AGES] = 2)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (50)
cas ([APPRENTI.ANC] = 2) alors (60)
cas ([APPRENTI.ANC] = 3) alors (70)
)
)
cas ([APPRENTI.AGES] >= 3)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (65)
cas ([APPRENTI.ANC] = 2) alors (75)
cas ([APPRENTI.ANC] = 3) alors (85)
)
)
)
Après
selon (
cas ([APPRENTI.AGES] = 1)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (35)
cas ([APPRENTI.ANC] = 2) alors (45)
cas ([APPRENTI.ANC] = 3) alors (55)
)
)
cas ([APPRENTI.AGES] = 2)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (50)
cas ([APPRENTI.ANC] = 2) alors (60)
cas ([APPRENTI.ANC] = 3) alors (70)
)
)
cas ([APPRENTI.AGES] = 3)
alors (
selon (
cas ([APPRENTI.ANC] = 1) alors (65)
cas ([APPRENTI.ANC] = 2) alors (75)
cas ([APPRENTI.ANC] = 3) alors (85)
)
)
cas ([APPRENTI.AGES] = 4)
alors (100
)
)
JRSNONTRAV : Jours non travaillés
Lors d'un changement de situation en cours de mois, permet d'avoir le nombre de jour correct au total
Avant :
si([H_N0NTRAV.BASE]=0)
alors(
(
si (constante(general.mois_paye)=2)
alors (
si (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)=CONSTANTE(GENERAL.NBJMOISPAYE))
alors (0)
sinon (30-CONSTANTE(CONTRAT.CIVJOURSTRAVAIL))
)
sinon (30-minimum(constante(contrat.CIVJOURSTRAVAIL);30))
)
*
CONSTANTE(CONTRAT.USEJOURSNONTRAVAIL))
sinon (0)
Après
si([H_N0NTRAV.BASE]=0)
alors(
si (CONSTANTE(CONTRAT.USEJOURSNONTRAVAIL)=0)
alors (0)
sinon (
si (constante(general.mois_paye)=2)
alors (
si (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)=CONSTANTE(GENERAL.NBJMOISPAYE))
alors (0)
sinon (30-CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
-
si ((CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)<>CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB))
et (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)>=28))
alors (2)
sinon (0)
)
)
sinon (30-minimum(constante(contrat.CIVJOURSTRAVAIL);30))
+
si ((CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)<>CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)) et (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)=31))
alors (1)
sinon (0)
)
)
sinon (0)