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)

 


Revision #10
Created 5 November 2025 15:20:26 by Valéry HUMEZ
Updated 3 February 2026 10:21:58 by Valéry HUMEZ