Formule de calcul
Coefficient de proratisation du salaire notamment pour le calcul du Smic
Ce dispositif est peut-être obsolète !
La dernière date de relecture du dispositif est inconnue.
Formule de calcul OpenFisca :
def formula(individu, period, parameters): # * Tous les calculs sont faits sur le mois * # Les types de contrats gérés contrat_de_travail = individu('contrat_de_travail', period) TypesContratDeTravail = contrat_de_travail.possible_values # [ temps_plein # temps_partiel # forfait_heures_semaines # forfait_heures_mois # forfait_heures_annee # forfait_jours_annee ] contrat_de_travail_debut = individu('contrat_de_travail_debut', period) contrat_de_travail_fin = individu('contrat_de_travail_fin', period) # Volume des heures rémunérées à un forfait heures forfait_heures_remunerees_volume = individu('forfait_heures_remunerees_volume', period) # noqa F841 # Volume des heures rémunérées à forfait jours forfait_jours_remuneres_volume = individu('forfait_jours_remuneres_volume', period) heures_duree_collective_entreprise = individu('heures_duree_collective_entreprise', period) # Volume des heures rémunérées contractuellement (heures/mois, temps partiel) heures_remunerees_volume = individu('heures_remunerees_volume', period) # Volume des heures non rémunérées (convenance personnelle hors contrat/forfait) heures_non_remunerees_volume = individu('heures_non_remunerees_volume', period) # Décompte des jours en début et fin de contrat # http://www.gestiondelapaie.com/flux-paie/?1029-la-bonne-premiere-paye debut_mois = datetime64(period.start.offset('first-of', 'month')) fin_mois = datetime64(period.start.offset('last-of', 'month')) + timedelta64(1, 'D') # busday ignores the last day jours_ouvres_ce_mois = busday_count( debut_mois, fin_mois, weekmask='1111100' ) # jours travaillables sur l'intersection du contrat de travail et du mois en cours jours_ouvres_ce_mois_incomplet = busday_count( max_(contrat_de_travail_debut, debut_mois), min_(contrat_de_travail_fin, fin_mois), weekmask='1111100' ) duree_legale_mensuelle = parameters(period).marche_travail.salaire_minimum.smic.nb_heures_travail_mensuel heures_temps_plein = where(heures_duree_collective_entreprise, heures_duree_collective_entreprise, duree_legale_mensuelle ) jours_absence = heures_non_remunerees_volume / 7 coefficient_proratisation_temps_partiel = heures_remunerees_volume / heures_temps_plein coefficient_proratisation_forfait_jours = forfait_jours_remuneres_volume / 218 # temps plein coefficient = switch( contrat_de_travail, { # temps plein TypesContratDeTravail.temps_plein: ( (jours_ouvres_ce_mois_incomplet - jours_absence) / jours_ouvres_ce_mois ), # temps partiel # (en l'absence du détail pour chaque jour de la semaine ou chaque semaine du mois) TypesContratDeTravail.temps_partiel: coefficient_proratisation_temps_partiel * ( (jours_ouvres_ce_mois_incomplet * coefficient_proratisation_temps_partiel - jours_absence) / (jours_ouvres_ce_mois * coefficient_proratisation_temps_partiel + 1e-16) ), TypesContratDeTravail.forfait_jours_annee: coefficient_proratisation_forfait_jours * ( (jours_ouvres_ce_mois_incomplet * coefficient_proratisation_forfait_jours - jours_absence) / (jours_ouvres_ce_mois * coefficient_proratisation_forfait_jours + 1e-16) ) } ) # Forfait en heures # coefficient = (contrat_de_travail >= 2) * (contrat_de_travail <= 3) * ( # forfait_heures_remunerees_volume / 45.7 * 52 / 12 # ) + return (jours_ouvres_ce_mois_incomplet > 0) * coefficient
Formule OpenFisca sur GithubVariables et paramètres inscrits dans la formule :
Paramètres :
Variables utilisées par le cas type :
Variables et dispositifs influencés par la formule :
La formule du dispositif "Coefficient de proratisation du salaire notamment pour le calcul du Smic" peut avoir une influence sur d'autres dispositifs et variables :