Rubrique « Test CDI - 26 ans et Période Essai » (code 42) (RUB_GAIN=0 : retenue, info ou technique selon usage). Actuellement active, variante en vigueur depuis le 2017-07-01. 2 variantes successives au fil du temps. La formule actuelle (2976 octets) référence 14 variable(s) et 6 fonction(s).
Explication
Cette rubrique sert à vérifier si un salarié en CDI peut bénéficier d'une exonération de charges réservée aux jeunes de moins de 26 ans, et elle contrôle aussi que la date de fin de période d'essai est bien renseignée. Elle ne verse rien au salarié : elle décide d'un type d'exonération et écrit un commentaire explicatif.
Le déroulé est le suivant. D'abord, si le salarié n'avait déjà aucune exonération le mois précédent, on s'arrête immédiatement (rien à recalculer). Ensuite, si le contrat n'est pas un CDI, l'exonération est mise à zéro et le commentaire indique le type de contrat réel. Si le CDI a commencé avant le 1er juillet 2013, on s'arrête également : le dispositif ne s'applique pas à ces contrats anciens.
Vient ensuite le calcul de l'âge du salarié à la date de début du contrat (avec une protection si la date de naissance n'est pas connue, auquel cas la date du jour est utilisée, ce qui est un point à vérifier côté paramétrage). Si cet âge dépasse 26 ans, l'exonération tombe à zéro avec la mention "+ de 26 ans". De même, si le motif d'embauche est un transfert d'établissement (de A vers B), l'exonération est refusée avec le commentaire correspondant.
Enfin, la rubrique exige que la date de fin de période d'essai soit renseignée (sinon elle la récupère depuis le contrat, et à défaut bloque le calcul avec un message d'erreur) et que l'effectif Assedic soit saisi (sinon blocage aussi). Elle prépare ensuite le premier jour du mois qui suit la fin de la période d'essai, pour les contrôles ultérieurs.
// rubrique d'information et de gestion
// Teste le type et la durée des CDD
// 1er octobre 2017 : Test exoneration pour les salariés ayant bénéficié de l'éxonération avant 1er octobre
Si Cumul_Type_Exoneration_Mois_Précédent = 0 alors
Quitter
Finsi
// Si ce n'est pas un CDD
Si Code_Type_Contrat <> 'CDI' alors
Type_Exoneration = 0
Commentaire = Code_Type_Contrat
Quitter
Finsi
// Si c'est un CDI
// si le contrat est antérieur au 1/07 alors quitter
Si Date_Debut_Contrat < !01/07/2013! alors
Commentaire = Code_Type_Contrat + " contrat du " + Date_Debut_Contrat
Quitter
FinSi
// Calcul de l'age du capitaine
Age_salarie = Arrondi(((Date_debut_Contrat)-Evaluer( Max(Date_Naissance_Salarié;coderdate(1;1;1900))=CoderDate(1;1;1900)
:DateCourante;Date_Naissance_Salarié))/365.25;0.01;-1)
//Resultat = Evaluer(a=0: 0; b) si a = 0 alors Resultat = 0 sinon Resultat = b
// Si age sup a 26 alors on quitte
Si Age_Salarie > 26 alors
Type_Exoneration = 0
Commentaire = Code_Type_Contrat + " + de 26 ans"
Quitter
FinSi
//Si motif transfert alors pas d'exonération
Si Motif_Embauche = 'TRANSFERT A VERS B' alors
Type_Exoneration = 0
Commentaire = Code_Type_Contrat + " Transfert Etablissement"
Quitter
Finsi
//Si pas de date de Fin de PE alors on impose de la saisir
si Date_Fin_PE = 0 alors
Date_Fin_PE = Date_Fin_PE_Contrat
Finsi
si Date_Fin_PE = 0 alors
ERREUR = ProvoquerErreur("Date de fin de Période Essai non renseignée.Veulliez renseigner la fiche contrat ou la constante DPESS" )
SORTIE = interrompre
FinSi
// Si pas de effectif de Fin de PE alors on impose de le saisir
si effectif = 0 alors
ERREUR = ProvoquerErreur("Constante AAEF : Effectif Assedic -> non renseignée" )
SORTIE = interrompre
FinSi
// Vérification de la fin de PE
// Calcul de la période entre la fin de la PE et la date de début de paye
prem_Jour_Mois_post_PE = (FinMois(Date_Fin_PE)+1)
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 8 branche(s) conditionnelle(s), 2 affectation(s).
Si (`Cumul_Type_Exoneration_Mois_Précédent` égal à 0)
Alors :
Sortir de la formule sans calcul
Si (`Code_Type_Contrat` différent de « CDI »)
Alors :
Affecter à `Type_Exoneration` la valeur de 0
Affecter à `Commentaire` la valeur de `Code_Type_Contrat`
Sortir de la formule sans calcul
Si (`Date_Debut_Contrat` inférieur à la date 01/07/2013)
Alors :
Affecter à `Commentaire` la valeur de ((`Code_Type_Contrat` plus « contrat du ») plus `Date_Debut_Contrat`)
Sortir de la formule sans calcul
Affecter à `Age_salarie` la valeur de arrondir((`Date_debut_Contrat` moins évaluer une expression((prendre le maximum(`Date_Naissance_Salarié`, construire une date(1, 1, 1900)) égal à construire une date(1, 1, 1900)))))
Instruction non interprétée
Si (`Age_Salarie` supérieur à 26)
Alors :
Affecter à `Type_Exoneration` la valeur de 0
Affecter à `Commentaire` la valeur de (`Code_Type_Contrat` plus « + de 26 ans »)
Sortir de la formule sans calcul
Si (`Motif_Embauche` égal à « TRANSFERT A VERS B »)
Alors :
Affecter à `Type_Exoneration` la valeur de 0
Affecter à `Commentaire` la valeur de (`Code_Type_Contrat` plus « Transfert Etablissement »)
Sortir de la formule sans calcul
Si (`Date_Fin_PE` égal à 0)
Alors :
Affecter à `Date_Fin_PE` la valeur de `Date_Fin_PE_Contrat`
Si (`Date_Fin_PE` égal à 0)
Alors :
Affecter à `ERREUR` la valeur de déclencher une erreur(« Date de fin de Période Essai non renseignée.Veulliez renseigner la fiche contrat ou la constante DPESS »)
Affecter à `SORTIE` la valeur de `interrompre`
Si (`effectif` égal à 0)
Alors :
Affecter à `ERREUR` la valeur de déclencher une erreur(« Constante AAEF : Effectif Assedic -> non renseignée »)
Affecter à `SORTIE` la valeur de `interrompre`
Affecter à `prem_Jour_Mois_post_PE` la valeur de (renvoyer la fin du mois(`Date_Fin_PE`) plus 1)