Skip to main content

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

https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-cotisation-maladie---maternit/cas-particuliers.html

PREV_TH : Prévoyance travailleur handicapé
  • Base de cotisation BC_SALDIR
FORMATION_TH : Formation professionnelle continue travailleur handicapé
  • Base de cotisation BC_SALDIR
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 :

image-1716370668823.png

RET_JRSTRAV

CetteSi rubrique de paye est initialisée par défaut avec la rubrique NB_JRSTRAVle nombre de jours travaillés.non Si elletravaillés est égal à zéro, cette rubrique sera égale auà nombrezéro deet jourdans duce mois,cas c'est le barème mensuel qui sera utilisé. SinonSinon, c'eston utilise le barème journalier.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]=CONSTANTE(GENERAL.NBJMOISPAYE))0)
                alors (LISTEGEN(RETSOURCE;1)) sinon (LISTEGEN(RETSOURCE;3)*[RET_JRSTRAV.BASE])
          )
declarer (PLAF2)
affecter (PLAF2;si ([RET_JRSTRAV.BASE]=CONSTANTE(GENERAL.NBJMOISPAYE))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

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 :

image-1716382351642.png

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

    Correctifs

    V_NEWAGCP.HREMU

    • 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]
    Après
    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

    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

    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)
    

     

    Retenue à la source

    Une liste de constante : RET_SOURCE :

    • 1 : Fraction à 0%  : 1402€
    • 2 : Fraction à 12% : 4066€

    Une cotisation retenue à la source : RET_SOURCE avec une base de cotisation BC_RET_SOURCE

    BC_RET_SOURCE

    declarer (BASE)
    affecter (base;[NETIMP.MONTANT]*0.90)
    (
     0.12
     *
     si (:BASE>LISTEGEN(RETSOURCE;2))
     alors (LISTEGEN(RETSOURCE;2)-LISTEGEN(RETSOURCE;1))
     sinon (
            si (:BASE>LISTEGEN(RETSOURCE;1))
            alors (:BASE-LISTEGEN(RETSOURCE;1))
            sinon (0)
            )
    )
    +
    (
     0.20
     *
     si (:BASE>LISTEGEN(RETSOURCE;2))
     alors (:BASE-LISTEGEN(RETSOURCE;2))
     sinon (0)
    )
    

     

    Ajout de accident_TH  : Pour y mettre le CTP 122 en CTP2