Modification du gestionnaire de rubriques

Version 62

Version 62

Version 6

Calcul de plafond

PL_HRSDUREE : Durée en heures pour les temps partiels

Correctif pour prendre en compte les forfaits jours

Avant

CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE]

Après

si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (
  CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)
  /
  CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
)
SINON(
  CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE]
)

V_AGCP.HREMU

Correctif pour l'horaire collectif des forfaits jours

Remplacement de 218 par CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)

Avant

 {Forfait Annuel en jours}
               si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/218
                      *
                       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 (

Après

 {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 (

Calcul AGCP et SMICPRORATE

Remplacement de histocumulsitu par histo cumuljoint car le calcul annuel se fait désormais tout contrat confondu

BC_MALCOMP25 : Assiette complément maladie si salaire>2.5 SMIC

Avant

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (
        histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumulsitu([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
      )

Après

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (
        histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumuljoint([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
      )
BC_REG_ALLOC Base régularisation alloc

Avant

si (
      ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0)
      ou ([V_AGCP.CUMSMICPRORATE]<=0)
      )
alors (
              histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
              -histocumulsitu([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumulsitu([V_ALLOC.BASEALLOCRED])
            +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

si (
      ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0)
      ou ([V_AGCP.CUMSMICPRORATE]<=0)
      )
alors (
              histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
              -histocumuljoint([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumuljoint([V_ALLOC.BASEALLOCRED])
            +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
      )
Correctif sur fonction F_AGCP

Avant

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
si ((moisdebut=0) ou (moisfin=0))
alors (histocumulsitu(RUBACUMULER))
sinon (
        histocumulsitu(RUBACUMULER;
                          maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                          CONSTANTE(GENERAL.ANNEE_PAYE);
                          (si (moisfin=0) alors (12) sinon (moisfin));
                          CONSTANTE(GENERAL.ANNEE_PAYE)
               )
       )
       )

Après

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
si ((moisdebut=0) ou (moisfin=0))
alors (histocumuljoint(RUBACUMULER))
sinon (
        histocumuljoint(RUBACUMULER;
                          maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                          CONSTANTE(GENERAL.ANNEE_PAYE);
                          (si (moisfin=0) alors (12) sinon (moisfin));
                          CONSTANTE(GENERAL.ANNEE_PAYE)
               )
       )
       )

 

Assistantes familiales

66_AFDISPO : Indemnité de disponibilité

A saisir en variable de paye
Indemnité de disponibilité qui « ne peut être inférieure
à 2.25 fois le montant du salaire minimum de croissance, sans pouvoir être
inférieure à 90% de la rémunération prévue par le contrat de travail ».
Pour chaque journée de disponibilité, une comparaison doit être effectuée entre le salaire
légal (2.25 x Smic horaire) et contractuel (90% de la rémunération contractuelle).

66_AFPARTMIXTE : Part accueil mixte

Correctif pour que la rubrique fonctionne même si pas d'enfant au contrat.

Et comparatif entre le légal et le conventionnel

Avant :

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) )
alors (
      [66_AFJRSINTER.MONTANT]/26
      *([66_AF_1ENF.RESULTAT])
      *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
      )
sinon (0)

Après

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) )
alors (
      maximum(
              [66_AFJRSINTER.BASE]*5.06*CONSTANTE(GENERAL.SMICHOR)
              ;
              [66_AFJRSINTER.MONTANT]/26
              *([66_AF_1ENF.RESULTAT])
              *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
              )
      )
sinon (0)
66_AFNBJINT : Nombre de jours d'accueil permanent intermittent

Erreur sur la formule sur le nombre de jour d'accueil enfant 2

Avant

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]=0
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      )
sinon (0)

Après

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      )
sinon (0)
66_AFNBJABSCP : Nombre de jour absence convenance personnelle

Création de la rubrique pour minorer l'accueil non réalisé

66_AFNBJABS1

Création de la rubrique pour minorer l'accueil non réalisé par enfant

Comment faire lorsque le nombre d'enfant contractuel change en cours de mois ?

Exemple 1 : Du 1er au 10 -> 2 enfants et du 11 au 30 -> 1 enfant

Exemple 2 : Du 1er au 10 -> 1 enfant et du 11 au 30 -> 2 enfant

Augmenter le nombre d'enfant

Afin de simplifier la rubrique 66_AF, on va créer des fonctions qui donneront le résultat.

Création d'une fonction :

66AF (REMU , CONV , NBJACCUEIL,NBJABSCP , PROG , PRECPROG,NUMERO)

Passage à 5 enfants :

Création des rubriques suivantes sur le même modèle que les autres :

Il n'y a pas d'indemnité pour accueil non réalisé pour les enfants 4 et 5

66_AFIACCNE : Indemnité compensatrice pour accueil non réalisé

si ([66_AF.PRENDRELEG1]=1)
      alors ([66_AF.ABSLEG1])
      sinon ([66_AF.ABSCONV1])
+
si ( [66_AFNBENF.MONTANT]>1
   )
alors (
      si ([66_AF.PRENDRELEG2]=1)
      alors ([66_AF.ABSLEG2])
      sinon ([66_AF.ABSCONV2])
      )
sinon (0)
+
si ( [66_AFNBENF.MONTANT]>2
   )
alors (
      si ([66_AF.PRENDRELEG3]=1)
      alors ([66_AF.ABSLEG3])
      sinon ([66_AF.ABSCONV3])
      )
sinon (0)

66_AFBASE : Salaire de base

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) )
alors (
                [66_AFPART1.MONTANT]
                +[66_AFPART2.MONTANT]
                +[66_AFPART3.MONTANT]
                +[66_AFPART4.MONTANT]
                +[66_AFPART5.MONTANT]
                +[66_AFPARTMIXTE.MONTANT]
       )
sinon (0)

66_AFNBJRPER : Nombre de jours d'accueil Permanent continu

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=0))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=4)
      alors (
            [66_AFNBJENF4.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=5)
      alors (
            [66_AFNBJENF5.MONTANT]
            )
      sinon (0)
      )
sinon (0)

66_AFNBJINT : Nombre de jours d'accueil permanent intermittent

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=4)
      alors (
            [66_AFNBJENF4.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=5)
      alors (
            [66_AFNBJENF5.MONTANT]
            )
      sinon (0)

      )
sinon (0)

 

Version 62

Version 7 : AGCP

Fonction F_AGCPSMICMENS : Recalcul du smic mensuel proraté d'un mois

Paramètres :

si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER))
alors (
         (histoactifjoint(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/
          CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
          )
          *histoactifjoint(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/1607
       )
sinon (0)

Rubriques créées

V_NEWAGCP : Rubrique libre nouveau calcul AGCP

Liste des formules :

Si la constante SMICAGCP (recalcule smic chaque mois) est à oui, utilise TOTSMICPRO sinon comme avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (0)
sinon (si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)
      alors (
            F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
            )
      sinon (
            F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_AGCP.HREMU];[V_AGCP.HORBASE])
            )
      )

Les quatre dernières formules permettent de recalculer le total AGCP pour chaque part en fonction du paramètre T actuel. Ainsi, s'il était incorrect en début d'année, le fait de le changer calculera les bons montant AGCP.

V_AD_AGCP : AGCP aide à domicile

Liste des formules :

AD_HNEXO : Heures non exonérées aide à domicile

Rubrique de paye des heures aide à domicile non exonérées. A saisir en variable de paye.

AD_HEXO : Heures aide à domicile exonérées

Rubrique de paye des heures exonérées aide à domicile. Cette rubrique est calculée en fonction des heures non exonérées saisies par la différence entre les heures contractuelles et les heures non exonérées saisies.

Les heures supplémentaires qui sont saisies sont réparties au prorata des heures exonérées et non exonérées.

CUMUL.COMPTEUR

Rubrique toujours égale à 1 pour comptabiliser le nombre de contrat.

Mise en place

ATTENTION : Pour activer  SMICAGCP  il faut faire une modif d'historique de V_NEWAGCP.HREMUOK et l'initialiser à 1 si V_NEWAGCP.HREMU<>0 pour un calcul correct de TOTSMICPRO 

update rhpersonne P set pertypesalarie=5
where exists (select * from rhcontrat C where (ctrempart=1003) and (ctrperid=P.perid))

AD_HEXO et AD_HNEXO

à remplir par les rubriques utilisées précédemment.

V_NEWAGCP.HREMU

Reprendre AGCP.HREMU.

V_NEWAGCP.REMUCOEF

Reprendre AGCP.REMUCOEF.

V_NEWAGCP.HORBASE

si ([V_AGCP.HREMU]=0)
alors (0)
sinon ([V_AGCP.HORBASE])

V_NEWAGCP.HREMUOK

si ([V_NEWAGCP.HREMU]=0)
alors (0)
sinon (1)

V_AD_AGCP.HREMU

Reprendre la rubrique utilisateur AD_AGCP.HREMU.

V_AD_AGCP.REMUCOEF

Reprendre la rubrique utilisateur AD_AGCP.REMUCOEF.

V_AD_AGCP.HORBASE

si ([_V_AD_AGCP.HREMU]=0)
alors (0)
sinon ([_V_AGCP_AD.HORBASE])

V_AD_AGCP.HREMUOK

si ([_V_AGCP_AD.HREMU]=0)
alors (0)
sinon (1)

BC_ADAGCPRUAA

Reprendre la base de cotisation AGCP aide à domicile utilisateur

BC_ADAGCPURSS

Reprendre la base de cotisation AGCP aide à domicile utilisateur

 

 

Version 62

Version 8

Ajout TH_DIM : paiement des dimanches et fériés pour les TH

Version 62

Version 9

BC_MALCOMP25

Prise en compte de la constante générale FILLONCONTRAT

Prise en compte de la nouvelle rubrique V_NEWAGCP

Avant

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   )
alors (
        histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumulsitu([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
      )

Après

si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
alors (
      si (
         (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
         et ([V_AGCP.CUMREMUCOEF]>0)
         )
      alors (
            histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
            - histocumulsitu([BC_MALCOMP25.MONTANT])
            )
      sinon (
            histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
            )
      )
sinon (
      si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            si (
               (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
               et ([V_AGCP.CUMREMUCOEF]>0)
               et ([V_AGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumuljoint([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      sinon (
            si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO]))
               et ([V_NEWAGCP.CUMREMUCOEF]>0)
               et ([V_NEWAGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumuljoint([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      )
Allocation familiale

Prise en compte de la nouvelle rubrique V_NEWAGCP

ALLOCFAM.TAUX

Avant

si (
   ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )

ALLOCFAMREDUIT.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)
sinon (LISTEGEN(TX_ALLOCF;0002))

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )

ALLOCFAMCOMP.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)sinon (1.80)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0) sinon (1.80)
      )


ALLOCFAMCOMPNEG.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)sinon (-1.80)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (-1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0) sinon (-1.80)
      )

BC_REG_ALLOC

Avant

si (([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0))
alors (
              histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
              -histocumulsitu([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumulsitu([V_ALLOC.BASEALLOCRED])
            +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

si (CONSTANTE(GENERAL.NEWAGCP)=1)
alors (
      si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
      alors (
            si (
               ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO]))
               ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
               ou ([V_NEWAGCP.CUMSMICPRO]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      sinon (
            si (
               ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO]))
               ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
               ou ([V_NEWAGCP.CUMSMICPRO]<=0)
            )
            alors (
                   histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
                   -histocumuljoint([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumuljoint([V_ALLOC.BASEALLOCRED])
                  +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
      alors (
            si (
               ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
               ou ([V_AGCP.CUMREMUCOEF]<=0)
               ou ([V_AGCP.CUMSMICPRORATE]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      sinon (
            si (
               ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
               ou ([V_AGCP.CUMREMUCOEF]<=0)
               ou ([V_AGCP.CUMSMICPRORATE]<=0)
            )
            alors (
                   histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
                   -histocumuljoint([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumuljoint([V_ALLOC.BASEALLOCRED])
                  +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      )

 

Version 62

Version 10

Je supprime la constante FILLONCONTRAT et modifie toutes les formules y faisant référence

 

Version 62

Version 11

Modification de I_ICP

La formule ne prenait pas en compte l'histo du contrat en changement de situation dans le mois de paye en cours

Avant

DECLARER(MEMB)
AFFECTER(MEMB;CONSTANTE(CONTRAT.MOIS_EMBAUCHE))
DECLARER(AEMB)
AFFECTER(AEMB;CONSTANTE(CONTRAT.ANNEE_EMBAUCHE))
DECLARER(MPAYE)
AFFECTER(MPAYE;CONSTANTE(GENERAL.MOIS_PAYE))
DECLARER(APAYE)
AFFECTER(APAYE;CONSTANTE(GENERAL.ANNEE_PAYE))
SI(
    CONSTANTE(CONTRAT.PAIEMENTCP)=
    (0))
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PAIEMENTCP)=2)
      ALORS(
        HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+([B_ICP.MONTANT])-
        HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE))
      SINON(
          SI(
            CONSTANTE(CONTRAT.CLOTURE)=1)
          ALORS(
            HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+
            ([B_ICP.MONTANT])-
            HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE))
          SINON(0)))

Après

SI(
    CONSTANTE(CONTRAT.PAIEMENTCP)=
    (0))
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PAIEMENTCP)=2)
      ALORS(
        HISTOCumulsitu([B_ICP.MONTANT];1,1980)+([B_ICP.MONTANT])-
        HISTOCumulsitu([I_ICP.BASE];1,1980))
      SINON(
          SI(
            CONSTANTE(CONTRAT.CLOTURE)=1)
          ALORS(
            HISTOCumulsitu([B_ICP.MONTANT];1,1980)+
            ([B_ICP.MONTANT])-
            HISTOCumulsitu([I_ICP.BASE];1,1980))
          SINON(0)))

Version 63

Version 63

Version 1

Correctif I_ICP

Erreur sur les mots clés histocumulsitu, il y avait une virgule à la place du point virgule

SI(
    CONSTANTE(CONTRAT.PAIEMENTCP)=
    (0))
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PAIEMENTCP)=2)
      ALORS(
        HISTOCumulsitu([B_ICP.MONTANT];1;1980)+([B_ICP.MONTANT])-
        HISTOCumulsitu([I_ICP.BASE];1;1980))
      SINON(
          SI(
            CONSTANTE(CONTRAT.CLOTURE)=1)
          ALORS(
            HISTOCumulsitu([B_ICP.MONTANT];1;1980)+
            ([B_ICP.MONTANT])-
            HISTOCumulsitu([I_ICP.BASE];1;1980))
          SINON(0)))

V_NEWAGCP

Ajout de la formule CUMHREMU : Cumul des heures rémunérées

[V_NEWAGCP.HREMU]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT])
      )

Ajout de la formule MTAGCPMENS : Montant AGCP mensuel

[V_NEWAGCP.AGCPURSSAF]+[V_NEWAGCP.AGCPAA]

V_AD_AGCP

Ajout de la formule CUMHREMU : Cumul des heures rémunérées

[V_AD_AGCP.HREMU]
+
F_AGCP([V_AD_AGCP.HREMU];[AGCPDEBUT.MONTANT])

Ajout de la formule MTAGCPMENS : Montant AGCP mensuel

[V_AD_AGCP.ADAGCPURSSAF]+[V_AD_AGCP.ADAGCPAA]

 

PAS_VARIABLES.NONIMPO

Cette rubrique n'est que pour les apprentis et stagiaires

Avant

si ([PAS_VARIABLES.APPRENTISTAG]=1)
alors (
      [PAS_VARIABLES.NETFISCAL]-[PAS_VARIABLES.BASEPAS]
      )
sinon (0)
+
[PAS_VARIABLES.NONIMP_IJMAL]
+(0.5*[PAS_VARIABLES.IMP_IJAT])

Après

si ([PAS_VARIABLES.APPRENTISTAG]=1)
alors (
      [PAS_VARIABLES.NETFISCAL]-[PAS_VARIABLES.BASEPAS]
      )
sinon (0)
Version 63

Version 2

Correction de la fonction F_AGCPSMICMENS

Avant

si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER))
alors (
        si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE))
        alors (
               (
                HREMU
                /
               CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS)
               )
               *
               HORBASE/1607
               )
        sinon (
               (
                 histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                 /
                 CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
               )
               *
               histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
               /
               (1607
                *
                si (OKREMUH=-1)
                alors (1)
                sinon (
                       histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                      )
                )
              )
       )
sinon (0)

Après

si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER))
alors (
        si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE))
        alors (
               (
                HREMU
                /
               CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS)
               )
               *
               HORBASE/1607
               )
        sinon (
        declarer(MT)
        Affecter(MT;
                   (
                     histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                     /
                     CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                   )
                   *
                   histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                 )
               :MT
               /
               (1607
                *
                si (OKREMUH=-1)
                alors (1)
                sinon (
                       histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                      )
                )
              )
       )
sinon (0)
Version 63

Version 3

Ajout de formule dans V_NEWAGCP

HSUP : Heures supplémentaires

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])

CUMHSUP

[V_NEWAGCP.HSUP]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

Ajout de formule dans V_AGCPAD

HSUP

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])

CUMHSUP

[V_AD_AGCP.HSUP]
+
si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)
alors (
      F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([V_AD_AGCP.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

Suppression de la formule CUMAGCP dans V_NEWAGCP et V_AD_AGCP

 

Version 63

Version 4

Correctif de la fonction 66_AF

Dans la rémunération légale pour les enfants suivants, faisait référence à la rubrique  nombre de jours de l'enfant 2

 

/*Rémunération légale*/
si ([66_AFACCINTER.MONTANT]=0)
alors (
si (NUMERO=1)
alors ( /* Enfant 1 */
NBJACCUEIL
/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)
)
sinon ( /* Enfants suivant */
NBJACCUEIL
/CONSTANTE(GENERAL.NBJMOISPAYE)
*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
sinon (0)
)

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]>=NUMERO))
alors (
      si (REMU=1)
      alors (
            si (CONV=1)
            alors (
            /* Rémunération conventionnelle*/
                   si ([66_AFACCINTER.MONTANT]=0)
                   alors (
                         si (NBJACCUEIL<16)
                         alors (NBJACCUEIL/26)
                         sinon (1)
                         *
                         si (NUMERO=1)
                         alors ( /* Enfant 1 */
                               (PROG+PRECPRO)
                               )
                         sinon (/* Enfants suivant */
                               (PROG-PRECPRO)
                               )
                         *[VP.VP]
                         *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
                         )
                   sinon (
                         NBJACCUEIL*5.06*CONSTANTE(GENERAL.SMICHOR)
                         )
                  )
            sinon (
            /*Rémunération légale*/
                  si ([66_AFACCINTER.MONTANT]=0)
                  alors (
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                               NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                        )
                  sinon (0)
                  )
            )
       sinon (
             si (CONV=1)
             /* Absence conventionnelle*/
             alors (
                   si ( (NBJACCUEIL<>0) et (NBJACCUEIL<CONSTANTE(GENERAL.NBJMOISPAYE))
                      et (NBJACCUEIL<16)
                      )
                   alors (
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8*70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                         )
                   sinon (0)
                   )
             sinon (
             /* Absence légale */
                    si (NUMERO=1)
                    alors ( /* Enfant 1 */
                          maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
                          /CONSTANTE(GENERAL.NBJMOISPAYE)
                          *0.8
                          *CONSTANTE(GENERAL.SMICMENS)
                          )
                     sinon (
                           maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                           /CONSTANTE(GENERAL.NBJMOISPAYE)
                           *0.8*70
                           *CONSTANTE(GENERAL.SMICHOR)
                           )
                   )
              )
       )
sinon (0)

Version 64

Version 64

Version 1

A faire :

Voir ticket 657305 sur assmat

Version 2

Ajouter BC_BRUTSTA dans les cumuls sécu

CUMUL.CUMBRUTSECU

Avant

histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]

Après

histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]
+histocumulJOINT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT]

Créer un rubrique de paye REGNETSOCIAL qui rentre à zéro dans le net social OK

https://wikiapp.heberg-eig.fr/books/calcul-de-paye-rubriques/page/net-social#bkmrk-r%C3%A9gularisation-du-ne

Modifier le nombre de décimale de la rubrique CONAIDE OK

Version 3

Modification formule V_AD_AGCP.ADCOEF : C'est ADCUMREMUCOEF et pas ADREMUCOEF

si  (
    ([V_AD_AGCP.ADCUMREMUCOEF]+[IJBRUT.MONTANT]+F_AGCP([IJBRUT.MONTANT])<= 0 )
    ou ([V_AD_AGCP.ADCUMSMICPRO]<=0)
    )
             alors (0)
             sinon (
               maximum(0;
                       MINIMUM([V_NEWAGCP.MAXCOEF];
                                1.2*([V_NEWAGCP.MAXCOEF]/0.4)*
                                ((1.6*[V_AD_AGCP.ADCUMSMICPRO]/[V_AD_AGCP.ADCUMREMUCOEF])-1)
                               )
                      )
                   )

