Modification du gestionnaire de rubriques Version 62 Version 6 Calcul de plafond PL_HRSDUREE : Durée en heures pour les temps partiels Correctif pour prendre en compte les forfaits jours Avant CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE] Après si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT) / CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) ) SINON( CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE] ) V_AGCP.HREMU Correctif pour l'horaire collectif des forfaits jours Remplacement de 218 par CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) Avant {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/218 * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) ) sinon ( Après {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) ) sinon ( Calcul AGCP et SMICPRORATE Remplacement de histocumulsitu par histo cumuljoint car le calcul annuel se fait désormais tout contrat confondu BC_MALCOMP25 : Assiette complément maladie si salaire>2.5 SMIC Avant si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) Après si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors ( histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumuljoint([BC_MALCOMP25.MONTANT]) ) sinon ( histocumuljoint([BC_MALCOMP25.MONTANT])*(-1) ) BC_REG_ALLOC Base régularisation alloc Avant si ( ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=0) ou ([V_AGCP.CUMSMICPRORATE]<=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 ( ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=0) ou ([V_AGCP.CUMSMICPRORATE]<=0) ) alors ( histocumuljoint([V_ALLOC.BASEALLOC])*(-1) -histocumuljoint([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumuljoint([V_ALLOC.BASEALLOCRED]) +histocumuljoint([BC_REG_ALLOCRE.MONTANT]) ) Correctif sur fonction F_AGCP Avant si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT]) alors (0) sinon ( si ((moisdebut=0) ou (moisfin=0)) alors (histocumulsitu(RUBACUMULER)) sinon ( histocumulsitu(RUBACUMULER; maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]); CONSTANTE(GENERAL.ANNEE_PAYE); (si (moisfin=0) alors (12) sinon (moisfin)); CONSTANTE(GENERAL.ANNEE_PAYE) ) ) ) Après si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT]) alors (0) sinon ( si ((moisdebut=0) ou (moisfin=0)) alors (histocumuljoint(RUBACUMULER)) sinon ( histocumuljoint(RUBACUMULER; maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]); CONSTANTE(GENERAL.ANNEE_PAYE); (si (moisfin=0) alors (12) sinon (moisfin)); CONSTANTE(GENERAL.ANNEE_PAYE) ) ) ) Assistantes familiales 66_AFDISPO : Indemnité de disponibilité A saisir en variable de payeIndemnité de disponibilité qui « ne peut être inférieureà 2.25 fois le montant du salaire minimum de croissance, sans pouvoir êtreinférieure à 90% de la rémunération prévue par le contrat de travail ».Pour chaque journée de disponibilité, une comparaison doit être effectuée entre le salairelégal (2.25 x Smic horaire) et contractuel (90% de la rémunération contractuelle). 66_AFPARTMIXTE : Part accueil mixte Correctif pour que la rubrique fonctionne même si pas d'enfant au contrat. Et comparatif entre le légal et le conventionnel Avant : si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) ) alors ( [66_AFJRSINTER.MONTANT]/26 *([66_AF_1ENF.RESULTAT]) *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ) sinon (0) Après si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) ) alors ( maximum( [66_AFJRSINTER.BASE]*5.06*CONSTANTE(GENERAL.SMICHOR) ; [66_AFJRSINTER.MONTANT]/26 *([66_AF_1ENF.RESULTAT]) *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ) ) sinon (0) 66_AFNBJINT : Nombre de jours d'accueil permanent intermittent Erreur sur la formule sur le nombre de jour d'accueil enfant 2 Avant si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) et ([66_AFACCINTER.MONTANT]=1)) alors ( [66_AFNBJENF1.MONTANT] + si ([66_AFNBENF.MONTANT]>=2) alors ( [66_AFNBJENF2.MONTANT]=0 ) sinon (0) + si ([66_AFNBENF.MONTANT]>=3) alors ( [66_AFNBJENF3.MONTANT] ) sinon (0) ) sinon (0) Après si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) et ([66_AFACCINTER.MONTANT]=1)) alors ( [66_AFNBJENF1.MONTANT] + si ([66_AFNBENF.MONTANT]>=2) alors ( [66_AFNBJENF2.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=3) alors ( [66_AFNBJENF3.MONTANT] ) sinon (0) ) sinon (0) 66_AFNBJABSCP : Nombre de jour absence convenance personnelle Création de la rubrique pour minorer l'accueil non réalisé 66_AFNBJABS1 Création de la rubrique pour minorer l'accueil non réalisé par enfant Comment faire lorsque le nombre d'enfant contractuel change en cours de mois ? Toujours laisser le nombre d'enfant contractuel le plus haut. Saisir le nombre de jour de chaque enfant Neutraliser l'indemnité d'accueil non réalisé par la saisie de la rubrique 66_AFNBJABS+Numéro de l'enfant Exemple 1 : Du 1er au 10 -> 2 enfants et du 11 au 30 -> 1 enfant Laisser 2 enfants au contrats Saisir le nombre de jour de l'enfant 1 : 30j jours (si pas de saisie il prend automatiquement 30 jours) Saisir le nombre de jour de l'enfant 2 : 10 jours. Saisir la rubrique nombre de jour d'absence enfant 2 pour neutraliser l'indemnité d'accueil : 20 jours Exemple 2 : Du 1er au 10 -> 1 enfant et du 11 au 30 -> 2 enfant Laisser 2 enfants au contrats Saisir le nombre de jour de l'enfant 1 : 30j jours (si pas de saisie il prend automatiquement 30 jours) Saisir le nombre de jour de l'enfant 2 : 20 jours. Saisir la rubrique nombre de jour d'absence enfant 2 pour neutraliser l'indemnité d'accueil : 10 jours Augmenter le nombre d'enfant Afin de simplifier la rubrique 66_AF, on va créer des fonctions qui donneront le résultat. Création d'une fonction : 66AF (REMU , CONV , NBJACCUEIL,NBJABSCP , PROG , PRECPROG,NUMERO) REMU : 1 si calcul de la rémunération 0 si calcul de l'absence CONV : 1 si calcul conventionnel, 0 si calcul légal NBJACCUEIL : Rubrique contenant le nombre de jour d'accueil de l'enfant NBJABSCP : Nombre de jour d'absence à déduire de l'accueil non réalisé PROG : Rubrique de progression de l'enfant pour le calcul de la rémunération conventionnelle PRECPROG : Rubrique de progression de l'enfant précédent pour le calcul de la rémunération conventionnelle NUMERO : Numéro de l'enfant (pour le test avec 66_AFNBENF nombre d'enfant contractuel) Passage à 5 enfants : Création des rubriques suivantes sur le même modèle que les autres : 66_AF_4ENF,66_AF_5ENF 66_AFPART4,66_AFPART5 Il n'y a pas d'indemnité pour accueil non réalisé pour les enfants 4 et 5 66_AFIACCNE : Indemnité compensatrice pour accueil non réalisé si ([66_AF.PRENDRELEG1]=1) alors ([66_AF.ABSLEG1]) sinon ([66_AF.ABSCONV1]) + si ( [66_AFNBENF.MONTANT]>1 ) alors ( si ([66_AF.PRENDRELEG2]=1) alors ([66_AF.ABSLEG2]) sinon ([66_AF.ABSCONV2]) ) sinon (0) + si ( [66_AFNBENF.MONTANT]>2 ) alors ( si ([66_AF.PRENDRELEG3]=1) alors ([66_AF.ABSLEG3]) sinon ([66_AF.ABSCONV3]) ) sinon (0) 66_AFBASE : Salaire de base si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) ) alors ( [66_AFPART1.MONTANT] +[66_AFPART2.MONTANT] +[66_AFPART3.MONTANT] +[66_AFPART4.MONTANT] +[66_AFPART5.MONTANT] +[66_AFPARTMIXTE.MONTANT] ) sinon (0) 66_AFNBJRPER : Nombre de jours d'accueil Permanent continu si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) et ([66_AFACCINTER.MONTANT]=0)) alors ( [66_AFNBJENF1.MONTANT] + si ([66_AFNBENF.MONTANT]>=2) alors ( [66_AFNBJENF2.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=3) alors ( [66_AFNBJENF3.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=4) alors ( [66_AFNBJENF4.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=5) alors ( [66_AFNBJENF5.MONTANT] ) sinon (0) ) sinon (0) 66_AFNBJINT : Nombre de jours d'accueil permanent intermittent si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) et ([66_AFACCINTER.MONTANT]=1)) alors ( [66_AFNBJENF1.MONTANT] + si ([66_AFNBENF.MONTANT]>=2) alors ( [66_AFNBJENF2.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=3) alors ( [66_AFNBJENF3.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=4) alors ( [66_AFNBJENF4.MONTANT] ) sinon (0) + si ([66_AFNBENF.MONTANT]>=5) alors ( [66_AFNBJENF5.MONTANT] ) sinon (0) ) sinon (0) Version 7 : AGCP Fonction F_AGCPSMICMENS : Recalcul du smic mensuel proraté d'un mois Paramètres : MDEBUT : Mois de début du cumul (dans le cas d'un apprenti) MACALCULER : Mois à calculer HREMU : Rubrique heures rémunérées HORBASE : Rubrique horaire de base si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER)) alors ( (histoactifjoint(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/ CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) *histoactifjoint(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/1607 ) sinon (0) Rubriques créées V_NEWAGCP : Rubrique libre nouveau calcul AGCP V_AD_AGCP : Rubrique libre nouveau calcul AGCP pour l'aide à domicile AD_HEXO : Heures aide à domicile exonérées AD_HNEXO : Heures non exonérées aide à domicile V_NEWAGCP : Rubrique libre nouveau calcul AGCP Liste des formules : REMUCOEF : Rémunération HREMU : Heure rémunérée HORBASE : Horaire de base SMICPRO : Smic proraté mensuel CUMREMUCOEF : Cumul rémunération CUMSMICPRO : Cumul Smic proraté mensuel total Si la constante SMICAGCP (recalcule smic chaque mois) est à oui, utilise TOTSMICPRO sinon comme avant TOTSMICPRO : Total Smic proraté. Recalcule tous les smic proratés de l'année si (CONSTANTE(GENERAL.SMICAGCP)=0) alors (0) sinon (si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) alors ( F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE]) ) sinon ( F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_AGCP.HREMU];[V_AGCP.HORBASE]) +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_AGCP.HREMU];[V_AGCP.HORBASE]) ) ) MAXCOEF : Coefficient maximum AGCP COEF : Coefficient Allègement général de cotisation TOTALAGCP : Total AGCP TOTAGCPURSSAF : Total AGCP part Urssaf TOTAGCPAA : Total AGCP part AA AGCPURSSAF : Montant AGCP Urssaf mensuel AGCPAA : Montant AGCP AA mensuel Les quatre dernières formules permettent de recalculer le total AGCP pour chaque part en fonction du paramètre T actuel. Ainsi, s'il était incorrect en début d'année, le fait de le changer calculera les bons montant AGCP. V_AD_AGCP : AGCP aide à domicile Liste des formules : ADREMU : Rémunération ADSMICPRO : Smic proraté mensuel ADCUMSMICPRO : Cumul Smic proraté mensuel total ADTOTSMICPRO : Total Smic proraté Aide à domicile ADCOEF : Coefficient aide à domicile ADTOTALAGCP : Total AGCP Aide à domicile ADTOTAGCPURSSAF : Total AGCP Urssaf aide à domicile ADTOTAGCPAA : Total AGCP AA Aide à domicile ADAGCPURSSAF : Montant AGCP Urssaf aide à domicile mensuel ADAGCPAA : Montant AGCP AA aide à domicile mensuel ADREMUCOEF : Rémunération utilisée ADCUMREMUCOEF : Cumul rémunération AD_HNEXO : Heures non exonérées aide à domicile Rubrique de paye des heures aide à domicile non exonérées. A saisir en variable de paye. AD_HEXO : Heures aide à domicile exonérées Rubrique de paye des heures exonérées aide à domicile. Cette rubrique est calculée en fonction des heures non exonérées saisies par la différence entre les heures contractuelles et les heures non exonérées saisies. Les heures supplémentaires qui sont saisies sont réparties au prorata des heures exonérées et non exonérées. CUMUL.COMPTEUR Rubrique toujours égale à 1 pour comptabiliser le nombre de contrat. Mise en place ATTENTION : Pour activer  SMICAGCP  il faut faire une modif d'historique de V_NEWAGCP.HREMUOK et l'initialiser à 1 si V_NEWAGCP.HREMU<>0 pour un calcul correct de TOTSMICPRO Modifier les salariés pour les mettre en type Travailleurs à domicile. update rhpersonne P set pertypesalarie=5 where exists (select * from rhcontrat C where (ctrempart=1003) and (ctrperid=P.perid)) Activer la constante NEWAGCP Activer la constante AGCP_AD pour les aides à domicile Activer la constante SMICAGCP  recalcul smic proraté Passer le gestionnaire de rubrique 62 Dans gestion des structures, ajouter le module AGCP aide à domicile Ajouter les cotisations AGCP aide à domicile : AGCPURSSAF_AD,AGCPURSSAFR_AD,AGCPRUAA_AD,AGCPRUAAREG_AD Enlever les cotisations AGCP aide à domicile utilisateur Ci dessous les modifications d'historique à mettre en place : AD_HEXO et AD_HNEXO à remplir par les rubriques utilisées précédemment. V_NEWAGCP.HREMU Reprendre AGCP.HREMU. V_NEWAGCP.REMUCOEF Reprendre AGCP.REMUCOEF. V_NEWAGCP.HORBASE si ([V_AGCP.HREMU]=0) alors (0) sinon ([V_AGCP.HORBASE]) V_NEWAGCP.HREMUOK si ([V_NEWAGCP.HREMU]=0) alors (0) sinon (1) V_AD_AGCP.HREMU Reprendre la rubrique utilisateur AD_AGCP.HREMU. V_AD_AGCP.REMUCOEF Reprendre la rubrique utilisateur AD_AGCP.REMUCOEF. V_AD_AGCP.HORBASE si ([_V_AD_AGCP.HREMU]=0) alors (0) sinon ([_V_AGCP_AD.HORBASE]) V_AD_AGCP.HREMUOK si ([_V_AGCP_AD.HREMU]=0) alors (0) sinon (1) BC_ADAGCPRUAA Reprendre la base de cotisation AGCP aide à domicile utilisateur BC_ADAGCPURSS Reprendre la base de cotisation AGCP aide à domicile utilisateur Version 8 Ajout TH_DIM : paiement des dimanches et fériés pour les THVersion 9 BC_MALCOMP25 Prise en compte de la constante générale FILLONCONTRAT Prise en compte de la nouvelle rubrique V_NEWAGCP Avant si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) Après si (CONSTANTE(GENERAL.FILLONCONTRAT)=1) alors ( si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si (CONSTANTE(GENERAL.NEWAGCP)= 0) alors ( si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors ( histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumuljoint([BC_MALCOMP25.MONTANT]) ) sinon ( histocumuljoint([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si ( (([V_NEWAGCP.CUMREMUCOEF]) > (2.5*[V_NEWAGCP.CUMSMICPRO])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRORATE]>0) ) alors ( histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumuljoint([BC_MALCOMP25.MONTANT]) ) sinon ( histocumuljoint([BC_MALCOMP25.MONTANT])*(-1) ) ) ) Allocation familiale Prise en compte de la nouvelle rubrique V_NEWAGCP ALLOCFAM.TAUX Avant si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) Après si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) ALLOCFAMREDUIT.TAUX Avant si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0)) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) Après si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) ALLOCFAMCOMP.TAUX Avant si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0)) alors (0)sinon (1.80) Après si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (1.80) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO]>0) ) alors (0) sinon (1.80) ) ALLOCFAMCOMPNEG.TAUX Avant si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0)) alors (0)sinon (-1.80) Après si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (-1.80) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO]>0) ) alors (0) sinon (-1.80) ) BC_REG_ALLOC Avant si (([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=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 (CONSTANTE(GENERAL.NEWAGCP)=1) alors ( si (CONSTANTE(GENERAL.FILLONCONTRAT)=1) alors ( si ( ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO])) ou ([V_NEWAGCP.CUMREMUCOEF]<=0) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO])) ou ([V_NEWAGCP.CUMREMUCOEF]<=0) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors ( histocumuljoint([V_ALLOC.BASEALLOC])*(-1) -histocumuljoint([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumuljoint([V_ALLOC.BASEALLOCRED]) +histocumuljoint([BC_REG_ALLOCRE.MONTANT]) ) ) ) sinon ( si (CONSTANTE(GENERAL.FILLONCONTRAT)=1) alors ( si ( ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=0) ou ([V_AGCP.CUMSMICPRORATE]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) ) sinon ( si ( ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=0) ou ([V_AGCP.CUMSMICPRORATE]<=0) ) alors ( histocumuljoint([V_ALLOC.BASEALLOC])*(-1) -histocumuljoint([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumuljoint([V_ALLOC.BASEALLOCRED]) +histocumuljoint([BC_REG_ALLOCRE.MONTANT]) ) ) ) Version 10 Je supprime la constante FILLONCONTRAT et modifie toutes les formules y faisant référence Version 11 Modification de I_ICP La formule ne prenait pas en compte l'histo du contrat en changement de situation dans le mois de paye en cours Avant DECLARER(MEMB) AFFECTER(MEMB;CONSTANTE(CONTRAT.MOIS_EMBAUCHE)) DECLARER(AEMB) AFFECTER(AEMB;CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)) DECLARER(MPAYE) AFFECTER(MPAYE;CONSTANTE(GENERAL.MOIS_PAYE)) DECLARER(APAYE) AFFECTER(APAYE;CONSTANTE(GENERAL.ANNEE_PAYE)) SI( CONSTANTE(CONTRAT.PAIEMENTCP)= (0)) ALORS(0) SINON( SI( CONSTANTE(CONTRAT.PAIEMENTCP)=2) ALORS( HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE)) SINON( SI( CONSTANTE(CONTRAT.CLOTURE)=1) ALORS( HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+ ([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE)) SINON(0))) Après SI( CONSTANTE(CONTRAT.PAIEMENTCP)= (0)) ALORS(0) SINON( SI( CONSTANTE(CONTRAT.PAIEMENTCP)=2) ALORS( HISTOCumulsitu([B_ICP.MONTANT];1,1980)+([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];1,1980)) SINON( SI( CONSTANTE(CONTRAT.CLOTURE)=1) ALORS( HISTOCumulsitu([B_ICP.MONTANT];1,1980)+ ([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];1,1980)) SINON(0)))Version 63 Version 1 Correctif I_ICP Erreur sur les mots clés histocumulsitu, il y avait une virgule à la place du point virgule SI( CONSTANTE(CONTRAT.PAIEMENTCP)= (0)) ALORS(0) SINON( SI( CONSTANTE(CONTRAT.PAIEMENTCP)=2) ALORS( HISTOCumulsitu([B_ICP.MONTANT];1;1980)+([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];1;1980)) SINON( SI( CONSTANTE(CONTRAT.CLOTURE)=1) ALORS( HISTOCumulsitu([B_ICP.MONTANT];1;1980)+ ([B_ICP.MONTANT])- HISTOCumulsitu([I_ICP.BASE];1;1980)) SINON(0))) V_NEWAGCP Ajout de la formule CUMHREMU : Cumul des heures rémunérées [V_NEWAGCP.HREMU] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT]) ) Ajout de la formule MTAGCPMENS : Montant AGCP mensuel [V_NEWAGCP.AGCPURSSAF]+[V_NEWAGCP.AGCPAA] V_AD_AGCP Ajout de la formule CUMHREMU : Cumul des heures rémunérées [V_AD_AGCP.HREMU] + F_AGCP([V_AD_AGCP.HREMU];[AGCPDEBUT.MONTANT]) Ajout de la formule MTAGCPMENS : Montant AGCP mensuel [V_AD_AGCP.ADAGCPURSSAF]+[V_AD_AGCP.ADAGCPAA] PAS_VARIABLES.NONIMPO Cette rubrique n'est que pour les apprentis et stagiaires Avant si ([PAS_VARIABLES.APPRENTISTAG]=1) alors ( [PAS_VARIABLES.NETFISCAL]-[PAS_VARIABLES.BASEPAS] ) sinon (0) + [PAS_VARIABLES.NONIMP_IJMAL] +(0.5*[PAS_VARIABLES.IMP_IJAT]) Après si ([PAS_VARIABLES.APPRENTISTAG]=1) alors ( [PAS_VARIABLES.NETFISCAL]-[PAS_VARIABLES.BASEPAS] ) sinon (0)Version 2 Correction de la fonction F_AGCPSMICMENS Avant si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER)) alors ( si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE)) alors ( ( HREMU / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS) ) * HORBASE/1607 ) sinon ( ( histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) * histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) / (1607 * si (OKREMUH=-1) alors (1) sinon ( histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) ) sinon (0) Après si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER)) alors ( si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE)) alors ( ( HREMU / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS) ) * HORBASE/1607 ) sinon ( declarer(MT) Affecter(MT; ( histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) * histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) :MT / (1607 * si (OKREMUH=-1) alors (1) sinon ( histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) ) sinon (0) Version 3 Ajout de formule dans V_NEWAGCP HSUP : Heures supplémentaires si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) CUMHSUP [V_NEWAGCP.HSUP] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) Ajout de formule dans V_AGCPAD HSUP si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) CUMHSUP [V_AD_AGCP.HSUP] + si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) alors ( F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([V_AD_AGCP.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) Suppression de la formule CUMAGCP dans V_NEWAGCP et V_AD_AGCP Version 4 Correctif de la fonction 66_AF Dans la rémunération légale pour les enfants suivants, faisait référence à la rubrique  nombre de jours de l'enfant 2 /*Rémunération légale*/si ([66_AFACCINTER.MONTANT]=0)alors (si (NUMERO=1)alors ( /* Enfant 1 */NBJACCUEIL/CONSTANTE(GENERAL.NBJMOISPAYE)*CONSTANTE(GENERAL.SMICMENS))sinon ( /* Enfants suivant */NBJACCUEIL/CONSTANTE(GENERAL.NBJMOISPAYE)*70*CONSTANTE(GENERAL.SMICHOR)))sinon (0)) si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]>=NUMERO)) alors ( si (REMU=1) alors ( si (CONV=1) alors ( /* Rémunération conventionnelle*/ si ([66_AFACCINTER.MONTANT]=0) alors ( si (NBJACCUEIL<16) alors (NBJACCUEIL/26) sinon (1) * si (NUMERO=1) alors ( /* Enfant 1 */ (PROG+PRECPRO) ) sinon (/* Enfants suivant */ (PROG-PRECPRO) ) *[VP.VP] *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ) sinon ( NBJACCUEIL*5.06*CONSTANTE(GENERAL.SMICHOR) ) ) sinon ( /*Rémunération légale*/ si ([66_AFACCINTER.MONTANT]=0) alors ( si (NUMERO=1) alors ( /* Enfant 1 */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS) ) sinon ( /* Enfants suivant */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *70 *CONSTANTE(GENERAL.SMICHOR) ) ) sinon (0) ) ) sinon ( si (CONV=1) /* Absence conventionnelle*/ alors ( si ( (NBJACCUEIL<>0) et (NBJACCUEIL=MACALCULER) et (MDEBUT<=MACALCULER)) alors ( si (MACALCULER=CONSTANTE(GENERAL.MOIS_PAYE)) alors ( ( (HREMU+histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(GENERAL.SMICMENS) ) * HORBASE/1607 ) sinon ( declarer(MT) Affecter(MT; ( histocumulsitu(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) * histocumulsitu(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) :MT / (1607 * si (OKREMUH=-1) alors (1) sinon ( histocumulsitu(OKREMUH;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE);MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) ) sinon (0) Ajout d'une rubrique rappel de gratification, afin que cela n'influe pas sur le seuil REG_GRATI_STAG Ajouté dans le brut et retiré de B_COT_ASS Uniquement en régularisation https://eigteam.atlassian.net/browse/DELPHI-384?filter=10063&jql=project%20%3D%20DELPHI%20AND%20issuetype%20in%20(standardIssueTypes()%2C%20Epic%2C%20T%C3%A2che)%20AND%20status%20in%20(%22In%20Progress%22%2C%20%22To%20Do%22)%20AND%20assignee%20in%20(6183b9a916119e0069aee406%2C%20EMPTY%2C%205ffef9ea9edf280075d8cad5%2C%20currentUser()%2C%206058b582630024006fa638cd)%20AND%20reporter%20in%20(6183b9a916119e0069aee406%2C%205ffef9ea9edf280075d8cad5%2C%206058b582630024006fa638cd)%20ORDER%20BY%20priority%20DESC%2C%20created%20DESC Création de BCOTASSREEL Il s'agit de calculer la base de cotisation réellement utilisée. Car B_COT_ASS est toujours calculée hors il n'y a pas de cotisation assedic pour les stagiaires. Cette rubrique est calculée lorsque BC_BRUT_ASS est calculée, donc quand il y a cotisation assedic.Utilisée à partir de 2024 BC_BRUT_ASS si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024) alors ( si ([EXOCHOMAGE.BASE]=1) alors(0) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) sinon ( si ([EXOCHOMAGE.BASE]=1) alors(0) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([BCOTASSREEL.MONTANT]) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_BRUT_ASS.MONTANT]) -histocumuljoint([BC_BRUT_ASS_EX.MONTANT]) -histocumuljoint([BC_BRUT_APP_PL.MONTANT]) -histocumuljoint([BC_BRUT_APP.MONTANT]) ) ) BC_FNGS si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024) alors ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_FNGS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) ) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([BCOTASSREEL.MONTANT]) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_BRUT_ASS.MONTANT]) -histocumuljoint([BC_BRUT_ASS_EX.MONTANT]) -histocumuljoint([BC_BRUT_APP_PL.MONTANT]) -histocumuljoint([BC_BRUT_APP.MONTANT]) ) BC_BRUT_APP MAXIMUM([BRUT.MONTANT]-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 BC_BRUT_APP_PL si ([BRUT.MONTANT]>0) alors (PLAFONNER([BRUT.MONTANT];0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER([BRUT.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 Désactivation des rubriques inutilisées : BC_BRUT_ASS3MU BC_BRUT_ASS65 BC_BRUT_ASS_EX ASSEDIC65 ASSEDICPP ASSEDIC_TRA ASSEDIC_TRB BC_TR_A_ASS BC_TR_B_ASS Version 6 Correctif sur BC_FNGSversion en attente 2024 Ajouter la rubrique CET tranche 2 Apprenti Régler la problématique du passage apprenti vers général qui déclenche une régul de retraite à cause la rubrique BRUT_RET qui est calculée à cause de la cotisation CET apprenti Le pb aussi de la cotisation assedic : Le mois de changement ne suffit pas car on peut avoir un chgt de situation en cours de mois. La solution est de créer une rubrique qui stocke le B_COT_ASS vraiment utilisé : Une rubrique libre contenant des formules à 1 ou zéro qui permet de savoir si c'est utilisé ou pas. Ou plutôt une rubrique libre contenant des formules : Le b_cotass utilisé, le b_brut retraite, etc Création de BC_TU1_APP MAXIMUM([PL_MENSA.MONTANT]-[CONAIDE.SEUILAPPRENTI];0) BC_TU1_APP_PL si ([PL_MENSA.MONTANT]>0) alors (PLAFONNER([PL_MENSA.MONTANT];0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER([PL_MENSA.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) BC_TU2_APP si (([BRUT.MONTANT]<[PL_MENSA.MONTANT]) ou ([BRUT.MONTANT]<[CONAIDE.SEUILAPPRENTI])) alors ( 0 ) sinon ( [BRUT.MONTANT]-maximum([PL_MENSA.MONTANT];[CONAIDE.SEUILAPPRENTI]) ) BC_TU2_APP_PL si ([BRUT.MONTANT]<[PL_MENSA.MONTANT]) alors ( 0 ) sinon ( si ( [BRUT.MONTANT]<[CONAIDE.SEUILAPPRENTI]) alors ([BRUT.MONTANT]-[PL_MENSA.MONTANT]) sinon (maximum(0;[CONAIDE.SEUILAPPRENTI]-[PL_MENSA.MONTANT])) ) RETAPP_COMTU2T : Retraite tranche 2 apprenti non exo https://eigteam.atlassian.net/browse/DELPHI-279 Simulation des bases plafonnées-déplafonnées code 02-03 pour les fonctionnaires détachés Ajout de deux rubriques de cotisation pour simuler l'assiette plafonnée et déplafonnée. Il s'agit de corriger la situation où l'assiette plafonnée et déplafonnée n'est pas calculée car pas de cotisation dessus. Quels sont ces cas ? Le cas se produit lorsqu'il n'y a pas de cotisation Tranche A : Ex fonctionnaire détaché On peut avoir le cas peut être avec les stagiaires ? Je pense que l'assiette déplafonnée doit toujours être renseignée, même s'il n'y a pas de cotisation tranche A En standby pour le moment Après ajout de la constante CTRANC. Permet dans le cas d'un contrat antérieur se finissant dans le mois M-1 de prorater en fonction du nombre de jour du mois M-1 Rubrique PLAFONDS_A Rubrique NEW_PLA_MOIS declarer (nbjmois) affecter (nbjmois;CONSTANTE(CONTRAT.CTRANT)*CONSTANTE(GENERAL.NBJMOISPAYE_1) +(1-CONSTANTE(CONTRAT.CTRANT))*CONSTANTE(GENERAL.NBJMOISPAYE)) minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS) * ( si ([PL_PROTPSPAR.MONTANT]=0) alors (1) sinon ( si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4) alors ( CONSTANTE(CONTRAT.TAUXPLAFOND)/100 ) sinon ( ([PL_HRSDUREE.MONTANT]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) ) ) ) *( minimum(maximum(0;[PLAFONDS_A.JRS_TOTAL]-CONSTANTE(CONTRAT.JOURSANTCIV));:nbjmois) /:nbjmois ) Rubrique PLA_OC declarer (nbjmois) affecter (nbjmois;CONSTANTE(CONTRAT.CTRANT)*CONSTANTE(GENERAL.NBJMOISPAYE_1) +(1-CONSTANTE(CONTRAT.CTRANT))*CONSTANTE(GENERAL.NBJMOISPAYE)) minimum(CONSTANTE(GENERAL.PLFSECUMOIS); minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS) * ( si ([PL_PROTPSPAR.MONTANT]=0) alors (1) sinon ( si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4) alors ( CONSTANTE(CONTRAT.TAUXPLAFOND)/100 ) sinon ( ([PL_HRSDUREE.MONTANT]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) ) ) ) *( minimum(maximum(0;[PL_JRSEMPLOI.MONTANT]-CONSTANTE(CONTRAT.JRSABSNONREMOC));:nbjmois) /:nbjmois ) +[PLAFONDS_A.PLA_MOISANT] ) +[PL_OC.MONTANT] Ajout des rubriques du PERECO Version 65 V1 : Nouveau plafond sécu V2 Régul agcp année précédente Création des rubriques de régularisation AGCP AD année précédente AGCPURS_AD_1 AGCPURFR_AD_1 AGCPRUAA_AD_1 Neutralisation des bases AGCP quand utilisation des rubriques AGCP année précédente : BC_ADAGCPRUAA 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(GENERAL.NEWAGCP)= 1) alors ([V_AD_AGCP.ADAGCPAA]) sinon (0) ) sinon (0)Version 66 A ajouter Apprentis Ajouter deux rubriques pour avoir au final cela : Une CET tranche 1 exonérée Une CET Tranche 1 non exo Une CET Tranche 2 exo Une CET tranche 2 non Exo Ticket Jira : Par changement programme PLAFONDSECU.NBJMOISPAYE Prend le nombre de jour du mois de paye de la clôture su si (CONSTANTE(CONTRAT.CLOTURE)=0) alors (CONSTANTE(GENERAL.NBJMOISPAYE)) sinon (CONSTANTEHIS(GENERAL.NBJMOISPAYE;CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) Version 1 Changement par programme BC_CSG Avant si ((CONSTANTE(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)) 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(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(GENERAL.NEWCSG)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)) 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(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])) ) ) BC_FNGS Avant si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024) alors ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) ) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (F_HISTOCLOT([BCOTASSREEL.MONTANT]) +[B_COT_ASS.MONTANT] ) ; (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -F_HISTOCLOT([BC_BRUT_ASS.MONTANT]) -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP.MONTANT]) ) Après [BCOTASSREEL.MONTANT]*0 + minimum( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors (F_HISTOCLOT([B_COT_ASS.MONTANT])) sinon (F_HISTOCLOT([BCOTASSREEL.MONTANT])) +[B_COT_ASS.MONTANT] ; (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -F_HISTOCLOT([BC_BRUT_ASS.MONTANT]) -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP.MONTANT]) BC_BRUT_ASS Avant si (CONSTANTE(GENERAL.ANNEE_PAYE)<2024) alors ( si ([EXOCHOMAGE.BASE]=1) alors(0) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (histocumuljoint([B_COT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[B_COT_ASS.MONTANT] ) ; (histocumuljoint([PL_MENSB_4PSS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) +[PL_MENSB_4PSS.MONTANT]) ) -histocumuljoint([BC_BRUT_ASS.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) -histocumuljoint([BC_BRUT_ASS_EX.MONTANT];[CHGT_APP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) sinon ( si ([EXOCHOMAGE.BASE]=1) alors(0) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( (F_HISTOCLOT([BCOTASSREEL.MONTANT]) +[B_COT_ASS.MONTANT] ) ; (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -F_HISTOCLOT([BC_BRUT_ASS.MONTANT]) -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP.MONTANT]) ) ) Après si ([EXOCHOMAGE.BASE]=1) alors(0) sinon ( [BCOTASSREEL.MONTANT]*0 + minimum( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors (F_HISTOCLOT([B_COT_ASS.MONTANT])) sinon (F_HISTOCLOT([BCOTASSREEL.MONTANT])) +[B_COT_ASS.MONTANT] ; (F_HISTOCLOT([PL_MENSB_4PSS.MONTANT]) +[PL_MENSB_4PSS.MONTANT]) ) -F_HISTOCLOT([BC_BRUT_ASS.MONTANT]) -F_HISTOCLOT([BC_BRUT_ASS_EX.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP_PL.MONTANT]) -F_HISTOCLOT([BC_BRUT_APP.MONTANT]) ) CUMUL.CUMBRUTSECU Avant si (CONSTANTE(CONTRAT.DSNNATURE)=29) alors (histocumulJOINT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT]) sinon (histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]) Après si (CONSTANTE(CONTRAT.DSNNATURE)=29) alors (F_HISTOCLOT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT]) sinon (F_HISTOCLOT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]) V_NEWAGCP Afin de permettre la transition avec la formule de l'année précédente CUMREMUCOEF Avant [V_NEWAGCP.REMUCOEF] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) CUMREMUCOEF Après [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) CUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) CUMSMICPRO Après si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) MAXCOEF Avant si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) MAXCOEF Après si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) TOTAGCPURSSAF Avant [V_NEWAGCP.TOTALAGCP] *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) TOTAGCPURSSAF Après si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.TOTALAGCP] *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) ) sinon ( [V_NEWAGCP.TOTALAGCP] *( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) /( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) ) AGCPURSSAF Avant [V_NEWAGCP.TOTAGCPURSSAF] - F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) AGCPURSSAF Après si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPURSSAF] - F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) ) AGCPAA Avant [V_NEWAGCP.TOTAGCPAA] - F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) AGCPAA Après si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPAA] - F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) ) CUMHREMU Avant [V_NEWAGCP.HREMU] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT]) ) CUMHREMU Après [V_NEWAGCP.HREMU] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT]) ) CUMHSUP Avant [V_NEWAGCP.HSUP] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) CUMHSUP Après [V_NEWAGCP.HSUP] + si ( ([PLAFONDSECU.NUMCAS]=1) et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) CUMSMICPRO3112 Avant [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) CUMSMICPRO3112 Après si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.CUMSMICPRO] ) Changement par gestionnaire 66 I_FINCDD Modification faite à Nice quand changement de situation sur le mois de paye en cours Avant SI( CONSTANTE(CONTRAT.PRIMEPRECARITE)=0) ALORS(0) SINON( SI( CONSTANTE(CONTRAT.PRIMEPRECARITE)=2) ALORS( si (CONSTANTE(GENERAL.DECENTFEHAP)=1) alors ([V_PRECARITE.MTPRECA]) sinon( HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980)+ ([B_FINCDD.MONTANT])- HISTOCUMULSITU([I_FINCDD.BASE];1;1980) ) ) SINON( SI (CONSTANTE(CONTRAT.CLOTURE)=1) ALORS ( si (CONSTANTE(GENERAL.DECENTFEHAP)=1) alors ([V_PRECARITE.MTPRECA]) sinon( HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980)+ ([B_FINCDD.MONTANT])- HISTOCUMULSITU([I_FINCDD.BASE];1;1980) ) ) SINON (0) ) ) Après SI( CONSTANTE(CONTRAT.PRIMEPRECARITE)=0) ALORS(0) SINON( SI( CONSTANTE(CONTRAT.PRIMEPRECARITE)=2) ALORS( si (CONSTANTE(GENERAL.DECENTFEHAP)=1) alors ([V_PRECARITE.MTPRECA]) sinon( HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))+ ([B_FINCDD.MONTANT])- HISTOCUMULSITU([I_FINCDD.BASE];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) SINON( SI (CONSTANTE(CONTRAT.CLOTURE)=1) ALORS ( si (CONSTANTE(GENERAL.DECENTFEHAP)=1) alors ([V_PRECARITE.MTPRECA]) sinon( HISTOCUMULSITU([B_FINCDD.MONTANT];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE))+ ([B_FINCDD.MONTANT])- HISTOCUMULSITU([I_FINCDD.BASE];1;1980;CONSTANTE(GENERAL.MOIS_PAYE);CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) SINON (0) ) ) Fonction F_TAXE3 Modifier la fonction F_TAXE3 pour enlever la constante TAXE4 Avant MAXIMUM( MINIMUM( CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL4)/12 ;histocumulJOINT(BRUT)+BRUT ) - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12) ;0) - histocumulJOINT(TAXE3) Après MAXIMUM( histocumulJOINT(BRUT)+BRUT - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12)) ;0) - histocumulJOINT(TAXE3) Rubrique V_TH Modifier les formules ABSSALDIR et ABSCPLDDTE pour ajouter H_NONTRAV ABSSALDIR ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]+[JRSNONTRAV.MONTANT]+[H_NONTRAV.MONTANT]) * PRORATASALDIR() ABSCPLDDTE ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]+[JRSNONTRAV.MONTANT]+[H_NONTRAV.MONTANT]) * PRORATACPDDTE() V_NEWAGCP Ajouter une formule pour calculer le coefficient Régime à utiliser. En effet, dans le cas ou le Fnal est différent entre l'établissement MSA et l'établissement Urssaff, le coefficient à utiliser est également différent. C'était le cas pour la formule MAXCOEF mais pas pour la formule TOTAGCPURSSAF COEFREGIME : Nouvelle formule si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) Modifier les formules suivantes : MAXCOEF Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) Après si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.COEFREGIME] +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) ) sinon ( [V_NEWAGCP.COEFREGIME] +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) TOTAGCPURSSAF Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.TOTALAGCP] *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) ) sinon ( [V_NEWAGCP.TOTALAGCP] *( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) /( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) ) Après si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.TOTALAGCP] *( [V_NEWAGCP.COEFREGIME]+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /( [V_NEWAGCP.COEFREGIME]+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) ) sinon ( [V_NEWAGCP.TOTALAGCP] *( [V_NEWAGCP.COEFREGIME] +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) /( [V_NEWAGCP.COEFREGIME] +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) ) V_NEWAGCP CUMREMUCOEF Avant [V_NEWAGCP.REMUCOEF] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) Apres [V_NEWAGCP.REMUCOEF] + si ( ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) et ([PLAFONDSECU.NUMCAS]=1) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) CUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Apres si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) et ([PLAFONDSECU.NUMCAS]=1) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) MAXCOEF Avant si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) Apres si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) +CONSTANTE(GENERAL.COEFAGRETRAITE) +CONSTANTE(GENERAL.COEFAGCHOMAGE) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) AGCPURSSAF Avant [V_NEWAGCP.TOTALAGCP] *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) Aprés si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.TOTALAGCP] *(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)+CONSTANTE(GENERAL.COEFAGCHOMAGE)) ) sinon ( [V_NEWAGCP.TOTALAGCP] *( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) /( CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) ) AGCPURSSAF Avant [V_NEWAGCP.TOTAGCPURSSAF] - F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) Apres si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPURSSAF] - F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) ) AGCPAA Avant [V_NEWAGCP.TOTAGCPAA] - F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) Apres si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPAA] - F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) ) CUMHREMU Avant [V_NEWAGCP.HREMU] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT]) ) Apres [V_NEWAGCP.HREMU] + si ( ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) et ([PLAFONDSECU.NUMCAS]=1) ) alors ( F_AGCP([V_NEWAGCP.HREMU];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.HREMU];[AGCPDEBUT.MONTANT]) ) CUMHSUP Avant [V_NEWAGCP.HSUP] + si ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) Apres [V_NEWAGCP.HSUP] + si ( ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) et ([PLAFONDSECU.NUMCAS]=1) ) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) CUMSMICPRO3112 Avant [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) Apres si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.CUMSMICPRO] ) Version 67 Version 1 V_NEWAGCP.HREMU Prendre en compte l'entrée sortie en cas de forfait jour Faire le ménage des situations horaires Avant si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE] Après si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) * si ([JRSNONTRAV.BASE]<>0) alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30) sinon(1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE] V_PLAFPREV Vérifier que le nombre est bien dans la formule !!! Nombre de plafond prévoyance à appliquer NB_TRB_C -> 3 NB_TRC_C -> 4 NB_TRB_NC -> 2 NB_TRC_NC -> 4 Modification des rubriques base de cotisation prévoyance : BC_TR_B_PREV_C BC_TR_C_PREV_C BC_TR_B_PREV_NC BC_TR_C_PREV_NC MALADIE_AM Cotisation majoration maladie Alsace Moselle taux 1.30% PREV_TH Prévoyance TH, base de cotisation BC_BRUT_PREV_NC FORMATION_TH Formation professionnelle continue travailleurs handicapé Version 2 APPRENTI.ABTBRANCHE Modification pour prendre en compte les nouveaux pourcentages dans l'accord de branche : Pas d'ancienneté avant 18 ans : on passe de 30 à 35% Ancienneté>1 avant 18 ans : on passe de 0 à 55% Après 25 ans : Toujours 100% Avant selon ( cas ([APPRENTI.AGES] = 1) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (30) cas ([APPRENTI.ANC] = 2) alors (45) cas ([APPRENTI.ANC] = 3) alors (0) ) ) cas ([APPRENTI.AGES] = 2) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (50) cas ([APPRENTI.ANC] = 2) alors (60) cas ([APPRENTI.ANC] = 3) alors (70) ) ) cas ([APPRENTI.AGES] >= 3) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (65) cas ([APPRENTI.ANC] = 2) alors (75) cas ([APPRENTI.ANC] = 3) alors (85) ) ) ) Après selon ( cas ([APPRENTI.AGES] = 1) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (35) cas ([APPRENTI.ANC] = 2) alors (45) cas ([APPRENTI.ANC] = 3) alors (55) ) ) cas ([APPRENTI.AGES] = 2) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (50) cas ([APPRENTI.ANC] = 2) alors (60) cas ([APPRENTI.ANC] = 3) alors (70) ) ) cas ([APPRENTI.AGES] = 3) alors ( selon ( cas ([APPRENTI.ANC] = 1) alors (65) cas ([APPRENTI.ANC] = 2) alors (75) cas ([APPRENTI.ANC] = 3) alors (85) ) ) cas ([APPRENTI.AGES] = 4) alors (100 ) ) Version 3 abondement PERECO Forfait social 16% B_COT_FORSOC16 : Itérative forfait social 16% Inclut PCOA_ABOND : Montant brut abondement BC_FORFAITS16 : Base forfait social 16% [B_COT_FORSOC16.MONTANT] FORFAITSOC16 : Cotisation forfait social 16% Abondement PCOA_ABOND : Rubrique de paye du montant brut de l’abondement Entre dans le brut avec un taux à zéro Profil comptable compte 6470000000 On imprime que la base BC_PCOA_ABOND : Base de cotisation abondement [PCOA_ABOND.MONTANT] N_PCOA_CSGDED : C.S.G. déductible sur l'abondement PERECO - > COT_SALDED avec un taux à zéro et PCOA_COTSAL N_PCOA_CSGND : C.S.G. non déductible sur l'abondement PERECO - > COT_SAL avec un taux à zéro et PCOA_COTSAL N_PCOA_CRDS : C.R.D.S. sur abondement PERECO - > COT_SAL avec un taux à zéro et PCOA_COTSAL PCOA_COTSAL : Itérative cotisation salariale abondement PERECOVersion 4 : PERECO CHEQUESANTE.TAUX Avant : si (CONSTANTE(CONTRAT.TYPECONTRAT)=1) alors (125) sinon (105) Après : si (CONSTANTE(CONTRAT.DSNNATURE)=01) alors (105) sinon (125) PPVNONEXO sur les apprentis quand on met une ppvnonexo, le seuil doit être comparé au brut sans la ppv Rubrique BC_BRUT_APP Avant : MAXIMUM([BRUT.MONTANT]-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 Après : MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 rubrique BC_BRUT_APP_PL Avant : si ([BRUT.MONTANT]>0) alors (PLAFONNER([BRUT.MONTANT];0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER([BRUT.MONTANT]*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 Après : si ([BRUT.MONTANT]>0) alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0Version 5 MALADIE_NRA Cotisation maladie non résidents actif taux 5.5% CTP 206 Elle concerne les personnes non domiciliées fiscalement en France et relevant à titre obligatoire d’un régime français d’assurance maladie.Depuis le 1er mars 2018, le taux de la cotisation salariale d’assurance maladie pour les non-résidents fiscaux français est de 5,50 %. Elle est déclarée à l'aide du code type de personnel 206 « salariés non-résidents actifs ».Version 6 JRSNONTRAV Lors d'un changement de situation en cours de mois, permet d'avoir le nombre de jour correct au total Avant : si([H_N0NTRAV.BASE]=0) alors( ( si (constante(general.mois_paye)=2) alors ( si (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)=CONSTANTE(GENERAL.NBJMOISPAYE)) alors (0) sinon (30-CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)) ) sinon (30-minimum(constante(contrat.CIVJOURSTRAVAIL);30)) ) * CONSTANTE(CONTRAT.USEJOURSNONTRAVAIL)) sinon (0) Après : si([H_N0NTRAV.BASE]=0) alors( si (CONSTANTE(CONTRAT.USEJOURSNONTRAVAIL)=0) alors (0) sinon ( si (constante(general.mois_paye)=2) alors ( si (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)=CONSTANTE(GENERAL.NBJMOISPAYE)) alors (0) sinon (30-CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) - si ((CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)<>CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)) et (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)>=28)) alors (2) sinon (0) ) ) sinon (30-minimum(constante(contrat.CIVJOURSTRAVAIL);30)) + si ((CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)<>CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)) et (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)=31)) alors (1) sinon (0) ) ) sinon (0) Version 7 A faire : _PREV_TH avec BC_SALDIR comme base  pkoi BC_SALDIR ??? il n'y a pas de raison _FORMAT_TH avec un taux patr de 2.3% et BC_SALDIR comme base pkoi BC_SALDIR ??? il n'y a pas de raison MALADIE_AM : Majoration maladie alsace moselle Base = BC_BRUT_URSSAF / Taux salarié = 1.30% CTP 381 cotisation 115 https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-cotisation-maladie---maternit/cas-particuliers.html Retenue à la source Une liste de constante : RET_SOURCE : 1 : Fraction à 0%  : 1402€ 2 : Fraction à 12% : 4066€ Une cotisation retenue à la source : RET_SOURCE avec une base de cotisation BC_RET_SOURCE BC_RET_SOURCE declarer (BASE) affecter (base;[NETIMP.MONTANT]*0.90) ( 0.12 * si (:BASE>LISTEGEN(RETSOURCE;2)) alors (LISTEGEN(RETSOURCE;2)-LISTEGEN(RETSOURCE;1)) sinon ( si (:BASE>LISTEGEN(RETSOURCE;1)) alors (:BASE-LISTEGEN(RETSOURCE;1)) sinon (0) ) ) + ( 0.20 * si (:BASE>LISTEGEN(RETSOURCE;2)) alors (:BASE-LISTEGEN(RETSOURCE;2)) sinon (0) ) Service civique - Une rubrique Allocations Familiales au taux de 5.25% - Une rubrique Vieillesse déplafonnée au taux patronal de 2.42% - Une base de cotisation pour la Vieillesse déplafonnée au taux de 2.42% - Une rubrique Vieillesse plafonnée au taux patronal de 15.45% - Une base de cotisation pour la Vieillesse déplafonnée au taux de 15.45%Version 8 Correctif et ajout de PCO_VERSEMENT dans les itératives B_COT_PREV et B_COT_RET Ajout de accident_TH  : Pour y mettre le CTP 122 en CTP2 Version 68 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])) ) ) ) Version 2 Segur 2024 Constantes générales EXT_SEGUR : Montant de la revalorisation salariale  Ségur juillet 2024 : 238€ Nouvelles rubriques EXTSEGUREXCLU Liste des rubriques qui excluent EXT_SEGUR EXTSEGUR Ségur 2024 si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.DSNINTITULE)<>21) et (CONSTANTE(CONTRAT.DSNINTITULE)<>41) et (CONSTANTE(CONTRAT.DSNINTITULE)<>64) et (CONSTANTE(CONTRAT.DSNINTITULE)<>65) et (CONSTANTE(CONTRAT.TYPESALARIE)<>3) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Participation REGEXTSEGUR Régularisation revalorisation juillet 2024Version 3 Segur 2024 66_AF_EXTSEGUR Ségur 2024 pour les AF si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.TYPESALARIE)=3) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Cette rubrique est à pas de proratisationVersion 4 Correctif agcp Correction de l'anomalie : bulletin de régul d'un contrat clos en 2023 : Il faut utiliser l'ancienne formule 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(GENERAL.NEWAGCP)= 0) alors ( [V_AGCP.TOTAGCP] *CONSTANTE(GENERAL.COEFAGCPURSSAF) /(CONSTANTE(GENERAL.COEFAGCPURSSAF)+CONSTANTE(GENERAL.COEFAGRETRAITE)) +[V_AGCP.TOTAGCPCHOM] -histocumulsitu([BC_AGCPURSSAF.MONTANT]) ) sinon ([V_NEWAGCP.AGCPURSSAF]) ) sinon (0) Après 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) 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(GENERAL.NEWAGCP)= 0) alors ( 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 ([V_NEWAGCP.AGCPAA]) ) sinon (0) Après 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) Version 69 Version 1 66_AF_EXTSEGUR Modification de ségur 2024 pour les AF Pour la Base Avant si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.TYPESALARIE)=3) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Pour la Base Après si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.TYPESALARIE)=3) ) alors ( CONSTANTE(GENERAL.EXT_SEGUR) *[66_AFNBJENF1.BASE] /CONSTANTE(GENERAL.NBJMOISPAYE) + (CONSTANTE(GENERAL.EXT_SEGUR) *0.80 *(CONSTANTE(GENERAL.NBJMOISPAYE)- [66_AFNBJENF1.BASE]) /CONSTANTE(GENERAL.NBJMOISPAYE)) ) sinon (0) ) sinon (0) Pour le taux avant CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) /CONSTANTE(GENERAL.NBJMOISPAYE) Pour le taux après 1 EXTSEGUR Exclusion des TH Avant si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.DSNINTITULE)<>21) et (CONSTANTE(CONTRAT.DSNINTITULE)<>41) et (CONSTANTE(CONTRAT.DSNINTITULE)<>64) et (CONSTANTE(CONTRAT.DSNINTITULE)<>65) et (CONSTANTE(CONTRAT.TYPESALARIE)<>3) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Après si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.DSNINTITULE)<>21) et (CONSTANTE(CONTRAT.DSNINTITULE)<>41) et (CONSTANTE(CONTRAT.DSNINTITULE)<>64) et (CONSTANTE(CONTRAT.DSNINTITULE)<>65) et (CONSTANTE(CONTRAT.TYPESALARIE)<>3) et (CONSTANTE(CONTRAT.TYPESALARIE)<>2) et (CONSTANTE(CONTRAT.TYPESALARIE)<>1) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Version 70 Version 1 Modification de PL_JRSEMPLOI On ne tiens plus compte des jours antérieurs Avant si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1) alors (0) sinon (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)+CONSTANTE(CONTRAT.JOURSANTCIV)) Après si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1) alors (0) sinon (CONSTANTE(CONTRAT.CIVJOURSTRAVAIL))Version 2 Modification de 66_AF_EXTSEGUR Ticket 698681 Avant si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.TYPESALARIE)=3) ) alors ( CONSTANTE(GENERAL.EXT_SEGUR) *[66_AFNBJENF1.BASE] /CONSTANTE(GENERAL.NBJMOISPAYE) + (CONSTANTE(GENERAL.EXT_SEGUR) *0.80 *(CONSTANTE(GENERAL.NBJMOISPAYE)- [66_AFNBJENF1.BASE]) /CONSTANTE(GENERAL.NBJMOISPAYE)) ) sinon (0) ) sinon (0) Après si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.TYPESALARIE)=3) ) alors ( CONSTANTE(GENERAL.EXT_SEGUR) *[66_AFNBJENF1.BASE] /CONSTANTE(GENERAL.NBJMOISPAYE) + (CONSTANTE(GENERAL.EXT_SEGUR) *0.80 *(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)- [66_AFNBJENF1.BASE]) /CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)) ) sinon (0) ) sinon (0)Version 3 Calcul de la prévoyance pour le passage non cadre - cadre Modification de la fonction F_TRANCHEANEW Avant minimum( ( F_HISTOCLOT(BRUT) +BRUT) ; ( F_HISTOCLOT(PLMENSA) +PLMENSA) ) -F_HISTOCLOT(TRANCHEA) Après : Ajout du paramètre MOISDEB minimum( ( F_HISTOCLOT(BRUT;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) +BRUT) ; ( F_HISTOCLOT(PLMENSA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) +PLMENSA) ) -F_HISTOCLOT(TRANCHEA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) Modification de la rubrique BC_TR_A_PREV_C Avant F_TRANCHEANEW([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC]) Après F_TRANCHEANEW([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT];[PLAFONDS_A.PLA_OC];[CHGT_NC_C.BASE])Version 4 ANT_JOURS Avant si (CONSTANTE(GENERAL.JRS_ANT)=1) alors( si ([ANT_HEURES.BASE]=0) alors ( CONSTANTE(CONTRAT.USEJOURSANT) * CONSTANTE(CONTRAT.JOURSANTCIV) ) sinon (0) ) sinon (0) Après 0 Désactivation des rubriques suivantes : ANT_HEURES ANT_JOURS Version 71 Version 1 Ajout de l'exclusion des contrats pro pour Ségur pour tous EXTSEGUR Avant si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.DSNINTITULE)<>21) et (CONSTANTE(CONTRAT.DSNINTITULE)<>41) et (CONSTANTE(CONTRAT.DSNINTITULE)<>64) et (CONSTANTE(CONTRAT.DSNINTITULE)<>65) et (CONSTANTE(CONTRAT.TYPESALARIE)<>3) et (CONSTANTE(CONTRAT.TYPESALARIE)<>2) et (CONSTANTE(CONTRAT.TYPESALARIE)<>1) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Après si (([NUMCONV.NUMCONV]=51) ou ([NUMCONV.NUMCONV]=66)) alors ( Si ( ([EXTSEGUREXCLU.MONTANT]=0) et (CONSTANTE(CONTRAT.DSNINTITULE)<>21) et (CONSTANTE(CONTRAT.DSNINTITULE)<>41) et (CONSTANTE(CONTRAT.DSNINTITULE)<>64) et (CONSTANTE(CONTRAT.DSNINTITULE)<>65) et (CONSTANTE(CONTRAT.DSNINTITULE)<>61) et (CONSTANTE(CONTRAT.TYPESALARIE)<>3) et (CONSTANTE(CONTRAT.TYPESALARIE)<>2) et (CONSTANTE(CONTRAT.TYPESALARIE)<>1) ) alors (CONSTANTE(GENERAL.EXT_SEGUR)) sinon (0) ) sinon (0) Version 2 Pour le complément maladie BC_MALCOMP25 Avant si (CONSTANTE(GENERAL.NEWAGCP)= 0) alors ( si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si ( (([V_NEWAGCP.CUMREMUCOEF]) > (2.5*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) ) Après declarer (PLAFSMIC) affecter (PLAFSMIC; si (CONSTANTE(GENERAL.ANNEE_PAYE)<2025) alors (2.5) sinon ( si (([PLAFONDSECU.NUMCAS]<>1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (2.5) sinon (2.2) ) ) si ( (([V_NEWAGCP.CUMREMUCOEF]) > (:PLAFSMIC*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) Pour l'allocation familiale V_ALLOC Ajout d'une formule déterminant le coefficient à appliquer (3.5 ou 3.2 smic) PLAFSMIC si (CONSTANTE(GENERAL.ANNEE_PAYE)<2025) alors (3.5) sinon ( si (([PLAFONDSECU.NUMCAS]<>1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.2) ) ALLOCFAMREDUIT.TXEMP Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) Après si ( ([V_NEWAGCP.CUMREMUCOEF]>[V_ALLOC.PLAFSMIC]*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ALLOCFAM.TXEMP Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) Après si ( ([V_NEWAGCP.CUMREMUCOEF]>[V_ALLOC.PLAFSMIC]*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) 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 Version 4 agcp régul 11/2024 BC_AGCP_1 : Régul AGCP 2024 Rubrique permettant de calculer la rubrique AGCP de 2024. Pour les contrats actifs en décembre 2024 et après Total AGCP de 12/2024 -(Total AGCP de 10/2024 + Total AGCP de 11/2024 à 12/2024(Nouvelle règle)) declarer(REMU) affecter(REMU;histo([V_NEWAGCP.REMUCOEF];11;2024)+histo([V_NEWAGCP.REMUCOEF];12;2024)) declarer(SMIC) affecter(SMIC;histo([V_NEWAGCP.SMICPRO];11;2024)+histo([V_NEWAGCP.SMICPRO];12;2024)) histo([V_NEWAGCP.MTAGCPMENS];11;2024) +histo([V_NEWAGCP.MTAGCPMENS];12;2024) - ( :REMU * maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; ([V_NEWAGCP.MAXCOEF]/(1.569-1))* ((1.569*:SMIC/:REMU)-1) ) ) ) Pour les contrats clôturés en novembre 2024. Total AGCP de 11/2024 -(Total AGCP de 10/2024 + Total AGCP de 11/2024 (Nouvelle règle)) declarer(REMU) affecter(REMU;histo([V_NEWAGCP.REMUCOEF];11;2024)) declarer(SMIC) affecter(SMIC;histo([V_NEWAGCP.SMICPRO];11;2024)) histo([V_NEWAGCP.MTAGCPMENS];11;2024) - ( :REMU * maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; ([V_NEWAGCP.MAXCOEF]/(1.569-1))* ((1.569*:SMIC/:REMU)-1) ) ) ) BC_AGCPURSS_1 declarer(COEFREG); affecter(COEFREG;si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;2024)=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;2024)) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;2024)) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;2024)) ) [BC_AGCP_1.MONTANT] *( :COEFREG +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;2024) ) /( :COEFREG +CONSTANTEHIS(GENERAL.COEFAGRETRAITE;12;2024) +CONSTANTEHIS(GENERAL.COEFAGCHOMAGE;12;2024) ) BC_AGCPRUAA_1 [BC_AGCP_1.MONTANT]-[BC_AGCPURSS_1.MONTANT] Version 5 Reco 2024 https://wikiapp.heberg-eig.fr/books/recommandation-patronale-29-janvier-2024/page/rubriques Version 6 : Cotisation 142 Toutes ces cotisations ont pour but de permettre la déclaration en DSN du code cotisation 142 demandé par l'urssaf Elles ont pour catégorie de cotisation 001 Sécurité sociale et limitée tranche A. Par défaut elles ne sont pas imprimées sur le bulletin et participent à l'itérative COT_EMP mais pour un taux de zéro. Le taux à indiquer est égal au taux patronal de retraite complémentaire plus le taux patronal de CEG de la tranche 1. C'est à dire 4.72% + 1.29% = 6.01%. Il peut varier en fonction des entreprises mais également du type de salarié (Apprenti, TH,etc). RET_PAT142 :  Cotisation fictive déclaration cotisation 142 Base de cotisation : BC_TU1_RET P_RET_PAT142 : Cotisation fictive progressive déclaration cotisation 142 Base de cotisation : PBR_TU1_RET RETAPP_PAT142 : Cotisation fictive apprenti exonéré déclaration cotisation 142 Base de cotisation : BC_BRUT_APP_PL RETAPPN_PAT142 : Cotisation fictive apprenti non exonéré déc cotisation 142 Base de cotisation : BC_BRUT_APP RETTH_PAT142 : Cotisation fictive TH déclaration cotisation 142 Base de cotisation : BC_TU1_RETVersion 7 Modification des formules suivantes pour les remettre comme à l'origine : CONAIDE.SEUILAPPRENTI BC_MALCOMP25 V_ALLOC : Suppression de PLAFSMIC ALLOCFAMREDUIT.TXEMP ALLOCFAM.TXEMP Version 72 Version 1 AGCP Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) Après si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) Recommandation patronale Forcément positif pour les deux bases suivantes V_RP24.BASEMENSUEL Avant si ( (CONSTANTE(GENERAL.RP2024)=1) et([V_RP24.REGULANNUELLE]=0) et (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51))) alors ( si (([RP24_BASE13.MONTANT]+[V_RP24.DECENTTHEO])>[V_RP24.SEUILMENSUEL]) alors (0) sinon ([RP24_BASE13.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) ) sinon (0) Après si ( (CONSTANTE(GENERAL.RP2024)=1) et([V_RP24.REGULANNUELLE]=0) et (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51))) alors ( si (([RP24_BASE13.MONTANT]+[V_RP24.DECENTTHEO])>[V_RP24.SEUILMENSUEL]) alors (0) sinon ( maximum(0; [RP24_BASE13.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT] ) ) ) sinon (0) V_RP24.BASEANNUEL Avant si ( (CONSTANTE(GENERAL.RP2024)=1) et ([V_RP24.REGULANNUELLE]=1) et (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51))) alors ( si (([V_RP24.BASEANNUELREEL])>[V_RP24.SEUILANNUEL]) alors (0) sinon ([V_RP24.BASEANNUELREEL] -histocumulsitu([ABSTOTALV.MONTANT]) +histocumulsitu([ABSTOTALM.MONTANT]) -[ABSTOTALV.MONTANT] +[ABSTOTALM.MONTANT] ) ) sinon (0) Après si ( (CONSTANTE(GENERAL.RP2024)=1) et ([V_RP24.REGULANNUELLE]=1) et (([NUMCONV.NUMCONV]=66) ou ([NUMCONV.NUMCONV]=51))) alors ( si (([V_RP24.BASEANNUELREEL])>[V_RP24.SEUILANNUEL]) alors (0) sinon ( maximum(0; [V_RP24.BASEANNUELREEL] -histocumulsitu([ABSTOTALV.MONTANT]) +histocumulsitu([ABSTOTALM.MONTANT]) -[ABSTOTALV.MONTANT] +[ABSTOTALM.MONTANT] ) ) ) sinon (0) V_RP24.BASEMENSUEL avant si (CONSTANTE(GENERAL.RP2024)=1) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) sinon (0) après si (CONSTANTE(GENERAL.RP2024)=1) alors ( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=2) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) sinon ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) ) sinon (0) Version 2 Recommandation patronale V_RP24.BASEMENSUEL avant si (CONSTANTE(GENERAL.RP2024)=1) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) sinon (0) après si (CONSTANTE(GENERAL.RP2024)=1) alors ( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=2) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) sinon ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) ) sinon (0) Version 73 Version 1 V_NEWAGCP.COEFREGIME Correctif à la con car la formule ne fonctionnait pas (caractère bidon) Il faudra voir pourquoi Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) Après si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) )Version 74 Version 1 Correctif de la recommandation patronale 24 51_NUIT24_SN.TAUX Avant ( 1.03*[VP.VP] + si ([51_NUIT24.BASE]<9) alors (CONSTANTE(GENERAL.RP24_FORF_NUIT)*[51_NUIT24.BASE]/9) sinon (CONSTANTE(GENERAL.RP24_FORF_NUIT)) ) / [51_NUIT24.BASE] Après ( 1.03*[VP.VP] + si ([51_NUIT24_SN.BASE]<9) alors (CONSTANTE(GENERAL.RP24_FORF_NUIT)*[51_NUIT24_SN.BASE]/9) sinon (CONSTANTE(GENERAL.RP24_FORF_NUIT)) ) / [51_NUIT24_SN.BASE] V_RP24.SEUILMENSUEL Avant si (CONSTANTE(GENERAL.RP2024)=1) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) sinon (0) Après si (CONSTANTE(GENERAL.RP2024)=1) alors ( CONSTANTE(GENERAL.RP24_SEUILPRIME13)/12 * si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( CONSTANTE(CONTRAT.JOUR_FORFAIT) / CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) ) sinon ( CONSTANTE(CONTRAT.HORAIREMENSUEL) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * CONSTANTE(CONTRAT.CIVJOURSTRAVAIL) / CONSTANTE(GENERAL.NBJMOISPAYE) ) sinon (0) Version 2 Fonction F_AGCP Pour le cas 1 on prend HISTOCUMULSITUBYANCLOT pour le cas suivant Bulletin de régul en 2025 d'un contrat en chgt de situation le 31/12/2024 Le nouveau contrat ne doit pas prendre en compte le bulletin de régul Avant : si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT]) alors (0) sinon ( si ((moisdebut=0) ou (moisfin=0) ou ([PLAFONDSECU.NUMCAS]=2)) alors ( F_HISTOCLOTSIT(RUBACUMULER) ) sinon ( histocumulsitu(RUBACUMULER; maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]); CONSTANTE(GENERAL.ANNEE_PAYE); (si (moisfin=0) alors (12) sinon (moisfin)); CONSTANTE(GENERAL.ANNEE_PAYE) ) ) ) Après si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT]) alors (0) sinon ( si ((moisdebut=0) ou (moisfin=0) ou ([PLAFONDSECU.NUMCAS]=2)) alors ( F_HISTOCLOTSIT(RUBACUMULER) ) sinon ( HISTOCUMULSITUBYANCLOT(RUBACUMULER; maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]); CONSTANTE(GENERAL.ANNEE_PAYE); (si (moisfin=0) alors (12) sinon (moisfin)); CONSTANTE(GENERAL.ANNEE_PAYE) ) ) )Version 3 Fonction F_HISTOCLOTSIT Pour le cas 1 on prend histocumulsitubyanclot Bulletin de régul en 2025 d'un contrat en chgt de situation le 31/12/2024 Le nouveau contrat ne doit pas prendre en compte le bulletin de régul Avant si (CONSTANTE(GENERAL.BUDGET)=1) alors (histocumulsitu(alias)) sinon ( si ([PLAFONDSECU.NUMCAS]=1) alors (histocumulsitu(alias)) sinon ( histocumulsitu(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) Après si (CONSTANTE(GENERAL.BUDGET)=1) alors (histocumulsitu(alias)) sinon ( si ([PLAFONDSECU.NUMCAS]=1) alors (histocumulsitubyanclot(alias)) sinon ( histocumulsitubyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE)) ) )Version 4 Modification de F_HISTOCLOT Avant si (CONSTANTE(GENERAL.BUDGET)=1) alors (histocumuljoint(alias)) sinon ( si ([PLAFONDSECU.NUMCAS]=1) alors ( si ((moisdeb=0) ou (anneedeb=0)) alors (histocumuljointbyanclot(alias)) sinon (histocumuljointbyanclot(alias;moisdeb;anneedeb)) ) sinon ( histocumuljointbyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) Problème de calcul de csg pour un bulletin de régul portant sur un contrat alors qu'il y en a d'autres avant : Cas du mat 807  ADSEA15 Le problème est que dans le cas 2, le mot cle histocumuljointbyanclot va chercher le cumul de l'historique depuis l'année de clôture donc si la clôture est en 2023, on aura 2023 et 2024 ce qui n'est pas correct Mais si on ne laisse que 2023, on aura pas les régul de bulletin de 2024 Pour le moment on change comme cela : Après si (CONSTANTE(GENERAL.BUDGET)=1) alors (histocumuljoint(alias)) sinon ( si ([PLAFONDSECU.NUMCAS]=1) alors ( si ((moisdeb=0) ou (anneedeb=0)) alors (histocumuljointbyanclot(alias)) sinon (histocumuljointbyanclot(alias;moisdeb;anneedeb)) ) sinon ( histocumuljointbyanclot(alias;1;CONSTANTE(CONTRAT.ANNEE_CLOTURE);12;CONSTANTE(CONTRAT.ANNEE_CLOTURE)) ) ) Pour la CSG Le pb est que les rubriques non abattue et tout ca n'existait pas en 2020 Du coup [V_CSG.CUM_ABT] + [V_CSG.CUM_NABT] = 0 Il faudrait faire un tes sur la date 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 ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<=2023)) alors (F_TESTCSG([B_COT_CSG.MONTANT];[BC_CSG.MONTANT])) 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])) ) ) ) V_NEWAGCP.CUMREMUCOEF Avant [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) Après [V_NEWAGCP.REMUCOEF] + F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) V_NEWAGCP.CUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Après F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) Version 5 Modification de BC_CSG et BC_CRDS Il s'agit de traiter le cas des bulletins de régularisation quand V_CSG.CUM_ABT et V_CSG.CUM_NABT  n'existaient pas BC_CSG Avant 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])) ) ) ) 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 ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) 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) 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])) ) ) ) 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 ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) 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])) ) ) ) Modification de V_newagcp Normalement V_newagcp existe obligatoirement à partir de 2024 Donc pour les bulletin de régul, si l'année de cloture est inférieure on prend V_AGCP sinon on prend V_newagcp V_NEWAGCP.CUMREMUCOEF Avant [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) Après [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) ) V_NEWAGCP.CUMREMUCOEF Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT]) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Après si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Vérifier le calcul de Allocfam et MALADIESUP dans un bulletin de régul dans le cas plafond 2, si année de cloture <2024 prendre V_agcp.cumsmicpro sinon on prend V_newagcp.cumsmicpro3112 V_newagcp.CUMSMICPRO3112 Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.CUMSMICPRO] ) Après si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) ALLOCFAM et ALLOCFAMREDUIT  : On peut virer le test sur CONSTANTE(GENERAL.NEWAGCP) ALLOCFAM déjà fait ALLOCFAMREDUIT Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) Après si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) BC_MALCOMP25 On vire le test sur CONSTANTE(GENERAL.NEWAGCP on prend F_HISTOCLOTSIT plutôt que histocumulsitu Avant si (CONSTANTE(GENERAL.NEWAGCP)= 0) alors ( si ( (([V_AGCP.CUMREMUCOEF]) > (2.5*[V_AGCP.CUMSMICPRORATE])) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si ( (([V_NEWAGCP.CUMREMUCOEF]) > (2.5*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - histocumulsitu([BC_MALCOMP25.MONTANT]) ) sinon ( histocumulsitu([BC_MALCOMP25.MONTANT])*(-1) ) ) Après si ( (([V_NEWAGCP.CUMREMUCOEF]) > (2.5*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) Analyse des cas Faire un bulletin de régul d'avant 2024 Pb de csg car cumul sur plusieurs années Modifier le mot clé histocumuljointbyanclot pour qu'il ne prenne pas le contrat s'il est supérieur à l'année de cloture (sauf dans le cas d'une régul)  mat 39 ADSEA 15 Quand V_NEWAGCP n'existait pas Modification de BC_AGCPURSSAF et BC_AGCPRUAA  : on prend V_NEWAGCP.AGCPURSSAF]) mais en cas de régul car V_newagcp prend déjà V_AGCP Pb quand les rubriques abattues et non abbatues n'existaient pas mat 699 et mat 39 ADSEA 15 Je modifie BC_CSG et tant pis pour les bulletins de régul de l'année. Ca règle le pb précédent 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 ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) 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])) ) ) ) Vérifier le calcul de Allocfam et MALADIESUP dans un bulletin de régul Vérifier le calcul de l'agcp quand V_newagcp n'existait pas Normalement V_newagcp existe obligatoirement à partir de 2024 Ajouter le test remucoef = 0 dans ce cas pas de cotisation agcp Analyser le pb du bulletin d'annulationVersion 6 Pour avoir en même temps une régul d'agcp et de l'agcp 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 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_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) BC_AGCPRUAA 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 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_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) Version 7 BC_AT_IND_COM Base accident du travail indemnité communautaire si ([BRUT.MONTANT]>0) alors ([NB_HEURESTPAYE.MONTANT] * 0.04) sinon (0) IND_COM Indemnité communautaire Base [NB_HEURESTPAYE.MONTANT] Taux CONSTANTE(GENERAL.TX_IND_COM) BC_AT_MISP (CONSTANTE(GENERAL.PLFSECUHEURE)*.07) * [NB_HEURESTPAYE.MONTANT] ALLOCFAM_TH Base de cotisation CPLDDTE Fonctionnaire détaché * RAFP : FD_RAFP_INDIC : Valeur indiciaire RAFP   -> A mettre en élément constant BC_FD_RAFP : Base de cotisation égal à FD_RAFP_INDIC RET_FD_RAFP : Cotisation * SRE : FD_SRE_INDIC : Valeur indiciaire SRE   -> A mettre en élément constant BC_FD_SRE : Base de cotisation égal à FD_SRE_INDIC RET_FD_SRE : Cotisation * CNRACL : FD_CNRACL_INDIC : Valeur indiciaire CNRACL   --> A mettre en élément constant BC_FD_CNRACL : Base de cotisation égal à FD_CNRACL_INDIC RET_FD_CNRACL : Cotisation Forfait jour Il faudrait ajouter une zone dans la fiche budgétaire : forfait jour collectif Pour ensuite modifier la formule SALBASEPTS Retraite progressive P_HORINITIAL.TAUX Avant si ([P_HORINITIAL.BASE]=1) alors ( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) sinon (1) Après si ([P_HORINITIAL.BASE]=1) alors ( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)) sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) sinon (1) P_RETPROG.PL_MENSA Avant minimum(CONSTANTE(GENERAL.PLFSECUMOIS); ( CONSTANTE(GENERAL.PLFSECUMOIS) *([P_HORINITIAL.MONTANT]-[NB_HEURESCON.MONTANT]) /CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * [PL_PLAFONDMENS.MONTANT] / (CONSTANTE(GENERAL.PLFSECUMOIS) * [NB_HEURESCON.MONTANT] / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) Après minimum(CONSTANTE(GENERAL.PLFSECUMOIS); si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( ( CONSTANTE(GENERAL.PLFSECUMOIS) *([P_HORINITIAL.MONTANT]-CONSTANTE(CONTRAT.JOUR_FORFAIT)) /CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) ) *[PL_PLAFONDMENS.MONTANT] /(CONSTANTE(GENERAL.PLFSECUMOIS) * CONSTANTE(CONTRAT.JOUR_FORFAIT) / CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)) ) sinon ( ( CONSTANTE(GENERAL.PLFSECUMOIS) *([P_HORINITIAL.MONTANT]-[NB_HEURESCON.MONTANT]) /CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) *[PL_PLAFONDMENS.MONTANT] /(CONSTANTE(GENERAL.PLFSECUMOIS) * [NB_HEURESCON.MONTANT] / CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) ) P_RETPROG.DIFPROG Avant (([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) *[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.HORAIREMENSUEL)) -([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) Après si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( (([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) *[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.JOUR_FORFAIT)) -([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) ) sinon ( (([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) *[P_HORINITIAL.MONTANT]/CONSTANTE(CONTRAT.HORAIREMENSUEL)) -([B_PXHEURE.MONTANT]-[ABSTOTALV.MONTANT]+[ABSTOTALM.MONTANT]) )Version 75 Version 1 51_COMPDIMCONV Correction sur la formule taux : Il y avait un E en trop dans B_PXHEUREE Avant si (([NUMCONV.NUMCONV]=51) et (CONSTANTE(GENERAL.51MINCONV)>0)) alors ( (maximum( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors ( exclure([B_PXHEUREE.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT]) / (CONSTANTE(CONTRAT.HEURE_FORFAIT)/12) ) sinon ( exclure([B_PXHEUREETP.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT]) /(CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) ;CONSTANTE(GENERAL.SMICHOR)) ) + (( exclure([51_BASEANC.MONTANT];[51_DIFFSMIC.MONTANT]) + maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-exclure([51_SALMINSMIC.MONTANT];[51_COMPDIMCONV.MONTANT]);0) + si (CONSTANTE(GENERAL.51_AVT0212)=0) alors (0) sinon ( si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201411) alors ( si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201511) alors ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]) sinon ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]*0.5) ) sinon (0) ) )*[51_ANC.TAUX] ) /(si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors ((CONSTANTE(CONTRAT.HEURE_FORFAIT)/12)) sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) ) sinon(0) Après si (([NUMCONV.NUMCONV]=51) et (CONSTANTE(GENERAL.51MINCONV)>0)) alors ( (maximum( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors ( exclure([B_PXHEURE.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT]) / (CONSTANTE(CONTRAT.HEURE_FORFAIT)/12) ) sinon ( exclure([B_PXHEUREETP.MONTANT];[51_ANNULSALMIN.MONTANT];[51_MINCONV.MONTANT];[51_ANC.MONTANT];[51_DIFFSMIC.MONTANT];[ABT_APPRENTI.MONTANT];[ABT_VAPPRENTI.MONTANT];[51_P_PRIMEINT.MONTANT];[51_P_PCCP.MONTANT]) /(CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) ;CONSTANTE(GENERAL.SMICHOR)) ) + (( exclure([51_BASEANC.MONTANT];[51_DIFFSMIC.MONTANT]) + maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-exclure([51_SALMINSMIC.MONTANT];[51_COMPDIMCONV.MONTANT]);0) + si (CONSTANTE(GENERAL.51_AVT0212)=0) alors (0) sinon ( si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201411) alors ( si (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201511) alors ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]) sinon ([51_GRILLETEC14.RESULTAT]/100*[51_MAJSPEC.BASE]*0.5) ) sinon (0) ) )*[51_ANC.TAUX] ) /(si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors ((CONSTANTE(CONTRAT.HEURE_FORFAIT)/12)) sinon (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) ) sinon(0) COTSALHORSECRE Pour éviter la fausse référence circulaire Avant exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL]) +exclure([COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL]) Après exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL]) + exclure([COT_SALDED.MONTANT];[N_CSGECRTD.MTSALARIAL]) FD_CNRACL_IND Création du salaire indiciaire CNRACL BC_FD_CNRACL [FD_CNRACL_IND.BASE] Version 2 V_NEWAGCP.REMUCOEF [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) ) Boulette dans la formule V_NEWAGCP.CUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Après si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Apprenti CONAIDE.SEUILAPPRENTI Pour les contrats conclus à compter du 01/03/2025, baisse des exonérations de charges salariales de 79% à 50% 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(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)) alors (0.50) sinon (0.79) CSG non exonéré au dessus de 50% du smic B_COT_CSG_ABT Ajout de la la rubrique BC_BRUT_APP_PL en moins dans l'itérative Il faudra faire attention au calcul quand on passe d'apprenti au RG ou du RG à l'apprenti BC_CSG : Pour la simplifier Avant 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 ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) 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(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors ([FO.TOTAL]) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) sinon ( [V_CSG.CUM_ABT] +[V_CSG.CUM_NABT] -F_HISTOCLOT([BC_CSG.MONTANT]) ) ) ) BC_CRDS  : Sera égal à BC_CSG Complément maladie Le seuil passe de 2.5 à 2.25 SMIC BC_MALCOMP25 Avant si ( (([V_NEWAGCP.CUMREMUCOEF]) > (2.5*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (2.5) sinon (2.25) 2.5 ) si ( (([V_NEWAGCP.CUMREMUCOEF]) > (:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) Allocation familiale Le seuil passe de 3.5 à 3.3 SMIC ALLOCFAM.TXEMP Avant si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ALLOCFAMREDUIT.TXEMP Avant si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) BC_REG_ALLOC Avant si (CONSTANTE(GENERAL.NEWAGCP)=1) alors ( si ( ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO3112])) ou ([V_NEWAGCP.CUMREMUCOEF]<=0) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) ) sinon ( si ( ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE])) ou ([V_AGCP.CUMREMUCOEF]<=0) ou ([V_AGCP.CUMSMICPRORATE]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) ) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])) ou ([V_NEWAGCP.CUMREMUCOEF]<=0) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) Version 3 Apprenti CONAIDE.SEUILAPPRENTI Pour les contrats conclus à compter du 01/03/2025, baisse des exonérations de charges salariales de 79% à 50% 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(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)) alors (0.50) sinon (0.79) AGCP AD Faire comme pour l'agcp classique BC_ADAGCPURSS 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(GENERAL.NEWAGCP)= 1) alors ([V_AD_AGCP.ADAGCPURSSAF]) sinon (0) ) sinon (0) Après 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.ADAGCPURSSAF]) sinon (0) ) sinon (0) 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) ) alors ( si (CONSTANTE(GENERAL.NEWAGCP)= 1) alors ([V_AD_AGCP.ADAGCPAA]) sinon (0) ) sinon (0) Après 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) Version 4 La PPV dans la rémunération utilisée pour le calcul de l'agcp AGCPREMU  : Plus utilisée Création d'une itérative à la place : AGCPITREMU: Rémunération utilisée pour le calcul de l'AGCP Y mettre(par programme) BC_BRUT_URSAFF P_PPVEXO P_PPVNONEXO V_NEWAGCP.REMUCOEF Avant si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( [BC_BRUT_URSAFF.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]) ) sinon( [AGCPREMU.MONTANT] ) Après si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( [AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]) ) sinon( [AGCPITREMU.MONTANT] ) V_AD_AGCP.ADREMUCOEF Avant si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) et ([AD_HEXO.BASE]>=0)) alors([BC_BRUT_URSAFF.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon(0) Après si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) et ([AD_HEXO.BASE]>=0)) alors([AGCPITREMU.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon(0) Version 5 Pour le bulletin clarifié le TXEMP ALLOCFAMCOMP Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (1.80) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (1.80) ) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (1.80) ALLOCFAMCOMPNEG Avant si (CONSTANTE(GENERAL.NEWAGCP)=0) alors ( si ( ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0) et ([V_AGCP.CUMSMICPRORATE]>0) ) alors (0) sinon (-1.80) ) sinon ( si ( ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (-1.80) ) Après declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (-1.80) Version 6 Apprentis V_CSG.CUM_ABT Avant [V_CSG.CUM_AV_ABT]*0.9825 Après si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65')) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3) et ([BC_BRUT_APP.MONTANT]>0) ) alors ([V_CSG.CUM_AV_ABT]*0.9825) sinon (0) ) sinon ([V_CSG.CUM_AV_ABT]*0.9825) V_CSG.CUM_NABT Avant (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65')) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) Complément maladie et allocation familiale En attendant le décret, je modifie le seuil smic dans BC_MALCOMP25 :  2.25 ->2.5 ALLOCFAM.TXEMP : 3.3 -> 3.5 ALLOCFAMREDUIT.TXEMP : 3.3 -> 3.5 ALLOCFAMCOMP .TXEMP :  3.3 -> 3.5 ALLOCFAMCOMPNEG .TXEMP :  3.3 -> 3.5 Version 76 Version 1 Complément maladie, AF et autres exonération Le complément maladie et l'allocation familiale ne change pas pour les salariés bénéficiant de la ZRR ou l'aide à domicile Par conséquent, ajout d'une rubrique et formule pour savoir si le salarié a ou pas ces exo. Rubrique AGCPEXO : si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) ou ([V_ZRR.COEF]<>0)) alors (1) sinon (0) Pour le comparatif SMIC avec la rémunération pour le complément maladie et l'allocation familiale : La rémunération ne doit pas prendre en compte la PPV. Du coup on calcule un cumul de rémunération spécifique V_NEWAGCP.CUMREMUAF Cumul rémunération utilisée pour le comparatif des exonérations AF et Complément maladie [AGCPREMU.MONTANT] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([AGCPREMU.MONTANT];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([AGCPREMU.MONTANT];[AGCPDEBUT.MONTANT])) ) Détermination du taux SMIC pour le bandeau Pour les salariés qui ont de l'exonération ZRR ou Aide à domicile, le taux smic à utiliser est celui précédemment utilisé : 3.5 SMIC ou 2.5 SMIC. De même, pour les salariés clôturés avant le 1er mars V_NEWAGCP.AF032025 : Egal à 1 s'il faut utiliser la nouvelle méthode si ([AGCPEXO.BASE]=1) alors (0) sinon ( si (CONSTANTE(CONTRAT.CLOTURE)=0) alors (1) sinon ( si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025) ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3)) alors (0) sinon (1) ) ) V_NEWAGCP.TXSMICAF si ([V_NEWAGCP.AF032025]=1) alors (3.3) sinon (3.5) V_NEWAGCP.TXSMICMAL si ([V_NEWAGCP.AF032025]=1) alors (2.25) sinon (2.5) BC_MALCOMP25 Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (2.5) sinon (2.5) /* sinon (2.25)*/ ) si ( (([V_NEWAGCP.CUMREMUCOEF]) > (:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) Après si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ALLOCFAM.TXEMP Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.5) /* sinon (3.3)*/ ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) Aprés si ( ([V_NEWAGCP.CUMREMUCOEF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ALLOCFAMREDUIT.TXEMP Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) /* sinon (3.3)*/ sinon (3.5) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) Après 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)) ALLOCFAMCOMP Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.5) /* sinon (3.3)*/ ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (1.80) Après 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) ALLOCFAMCOMPNEG Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) /* sinon (3.3)*/ sinon (3.5) ) si ( ([V_NEWAGCP.CUMREMUCOEF]>:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (-1.80) Après 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) Détermination du SMIC à utiliser pour le calcul du bandeau Pour les salariés qui ont de l'exonération ZRR ou Aide à domicile, le smic à utiliser est celui du 31/12/2023 De même, pour les salariés clôturés avant le 1er mars V_NEWAGCP.SMICPRO3112 ( ([V_NEWAGCP.HREMU]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * si ([V_NEWAGCP.AF032025]=1) alors (1801,8) sinon (1747,2) ) * [V_NEWAGCP.HORBASE] /1607 V_NEWGCP.CUMSMICPRO3112 Si contrat clos avant 1er mars : Ancienne méthode donc on prend le cumul SMICPRO3112 Si contrat actif avec autre exo : Ancienne méthode donc on prend cumul SMICPRO3112 (car toujours calculé avec smic 2023) Sinon, on doit prendre le smicpro classique (qui a été calculé avec le smic 2025) Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( [V_NEWAGCP.SMICPRO3112]+ F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) Après si ([V_NEWAGCP.AF032025]) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) Version 2 Correctif des apprentis il ne faut calculer BC_BRUT_APP et BC_BRUT_APP_PL que pour les apprentis BC_BRUT_APP Avant MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) BC_BRUT_APP_PL Avant si ([BRUT.MONTANT]>0) alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([BRUT.MONTANT]>0) alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) Les apprentis peuvent avoir de la taxe sur les salaires BC_TAXESAL Avant si ((CONSTANTE(GENERAL.EXOTAXE)=1) ou (CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors (0) sinon ( si ( ensemble(CONSTANTE(CONTRAT.NATURECONTRAT);0016;0017) ) alors ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=10) alors(0) sinon ([B_COT_TAXESAL.MONTANT]- (CONSTANTE(GENERAL.SMICMENS)*0.11)) ) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) ) Après si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) Version 3 V_CSG.CUM_ABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65')) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3) et ([BC_BRUT_APP.MONTANT]>0) ) alors ([V_CSG.CUM_AV_ABT]*0.9825) sinon (0) ) sinon ([V_CSG.CUM_AV_ABT]*0.9825) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ([V_CSG.CUM_AV_ABT]*0.9825) sinon (0) ) sinon ([V_CSG.CUM_AV_ABT]*0.9825) V_CSG.CUM_NABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)='64') ou (CONSTANTE(CONTRAT.DSNINTITULE)='65')) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) V_NEWAGCP.CUMSMICPRO3112 Avant si ([V_NEWAGCP.AF032025]) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRO];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) Après si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) CONAIDE.SEUILAPPRENTI Avant CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS)* si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)>=2025) et (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=3)) alors (0.50) sinon (0.79) Après CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) * si (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) sinon (0.79*CONSTANTE(GENERAL.SMICMENS)) BC_CSG Pour gérer quand chg RG vers apprenti Avant si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0)) alors (0) sinon ( si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors ([FO.TOTAL]) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) sinon ( [V_CSG.CUM_ABT] +[V_CSG.CUM_NABT] -F_HISTOCLOT([BC_CSG.MONTANT]) ) ) ) Après si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0)) alors (0) sinon ( si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors ([FO.TOTAL]) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) sinon ( [V_CSG.CUM_ABT] +[V_CSG.CUM_NABT] -F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) Fonction F_TAXE2 Avant MAXIMUM( MINIMUM( CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL3)/12 ;histocumulJOINT(BRUT)+BRUT ) - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL2)/12) ;0) - histocumulJOINT(TAXE2) Après MAXIMUM( MINIMUM( CONSTANTE(GENERAL.MOIS_PAYE)*CONSTANTE(GENERAL.BASTAXESAL3)/12 ; si ((moisdeb=0) ou (anneedeb=0)) alors (histocumulJOINT(BRUT)) sinon (histocumulJOINT(BRUT;moisdeb;anneedeb)) +BRUT ) - CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL2)/12) ;0) - si ((moisdeb=0) ou (anneedeb=0)) alors (histocumulJOINT(TAXE2)) sinon (histocumulJOINT(TAXE2;moisdeb;anneedeb)) Fonction F_TAXE3 Avant MAXIMUM( histocumulJOINT(BRUT)+BRUT - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12)) ;0) - histocumulJOINT(TAXE3) Après MAXIMUM( si ((moisdeb=0) ou (anneedeb=0)) alors (histocumulJOINT(BRUT)) sinon (histocumulJOINT(BRUT;moisdeb;anneedeb)) +BRUT - (CONSTANTE(GENERAL.MOIS_PAYE)*(CONSTANTE(GENERAL.BASTAXESAL3)/12)) ;0) - si ((moisdeb=0) ou (anneedeb=0)) alors (histocumulJOINT(TAXE3)) sinon (histocumulJOINT(TAXE3;moisdeb;anneedeb)) BC_TAXE_SAL2 Avant si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( F_TAXE2([BC_TAXESAL.MONTANT];[BC_TAXE_SAL2.MONTANT]) ) Après si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( F_TAXE2([BC_TAXESAL.MONTANT];[BC_TAXE_SAL2.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE)) ) BC_TAXE_SAL3 Avant si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( F_TAXE3([BC_TAXESAL.MONTANT];[BC_TAXE_SAL3.MONTANT]) ) Après si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( F_TAXE3([BC_TAXESAL.MONTANT];[BC_TAXE_SAL3.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE)) ) Version 4 AGCPEXO.BASE Avant si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) ou ([V_ZRR.COEF]<>0)) alors (1) sinon (0) Après si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) ou ([REDZRRSECU.TXEMP]<>0)) alors (1) sinon (0) MALCOMP25.TXEMP Avant si ( ([BC_MALCOMP25.MONTANT]>0) ou (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) ) alors (6) sinon (0) Après si ( ([MALCOMP25.BASE]>0) ou (([BC_BRUT_STA.BASE]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) ) alors (6) sinon (0) Correctif NB_HEURESTOTAL Avant [NB_HEURESTPAYE.MONTANT] -CONSTANTE(CONTRAT.HEURESABSVALO) -CONSTANTE(CONTRAT.HRSMAINTIENABS) -CONSTANTE(CONTRAT.HRSCONGESVALO) -CONSTANTE(CONTRAT.HRSMAINTIENCG) Après [NB_HEURESTPAYE.MONTANT] -CONSTANTE(CONTRAT.HEURESABSVALO) -CONSTANTE(CONTRAT.HRSMAINTIENABS) -CONSTANTE(CONTRAT.HRSCONGESDEDU) -CONSTANTE(CONTRAT.HRSMAINTIENCG) Version 77 Version 1 Correctif pour éviter d'avoir de la taxe sur les salaires pour les apprentis quand pas de csg BC_TAXESAL Avant si (CONSTANTE(GENERAL.EXOTAXE)=1) alors (0) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) Après declarer (dotaxe) affecter (dotaxe; si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0)) alors (1) sinon (0) ) sinon (1) ) si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1)) alors (0) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) )Version 2 Pour corriger MALCOMP25.TXEMP de merde Version 78 MALCOMP25.TXEMP Avant si ( ([PEIG140987.PEIG92641]>0) ou (([BC_BRUT_STA.BASE]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) ) alors (6) sinon (0) Après si ( (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) ou ([MALCOMP25.BASE]>0) ) alors (6) sinon (0)Version 79 V_NEWAGCP.CUMSMICPRO3112 : Pour corriger quand exonération Avant si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) Après si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) V_NEWAGCP.AF032025 : Pour corriger incorrect salarié clos Avant si ([AGCPEXO.BASE]=1) alors (0) sinon ( si (CONSTANTE(CONTRAT.CLOTURE)=0) alors (1) sinon ( si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025) ou (CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3)) alors (0) sinon (1) ) ) Après si ([AGCPEXO.BASE]=1) alors (0) sinon ( si (CONSTANTE(CONTRAT.CLOTURE)=0) alors (1) sinon ( si ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025) ou ((CONSTANTE(CONTRAT.ANNEE_CLOTURE)=2025) et (CONSTANTE(CONTRAT.MOIS_CLOTURE)<3))) alors (0) sinon (1) ) )Version 80 Version 1 Pour le complément maladie et les exo V_NEWAGCP.CUMSMICPRO3112 Avant si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors (F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT])) ) Après si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ( [V_AGCP.SMICPRORATE] + F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.SMICPRO3112] + F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) ) Version 81 Version 1 PERECO BC_PCO_901 Base de cotisation pour déclaration cotisation 901 (-1)*([PCO_NET.MONTANT]+[PCOA_NET.MONTANT]) PCO_901 Cotisation fictive pour déclarer la cotisation 901 rentre pour 0 dans COT_EMP Catégorie de cotisation 016 : retenue à la sourceVersion 82 Version 1 MALCOMP25.TXEMP Avant si ( (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) ou ([MALCOMP25.BASE]>0) ) alors (6) sinon (0) Après si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) Version 2 Pour le calcul du smic proraté dans le cas d'un forfait jour. Lorsque le nombre de jour de forfait jour pour un temps plein est inférieur à 218, il faut proratiser pour recalculer le smic à taux plein Ex : Forfait jour collectif = 211, Forfait du salarié = 200 Smic pro = 200/211  * 211/218  *  SMIC Source : https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html par 780 Voir également la fiche consigne https://net-entreprises.custhelp.com/app/answers/detail_dsn/a_id/2961/kw/nombres%20d& V_NEWAGCP.HREMU Avant si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) * si ([JRSNONTRAV.BASE]<>0) alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30) sinon(1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE] Après si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( 151.67* CONSTANTE(CONTRAT.JOUR_FORFAIT)/218 * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) * si ([JRSNONTRAV.BASE]<>0) alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30) sinon(1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE]Version 83 Version 1 Modification pour adaptation IFAC BC_BRUT_APP Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) BC_BRUT_APP_PL Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([BRUT.MONTANT]>0) alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT]);0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([BRUT.MONTANT]>0) alors (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT]);0;[CONAIDE.SEUILAPPRENTI])) sinon (PLAFONNER(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])*(-1);0;[CONAIDE.SEUILAPPRENTI]) *(-1)) +[BCOTASSREEL.MONTANT]*0 ) sinon (0) Ajout de BISTAXESAL : Toujours valorisée donne 1 si utilisation de BC_TAXESALBIS si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors (1) sinon (0) Ajout de BC_TAXESALBIS si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon (0) BC_TAXESAL declarer (dotaxe) affecter (dotaxe; si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0)) alors (1) sinon (0) ) sinon (1) ) si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1)) alors (0) sinon ( si ([BISTAXESAL.BASE]=1) alors ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([BC_TAXESALBIS.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [BC_TAXESALBIS.MONTANT] ) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) Version 84 Version 1 COTSALHORSECRE Pour virer la référence circulaire Avant exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL]) +exclure([COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL];[N_CSGECRTD.MTSALARIAL]) Après exclure([COT_SAL.MONTANT];[COT_SALDED.MONTANT];[N_CRDSECRET.MTSALARIAL];[N_CSGECRETND.MTSALARIAL]) +exclure([COT_SALDED.MONTANT];[N_CSGECRTD.MTSALARIAL]) V_CSG.CUM_AV_ABT Permettre de prendre le cumul csg à partir du changement de régime général vers régime apprenti Avant minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4 ) Après minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT];[CHGT_RGAPP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT];[CHGT_RGAPP.BASE];CONSTANTE(GENERAL.ANNEE_PAYE))+[PL_MENSA.MONTANT])*4 ) Modifications du paramètre T en mai 2025 Deux possibilités : Deux paramètres T et donc deux périodes Tolérance : Un paramètre T moyen Nous on va faire la première possibilité Ajout d'une rubrique libre AGCP2025 Cumul rémunération période 1 & 2 CUMHREMU1 CUMHREMU2 CUMHSUP1 CUMHSUP2 CUMSMICP1 CUMSMICP2 CUMREMUP1 CUMREMUP2 COEFREGIME CAS : Détermine la situation ou on est : 1 : Le calcul concerne 2025 la 1ère période : La période de paye est dans la 1ere période ou la date de clôture est dans la 1ère période 2 : Le calcul concerne 2025 la 2ème période : La période de paye est dans la 2ème période ou la date de clôture est dans la 2ème période 3 : Le calcul concerne 2024 : la date de clôture est 2024 4 : Le calcul concerne <2024 : La date de clôture est <2024 5 : Le calcul concerne 2026 ou supérieur : la période de paye est>=2026 et la date de clôture>=2026 Rubrique Créée : V_AGCP2025 CAS declarer (ANCLOT) affecter (ANCLOT; si (CONSTANTE(CONTRAT.CLOTURE)=1) alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE)*100+CONSTANTE(CONTRAT.MOIS_CLOTURE)) sinon (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)) ) si (:anclot>=2026) alors (5) sinon (si (:anclot>=202501) alors ( si (:anclot<=202504) alors (1) sinon (2) ) sinon (si (:anclot>=202401) alors (3) sinon (4) ) ) /* 1 : Le calcul concerne 2025 la 1ère période : La période de paye est dans la 1ere période ou la date de clôture est dans la 1ère période 2 : Le calcul concerne 2025 la 2ème période : La période de paye est dans la 2ème période ou la date de clôture est dans la 2ème période 3 : Le calcul concerne 2024 : la date de clôture est 2024 4 : Le calcul concerne <2024 : La date de clôture est <2024 5 : Le calcul concerne 2026 ou supérieur : la période de paye est>=2026 et la date de clôture>=2026 */ AGCP2025.CUMHSUP1 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.HSUP];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMHSUP2 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.HSUP];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMSMICP1 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.SMICPRO];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMSMICP2 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.SMICPRO];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMREMUP1 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.REMUCOEF];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMREMUP2 HISTOCUMULSITUBYANCLOT([V_NEWAGCP.REMUCOEF];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMADHSUP1 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.HSUP];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMADHSUP2 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.HSUP];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMADSMICP1 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADSMICPRO];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMADSMICP2 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADSMICPRO];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMADREMUP1 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADREMUCOEF];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) AGCP2025.CUMADREMUP2 HISTOCUMULSITUBYANCLOT([V_AD_AGCP.ADREMUCOEF];maximum([AGCPDEBUT.MONTANT];05);2025) AGCP2025.CUMIJBRUT si ([AGCP2025.CAS]=1) alors ( HISTOCUMULSITUBYANCLOT([IJBRUT.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([AGCP2025.CAS]=2) alors ( HISTOCUMULSITUBYANCLOT([IJBRUT.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon (F_AGCP([IJBRUT.MONTANT])) ) Rubrique modifiée : V_NEWAGCP et V_AD_AGCP V_NEWAGCP CUMREMUCOEF Avant [V_NEWAGCP.REMUCOEF] + si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) ) Après [V_NEWAGCP.REMUCOEF] + si ([V_AGCP2025.CAS]=1) alors ( [V_AGCP2025.CUMREMUP1] ) sinon (si ([V_AGCP2025.CAS]=2) alors( [V_AGCP2025.CUMREMUP2] ) sinon ( si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.REMUCOEF];[AGCPDEBUT.MONTANT])) ) ) ) CUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) Après si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_NEWAGCP.SMICPRO]+ si ([V_AGCP2025.CAS]=1) alors ([V_AGCP2025.CUMSMICP1] ) sinon (si ([V_AGCP2025.CAS]=2) alors([V_AGCP2025.CUMSMICP2] ) sinon ( si ( ([PLAFONDSECU.NUMCAS]=1) et ((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024) alors (F_AGCP([V_AGCP.SMICPRORATE];[AGCPDEBUT.MONTANT])) sinon (F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT])) ) ) ) ) sinon ([V_NEWAGCP.TOTSMICPRO]) V_NEWAGCP.COEF Avant si ( ([V_NEWAGCP.CUMREMUCOEF]+[IJBRUT.MONTANT]+F_AGCP([IJBRUT.MONTANT])<= 0 ) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors (0) sinon ( maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; ([V_NEWAGCP.MAXCOEF]/0.6)* ((1.6*[V_NEWAGCP.CUMSMICPRO]/[V_NEWAGCP.CUMREMUCOEF])-1) ) ) ) Après si ( ([V_NEWAGCP.CUMREMUCOEF]+[IJBRUT.MONTANT]+[V_AGCP2025.CUMIJBRUT]<= 0 ) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors (0) sinon ( maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; ([V_NEWAGCP.MAXCOEF]/0.6)* ((1.6*[V_NEWAGCP.CUMSMICPRO]/[V_NEWAGCP.CUMREMUCOEF])-1) ) ) ) V_NEWAGCP.AGCPURSSAF Avant si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPURSSAF] - F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) ) Après si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPURSSAF] - si ([V_AGCP2025.CAS]=1) alors ( HISTOCUMULSITUBYANCLOT([BC_AGCPURSSAF.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors( HISTOCUMULSITUBYANCLOT([BC_AGCPURSSAF.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_HISTOCLOTSIT([BC_AGCPURSSAF.MONTANT]) ) ) ) V_NEWAGCP.AGCPAA Avant si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPAA] - F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) ) Après si ( ([PLAFONDSECU.NUMCAS]=2) et ([V_NEWAGCP.TOTALAGCP]=histo([V_AGCP.TOTAGCPRENF];CONSTANTE(CONTRAT.MOIS_CLOTURE);CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) alors ( 0 ) sinon ( [V_NEWAGCP.TOTAGCPAA] - si ([V_AGCP2025.CAS]=1) alors ( HISTOCUMULSITUBYANCLOT([BC_AGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors( HISTOCUMULSITUBYANCLOT([BC_AGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_HISTOCLOTSIT([BC_AGCPRUAA.MONTANT]) ) ) ) V_NEWAGCP.CUMHSUP Avant [V_NEWAGCP.HSUP] + si ( ([PLAFONDSECU.NUMCAS]=1) et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) Après [V_NEWAGCP.HSUP] + si ([AGCP2025.CAS]=1) alors ( [AGCP2025.CUMHSUP1] ) sinon (si ([AGCP2025.CAS]=2) alors( [AGCP2025.CUMHSUP2] ) sinon ( si ( ([PLAFONDSECU.NUMCAS]=1) et((CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) ou (CONSTANTE(GENERAL.AGCP_AD)=1)) ) alors ( F_AGCP([V_NEWAGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) ) ) V_NEWAGCP.CUMSMICPRO3112 Avant si ([V_NEWAGCP.AF032025]=1) alors ( [V_NEWAGCP.CUMSMICPRO] ) sinon ( si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ( [V_AGCP.SMICPRORATE] + F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.SMICPRO3112] + F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) ) Après si ([V_NEWAGCP.AF032025]=1) alors ( si ([V_AGCP2025.CAS]<=2) alors ( [V_NEWAGCP.SMICPRO] + F_AGCP([V_NEWAGCP.SMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.CUMSMICPRO] ) ) sinon ( si ((CONSTANTE(CONTRAT.CLOTURE)=1) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ( [V_AGCP.SMICPRORATE] + F_AGCP([V_AGCP.CUMSMICPRORATE];[AGCPDEBUT.MONTANT]) ) sinon ( [V_NEWAGCP.SMICPRO3112] + F_AGCP([V_NEWAGCP.SMICPRO3112];[AGCPDEBUT.MONTANT]) ) ) V_NEWAGCP.COEFREGIME Avant si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) Après si ([PLAFONDSECU.NUMCAS]=1) alors ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTE(GENERAL.COEFAGCPMSA)=0) alors (CONSTANTE(GENERAL.COEFAGCPURSSAF)) sinon (CONSTANTE(GENERAL.COEFAGCPMSA)) ) sinon (CONSTANTE(GENERAL.COEFAGCPURSSAF)) ) sinon ( si (CONSTANTE(CONTRAT.DSNREGIMEMALADIE)=300) alors (si (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))=0) alors (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) sinon (CONSTANTEHIS(GENERAL.COEFAGCPMSA;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) sinon (CONSTANTEHIS(GENERAL.COEFAGCPURSSAF;12;CONSTANTE(CONTRAT.ANNEE_CLOTURE))) ) + si ([V_AGCP2025.CAS]=2) alors (0,0004) sinon (0) V_AD_AGCP ADCUMSMICPRO Avant si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_AD_AGCP.ADSMICPRO]+F_AGCP([V_AD_AGCP.ADSMICPRO];[AGCPDEBUT.MONTANT]) ) sinon ([V_AD_AGCP.ADTOTSMICPRO]) Après si (CONSTANTE(GENERAL.SMICAGCP)=0) alors ( [V_AD_AGCP.ADSMICPRO]+ si ([AGCP2025.CAS]=1) alors ([AGCP2025.CUMADSMICP1] ) sinon (si ([AGCP2025.CAS]=2) alors([AGCP2025.CUMADSMICP2] ) sinon ( F_AGCP([V_AD_AGCP.ADSMICPRO];[AGCPDEBUT.MONTANT]) ) ) ) sinon ([V_AD_AGCP.ADTOTSMICPRO]) AFCOEF Avant si ( ([V_AD_AGCP.ADCUMREMUCOEF]+[IJBRUT.MONTANT]+F_AGCP([IJBRUT.MONTANT])<= 0 ) ou ([V_AD_AGCP.ADCUMSMICPRO]<=0) ) alors (0) sinon ( maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; 1.2*([V_NEWAGCP.MAXCOEF]/0.4)* ((1.6*[V_AD_AGCP.ADCUMSMICPRO]/[V_AD_AGCP.ADCUMREMUCOEF])-1) ) ) ) Après si ( ([V_AD_AGCP.ADCUMREMUCOEF]+[IJBRUT.MONTANT]+[AGCP2025.CUMIJBRUT]<= 0 ) ou ([V_AD_AGCP.ADCUMSMICPRO]<=0) ) alors (0) sinon ( maximum(0; MINIMUM([V_NEWAGCP.MAXCOEF]; 1.2*([V_NEWAGCP.MAXCOEF]/0.4)* ((1.6*[V_AD_AGCP.ADCUMSMICPRO]/[V_AD_AGCP.ADCUMREMUCOEF])-1) ) ) ) ADAGCPURSSAF Avant [V_AD_AGCP.ADTOTAGCPURSSAF] - histocumulsitu([BC_ADAGCPURSS.MONTANT]) Après [V_AD_AGCP.ADTOTAGCPURSSAF] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPURSS.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPURSS.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPURSS.MONTANT]) ) ) ADAGCPAA Avant [V_AD_AGCP.ADTOTAGCPAA] - histocumulsitu([BC_ADAGCPRUAA.MONTANT]) Après [V_AD_AGCP.ADTOTAGCPURSSAF] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPRUAA.MONTANT]) ) ) ADCUMREMUCOEF Avant [V_AD_AGCP.ADREMUCOEF] + F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT]) Après [V_AD_AGCP.ADREMUCOEF] + si ([AGCP2025.CAS]=1) alors ( [AGCP2025.CUMADSMICP1] ) sinon (si ([AGCP2025.CAS]=2) alors( [AGCP2025.CUMADSMICP2] ) sinon ( F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT]) ) ) CUMHSUP Avant [V_AD_AGCP.HSUP] + si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) alors ( F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) Après [V_AD_AGCP.HSUP] + si ([AGCP2025.CAS]=1) alors ( [AGCP2025.CUMADHSUP1] ) sinon (si ([AGCP2025.CAS]=2) alors( [AGCP2025.CUMADHSUP2] ) sinon ( si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024) alors ( F_AGCP([V_AD_AGCP.HSUP];[AGCPDEBUT.MONTANT]) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) * F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) / ( F_AGCP([AD_HNEXO.BASE];[AGCPDEBUT.MONTANT]) +F_AGCP([AD_HEXO.BASE];[AGCPDEBUT.MONTANT]) ) ) sinon ( F_AGCP([AGCP_HREMUPLUS.MONTANT];[AGCPDEBUT.MONTANT]) ) ) ) ) Version 87 ALLOCFAM Avant si ( ([V_NEWAGCP.CUMREMUCOEF]>[V_NEWAGCP.TXSMICAF]*[V_NEWAGCP.CUMSMICPRO3112]) et ([V_NEWAGCP.CUMREMUCOEF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) Après 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) BC_REGALLOC Avant declarer (TXSMIC) affecter (TXSMIC; si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2025)) alors (3.5) sinon (3.3) ) si ( ([V_NEWAGCP.CUMREMUCOEF]<=(:TXSMIC*[V_NEWAGCP.CUMSMICPRO3112])) ou ([V_NEWAGCP.CUMREMUCOEF]<=0) ou ([V_NEWAGCP.CUMSMICPRO]<=0) ) alors ( histocumulsitu([V_ALLOC.BASEALLOC])*(-1) -histocumulsitu([BC_REG_ALLOC.MONTANT]) ) sinon ( histocumulsitu([V_ALLOC.BASEALLOCRED]) +histocumulsitu([BC_REG_ALLOCRE.MONTANT]) ) Après 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]) ) Version 88 Version 1 V_AD_AGCP.ADAGCPAA Avant [V_AD_AGCP.ADTOTAGCPURSSAF] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPRUAA.MONTANT]) ) ) Après [V_AD_AGCP.ADTOTAGCPAA] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPRUAA.MONTANT]) ) )Version 2 Saisie arret https://wikiapp.heberg-eig.fr/books/saisie-arret/page/rubriques https://wikiapp.heberg-eig.fr/books/saisie-arret/page/rubriques-a-creer Version 3 Correction BC_ADAGCPRUAA et BC_ADAGCPURSS A l'évaluation , anomalie bloc de parenthèse incorrect BC_ADAGCPURSS 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.ADAGCPURSSAF]) sinon (0) ) sinon (0) Après 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) ) 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 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.ADAGCPAA]) sinon (0) ) sinon (0) ) Version 89 Version 1 Correction de la formule V_AD_AGCP.ADAGCPAA Car ca donne le même montant que le montant urssaf Avant [V_AD_AGCP.ADTOTAGCPURSSAF] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPRUAA.MONTANT]) ) ) Après [V_AD_AGCP.ADTOTAGCPAA] - si ([V_AGCP2025.CAS]=1) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];01);2025;04;2025) ) sinon (si ([V_AGCP2025.CAS]=2) alors ( histocumulsitubyanclot([BC_ADAGCPRUAA.MONTANT];maximum([AGCPDEBUT.MONTANT];05);2025) ) sinon ( F_histoclotsit([BC_ADAGCPRUAA.MONTANT]) ) ) Correction de la formule V_AD_AGCP.ADCUMREMUCOEF Avant [V_AD_AGCP.ADREMUCOEF] + si ([V_AGCP2025.CAS]=1) alors ( [V_AGCP2025.CUMADSMICP1] ) sinon (si ([V_AGCP2025.CAS]=2) alors( [V_AGCP2025.CUMADSMICP2] ) sinon ( F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT]) ) ) Après [V_AD_AGCP.ADREMUCOEF] + si ([V_AGCP2025.CAS]=1) alors ( [V_AGCP2025.CUMADREMUP1] ) sinon (si ([V_AGCP2025.CAS]=2) alors( [V_AGCP2025.CUMADREMUP2] ) sinon ( F_AGCP([V_AD_AGCP.ADREMUCOEF];[AGCPDEBUT.MONTANT]) ) ) Version 2 Ajout de la cotisation VMRR : Versement mobilité régional et rural TRANSPVMRR: Rubrique de cotisation Assiette : BC_BRUTURSSAF Pour la formule taux : CONSTANTE(CONTRAT.VTAUX_TAXETRANSPORTVMRR) Version 3 TRANSPVMRRMED : Versement mobilité régional et rural taux réduit Base de la cotisation : BC_BRUTURSSAF Pas de taux, à définir dans le gestionnaire de régimeVersion 90 Version 1 avec nouveau majbase TRANSPVMRR.TXEMP Permet de prendre en compte la modification du taux VMRR Avant CONSTANTE(CONTRAT.VTAUX_TAXETRANSPORTVMRR) Après LISTEGEN(TX_TRANSPVMRR;CONSTANTE(CONTRAT.TAUX_TAXETRANSPORTVMRR))Version 2 Création de la rubrique ACCIDENT_MISP Base de cotisation : BC_AT_MISP Taux : 100 BC_AT_MISP Avant (CONSTANTE(GENERAL.PLFSECUHEURE)*0.07) * [NB_HEURESTPAYE.MONTANT] Après (CONSTANTE(GENERAL.PLFSECUHEURE)*0.07) * [NB_HEURESTPAYE.MONTANT] * LISTEGEN(TX_ACC;CONSTANTE(CONTRAT.TAUX_ACCIDENTTRAVAIL)) / 100 Création de la rubrique indemnité de volontariat associatif SC_IND_VOLON : Indemnité volontariat associatif Le montant a pour participation uniquement le brut en + et le brut fiscal en - (l'indemnité n'est pas soumise à l'impôt sur le revenu). Pour les cotisations : VIEILLESSE_SC : Vieillesse service civique VIEIL_SC_TRA : Vieillesse SC sur tranche A N_CSGND_SC : C.S.G non déductible service civique. Base BC_CRDS  Taux 9.20%  CTP : 594 Version 3 Modification de la formule V_NEWAGCP.HREMU Permet de régler le problème de saisir H_NONTRAV dans un bulletin de régul et qui n'était pas pris en compte dans le calcul agcp Ticket Jira Avant si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( 151.67* CONSTANTE(CONTRAT.JOUR_FORFAIT)/218 * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) * si ([JRSNONTRAV.BASE]<>0) alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30) sinon(1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE] - si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1) alors ([H_N0NTRAV.BASE]) sinon (0) Après si (([NB_HEUREREMU.BASE]=0) ou (CONSTANTE(CONTRAT.TYPESALARIE)=5)) alors ( {Assistante Maternelle} si (CONSTANTE(CONTRAT.NATURECONTRAT)=0003) alors (( CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) * ( si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) ) sinon ( {Forfait Annuel en jours} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( 151.67* CONSTANTE(CONTRAT.JOUR_FORFAIT)/218 * si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0)) alors ([BC_BRUT_URSAFF.MONTANT] / ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]) ) sinon (1) * si ([JRSNONTRAV.BASE]<>0) alors(maximum(1;(30 - [JRSNONTRAV.BASE])) / 30) sinon(1) ) sinon ( {Forfait Annuel en heures} si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=5) alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.HEURE_FORFAIT)/1596 * si ([IJBRUT.MONTANT]<>0) alors ([BC_BRUT_URSAFF.MONTANT]/([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT]) ) sinon (1) ) {Horaire fixe / Horaire variable} sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AD_HNEXO.BASE]) sinon ([NB_HEURESCON.MONTANT]) * ( ([AGCP_NUMHREMU.MONTANT] / [B_PXHEURE.MONTANT] ) ) + si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE])) sinon ([AGCP_HREMUPLUS.MONTANT]) ) ) ) ) sinon ( [NB_HEUREREMU.BASE]) +[NB_HREMUREGUL.BASE] + si (CONSTANTE(CONTRAT.RAPPEL_FICHE)=1) alors ([H_N0NTRAV.BASE]) sinon (0)Version 4 Correctif cotisation retraite passage apprenti vers régime général Correction de la rubrique CHGT_APP : Toujours valorisé à NON Modification de BC_TU1_RET Avant F_TRANCHEANEW([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[PL_MENSA.MONTANT]) Après F_TRANCHEANEW([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[PL_MENSA.MONTANT];[CHGT_APP.BASE]) Modification de la fonction F_TRANCHEB Transformation du paramètre SOMMEISO en MOISDEB Avant maximum (minimum( F_HISTOCLOT(BRUT) +BRUT -(F_HISTOCLOT(TRANCHEA) +TRANCHEA ) ; F_HISTOCLOT(PLAFB) +PLAFB ) ; 0) -F_HISTOCLOT(TRANCHEB) Après maximum (minimum( F_HISTOCLOT(BRUT;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) +BRUT -(F_HISTOCLOT(TRANCHEA;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) +TRANCHEA ) ; F_HISTOCLOT(PLAFB;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) +PLAFB ) ; 0) -F_HISTOCLOT(TRANCHEB;MOISDEB;CONSTANTE(GENERAL.ANNEE_PAYE)) Modification de la rubrique BC_TU2_RET Avant F_TRANCHEB([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[BC_TU2_RET.MONTANT];[PL_MENSB_7PSS.MONTANT]) Après F_TRANCHEB([BC_BRUT_RET.MONTANT];[BC_TU1_RET.MONTANT];[BC_TU2_RET.MONTANT];[PL_MENSB_7PSS.MONTANT];[CHGT_APP.BASE]) Version 5 CSG pour les apprentis La CSG pour les apprentis sur la partie supérieur à 50% du smic mensuel. Le pb est que l'assiette CSG est calculée en annuel pour le problème des 4 plafonds. Pour contourner le problème on va calculer la CSG en mensuel pour les apprentis. V_CSG.CUM_AV_ABT Avant minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4 ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) ) alors ([B_COT_CSG_ABT.MONTANT]) sinon (0) ) sinon ( minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4 ) ) V_CSG.CUM_NABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( [B_COT_CSG_ABT.MONTANT] + [B_COT_CSG_NABT.MONTANT] ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) BC_CSG Avant si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0)) alors (0) sinon ( si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors ([FO.TOTAL]) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) sinon ( [V_CSG.CUM_ABT] +[V_CSG.CUM_NABT] -F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) Après si ((CONSTANTE(CONTRAT.PAS_RESIDENTETRANGER)=1) et (CONSTANTE(CONTRAT.PAS_ACTIF)=0)) alors (0) sinon ( si ((CONSTANTE(CONTRAT.NATURECONTRAT)=0008) et ([FO.TOTAL]<>0)) alors ([FO.TOTAL]) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2024)) alors ([B_COT_CSG.MONTANT]) sinon ( [V_CSG.CUM_ABT] +[V_CSG.CUM_NABT] - si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors (0) sinon ( F_HISTOCLOT([BC_CSG.MONTANT];[CHGT_RGAPP.MONTANT];CONSTANTE(GENERAL.ANNEE_PAYE)) ) ) ) ) Version 6 FNGS pour les apprentis Problème de concordance entre la base Assedic et la base FNGS A priori, il suffit juste de modifier la base de cotisation dans la gestion des régimes. Version 7 Ticket 742839 : Problème de calcul de la Zrr Il faut modifier la rubrique libre V_ZRR MTREDTRANSP Avant [V_ZRR.MTREDUCTION]*([TRANSPORT.TXEMP]) /[B_TXZRR.MONTANT] Après [V_ZRR.MTREDUCTION]*([TRANSPORT.TXEMP]) /[V_ZRR.SOMTXZRR] MTREDFNAL Avant [V_ZRR.MTREDUCTION]*([FNAL.TXEMP]+[FNAL_TRA.TXEMP]+[FNAL_DEPLAF.TXEMP]) /[B_TXZRR.MONTANT] Après [V_ZRR.MTREDUCTION]*([FNAL.TXEMP]+[FNAL_TRA.TXEMP]+[FNAL_DEPLAF.TXEMP]) /[V_ZRR.SOMTXZRR] Version 91 Version 1 V_CSG : Eléments de calcul CSG Le calcul de la CSG n'est pas correct pour les apprentis. La base non abattue est additionnée de la part abattue Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( [B_COT_CSG_ABT.MONTANT] + [B_COT_CSG_NABT.MONTANT] ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( [B_COT_CSG_NABT.MONTANT] ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) )version 92 Version 1 : Apprenti Lors d'un passage régime général vers apprenti après 03/2025 pour un salarié embauché avant, les nouvelles règles ne s'appliquent pas. Il faut créer une rubrique de paye en éléments constants (APPRENTI0325) pour forcer l'application de ces règles. Ajouter la rubrique apprenti0325 pour forcer l'embauche à mars 2025 Mettre 1 pour forcer le fait que c'est un apprenti après 2025 Ajouter une formule à la rubrique APPRENTI : APPRENTI.APPRENTI0325 Si (([APPRENTI0325.BASE]=1) ou ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503)) ) alors (1) sinon (0) V_CSG.CUM_AV_ABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) alors ([B_COT_CSG_ABT.MONTANT]) sinon (0) ) sinon ( minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4 ) ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([APPRENTI.APPRENTI0325]=1) alors ([B_COT_CSG_ABT.MONTANT]) sinon (0) ) sinon ( minimum( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT]) ; (F_HISTOCLOT([PL_MENSA.MONTANT])+[PL_MENSA.MONTANT])*4 ) ) V_CSG.CUM_N_ABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( [B_COT_CSG_NABT.MONTANT] ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( ([APPRENTI.APPRENTI0325]=1) et ([BC_BRUT_APP.MONTANT]>0) ) alors ( [B_COT_CSG_NABT.MONTANT] ) sinon (0) ) sinon ( (F_HISTOCLOT([B_COT_CSG_ABT.MONTANT])+[B_COT_CSG_ABT.MONTANT] - [V_CSG.CUM_AV_ABT]) + (F_HISTOCLOT([B_COT_CSG_NABT.MONTANT])+[B_COT_CSG_NABT.MONTANT]) ) CUM_ABT Avant si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) ) alors ([V_CSG.CUM_AV_ABT]*0.9825) sinon (0) ) sinon ([V_CSG.CUM_AV_ABT]*0.9825) Après si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([APPRENTI.APPRENTI0325]=1) alors ([V_CSG.CUM_AV_ABT]*0.9825) sinon (0) ) sinon ([V_CSG.CUM_AV_ABT]*0.9825) BC_TAXESAL Avant declarer (dotaxe) affecter (dotaxe; si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) et ([BC_BRUT_APP.MONTANT]>0)) alors (1) sinon (0) ) sinon (1+0) ) si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1)) alors (0) sinon ( si ([BISTAXESAL.BASE]=1) alors ([BC_TAXESALBIS.MONTANT]) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) ) Après declarer (dotaxe) affecter (dotaxe; si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ( ([APPRENTI.APPRENTI0325]=1) et ([BC_BRUT_APP.MONTANT]>0) ) alors (1) sinon (0) ) sinon (1+0) ) si ((:dotaxe=0) ou (CONSTANTE(GENERAL.EXOTAXE)=1)) alors (0) sinon ( si ([BISTAXESAL.BASE]=1) alors ([BC_TAXESALBIS.MONTANT]) sinon ( si (CONSTANTE(CONTRAT.NATURECONTRAT)=0008) alors ( si ([FO.TOTAL]<>0) alors ([FO.TOTAL]) sinon ([B_COT_TAXESAL.MONTANT]) ) sinon ( SI ([EXOTAXESAL.MONTANT]=0) ALORS ([B_COT_TAXESAL.MONTANT]) SINON ( (100-[EXOTAXESAL.MONTANT])/100 * [B_COT_TAXESAL.MONTANT] ) ) ) ) CONAIDE.SEUILAPPRENTI Avant CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) * si (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>=202503) alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) sinon (0.79*CONSTANTE(GENERAL.SMICMENS)) Après CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) * si ([APPRENTI.APPRENTI0325]=1) alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) sinon (0.79*CONSTANTE(GENERAL.SMICMENS)) Version 2 : Ajout rubrique CP_DIF_TRIM c'est une copie de CP_DIF. Le libellé est Indemnité différentielle de congés trimestriels 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 0-> RGDU mensuel 1-> RGDU Urssaf mensuel 2-> RGDU AA mensuel 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) Version 3 : RGDU : Allocation Familiale 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) V_ALLOC Toujours calculé à False Mise à zéro de toutes les formules sauf BASEALLOC Version 3 RGDU : Complément maladie Il y a toujours un complément maladie BC_MALCOMP25 Avant si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) Après si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ([BC_BRUT_URSAFF.MONTANT]) MALCOMP25.TXEMP Avant si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) Après si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) ) sinon (6 ) Version 3 : Problèmes sur plafond antérieur Alerte  de Christophe sur PLAFONDS_A : Utilise une constante qui n'existe plus : PLAFONDS_A : Je le met à toujours calculé non PLAFONDS_A.PLA_MOIS Avant SI ((CONSTANTE(General.PRORATAPLAFOND)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201807) ) alors (maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.NEW_PLA_MOIS]))) sinon(maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.ANC_PLA_MOIS]))) Après 0 PLAFONDS_A.PLA_MOISANT Avant SI ((CONSTANTE(General.PRORATAPLAFOND)=1) ou (CONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=201807) ) alors (maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.NEW_PLA_MOISANT]))) sinon(maximum(0;MINIMUM(CONSTANTE(GENERAL.PLFSECUMOIS);[PLAFONDS_A.ANC_PLA_MOISANT]))) Après 0 ANC_PLA_MOISANT Avant si ((CONSTANTE(GENERAL.JRS_ANT)=1) et (CONSTANTE(CONTRAT.NEUTRAL_PLAF)>0)) alors ( si ( Constante(General.Mois_paye)=2) alors ( si ([JRSPLAFOND.MONTANT]>=28) alors ([PLAFONDS_A.PLA_MOIS] / 30) sinon ([PLAFONDS_A.PLA_MOIS] / [JRSPLAFOND.MONTANT]) ) sinon ( [PLAFONDS_A.PLA_MOIS] / minimum([JRSPLAFOND.MONTANT];30)) * [ANT_JOURS.BASE] + si ([ANT_HEURES.MONTANT]<>0) alors ( minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS)*[ANT_HEURES.BASE]/CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) ) sinon (0) ) sinon (0) Après 0 NEW_PLA_MOISANT Avant si (CONSTANTE(GENERAL.JRS_ANT)=1) alors ( minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS) * ( si ([PL_PROTPSPAR.MONTANT]=0) alors (1) sinon ( si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4) alors ( CONSTANTE(CONTRAT.TAUXPLAFOND)/100 ) sinon ( (CONSTANTE(CONTRAT.HORAIREMENSUEL)+[ANT_HEURES.MONTANT]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) ) ) ) *( minimum(maximum(0;[ANT_JOURS.BASE]);CONSTANTE(GENERAL.NBJMOISPAYE_1)) /CONSTANTE(GENERAL.NBJMOISPAYE_1) ) ) sinon (0) Après 0 Version 3 : Calcul différentiel smic coefficient internat externat 66_DIFINTEXT Différence internatexternat Avant CONSTANTE(CONTRAT.HORAIREMENSUEL)/CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * si ([COEFEXT66.COEFEXT66]=0) alors (0) sinon ( maximum( ([COEFREF.COEFREF]-[COEFEXT66.COEFEXT66]) * [VP.VP] * (1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ;0 ) ) Après CONSTANTE(CONTRAT.HORAIREMENSUEL)/CONSTANTE(CONTRAT.HORAIRECOLLECTIF) * si ([COEFEXT66.COEFEXT66]=0) alors (0) sinon ( declarer (coefext) affecter(coefext;COEFANCEXT(CONSTANTE(CONTRAT.IDGRILLE);[66_ECHELON.MONTANT])) maximum( si (:coefext=0) alors ([COEFREF.COEFREF]-[COEFEXT66.COEFEXT66]) sinon ( ([COEFANC.COEFANC]-:coefext) ) * [VP.VP] * (1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ;0 ) ) Version 4 VMRR taux réduit TRANSPVMRRMED.TXEMP Avant 0 Après Non modifiable LISTEGEN(TX_TRANSPVMRR;CONSTANTE(CONTRAT.TAUX_TAXETRANSPORTVMRR))Version 5 Correction pour AGCP AD BC_ADAGCPRUAA F_RGDU(12) BC_ADAGCPURSS F_RGDU(11) On va créer deux bases de cotisation correspondant au brut urssaf AD exo et brut urssaf AD nexo BC_BRUT_ADEXO si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AGCPITREMU.MONTANT]*[AD_HEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon (0) BC_BRUT_ADNEXO si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon (0) Complément maladie BC_MALCOMP25 En 2026, pour les AD, on devrait avoir Toujours le complément maladie pour la partie non exo Pour la partie non exo, Complément maladie si la rému> 2.25SMIC Mais on va considérer qu'un AD ne gagne jamais au dessus de 2.25SMIC Il paiera juste le complément sur la partie non exo declarer (PASADREMU) affecter (PASADREMU;[AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]) ) si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026) ) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (:PASADREMU) sinon ([BC_BRUT_URSAFF.MONTANT]) ) Allocation familiale En 2026, pour les AD, on devrait avoir Toujours l'allocation familiale taux plein pour la partie non exo Pour la partie non exo, l'allocation familiale taux plein si la rému> 3.3SMIC La encore on considère que le salarié a une rémunération <3.3 SMIC Du coup rien à changer dans les rubriques Il suffira d'appliquer la base BC_BRUT_ADNEXO pour le régime AD et pour la rubrique ALLOCFAM Version 6 Correctif ALLOCFAM.TXEMP Avant 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 (LISTEGEN(TX_ALLOCF;0001)) Après si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<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 (LISTEGEN(TX_ALLOCF;0001)) ALLOCFAMREDUIT Avant 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) Après si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<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) version 7 Correction pour le budget de merde ALLOCFAM.TXEMP Avant si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<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 (LISTEGEN(TX_ALLOCF;0001)) Après si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026) alors ( LISTEGEN(TX_ALLOCF;0001) ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0001)) ) sinon (LISTEGEN(TX_ALLOCF;0001)) ) ALLOCFAMREDUIT Avant si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<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) Après si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026) alors ( 0 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon (0) ) BC_MALCOMP25 Avant declarer (PASADREMU) affecter (PASADREMU;[AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE]) ) si ( (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) ou (CONSTANTE(GENERAL.ANNEE_PAYE)<2026) ) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (:PASADREMU) sinon ([BC_BRUT_URSAFF.MONTANT]) ) Après declarer (REMU) affecter (REMU;si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon ([BC_BRUT_URSAFF.MONTANT]) ) si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026) alors ( :remu ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon (:remu) ) MALCOMP25.TXEMP La passer en non modifiable Dans le budget il faudra l'enlever et la remettre Avant si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) ) sinon (6 ) Après si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026) alors ( 6 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) ) sinon (6) ) Version 8 La fonction F_RGDU n'était  pas correcte : Annee mois pas bon 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) Version 9 : Complément maladie BC_MALCOMP25 on est forcément après 2026 si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon ([BC_BRUT_URSAFF.MONTANT]) ) MALCOMP25.TXEMP si ([MALCOMP25.BASE]>0) alors (6) sinon ( si (([BC_BRUT_STA.MONTANT]>0) et (CONSTANTE(CONTRAT.DSNNATURE)=29)) alors (6) sinon (0) ) MALCOMP25NREG.TXEMP : On ne change pas Version 10 Allocation familiale ALLOCFAM.TXEMP si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) sinon (LISTEGEN(TX_ALLOCF;0001)) ALLOCFAMREDUIT.TXEMP si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon (0) Version 11 Code 146 Ajout de la rubrique itérative COT146 qui permet de lister les rubriques concernés par le code 146 Modification de F_RGDU Prise en compte de la prime de partage de la valeur pour l'aide à domicile 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)Version 12 Alloc fam Aide à domicile Pour les heures non exonérées : L'allocation familiale taux plein et le complément maladie s'applique pour la part des heures non exonérées L'allocation familiale taux réduit et pas de complément maladie pour la part des heures exonérées Pour cela, modification de la rubrique ALLOCFAMREDUIT.TXEMP si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (LISTEGEN(TX_ALLOCF;0002)) sinon (0) ) D'autre part il faut modifier la base de cotisation pour le régime AD : Version 13 Modification de REDUCPAT.TXEMP Avant si (CONSTANTE(GENERAL.MTREDUCHEURE)=0) alors ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=19) alors (1.50) sinon ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=249) alors (0.50) sinon (0) ) ) sinon (CONSTANTE(GENERAL.MTREDUCHEURE)) Après si (CONSTANTE(GENERAL.MTREDUCHEURE)=0) alors ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=19) alors (1.50) sinon (0.50) ) sinon (CONSTANTE(GENERAL.MTREDUCHEURE)) Modification de REDUCRTTPAT.TXEMP Avant si (CONSTANTE(GENERAL.MTREDUCHEURE)=0) alors ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=19) alors (1.50) sinon ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=249) alors (0.50) sinon (0) ) ) sinon (CONSTANTE(GENERAL.MTREDUCHEURE)) Après si (CONSTANTE(GENERAL.MTREDUCHEURE)=0) alors ( si (CONSTANTE(GENERAL.NBSALARIE0101)<=19) alors (1.50) sinon (0.50) ) sinon (CONSTANTE(GENERAL.MTREDUCHEURE)) Version 14 Pour l'aide à domicile BC_MALCOMP25 et la ZRR Avant declarer (REMU) affecter (REMU;si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([AGCPITREMU.MONTANT]*[AD_HNEXO.BASE]/([AD_HEXO.BASE]+[AD_HNEXO.BASE])) sinon ([BC_BRUT_URSAFF.MONTANT]) ) si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2026) alors ( :remu ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) sinon (:remu) ) Après declarer (MTAV2025) affecter (MTAV2025; si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) ) si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ([BC_BRUT_ADNEXO.MONTANT]) sinon ( si ([AGCPEXO.BASE]=1) alors ( :MTAV2025 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon ( [BC_BRUT_URSAFF.MONTANT]) ) ) ALLOCFAM.TXEMP Avant Après declarer (MTAV2025) affecter (MTAV2025; si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (LISTEGEN(TX_ALLOCF;0001)) sinon ( si ([AGCPEXO.BASE]=1) alors ( :MTAV2025 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (LISTEGEN(TX_ALLOCF;0001)) ) ) ALLOCFAMREDUIT.TXEMP Avant si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) sinon (0) Après declarer (MTAV2025) affecter (MTAV2025; si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) si ([AGCPEXO.BASE]=1) alors ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ( LISTEGEN(TX_ALLOCF;0002) ) sinon ( :MTAV2025 ) ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (0) ) Version 15 Correctif Fonction F66AF Alerte Christophe dans la fonction F_66AF il y a une connerie avec la prise en compte de 66_AFACCINTER. ça remplace le calcul des part enfant alors que ça ne dois pas. Avant si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]>=NUMERO)) alors ( si (REMU=1) alors ( si (CONV=1) alors ( /* Rémunération conventionnelle*/ si ([66_AFACCINTER.MONTANT]=0) alors ( si (NBJACCUEIL<16) alors (NBJACCUEIL/26) sinon (1) * si (NUMERO=1) alors ( /* Enfant 1 */ (PROG+PRECPRO) ) sinon (/* Enfants suivant */ (PROG-PRECPRO) ) *[VP.VP] *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ) sinon ( NBJACCUEIL*5.06*CONSTANTE(GENERAL.SMICHOR) ) ) sinon ( /*Rémunération légale*/ si ([66_AFACCINTER.MONTANT]=0) alors ( si (NUMERO=1) alors ( /* Enfant 1 */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS) ) sinon ( /* Enfants suivant */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *70 *CONSTANTE(GENERAL.SMICHOR) ) ) sinon (0) ) ) sinon ( si (CONV=1) /* Absence conventionnelle*/ alors ( si ( (NBJACCUEIL<>0) et (NBJACCUEIL=NUMERO)) alors ( si (REMU=1) alors ( si (CONV=1) alors ( /* Rémunération conventionnelle*/ si (NBJACCUEIL<16) alors (NBJACCUEIL/26) sinon (1) * si (NUMERO=1) alors ( /* Enfant 1 */ (PROG+PRECPRO) ) sinon (/* Enfants suivant */ (PROG-PRECPRO) ) *[VP.VP] *(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100) ) sinon ( /*Rémunération légale*/ si (NUMERO=1) alors ( /* Enfant 1 */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *CONSTANTE(GENERAL.SMICMENS) ) sinon ( /* Enfants suivant */ NBJACCUEIL /CONSTANTE(GENERAL.NBJMOISPAYE) *70 *CONSTANTE(GENERAL.SMICHOR) ) ) ) sinon ( si (CONV=1) /* Absence conventionnelle*/ alors ( si ( (NBJACCUEIL<>0) et (NBJACCUEIL BC_TR_A_URSAFF APEC_TRB Base cotisation BC_TRB_RET_C - > BC_TR_B_URSAFF Création des rubriques APECITA APECITA_TRA APECITA_TRBVersion 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)Version 3 Anomalie calcul allocation familiale pour ZRR ALLOCFAM.TXEMP Avant declarer (MTAV2025) affecter (MTAV2025; si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (LISTEGEN(TX_ALLOCF;0001)) sinon (0) ) si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (LISTEGEN(TX_ALLOCF;0001)) sinon ( si ([AGCPEXO.BASE]=1) alors ( :MTAV2025 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (LISTEGEN(TX_ALLOCF;0001)) ) ) Après declarer (MTAV2025) affecter (MTAV2025; 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) ) si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors (LISTEGEN(TX_ALLOCF;0001)) sinon ( si ([AGCPEXO.BASE]=1) alors ( :MTAV2025 ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (LISTEGEN(TX_ALLOCF;0001)) ) ) ALLOCFAMREDUIT.TXEMP Avant declarer (MTAV2025) affecter (MTAV2025; si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors (0) sinon (LISTEGEN(TX_ALLOCF;0002)) ) si ([AGCPEXO.BASE]=1) alors ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ( LISTEGEN(TX_ALLOCF;0002) ) sinon ( :MTAV2025 ) ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (0) ) Après declarer (MTAV2025) affecter (MTAV2025; 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)) ) si ([AGCPEXO.BASE]=1) alors ( si (CONSTANTE(CONTRAT.TYPESALARIE)=5) alors ( LISTEGEN(TX_ALLOCF;0002) ) sinon ( :MTAV2025 ) ) sinon ( si (([PLAFONDSECU.NUMCAS]=2) et (CONSTANTE(CONTRAT.ANNEE_CLOTURE)<2026)) alors ( :MTAV2025) sinon (0) ) Version 96 Correction de la rubrique BC_BRUT_APP si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( MAXIMUM(exclure([BRUT.MONTANT];[P_PPVNONEXO.MONTANT];[CHOMPART.MONTANT]; [INDCHOMPART.MONTANT]; [INC_CHOMPART.MONTANT])-[CONAIDE.SEUILAPPRENTI];0) +[BCOTASSREEL.MONTANT]*0 ) sinon (0)Version 97 Version 1 Voir mail Florence Florence ESTEVES: Réduction ZRR VMRR | PAYE > Général | Microsoft Teams Modifier la rubrique AGCPEXO pour tester REDZRR AGCPEXO Avant si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) ou ([REDZRRSECU.TXEMP]<>0)) alors (1) sinon (0) Après si ((CONSTANTE(CONTRAT.TYPESALARIE)=5) ou ([REDZRRSECU.TXEMP]<>0) ou ([REDZRR.TXEMP]<>0) ) alors (1) sinon (0)Version 2 Calcul de la rémunération ESAT un TH. Modification dans le cas ou un TH a aussi un contrat CDI CPLREMUESAT Avant si (CONSTANTE(CONTRAT.TYPESALARIE)=1) alors ([BC_CPLDDTE.MONTANT]) sinon (0) Après si (CONSTANTE(CONTRAT.DSNNATURE)=70) alors ([BC_CPLDDTE.MONTANT]) sinon (0)Version 3 Correctif Retraite progressive qui se déclenche quand forfait d'heure à 155h PBR_CET1_RET Avant si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]) alors ( F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA] -F_HISTOCLOT([PBR_CET1_RET.MONTANT]) ) sinon ( F_HISTOCLOT([PBR_CET1_RET.MONTANT])*(-1) ) Après si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2) alors ( si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]) alors ( F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA] -F_HISTOCLOT([PBR_CET1_RET.MONTANT]) ) sinon ( F_HISTOCLOT([PBR_CET1_RET.MONTANT])*(-1) ) ) sinon (0) PBR_CET2_RET Avant si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]) alors ( F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT] -F_HISTOCLOT([P_RETPROG.PLMENSA])-[P_RETPROG.PLMENSA] -F_HISTOCLOT([PBR_CET2_RET.MONTANT]) ) sinon ( F_HISTOCLOT([PBR_CET2_RET.MONTANT])*(-1) ) Après si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2) alors ( si (F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT]>F_HISTOCLOT([P_RETPROG.PLMENSA])+[P_RETPROG.PLMENSA]) alors ( F_HISTOCLOT([PBR_BRUT_RET.MONTANT])+[PBR_BRUT_RET.MONTANT] -F_HISTOCLOT([P_RETPROG.PLMENSA])-[P_RETPROG.PLMENSA] -F_HISTOCLOT([PBR_CET2_RET.MONTANT]) ) sinon ( F_HISTOCLOT([PBR_CET2_RET.MONTANT])*(-1) ) ) sinon (0) PBR_TU2_RET Avant F_TRANCHEB([PBR_BRUT_RET.MONTANT];[PBR_TU1_RET.MONTANT] ;[PBR_TU2_RET.MONTANT];[P_RETPROG.PLMENSB_3PSS]) Après si (CONSTANTE(CONTRAT.DSNCOTPLEIN)=2) alors ( F_TRANCHEB([PBR_BRUT_RET.MONTANT];[PBR_TU1_RET.MONTANT] ;[PBR_TU2_RET.MONTANT];[P_RETPROG.PLMENSB_3PSS]) ) sinon (0) version 4 V_ZRR.MTREDSECU Enlever la part mobilité Avant [V_ZRR.MTREDUCTION]-[V_ZRR.MTREDTRANSP]-[V_ZRR.MTREDFNAL] Aprés [V_ZRR.MTREDUCTION] -[V_ZRR.MTREDTRANSP] -[V_ZRR.MTREDTRANSPADD] -[V_ZRR.MTREDVMRR] -[V_ZRR.MTREDFNAL]Version 98 Aide au poste en dsn Rubrique CPLREMUESAT Avant si (CONSTANTE(CONTRAT.DSNNATURE)=70) alors ([BC_CPLDDTE.MONTANT]) sinon (0) Après si (CONSTANTE(CONTRAT.DSNNATURE)=70) alors ([V_TH.MTCPLDDTE]+[V_TH.IJSSCPLDDTE]) sinon (0)MAJBASE Modifier le code 999 en code 997 pour les stagiaires update rhcontrat set CTRDSNREGIMEVIEILLESSE='997'where ctrdsnnature='29' and CTRDSNREGIMEVIEILLESSE='999'version 2 Heures d'avenant Ajouter une rubrique itérative afin de recenser les heures d'avenant Elle sera utilisée pour compléter l'horaire contractuelversion 99 Version 1 VERIFIER QUE LES RUBRIQUES DE COTISATION SONT DANS LE GESTIONNAIRE DE REGIME Modification des rubriques de la taxe d'apprentissage pour mettre en place la non exonération de cette cotisation L’employeur est exonéré de taxe d’apprentissage pour un mois donné lorsque, le mois précédent (M-1), les deux conditions suivantes sont remplies : Emploi d’au moins un apprenti (contrat d’apprentissage en cours). Masse salariale du mois ≤ 6 × SMIC mensuel. L’exonération est mensuelle : on regarde mois par mois (pas de calcul annuel pour ce critère). Référence = mois précédent (M-1). Exemple : si en mai vous avez au moins 1 apprenti et une masse salariale ≤ 6 SMIC, vous êtes exonéré de taxe d’apprentissage pour juin. Pas de régularisation rétroactive : les mois sans apprenti (ou au-dessus du seuil) ne donnent pas droit à un remboursement ou une déduction ultérieure si vous embauchez un apprenti plus tard dans l’année. Rubrique TAP_TAXE et TAP_SOLDE Les deux font référence à BC_BRUTURSSAF Il faut créer une autre base de cotisation afin savoir s'il faut l'appliquer ou pas BC_TAAXEAPP : Base taxe d'apprentissage Il nous faut deux paramètres Apprenti au mois M-1 Masse salariale du mois < 6 SMICMENSUEL Le but est de récupérer ces valeurs à la génération DSN et de les stocker dans deux constantes générales afin de pouvoir les relire le mois suivant facilement Nom des constantes NBAPPRENTI         : Lecture seule MASSESALARIALE : Lecture seule MASSESALARIALEAPP : Lecture seule EXOTAXEAPP : Si oui, déroge à la règle précédente. Doit être à non par défaut Et dans la rubrique BC_TAXEAPP lire l'historique de ces constantes Vérifier que les cotisations TAP_TAXE et TAP_SOLDE sont dans le gestionnaire de régime Pour mars si la masse salariale est à zéro pas d'exo BC_TAAXEAPP : Base taxe d'apprentissage declarer (ASSIETTE) affecter (ASSIETTE; si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0)) alors ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) sinon ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) ) declarer (EXOTAP) affecter (EXOTAP; si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0) et (:assiette<6*;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))) alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors (0) sinon (1) ) sinon ( si (CONSTANTE(GENERAL.EXOTAXEAPP)=1) alors (1) sinon (0) ) ) [BC_BRUT_URSAFF.MONTANT]*(1-:EXOTAP) TAP_TAXE : Taxe d'apprentissage Base de cotisation BC_TAXETAP TAP_SOLDE Base de cotisation BC_TAXETAPVersion 100 Version 1 Pour les stagiaires, ils ne sont soumis à la taxe d'apprentissage que sur la part supérieure au seuil BC_TAAXEAPP Avant declarer (ASSIETTE) affecter (ASSIETTE; si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0)) alors ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) sinon ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) ) declarer (EXOTAP) affecter (EXOTAP; si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0) et (:assiette<6*CONSTANTE(GENERAL.SMICMENS))) alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors (0) sinon (1) ) sinon ( si (CONSTANTE(GENERAL.EXOTAXEAPP)=1) alors (1) sinon (0) ) ) [BC_BRUT_URSAFF.MONTANT]*(1-:EXOTAP) Après declarer (ASSIETTE) affecter (ASSIETTE; si ((CONSTANTE(GENERAL.NBSALARIE0101)<11) et (CONSTANTE(GENERAL.NBSALARIE0101)<>0)) alors ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) -constantehis(GENERAL.MASSESALARIALEAPP;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) sinon ( constantehis(GENERAL.MASSESALARIALE;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1)) ) ) declarer (EXOTAP) affecter (EXOTAP; si ((constantehis(GENERAL.NBAPPRENTI;CONSTANTE(GENERAL.MOIS_PAYE_1);CONSTANTE(GENERAL.ANNEE_PAYE_1))>0) et (:assiette<6*CONSTANTE(GENERAL.SMICMENS))) alors (si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors (0) sinon (1) ) sinon ( si (CONSTANTE(GENERAL.EXOTAXEAPP)=1) alors (1) sinon (0) ) ) si (CONSTANTE(CONTRAT.DSNNATURE)=29) alors ([BC_BRUT_STA.MONTANT]) sinon ([BC_BRUT_URSAFF.MONTANT]) *(1-:EXOTAP) Version 2 Cotisation association Mutualisation du Coût Inaptitude https://sudaquitaine.msa.fr/lfp/indemnit%C3%A9s-de-licenciement-pour-inaptitude-fsia Règles : La cotisation est conditionnée à une ancienneté des salariés dans l'établissement: elle est appelée au 1er jour du mois au cours duquel l'ancienneté est acquise. Exemple: un salarié embauché le 15/01/2026 acquiert ses 6 mois d'ancienneté le 15/07/2026 et commence à cotiser à partir du 01/07/2026. Ne relèvent pas de cet accord : CDI intérimaire, salarié apprenti, contrat de professionnalisation et mandataires sociaux. Taux de 0.2% Rubrique BC_BRUT_FSIA : Base de la cotisation declarer(EMB6) affecter(Emb6; si (CONSTANTE(CONTRAT.MOIS_EMBAUCHE)>6) alors ((CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)+1)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)-6) sinon (CONSTANTE(CONTRAT.ANNEE_EMBAUCHE)*100+CONSTANTE(CONTRAT.MOIS_EMBAUCHE)+6) ) si (ONSTANTE(GENERAL.ANNEE_PAYE)*100+CONSTANTE(GENERAL.MOIS_PAYE)>=:emb6) alors ([BC_BRUT_URSAFF.MONTANT]) sinon (0) Rubrique FSIA : Cotisation Version 101 Version 1 Taxe d'apprentissage CDDI Création de rubrique : BC_TAP_CDDI SI(CONSTANTE(CONTRAT.DSNINTITULE)=71) ALORS( MAXIMUM( 0 ; [BC_BRUT_URSAFF.MONTANT] - CONSTANTE(GENERAL.SMICMENS)* CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) ) ) SINON(0) Contrat de valorisation de l'expérience Création de rubrique : BC_MISE_RET_EX SI(CONSTANTE(CONTRAT.DSNINTITULE)=83) ALORS([CONTRIB_RET.MTEMP]) SINON(0) Création de rubrique : CONTRIB_RET_EX Base de cotisation : BC_MISE_RET_EXTXEMP : -1 Lors de la saisie de la rubrique MISE_RETRAITE (Indemnité de mise à la retraite), si le contrat est un CVE (DSNINTITULE 83), alors l'exonération de cotisation se calcule automatiquement sous la forme d'une ligne de cotisation complémentaire qui annule la contribution patronale spécifique. Congé supplémentaire de naissance Création de rubrique : ABS_NP_CSN Rubrique d'absence non payée. Version 2 Modifications de la version 1 auxquelles sont ajoutées les modifications suivantes. Modification du calcul du différentiel SMIC Objectif : Corriger les erreurs d'arrondi liées à l'utilisation de la valeur 151,67 pour le calcul du SMIC mensuel. Ce correctif ne concerne que les salariés à temps plein. CCN 51 Modification de la rubrique 51_DIFSMIC Ancienne codification SI([NUMCONV.NUMCONV] = 51) alors ( si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400) alors ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0) ) sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]) ;0) ) ) sinon (0) Nouvelle codification SI([NUMCONV.NUMCONV] = 51) alors ( si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400) alors ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors ( maximum(CONSTANTE(GENERAL.SMICMENS)-[51_SALMINSMIC.MONTANT];0) ) sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0) ) ) sinon ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors (maximum(CONSTANTE(GENERAL.SMICMENS)- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)) sinon( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)) ) ) sinon (0) CCN 66 Modification de la rubrique 66_DIF_SMIC Ancienne codification SI([NUMCONV.NUMCONV] = 66) alors ( si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT]) alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT]) sinon (0) ) sinon (0) Nouvelle codification SI([NUMCONV.NUMCONV] = 66) alors ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors ( si ( CONSTANTE(GENERAL.SMICMENS)>[66_SALMINCONV.MONTANT]) alors (CONSTANTE(GENERAL.SMICMENS)-[66_SALMINCONV.MONTANT]) sinon (0) ) sinon ( si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT]) alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT]) sinon (0) ) ) sinon (0) Rubriques Fait générateur Ici, on indique les rubriques qui seront à modifier pour mettre en place le fait générateur et le nouveau calcul des assiettes Toutes les modifications ont pour objet de simplifier le calcul des assiettes, quitte à les multiplier. Régime Apprenti Aujourd'hui, les cotisations apprenti sont exonérées jusqu'à un certains seuil SMIC : 79% SMIC si le contrat a été passé avant 03/2025 50%SMIC si le contrat a été passé après 03/2025 Les bases de cotisation BC_BRUT_APP et BC_BRUT_APP_PL se calculent aujourd'hui  en interrogeant directement la rubrique CONAIDE.SEUILAPRENTI qui teste la date d'embauche. Le moteur d'assiette va gérer ce cas avec un système de type d'assiette chapeau BC_BRUT_APP est mappé sur le type d'assiette T-03-BRUT-APR BC_BRUT_APP_PL est mappé sur le type d'assiette T-03-BRUT-APR-EXO Ce sont des types d'assiette chapeau qui vont utiliser des types d'assiettes "enfants" qui vont gérer le prédicat sur la date d'embauche. Reste le problème de la CSG. L'itérative B_COT_CSG_ABT appelle BC_BRUT_APP_PL qui va donner le brut exo quelque soit la date d'embauche et donc appliquer une csg pour tous les apprentis alors que les antérieurs à 03/2025 sont exo. Solution : créer BC_CSG_APP et remplacer dans le régime apprenti pour les CSG BC_CSG_APP ne donnera un montant que pour les apprentis postérieur à 03/2025 BC_CSG_APP : base csg apprenti non exonéré si ((CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65)) alors ( si ([APPRENTI.APPRENTI0325]=1) alors ([BC_CSG.MONTANT]) sinon (0) ) sinon (0) N_CSGND , N_CSGDED et N_CRDS la base doit être modifiableCONAIDE.SEUILAPPRENTI 50% du Smic mensuel Avant CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) * si ([APPRENTI.APPRENTI0325]=1) alors (0.50*CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIRECOLLECTIF)) sinon (0.79*CONSTANTE(GENERAL.SMICMENS)) Après CONSTANTE(CONTRAT.CIVJOURSTRAVAIL)/CONSTANTE(GENERAL.NBJMOISPAYE) * si ([APPRENTI.APPRENTI0325]=1) alors (0.50*CONSTANTE(GENERAL.SMICMENS)) sinon (0.79*CONSTANTE(GENERAL.SMICMENS)) Complément maladie Depuis 2026, il est du pour tout ceux qui ont RGDU. Les exceptions sont ceux qui ne sont pas soumis à la RGDU : Ils ne sont soumis qu'au delà de 2.5SMIC Régime ZRR et compagnie Aide à domicile, uniquement sur la partie exonérée (ils ont une RGDU spécifique) Aujourd'hui, BC_MALCOMP25 calcule tout cela : Trop compliqué pour le moteur d'assiette. pour le cas général, il suffit de mettre BC_BRUT_URSSAF BC_MALCOMP25 est gardé pour le cas complément maladie ZRR On garde également BC_BRUT_ADNEXO  pour l'aide à domicile Modification de  BC_MALCOMP25 si ( (([V_NEWAGCP.CUMREMUAF]) > ([V_NEWAGCP.TXSMICMAL]*[V_NEWAGCP.CUMSMICPRO3112])) et ([V_NEWAGCP.CUMREMUAF]>0) et ([V_NEWAGCP.CUMSMICPRO3112]>0) ) alors ( f_histoclotsit([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT] - f_histoclotsit([BC_MALCOMP25.MONTANT]) ) sinon ( f_histoclotsit([BC_MALCOMP25.MONTANT])*(-1) ) il faudra mettre BC_BRUT_URSSAF par défaut et mettre BC_MALCOMP25 pour les régimes ZRR Plafond forfait jour réduit Le problème est que l'on transforme le nombre de jour réduit en heure pour calculer le plafond PLAFONDSECU.PLAFOND Avant minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS) * ( si ([PL_PROTPSPAR.MONTANT]=0) alors (1) sinon ( si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4) alors ( CONSTANTE(CONTRAT.TAUXPLAFOND)/100 ) sinon ( ([PL_HRSDUREE.MONTANT]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) ) ) ) *( minimum(maximum(0;[PLAFONDSECU.JRS_TOTAL]) ;[PLAFONDSECU.NBJMOISPAYE] ) /[PLAFONDSECU.NBJMOISPAYE] ) Après minimum(CONSTANTE(GENERAL.PLFSECUMOIS); CONSTANTE(GENERAL.PLFSECUMOIS) * ( si ([PL_PROTPSPAR.MONTANT]=0) alors (1) sinon ( si (CONSTANTE(CONTRAT.TYPEPLAFOND)=4) alors ( CONSTANTE(CONTRAT.TAUXPLAFOND)/100 ) sinon ( si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4) alors ( CONSTANTE(CONTRAT.JOUR_FORFAIT) /CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF) ) sinon ( ([PL_HRSDUREE.MONTANT]) / CONSTANTE(CONTRAT.HORAIRECOLLECTIF) ) ) ) ) ) *( minimum(maximum(0;[PLAFONDSECU.JRS_TOTAL]) ;[PLAFONDSECU.NBJMOISPAYE] ) /[PLAFONDSECU.NBJMOISPAYE] ) Version 102 Version 1 Modification du différentiel SMIC CCN 51 Modification de la rubrique 51_DIFSMIC Ancienne codification SI([NUMCONV.NUMCONV] = 51) alors ( si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400) alors ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors ( maximum(CONSTANTE(GENERAL.SMICMENS)-[51_SALMINSMIC.MONTANT];0) ) sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[51_SALMINSMIC.MONTANT];0) ) ) sinon ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors (maximum(CONSTANTE(GENERAL.SMICMENS)- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)) sinon( maximum((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)) ) ) sinon (0) Nouvelle codification SI([NUMCONV.NUMCONV] = 51) alors ( si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400) alors ( maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[51_SALMINSMIC.MONTANT];0) ) sinon ( maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))- ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0) ) ) sinon (0) CCN 66 Modification de la rubrique 66_DIFSMIC Ancienne codification SI([NUMCONV.NUMCONV] = 66) alors ( si ( CONSTANTE(CONTRAT.DSNMODALITETPS) = 10 ) alors ( si ( CONSTANTE(GENERAL.SMICMENS)>[66_SALMINCONV.MONTANT]) alors (CONSTANTE(GENERAL.SMICMENS)-[66_SALMINCONV.MONTANT]) sinon (0) ) sinon ( si ( (CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))>[66_SALMINCONV.MONTANT]) alors ((CONSTANTE(GENERAL.SMICHOR)*CONSTANTE(CONTRAT.HORAIREMENSUEL))-[66_SALMINCONV.MONTANT]) sinon (0) ) ) sinon (0) Nouvelle codification SI([NUMCONV.NUMCONV] = 66) alors ( si ( (CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))>[66_SALMINCONV.MONTANT]) alors ((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[66_SALMINCONV.MONTANT]) sinon (0) ) sinon (0)