def function(self, simulation, period): period = period.this_month assiette_cotisations_sociales_public = simulation.calculate( 'assiette_cotisations_sociales_public', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.legislation_at(period.start) base = assiette_cotisations_sociales_public cotisation_etat = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_employeur, bareme_name="ati", base=base, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) cotisation_collectivites_locales = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_employeur, bareme_name="atiacl", base=base, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return period, cotisation_etat + cotisation_collectivites_locales
def formula(self, simulation, period): assiette_cotisations_sociales = simulation.calculate( 'assiette_cotisations_sociales', period) categorie_salarie = simulation.calculate('categorie_salarie', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) law = simulation.parameters_at(period.start) cotisation_non_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffnc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) cotisation_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return cotisation_cadre + cotisation_non_cadre
def function(self, simulation, period): period = period.start.period(u'month').offset('first-of') assiette_cotisations_sociales = simulation.calculate( 'assiette_cotisations_sociales', period) categorie_salarie = simulation.calculate('categorie_salarie', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) law = simulation.legislation_at(period.start) cotisation_non_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = law.cotsoc.cotisations_employeur, bareme_name = "agffnc", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) cotisation_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = law.cotsoc.cotisations_employeur, bareme_name = "agffc", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return period, cotisation_cadre + cotisation_non_cadre
def function(self, simulation, period): period = period.start.period(u'month').offset('first-of') assiette_cotisations_sociales = simulation.calculate( 'assiette_cotisations_sociales', period) categorie_salarie = simulation.calculate('categorie_salarie', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) law = simulation.legislation_at(period.start) cotisation_non_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffnc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) cotisation_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return period, cotisation_cadre + cotisation_non_cadre
def function(self, simulation, period): period = period.this_month agirc_salarie = simulation.calculate('agirc_salarie', period) agirc_gmp_salarie = simulation.calculate('agirc_gmp_salarie', period) arrco_salarie = simulation.calculate('arrco_salarie', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period) stagiaire = simulation.calculate('stagiaire', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_salarie bareme_names = ['agff', 'assedic'] exoneration = plafond_securite_sociale * 0.0 for bareme_name in bareme_names: exoneration += apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = bareme_by_type_sal_name, bareme_name = bareme_name, categorie_salarie = categorie_salarie, base = stage_gratification_reintegration, plafond_securite_sociale = plafond_securite_sociale, round_base_decimals = 2, ) exoneration = exoneration + agirc_salarie + agirc_gmp_salarie + arrco_salarie return period, - exoneration * stagiaire
def formula(self, simulation, period): agirc_salarie = simulation.calculate('agirc_salarie', period) agirc_gmp_salarie = simulation.calculate('agirc_gmp_salarie', period) arrco_salarie = simulation.calculate('arrco_salarie', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) stage_gratification_reintegration = simulation.calculate( 'stage_gratification_reintegration', period) stagiaire = simulation.calculate('stagiaire', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at( period.start).cotsoc.cotisations_salarie bareme_names = ['agff', 'assedic'] exoneration = plafond_securite_sociale * 0.0 for bareme_name in bareme_names: exoneration += apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=bareme_by_type_sal_name, bareme_name=bareme_name, categorie_salarie=categorie_salarie, base=stage_gratification_reintegration, plafond_securite_sociale=plafond_securite_sociale, round_base_decimals=2, ) exoneration = exoneration + agirc_salarie + agirc_gmp_salarie + arrco_salarie return -exoneration * stagiaire
def formula(self, simulation, period): agirc_employeur = simulation.calculate('agirc_employeur', period) agirc_gmp_employeur = simulation.calculate('agirc_gmp_employeur', period) arrco_employeur = simulation.calculate('arrco_employeur', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) stage_gratification_reintegration = simulation.calculate( 'stage_gratification_reintegration', period) stagiaire = simulation.calculate('stagiaire', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at( period.start).cotsoc.cotisations_employeur exoneration = sum( apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=bareme_by_type_sal_name, bareme_name=bareme_name, categorie_salarie=categorie_salarie, base=stage_gratification_reintegration, plafond_securite_sociale=plafond_securite_sociale, round_base_decimals=2, ) for bareme_name in ['agffnc', 'agffc', 'chomfg', 'assedic']) exoneration += agirc_employeur + agirc_gmp_employeur + arrco_employeur return -exoneration * stagiaire
def formula(individu, period, parameters): agirc_salarie = individu('agirc_salarie', period) agirc_gmp_salarie = individu('agirc_gmp_salarie', period) arrco_salarie = individu('arrco_salarie', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) stage_gratification_reintegration = individu('stage_gratification_reintegration', period) stagiaire = individu('stagiaire', period) categorie_salarie = individu('categorie_salarie', period) bareme_by_type_sal_name = parameters(period).cotsoc.cotisations_salarie bareme_names = ['agff', 'assedic'] exoneration = plafond_securite_sociale * 0.0 for bareme_name in bareme_names: exoneration += apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = bareme_by_type_sal_name, bareme_name = bareme_name, categorie_salarie = categorie_salarie, base = stage_gratification_reintegration, plafond_securite_sociale = plafond_securite_sociale, round_base_decimals = 2, ) exoneration = exoneration + agirc_salarie + agirc_gmp_salarie + arrco_salarie return - exoneration * stagiaire
def formula(individu, period, parameters): traitement_indiciaire_brut = individu('traitement_indiciaire_brut', period) hsup = individu('hsup', period) categorie_salarie = individu('categorie_salarie', period) indemnite_residence = individu('indemnite_residence', period) primes_fonction_publique = individu('primes_fonction_publique', period) rafp_salarie = individu('rafp_salarie', period) pension_civile_salarie = individu('pension_civile_salarie', period) cotisations_salariales_contributives = individu( 'cotisations_salariales_contributives', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) salaire_de_base = individu('salaire_de_base', period) supplement_familial_traitement = individu( 'supplement_familial_traitement', period) # Assujettis parameters = parameters(period) seuil_assujetissement_fds = compute_seuil_fds(parameters) concernes = ( (categorie_salarie == TypesCategorieSalarie.public_titulaire_etat) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_territoriale) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_hospitaliere) + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire)) remuneration_brute = (traitement_indiciaire_brut + salaire_de_base + indemnite_residence - hsup) assujettis = concernes * (remuneration_brute > seuil_assujetissement_fds) # Pour le calcul de l'assiette, on déduit de la rémunaration brute # - toutes les cotisations de sécurité sociale obligatoires # - les prélèvements pour pension # - et, le cas échéant, les prélèvements au profit des régimes de retraite complémentaire obligatoires. # Soit: # - pour les titutlaires, les pensions # - les non titulaires, les cotisations sociales contributives (car pas de cotisations non contributives pour les non titulaires de la fonction public) deduction = assujettis * ( +rafp_salarie + pension_civile_salarie + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire) * cotisations_salariales_contributives) # Ces déductions sont négatives cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=parameters.cotsoc.cotisations_salarie, bareme_name="excep_solidarite", base=assujettis * min_( remuneration_brute + supplement_familial_traitement + primes_fonction_publique + deduction, parameters.prelevements_sociaux.cotisations_sociales.fds. plafond_base_solidarite, ), plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return cotisation
def formula(individu, period, parameters): traitement_indiciaire_brut = individu('traitement_indiciaire_brut', period) hsup = individu('hsup', period) categorie_salarie = individu('categorie_salarie', period) indemnite_residence = individu('indemnite_residence', period) primes_fonction_publique = individu('primes_fonction_publique', period) rafp_salarie = individu('rafp_salarie', period) pension_civile_salarie = individu('pension_civile_salarie', period) cotisations_salariales_contributives = individu('cotisations_salariales_contributives', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) salaire_de_base = individu('salaire_de_base', period) supplement_familial_traitement = individu('supplement_familial_traitement', period) # Assujettis parameters = parameters(period) seuil_assujetissement_fds = compute_seuil_fds(parameters) concernes = ( (categorie_salarie == TypesCategorieSalarie.public_titulaire_etat) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_territoriale) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_hospitaliere) + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire) ) remuneration_brute = ( traitement_indiciaire_brut + salaire_de_base + indemnite_residence - hsup ) assujettis = concernes * (remuneration_brute > seuil_assujetissement_fds) # Pour le calcul de l'assiette, on déduit de la rémunaration brute # - toutes les cotisations de sécurité sociale obligatoires # - les prélèvements pour pension # - et, le cas échéant, les prélèvements au profit des régimes de retraite complémentaire obligatoires. # Soit: # - pour les titutlaires, les pensions # - les non titulaires, les cotisations sociales contributives (car pas de cotisations non contributives pour les non titulaires de la fonction public) deduction = assujettis * ( + rafp_salarie + pension_civile_salarie + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire) * cotisations_salariales_contributives ) # Ces déductions sont négatives cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = parameters.cotsoc.cotisations_salarie, bareme_name = "excep_solidarite", base = assujettis * min_( remuneration_brute + supplement_familial_traitement + primes_fonction_publique + deduction, parameters.prelevements_sociaux.cotisations_sociales.fds.plafond_base_solidarite, ), plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return cotisation
def formula(individu, period, parameters): assiette_cotisations_sociales_public = individu('assiette_cotisations_sociales_public', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) categorie_salarie = individu('categorie_salarie', period) _P = parameters(period) cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "feh", base = assiette_cotisations_sociales_public, # TODO: check base plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return cotisation
def formula(individu, period, parameters): assiette_cotisations_sociales_public = individu('assiette_cotisations_sociales_public', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) categorie_salarie = individu('categorie_salarie', period) _P = parameters(period) base = assiette_cotisations_sociales_public cotisation_etat = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "ati", base = base, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) cotisation_collectivites_locales = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "atiacl", base = base, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return cotisation_etat + cotisation_collectivites_locales
def function(self, simulation, period): period = period.this_month traitement_indiciaire_brut = simulation.calculate( 'traitement_indiciaire_brut', period) hsup = simulation.calculate('hsup', period) categorie_salarie = simulation.calculate('categorie_salarie', period) indemnite_residence = simulation.calculate('indemnite_residence', period) primes_fonction_publique = simulation.calculate( 'primes_fonction_publique', period) rafp_salarie = simulation.calculate('rafp_salarie', period) pension_civile_salarie = simulation.calculate('pension_civile_salarie', period) cotisations_salariales_contributives = simulation.calculate( 'cotisations_salariales_contributives', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) salaire_de_base = simulation.calculate('salaire_de_base', period) _P = simulation.legislation_at(period.start) seuil_assuj_fds = seuil_fds(_P) assujettis = ( (categorie_salarie == CATEGORIE_SALARIE['public_titulaire_etat']) + (categorie_salarie == CATEGORIE_SALARIE['public_titulaire_territoriale']) + (categorie_salarie == CATEGORIE_SALARIE['public_titulaire_hospitaliere']) + (categorie_salarie == CATEGORIE_SALARIE['public_non_titulaire']) ) * ((traitement_indiciaire_brut + salaire_de_base - hsup) > seuil_assuj_fds) # TODO: check assiette voir IPP cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_salarie, bareme_name="excep_solidarite", base=assujettis * min_( (traitement_indiciaire_brut + salaire_de_base - hsup + indemnite_residence + rafp_salarie + pension_civile_salarie + primes_fonction_publique + (categorie_salarie == CATEGORIE_SALARIE['public_non_titulaire']) * cotisations_salariales_contributives), _P.prelevements_sociaux.cotisations_sociales.fds. plafond_base_solidarite, ), plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return period, cotisation
def formula(individu, period, parameters): assiette_cotisations_sociales = individu('assiette_cotisations_sociales', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) categorie_salarie = individu('categorie_salarie', period) _P = parameters(period) ircantec = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "ircantec", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return ircantec * (categorie_salarie == TypesCategorieSalarie.public_non_titulaire)
def function(self, simulation, period): period = period.this_month assiette_allegement = simulation.calculate('assiette_allegement', period) jei_date_demande = simulation.calculate('jei_date_demande', period) jeune_entreprise_innovante = simulation.calculate( 'jeune_entreprise_innovante', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) smic_proratise = simulation.calculate('smic_proratise', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at( period.start).cotsoc.cotisations_employeur bareme_names = [ 'vieillesse_deplafonnee', 'vieillesse_plafonnee', 'maladie', 'famille' ] exoneration = smic_proratise * 0.0 for bareme_name in bareme_names: exoneration += apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=bareme_by_type_sal_name, bareme_name=bareme_name, categorie_salarie=categorie_salarie, base=min_(assiette_allegement, 4.5 * smic_proratise), plafond_securite_sociale=plafond_securite_sociale, round_base_decimals=2, ) exoneration_relative_year_passed = exoneration_relative_year( period, jei_date_demande) rate_by_year_passed = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, } # TODO: move to legislation parameters file for year_passed, rate in rate_by_year_passed.iteritems(): condition_on_year_passed = exoneration_relative_year_passed == timedelta64( year_passed, 'Y') if condition_on_year_passed.any(): exoneration[condition_on_year_passed] = rate * exoneration return period, -exoneration * jeune_entreprise_innovante
def function(self, simulation, period): period = period.this_month assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.legislation_at(period.start) ircantec = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "ircantec", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return period, ircantec
def function(self, simulation, period): assiette_cotisations_sociales_public = simulation.calculate( 'assiette_cotisations_sociales_public', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.legislation_at(period.start) cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_employeur, bareme_name="feh", base=assiette_cotisations_sociales_public, # TODO: check base plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return cotisation
def function(self, simulation, period): period = period.this_month assiette_cotisations_sociales_public = simulation.calculate('assiette_cotisations_sociales_public', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.legislation_at(period.start) base = assiette_cotisations_sociales_public cotisation_etat = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "ati", base = base, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) cotisation_collectivites_locales = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur, bareme_name = "atiacl", base = base, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return period, cotisation_etat + cotisation_collectivites_locales
def formula(individu, period, parameters): assiette_cotisations_sociales = individu( 'assiette_cotisations_sociales', period) categorie_salarie = individu('categorie_salarie', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) law = parameters(period) cotisation_non_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffnc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) cotisation_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=law.cotsoc.cotisations_employeur, bareme_name="agffc", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return cotisation_cadre + cotisation_non_cadre
def formula(individu, period, parameters): assiette_cotisations_sociales = individu( 'assiette_cotisations_sociales', period) categorie_salarie = individu('categorie_salarie', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) law = parameters(period) cotisation_non_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = law.cotsoc.cotisations_employeur, bareme_name = "agffnc", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) cotisation_cadre = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = law.cotsoc.cotisations_employeur, bareme_name = "agffc", base = assiette_cotisations_sociales, plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return cotisation_cadre + cotisation_non_cadre
def function(self, simulation, period): assiette_cotisations_sociales = simulation.calculate( 'assiette_cotisations_sociales', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.legislation_at(period.start) ircantec = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_employeur, bareme_name="ircantec", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return ircantec
def formula(self, simulation, period): assiette_cotisations_sociales = simulation.calculate( 'assiette_cotisations_sociales', period) plafond_securite_sociale = simulation.calculate( 'plafond_securite_sociale', period) categorie_salarie = simulation.calculate('categorie_salarie', period) _P = simulation.parameters_at(period.start) ircantec = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_salarie, bareme_name="ircantec", base=assiette_cotisations_sociales, plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return ircantec * (categorie_salarie == 6) # agent non titulaire
def formula(individu, period, parameters): traitement_indiciaire_brut = individu('traitement_indiciaire_brut', period) hsup = individu('hsup', period) categorie_salarie = individu('categorie_salarie', period) indemnite_residence = individu('indemnite_residence', period) primes_fonction_publique = individu('primes_fonction_publique', period) rafp_salarie = individu('rafp_salarie', period) pension_civile_salarie = individu('pension_civile_salarie', period) cotisations_salariales_contributives = individu( 'cotisations_salariales_contributives', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) salaire_de_base = individu('salaire_de_base', period) _P = parameters(period) seuil_assuj_fds = seuil_fds(_P) assujettis = ( (categorie_salarie == TypesCategorieSalarie.public_titulaire_etat) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_territoriale) + (categorie_salarie == TypesCategorieSalarie.public_titulaire_hospitaliere) + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire) ) * ((traitement_indiciaire_brut + salaire_de_base - hsup) > seuil_assuj_fds) # TODO: check assiette voir IPP cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name=_P.cotsoc.cotisations_salarie, bareme_name="excep_solidarite", base=assujettis * min_( (traitement_indiciaire_brut + salaire_de_base - hsup + indemnite_residence + rafp_salarie + pension_civile_salarie + primes_fonction_publique + (categorie_salarie == TypesCategorieSalarie.public_non_titulaire) * cotisations_salariales_contributives), _P.prelevements_sociaux.cotisations_sociales.fds. plafond_base_solidarite, ), plafond_securite_sociale=plafond_securite_sociale, categorie_salarie=categorie_salarie, ) return cotisation
def function(self, simulation, period): period = period.this_month traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period) hsup = simulation.calculate('hsup', period) categorie_salarie = simulation.calculate('categorie_salarie', period) indemnite_residence = simulation.calculate('indemnite_residence', period) primes_fonction_publique = simulation.calculate('primes_fonction_publique', period) rafp_salarie = simulation.calculate('rafp_salarie', period) pension_civile_salarie = simulation.calculate('pension_civile_salarie', period) cotisations_salariales_contributives = simulation.calculate('cotisations_salariales_contributives', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) salaire_de_base = simulation.calculate('salaire_de_base', period) _P = simulation.legislation_at(period.start) seuil_assuj_fds = seuil_fds(_P) assujettis = ( (categorie_salarie == CAT['public_titulaire_etat']) + (categorie_salarie == CAT['public_titulaire_territoriale']) + (categorie_salarie == CAT['public_titulaire_hospitaliere']) + (categorie_salarie == CAT['public_non_titulaire']) ) * ( (traitement_indiciaire_brut + salaire_de_base - hsup) > seuil_assuj_fds ) # TODO: check assiette voir IPP cotisation = apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = _P.cotsoc.cotisations_salarie, bareme_name = "excep_solidarite", base = assujettis * min_( ( traitement_indiciaire_brut + salaire_de_base - hsup + indemnite_residence + rafp_salarie + pension_civile_salarie + primes_fonction_publique + (categorie_salarie == CAT['public_non_titulaire']) * cotisations_salariales_contributives ), _P.cotsoc.sal.fonc.commun.plafond_base_solidarite, ), plafond_securite_sociale = plafond_securite_sociale, categorie_salarie = categorie_salarie, ) return period, cotisation
def function(self, simulation, period): period = period.this_month assiette_allegement = simulation.calculate('assiette_allegement', period) jei_date_demande = simulation.calculate('jei_date_demande', period) jeune_entreprise_innovante = simulation.calculate('jeune_entreprise_innovante', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) smic_proratise = simulation.calculate('smic_proratise', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_employeur bareme_names = ['vieillesse_deplafonnee', 'vieillesse_plafonnee', 'maladie', 'famille'] exoneration = smic_proratise * 0.0 for bareme_name in bareme_names: exoneration += apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = bareme_by_type_sal_name, bareme_name = bareme_name, categorie_salarie = categorie_salarie, base = min_(assiette_allegement, 4.5 * smic_proratise), plafond_securite_sociale = plafond_securite_sociale, round_base_decimals = 2, ) exoneration_relative_year_passed = exoneration_relative_year(period, jei_date_demande) rate_by_year_passed = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, } # TODO: move to legislation parameters file for year_passed, rate in rate_by_year_passed.iteritems(): condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y') if condition_on_year_passed.any(): exoneration[condition_on_year_passed] = rate * exoneration return period, - exoneration * jeune_entreprise_innovante
def formula(individu, period, parameters): agirc_employeur = individu('agirc_employeur', period) agirc_gmp_employeur = individu('agirc_gmp_employeur', period) arrco_employeur = individu('arrco_employeur', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) stage_gratification_reintegration = individu('stage_gratification_reintegration', period) stagiaire = individu('stagiaire', period) categorie_salarie = individu('categorie_salarie', period) bareme_by_type_sal_name = parameters(period).cotsoc.cotisations_employeur exoneration = sum( apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = bareme_by_type_sal_name, bareme_name = bareme_name, categorie_salarie = categorie_salarie, base = stage_gratification_reintegration, plafond_securite_sociale = plafond_securite_sociale, round_base_decimals = 2, ) for bareme_name in ['agffnc', 'agffc', 'chomfg', 'assedic'] ) exoneration += agirc_employeur + agirc_gmp_employeur + arrco_employeur return - exoneration * stagiaire
def function(self, simulation, period): period = period.this_month agirc_employeur = simulation.calculate('agirc_employeur', period) agirc_gmp_employeur = simulation.calculate('agirc_gmp_employeur', period) arrco_employeur = simulation.calculate('arrco_employeur', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period) stagiaire = simulation.calculate('stagiaire', period) categorie_salarie = simulation.calculate('categorie_salarie', period) bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_employeur exoneration = sum( apply_bareme_for_relevant_type_sal( bareme_by_type_sal_name = bareme_by_type_sal_name, bareme_name = bareme_name, categorie_salarie = categorie_salarie, base = stage_gratification_reintegration, plafond_securite_sociale = plafond_securite_sociale, round_base_decimals = 2, ) for bareme_name in ['agffnc', 'agffc', 'chomfg', 'assedic'] ) exoneration += agirc_employeur + agirc_gmp_employeur + arrco_employeur return period, - exoneration * stagiaire