Version 3 : RGDU : Allocation Familiale
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)
)
rgdu(TYPEMONTANT;
CONSTANTE(GENERAL.ANNEE_PAYE);
CONSTANTE(GENERAL.MOIS_PAYE);
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)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)