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