Modification de la fonction F_AGCPSMICMENS : Quand c'est le mois de paye, on ajoute le cumulsitu du mois

 

si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER))
alors (
        si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE))
        alors (
               (
                (HREMU+histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)))
                /
               CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS)
               )
               *
               HORBASE/1607
               )
        sinon (
        declarer(MT)
        Affecter(MT;
                   (
                     histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                     /
                     CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                   )
                   *
                   histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                 )
               :MT
               /
               (1607
                *
                si (OKREMUH=-1)
                alors (1)
                sinon (
                       histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
                      )
                )
              )
       )
sinon (0)

 

Ajout d'une rubrique rappel de gratification, afin que cela n'influe pas sur le seuil

REG_GRATI_STAG

Ajouté dans le brut et retiré de B_COT_ASS

Uniquement en régularisation

https://eigteam.atlassian.net/browse/DELPHI-384?filter=10063&jql=project%20%3D%20DELPHI%20AND%20issuetype%20in%20(standardIssueTypes()%2C%20Epic%2C%20T%C3%A2che)%20AND%20status%20in%20(%22In%20Progress%22%2C%20%22To%20Do%22)%20AND%20assignee%20in%20(6183b9a916119e0069aee406%2C%20EMPTY%2C%205ffef9ea9edf280075d8cad5%2C%20currentUser()%2C%206058b582630024006fa638cd)%20AND%20reporter%20in%20(6183b9a916119e0069aee406%2C%205ffef9ea9edf280075d8cad5%2C%206058b582630024006fa638cd)%20ORDER%20BY%20priority%20DESC%2C%20created%20DESC

 

Création de BCOTASSREEL

Il s'agit de calculer la base de cotisation réellement utilisée. Car B_COT_ASS est toujours calculée hors il n'y a pas de cotisation assedic pour les stagiaires. Cette rubrique est calculée lorsque BC_BRUT_ASS est calculée, donc quand il y a cotisation assedic.
Utilisée à partir de 2024

BC_BRUT_ASS

si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024)
alors (
      si ([EXOCHOMAGE.BASE]=1)
      alors(0)
      sinon (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            )
       )
sinon (
      si ([EXOCHOMAGE.BASE]=1)
      alors(0)
      sinon (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([BCOTASSREEL.MONTANT])
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT])
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_BRUT_ASS.MONTANT])
            -histocumuljoint([BC_BRUT_ASS_EX.MONTANT])
            -histocumuljoint([BC_BRUT_APP_PL.MONTANT])
            -histocumuljoint([BC_BRUT_APP.MONTANT])
            )
       )

BC_FNGS

si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024)
alors (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_FNGS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))           
       )
sinon (

            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([BCOTASSREEL.MONTANT])
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT])
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_BRUT_ASS.MONTANT])
            -histocumuljoint([BC_BRUT_ASS_EX.MONTANT])
            -histocumuljoint([BC_BRUT_APP_PL.MONTANT])
            -histocumuljoint([BC_BRUT_APP.MONTANT])
       )

 

BC_BRUT_APP

MAXIMUM([BRUT.MONTANT]-[CONAIDE.SEUILAPPRENTI];0)
+[BCOTASSREEL.MONTANT]*0

BC_BRUT_APP_PL

si ([BRUT.MONTANT]>0)
alors (PLAFONNER([BRUT.MONTANT];0;[CONAIDE.SEUILAPPRENTI]))
sinon (PLAFONNER([BRUT.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
+[BCOTASSREEL.MONTANT]*0

Désactivation des rubriques inutilisées :

Version 6

Correctif sur BC_FNGS

Version 64

version en attente 2024

 

Ajouter la rubrique CET tranche 2 Apprenti

Régler la problématique du passage apprenti vers général qui déclenche une régul de retraite à cause la rubrique BRUT_RET qui est calculée à cause de la cotisation CET apprenti

Le pb aussi de la cotisation assedic : Le mois de changement ne suffit pas car on peut avoir un chgt de situation en cours de mois.

La solution est de créer une rubrique qui stocke le B_COT_ASS vraiment utilisé : Une rubrique libre contenant des formules à 1 ou zéro qui permet de savoir si c'est utilisé ou pas.

Ou plutôt une rubrique libre contenant des formules : Le b_cotass utilisé, le b_brut retraite, etc

Création de BC_TU1_APP

MAXIMUM([PL_MENSA.MONTANT]-[CONAIDE.SEUILAPPRENTI];0)

BC_TU1_APP_PL

si ([PL_MENSA.MONTANT]>0)
alors (PLAFONNER([PL_MENSA.MONTANT];0;[CONAIDE.SEUILAPPRENTI]))
sinon (PLAFONNER([PL_MENSA.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))

BC_TU2_APP

si (([BRUT.MONTANT]<[PL_MENSA.MONTANT])
   ou ([BRUT.MONTANT]<[CONAIDE.SEUILAPPRENTI]))
alors (
      0
      )
sinon (

       [BRUT.MONTANT]-maximum([PL_MENSA.MONTANT];[CONAIDE.SEUILAPPRENTI])
       )

BC_TU2_APP_PL

si ([BRUT.MONTANT]<[PL_MENSA.MONTANT])
alors (
      0
      )
sinon (
      si ( [BRUT.MONTANT]<[CONAIDE.SEUILAPPRENTI])
      alors ([BRUT.MONTANT]-[PL_MENSA.MONTANT])
      sinon (maximum(0;[CONAIDE.SEUILAPPRENTI]-[PL_MENSA.MONTANT]))
       )

RETAPP_COMTU2T : Retraite tranche 2 apprenti non exo

 

https://eigteam.atlassian.net/browse/DELPHI-279

Simulation des bases plafonnées-déplafonnées code 02-03 pour les fonctionnaires détachés

Ajout de deux rubriques de cotisation pour simuler l'assiette plafonnée et déplafonnée.

Il s'agit de corriger la situation où l'assiette plafonnée et déplafonnée n'est pas calculée car pas de cotisation dessus.

Quels sont ces cas ?

Le cas se produit lorsqu'il n'y a pas de cotisation Tranche A : Ex fonctionnaire détaché

On peut avoir le cas peut être avec les stagiaires ?

Je pense que l'assiette déplafonnée doit toujours être renseignée, même s'il n'y a pas de cotisation tranche A

En standby pour le moment

 

Après ajout de la constante CTRANC.

Permet dans le cas d'un contrat antérieur se finissant dans le mois M-1 de prorater en fonction du nombre de jour du mois M-1

Rubrique PLAFONDS_A

Rubrique NEW_PLA_MOIS

declarer (nbjmois)
affecter (nbjmois;CONSTANTE(CONTRAT.CTRANT)*CONSTANTE(GENERAL.NBJMOISPAYE_1)
+(1-CONSTANTE(CONTRAT.CTRANT))*CONSTANTE(GENERAL.NBJMOISPAYE))
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;[PLAFONDS_A.JRS_TOTAL]-CONSTANTE(CONTRAT.JOURSANTCIV));:nbjmois)
   /:nbjmois
  )

Rubrique PLA_OC

declarer (nbjmois)
affecter (nbjmois;CONSTANTE(CONTRAT.CTRANT)*CONSTANTE(GENERAL.NBJMOISPAYE_1)
+(1-CONSTANTE(CONTRAT.CTRANT))*CONSTANTE(GENERAL.NBJMOISPAYE))
minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
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;[PL_JRSEMPLOI.MONTANT]-CONSTANTE(CONTRAT.JRSABSNONREMOC));:nbjmois)
   /:nbjmois
  )
 +[PLAFONDS_A.PLA_MOISANT]
 )
+[PL_OC.MONTANT]

 

 

 

 

 

Ajout des rubriques du PERECO

 

Version 65

V1 : Nouveau plafond sécu

 

V2 Régul agcp année précédente

 

Création des rubriques de régularisation AGCP AD année précédente

Neutralisation des bases AGCP quand utilisation des rubriques AGCP année précédente :

BC_ADAGCPRUAA

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
       si (CONSTANTE(GENERAL.NEWAGCP)= 1)
       alors ([V_AD_AGCP.ADAGCPAA])
       sinon (0)
       )
sinon (0)

Version 66

Version 66

A ajouter

Apprentis

Ajouter deux rubriques pour avoir au final cela :

Ticket Jira :

 

Par changement programme

PLAFONDSECU.NBJMOISPAYE

Prend le nombre de jour du mois de paye de la clôture su

si (CONSTANTE(CONTRAT.CLOTURE)=0)
alors (CONSTANTE(GENERAL.NBJMOISPAYE))
sinon (CONSTANTEHIS(GENERAL.NBJMOISPAYE;CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))

Version 1

Changement par programme

BC_CSG

Avant

si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024))
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )

Après

si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )

BC_CRDS

Avant

si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024))
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )

Après

si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )

BC_FNGS

Avant

si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024)
alors (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
       )
sinon (

            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (F_HISTOCLOT([BCOTASSREEL.MONTANT])
            +[B_COT_ASS.MONTANT]
            )
            ;
            (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT])
            +[PL_MENSB_4PSS.MONTANT])
            )
            -F_HISTOCLOT([BC_BRUT_ASS.MONTANT])
            -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT])
            -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT])
            -F_HISTOCLOT([BC_BRUT_APP.MONTANT])
       )

Après

[BCOTASSREEL.MONTANT]*0
+
minimum(
si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
   alors (F_HISTOCLOT([B_COT_ASS.MONTANT]))
   sinon (F_HISTOCLOT([BCOTASSREEL.MONTANT]))
+[B_COT_ASS.MONTANT]
;
(F_HISTOCLOT([PL_MENSB_4PSS.MONTANT])
+[PL_MENSB_4PSS.MONTANT])
)
-F_HISTOCLOT([BC_BRUT_ASS.MONTANT])
-F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT])
-F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT])
-F_HISTOCLOT([BC_BRUT_APP.MONTANT])

BC_BRUT_ASS

Avant

si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024)
alors (
      si ([EXOCHOMAGE.BASE]=1)
      alors(0)
      sinon (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[B_COT_ASS.MONTANT]
            )
            ;
            (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            +[PL_MENSB_4PSS.MONTANT])
            )
            -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))
            )
       )
sinon (
      si ([EXOCHOMAGE.BASE]=1)
      alors(0)
      sinon (
            [BCOTASSREEL.MONTANT]*0
            +
            minimum(
            (F_HISTOCLOT([BCOTASSREEL.MONTANT])
            +[B_COT_ASS.MONTANT]
            )
            ;
            (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT])
            +[PL_MENSB_4PSS.MONTANT])
            )
            -F_HISTOCLOT([BC_BRUT_ASS.MONTANT])
            -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT])
            -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT])
            -F_HISTOCLOT([BC_BRUT_APP.MONTANT])
            )
       )

Après

si ([EXOCHOMAGE.BASE]=1)
alors(0)
sinon (
      [BCOTASSREEL.MONTANT]*0
      +
      minimum(
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
         alors (F_HISTOCLOT([B_COT_ASS.MONTANT]))
         sinon (F_HISTOCLOT([BCOTASSREEL.MONTANT]))
      +[B_COT_ASS.MONTANT]
      ;
      (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT])
      +[PL_MENSB_4PSS.MONTANT])
      )
      -F_HISTOCLOT([BC_BRUT_ASS.MONTANT])
      -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT])
      -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT])
      -F_HISTOCLOT([BC_BRUT_APP.MONTANT])
      )

CUMUL.CUMBRUTSECU

Avant

si (CONSTANTE(CONTRAT.DSNNATURE)=29)
alors (histocumulJOINT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT])
sinon (histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT])

Après

si (CONSTANTE(CONTRAT.DSNNATURE)=29)
alors (F_HISTOCLOT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT])
sinon (F_HISTOCLOT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT])

V_NEWAGCP

Afin de permettre la transition avec la formule de l'année précédente

CUMREMUCOEF Avant

[V_NEWAGCP.REMUCOEF]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

CUMREMUCOEF Après

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

CUMSMICPRO Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

CUMSMICPRO Après

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

MAXCOEF Avant

si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
      alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
      )
sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
+CONSTANTE(GENERAL.COEFAGRETRAITE)
+CONSTANTE(GENERAL.COEFAGCHOMAGE)

MAXCOEF Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      +CONSTANTE(GENERAL.COEFAGRETRAITE)
      +CONSTANTE(GENERAL.COEFAGCHOMAGE)
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      )

TOTAGCPURSSAF Avant

[V_NEWAGCP.TOTALAGCP]
*(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
/(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))

TOTAGCPURSSAF Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.TOTALAGCP]
      *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      )
sinon (
      [V_NEWAGCP.TOTALAGCP]
      *(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      /(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      )

AGCPURSSAF Avant

[V_NEWAGCP.TOTAGCPURSSAF]
-
F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])

AGCPURSSAF Après

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPURSSAF]
      -
      F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])
      )

AGCPAA Avant

[V_NEWAGCP.TOTAGCPAA]
-
F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])

AGCPAA Après

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPAA]
      -
      F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])
      )

CUMHREMU Avant

[V_NEWAGCP.HREMU]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT])
      )

CUMHREMU Après

[V_NEWAGCP.HREMU]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT])
      )

CUMHSUP Avant

[V_NEWAGCP.HSUP]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

CUMHSUP Après

[V_NEWAGCP.HSUP]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

CUMSMICPRO3112 Avant

[V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])

CUMSMICPRO3112 Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
      )
sinon (
      [V_NEWAGCP.CUMSMICPRO]
      )

 

Changement par gestionnaire 66

I_FINCDD

Modification faite à Nice quand changement de situation sur le mois de paye en cours

Avant

SI(
    CONSTANTE(CONTRAT.PRIMEPRECARITE)=0)
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PRIMEPRECARITE)=2)
      ALORS(
            si (CONSTANTE(GENERAL.DECENTFEHAP)=1)
            alors ([V_PRECARITE.MTPRECA])
            sinon(
                  HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980)+
                   ([B_FINCDD.MONTANT])-
                   HISTOCUMULSITU([I_FINCDD.BASE];1;1980)
                  )
            )
      SINON(
            SI (CONSTANTE(CONTRAT.CLOTURE)=1)
            ALORS (
                  si (CONSTANTE(GENERAL.DECENTFEHAP)=1)
                  alors ([V_PRECARITE.MTPRECA])
                  sinon(
                        HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980)+
                         ([B_FINCDD.MONTANT])-
                         HISTOCUMULSITU([I_FINCDD.BASE];1;1980)
                        )
                  )
            SINON (0)
            )
      )

Après

SI(
    CONSTANTE(CONTRAT.PRIMEPRECARITE)=0)
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PRIMEPRECARITE)=2)
      ALORS(
            si (CONSTANTE(GENERAL.DECENTFEHAP)=1)
            alors ([V_PRECARITE.MTPRECA])
            sinon(
                  HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))+
                   ([B_FINCDD.MONTANT])-
                   HISTOCUMULSITU([I_FINCDD.BASE];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))
                  )
            )
      SINON(
            SI (CONSTANTE(CONTRAT.CLOTURE)=1)
            ALORS (
                  si (CONSTANTE(GENERAL.DECENTFEHAP)=1)
                  alors ([V_PRECARITE.MTPRECA])
                  sinon(
                        HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))+
                         ([B_FINCDD.MONTANT])-
                         HISTOCUMULSITU([I_FINCDD.BASE];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))
                        )
                  )
            SINON (0)
            )
      )

 

Fonction F_TAXE3

Modifier la fonction F_TAXE3 pour enlever la constante TAXE4

Avant

MAXIMUM(
   MINIMUM(
     CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL4)/12
     ;histocumulJOINT(BRUT)+BRUT
   )
   - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12)
;0)
- histocumulJOINT(TAXE3)

Après

MAXIMUM(
   histocumulJOINT(BRUT)+BRUT
   - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12))
;0)
- histocumulJOINT(TAXE3)

Rubrique V_TH

Modifier les formules ABSSALDIR et ABSCPLDDTE pour ajouter H_NONTRAV

ABSSALDIR

([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]+[JRSNONTRAV.MONTANT]+[H_NONTRAV.MONTANT])
*
PRORATASALDIR()

ABSCPLDDTE

([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]+[JRSNONTRAV.MONTANT]+[H_NONTRAV.MONTANT])
*
PRORATACPDDTE()

V_NEWAGCP

Ajouter une formule pour calculer le coefficient Régime à utiliser.

En effet, dans le cas ou le Fnal est différent entre l'établissement MSA et l'établissement Urssaff, le coefficient à utiliser est également différent. C'était le cas pour la formule MAXCOEF mais pas pour la formule TOTAGCPURSSAF

COEFREGIME : Nouvelle formule

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
	   )	

Modifier les formules suivantes :

MAXCOEF

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      +CONSTANTE(GENERAL.COEFAGRETRAITE)
      +CONSTANTE(GENERAL.COEFAGCHOMAGE)
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      )

Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.COEFREGIME]
      +CONSTANTE(GENERAL.COEFAGRETRAITE)
      +CONSTANTE(GENERAL.COEFAGCHOMAGE)
      )
sinon (
      [V_NEWAGCP.COEFREGIME]
      +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      )

TOTAGCPURSSAF

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.TOTALAGCP]
      *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      )
sinon (
      [V_NEWAGCP.TOTALAGCP]
      *(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      /(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      )

Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.TOTALAGCP]
      *( [V_NEWAGCP.COEFREGIME]+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      /( [V_NEWAGCP.COEFREGIME]+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      )
sinon (
      [V_NEWAGCP.TOTALAGCP]
      *(
         [V_NEWAGCP.COEFREGIME]
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      /(
         [V_NEWAGCP.COEFREGIME]
        +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      )

 

 

 

V_NEWAGCP

CUMREMUCOEF

Avant

[V_NEWAGCP.REMUCOEF]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

Apres

[V_NEWAGCP.REMUCOEF]
+
si (
   ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   et ([PLAFONDSECU.NUMCAS]=1)
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

CUMSMICPRO

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Apres

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         et ([PLAFONDSECU.NUMCAS]=1)
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

MAXCOEF

Avant

si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
      alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
      )
sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
+CONSTANTE(GENERAL.COEFAGRETRAITE)
+CONSTANTE(GENERAL.COEFAGCHOMAGE)

Apres

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      +CONSTANTE(GENERAL.COEFAGRETRAITE)
      +CONSTANTE(GENERAL.COEFAGCHOMAGE)
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
      )

AGCPURSSAF

Avant

[V_NEWAGCP.TOTALAGCP]
*(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
/(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))

Aprés


si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.TOTALAGCP]
      *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE))
      )
sinon (
      [V_NEWAGCP.TOTALAGCP]
      *(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      /(
        CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
        )
      )

AGCPURSSAF

Avant

[V_NEWAGCP.TOTAGCPURSSAF]
-
F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])

Apres

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPURSSAF]
      -
      F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])
      )

AGCPAA

Avant

[V_NEWAGCP.TOTAGCPAA]
-
F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])

Apres

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPAA]
      -
      F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])
      )


CUMHREMU

Avant

[V_NEWAGCP.HREMU]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT])
      )

Apres

[V_NEWAGCP.HREMU]
+
si (
   ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   et ([PLAFONDSECU.NUMCAS]=1)
   )
alors (
      F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT])
      )

CUMHSUP

Avant

[V_NEWAGCP.HSUP]
+
si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

Apres

[V_NEWAGCP.HSUP]
+
si (
   ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   et ([PLAFONDSECU.NUMCAS]=1)
   )
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

CUMSMICPRO3112

Avant

[V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])

Apres

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
      )
sinon (
      [V_NEWAGCP.CUMSMICPRO]
      )

 

 

Version 67

Version 67

Version 1

V_NEWAGCP.HREMU

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

V_PLAFPREV

Vérifier que le nombre est bien dans la formule !!!

Nombre de plafond prévoyance à appliquer

Modification des rubriques base de cotisation prévoyance :

MALADIE_AM

Cotisation majoration maladie Alsace Moselle taux 1.30%

PREV_TH

Prévoyance TH, base de cotisation BC_BRUT_PREV_NC

FORMATION_TH

Formation professionnelle continue travailleurs handicapé

 

Version 67

Version 2

APPRENTI.ABTBRANCHE

Modification pour prendre en compte les nouveaux pourcentages dans l'accord de branche :

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

 

 

Version 67

Version 3 abondement PERECO

Forfait social 16%

B_COT_FORSOC16 : Itérative forfait social 16%

Inclut PCOA_ABOND : Montant brut abondement

BC_FORFAITS16 : Base forfait social 16%

[B_COT_FORSOC16.MONTANT]

