Modification du gestionnaire de rubriques
- Version 62
- Version 63
- Version 64
- Version 65
- Version 66
- V_NEWAGCP
- Version 67
- Version 1
- Version 2
- Version 3 abondement PERECO
- Version 4 : PERECO
- Version 5
- Version 6
- Version 7
- Version 8
- Version 68
- Version 4 Correctif agcp
- Version 69
- Version 70
- Version 71
- Version 1
- Version 2
- Version 3
- Version 4 agcp régul 11/2024
- Version 5 Reco 2024
- Version 6 : Cotisation 142
- Version 7
- Version 72
- Version 73
- Version 74
- Version 75
- Version 76
- Version 77
- Version 78
- Version 79
- Version 80
- Version 81
- Version 82
- Version 83
- Version 84
- Version 1
- Modifications du paramètre T en mai 2025
- Rubrique Créée : V_AGCP2025
- Rubrique modifiée : V_NEWAGCP et V_AD_AGCP
- Version 87
- Version 88
- Version 89
- Version 90
- Version 91
- version 92
- Version 1 : Apprenti
- Version 2 : Ajout rubrique CP_DIF_TRIM
- Version 3 : RGDU :
- Version 3 : RGDU : Allocation Familiale
- Version 3 RGDU : Complément maladie
- Version 3 : Problèmes sur plafond antérieur
- Version 3 : Calcul différentiel smic coefficient internat externat
- Version 4
- Version 5
- Version 6
- version 7
- Version 8
- Version 9 : Complément maladie
- Version 10 Allocation familiale
- Version 11 Code 146
- Version 12 Alloc fam Aide à domicile
- Version 13
- Version 14
- Version 15 Correctif Fonction F66AF
- Version 93
- Version 94
- Version 95
- Version 96
- Version 97
- Version 98
- MAJBASE
- version 2
- version 99
- Version 100
- Version 101
- Rubriques Fait générateur
- Version 102
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 paye
Indemnité de disponibilité qui « ne peut être inférieure
à 2.25 fois le montant du salaire minimum de croissance, sans pouvoir être
infé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 salaire
lé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 TH
Version 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<CONSTANTE(GENERAL.NBJMOISPAYE))
et (NBJACCUEIL<16)
)
alors (
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon ( /* Enfants suivant */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
sinon (0)
)
sinon (
/* Absence légale */
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon (
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
)
)
sinon (0)
Version 64
Version 1
A faire :
Voir ticket 657305 sur assmat
Version 2
Ajouter BC_BRUTSTA dans les cumuls sécu
CUMUL.CUMBRUTSECU
Avant
histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]
Après
histocumulJOINT([BC_BRUT_URSAFF.MONTANT])+[BC_BRUT_URSAFF.MONTANT]
+histocumulJOINT([BC_BRUT_STA.MONTANT])+[BC_BRUT_STA.MONTANT]
Créer un rubrique de paye REGNETSOCIAL qui rentre à zéro dans le net social OK
Modifier le nombre de décimale de la rubrique CONAIDE OK
Version 3
Modification formule V_AD_AGCP.ADCOEF : C'est ADCUMREMUCOEF et pas ADREMUCOEF
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)
)
)
)
Modification de la fonction F_AGCPSMICMENS : Quand c'est le mois de paye, on ajoute le cumulsitu du mois
si ((CONSTANTE(GENERAL.MOIS_PAYE)>=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
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_FNGS
version 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
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 PERECO
Version 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]*0
Version 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
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 2024
Version 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 proratisation
Version 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_RET
Version 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'annulation
Version 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
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 source
Version 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égime
Version 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
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<CONSTANTE(GENERAL.NBJMOISPAYE))
et (NBJACCUEIL<16)
)
alors (
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon ( /* Enfants suivant */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
sinon (0)
)
sinon (
/* Absence légale */
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon (
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
)
)
sinon (0)
Après
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 (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<CONSTANTE(GENERAL.NBJMOISPAYE))
et (NBJACCUEIL<16)
)
alors (
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon ( /* Enfants suivant */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
sinon (0)
)
sinon (
/* Absence légale */
si (NUMERO=1)
alors ( /* Enfant 1 */
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)- NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8
*CONSTANTE(GENERAL.SMICMENS)
)
sinon (
maximum(0;(CONSTANTE(CONTRAT.CIVJOURSTRAVAIL_EMB)-NBJACCUEIL-(NBJABSCP)))
/CONSTANTE(GENERAL.NBJMOISPAYE)
*0.8*70
*CONSTANTE(GENERAL.SMICHOR)
)
)
)
)
sinon (0)
Version 93
Version 1
Rétablir le calcul de PL_PLAFONDMENS
PLAFONDSECU.NUMCAS
Avant
si (CONSTANTE(CONTRAT.CLOTURE)=0)
alors (1)
sinon (
si (
(CONSTANTE(CONTRAT.ANNEE_CLOTURE)=CONSTANTE(GENERAL.ANNEE_PAYE))
)
alors (1)
sinon (2)
)
Après
si (CONSTANTE(CONTRAT.CLOTURE)=0)
alors (1)
sinon (
si (
(CONSTANTE(CONTRAT.ANNEE_CLOTURE)=CONSTANTE(GENERAL.ANNEE_PAYE))
)
alors (1)
sinon (2)
)
+ [PL_PLAFONDMENS.MONTANT]*0
Version 94
Mise en place des réductions ZRR sur le transport additionnel et le VMRR
Ajout des rubriques suivantes
Bases de cotisation
BC_REDZRRTRADD : Réduction ZRR transport additionnel
[V_ZRR.MTREDTRANSPADD]
BC_REDZRRVMRR : Réduction ZRR VMRR
[V_ZRR.MTREDVMRR]
Cotisations
REDZRRTRANSADD : Réduction ZRR sur cotisation transport additionnel
REDZRRVMRR : Réduction ZRR sur cotisation VMRR
Modification des rubriques suivantes
V_ZRR : Variables reduction ZRR
Ajout des formules suivantes :
MTREDTRANSPADD : Montant réduction transport additionnel
[V_ZRR.MTREDUCTION]*([TRANSPADD.TXEMP])
/[V_ZRR.SOMTXZRR]
MTREDVMRR : Montant réduction VMRR
[V_ZRR.MTREDUCTION]*([TRANSPVMRR.TXEMP])
/[V_ZRR.SOMTXZRR]
Version 95
version 1
Modification des bases de cotisation des cotisations APEC
APEC_TRA
Base cotisation BC_TRA_RET_C - > BC_TR_A_URSAFF
APEC_TRB
Base cotisation BC_TRB_RET_C - > BC_TR_B_URSAFF
Création des rubriques APECITA
APECITA_TRA
APECITA_TRB
Version 2
Modification de la fonction F_RGDU pour le calcul des assistantes familiales
Avant
declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (1)
sinon (0)
)
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors (1)
sinon (0)
)
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
alors ([AD_HNEXO.BASE])
sinon (
si (:FORFAITJOUR=1)
alors (0)
sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
)
)
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
alors (0)
sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
)
declarer (HSUP)
affecter (HSUP;si (:AD=1)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])
)
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
alors (
si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
alors (1607)
sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
)
sinon ([AGCPHORAN.BASE])
)
declarer (HEXO)
affecter (HEXO;si (:AD=1)
alors ([AD_HEXO.BASE])
sinon (0)
)
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
sinon (CONSTANTE(GENERAL.MOIS_PAYE)))
rgdu(TYPEMONTANT;
:ANNEE;
:MOIS;
CONSTANTE(GENERAL.FNAL010);
:NBHEURES;
:NBJOURS;
:HSUP;
[AGCPITREMU.MONTANT];
[AGCP_NUMHREMU.MONTANT];
[B_PXHEURE.MONTANT];
:HORBASE;
:AD;
:HEXO;
:PPV)
Après
declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (1)
sinon (0)
)
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
alors (1)
sinon (0)
)
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
alors ([AD_HNEXO.BASE])
sinon (
si (:FORFAITJOUR=1)
alors (0)
sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=3)
alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
)
)
)
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
alors (0)
sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
)
declarer (HSUP)
affecter (HSUP;si (:AD=1)
alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
sinon ([AGCP_HREMUPLUS.MONTANT])
)
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
alors (
si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
alors (1607)
sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
)
sinon ([AGCPHORAN.BASE])
)
declarer (HEXO)
affecter (HEXO;si (:AD=1)
alors ([AD_HEXO.BASE])
sinon (0)
)
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
sinon (CONSTANTE(GENERAL.MOIS_PAYE)))
rgdu(TYPEMONTANT;
:ANNEE;
:MOIS;
CONSTANTE(GENERAL.FNAL010);
:NBHEURES;
:NBJOURS;
:HSUP;
[AGCPITREMU.MONTANT];
[AGCP_NUMHREMU.MONTANT];
[B_PXHEURE.MONTANT];
:HORBASE;
:AD;
:HEXO;
:PPV)
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
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 contractuel
version 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
- 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).
- 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_TAXETAP
Version 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 modifiable
CONAIDE.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)