Version 1
Modification retenue à la source
La retenue à la source et l'exo de csg-crds est appliqué si le salarié est résident étranger ET qu'il n'a pas de pas actif
Test sur constante contrat PAS_RESIDENTETRANGER = 1 et CONTRAT.PAS_ACTIF=0
BC_RET_SOURCE
Avant
declarer (BASE)
affecter (base;arrondir([NETIMP.MONTANT]*(100-LISTEGEN(RETSOURCE;5))/100))
declarer (PLAF1)
affecter (PLAF1;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;1)) sinon (LISTEGEN(RETSOURCE;3)*[RET_JRSTRAV.BASE])
)
declarer (PLAF2)
affecter (PLAF2;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;2)) sinon (LISTEGEN(RETSOURCE;4)*[RET_JRSTRAV.BASE])
)
si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
alors (
arrondir(
0.12
*
si (:BASE>:PLAF2)
alors (:PLAF2-:PLAF1)
sinon (
si (:BASE>:PLAF1)
alors (:BASE-:PLAF1)
sinon (0)
)
)
+
arrondir(
0.20
*
si (:BASE>:PLAF2)
alors (:BASE-:PLAF2)
sinon (0)
)
)
sinon (0)
Après
declarer (BASE)
affecter (base;arrondir([NETIMP.MONTANT]*(100-LISTEGEN(RETSOURCE;5))/100))
declarer (PLAF1)
affecter (PLAF1;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;1)) sinon (LISTEGEN(RETSOURCE;3)*[RET_JRSTRAV.BASE])
)
declarer (PLAF2)
affecter (PLAF2;si ([RET_JRSTRAV.BASE]=0)
alors (LISTEGEN(RETSOURCE;2)) sinon (LISTEGEN(RETSOURCE;4)*[RET_JRSTRAV.BASE])
)
si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0))
alors (
arrondir(
0.12
*
si (:BASE>:PLAF2)
alors (:PLAF2-:PLAF1)
sinon (
si (:BASE>:PLAF1)
alors (:BASE-:PLAF1)
sinon (0)
)
)
+
arrondir(
0.20
*
si (:BASE>:PLAF2)
alors (:BASE-:PLAF2)
sinon (0)
)
)
sinon (0)
BC_CSG
Avant
si (CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1)
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 (
[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)
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 (
[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]))
)
)
)