FORFAITSOC16 : Cotisation forfait social 16%

Abondement

PCOA_ABOND : Rubrique de paye du montant brut de l’abondement

BC_PCOA_ABOND : Base de cotisation abondement

[PCOA_ABOND.MONTANT]

N_PCOA_CSGDED : C.S.G. déductible sur l'abondement PERECO - > COT_SALDED avec un taux à zéro et PCOA_COTSAL

N_PCOA_CSGND : C.S.G. non déductible sur l'abondement PERECO - > COT_SAL avec un taux à zéro et PCOA_COTSAL

N_PCOA_CRDS : C.R.D.S. sur abondement PERECO - > COT_SAL avec un taux à zéro et PCOA_COTSAL

PCOA_COTSAL : Itérative cotisation salariale abondement PERECO

Version 67

Version 4 : PERECO

CHEQUESANTE.TAUX

Avant :

si (CONSTANTE(CONTRAT.TYPECONTRAT)=1)
alors (125)
sinon (105)

Après :

si (CONSTANTE(CONTRAT.DSNNATURE)=01)
alors (105)
sinon (125)

 

PPVNONEXO

sur les apprentis quand on met une ppvnonexo, le seuil doit être comparé au brut sans la ppv

Rubrique BC_BRUT_APP

Avant :

MAXIMUM([BRUT.MONTANT]-[CONAIDE.SEUILAPPRENTI];0)
+[BCOTASSREEL.MONTANT]*0

Après :

MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
+[BCOTASSREEL.MONTANT]*0

rubrique BC_BRUT_APP_PL

Avant :

si ([BRUT.MONTANT]>0)
alors (PLAFONNER([BRUT.MONTANT];0;[CONAIDE.SEUILAPPRENTI]))
sinon (PLAFONNER([BRUT.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
+[BCOTASSREEL.MONTANT]*0

Après :

si ([BRUT.MONTANT]>0)
alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI]))
sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
+[BCOTASSREEL.MONTANT]*0
Version 67

Version 5

MALADIE_NRA

Cotisation maladie non résidents actif taux 5.5% CTP 206

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 code type de personnel 206 « salariés non-résidents actifs ».

Version 67

Version 6

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)

 

Version 67

Version 7

A faire :

 

_PREV_TH avec BC_SALDIR comme base  pkoi BC_SALDIR ??? il n'y a pas de raison

_FORMAT_TH avec un taux patr de 2.3% et BC_SALDIR comme base pkoi BC_SALDIR ??? il n'y a pas de raison

 

MALADIE_AM : Majoration maladie alsace moselle

Base = BC_BRUT_URSSAF / Taux salarié = 1.30% CTP 381 cotisation 115

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

Retenue à la source

Une liste de constante : RET_SOURCE :

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

Service civique

- Une rubrique Allocations Familiales au taux de 5.25%

- Une rubrique Vieillesse déplafonnée au taux patronal de 2.42%

- Une base de cotisation pour la Vieillesse déplafonnée au taux de 2.42% 

- Une rubrique Vieillesse plafonnée au taux patronal de 15.45%

- Une base de cotisation pour la Vieillesse déplafonnée au taux de 15.45%

Version 67

Version 8

Correctif et ajout de PCO_VERSEMENT dans les itératives B_COT_PREV et B_COT_RET

 

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

 

 

Version 68

Version 68

Version 1

Modification retenue à la source

La retenue à la source et l'exo de csg-crds est appliqué si le salarié est résident étranger ET qu'il n'a pas de pas actif

Test sur constante contrat PAS_RESIDENTETRANGER = 1 et CONTRAT.PAS_ACTIF=0

BC_RET_SOURCE

Avant

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)

Après

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) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
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)

BC_CSG

Avant

si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

BC_CRDS

Avant

si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )
)

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )
)

 

 

Version 68

Version 2 Segur 2024

Constantes générales

EXT_SEGUR : Montant de la revalorisation salariale  Ségur juillet 2024 : 238€

Nouvelles rubriques

EXTSEGUREXCLU

Liste des rubriques qui excluent EXT_SEGUR

image-1719412331478.png

EXTSEGUR

Ségur 2024

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>21)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>41)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>64)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>65)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>3)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

Participation

image-1719495802901.png

REGEXTSEGUR

Régularisation revalorisation juillet 2024

Version 68

Version 3 Segur 2024

66_AF_EXTSEGUR

Ségur 2024 pour les AF

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.TYPESALARIE)=3)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

 

Cette rubrique est à pas de proratisation

Version 4 Correctif agcp

Correction de l'anomalie : bulletin de régul d'un contrat clos en 2023 : Il faut utiliser l'ancienne formule

BC_AGCPURSSAF

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            [V_AGCP.TOTAGCP]
            *CONSTANTE(GENERAL.COEFAGCPURSSAF)
            /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE))
            +[V_AGCP.TOTAGCPCHOM]
            -histocumulsitu([BC_AGCPURSSAF.MONTANT])
            )
       sinon ([V_NEWAGCP.AGCPURSSAF])
             )
sinon (0)

Après

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPURSSAF])
      sinon (
            [V_AGCP.TOTAGCP]
            *CONSTANTE(GENERAL.COEFAGCPURSSAF)
            /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE))
            +[V_AGCP.TOTAGCPCHOM]
            histocumulsitu([BC_AGCPURSSAF.MONTANT];1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
            )
       )
sinon (0)

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            si ([AGCPURSSAF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENS]+[V_AGCP.MTAGCPMENSCHOM]-[AGCPURSSAF.BASE]
                  )
            sinon (0)
            +
            si ([AGCPURSSRENF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENSRENF]-[AGCPURSSRENF.BASE]
                  )
            sinon (0)
            )
      sinon ([V_NEWAGCP.AGCPAA])
      )
sinon (0)

Après

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPAA])
      sinon (
            si ([AGCPURSSAF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENS]+[V_AGCP.MTAGCPMENSCHOM]-[AGCPURSSAF.BASE]
                  )
            sinon (0)
            +
            si ([AGCPURSSRENF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENSRENF]-[AGCPURSSRENF.BASE]
                  )
            sinon (0)
            )
      )
sinon (0)

 

Version 69

Version 69

Version 1

66_AF_EXTSEGUR

Modification de ségur 2024 pour les AF

Pour la Base Avant

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.TYPESALARIE)=3)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

Pour la Base Après

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.TYPESALARIE)=3)
          )
      alors (
             CONSTANTE(GENERAL.EXT_SEGUR)
             *[66_AFNBJENF1.BASE]
             /CONSTANTE(GENERAL.NBJMOISPAYE)
             +
             (CONSTANTE(GENERAL.EXT_SEGUR)
             *0.80
             *(CONSTANTE(GENERAL.NBJMOISPAYE)- [66_AFNBJENF1.BASE])
             /CONSTANTE(GENERAL.NBJMOISPAYE))
             )
      sinon (0)
      )
sinon (0)

Pour le taux avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
/CONSTANTE(GENERAL.NBJMOISPAYE)

Pour le taux après

1

EXTSEGUR

Exclusion des TH

Avant

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>21)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>41)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>64)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>65)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>3)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

Après

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>21)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>41)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>64)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>65)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>3)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>2)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>1)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

 

 

Version 70

Version 70

Version 1

Modification de PL_JRSEMPLOI

On ne tiens plus compte des jours antérieurs

Avant

si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors (0)
sinon (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)+CONSTANTE(CONTRAT.JOURSANTCIV))

Après

si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors (0)
sinon (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL))
Version 70

Version 2

Modification de 66_AF_EXTSEGUR Ticket 698681

Avant

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.TYPESALARIE)=3)
          )
      alors (
             CONSTANTE(GENERAL.EXT_SEGUR)
             *[66_AFNBJENF1.BASE]
             /CONSTANTE(GENERAL.NBJMOISPAYE)
             +
             (CONSTANTE(GENERAL.EXT_SEGUR)
             *0.80
             *(CONSTANTE(GENERAL.NBJMOISPAYE)- [66_AFNBJENF1.BASE])
             /CONSTANTE(GENERAL.NBJMOISPAYE))
             )
      sinon (0)
      )
sinon (0)

Après

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.TYPESALARIE)=3)
          )
      alors (
             CONSTANTE(GENERAL.EXT_SEGUR)
             *[66_AFNBJENF1.BASE]
             /CONSTANTE(GENERAL.NBJMOISPAYE)
             +
             (CONSTANTE(GENERAL.EXT_SEGUR)
             *0.80
             *(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)- [66_AFNBJENF1.BASE])
             /CONSTANTE(CONTRAT.CIVJOURSTRAVAIL))
             )
      sinon (0)
      )
sinon (0)
Version 70

Version 3

Calcul de la prévoyance pour le passage non cadre - cadre

Modification de la fonction F_TRANCHEANEW

Avant

minimum(
       (
       F_HISTOCLOT(BRUT)
       +BRUT)
       ;
       (
          F_HISTOCLOT(PLMENSA)
       +PLMENSA)
       )
       -F_HISTOCLOT(TRANCHEA)

Après : Ajout du paramètre MOISDEB

minimum(
       (
       F_HISTOCLOT(BRUT;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))
       +BRUT)
       ;
       (
          F_HISTOCLOT(PLMENSA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))
       +PLMENSA)
       )
       -F_HISTOCLOT(TRANCHEA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))

Modification de la rubrique BC_TR_A_PREV_C

Avant

F_TRANCHEANEW([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC])

Après

F_TRANCHEANEW([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC];[CHGT_NC_C.BASE])
Version 70

Version 4

ANT_JOURS

Avant

si (CONSTANTE(GENERAL.JRS_ANT)=1)
alors(
     si ([ANT_HEURES.BASE]=0)
     alors ( CONSTANTE(CONTRAT.USEJOURSANT)
             *
             CONSTANTE(CONTRAT.JOURSANTCIV)
           )
     sinon (0)
     )
sinon (0)

Après

0

Désactivation des rubriques suivantes :

Version 71

Version 71

Version 1

Ajout de l'exclusion des contrats pro pour Ségur pour tous

EXTSEGUR

Avant

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>21)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>41)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>64)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>65)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>3)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>2)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>1)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

Après

si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66))
alors (
      Si (
          ([EXTSEGUREXCLU.MONTANT]=0)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>21)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>41)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>64)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>65)
          et (CONSTANTE(CONTRAT.DSNINTITULE)<>61)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>3)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>2)
          et (CONSTANTE(CONTRAT.TYPESALARIE)<>1)
          )
      alors (CONSTANTE(GENERAL.EXT_SEGUR))
      sinon (0)
      )
sinon (0)

 

Version 71

Version 2

Pour le complément maladie

BC_MALCOMP25

Avant

si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            si (
               (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
               et ([V_AGCP.CUMREMUCOEF]>0)
               et ([V_AGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumulsitu([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      sinon (
            si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUCOEF]>0)
               et ([V_NEWAGCP.CUMSMICPRO3112]>0)
               )
            alors (
                  histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumulsitu([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )

Après

declarer (PLAFSMIC)
affecter (PLAFSMIC;
         si (CONSTANTE(GENERAL.ANNEE_PAYE)<2025)
         alors (2.5)
         sinon (
               si (([PLAFONDSECU.NUMCAS]<>1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
               alors (2.5)
               sinon (2.2)
               )
         )

si (
(([V_NEWAGCP.CUMREMUCOEF]) >  (:PLAFSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
et ([V_NEWAGCP.CUMREMUCOEF]>0)
et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (
      histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
      - histocumulsitu([BC_MALCOMP25.MONTANT])
      )
sinon (
      histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
      )

Pour l'allocation familiale

V_ALLOC

Ajout d'une formule déterminant le coefficient à appliquer (3.5 ou 3.2 smic)

PLAFSMIC

si (CONSTANTE(GENERAL.ANNEE_PAYE)<2025)
alors (3.5)
sinon (
      si (([PLAFONDSECU.NUMCAS]<>1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
      alors (3.5)
      sinon (3.2)
      )

ALLOCFAMREDUIT.TXEMP

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )

Après

si (
   ([V_NEWAGCP.CUMREMUCOEF]>[V_ALLOC.PLAFSMIC]*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUCOEF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (0)
sinon (LISTEGEN(TX_ALLOCF;0002))

ALLOCFAM.TXEMP

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )

Après

si (
   ([V_NEWAGCP.CUMREMUCOEF]>[V_ALLOC.PLAFSMIC]*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUCOEF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

 

 

 

 

Version 71

Version 3

Retenue à la source pour tenir compte des 8 euros

BC_RET_SOURCE

Avant

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) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
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)

Après

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

declarer (MTRAS)
affecter (MTRAS;
  si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
  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)
         )
si(:MTRAS<8)
alors(0)
sinon(:MTRAS)

 

 

CONAIDE.SEUILAPPRENTI

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*0.79

Après

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*
si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2025)
alors (0.5)
sinon (0.79)

Pour la CSG, comment répartir la base abattue et la non abattue ?

peut être faire comme pour les stagiaires, enlever le brut limité au seuil dans la rubrique B_COT_CSG_ABT

image-1730821997185.png

Version 71

Version 4 agcp régul 11/2024

BC_AGCP_1 : Régul AGCP 2024

Rubrique permettant de calculer la rubrique AGCP de 2024.

Pour les contrats actifs en décembre 2024 et après

Total AGCP de 12/2024

-(Total AGCP de 10/2024 + Total AGCP de 11/2024 à 12/2024(Nouvelle règle))

 

declarer(REMU)
affecter(REMU;histo([V_NEWAGCP.REMUCOEF];11;2024)+histo([V_NEWAGCP.REMUCOEF];12;2024))
declarer(SMIC)
affecter(SMIC;histo([V_NEWAGCP.SMICPRO];11;2024)+histo([V_NEWAGCP.SMICPRO];12;2024))

histo([V_NEWAGCP.MTAGCPMENS];11;2024)
+histo([V_NEWAGCP.MTAGCPMENS];12;2024)
-
(
  :REMU
  *
  maximum(0;
         MINIMUM([V_NEWAGCP.MAXCOEF];
                 ([V_NEWAGCP.MAXCOEF]/(1.569-1))*
                 ((1.569*:SMIC/:REMU)-1)
                )
          )
)

Pour les contrats clôturés en novembre 2024.

Total AGCP de 11/2024

-(Total AGCP de 10/2024 + Total AGCP de 11/2024 (Nouvelle règle))

declarer(REMU)
affecter(REMU;histo([V_NEWAGCP.REMUCOEF];11;2024))
declarer(SMIC)
affecter(SMIC;histo([V_NEWAGCP.SMICPRO];11;2024))

histo([V_NEWAGCP.MTAGCPMENS];11;2024)
-
(
  :REMU
  *
  maximum(0;
         MINIMUM([V_NEWAGCP.MAXCOEF];
                 ([V_NEWAGCP.MAXCOEF]/(1.569-1))*
                 ((1.569*:SMIC/:REMU)-1)
                )
          )
)

 

BC_AGCPURSS_1

declarer(COEFREG);
affecter(COEFREG;si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
                      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;2024)=0)
                            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;2024))
                            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;2024))
                            )
                      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;2024))
        )
 [BC_AGCP_1.MONTANT]
      *(
         :COEFREG
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;2024)
        )
      /(
         :COEFREG
        +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;2024)
        +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;2024)
        )

BC_AGCPRUAA_1

 [BC_AGCP_1.MONTANT]-[BC_AGCPURSS_1.MONTANT]

 

 

 

 

Version 71

Version 5 Reco 2024

https://wikiapp.heberg-eig.fr/books/recommandation-patronale-29-janvier-2024/page/rubriques

 

Version 71

Version 6 : Cotisation 142

Toutes ces cotisations ont pour but de permettre la déclaration en DSN du code cotisation 142 demandé par l'urssaf

Elles ont pour catégorie de cotisation 001 Sécurité sociale et limitée tranche A.

Par défaut elles ne sont pas imprimées sur le bulletin et participent à l'itérative COT_EMP mais pour un taux de zéro.

image-1732621512030.png

Le taux à indiquer est égal au taux patronal de retraite complémentaire plus le taux patronal de CEG de la tranche 1. C'est à dire 4.72% + 1.29% = 6.01%. Il peut varier en fonction des entreprises mais également du type de salarié (Apprenti, TH,etc).

RET_PAT142 :  Cotisation fictive déclaration cotisation 142

Base de cotisation : BC_TU1_RET

P_RET_PAT142 : Cotisation fictive progressive déclaration cotisation 142

Base de cotisation : PBR_TU1_RET

RETAPP_PAT142 : Cotisation fictive apprenti exonéré déclaration cotisation 142

Base de cotisation : BC_BRUT_APP_PL

RETAPPN_PAT142 : Cotisation fictive apprenti non exonéré déc cotisation 142

Base de cotisation : BC_BRUT_APP

RETTH_PAT142 : Cotisation fictive TH déclaration cotisation 142

Base de cotisation : BC_TU1_RET

Version 71

Version 7

Modification des formules suivantes pour les remettre comme à l'origine :

 

Version 72

Version 72

Version 1

AGCP

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )

Après

si (
    ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Recommandation patronale

Forcément positif pour les deux bases suivantes

V_RP24.BASEMENSUEL

Avant

si (  (CONSTANTE(GENERAL.RP2024)=1) et([V_RP24.REGULANNUELLE]=0) et  (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51)))
alors (
      si (([RP24_BASE13.MONTANT]+[V_RP24.DECENTTHEO])>[V_RP24.SEUILMENSUEL])
      alors (0)
      sinon ([RP24_BASE13.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
      )
sinon (0)

Après

si (  (CONSTANTE(GENERAL.RP2024)=1) et([V_RP24.REGULANNUELLE]=0) et  (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51)))
alors (
      si (([RP24_BASE13.MONTANT]+[V_RP24.DECENTTHEO])>[V_RP24.SEUILMENSUEL])
      alors (0)
      sinon (
            maximum(0;
                   [RP24_BASE13.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]
                   )
            )
      )
sinon (0)

V_RP24.BASEANNUEL

Avant

si ( (CONSTANTE(GENERAL.RP2024)=1) et ([V_RP24.REGULANNUELLE]=1) et  (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51)))
alors (
      si (([V_RP24.BASEANNUELREEL])>[V_RP24.SEUILANNUEL])
      alors (0)
      sinon ([V_RP24.BASEANNUELREEL]
            -histocumulsitu([ABSTOTALV.MONTANT])
            +histocumulsitu([ABSTOTALM.MONTANT])
            -[ABSTOTALV.MONTANT]
            +[ABSTOTALM.MONTANT]
            )
      )
sinon (0)

Après

si ( (CONSTANTE(GENERAL.RP2024)=1) et ([V_RP24.REGULANNUELLE]=1) et  (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51)))
alors (
      si (([V_RP24.BASEANNUELREEL])>[V_RP24.SEUILANNUEL])
      alors (0)
      sinon (
            maximum(0;
                    [V_RP24.BASEANNUELREEL]
                    -histocumulsitu([ABSTOTALV.MONTANT])
                    +histocumulsitu([ABSTOTALM.MONTANT])
                    -[ABSTOTALV.MONTANT]
                    +[ABSTOTALM.MONTANT]
                    )
            )
      )
sinon (0)

V_RP24.BASEMENSUEL

avant

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
      *
      CONSTANTE(CONTRAT.HORAIREMENSUEL)
      /
      CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
      *
      CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
      /
      CONSTANTE(GENERAL.NBJMOISPAYE)
      )
sinon (0)

 

après

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=2)
      alors (
            CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
            *
            CONSTANTE(CONTRAT.HORAIREMENSUEL)
            /
            CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
            )
      sinon (
            CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
            *
            CONSTANTE(CONTRAT.HORAIREMENSUEL)
            /
            CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
            *
            CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
            /
            CONSTANTE(GENERAL.NBJMOISPAYE)
            )
      )
sinon (0)

 

 

Version 72

Version 2

Recommandation patronale

V_RP24.BASEMENSUEL

avant

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
      *
      CONSTANTE(CONTRAT.HORAIREMENSUEL)
      /
      CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
      *
      CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
      /
      CONSTANTE(GENERAL.NBJMOISPAYE)
      )
sinon (0)

 

après

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=2)
      alors (
            CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
            *
            CONSTANTE(CONTRAT.HORAIREMENSUEL)
            /
            CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
            )
      sinon (
            CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
            *
            CONSTANTE(CONTRAT.HORAIREMENSUEL)
            /
            CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
            *
            CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
            /
            CONSTANTE(GENERAL.NBJMOISPAYE)
            )
      )
sinon (0)

 

 

Version 73

Version 73

Version 1

V_NEWAGCP.COEFREGIME

Correctif à la con car la formule ne fonctionnait pas (caractère bidon)

Il faudra voir pourquoi

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
	   )

Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      )

Version 74

