Version 3 Retenue à la source pour tenir compte des 8 euros 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) 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) 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]) ) declarer (MTRAS) affecter (MTRAS; 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) ) si(:MTRAS<8) alors(0) sinon(:MTRAS) CONAIDE.SEUILAPPRENTI Avant CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS)*0.79 Après CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS)* si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2025) alors (0.5) sinon (0.79) Pour la CSG, comment répartir la base abattue et la non abattue ? peut être faire comme pour les stagiaires, enlever le brut limité au seuil dans la rubrique B_COT_CSG_ABT