Rubrique « Réduct.Cotis.Salariale TEPA » (code 73456) (RUB_GAIN=0 : retenue, info ou technique selon usage). Inactive à ce jour. 2 variantes successives au fil du temps.
Explication
Cette rubrique calcule la réduction de cotisations salariales TEPA, c'est-à-dire l'allègement de charges salariales appliqué sur les heures supplémentaires. Elle alimente le journal des charges en regroupant toutes les réductions, quel que soit le taux retenu.
La règle fonctionne selon trois situations.
Premièrement, si le salarié n'a aucun brut URSSAF et qu'aucune base n'a été saisie manuellement, le calcul s'arrête immédiatement : il n'y a rien à réduire.
Deuxièmement, si une base supplémentaire est présente (montant des heures supplémentaires donnant droit à l'exonération), la rubrique calcule automatiquement la réduction. Elle prend la base des heures supplémentaires, détermine la part de CSG correspondante, additionne les cotisations salariales concernées (URSSAF, assurance chômage, retraite et prévoyance obligatoires, plus la part de CSG calculée, en retirant la retraite et prévoyance non obligatoires). À partir de ce total, elle déduit un taux théorique de cotisations rapporté au brut URSSAF, puis retient le plus petit entre ce taux et le taux maximum TEPA autorisé. La réduction salariale est obtenue en appliquant ce taux à la base des heures supplémentaires, sans pouvoir dépasser le montant réel des cotisations URSSAF hors CSG. Les valeurs finales sont arrondies au centime. Le net imposable à déduire correspond à la base ainsi exonérée.
Troisièmement, si une base a été forcée manuellement par le gestionnaire, le système exige aussi un taux forcé et un montant forcé. Si l'un des deux est absent, un message d'erreur bloque le bulletin avec la mention "renseignez le taux Forcé" ou "renseignez le Montant Forcé". Lorsque les trois valeurs sont saisies, elles remplacent purement et simplement le calcul automatique : la base, le taux, le montant de la réduction et le net imposable à déduire sont ceux indiqués par l'utilisateur.
//RUBRIQUE POUR JOURNAL DES CHARGES-TOTALISE TOUTES LES REDUCTIONS QUEL QUE SOIT LE TAUX
si brut_urssaf <= 0 et S_Base_Forcee = 9999 alors
quitter
finsi
si Base_Montant_supp <> 0 alors
XBase_Cotisation = Base_Montant_supp
Xcotis_csg = (base_csg_rds - ((mt_hrs_supp- exclus_base_cotis + allocation_chomage)*taux_csg )) *(2,9/100)
XMontant_cotisation_salariale = cotis_urssaf+cotis_assedic+cotis_retraite_prévoyance + Xcotis_csg - cotis_retraite_prév_non_obligatoire
XTaux_théorique = (XMontant_cotisation_salariale / brut_urssaf)*100
XTaux_Salarial = min (XTaux_théorique ; taux_max_tepa)
XPart_Salariale = XBase_Cotisation * XTaux_Salarial / 100
XPart_Salariale = min(XPart_Salariale;cotis_urssaf_hors_csg)
XPart_Salariale = XPart_Salariale
XTaux_Salarial = (XPart_Salariale / Base_Montant_supp) * 100
XTaux_Salarial = Arrondi(XTaux_Salarial ;'0,01')
XPart_Salariale = Arrondi(XPart_Salariale;'0,01')
XNet_imposable_a_déduire = XBase_Cotisation
finsi
SI S_Base_Forcee <> 9999 alors
Si S_Taux_Force = 9999 alors
ERREUR = ProvoquerErreur("renseignez le taux Forcé")
SORTIE = Interrompre
FinSI
Si S_Montant_Force = 9999 alors
ERREUR = ProvoquerErreur("renseignez le Montant Forcé")
SORTIE = Interrompre
FinSI
XTaux_Salarial = S_Taux_Force
XPart_Salariale = S_Montant_Force
XBase_Cotisation = S_Base_Forcee
XNet_imposable_a_déduire = S_Base_Forcee
FinSI
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 3 branche(s) conditionnelle(s).
Si ((`brut_urssaf` inférieur ou égal à 0) et (`S_Base_Forcee` égal à 9999))
Alors :
Sortir de la formule sans calcul
Si (`Base_Montant_supp` différent de 0)
Alors :
Affecter à `XBase_Cotisation` la valeur de `Base_Montant_supp`
Affecter à `Xcotis_csg` la valeur de ((`base_csg_rds` moins (((`mt_hrs_supp` moins `exclus_base_cotis`) plus `allocation_chomage`) multiplié par `taux_csg`)) multiplié par (2,9 divisé par 100))
Affecter à `XMontant_cotisation_salariale` la valeur de ((((`cotis_urssaf` plus `cotis_assedic`) plus `cotis_retraite_prévoyance`) plus `Xcotis_csg`) moins `cotis_retraite_prév_non_obligatoire`)
Affecter à `XTaux_théorique` la valeur de ((`XMontant_cotisation_salariale` divisé par `brut_urssaf`) multiplié par 100)
Affecter à `XTaux_Salarial` la valeur de prendre le minimum(`XTaux_théorique`, `taux_max_tepa`)
Affecter à `XPart_Salariale` la valeur de ((`XBase_Cotisation` multiplié par `XTaux_Salarial`) divisé par 100)
Affecter à `XPart_Salariale` la valeur de prendre le minimum(`XPart_Salariale`, `cotis_urssaf_hors_csg`)
Affecter à `XPart_Salariale` la valeur de `XPart_Salariale`
Affecter à `XTaux_Salarial` la valeur de ((`XPart_Salariale` divisé par `Base_Montant_supp`) multiplié par 100)
Affecter à `XTaux_Salarial` la valeur de arrondir(`XTaux_Salarial`, « 0,01 »)
Affecter à `XPart_Salariale` la valeur de arrondir(`XPart_Salariale`, « 0,01 »)
Affecter à `XNet_imposable_a_déduire` la valeur de `XBase_Cotisation`
Si (`S_Base_Forcee` différent de 9999)
Alors :
Si (`S_Taux_Force` égal à 9999)
Alors :
Affecter à `ERREUR` la valeur de déclencher une erreur(« renseignez le taux Forcé »)
Affecter à `SORTIE` la valeur de `Interrompre`
Si (`S_Montant_Force` égal à 9999)
Alors :
Affecter à `ERREUR` la valeur de déclencher une erreur(« renseignez le Montant Forcé »)
Affecter à `SORTIE` la valeur de `Interrompre`
Affecter à `XTaux_Salarial` la valeur de `S_Taux_Force`
Affecter à `XPart_Salariale` la valeur de `S_Montant_Force`
Affecter à `XBase_Cotisation` la valeur de `S_Base_Forcee`
Affecter à `XNet_imposable_a_déduire` la valeur de `S_Base_Forcee`