Version 74

Version 1

Correctif de la recommandation patronale 24

51_NUIT24_SN.TAUX

Avant

(
 1.03*[VP.VP]
 +
 si ([51_NUIT24.BASE]<9)
 alors (CONSTANTE(GENERAL.RP24_FORF_NUIT)*[51_NUIT24.BASE]/9)
 sinon (CONSTANTE(GENERAL.RP24_FORF_NUIT))
 )
 /
[51_NUIT24.BASE]

Après

(
 1.03*[VP.VP]
 +
 si ([51_NUIT24_SN.BASE]<9)
 alors (CONSTANTE(GENERAL.RP24_FORF_NUIT)*[51_NUIT24_SN.BASE]/9)
 sinon (CONSTANTE(GENERAL.RP24_FORF_NUIT))
 )
 /
[51_NUIT24_SN.BASE]
V_RP24.SEUILMENSUEL

Avant

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
      *
      CONSTANTE(CONTRAT.HORAIREMENSUEL)
      /
      CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
      *
      CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
      /
      CONSTANTE(GENERAL.NBJMOISPAYE)
      )
sinon (0)

Après

si (CONSTANTE(GENERAL.RP2024)=1)
alors (
      CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12
      *
      si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
      alors (
            CONSTANTE(CONTRAT.JOUR_FORFAIT)
            /
            CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
            )
      sinon (
            CONSTANTE(CONTRAT.HORAIREMENSUEL)
            /
            CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
            )
      *
      CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)
      /
      CONSTANTE(GENERAL.NBJMOISPAYE)
      )
sinon (0)

 

 

 

Version 74

Version 2

Fonction F_AGCP

Pour le cas 1 on prend HISTOCUMULSITUBYANCLOT pour le cas suivant

Bulletin de régul en 2025 d'un contrat en chgt de situation le 31/12/2024

Le nouveau contrat ne doit pas prendre en compte le bulletin de régul

Avant :

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
       si ((moisdebut=0) ou (moisfin=0) ou ([PLAFONDSECU.NUMCAS]=2))
       alors (
              F_HISTOCLOTSIT(RUBACUMULER)
             )
       sinon (
              histocumulsitu(RUBACUMULER;
                              maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                              CONSTANTE(GENERAL.ANNEE_PAYE);
                              (si (moisfin=0) alors (12) sinon (moisfin));
                              CONSTANTE(GENERAL.ANNEE_PAYE)
                             )

             )
       )

Après

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
       si ((moisdebut=0) ou (moisfin=0) ou ([PLAFONDSECU.NUMCAS]=2))
       alors (
              F_HISTOCLOTSIT(RUBACUMULER)
             )
       sinon (
              HISTOCUMULSITUBYANCLOT(RUBACUMULER;
                              maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                              CONSTANTE(GENERAL.ANNEE_PAYE);
                              (si (moisfin=0) alors (12) sinon (moisfin));
                              CONSTANTE(GENERAL.ANNEE_PAYE)
                             )

             )
       )
Version 74

Version 3

Fonction F_HISTOCLOTSIT

Pour le cas 1 on prend histocumulsitubyanclot

Bulletin de régul en 2025 d'un contrat en chgt de situation le 31/12/2024

Le nouveau contrat ne doit pas prendre en compte le bulletin de régul

Avant

si (CONSTANTE(GENERAL.BUDGET)=1)
alors (histocumulsitu(alias))
sinon (
        si ([PLAFONDSECU.NUMCAS]=1)
        alors (histocumulsitu(alias))
        sinon (
              histocumulsitu(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE))

              )
      )

Après

si (CONSTANTE(GENERAL.BUDGET)=1)
alors (histocumulsitu(alias))
sinon (
        si ([PLAFONDSECU.NUMCAS]=1)
        alors (histocumulsitubyanclot(alias))
        sinon (
              histocumulsitubyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE))

              )
      )
Version 74

Version 4

Modification de F_HISTOCLOT

Avant

si (CONSTANTE(GENERAL.BUDGET)=1)
alors (histocumuljoint(alias))
sinon (
        si ([PLAFONDSECU.NUMCAS]=1)
        alors (
               si ((moisdeb=0) ou (anneedeb=0))
               alors (histocumuljointbyanclot(alias))
               sinon (histocumuljointbyanclot(alias;moisdeb;anneedeb))
              )
        sinon (
              histocumuljointbyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE))

              )
        )

Problème de calcul de csg pour un bulletin de régul portant sur un contrat alors qu'il y en a d'autres avant : Cas du mat 807  ADSEA15

Le problème est que dans le cas 2, le mot cle histocumuljointbyanclot va chercher le cumul de l'historique depuis l'année de clôture

donc si la clôture est en 2023, on aura 2023 et 2024 ce qui n'est pas correct

Mais si on ne laisse que 2023, on aura pas les régul de bulletin de 2024

Pour le moment on change comme cela :

Après

si (CONSTANTE(GENERAL.BUDGET)=1)
alors (histocumuljoint(alias))
sinon (
        si ([PLAFONDSECU.NUMCAS]=1)
        alors (
               si ((moisdeb=0) ou (anneedeb=0))
               alors (histocumuljointbyanclot(alias))
               sinon (histocumuljointbyanclot(alias;moisdeb;anneedeb))
              )
        sinon (
              histocumuljointbyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))

              )
        )

Pour la CSG

Le pb est que les rubriques non abattue et tout ca n'existait pas en 2020

Du coup [V_CSG.CUM_ABT] + [V_CSG.CUM_NABT] = 0

Il faudrait faire un tes sur la date

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<=2023))
            alors (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

V_NEWAGCP.CUMREMUCOEF

Avant

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

Après

[V_NEWAGCP.REMUCOEF]
+
F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])

V_NEWAGCP.CUMSMICPRO

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Après

F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])

 

 

 

 

 

Version 74

Version 5

Modification de BC_CSG et BC_CRDS

Il s'agit de traiter le cas des bulletins de régularisation quand V_CSG.CUM_ABT et V_CSG.CUM_NABT  n'existaient pas

BC_CSG

Avant

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

BC_CRDS

Avant

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            [V_CSG.CUM_ABT]
            +[V_CSG.CUM_NABT]
            -F_HISTOCLOT([BC_CSG.MONTANT])
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )
)

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CRDS.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CRDS.MONTANT]))
            )
      )
)

Modification de V_newagcp

Normalement V_newagcp existe obligatoirement à partir de 2024

Donc pour les bulletin de régul, si l'année de cloture est inférieure on prend V_AGCP sinon on prend V_newagcp

V_NEWAGCP.CUMREMUCOEF

Avant

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )

Après

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
      alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      )

V_NEWAGCP.CUMREMUCOEF

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Après

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
            alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            sinon (F_AGCP([V_NEWAGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])
Vérifier le calcul de Allocfam et MALADIESUP dans un bulletin de régul

dans le cas plafond 2,

si année de cloture <2024 prendre V_agcp.cumsmicpro

sinon on prend V_newagcp.cumsmicpro3112

V_newagcp.CUMSMICPRO3112

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
      )
sinon (
      [V_NEWAGCP.CUMSMICPRO]
      )

Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
       )

 

ALLOCFAM et ALLOCFAMREDUIT  : On peut virer le test sur CONSTANTE(GENERAL.NEWAGCP)

ALLOCFAM déjà fait

ALLOCFAMREDUIT Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )

Après

      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

BC_MALCOMP25

On vire le test sur CONSTANTE(GENERAL.NEWAGCP

on prend F_HISTOCLOTSIT plutôt que histocumulsitu

Avant

si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            si (
               (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
               et ([V_AGCP.CUMREMUCOEF]>0)
               et ([V_AGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumulsitu([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      sinon (
            si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUCOEF]>0)
               et ([V_NEWAGCP.CUMSMICPRO3112]>0)
               )
            alors (
                  histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumulsitu([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )

Après

            si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUCOEF]>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)
                  )

 

Version 74

Analyse des cas

Faire un bulletin de régul d'avant 2024

Pb de csg car cumul sur plusieurs années

Modifier le mot clé histocumuljointbyanclot pour qu'il ne prenne pas le contrat s'il est supérieur à l'année de cloture (sauf dans le cas d'une régul)  mat 39 ADSEA 15

Quand V_NEWAGCP n'existait pas

Modification de BC_AGCPURSSAF et BC_AGCPRUAA  :

on prend V_NEWAGCP.AGCPURSSAF]) mais en cas de régul car V_newagcp prend déjà V_AGCP

Pb quand les rubriques abattues et non abbatues n'existaient pas mat 699 et mat 39 ADSEA 15

Je modifie BC_CSG et tant pis pour les bulletins de régul de l'année. Ca règle le pb précédent

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)
Vérifier le calcul de Allocfam et MALADIESUP dans un bulletin de régul

 

Vérifier le calcul de l'agcp quand V_newagcp n'existait pas
Normalement V_newagcp existe obligatoirement à partir de 2024

 

Ajouter le test remucoef = 0 dans ce cas pas de cotisation agcp

 

Analyser le pb du bulletin d'annulation
Version 74

Version 6

Pour avoir en même temps une régul d'agcp et de l'agcp

BC_AGCPURSSAF

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPURSSAF])
      sinon (
            [V_AGCP.TOTAGCP]
            *CONSTANTE(GENERAL.COEFAGCPURSSAF)
            /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE))
            +[V_AGCP.TOTAGCPCHOM]
            histocumulsitu([BC_AGCPURSSAF.MONTANT];1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
            )
       )
sinon (0)

Après

si ((
     ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
     et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
    )
    ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPURSSAF])
      sinon (
            [V_AGCP.TOTAGCP]
            *CONSTANTE(GENERAL.COEFAGCPURSSAF)
            /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE))
            +[V_AGCP.TOTAGCPCHOM]
            histocumulsitu([BC_AGCPURSSAF.MONTANT];1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
            )
       )
sinon (0)

BC_AGCPRUAA

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPAA])
      sinon (
            si ([AGCPURSSAF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENS]+[V_AGCP.MTAGCPMENSCHOM]-[AGCPURSSAF.BASE]
                  )
            sinon (0)
            +
            si ([AGCPURSSRENF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENSRENF]-[AGCPURSSRENF.BASE]
                  )
            sinon (0)
            )
      )
sinon (0)

Après

si ((
     ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
     et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
    )
    ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPAA])
      sinon (
            si ([AGCPURSSAF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENS]+[V_AGCP.MTAGCPMENSCHOM]-[AGCPURSSAF.BASE]
                  )
            sinon (0)
            +
            si ([AGCPURSSRENF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENSRENF]-[AGCPURSSRENF.BASE]
                  )
            sinon (0)
            )
      )
sinon (0)

 

Version 74

Version 7

BC_AT_IND_COM

Base accident du travail indemnité communautaire

si ([BRUT.MONTANT]>0)
alors ([NB_HEURESTPAYE.MONTANT] * 0.04)
sinon (0)

IND_COM

Indemnité communautaire

Base

[NB_HEURESTPAYE.MONTANT]

Taux

CONSTANTE(GENERAL.TX_IND_COM)

BC_AT_MISP

(CONSTANTE(GENERAL.PLFSECUHEURE)*.07) * [NB_HEURESTPAYE.MONTANT]

ALLOCFAM_TH

Base de cotisation CPLDDTE

Fonctionnaire détaché

* RAFP :

FD_RAFP_INDIC : Valeur indiciaire RAFP   -> A mettre en élément constant

BC_FD_RAFP : Base de cotisation égal à FD_RAFP_INDIC

RET_FD_RAFP : Cotisation

* SRE :

FD_SRE_INDIC : Valeur indiciaire SRE   -> A mettre en élément constant

BC_FD_SRE : Base de cotisation égal à FD_SRE_INDIC

RET_FD_SRE : Cotisation

* CNRACL :

FD_CNRACL_INDIC : Valeur indiciaire CNRACL   --> A mettre en élément constant

BC_FD_CNRACL : Base de cotisation égal à FD_CNRACL_INDIC

RET_FD_CNRACL : Cotisation

Forfait jour

Il faudrait ajouter une zone dans la fiche budgétaire : forfait jour collectif

Pour ensuite modifier la formule SALBASEPTS

Retraite progressive

P_HORINITIAL.TAUX

Avant

si ([P_HORINITIAL.BASE]=1)
alors (
      CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
      )
sinon (1)

Après

si ([P_HORINITIAL.BASE]=1)
alors (
      si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
      alors (CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF))
      sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
      )
sinon (1)

P_RETPROG.PL_MENSA

Avant

minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
      (
        CONSTANTE(GENERAL.PLFSECUMOIS)
        *([P_HORINITIAL.MONTANT]-[NB_HEURESCON.MONTANT])
        /CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
       )
       * [PL_PLAFONDMENS.MONTANT]
       /  (CONSTANTE(GENERAL.PLFSECUMOIS) * [NB_HEURESCON.MONTANT] / CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
)

Après

minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
        si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
        alors (
                   (
                    CONSTANTE(GENERAL.PLFSECUMOIS)
                    *([P_HORINITIAL.MONTANT]-CONSTANTE(CONTRAT.JOUR_FORFAIT))
                    /CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
                   )
                   *[PL_PLAFONDMENS.MONTANT]
                   /(CONSTANTE(GENERAL.PLFSECUMOIS) * CONSTANTE(CONTRAT.JOUR_FORFAIT) / CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF))
               )
        sinon (
                   (
                    CONSTANTE(GENERAL.PLFSECUMOIS)
                    *([P_HORINITIAL.MONTANT]-[NB_HEURESCON.MONTANT])
                    /CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
                   )
                   *[PL_PLAFONDMENS.MONTANT]
                   /(CONSTANTE(GENERAL.PLFSECUMOIS) * [NB_HEURESCON.MONTANT] / CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
              )
       )

P_RETPROG.DIFPROG

Avant

(([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
*[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.HORAIREMENSUEL))
-([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])

Après

si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (
      (([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
      *[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.JOUR_FORFAIT))
      -([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
      )
sinon (
      (([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
      *[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.HORAIREMENSUEL))
      -([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT])
      )

Version 75

Version 75

Version 1

51_COMPDIMCONV

Correction sur la formule taux : Il y avait un E en trop dans B_PXHEUREE

Avant

si (([NUMCONV.NUMCONV]=51) et (CONSTANTE(GENERAL.51MINCONV)>0))
alors (
      (maximum(
       si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
       alors (
            exclure([B_PXHEUREE.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT])
            / (CONSTANTE(CONTRAT.HEURE_FORFAIT)/12)
            )
       sinon (
            exclure([B_PXHEUREETP.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT])
            /(CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
            )
       ;CONSTANTE(GENERAL.SMICHOR))
       )
       +
       ((
         exclure([51_BASEANC.MONTANT];[51_DIFFSMIC.MONTANT])
         + maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-exclure([51_SALMINSMIC.MONTANT];[51_COMPDIMCONV.MONTANT]);0)
         +
         si (CONSTANTE(GENERAL.51_AVT0212)=0)
         alors (0)
         sinon (
               si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201411)
               alors (
                  si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201511)
                  alors ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE])
                  sinon ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]*0.5)
                  )
               sinon (0)
               )
         )*[51_ANC.TAUX]
       )
       /(si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
            alors ((CONSTANTE(CONTRAT.HEURE_FORFAIT)/12))
            sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
        )
      )
sinon(0)

Après

si (([NUMCONV.NUMCONV]=51) et (CONSTANTE(GENERAL.51MINCONV)>0))
alors (
      (maximum(
       si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
       alors (
            exclure([B_PXHEURE.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT])
            / (CONSTANTE(CONTRAT.HEURE_FORFAIT)/12)
            )
       sinon (
            exclure([B_PXHEUREETP.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT])
            /(CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
            )
       ;CONSTANTE(GENERAL.SMICHOR))
       )
       +
       ((
         exclure([51_BASEANC.MONTANT];[51_DIFFSMIC.MONTANT])
         + maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-exclure([51_SALMINSMIC.MONTANT];[51_COMPDIMCONV.MONTANT]);0)
         +
         si (CONSTANTE(GENERAL.51_AVT0212)=0)
         alors (0)
         sinon (
               si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201411)
               alors (
                  si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201511)
                  alors ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE])
                  sinon ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]*0.5)
                  )
               sinon (0)
               )
         )*[51_ANC.TAUX]
       )
       /(si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5)
            alors ((CONSTANTE(CONTRAT.HEURE_FORFAIT)/12))
            sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
        )
      )
sinon(0)

COTSALHORSECRE

Pour éviter la fausse référence circulaire

Avant

exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL])
+exclure([COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL])

Après

exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL])
+
exclure([COT_SALDED.MONTANT];[N_CSGECRTD.MTSALARIAL])

FD_CNRACL_IND

Création du salaire indiciaire CNRACL

BC_FD_CNRACL

[FD_CNRACL_IND.BASE]

 

 

Version 75

Version 2

V_NEWAGCP.REMUCOEF

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
      alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      )

 

Boulette dans la formule V_NEWAGCP.CUMSMICPRO

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
            alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            sinon (F_AGCP([V_NEWAGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Après

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
            alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]))
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Apprenti

CONAIDE.SEUILAPPRENTI

Pour les contrats conclus à compter du 01/03/2025, baisse des exonérations de charges salariales de 79% à 50%

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*0.79
Après
CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*
si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3))
alors (0.50)
sinon (0.79)

CSG non exonéré au dessus de 50% du smic

B_COT_CSG_ABT

Ajout de la la rubrique BC_BRUT_APP_PL en moins dans l'itérative

Il faudra faire attention au calcul quand on passe d'apprenti au RG ou du RG à l'apprenti

BC_CSG : Pour la simplifier

Avant

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>2024)
   ou ((CONSTANTE(GENERAL.ANNEE_PAYE)=2024) et ([PLAFONDSECU.NUMCAS]=1))
    )
alors (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
      alors (
            si ([FO.TOTAL]<>0)
            alors ([FO.TOTAL])
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      sinon (
            si (CONSTANTE(CONTRAT.DSNNATURE)=29)
            alors (F_TESTCSG([BC_BRUT_STA.MONTANT]*0.9825;[BC_CSG.MONTANT]))
            sinon (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT]))
            )
      )
)

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )

BC_CRDS  : Sera égal à BC_CSG

Complément maladie

Le seuil passe de 2.5 à 2.25 SMIC

BC_MALCOMP25

Avant

si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUCOEF]>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)
                  )

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (2.5)
         sinon (2.25)
         2.5
         )
si (
    (([V_NEWAGCP.CUMREMUCOEF]) >  (:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
    et ([V_NEWAGCP.CUMREMUCOEF]>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)
      )

Allocation familiale

Le seuil passe de 3.5 à 3.3 SMIC

ALLOCFAM.TXEMP

Avant

si (
    ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
    ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

ALLOCFAMREDUIT.TXEMP

Avant

si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
         ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

BC_REG_ALLOC

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=1)
alors (
            si (
               ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO3112]))
               ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
               ou ([V_NEWAGCP.CUMSMICPRO]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
      )
sinon (
            si (
               ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
               ou ([V_AGCP.CUMREMUCOEF]<=0)
               ou ([V_AGCP.CUMSMICPRORATE]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
      )

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
   ([V_NEWAGCP.CUMREMUCOEF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
   ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
   ou ([V_NEWAGCP.CUMSMICPRO]<=0)
)
alors (
       histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
       -histocumulsitu([BC_REG_ALLOC.MONTANT])
       )
sinon (
      histocumulsitu([V_ALLOC.BASEALLOCRED])
      +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

 

Version 75

Version 3

Apprenti

CONAIDE.SEUILAPPRENTI

Pour les contrats conclus à compter du 01/03/2025, baisse des exonérations de charges salariales de 79% à 50%

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*0.79

Après

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*
si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3))
alors (0.50)
sinon (0.79)

AGCP AD

Faire comme pour l'agcp classique

BC_ADAGCPURSS

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
        si (CONSTANTE(GENERAL.NEWAGCP)= 1)
        alors ([V_AD_AGCP.ADAGCPURSSAF])
        sinon (0)
       )
sinon (0)

Après

si ( (
      ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
      et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
      )
      ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
        alors ([V_AD_AGCP.ADAGCPURSSAF])
        sinon (0)
       )
sinon (0)

BC_ADAGCPRUAA

Avant

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
       si (CONSTANTE(GENERAL.NEWAGCP)= 1)
       alors ([V_AD_AGCP.ADAGCPAA])
       sinon (0)
       )
sinon (0)

Après

si ((
    ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
    et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
    )
    ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
       alors ([V_AD_AGCP.ADAGCPAA])
       sinon (0)
       )
sinon (0)

 

 

Version 75

Version 4

La PPV dans la rémunération utilisée pour le calcul de l'agcp

AGCPREMU  : Plus utilisée

Création d'une itérative à la place :

AGCPITREMU: Rémunération utilisée pour le calcul de l'AGCP

Y mettre(par programme)

V_NEWAGCP.REMUCOEF

Avant

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors(
      [BC_BRUT_URSAFF.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])
      )
