Version 107 Version 1 Rubriques Inutilisées UPDATE RHRUBRIQUESET RUBISNOTUSED = 1WHERE (RUBBPID = 0)AND RUBALIAS IN ('BHRSFILLON','B_COT_CRDS','B_COT_CSG','COT_AUBFIFILL','ASSEDIC1M','ASSEDIC3MA','ASSEDIC3MU','COT_EXCEPINF','COT_EXCEP2018','FILLONNREG','PENIBILITEBASE','PENIBILITEPOLY','PENIBILITESPEC','TAXESAL4','BC_BRUT_ASS1M','BC_BRUT_ASS3MA','BC_GMP_MED30','BC_GMP_RET_C','BC_PEXCEPT2018','BC_REG042016','BC_REGTRI2016','BC_REGPRORATA','BC_TAXE_SAL4','PL_GMP','PL_MENSTAXE4','IJN_MALNIM_CSG','IJN_PREV_CSG','IJN_PREV_INC','IJN_PREV_BRUT', 'CSGECRETND', 'CSGECRTD'); https://wikiapp.heberg-eig.fr/books/fait-generateur-developpeur/page/rubriques-fait-generateur#bkmrk-version-105CONSTANTE(CONTRAT.DSNNATURE) Version 2 Rubrique libre DEDUCSAL Le problème vient de la formule MTHRSNIMP Elle est plafonnée à zéro donc quand il y a une régul négative, ca ne le prend pas en compte Alors que MTHRSIMP n'est pas plafonnée. Il faut calculer l'exonération cumulée plafonnée, puis la différence avec le cumul d'avant ce bulletin. Une régularisation ressort alors en négatif, sans reprendre plus que ce qui avait réellement été exonéré. Modification de MTHRSNIMP Avant maximum(0; ([BC_HRS.MONTANT]+[BC_RTT.MONTANT])*(-1) + minimum(0; (histocumul([BC_HRS.MONTANT])+[BC_HRS.MONTANT] +histocumul([BC_RTT.MONTANT])+[BC_RTT.MONTANT] +maximum(8037;CONSTANTE(GENERAL.EXOHSUP))) ) ) Après Le premier minimum est l'exonération due depuis le début d'année, bulletin inclus. Le second est la même chose sans le bulletin en cours. La différence est le montant du bulletin. minimum(maximum(8037;CONSTANTE(GENERAL.EXOHSUP)); maximum(0; (histocumul([BC_HRS.MONTANT])+histocumul([BC_RTT.MONTANT]) +[BC_HRS.MONTANT]+[BC_RTT.MONTANT])*(-1))) - minimum(maximum(8037;CONSTANTE(GENERAL.EXOHSUP)); maximum(0; (histocumul([BC_HRS.MONTANT])+histocumul([BC_RTT.MONTANT]))*(-1))) Version 3 : Références circulaires ABTBRUT.BASE appelle le brut et donc CHEQUESANTE. Quand il y a un pourcentage de contribution au frais de santé (constante générale) c'est un pourcentage du brut. La règle Si votre salaire brut fait l'objet d'un abattement professionnel (comme la Déduction Forfaitaire Spécifique (DFS) applicable dans le bâtiment, le transport ou le spectacle), cela dépend de la rédaction des accords de votre entreprise. [1] Deux situations se présentent : 1. La règle de l'entreprise vise le « brut abattu » Si l'accord collectif de votre entreprise précise que la cotisation de mutuelle se calcule sur l'assiette des cotisations de Sécurité sociale, c'est le salaire brut abattu (le brut après déduction) qui sert de base au calcul. [1] Votre chèque santé s'en trouvera directement diminué, car le montant de référence calculé en pourcentage sera plus bas. 2. La règle vise le « salaire brut de base » Si l'accord de votre entreprise précise que la cotisation est indexée sur le « salaire de base ontractuel » ou le « salaire brut fixe » (hors frais professionnels), l'abattement n'a aucun impact. [1] Le calcul se fait sur votre salaire brut complet, avant l'application de la DFS. 🛡️ Le garde-fou : Le montant plancher Même si votre salaire brut est abattu et que le chèque santé baisse, l'employeur reste soumis au montant minimal légal au prorata de vos heures On va considérer prendre la règle la plus favorable au salarié c'est à dire que l'on va déterminer le chèque santé sur le montant non abattu Modification de CHEQUESANTE Avant si (CONSTANTE(GENERAL.CS_POURCONTRI)=0) alors (MAXIMUM(CONSTANTE(GENERAL.CS_MTREF);CONSTANTE(GENERAL.CS_FORFCONTRI)) *CONSTANTE(CONTRAT.HORAIREMENSUEL) /151.67 ) sinon (CONSTANTE(GENERAL.CS_POURCONTRI)* exclure([BRUT.MONTANT];[CHEQUESANTE.MONTANT])/100 ) Après si (CONSTANTE(GENERAL.CS_POURCONTRI)=0) alors (MAXIMUM(CONSTANTE(GENERAL.CS_MTREF);CONSTANTE(GENERAL.CS_FORFCONTRI)) *CONSTANTE(CONTRAT.HORAIREMENSUEL) /151.67 ) sinon (CONSTANTE(GENERAL.CS_POURCONTRI)* exclure([BRUT.MONTANT];[ABTBRUT.MONTANT];[CHEQUESANTE.MONTANT])/100 ) CSG Enlever la participation des anciennes rubriques écrètement CSG CSGECRETND et CSGECRTD IJSS Neutraliser NETSS, TRB 51_ANC.BASE 51_OUTILLAGE à neutraliser 51_B_PRIME13 modifier 51_COMPDIMCONV.TAUX Avant 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) 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];[51_PRIME13.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];[51_PRIME13.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) version 4 Créer la rubrique  vieillesse tra Taux réduit (-30%) Modifier les bases de cotisations des TH : BC_SALDIR Avant [B_COT_SALDIR.MONTANT] Après si (CONSTANTE(CONTRAT.DSNNATURE)=70) alors ([B_COT_SALDIR.MONTANT]) sinon (0) BC_CPLDDTE Avant [B_COT_CPLDDTE.MONTANT] Après si (CONSTANTE(CONTRAT.DSNNATURE)=70) alors ([B_COT_CPLDDTE.MONTANT]) sinon (0) BC_EA_AIDPOSTE Avant [B_COT_EAPOSTE.MONTANT] Après si (CONSTANTE(CONTRAT.TYPESALARIE)=2) alors ([B_COT_EAPOSTE.MONTANT]) sinon (0) BC_EA_RESTE Avant [BC_BRUT_URSAFF.MONTANT]-[BC_EA_AIDPOSTE.MONTANT] Après si (CONSTANTE(CONTRAT.TYPESALARIE)=2) alors ([BC_BRUT_URSAFF.MONTANT]-[BC_EA_AIDPOSTE.MONTANT]) sinon (0) Créer les rubriques heures supplémentaires et rtt non exonérés H_SUP10 1.10 x Taux horaire H_SUP10NEXO H_SUP25 1,25 × taux horaire H_SUP25NEXO H_SUP50 1,50 × taux horaire H_SUP50NEXO H_COMP10 1,10, dans la limite du dixième de l'horaire mensuel H_COMP10NEXO H_COMP25 1,25, au-delà de ce dixième H_COMP25NEXO H_COMPL taux horaire du contrat, sans découpage 10/25 H_COMPLNEXO RTTPAYEEXO taux 1 RTTPAYENEXO Modification de la base de cotisation formation CDD on complète le test contrat : pas pour apprenti, contrat pro, cae, etc BC_FORMCDD Avant SI (CONSTANTE(CONTRAT.TYPECONTRAT)=1) ALORS([B_COT_URSAFF.MONTANT]) SINON(0) Après SI (CONSTANTE(CONTRAT.DSNNATURE)=2) ALORS ( SI ( (CONSTANTE(CONTRAT.DSNINTITULE)=41) ou (CONSTANTE(CONTRAT.DSNINTITULE)=42) ou (CONSTANTE(CONTRAT.DSNINTITULE)=61) ou (CONSTANTE(CONTRAT.DSNINTITULE)=64) ou (CONSTANTE(CONTRAT.DSNINTITULE)=65) ou (CONSTANTE(CONTRAT.MOTIFCDD)=3) ou (CONSTANTE(CONTRAT.MOTIFCDD)=10) ) ALORS (0) SINON ([B_COT_URSAFF.MONTANT]) ) SINON (0)