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 :

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

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

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]
  )

 

 


Revision #16
Created 5 June 2026 14:04:50 by Valéry HUMEZ
Updated 9 June 2026 11:34:10 by Valéry HUMEZ