sinon(
      [AGCPREMU.MONTANT]
      )

Après

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors(
      [AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])
      )
sinon(
      [AGCPITREMU.MONTANT]
      )

V_AD_AGCP.ADREMUCOEF

Avant

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) et ([AD_HEXO.BASE]>=0))
alors([BC_BRUT_URSAFF.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
sinon(0)

Après

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) et ([AD_HEXO.BASE]>=0))
alors([AGCPITREMU.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
sinon(0)

 

 

 

 

Version 75

Version 5

Pour le bulletin clarifié le TXEMP

ALLOCFAMCOMP

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0) sinon (1.80)
      )

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
    ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (0) sinon (1.80)

ALLOCFAMCOMPNEG

Avant

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (-1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0) sinon (-1.80)
      )

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
   ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUCOEF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (0) sinon (-1.80)

 

 

Version 75

Version 6

Apprentis

V_CSG.CUM_ABT

Avant

[V_CSG.CUM_AV_ABT]*0.9825

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65'))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors ([V_CSG.CUM_AV_ABT]*0.9825)
      sinon (0)
      )
sinon ([V_CSG.CUM_AV_ABT]*0.9825)

V_CSG.CUM_NABT

Avant

(F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
+
(F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65'))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
            +
            (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

Complément maladie et allocation familiale

En attendant le décret, je modifie le seuil smic dans

 

 

 

Version 76

Version 76

Version 1

Complément maladie, AF et autres exonération

Le complément maladie et l'allocation familiale ne change pas pour les salariés bénéficiant de la ZRR ou l'aide à domicile

Par conséquent, ajout d'une rubrique et formule pour savoir si le salarié a ou pas ces exo.

Rubrique AGCPEXO :

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5)
   ou ([V_ZRR.COEF]<>0))
alors (1)
sinon (0)

Pour le comparatif SMIC avec la rémunération pour le complément maladie et l'allocation familiale : La rémunération ne doit pas prendre en compte la PPV. Du coup on calcule un cumul de rémunération spécifique

V_NEWAGCP.CUMREMUAF Cumul rémunération utilisée pour le comparatif des exonérations AF et Complément maladie

[AGCPREMU.MONTANT]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([AGCPREMU.MONTANT];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
      alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      sinon (F_AGCP([AGCPREMU.MONTANT];[AGCPDEBUT.MONTANT]))
      )

Détermination du taux SMIC pour le bandeau

Pour les salariés qui ont de l'exonération ZRR ou Aide à domicile, le taux smic à utiliser est celui précédemment utilisé : 3.5 SMIC ou 2.5 SMIC.

De même, pour les salariés clôturés avant le 1er mars

V_NEWAGCP.AF032025 : Egal à 1 s'il faut utiliser la nouvelle méthode

si ([AGCPEXO.BASE]=1)
alors (0)
sinon (
      si (CONSTANTE(CONTRAT.CLOTURE)=0)
      alors (1)
      sinon (
            si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)
               ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3))
            alors (0)
            sinon (1)
            )
      )

V_NEWAGCP.TXSMICAF

si ([V_NEWAGCP.AF032025]=1)
alors (3.3)
sinon (3.5)

V_NEWAGCP.TXSMICMAL

si ([V_NEWAGCP.AF032025]=1)
alors (2.25)
sinon (2.5)

BC_MALCOMP25

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (2.5)
         sinon (2.5)
/*         sinon (2.25)*/
         )
si (
    (([V_NEWAGCP.CUMREMUCOEF]) >  (:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
    et ([V_NEWAGCP.CUMREMUCOEF]>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)
      )

Après

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

ALLOCFAM.TXEMP

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.5)
/*         sinon (3.3)*/
         )
si (
    ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Aprés

si (
    ([V_NEWAGCP.CUMREMUCOEF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

ALLOCFAMREDUIT.TXEMP

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
/*         sinon (3.3)*/
         sinon (3.5)
         )
si (
         ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

Après

si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

ALLOCFAMCOMP

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.5)
/*         sinon (3.3)*/
         )
si (
    ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (0) sinon (1.80)

Après

si (
    ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUAF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (0) sinon (1.80)

ALLOCFAMCOMPNEG

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
/*         sinon (3.3)*/
         sinon (3.5)
         )
si (
   ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUCOEF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (0) sinon (-1.80)

Après

si (
   ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUAF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (0) sinon (-1.80)

Détermination du SMIC à utiliser pour le calcul du bandeau

Pour les salariés qui ont de l'exonération ZRR ou Aide à domicile, le smic à utiliser est celui du 31/12/2023

De même, pour les salariés clôturés avant le 1er mars

V_NEWAGCP.SMICPRO3112

(
([V_NEWAGCP.HREMU])
/
CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
*
si ([V_NEWAGCP.AF032025]=1)
alors (1801,8)
sinon (1747,2)
)
*
[V_NEWAGCP.HORBASE]
/1607

V_NEWGCP.CUMSMICPRO3112

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      [V_NEWAGCP.SMICPRO3112]+
            F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
       )

Après

si ([V_NEWAGCP.AF032025])
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

 

Version 76

Version 2

Correctif des apprentis

il ne faut calculer BC_BRUT_APP et BC_BRUT_APP_PL que pour les apprentis

BC_BRUT_APP

Avant

MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
+[BCOTASSREEL.MONTANT]*0

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

BC_BRUT_APP_PL

Avant

si ([BRUT.MONTANT]>0)
alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI]))
sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
+[BCOTASSREEL.MONTANT]*0

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([BRUT.MONTANT]>0)
      alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI]))
      sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

Les apprentis peuvent avoir de la taxe sur les salaires

BC_TAXESAL

Avant

si ((CONSTANTE(GENERAL.EXOTAXE)=1) ou (CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (0)
sinon (
      si ( ensemble(CONSTANTE(CONTRAT.NATURECONTRAT);0016;0017) )
      alors (
            si (CONSTANTE(GENERAL.NBSALARIE0101)<=10)
            alors(0)
            sinon ([B_COT_TAXESAL.MONTANT]- (CONSTANTE(GENERAL.SMICMENS)*0.11))
            )
      sinon (
             si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
             alors (
                    si ([FO.TOTAL]<>0)
                    alors ([FO.TOTAL])
                    sinon ([B_COT_TAXESAL.MONTANT])
                    )
              sinon (
                     SI ([EXOTAXESAL.MONTANT]=0)
                     ALORS ([B_COT_TAXESAL.MONTANT])
                     SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
                     )
             )
      )

Après

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
       si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
       alors (
              si ([FO.TOTAL]<>0)
              alors ([FO.TOTAL])
              sinon ([B_COT_TAXESAL.MONTANT])
              )
        sinon (
               SI ([EXOTAXESAL.MONTANT]=0)
               ALORS ([B_COT_TAXESAL.MONTANT])
               SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
               )
      )

 

Version 76

Version 3

V_CSG.CUM_ABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65'))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors ([V_CSG.CUM_AV_ABT]*0.9825)
      sinon (0)
      )
sinon ([V_CSG.CUM_AV_ABT]*0.9825)

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
          et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors ([V_CSG.CUM_AV_ABT]*0.9825)
      sinon (0)
      )
sinon ([V_CSG.CUM_AV_ABT]*0.9825)

V_CSG.CUM_NABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65'))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
            +
            (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
            +
            (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

V_NEWAGCP.CUMSMICPRO3112

Avant

si ([V_NEWAGCP.AF032025])
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

Après

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

CONAIDE.SEUILAPPRENTI

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*CONSTANTE(GENERAL.SMICMENS)*
si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3))
alors (0.50)
sinon (0.79)

Après

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*
si (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
sinon (0.79*CONSTANTE(GENERAL.SMICMENS))

BC_CSG

Pour gérer quand chg RG vers apprenti

Avant

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT])
                  )
            )
      )

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE))
                  )
            )
      )

Fonction F_TAXE2

Avant

MAXIMUM(
   MINIMUM(
     CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL3)/12
     ;histocumulJOINT(BRUT)+BRUT
   )
   - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL2)/12)
;0)
- histocumulJOINT(TAXE2)

Après

MAXIMUM(
   MINIMUM(
     CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL3)/12
     ;
               si ((moisdeb=0) ou (anneedeb=0))
               alors (histocumulJOINT(BRUT))
               sinon (histocumulJOINT(BRUT;moisdeb;anneedeb))
     +BRUT
   )
   - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL2)/12)
;0)
-
si ((moisdeb=0) ou (anneedeb=0))
alors (histocumulJOINT(TAXE2))
sinon (histocumulJOINT(TAXE2;moisdeb;anneedeb))

Fonction F_TAXE3

Avant

MAXIMUM(
   histocumulJOINT(BRUT)+BRUT
   - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12))
;0)
- histocumulJOINT(TAXE3)

Après

MAXIMUM(
        si ((moisdeb=0) ou (anneedeb=0))
        alors (histocumulJOINT(BRUT))
        sinon (histocumulJOINT(BRUT;moisdeb;anneedeb))
   +BRUT
   - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12))
;0)
-
si ((moisdeb=0) ou (anneedeb=0))
alors (histocumulJOINT(TAXE3))
sinon (histocumulJOINT(TAXE3;moisdeb;anneedeb))

BC_TAXE_SAL2

Avant

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
F_TAXE2([BC_TAXESAL.MONTANT];[BC_TAXE_SAL2.MONTANT])
)

Après

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
F_TAXE2([BC_TAXESAL.MONTANT];[BC_TAXE_SAL2.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE))
)

BC_TAXE_SAL3

Avant

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
F_TAXE3([BC_TAXESAL.MONTANT];[BC_TAXE_SAL3.MONTANT])
)

Après

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
F_TAXE3([BC_TAXESAL.MONTANT];[BC_TAXE_SAL3.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE))
)

 

 

Version 76

Version 4

AGCPEXO.BASE

Avant

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5)
   ou ([V_ZRR.COEF]<>0))
alors (1)
sinon (0)

Après

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5)
   ou ([REDZRRSECU.TXEMP]<>0))
alors (1)
sinon (0)

MALCOMP25.TXEMP

Avant

si (
    ([BC_MALCOMP25.MONTANT]>0)
    ou (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
   )
alors (6)
sinon (0)

Après

si (
    ([MALCOMP25.BASE]>0)
    ou (([BC_BRUT_STA.BASE]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
   )
alors (6)
sinon (0)

Correctif NB_HEURESTOTAL

Avant

[NB_HEURESTPAYE.MONTANT]
-CONSTANTE(CONTRAT.HEURESABSVALO)
-CONSTANTE(CONTRAT.HRSMAINTIENABS)
-CONSTANTE(CONTRAT.HRSCONGESVALO)
-CONSTANTE(CONTRAT.HRSMAINTIENCG)

Après

[NB_HEURESTPAYE.MONTANT] 
-CONSTANTE(CONTRAT.HEURESABSVALO) 
-CONSTANTE(CONTRAT.HRSMAINTIENABS) 
-CONSTANTE(CONTRAT.HRSCONGESDEDU)
-CONSTANTE(CONTRAT.HRSMAINTIENCG)

 

 

 

Version 77

Version 77

Version 1

Correctif pour éviter d'avoir de la taxe sur les salaires pour les apprentis quand pas de csg

BC_TAXESAL

Avant

si (CONSTANTE(GENERAL.EXOTAXE)=1)
alors (0)
sinon (
       si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
       alors (
              si ([FO.TOTAL]<>0)
              alors ([FO.TOTAL])
              sinon ([B_COT_TAXESAL.MONTANT])
              )
        sinon (
               SI ([EXOTAXESAL.MONTANT]=0)
               ALORS ([B_COT_TAXESAL.MONTANT])
               SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
               )
      )

Après

declarer (dotaxe)
affecter (dotaxe;
          si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
          alors (
                si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
                et ([BC_BRUT_APP.MONTANT]>0))
                alors (1)
                sinon (0)
                )
          sinon (1)
         )

si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1))
alors (0)
sinon (
       si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
       alors (
              si ([FO.TOTAL]<>0)
              alors ([FO.TOTAL])
              sinon ([B_COT_TAXESAL.MONTANT])
              )
        sinon (
               SI ([EXOTAXESAL.MONTANT]=0)
               ALORS ([B_COT_TAXESAL.MONTANT])
               SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
               )
      )
Version 77

Version 2

Pour corriger MALCOMP25.TXEMP de merde

Version 78

MALCOMP25.TXEMP

Avant

si (
    ([PEIG140987.PEIG92641]>0)
    ou (([BC_BRUT_STA.BASE]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
   )
alors (6)
sinon (0)

Après

si (
   (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
   ou
    ([MALCOMP25.BASE]>0)
   )
alors (6)
sinon (0)

Version 79

V_NEWAGCP.CUMSMICPRO3112 : Pour corriger quand exonération

Avant

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
       alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

Après

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
       alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

 

V_NEWAGCP.AF032025 : Pour corriger incorrect salarié clos

Avant

si ([AGCPEXO.BASE]=1)
alors (0)
sinon (
      si (CONSTANTE(CONTRAT.CLOTURE)=0)
      alors (1)
      sinon (
            si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)
               ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3))
            alors (0)
            sinon (1)
            )
      )

Après

si ([AGCPEXO.BASE]=1)
alors (0)
sinon (
      si (CONSTANTE(CONTRAT.CLOTURE)=0)
      alors (1)
      sinon (
            si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)
               ou ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3)))
            alors (0)
            sinon (1)
            )
      )

Version 80

Version 80

Version 1

Pour le complément maladie et les exo

V_NEWAGCP.CUMSMICPRO3112

Avant

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
       alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]))
       sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]))
      )

Après

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
       alors (
             [V_AGCP.SMICPRORATE]
             +
             F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])
             )
       sinon (
             [V_NEWAGCP.SMICPRO3112]
             +
             F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
             )
      )

 

Version 81

Version 81

Version 1 PERECO

BC_PCO_901

Base de cotisation pour déclaration cotisation 901

(-1)*([PCO_NET.MONTANT]+[PCOA_NET.MONTANT])

PCO_901 Cotisation fictive pour déclarer la cotisation 901

rentre pour 0 dans COT_EMP

Catégorie de cotisation 016 : retenue à la source

Version 82

Version 82

Version 1

MALCOMP25.TXEMP

Avant

si (
   (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
   ou
    ([MALCOMP25.BASE]>0)
   )
alors (6)
sinon (0)

Après

si ([MALCOMP25.BASE]>0)
alors (6)
sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
        alors (6)
        sinon (0)
      )
Version 82

Version 2

Pour le calcul du smic proraté dans le cas d'un forfait jour.

Lorsque le nombre de jour de forfait jour pour un temps plein est inférieur à 218, il faut proratiser pour recalculer le smic à taux plein

Ex : Forfait jour collectif = 211, Forfait du salarié = 200

Smic pro = 200/211  * 211/218  *  SMIC

Source : https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html par 780

Voir également la fiche consigne https://net-entreprises.custhelp.com/app/answers/detail_dsn/a_id/2961/kw/nombres%20d&

V_NEWAGCP.HREMU

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

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 (
                     151.67*                     
                     CONSTANTE(CONTRAT.JOUR_FORFAIT)/218
                      *
                       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)
                       *
                        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]

Version 83

Version 83

Version 1

Modification pour adaptation IFAC

BC_BRUT_APP

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

BC_BRUT_APP_PL

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([BRUT.MONTANT]>0)
      alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI]))
      sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([BRUT.MONTANT]>0)
      alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT]);0;[CONAIDE.SEUILAPPRENTI]))
      sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1))
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

Ajout de BISTAXESAL : Toujours valorisée donne 1 si utilisation de BC_TAXESALBIS

si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
alors (1)
sinon (0)

Ajout de BC_TAXESALBIS

si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
alors (
      si ([FO.TOTAL]<>0)
      alors ([FO.TOTAL])
      sinon ([B_COT_TAXESAL.MONTANT])
      )
sinon (0)

BC_TAXESAL

declarer (dotaxe)
affecter (dotaxe;
          si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
          alors (
                si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
                et ([BC_BRUT_APP.MONTANT]>0))
                alors (1)
                sinon (0)
                )
          sinon (1)
         )

si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1))
alors (0)
sinon (
      si ([BISTAXESAL.BASE]=1)
      alors (
            SI ([EXOTAXESAL.MONTANT]=0)
            ALORS ([BC_TAXESALBIS.MONTANT])
            SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [BC_TAXESALBIS.MONTANT] )
            )
      sinon (
            SI ([EXOTAXESAL.MONTANT]=0)
            ALORS ([B_COT_TAXESAL.MONTANT])
            SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
            )
      )

 

Version 84

Version 84

Version 1

COTSALHORSECRE

Pour virer la référence circulaire

Avant

exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL])
+exclure([COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL])

Après

exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL])
+exclure([COT_SALDED.MONTANT];[N_CSGECRTD.MTSALARIAL])

V_CSG.CUM_AV_ABT

Permettre de prendre le cumul csg à partir du changement de régime général vers régime apprenti

Avant

minimum(
       (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT])
       ;
       (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4
       )

Après

 minimum(
             (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT];[CHGT_RGAPP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))+[B_COT_CSG_ABT.MONTANT])
             ;
             (F_HISTOCLOT([PL_MENSA.MONTANT];[CHGT_RGAPP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))+[PL_MENSA.MONTANT])*4
             )
Version 84

Modifications du paramètre T en mai 2025

Deux possibilités :

Nous on va faire la première possibilité

Ajout d'une rubrique libre AGCP2025

Cumul rémunération période 1 & 2

CAS : Détermine la situation ou on est :

 

 

 

Version 84

Rubrique Créée : V_AGCP2025

CAS

declarer (ANCLOT)
affecter (ANCLOT;
         si (CONSTANTE(CONTRAT.CLOTURE)=1)
         alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE)*100+CONSTANTE(CONTRAT.MOIS_CLOTURE))
         sinon (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE))
         )
si (:anclot>=2026)
alors (5)
sinon (si (:anclot>=202501)
       alors ( si (:anclot<=202504)
               alors (1)
               sinon (2)
              )
       sinon (si (:anclot>=202401)
             alors (3)
             sinon (4)
             )
       )
/*

    
    1 : Le calcul concerne 2025 la 1ère période : La période de paye est dans la 1ere période ou la date de clôture est dans la 1ère période
    2 : Le calcul concerne 2025 la 2ème période : La période de paye est dans la 2ème période ou la date de clôture est dans la 2ème période
    3 : Le calcul concerne 2024 : la date de clôture est 2024
    4 : Le calcul concerne <2024 : La date de clôture est <2024
    5 : Le calcul concerne 2026 ou supérieur : la période de paye est>=2026 et la date de clôture>=2026

*/

AGCP2025.CUMHSUP1

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.HSUP];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMHSUP2

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.HSUP];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMSMICP1

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.SMICPRO];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMSMICP2

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.SMICPRO];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMREMUP1

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.REMUCOEF];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMREMUP2

HISTOCUMULSITUBYANCLOT([V_NEWAGCP.REMUCOEF];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMADHSUP1

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.HSUP];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMADHSUP2

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.HSUP];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMADSMICP1

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADSMICPRO];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMADSMICP2

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADSMICPRO];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMADREMUP1

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADREMUCOEF];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)

AGCP2025.CUMADREMUP2

HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADREMUCOEF];maximum([AGCPDEBUT.MONTANT];05);2025)

AGCP2025.CUMIJBRUT

si ([AGCP2025.CAS]=1)
alors (
      HISTOCUMULSITUBYANCLOT([IJBRUT.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([AGCP2025.CAS]=2)
       alors (
             HISTOCUMULSITUBYANCLOT([IJBRUT.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
             )
       sinon (F_AGCP([IJBRUT.MONTANT]))
       )

 

Version 84

Rubrique modifiée : V_NEWAGCP et V_AD_AGCP

V_NEWAGCP

CUMREMUCOEF

Avant

[V_NEWAGCP.REMUCOEF]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
      alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
      )

Après

[V_NEWAGCP.REMUCOEF]
+
si ([V_AGCP2025.CAS]=1)
alors (
      [V_AGCP2025.CUMREMUP1]
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors(
              [V_AGCP2025.CUMREMUP2]
              )
      sinon (
            si (
               ([PLAFONDSECU.NUMCAS]=1)
               et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
               )
            alors (
                  F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])
                  )
            sinon (
                  si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
                  alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
                  sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]))
                  )
            )
      )

CUMSMICPRO

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si (
         ([PLAFONDSECU.NUMCAS]=1)
         et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
         )
      alors (
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
            alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
            sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]))
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

