Rubrique « Calcul Fillon Brut et Smic Mensuel » (code 13360) (RUB_GAIN=0 : retenue, info ou technique selon usage). Actuellement active, variante en vigueur depuis le 2026-01-01. 5 variantes successives au fil du temps. La formule actuelle (1685 octets) référence 19 variable(s) et 1 fonction(s).
Explication
Cette regle prepare les elements necessaires au calcul de la reduction Fillon : elle determine, pour le mois en cours, un SMIC mensuel de reference adapte au temps de travail du salarie et un brut servant de base de comparaison. Elle s'execute pour la plupart des salaries, mais elle est immediatement abandonnee pour trois categories : stagiaires, apprentis et mandataires sociaux, qui ne sont pas concernes par ce calcul.
Pour les autres, la regle reconstitue d'abord un SMIC mensuel theorique correspondant aux heures retenues pour le calcul Fillon (heures de base, heures supplementaires et complementaires, y compris celles qui etaient autrefois exonerees et qui restent comptees pour Fillon meme apres septembre). Ce SMIC theorique est obtenu en multipliant ces heures par la valeur horaire du SMIC en vigueur.
Ensuite, elle prepare deux versions du brut : un brut reellement paye (gain brut diminue des primes non impactees par les absences et de la prevoyance non soumise) et un brut "comme si le salarie avait ete present tout le mois" (brut reconstitue avec les primes et maintiens de remuneration). Si ce brut theorique est positif, le SMIC mensuel est proratise selon le rapport entre brut paye et brut theorique, ce qui permet de tenir compte des absences non remunerees. Le resultat est arrondi au centime, et le nombre d'heures SMIC correspondant est recalcule.
Enfin, un garde-fou est pose : si a la fois le brut remunere et le SMIC proratise sont nuls (cas d'une paie ne contenant qu'une indemnite transactionnelle par exemple), un indicateur est leve pour exclure le salarie du complement d'allocations familiales, afin d'eviter qu'une rubrique liee se declenche a tort. Ambiguite : le commentaire sur les heures supplementaires exonerees laisse penser que la composition exacte des heures retenues a evolue ; la version active utilise simplement HEURES_POUR_SMIC.
//HEURES_SUPP_PLUS_EXO Le compteur sert a calculer le SMIC Fillon après le 1er septembre. Il n'y a plus d'heures exo mais toujours utilisées pour FILLON
si type_ct_part = "STA" ou type_ct_part = "AE" ou type_ct_part = "MAN" alors
quitter
finsi
//XHORAIRE_SMIC = HORAIRE_BASE + HEURES_SUPP_EXO + HRS_COMPL_EXO + HEURES_SUPP_NON_EXO + HRS_COMPL_NON_EXO + HEURES_SUPP_PLUS_EXO
XHORAIRE_SMIC = HEURES_POUR_SMIC
XSMIC_MENSUEL_CONTRACTUEL = (XHORAIRE_SMIC* SMIC_HORAIRE)
XBRUT_PAYE = GAIN_BRUT - PRIMES_NON_IMPACTEE_ABS - PREV_VERSEE_NON_SOUMIS //- XMONTANT_HRS_PAUSE_PAYEES - MONTANT_HRS_SUPP_NON_EXO- MONTANT_HRS_SUPP
XBRUT_PERCU_SI_PRESENT = BRUT_RECONSTITUE + PRIMES_SI_PRESENT - PRIMES_NON_IMPACTEE_ABS + MAINTIEN_SUJETION_NON_PAYEES //- PREV_VERSEE_NON_SOUMIS // + IJ - IJP - MONTANT_HRS_SUPP - MONTANT_HRS_SUPP_NON_EXO
XMONTANT_HRS_PAUSE_PAYEES = MONTANT_HRS_PAUSE_PAYEES
si XBRUT_PERCU_SI_PRESENT > 0 alors
XSMIC_MENSUEL_PRORATA_ABSENCE = (XSMIC_MENSUEL_CONTRACTUEL *( XBRUT_PAYE / XBRUT_PERCU_SI_PRESENT))
XSMIC_MENSUEL_PRORATA_ABSENCE = ARRONDI(XSMIC_MENSUEL_PRORATA_ABSENCE ;0,01)
finsi
XBRUT_REMUNERE = GAIN_BRUT - XMONTANT_HRS_PAUSE_PAYEES - PREV_VERSEE_NON_SOUMIS //- MONTANT_HRS_SUPP - MONTANT_HRS_SUPP_NON_EXO
XBRUT_REMUNERE = arrondi(XBRUT_REMUNERE ;0,01)
Si SMIC_HORAIRE <> 0 alors
XHEURES_SMIC = (XSMIC_MENSUEL_PRORATA_ABSENCE / SMIC_HORAIRE)
XHEURES_SMIC = arrondi(XHEURES_SMIC;'0,01')
Finsi
//La rubrique 20450 ne doit pas se déclencher dans le cas d'une paye sans brut et sans smic
//Exemple Indemnité Transactionnelle
Si XBRUT_REMUNERE = 0 et XSMIC_MENSUEL_PRORATA_ABSENCE = 0 alors
Test_Exclu_Alloc_Fam_Compl = 1
Finsi
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 4 branche(s) conditionnelle(s), 7 affectation(s).
Si (((`type_ct_part` égal à « STA ») ou (`type_ct_part` égal à « AE »)) ou (`type_ct_part` égal à « MAN »))
Alors :
Sortir de la formule sans calcul
Affecter à `XHORAIRE_SMIC` la valeur de `HEURES_POUR_SMIC`
Affecter à `XSMIC_MENSUEL_CONTRACTUEL` la valeur de (`XHORAIRE_SMIC` multiplié par `SMIC_HORAIRE`)
Affecter à `XBRUT_PAYE` la valeur de ((`GAIN_BRUT` moins `PRIMES_NON_IMPACTEE_ABS`) moins `PREV_VERSEE_NON_SOUMIS`)
Affecter à `XBRUT_PERCU_SI_PRESENT` la valeur de (((`BRUT_RECONSTITUE` plus `PRIMES_SI_PRESENT`) moins `PRIMES_NON_IMPACTEE_ABS`) plus `MAINTIEN_SUJETION_NON_PAYEES`)
Affecter à `XMONTANT_HRS_PAUSE_PAYEES` la valeur de `MONTANT_HRS_PAUSE_PAYEES`
Si (`XBRUT_PERCU_SI_PRESENT` supérieur à 0)
Alors :
Affecter à `XSMIC_MENSUEL_PRORATA_ABSENCE` la valeur de (`XSMIC_MENSUEL_CONTRACTUEL` multiplié par (`XBRUT_PAYE` divisé par `XBRUT_PERCU_SI_PRESENT`))
Affecter à `XSMIC_MENSUEL_PRORATA_ABSENCE` la valeur de arrondir(`XSMIC_MENSUEL_PRORATA_ABSENCE`, 0,01)
Affecter à `XBRUT_REMUNERE` la valeur de ((`GAIN_BRUT` moins `XMONTANT_HRS_PAUSE_PAYEES`) moins `PREV_VERSEE_NON_SOUMIS`)
Affecter à `XBRUT_REMUNERE` la valeur de arrondir(`XBRUT_REMUNERE`, 0,01)
Si (`SMIC_HORAIRE` différent de 0)
Alors :
Affecter à `XHEURES_SMIC` la valeur de (`XSMIC_MENSUEL_PRORATA_ABSENCE` divisé par `SMIC_HORAIRE`)
Affecter à `XHEURES_SMIC` la valeur de arrondir(`XHEURES_SMIC`, « 0,01 »)
Si ((`XBRUT_REMUNERE` égal à 0) et (`XSMIC_MENSUEL_PRORATA_ABSENCE` égal à 0))
Alors :
Affecter à `Test_Exclu_Alloc_Fam_Compl` la valeur de 1