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

 

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