Après

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_NEWAGCP.SMICPRO]+
      si ([V_AGCP2025.CAS]=1)
      alors ([V_AGCP2025.CUMSMICP1]
            )
      sinon (si ([V_AGCP2025.CAS]=2)
            alors([V_AGCP2025.CUMSMICP2]
                  )
            sinon (
                  si (
                     ([PLAFONDSECU.NUMCAS]=1)
                     et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
                     )
                  alors (
                        F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
                        )
                  sinon (
                        si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)
                        alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]))
                        sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]))
                        )
                  )
            )
      )
sinon ([V_NEWAGCP.TOTSMICPRO])

V_NEWAGCP.COEF

Avant

si  (
    ([V_NEWAGCP.CUMREMUCOEF]+[IJBRUT.MONTANT]+F_AGCP([IJBRUT.MONTANT])<= 0 )
    ou ([V_NEWAGCP.CUMSMICPRO]<=0)
    )
             alors (0)
             sinon (
               maximum(0;
                       MINIMUM([V_NEWAGCP.MAXCOEF];
                                ([V_NEWAGCP.MAXCOEF]/0.6)*
                                ((1.6*[V_NEWAGCP.CUMSMICPRO]/[V_NEWAGCP.CUMREMUCOEF])-1)
                               )
                      )
                   )

Après

si  (
    ([V_NEWAGCP.CUMREMUCOEF]+[IJBRUT.MONTANT]+[V_AGCP2025.CUMIJBRUT]<= 0 )
    ou ([V_NEWAGCP.CUMSMICPRO]<=0)
    )
             alors (0)
             sinon (
               maximum(0;
                       MINIMUM([V_NEWAGCP.MAXCOEF];
                                ([V_NEWAGCP.MAXCOEF]/0.6)*
                                ((1.6*[V_NEWAGCP.CUMSMICPRO]/[V_NEWAGCP.CUMREMUCOEF])-1)
                               )
                      )
                   )

V_NEWAGCP.AGCPURSSAF

Avant

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPURSSAF]
      -
      F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])
      )

Après

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPURSSAF]
      -
      si ([V_AGCP2025.CAS]=1)
      alors (
            HISTOCUMULSITUBYANCLOT([BC_AGCPURSSAF.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
            )
      sinon (si ([V_AGCP2025.CAS]=2)
            alors(
                  HISTOCUMULSITUBYANCLOT([BC_AGCPURSSAF.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
                  )
            sinon (
                  F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT])
                  )
            )
      )

V_NEWAGCP.AGCPAA

Avant

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPAA]
      -
      F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])
      )

Après

si (
   ([PLAFONDSECU.NUMCAS]=2)
   et
   ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
   )
alors (
      0
      )
sinon (
      [V_NEWAGCP.TOTAGCPAA]
      -
      si ([V_AGCP2025.CAS]=1)
      alors (
            HISTOCUMULSITUBYANCLOT([BC_AGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
            )
      sinon (si ([V_AGCP2025.CAS]=2)
            alors(
                  HISTOCUMULSITUBYANCLOT([BC_AGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
                  )
            sinon (
                  F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT])
                  )
            )
      )

V_NEWAGCP.CUMHSUP

Avant

[V_NEWAGCP.HSUP]
+
si (
   ([PLAFONDSECU.NUMCAS]=1)
   et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
   )
alors (
      F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

Après

[V_NEWAGCP.HSUP]
+
si ([AGCP2025.CAS]=1)
alors (
      [AGCP2025.CUMHSUP1]
      )
sinon (si ([AGCP2025.CAS]=2)
      alors(
              [AGCP2025.CUMHSUP2]
              )
      sinon (
            si (
               ([PLAFONDSECU.NUMCAS]=1)
               et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1))
               )
            alors (
                  F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT])
                  )
            sinon (
                  si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
                  alors(
                        F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
                        *
                        F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
                        /
                        (
                        F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
                        +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
                        )
                        )
                  sinon (
                        F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
                        )
                  )
            )
      )

V_NEWAGCP.CUMSMICPRO3112

Avant

si ([V_NEWAGCP.AF032025]=1)
alors (
      [V_NEWAGCP.CUMSMICPRO]
      )
sinon (
       si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
       alors (
             [V_AGCP.SMICPRORATE]
             +
             F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])
             )
       sinon (
             [V_NEWAGCP.SMICPRO3112]
             +
             F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
             )
      )

Après

si ([V_NEWAGCP.AF032025]=1)
alors (
      si ([V_AGCP2025.CAS]<=2)
      alors (
            [V_NEWAGCP.SMICPRO]
            +
            F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])
            )
      sinon (
            [V_NEWAGCP.CUMSMICPRO]
            )
      )
sinon (
       si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
       alors (
             [V_AGCP.SMICPRORATE]
             +
             F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])
             )
       sinon (
             [V_NEWAGCP.SMICPRO3112]
             +
             F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])
             )
      )

 

V_NEWAGCP.COEFREGIME

Avant

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      )

Après

si ([PLAFONDSECU.NUMCAS]=1)
alors (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0)
            alors (CONSTANTE(GENERAL.COEFAGCPURSSAF))
            sinon (CONSTANTE(GENERAL.COEFAGCPMSA))
            )
      sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF))
      )
sinon (
      si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300)
      alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0)
            alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
            )
      sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)))
      )
+
si ([V_AGCP2025.CAS]=2)
alors (0,0004)
sinon (0)

V_AD_AGCP

ADCUMSMICPRO

Avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_AD_AGCP.ADSMICPRO]+F_AGCP([V_AD_AGCP.ADSMICPRO];[AGCPDEBUT.MONTANT])
      )
sinon ([V_AD_AGCP.ADTOTSMICPRO])

Après

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (
      [V_AD_AGCP.ADSMICPRO]+
      si ([AGCP2025.CAS]=1)
      alors ([AGCP2025.CUMADSMICP1]
            )
      sinon (si ([AGCP2025.CAS]=2)
            alors([AGCP2025.CUMADSMICP2]
                  )
            sinon (
                  F_AGCP([V_AD_AGCP.ADSMICPRO];[AGCPDEBUT.MONTANT])
                  )
            )
      )
sinon ([V_AD_AGCP.ADTOTSMICPRO])

AFCOEF

Avant

si  (
    ([V_AD_AGCP.ADCUMREMUCOEF]+[IJBRUT.MONTANT]+F_AGCP([IJBRUT.MONTANT])<= 0 )
    ou ([V_AD_AGCP.ADCUMSMICPRO]<=0)
    )
             alors (0)
             sinon (
               maximum(0;
                       MINIMUM([V_NEWAGCP.MAXCOEF];
                                1.2*([V_NEWAGCP.MAXCOEF]/0.4)*
                                ((1.6*[V_AD_AGCP.ADCUMSMICPRO]/[V_AD_AGCP.ADCUMREMUCOEF])-1)
                               )
                      )
                   )

Après

si  (
    ([V_AD_AGCP.ADCUMREMUCOEF]+[IJBRUT.MONTANT]+[AGCP2025.CUMIJBRUT]<= 0 )
    ou ([V_AD_AGCP.ADCUMSMICPRO]<=0)
    )
             alors (0)
             sinon (
               maximum(0;
                       MINIMUM([V_NEWAGCP.MAXCOEF];
                                1.2*([V_NEWAGCP.MAXCOEF]/0.4)*
                                ((1.6*[V_AD_AGCP.ADCUMSMICPRO]/[V_AD_AGCP.ADCUMREMUCOEF])-1)
                               )
                      )
                   )

ADAGCPURSSAF

Avant

[V_AD_AGCP.ADTOTAGCPURSSAF]
-
histocumulsitu([BC_ADAGCPURSS.MONTANT])

Après

[V_AD_AGCP.ADTOTAGCPURSSAF]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPURSS.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPURSS.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPURSS.MONTANT])
            )
      )

ADAGCPAA

Avant

[V_AD_AGCP.ADTOTAGCPAA]
-
 histocumulsitu([BC_ADAGCPRUAA.MONTANT])

Après

[V_AD_AGCP.ADTOTAGCPURSSAF]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPRUAA.MONTANT])
            )
      )

ADCUMREMUCOEF

Avant

[V_AD_AGCP.ADREMUCOEF]
+
 F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT])

Après

[V_AD_AGCP.ADREMUCOEF]
+
si ([AGCP2025.CAS]=1)
alors (
      [AGCP2025.CUMADSMICP1]
      )
sinon (si ([AGCP2025.CAS]=2)
      alors(
            [AGCP2025.CUMADSMICP2]
           )
      sinon (
            F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT])
            )
      )

CUMHSUP

Avant

[V_AD_AGCP.HSUP]
+
si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)
alors (
      F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT])
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors(
             F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
             *
             F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
             /
             (
              F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
              +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
             )
            )
      sinon (
            F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
            )
      )

Après

[V_AD_AGCP.HSUP]
+
si ([AGCP2025.CAS]=1)
alors (
      [AGCP2025.CUMADHSUP1]
      )
sinon (si ([AGCP2025.CAS]=2)
      alors(
              [AGCP2025.CUMADHSUP2]
              )
      sinon (
            si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)
            alors (
                  F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT])
                  )
            sinon (
                  si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
                  alors(
                        F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
                        *
                        F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
                        /
                        (
                        F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT])
                        +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT])
                        )
                        )
                  sinon (
                        F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT])
                        )
                  )
            )
      )

 

 

Version 87

ALLOCFAM

 

Avant

si (
    ([V_NEWAGCP.CUMREMUCOEF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUCOEF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Après

si (
    ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUAF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

BC_REGALLOC

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
   ([V_NEWAGCP.CUMREMUCOEF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
   ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
   ou ([V_NEWAGCP.CUMSMICPRO]<=0)
)
alors (
       histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
       -histocumulsitu([BC_REG_ALLOC.MONTANT])
       )
sinon (
      histocumulsitu([V_ALLOC.BASEALLOCRED])
      +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
   ([V_NEWAGCP.CUMREMUAF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
   ou ([V_NEWAGCP.CUMREMUAF]<=0)
   ou ([V_NEWAGCP.CUMSMICPRO3112]<=0)
)
alors (
       histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
       -histocumulsitu([BC_REG_ALLOC.MONTANT])
       )
sinon (
      histocumulsitu([V_ALLOC.BASEALLOCRED])
      +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

 

Version 88

Version 88

Version 1

V_AD_AGCP.ADAGCPAA

Avant

[V_AD_AGCP.ADTOTAGCPURSSAF]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPRUAA.MONTANT])
            )
      )

Après

[V_AD_AGCP.ADTOTAGCPAA]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPRUAA.MONTANT])
            )
      )
Version 88

Version 2 Saisie arret

https://wikiapp.heberg-eig.fr/books/saisie-arret/page/rubriques

https://wikiapp.heberg-eig.fr/books/saisie-arret/page/rubriques-a-creer

 

Version 88

Version 3 Correction BC_ADAGCPRUAA et BC_ADAGCPURSS

A l'évaluation , anomalie bloc de parenthèse incorrect

BC_ADAGCPURSS

Avant

si ( (
      ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
      et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
      )
      ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
        alors ([V_AD_AGCP.ADAGCPURSSAF])
        sinon (0)
       )
sinon (0)

Après

si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors (0)
sinon (
       si (([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
           et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0))
       alors (
             si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
                ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
             alors ([V_AD_AGCP.ADAGCPURSSAF])
             sinon (0)
             )
       sinon (0)
      )

BC_ADAGCPRUAA

Avant

si ((
    ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
    et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
    )
    ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
       alors ([V_AD_AGCP.ADAGCPAA])
       sinon (0)
       )
sinon (0)

Après

si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors (0)
sinon (
       si (([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
           et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0))
       alors (
             si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
                ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
             alors ([V_AD_AGCP.ADAGCPAA])
             sinon (0)
             )
       sinon (0)
      )

Version 89

Version 89

Version 1

Correction de la formule V_AD_AGCP.ADAGCPAA

Car ca donne le même montant que le montant urssaf

Avant

[V_AD_AGCP.ADTOTAGCPURSSAF]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPRUAA.MONTANT])
            )
      )

Après

[V_AD_AGCP.ADTOTAGCPAA]
-
si ([V_AGCP2025.CAS]=1)
alors (
      histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025)
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors (
            histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025)
            )
      sinon (
            F_histoclotsit([BC_ADAGCPRUAA.MONTANT])
            )
      )

Correction de la formule V_AD_AGCP.ADCUMREMUCOEF

Avant

[V_AD_AGCP.ADREMUCOEF]
+
si ([V_AGCP2025.CAS]=1)
alors (
      [V_AGCP2025.CUMADSMICP1]
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors(
            [V_AGCP2025.CUMADSMICP2]
           )
      sinon (
            F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT])
            )
      )

Après

[V_AD_AGCP.ADREMUCOEF]
+
si ([V_AGCP2025.CAS]=1)
alors (
      [V_AGCP2025.CUMADREMUP1]
      )
sinon (si ([V_AGCP2025.CAS]=2)
      alors(
            [V_AGCP2025.CUMADREMUP2]
           )
      sinon (
            F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT])
            )
      )

 

 

 

 

Version 89

Version 2

Ajout de la cotisation VMRR : Versement mobilité régional et rural

TRANSPVMRR: Rubrique de cotisation

Assiette : BC_BRUTURSSAF

Pour la formule taux : 

CONSTANTE(CONTRAT.VTAUX_TAXETRANSPORTVMRR)

 

Version 89

Version 3

TRANSPVMRRMED : Versement mobilité régional et rural taux réduit

Base de la cotisation : BC_BRUTURSSAF

Pas de taux, à définir dans le gestionnaire de régime

Version 90

Version 90

Version 1 avec nouveau majbase

TRANSPVMRR.TXEMP

Permet de prendre en compte la modification du taux VMRR

Avant

CONSTANTE(CONTRAT.VTAUX_TAXETRANSPORTVMRR)

Après

LISTEGEN(TX_TRANSPVMRR;CONSTANTE(CONTRAT.TAUX_TAXETRANSPORTVMRR))
Version 90

Version 2

Création de la rubrique ACCIDENT_MISP

BC_AT_MISP

Avant

(CONSTANTE(GENERAL.PLFSECUHEURE)*0.07) * [NB_HEURESTPAYE.MONTANT]

Après

(CONSTANTE(GENERAL.PLFSECUHEURE)*0.07) * [NB_HEURESTPAYE.MONTANT] * LISTEGEN(TX_ACC;CONSTANTE(CONTRAT.TAUX_ACCIDENTTRAVAIL)) / 100

 

Création de la rubrique indemnité de volontariat associatif

SC_IND_VOLON : Indemnité volontariat associatif

Le montant a pour participation uniquement le brut en + et le brut fiscal en - (l'indemnité n'est pas soumise à l'impôt sur le revenu).

Pour les cotisations :

 

 

 

Version 90

Version 3

Modification de la formule V_NEWAGCP.HREMU

Permet de régler le problème de saisir H_NONTRAV dans un bulletin de régul et qui n'était pas pris en compte dans le calcul agcp

Ticket Jira

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 (
                     151.67*
                     CONSTANTE(CONTRAT.JOUR_FORFAIT)/218
                      *
                       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)
                       *
                        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]
-
si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors ([H_N0NTRAV.BASE])
sinon (0)

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 (
                     151.67*
                     CONSTANTE(CONTRAT.JOUR_FORFAIT)/218
                      *
                       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)
                       *
                        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]
+
si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors ([H_N0NTRAV.BASE])
sinon (0)
Version 90

Version 4

Correctif cotisation retraite passage apprenti vers régime général

Correction de la rubrique CHGT_APP : Toujours valorisé à NON

Modification de BC_TU1_RET

Avant

F_TRANCHEANEW([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[PL_MENSA.MONTANT])

Après

F_TRANCHEANEW([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[PL_MENSA.MONTANT];[CHGT_APP.BASE])

Modification de la fonction F_TRANCHEB

Transformation du paramètre SOMMEISO en MOISDEB

Avant

maximum
         (minimum(
               F_HISTOCLOT(BRUT)
               +BRUT
               -(F_HISTOCLOT(TRANCHEA)
                 +TRANCHEA
                )
                ;
               F_HISTOCLOT(PLAFB)
               +PLAFB
                 )
         ;
         0)
       -F_HISTOCLOT(TRANCHEB)

Après

maximum
         (minimum(
               F_HISTOCLOT(BRUT;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))
               +BRUT
               -(F_HISTOCLOT(TRANCHEA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))
                 +TRANCHEA
                )
                ;
               F_HISTOCLOT(PLAFB;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))
               +PLAFB
                 )
         ;
         0)
       -F_HISTOCLOT(TRANCHEB;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE))

Modification de la rubrique BC_TU2_RET

Avant

F_TRANCHEB([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[BC_TU2_RET.MONTANT];[PL_MENSB_7PSS.MONTANT])

Après

F_TRANCHEB([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[BC_TU2_RET.MONTANT];[PL_MENSB_7PSS.MONTANT];[CHGT_APP.BASE])

 

 

 

Version 90

Version 5

CSG pour les apprentis

La CSG pour les apprentis sur la partie supérieur à 50% du smic mensuel.

Le pb est que l'assiette CSG est calculée en annuel pour le problème des 4 plafonds.

Pour contourner le problème on va calculer la CSG en mensuel pour les apprentis.

V_CSG.CUM_AV_ABT

Avant

minimum(
       (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT])
       ;
       (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4
       )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         )
      alors ([B_COT_CSG_ABT.MONTANT])
      sinon (0)
      )
sinon (
      minimum(
              (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT])
              ;
              (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4
              )
      )

V_CSG.CUM_NABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
            +
            (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            [B_COT_CSG_ABT.MONTANT]
            +
            [B_COT_CSG_NABT.MONTANT]
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

BC_CSG

Avant

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE))
                  )
            )
      )

Après

si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (0)
sinon (
      si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0))
      alors ([FO.TOTAL])
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024))
            alors ([B_COT_CSG.MONTANT])
            sinon (
                  [V_CSG.CUM_ABT]
                  +[V_CSG.CUM_NABT]
                  -
                  si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
                  alors (0)
                  sinon (
                        F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE))
                        )
                  )
            )
      )

 

 

 

Version 90

Version 6

FNGS pour les apprentis

Problème de concordance entre la base Assedic et la base FNGS

A priori, il suffit juste de modifier la base de cotisation dans la gestion des régimes.

 

Version 90

Version 7

Ticket 742839 : Problème de calcul de la Zrr

Il faut modifier la rubrique libre V_ZRR

MTREDTRANSP

Avant

[V_ZRR.MTREDUCTION]*([TRANSPORT.TXEMP])
/[B_TXZRR.MONTANT]

Après

[V_ZRR.MTREDUCTION]*([TRANSPORT.TXEMP])
/[V_ZRR.SOMTXZRR]

MTREDFNAL

Avant

[V_ZRR.MTREDUCTION]*([FNAL.TXEMP]+[FNAL_TRA.TXEMP]+[FNAL_DEPLAF.TXEMP])
/[B_TXZRR.MONTANT]

Après

[V_ZRR.MTREDUCTION]*([FNAL.TXEMP]+[FNAL_TRA.TXEMP]+[FNAL_DEPLAF.TXEMP])
/[V_ZRR.SOMTXZRR]

 

Version 91

Version 91

Version 1

V_CSG : Eléments de calcul CSG

Le calcul de la CSG n'est pas correct pour les apprentis. La base non abattue est additionnée de la part abattue

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            [B_COT_CSG_ABT.MONTANT]
            +
            [B_COT_CSG_NABT.MONTANT]
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            [B_COT_CSG_NABT.MONTANT]
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

version 92

version 92

Version 1 : Apprenti

Lors d'un passage régime général vers apprenti après 03/2025 pour un salarié embauché avant, les nouvelles règles ne s'appliquent pas.

Il faut créer une rubrique de paye en éléments constants (APPRENTI0325) pour forcer l'application de ces règles.

Ajouter la rubrique apprenti0325 pour forcer l'embauche à mars 2025

Mettre 1 pour forcer le fait que c'est un apprenti après 2025

Ajouter une formule à la rubrique APPRENTI :

APPRENTI.APPRENTI0325

Si (([APPRENTI0325.BASE]=1)
ou ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503))
    )
alors (1)
sinon (0)

V_CSG.CUM_AV_ABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si    (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
      alors ([B_COT_CSG_ABT.MONTANT])
      sinon (0)
      )
sinon (
      minimum(
              (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT])
              ;
              (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4
              )
      )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([APPRENTI.APPRENTI0325]=1)
      alors ([B_COT_CSG_ABT.MONTANT])
      sinon (0)
      )
sinon (
      minimum(
              (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT])
              ;
              (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4
              )
      )

 

