Rubriques Fait générateur

Ici, on indique les rubriques qui seront à modifier pour mettre en place le fait générateur et le nouveau calcul des assiettes

Toutes les modifications ont pour objet de simplifier le calcul des assiettes, quitte à les multiplier.

Régime Apprenti

Aujourd'hui, les cotisations apprenti sont exonérées jusqu'à un certains seuil SMIC :

  • 79% SMIC si le contrat a été passé avant 03/2025
  • 50%SMIC si le contrat a été passé après 03/2025

Les bases de cotisation BC_BRUT_APP et BC_BRUT_APP_PL se calculent aujourd'hui  en interrogeant directement la rubrique CONAIDE.SEUILAPRENTI qui teste la date d'embauche.

Le moteur d'assiette va gérer ce cas avec un système de type d'assiette chapeau

  • BC_BRUT_APP est mappé sur le type d'assiette T-03-BRUT-APR
  • BC_BRUT_APP_PL est mappé sur le type d'assiette T-03-BRUT-APR-EXO

Ce sont des types d'assiette chapeau qui vont utiliser des types d'assiettes "enfants" qui vont gérer le prédicat sur la date d'embauche.

Reste le problème de la CSG. L'itérative B_COT_CSG_ABT appelle BC_BRUT_APP_PL qui va donner le brut exo quelque soit la date d'embauche et donc appliquer une csg pour tous les apprentis alors que les antérieurs à 03/2025 sont exo.

Solution : créer BC_CSG_APP et remplacer dans le régime apprenti pour les CSG

BC_CSG_APP ne donnera un montant que pour les apprentis postérieur à 03/2025

BC_CSG_APP : base csg apprenti non exonéré

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([APPRENTI.APPRENTI0325]=1)
      alors ([BC_CSG.MONTANT])
      sinon (0)
      )
sinon (0)

N_CSGND , N_CSGDED et N_CRDS la base doit être modifiable

CONAIDE.SEUILAPPRENTI

50% du Smic mensuel

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*
si ([APPRENTI.APPRENTI0325]=1)
alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
sinon (0.79*CONSTANTE(GENERAL.SMICMENS))

Après

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*
si ([APPRENTI.APPRENTI0325]=1)
alors (0.50*CONSTANTE(GENERAL.SMICMENS))
sinon (0.79*CONSTANTE(GENERAL.SMICMENS))

Complément maladie

Depuis 2026, il est du pour tout ceux qui ont RGDU.

Les exceptions sont ceux qui ne sont pas soumis à la RGDU : Ils ne sont soumis qu'au delà de 2.5SMIC

  • Régime ZRR et compagnie
  • Aide à domicile, uniquement sur la partie exonérée (ils ont une RGDU spécifique)

Aujourd'hui, BC_MALCOMP25 calcule tout cela : Trop compliqué pour le moteur d'assiette.

pour le cas général, il suffit de mettre BC_BRUT_URSSAF

BC_MALCOMP25 est gardé pour le cas complément maladie ZRR

On garde également BC_BRUT_ADNEXO  pour l'aide à domicile

Modification de  BC_MALCOMP25

 

         si (
            (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
            et ([V_NEWAGCP.CUMREMUAF]>0)
            et ([V_NEWAGCP.CUMSMICPRO3112]>0)
            )
         alors (
                f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                - f_histoclotsit([BC_MALCOMP25.MONTANT])
                )
         sinon (
               f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1)
               )

il faudra mettre BC_BRUT_URSSAF par défaut et mettre BC_MALCOMP25 pour les régimes ZRR

Plafond forfait jour réduit

Le problème est que l'on transforme le nombre de jour réduit en heure pour calculer le plafond

PLAFONDSECU.PLAFOND

Avant

minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
        CONSTANTE(GENERAL.PLFSECUMOIS)
        *
          ( si ([PL_PROTPSPAR.MONTANT]=0)
            alors (1)
            sinon (
                  si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4)
                  alors (
                        CONSTANTE(CONTRAT.TAUXPLAFOND)/100
                       )
                  sinon (
                          ([PL_HRSDUREE.MONTANT])
                           / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
                         )
                  )
           )
        )
*(
   minimum(maximum(0;[PLAFONDSECU.JRS_TOTAL])
           ;[PLAFONDSECU.NBJMOISPAYE]
          )
   /[PLAFONDSECU.NBJMOISPAYE]
  )

Après

minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
        CONSTANTE(GENERAL.PLFSECUMOIS)
        *
          ( si ([PL_PROTPSPAR.MONTANT]=0)
            alors (1)
            sinon (
                  si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4)
                  alors (
                        CONSTANTE(CONTRAT.TAUXPLAFOND)/100
                       )
                  sinon (
                         si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                         alors (
                               CONSTANTE(CONTRAT.JOUR_FORFAIT)
                               /CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
                               )
                         sinon (
                               ([PL_HRSDUREE.MONTANT])
                               / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
                               )
                         )
                  )
           )
        )
*(
   minimum(maximum(0;[PLAFONDSECU.JRS_TOTAL])
           ;[PLAFONDSECU.NBJMOISPAYE]
          )
   /[PLAFONDSECU.NBJMOISPAYE]
  )