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)