V_CSG.CUM_N_ABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            [B_COT_CSG_NABT.MONTANT]
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
      	 ([APPRENTI.APPRENTI0325]=1)
         et ([BC_BRUT_APP.MONTANT]>0)
         )
      alors (
            [B_COT_CSG_NABT.MONTANT]
            )
      sinon (0)
      )
sinon (
      (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT])
      +
      (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT])
      )

CUM_ABT

Avant

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si (
         (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
         )
      alors ([V_CSG.CUM_AV_ABT]*0.9825)
      sinon (0)
      )
sinon ([V_CSG.CUM_AV_ABT]*0.9825)

Après

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      si ([APPRENTI.APPRENTI0325]=1)        
      alors ([V_CSG.CUM_AV_ABT]*0.9825)
      sinon (0)
      )
sinon ([V_CSG.CUM_AV_ABT]*0.9825)

BC_TAXESAL

Avant

declarer (dotaxe)
affecter (dotaxe;
          si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
          alors (
                si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
                et ([BC_BRUT_APP.MONTANT]>0))
                alors (1)
                sinon (0)
                )
          sinon (1+0)
         )

si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1))
alors (0)
sinon (
      si ([BISTAXESAL.BASE]=1)
      alors ([BC_TAXESALBIS.MONTANT])
      sinon (
si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
alors (
si ([FO.TOTAL]<>0)
alors ([FO.TOTAL])
sinon ([B_COT_TAXESAL.MONTANT])
)
sinon (
SI ([EXOTAXESAL.MONTANT]=0)
ALORS ([B_COT_TAXESAL.MONTANT])
SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
)
)
      )

Après

declarer (dotaxe)
affecter (dotaxe;
          si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
          alors (
                si (
                   ([APPRENTI.APPRENTI0325]=1)
                   et ([BC_BRUT_APP.MONTANT]>0)
                   )
                alors (1)
                sinon (0)
                )
          sinon (1+0)
         )

si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1))
alors (0)
sinon (
      si ([BISTAXESAL.BASE]=1)
      alors ([BC_TAXESALBIS.MONTANT])
      sinon (
si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008)
alors (
si ([FO.TOTAL]<>0)
alors ([FO.TOTAL])
sinon ([B_COT_TAXESAL.MONTANT])
)
sinon (
SI ([EXOTAXESAL.MONTANT]=0)
ALORS ([B_COT_TAXESAL.MONTANT])
SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] )
)
)
      )

CONAIDE.SEUILAPPRENTI

Avant

CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
*
si (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)
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.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
sinon (0.79*CONSTANTE(GENERAL.SMICMENS))

 

version 92

Version 2 : Ajout rubrique CP_DIF_TRIM

c'est une copie de CP_DIF.

Le libellé est Indemnité différentielle de congés trimestriels

 

version 92

Version 3 : RGDU :

Le calcul de la RGDU

Il s'agit de remplacer les formules base de cotisation de l'agcp par le mot clé RGDU

Pour simplifier, ajout d'une fonction  avec un paramètre : TYPEMONTANT

F_RGDU
declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO)

BC_AGCPURSSAF

Avant 

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPURSSAF])
      sinon (
            [V_AGCP.TOTAGCP]
            *CONSTANTE(GENERAL.COEFAGCPURSSAF)
            /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE))
            +[V_AGCP.TOTAGCPCHOM]
            histocumulsitu([BC_AGCPURSSAF.MONTANT];1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))
            )
       )
sinon (0)

Après

F_RGDU(1)
BC_AGCPAA

Avant 

si (
   ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
   et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
      alors ([V_NEWAGCP.AGCPAA])
      sinon (
            si ([AGCPURSSAF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENS]+[V_AGCP.MTAGCPMENSCHOM]-[AGCPURSSAF.BASE]
                  )
            sinon (0)
            +
            si ([AGCPURSSRENF.BASE]<>0)
            alors (
                  [V_AGCP.MTAGCPMENSRENF]-[AGCPURSSRENF.BASE]
                  )
            sinon (0)
            )
      )
sinon (0)

Après

F_RGDU(2)
BC_ADAGCPURSS

Avant

si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1)
alors (0)
sinon (
       si (([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
           et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0))
       alors (
             si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
                ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
             alors ([V_AD_AGCP.ADAGCPURSSAF])
             sinon (0)
             )
       sinon (0)
      )

Après

F_RGDU(1)
BC_ADAGCPRUAA

Avant

si ((
    ([AGCPURSSAF_1.BASE]=0) et ([AGCPURSAFREG_1.BASE]=0) et ([AGCPRUAA_1.BASE]=0)
    et ([AGCPURS_AD_1.BASE]=0) et ([AGCPURFR_AD_1.BASE]=0) et ([AGCPRUAA_AD_1.BASE]=0)
    )
    ou (CONSTANTE(CONTRAT.RAPPEL_FICHE)=0)
   )
alors (
      si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=0)
          ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)>=2024))
       alors ([V_AD_AGCP.ADAGCPAA])
       sinon (0)
       )
sinon (0)

Après

F_RGDU(2)

 

version 92

Version 3 : RGDU : Allocation Familiale

Le calcul de l'allocation familiale

Plus de régularisation en 2026.

Plus d'alloc taux réduit non plus

BC_REG_ALLOC

Avant

declarer (TXSMIC)
affecter (TXSMIC;
         si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
         alors (3.5)
         sinon (3.3)
         )
si (
   ([V_NEWAGCP.CUMREMUAF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
   ou ([V_NEWAGCP.CUMREMUAF]<=0)
   ou ([V_NEWAGCP.CUMSMICPRO3112]<=0)
)
alors (
       histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
       -histocumulsitu([BC_REG_ALLOC.MONTANT])
       )
sinon (
      histocumulsitu([V_ALLOC.BASEALLOCRED])
      +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      declarer (TXSMIC)
      affecter (TXSMIC;
               si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025))
               alors (3.5)
               sinon (3.3)
               )
      si (
         ([V_NEWAGCP.CUMREMUAF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]))
         ou ([V_NEWAGCP.CUMREMUAF]<=0)
         ou ([V_NEWAGCP.CUMSMICPRO3112]<=0)
         )
      alors (
            histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
            -histocumulsitu([BC_REG_ALLOC.MONTANT])
            )
      sinon (
            histocumulsitu([V_ALLOC.BASEALLOCRED])
            +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
            )
      )
sinon (0
      )
ALLOCFAMREDUIT.TXEMP

Avant

si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)
ALLOCFAM.TXEMP

Avant

si (
    ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUAF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (0)
ALLOCFAMCOMP.TXEMP

Avant

si (
    ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
    et ([V_NEWAGCP.CUMREMUAF]>0)
    et ([V_NEWAGCP.CUMSMICPRO3112]>0)
    )
alors (0) sinon (1.80)

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
        ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
        et ([V_NEWAGCP.CUMREMUAF]>0)
        et ([V_NEWAGCP.CUMSMICPRO3112]>0)
        )
      alors (0)
      sinon (1.80)
      )
sinon (0)
ALLOCFAMCOMPNEG.TXEMP

Avant

si (
   ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
   et ([V_NEWAGCP.CUMREMUAF]>0)
   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
   )
alors (0) sinon (-1.80)

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
        ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
        et ([V_NEWAGCP.CUMREMUAF]>0)
        et ([V_NEWAGCP.CUMSMICPRO3112]>0)
        )
      alors (0)
      sinon (-1.80)
      )
sinon (0)
V_ALLOC

Toujours calculé à False

Mise à zéro de toutes les formules sauf BASEALLOC

 

 

version 92

Version 3 RGDU : Complément maladie

Il y a toujours un complément maladie

BC_MALCOMP25

Avant

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

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      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)
           )
      )
sinon ([BC_BRUT_URSAFF.MONTANT])

 

MALCOMP25.TXEMP

Avant

si ([MALCOMP25.BASE]>0)
alors (6)
sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
        alors (6)
        sinon (0)
      )

Après

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si ([MALCOMP25.BASE]>0)
      alors (6)
      sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
              alors (6)
              sinon (0)
            )
      )
sinon (6
      )

 

 

 

 

version 92

Version 3 : Problèmes sur plafond antérieur

Alerte  de Christophe sur PLAFONDS_A : Utilise une constante qui n'existe plus :

PLAFONDS_A : Je le met à toujours calculé non

PLAFONDS_A.PLA_MOIS

Avant

SI ((CONSTANTE(General.PRORATAPLAFOND)=1)
     ou (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201807)
   )
alors (maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.NEW_PLA_MOIS])))
sinon(maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.ANC_PLA_MOIS])))

Après

0

PLAFONDS_A.PLA_MOISANT

Avant

SI ((CONSTANTE(General.PRORATAPLAFOND)=1)
     ou (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201807)
   )
alors (maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.NEW_PLA_MOISANT])))
sinon(maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.ANC_PLA_MOISANT])))

Après

0

ANC_PLA_MOISANT

Avant

si ((CONSTANTE(GENERAL.JRS_ANT)=1) et (CONSTANTE(CONTRAT.NEUTRAL_PLAF)>0))
alors (
      si ( Constante(General.Mois_paye)=2)
      alors ( si ([JRSPLAFOND.MONTANT]>=28)
              alors ([PLAFONDS_A.PLA_MOIS] / 30)
              sinon ([PLAFONDS_A.PLA_MOIS] / [JRSPLAFOND.MONTANT])
            )
      sinon ( [PLAFONDS_A.PLA_MOIS] / minimum([JRSPLAFOND.MONTANT];30))
      *
      [ANT_JOURS.BASE]
      +
      si ([ANT_HEURES.MONTANT]<>0)
      alors (
             minimum(CONSTANTE(GENERAL.PLFSECUMOIS);
             CONSTANTE(GENERAL.PLFSECUMOIS)*[ANT_HEURES.BASE]/CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
             )
      sinon (0)
      )
sinon (0)

Après

0

NEW_PLA_MOISANT

Avant

si (CONSTANTE(GENERAL.JRS_ANT)=1)
alors (
      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 (
                              (CONSTANTE(CONTRAT.HORAIREMENSUEL)+[ANT_HEURES.MONTANT])
                              / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
                              )
                         )
                 )
              )
      *(
         minimum(maximum(0;[ANT_JOURS.BASE]);CONSTANTE(GENERAL.NBJMOISPAYE_1))
         /CONSTANTE(GENERAL.NBJMOISPAYE_1)
        )
      )
sinon (0)

Après

0

 

 

 

version 92

Version 3 : Calcul différentiel smic coefficient internat externat

66_DIFINTEXT

Différence internatexternat

Avant

CONSTANTE(CONTRAT.HORAIREMENSUEL)/CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
*
si ([COEFEXT66.COEFEXT66]=0)
alors (0)
sinon (
maximum(
([COEFREF.COEFREF]-[COEFEXT66.COEFEXT66]) * [VP.VP]
* (1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
;0
)
)

Après

CONSTANTE(CONTRAT.HORAIREMENSUEL)/CONSTANTE(CONTRAT.HORAIRECOLLECTIF)
*
si ([COEFEXT66.COEFEXT66]=0)
alors (0)
sinon (
declarer (coefext)
affecter(coefext;COEFANCEXT(CONSTANTE(CONTRAT.IDGRILLE);[66_ECHELON.MONTANT]))
      maximum(
              si (:coefext=0)
              alors ([COEFREF.COEFREF]-[COEFEXT66.COEFEXT66])
              sinon (
                    ([COEFANC.COEFANC]-:coefext)
                    )
              * [VP.VP]
              * (1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
              ;0
             )
      )
version 92

Version 4

VMRR taux réduit

TRANSPVMRRMED.TXEMP

Avant

0

Après

Non modifiable

LISTEGEN(TX_TRANSPVMRR;CONSTANTE(CONTRAT.TAUX_TAXETRANSPORTVMRR))
version 92

Version 5

Correction pour AGCP AD

BC_ADAGCPRUAA

F_RGDU(12)

BC_ADAGCPURSS

F_RGDU(11)

On va créer deux bases de cotisation correspondant au brut urssaf AD exo et brut urssaf AD nexo

BC_BRUT_ADEXO

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors ([AGCPITREMU.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
sinon (0)

BC_BRUT_ADNEXO

si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
sinon (0)

Complément maladie

BC_MALCOMP25

En 2026, pour les AD, on devrait avoir 

Mais on va considérer qu'un AD ne gagne jamais au dessus de 2.25SMIC

Il paiera juste le complément sur la partie non exo

declarer (PASADREMU)
affecter (PASADREMU;[AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])
         )
si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      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)
           )
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (:PASADREMU)
      sinon ([BC_BRUT_URSAFF.MONTANT])
      )

Allocation familiale

En 2026, pour les AD, on devrait avoir 

La encore on considère que le salarié a une rémunération <3.3 SMIC

Du coup rien à changer dans les rubriques

Il suffira d'appliquer la base BC_BRUT_ADNEXO pour le régime AD et pour la rubrique ALLOCFAM

 

 

 

 

 

 

version 92

Version 6

Correctif ALLOCFAM.TXEMP

Avant

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (LISTEGEN(TX_ALLOCF;0001))

Après

si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (LISTEGEN(TX_ALLOCF;0001))

ALLOCFAMREDUIT

Avant

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)

Après

si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)

 

 

version 92

version 7

Correction pour le budget de merde

ALLOCFAM.TXEMP

Avant

si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (LISTEGEN(TX_ALLOCF;0001))

Après

si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026)
alors (
      LISTEGEN(TX_ALLOCF;0001)
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors (
            si (
               (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUAF]>0)
               et ([V_NEWAGCP.CUMSMICPRO3112]>0)
               )
               alors (0)
               sinon (LISTEGEN(TX_ALLOCF;0001))
            )
      sinon (LISTEGEN(TX_ALLOCF;0001))
      )

ALLOCFAMREDUIT

Avant

si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      si (
         ([V_NEWAGCP.CUMREMUAF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112])
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)

Après

si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026)
alors (
      0
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors (
            si (
               (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
               et ([V_NEWAGCP.CUMREMUAF]>0)
               et ([V_NEWAGCP.CUMSMICPRO3112]>0)
               )
               alors (0)
               sinon (LISTEGEN(TX_ALLOCF;0002))
            )
      sinon (0)
      )

BC_MALCOMP25

Avant

declarer (PASADREMU)
affecter (PASADREMU;[AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])
         )
si (
   (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
   ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026)
   )
alors (
      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)
           )
      )
sinon (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (:PASADREMU)
      sinon ([BC_BRUT_URSAFF.MONTANT])
      )

Après

declarer (REMU)
affecter (REMU;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
               alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
               sinon ([BC_BRUT_URSAFF.MONTANT])
         )
si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026)
alors (
      :remu
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors (
            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)
                  )
            )
      sinon (:remu)
      )

MALCOMP25.TXEMP

La passer en non modifiable

Dans le budget il faudra l'enlever et la remettre

Avant

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si ([MALCOMP25.BASE]>0)
      alors (6)
      sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
              alors (6)
              sinon (0)
            )
      )
sinon (6
      )

Après

si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026)
alors (
      6
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors (
            si ([MALCOMP25.BASE]>0)
            alors (6)
            sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
                    alors (6)
                    sinon (0)
                   )
            )
      sinon (6)
      )

 

 

 

version 92

Version 8

La fonction F_RGDU n'était  pas correcte : Annee mois pas bon

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO)

 

 

version 92

Version 9 : Complément maladie

BC_MALCOMP25 on est forcément après 2026

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      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)
            )
      )
sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
      sinon ([BC_BRUT_URSAFF.MONTANT])
      )

MALCOMP25.TXEMP

si ([MALCOMP25.BASE]>0)
alors (6)
sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29))
        alors (6)
        sinon (0)
      )

MALCOMP25NREG.TXEMP : On ne change pas

 

version 92

Version 10 Allocation familiale

ALLOCFAM.TXEMP

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
          )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (LISTEGEN(TX_ALLOCF;0001))

ALLOCFAMREDUIT.TXEMP

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)

 

version 92

Version 11 Code 146

Ajout de la rubrique itérative COT146 qui permet de lister les rubriques concernés par le code 146

Modification de F_RGDU

Prise en compte de la prime de partage de la valeur pour l'aide à domicile

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO;
    :PPV)
version 92

Version 12 Alloc fam Aide à domicile

Pour les heures non exonérées :

Pour cela, modification de la rubrique ALLOCFAMREDUIT.TXEMP

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (LISTEGEN(TX_ALLOCF;0002))
      sinon (0)
      )

D'autre part il faut modifier la base de cotisation pour le régime AD :

image-1765379727362.png

 

image-1765379815454.png

 

 

 

version 92

Version 13

Modification de REDUCPAT.TXEMP

Avant

si (CONSTANTE(GENERAL.MTREDUCHEURE)=0)
alors (
      si (CONSTANTE(GENERAL.NBSALARIE0101)<=19)
      alors (1.50)
      sinon (
            si (CONSTANTE(GENERAL.NBSALARIE0101)<=249)
            alors (0.50)
            sinon (0)
            )
      )
sinon (CONSTANTE(GENERAL.MTREDUCHEURE))

Après

si (CONSTANTE(GENERAL.MTREDUCHEURE)=0)
alors (
      si (CONSTANTE(GENERAL.NBSALARIE0101)<=19)
      alors (1.50)
      sinon (0.50)
      )
sinon (CONSTANTE(GENERAL.MTREDUCHEURE))

Modification de REDUCRTTPAT.TXEMP

Avant

si (CONSTANTE(GENERAL.MTREDUCHEURE)=0)
alors (
      si (CONSTANTE(GENERAL.NBSALARIE0101)<=19)
      alors (1.50)
      sinon (
            si (CONSTANTE(GENERAL.NBSALARIE0101)<=249)
               alors (0.50)
               sinon (0)
            )
      )
sinon (CONSTANTE(GENERAL.MTREDUCHEURE))

Après

si (CONSTANTE(GENERAL.MTREDUCHEURE)=0)
alors (
      si (CONSTANTE(GENERAL.NBSALARIE0101)<=19)
      alors (1.50)
      sinon (0.50)
      )
sinon (CONSTANTE(GENERAL.MTREDUCHEURE))

 

version 92

Version 14

Pour l'aide à domicile

BC_MALCOMP25 et la ZRR

Avant

declarer (REMU)
affecter (REMU;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
               alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]))
               sinon ([BC_BRUT_URSAFF.MONTANT])
         )
si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026)
alors (
      :remu
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors (
            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)
                  )
            )
      sinon (:remu)
      )

Après

declarer (MTAV2025)
affecter (MTAV2025;
         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)
               )
         )
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors ([BC_BRUT_ADNEXO.MONTANT])
sinon (
      si ([AGCPEXO.BASE]=1)
      alors (
            :MTAV2025
            )
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
            alors ( :MTAV2025)
            sinon ( [BC_BRUT_URSAFF.MONTANT])
            )
      )

 

ALLOCFAM.TXEMP

Avant

 

Après

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (LISTEGEN(TX_ALLOCF;0001))
               sinon (0)
         )
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (
      si ([AGCPEXO.BASE]=1)
      alors (
            :MTAV2025
            )
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
            alors ( :MTAV2025)
            sinon (LISTEGEN(TX_ALLOCF;0001))
            )
      )

 

ALLOCFAMREDUIT.TXEMP

Avant

si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
alors (
      si (
         (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
         et ([V_NEWAGCP.CUMREMUAF]>0)
         et ([V_NEWAGCP.CUMSMICPRO3112]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (0)

Après

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (0)
               sinon (LISTEGEN(TX_ALLOCF;0002))
         )
si ([AGCPEXO.BASE]=1)
alors (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (
            LISTEGEN(TX_ALLOCF;0002)
            )
      sinon (
            :MTAV2025
            )
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors ( :MTAV2025)
      sinon (0)
      )

 

 

version 92

Version 15 Correctif Fonction F66AF

Alerte Christophe

dans la fonction F_66AF il y a une connerie avec la prise en compte de 66_AFACCINTER.

ça remplace le calcul des part enfant alors que ça ne dois pas.

Avant

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]>=NUMERO))
alors (
      si (REMU=1)
      alors (
            si (CONV=1)
            alors (
            /* Rémunération conventionnelle*/
                   si ([66_AFACCINTER.MONTANT]=0)
                   alors (
                         si (NBJACCUEIL<16)
                         alors (NBJACCUEIL/26)
                         sinon (1)
                         *
                         si (NUMERO=1)
                         alors ( /* Enfant 1 */
                               (PROG+PRECPRO)
                               )
                         sinon (/* Enfants suivant */
                               (PROG-PRECPRO)
                               )
                         *[VP.VP]
                         *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
                         )
                   sinon (
                         NBJACCUEIL*5.06*CONSTANTE(GENERAL.SMICHOR)
                         )
                  )
            sinon (
            /*Rémunération légale*/
                  si ([66_AFACCINTER.MONTANT]=0)
                  alors (
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                               NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                        )
                  sinon (0)
                  )
            )
       sinon (
             si (CONV=1)
             /* Absence conventionnelle*/
             alors (
                   si ( (NBJACCUEIL<>0) et (NBJACCUEIL<CONSTANTE(GENERAL.NBJMOISPAYE))
                      et (NBJACCUEIL<16)
                      )
                   alors (
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8*70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                         )
                   sinon (0)
                   )
             sinon (
             /* Absence légale */
                    si (NUMERO=1)
                    alors ( /* Enfant 1 */
                          maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
                          /CONSTANTE(GENERAL.NBJMOISPAYE)
                          *0.8
                          *CONSTANTE(GENERAL.SMICMENS)
                          )
                     sinon (
                           maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                           /CONSTANTE(GENERAL.NBJMOISPAYE)
                           *0.8*70
                           *CONSTANTE(GENERAL.SMICHOR)
                           )
                   )
              )
       )
sinon (0)

 

Après

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]>=NUMERO))
alors (
      si (REMU=1)
      alors (
            si (CONV=1)
            alors (
            /* Rémunération conventionnelle*/
                         si (NBJACCUEIL<16)
                         alors (NBJACCUEIL/26)
                         sinon (1)
                         *
                         si (NUMERO=1)
                         alors ( /* Enfant 1 */
                               (PROG+PRECPRO)
                               )
                         sinon (/* Enfants suivant */
                               (PROG-PRECPRO)
                               )
                         *[VP.VP]
                         *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
                  )
            sinon (
            /*Rémunération légale*/
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                               NBJACCUEIL
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                  )
            )
       sinon (
             si (CONV=1)
             /* Absence conventionnelle*/
             alors (
                   si ( (NBJACCUEIL<>0) et (NBJACCUEIL<CONSTANTE(GENERAL.NBJMOISPAYE))
                      et (NBJACCUEIL<16)
                      )
                   alors (
                        si (NUMERO=1)
                        alors ( /* Enfant 1 */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8
                              *CONSTANTE(GENERAL.SMICMENS)
                              )
                        sinon ( /* Enfants suivant */
                              maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                              /CONSTANTE(GENERAL.NBJMOISPAYE)
                              *0.8*70
                              *CONSTANTE(GENERAL.SMICHOR)
                              )
                         )
                   sinon (0)
                   )
             sinon (
             /* Absence légale */
                    si (NUMERO=1)
                    alors ( /* Enfant 1 */
                          maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
                          /CONSTANTE(GENERAL.NBJMOISPAYE)
                          *0.8
                          *CONSTANTE(GENERAL.SMICMENS)
                          )
                     sinon (
                           maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
                           /CONSTANTE(GENERAL.NBJMOISPAYE)
                           *0.8*70
                           *CONSTANTE(GENERAL.SMICHOR)
                           )
                   )
              )
       )
sinon (0)

Version 93

Version 93

Version 1

Rétablir le calcul de PL_PLAFONDMENS

PLAFONDSECU.NUMCAS

Avant

si (CONSTANTE(CONTRAT.CLOTURE)=0)
alors (1)
sinon (
      si (
          (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=CONSTANTE(GENERAL.ANNEE_PAYE))
         )
      alors (1)
      sinon (2)
      )

Après

si (CONSTANTE(CONTRAT.CLOTURE)=0)
alors (1)
sinon (
      si (
          (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=CONSTANTE(GENERAL.ANNEE_PAYE))
         )
      alors (1)
      sinon (2)
      )
+ [PL_PLAFONDMENS.MONTANT]*0

Version 94

Mise en place des réductions ZRR sur le transport additionnel et le VMRR

Ajout des rubriques suivantes

Bases de cotisation

BC_REDZRRTRADD : Réduction ZRR transport additionnel

[V_ZRR.MTREDTRANSPADD]

BC_REDZRRVMRR : Réduction ZRR VMRR

[V_ZRR.MTREDVMRR]
Cotisations

REDZRRTRANSADD : Réduction ZRR sur cotisation transport additionnel

REDZRRVMRR : Réduction ZRR sur cotisation VMRR

Modification des rubriques suivantes

V_ZRR : Variables reduction ZRR

Ajout des formules suivantes :

MTREDTRANSPADD : Montant réduction transport additionnel

[V_ZRR.MTREDUCTION]*([TRANSPADD.TXEMP])
/[V_ZRR.SOMTXZRR]

MTREDVMRR : Montant réduction VMRR

[V_ZRR.MTREDUCTION]*([TRANSPVMRR.TXEMP])
/[V_ZRR.SOMTXZRR]

 

 

 

Version 95

Version 95

version 1

Modification des bases de cotisation des cotisations APEC

APEC_TRA

Base cotisation BC_TRA_RET_C - > BC_TR_A_URSAFF

APEC_TRB

Base cotisation BC_TRB_RET_C - > BC_TR_B_URSAFF

Création des rubriques APECITA

APECITA_TRA

APECITA_TRB

Version 95

Version 2

Modification de la fonction F_RGDU pour le calcul des assistantes familiales

Avant

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO;
    :PPV)

Après

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=3)
                               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
                               sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                              )
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO;
    :PPV)
Version 95

Version 3

Anomalie calcul allocation familiale pour ZRR

ALLOCFAM.TXEMP

Avant

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (LISTEGEN(TX_ALLOCF;0001))
               sinon (0)
         )
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (
      si ([AGCPEXO.BASE]=1)
      alors (
            :MTAV2025
            )
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
            alors ( :MTAV2025)
            sinon (LISTEGEN(TX_ALLOCF;0001))
            )
      )

Après

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (LISTEGEN(TX_ALLOCF;0001))
               sinon (0)
         )
si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (
      si ([AGCPEXO.BASE]=1)
      alors (
            :MTAV2025
            )
      sinon (
            si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
            alors ( :MTAV2025)
            sinon (LISTEGEN(TX_ALLOCF;0001))
            )
      )

ALLOCFAMREDUIT.TXEMP

Avant

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (0)
               sinon (LISTEGEN(TX_ALLOCF;0002))
         )
si ([AGCPEXO.BASE]=1)
alors (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (
            LISTEGEN(TX_ALLOCF;0002)
            )
      sinon (
            :MTAV2025
            )
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors ( :MTAV2025)
      sinon (0)
      )

Après

declarer (MTAV2025)
affecter (MTAV2025;
               si (
                  (([V_NEWAGCP.CUMREMUAF]) >  ([V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112]))
                   et ([V_NEWAGCP.CUMREMUAF]>0)
                   et ([V_NEWAGCP.CUMSMICPRO3112]>0)
                  )
               alors (0)
               sinon (LISTEGEN(TX_ALLOCF;0002))
         )
si ([AGCPEXO.BASE]=1)
alors (
      si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
      alors (
            LISTEGEN(TX_ALLOCF;0002)
            )
      sinon (
            :MTAV2025
            )
      )
sinon (
      si (([PLAFONDSECU.NUMCAS]=2) et  (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026))
      alors ( :MTAV2025)
      sinon (0)
      )

 

 

 

Version 96

Correction de la rubrique BC_BRUT_APP

si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
alors (
      MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])-[CONAIDE.SEUILAPPRENTI];0)
      +[BCOTASSREEL.MONTANT]*0
      )
sinon (0)

Version 97

Version 97

Version 1

Voir mail Florence

Florence ESTEVES: Réduction ZRR VMRR | PAYE > Général | Microsoft Teams

 

Modifier la rubrique AGCPEXO pour tester REDZRR

AGCPEXO

Avant

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5)
   ou ([REDZRRSECU.TXEMP]<>0))
alors (1)
sinon (0)

Après

si ((CONSTANTE(CONTRAT.TYPESALARIE)=5)
   ou ([REDZRRSECU.TXEMP]<>0)
   ou ([REDZRR.TXEMP]<>0)
   )
alors (1)
sinon (0)
Version 97

Version 2

Calcul de la rémunération ESAT un TH.

Modification dans le cas ou un TH a aussi un contrat CDI

CPLREMUESAT

Avant

si (CONSTANTE(CONTRAT.TYPESALARIE)=1)
alors ([BC_CPLDDTE.MONTANT])
sinon (0)

Après

si (CONSTANTE(CONTRAT.DSNNATURE)=70)
alors ([BC_CPLDDTE.MONTANT])
sinon (0)
Version 97

Version 3

Correctif Retraite progressive qui se déclenche quand forfait d'heure à 155h

PBR_CET1_RET

Avant

si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA])
 alors (
       F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]
       -F_HISTOCLOT([PBR_CET1_RET.MONTANT])
       )
 sinon (
       F_HISTOCLOT([PBR_CET1_RET.MONTANT])*(-1)
       )

Après

si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2)
alors (
      si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA])
      alors (
           F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]
           -F_HISTOCLOT([PBR_CET1_RET.MONTANT])
           )
       sinon (
             F_HISTOCLOT([PBR_CET1_RET.MONTANT])*(-1)
             )
      )
sinon (0)

PBR_CET2_RET

Avant

si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA])
 alors (
      F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]
      -F_HISTOCLOT([P_RETPROG.PLMENSA])-[P_RETPROG.PLMENSA]
      -F_HISTOCLOT([PBR_CET2_RET.MONTANT])
       )
 sinon (
       F_HISTOCLOT([PBR_CET2_RET.MONTANT])*(-1)
       )

Après

si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2)
alors (
      si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA])
      alors (
            F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]
            -F_HISTOCLOT([P_RETPROG.PLMENSA])-[P_RETPROG.PLMENSA]
            -F_HISTOCLOT([PBR_CET2_RET.MONTANT])
            )
       sinon (
             F_HISTOCLOT([PBR_CET2_RET.MONTANT])*(-1)
             )
       )
sinon (0)

PBR_TU2_RET

Avant

F_TRANCHEB([PBR_BRUT_RET.MONTANT];[PBR_TU1_RET.MONTANT]  ;[PBR_TU2_RET.MONTANT];[P_RETPROG.PLMENSB_3PSS])

Après

si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2)
alors (
      F_TRANCHEB([PBR_BRUT_RET.MONTANT];[PBR_TU1_RET.MONTANT]  ;[PBR_TU2_RET.MONTANT];[P_RETPROG.PLMENSB_3PSS])
      )
sinon (0)

 

 

 

Version 97

version 4

V_ZRR.MTREDSECU

Enlever la part mobilité

Avant

[V_ZRR.MTREDUCTION]-[V_ZRR.MTREDTRANSP]-[V_ZRR.MTREDFNAL]

Aprés

[V_ZRR.MTREDUCTION]
-[V_ZRR.MTREDTRANSP]
-[V_ZRR.MTREDTRANSPADD]
-[V_ZRR.MTREDVMRR]
-[V_ZRR.MTREDFNAL]

Version 98

Version 98

Aide au poste en dsn

Rubrique CPLREMUESAT

Avant

si (CONSTANTE(CONTRAT.DSNNATURE)=70)
alors ([BC_CPLDDTE.MONTANT])
sinon (0)

Après

si (CONSTANTE(CONTRAT.DSNNATURE)=70)
alors ([V_TH.MTCPLDDTE]+[V_TH.IJSSCPLDDTE])
sinon (0)

MAJBASE

Modifier le code 999 en code 997 pour les stagiaires

update rhcontrat set CTRDSNREGIMEVIEILLESSE='997'
where ctrdsnnature='29' and CTRDSNREGIMEVIEILLESSE='999'

version 2

Heures d'avenant

Ajouter une rubrique itérative afin de recenser les heures d'avenant

Elle sera utilisée pour compléter l'horaire contractuel

version 99

version 99

Version 1

VERIFIER QUE LES RUBRIQUES DE COTISATION SONT DANS LE GESTIONNAIRE DE REGIME

Modification des rubriques de la taxe d'apprentissage pour mettre en place la non exonération de cette cotisation

L’employeur est exonéré de taxe d’apprentissage pour un mois donné lorsque, le mois précédent (M-1), les deux conditions suivantes sont remplies :
  1. Emploi d’au moins un apprenti (contrat d’apprentissage en cours).
  1. Masse salariale du mois ≤ 6 × SMIC mensuel.
Exemple : si en mai vous avez au moins 1 apprenti et une masse salariale ≤ 6 SMIC, vous êtes exonéré de taxe d’apprentissage pour juin.

Rubrique TAP_TAXE et TAP_SOLDE

Les deux font référence à BC_BRUTURSSAF

Il faut créer une autre base de cotisation afin savoir s'il faut l'appliquer ou pas

BC_TAAXEAPP : Base taxe d'apprentissage

Il nous faut deux paramètres 

Le but est de récupérer ces valeurs à la génération DSN et de les stocker dans deux constantes générales afin de pouvoir les relire le mois suivant facilement

Nom des constantes

Et dans la rubrique BC_TAXEAPP lire l'historique de ces constantes 

Vérifier que les cotisations TAP_TAXE et TAP_SOLDE sont dans le gestionnaire de régime

Pour mars si la masse salariale est à zéro pas d'exo

BC_TAAXEAPP : Base taxe d'apprentissage

declarer (ASSIETTE)
affecter (ASSIETTE;
         si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0))
         alors (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         sinon (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         )
declarer (EXOTAP)
affecter (EXOTAP;
         si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0)
            et (:assiette<6*;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)))
         alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
                alors (0)
                sinon (1)
               )
         sinon (
               si (CONSTANTE(GENERAL.EXOTAXEAPP)=1)
               alors (1)
               sinon (0)
               )
         )
[BC_BRUT_URSAFF.MONTANT]*(1-:EXOTAP)

TAP_TAXE : Taxe d'apprentissage

Base de cotisation BC_TAXETAP

TAP_SOLDE

Base de cotisation BC_TAXETAP

Version 100

Version 100

Version 1

Pour les stagiaires, ils ne sont soumis à la taxe d'apprentissage que sur la part supérieure au seuil

BC_TAAXEAPP

Avant

declarer (ASSIETTE)
affecter (ASSIETTE;
         si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0))
         alors (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         sinon (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         )
declarer (EXOTAP)
affecter (EXOTAP;
         si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0)
            et (:assiette<6*CONSTANTE(GENERAL.SMICMENS)))
         alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
                alors (0)
                sinon (1)
               )
         sinon (
               si (CONSTANTE(GENERAL.EXOTAXEAPP)=1)
               alors (1)
               sinon (0)
               )
         )
[BC_BRUT_URSAFF.MONTANT]*(1-:EXOTAP)

Après

declarer (ASSIETTE)
affecter (ASSIETTE;
         si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0))
         alors (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         sinon (
               constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))
               )
         )
declarer (EXOTAP)
affecter (EXOTAP;
         si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0)
            et (:assiette<6*CONSTANTE(GENERAL.SMICMENS)))
         alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65))
                alors (0)
                sinon (1)
               )
         sinon (
               si (CONSTANTE(GENERAL.EXOTAXEAPP)=1)
               alors (1)
               sinon (0)
               )
         )

si (CONSTANTE(CONTRAT.DSNNATURE)=29)
alors ([BC_BRUT_STA.MONTANT])
sinon ([BC_BRUT_URSAFF.MONTANT])
*(1-:EXOTAP)

 

Version 100

Version 2

Cotisation association Mutualisation du Coût Inaptitude

https://sudaquitaine.msa.fr/lfp/indemnit%C3%A9s-de-licenciement-pour-inaptitude-fsia

Règles :

La cotisation est conditionnée à une ancienneté des salariés dans l'établissement: elle est appelée au 1er jour du mois au cours duquel l'ancienneté est acquise. Exemple: un salarié embauché le 15/01/2026 acquiert ses 6 mois d'ancienneté le 15/07/2026 et commence à cotiser à partir du 01/07/2026.

Ne relèvent pas de cet accord : CDI intérimaire, salarié apprenti, contrat de professionnalisation et mandataires sociaux.

Taux de 0.2%

Rubrique BC_BRUT_FSIA : Base de la cotisation

declarer(EMB6)
affecter(Emb6;
              si (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>6)
              alors ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)+1)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)-6)
              sinon (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)+6)
         )
si (ONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=:emb6)
alors ([BC_BRUT_URSAFF.MONTANT])
sinon (0)

Rubrique FSIA : Cotisation 

Version 101

Version 101

Version 1

Taxe d'apprentissage CDDI

Création de rubrique : BC_TAP_CDDI

SI(CONSTANTE(CONTRAT.DSNINTITULE)=71)
ALORS(
      MAXIMUM( 0 ;
               [BC_BRUT_URSAFF.MONTANT]
               -
                CONSTANTE(GENERAL.SMICMENS)*
                CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE)
                )
      )
SINON(0)

Contrat de valorisation de l'expérience

Création de rubrique : BC_MISE_RET_EX

SI(CONSTANTE(CONTRAT.DSNINTITULE)=83)
ALORS([CONTRIB_RET.MTEMP])
SINON(0)

Création de rubrique : CONTRIB_RET_EX

Base de cotisation : BC_MISE_RET_EX
TXEMP : -1

image-1780046989956.29.22.png

Lors de la saisie de la rubrique MISE_RETRAITE (Indemnité de mise à la retraite),
si le contrat est un CVE (DSNINTITULE 83),
alors l'exonération de cotisation se calcule automatiquement sous la forme d'une ligne de cotisation complémentaire qui annule la contribution patronale spécifique.

Congé supplémentaire de naissance

Création de rubrique : ABS_NP_CSN

Rubrique d'absence non payée.

image-1780047444233.37.05.png

 

 

 

 

 

Version 101

Version 2

Modifications de la version 1 auxquelles sont ajoutées les modifications suivantes.

Modification du calcul du différentiel SMIC

Objectif : Corriger les erreurs d'arrondi liées à l'utilisation de la valeur 151,67 pour le calcul du SMIC mensuel.

Ce correctif ne concerne que les salariés à temps plein.

CCN 51

Modification de la rubrique 51_DIFSMIC

Ancienne codification

SI([NUMCONV.NUMCONV] = 51)
alors (
si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
      alors (
      maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0)
            )
      sinon (
      maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-
          ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT])          ;0)
            )
      )
sinon (0)

Nouvelle codification

SI([NUMCONV.NUMCONV] = 51)
alors (
si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
      alors (
            si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
            alors ( maximum(CONSTANTE(GENERAL.SMICMENS)-[51_SALMINSMIC.MONTANT];0) )
            sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0) )
            )
      sinon (
            si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
            alors (maximum(CONSTANTE(GENERAL.SMICMENS)-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0))
            sinon( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0))
            )
      )
sinon (0)

CCN 66

Modification de la rubrique 66_DIF_SMIC

Ancienne codification

SI([NUMCONV.NUMCONV] = 66)
alors (
	si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT])
    alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT])
    sinon (0)
    )
sinon (0)

Nouvelle codification

SI([NUMCONV.NUMCONV] = 66)
alors (
	si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
	alors (
         si ( CONSTANTE(GENERAL.SMICMENS)>[66_SALMINCONV.MONTANT])
         alors (CONSTANTE(GENERAL.SMICMENS)-[66_SALMINCONV.MONTANT])
         sinon (0)
         )
	sinon (
         si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT])
         alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT])
         sinon (0)
         )
    )
sinon (0)

 

 

 

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

 

 

Version 102

Version 102

Version 1

Modification du différentiel SMIC

CCN 51

Modification de la rubrique 51_DIFSMIC

Ancienne codification

SI([NUMCONV.NUMCONV] = 51)
alors (
	si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
    alors (
            si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
            alors ( maximum(CONSTANTE(GENERAL.SMICMENS)-[51_SALMINSMIC.MONTANT];0) )
            sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0) )
            )
    sinon (
            si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
            alors (maximum(CONSTANTE(GENERAL.SMICMENS)-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0))
            sinon( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0))
            )
      )
sinon (0)

Nouvelle codification

SI([NUMCONV.NUMCONV] = 51)
alors (
	si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
    alors (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[51_SALMINSMIC.MONTANT];0)
            )
    sinon (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)
            )
      )
sinon (0)

CCN 66

Modification de la rubrique 66_DIFSMIC

Ancienne codification

SI([NUMCONV.NUMCONV] = 66)
alors (
si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 )
   alors (
         si ( CONSTANTE(GENERAL.SMICMENS)>[66_SALMINCONV.MONTANT])
         alors (CONSTANTE(GENERAL.SMICMENS)-[66_SALMINCONV.MONTANT])
         sinon (0)
         )
   sinon (
         si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT])
         alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT])
         sinon (0)
         )
    )
sinon (0)

Nouvelle codification

SI([NUMCONV.NUMCONV] = 66)
alors (
      si ( (CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))>[66_SALMINCONV.MONTANT])
      alors ((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[66_SALMINCONV.MONTANT])
      sinon (0)
      )
sinon (0)