def function(self, simulation, period): period = period.this_month chomage_brut = simulation.calculate('chomage_brut', period) csg_deductible_chomage = simulation.calculate('csg_deductible_chomage', period) csg_imposable_chomage = simulation.calculate('csg_imposable_chomage', period) taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period) law = simulation.legislation_at(period.start) smic_h_b = law.cotsoc.gen.smic_h_b # salaire_mensuel_reference = chomage_brut / .7 # heures_mensuelles = min_(salaire_mensuel_reference / smic_h_b, 35 * 52 / 12) # TODO: depuis 2001 mais avant ? heures_mensuelles = 35 * 52 / 12 cho_seuil_exo = law.csg.chomage.min_exo * heures_mensuelles * smic_h_b montant_crds = montant_csg_crds( base_avec_abattement = chomage_brut, law_node = law.crds.activite, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) * (2 <= taux_csg_remplacement) crds_chomage = max_( -montant_crds - max_( cho_seuil_exo - (chomage_brut + csg_imposable_chomage + csg_deductible_chomage + montant_crds), 0 ), 0 ) return period, -crds_chomage
def formula(individu, period, parameters): chomage_brut = individu('chomage_brut', period) csg_imposable_chomage = individu('csg_imposable_chomage', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) parameters = parameters(period.start) montant_csg = montant_csg_crds( base_avec_abattement = chomage_brut, indicatrice_taux_plein = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein), indicatrice_taux_reduit = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit), law_node = parameters.prelevements_sociaux.contributions.csg.chomage.deductible, plafond_securite_sociale = parameters.cotsoc.gen.plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = ( parameters.prelevements_sociaux.contributions.csg.chomage.min_exo * nbh_travail * parameters.cotsoc.gen.smic_h_b ) csg_deductible_chomage = max_( - montant_csg - max_(cho_seuil_exo - ( chomage_brut + csg_imposable_chomage + montant_csg ), 0), 0, ) return - csg_deductible_chomage
def formula(individu, period, parameters): chomage_brut = individu('chomage_brut', period) csg_deductible_chomage = individu('csg_deductible_chomage', period) csg_imposable_chomage = individu('csg_imposable_chomage', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = parameters(period.start) smic_h_b = law.cotsoc.gen.smic_h_b # salaire_mensuel_reference = chomage_brut / .7 # heures_mensuelles = min_(salaire_mensuel_reference / smic_h_b, 35 * 52 / 12) # TODO: depuis 2001 mais avant ? heures_mensuelles = 35 * 52 / 12 cho_seuil_exo = law.prelevements_sociaux.contributions.csg.chomage.min_exo * heures_mensuelles * smic_h_b eligible = ( (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit) + (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein)) montant_crds = montant_csg_crds( base_avec_abattement=chomage_brut, law_node=law.prelevements_sociaux.contributions.crds.activite, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) * eligible crds_chomage = max_( -montant_crds - max_( cho_seuil_exo - (chomage_brut + csg_imposable_chomage + csg_deductible_chomage + montant_crds), 0), 0) return -crds_chomage
def formula(individu, period, parameters): chomage_brut = individu('chomage_brut', period) csg_deductible_chomage = individu('csg_deductible_chomage', period) csg_imposable_chomage = individu('csg_imposable_chomage', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = parameters(period.start) smic_h_b = law.cotsoc.gen.smic_h_b # salaire_mensuel_reference = chomage_brut / .7 # heures_mensuelles = min_(salaire_mensuel_reference / smic_h_b, 35 * 52 / 12) # TODO: depuis 2001 mais avant ? heures_mensuelles = 35 * 52 / 12 cho_seuil_exo = law.prelevements_sociaux.contributions.csg.chomage.min_exo * heures_mensuelles * smic_h_b eligible = ( (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit) + (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein) ) montant_crds = montant_csg_crds( base_avec_abattement = chomage_brut, law_node = law.prelevements_sociaux.contributions.crds.activite, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) * eligible crds_chomage = max_( -montant_crds - max_( cho_seuil_exo - (chomage_brut + csg_imposable_chomage + csg_deductible_chomage + montant_crds), 0 ), 0 ) return -crds_chomage
def formula(individu, period, legislation): chomage_brut = individu('chomage_brut', period) csg_imposable_chomage = individu('csg_imposable_chomage', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) legislation = legislation(period.start) montant_csg = montant_csg_crds( base_avec_abattement=chomage_brut, indicatrice_taux_plein=(taux_csg_remplacement == 3), indicatrice_taux_reduit=(taux_csg_remplacement == 2), law_node=legislation.prelevements_sociaux.contributions.csg. chomage.deductible, plafond_securite_sociale=legislation.cotsoc.gen. plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = ( legislation.prelevements_sociaux.contributions.csg.chomage.min_exo * nbh_travail * legislation.cotsoc.gen.smic_h_b) csg_deductible_chomage = max_( -montant_csg - max_( cho_seuil_exo - (chomage_brut + csg_imposable_chomage + montant_csg), 0), 0, ) return -csg_deductible_chomage
def formula(individu, period, parameters): retraite_brute = individu('retraite_brute', period) law = parameters(period.start) montant_csg = montant_csg_crds( base_sans_abattement = retraite_brute, law_node = law.prelevements_sociaux.contributions.csg.retraite.imposable, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) return montant_csg
def formula(individu, period, parameters): retraite_brute = individu('retraite_brute', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = parameters(period.start) montant_crds = montant_csg_crds( base_sans_abattement = retraite_brute, law_node = law.prelevements_sociaux.contributions.crds.retraite, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) * (taux_csg_remplacement == TypesTauxCSGRemplacement.exonere) return montant_crds
def formula(individu, period, parameters): retraite_brute = individu('retraite_brute', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = parameters(period.start) montant_crds = montant_csg_crds( base_sans_abattement=retraite_brute, law_node=law.prelevements_sociaux.contributions.crds.retraite, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) * (taux_csg_remplacement == TypesTauxCSGRemplacement.exonere) return montant_crds
def formula(individu, period, legislation): retraite_brute = individu('retraite_brute', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = legislation(period.start) montant_crds = montant_csg_crds( base_sans_abattement=retraite_brute, law_node=law.prelevements_sociaux.contributions.crds.retraite, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) * (taux_csg_remplacement == 1) return montant_crds
def function(self, simulation, period): period = period.this_month retraite_brute = simulation.calculate('retraite_brute', period) law = simulation.legislation_at(period.start) montant_csg = montant_csg_crds( base_sans_abattement = retraite_brute, law_node = law.csg.retraite.imposable, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) return period, montant_csg
def function(individu, period, legislation): period = period.this_month retraite_brute = individu('retraite_brute', period) law = legislation(period.start) montant_csg = montant_csg_crds( base_sans_abattement=retraite_brute, law_node=law.prelevements_sociaux.contributions.csg.retraite. imposable, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) return period, montant_csg
def formula(self, simulation, period): assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period) assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) csg = simulation.legislation_at(period.start).prelevements_sociaux.contributions.csg montant_csg = montant_csg_crds( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, law_node = csg.activite.deductible, plafond_securite_sociale = plafond_securite_sociale, ) return montant_csg
def formula(individu, period, parameters): assiette_csg_abattue = individu('assiette_csg_abattue', period) assiette_csg_non_abattue = individu('assiette_csg_non_abattue', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) csg = parameters(period).prelevements_sociaux.contributions.csg montant_csg = montant_csg_crds( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, law_node = csg.activite.deductible, plafond_securite_sociale = plafond_securite_sociale, ) return montant_csg
def formula(individu, period, parameters): assiette_csg_abattue = individu('assiette_csg_abattue', period) assiette_csg_non_abattue = individu('assiette_csg_non_abattue', period) plafond_securite_sociale = individu('plafond_securite_sociale', period) csg = parameters(period).prelevements_sociaux.contributions.csg montant_csg = montant_csg_crds( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, law_node = csg.activite.deductible, plafond_securite_sociale = plafond_securite_sociale, ) return montant_csg
def formula(individu, period, parameters): retraite_brute = individu('retraite_brute', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = parameters(period.start) montant_csg = montant_csg_crds( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein), indicatrice_taux_reduit = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit), law_node = law.prelevements_sociaux.contributions.csg.retraite.deductible, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) return montant_csg
def function(self, simulation, period): period = period.this_month retraite_brute = simulation.calculate('retraite_brute', period) taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period) law = simulation.legislation_at(period.start) montant_csg = montant_csg_crds( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_remplacement == 3), indicatrice_taux_reduit = (taux_csg_remplacement == 2), law_node = law.csg.retraite.deductible, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) return period, montant_csg
def function(individu, period, legislation): retraite_brute = individu('retraite_brute', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = legislation(period.start) montant_csg = montant_csg_crds( base_sans_abattement=retraite_brute, indicatrice_taux_plein=(taux_csg_remplacement == 3), indicatrice_taux_reduit=(taux_csg_remplacement == 2), law_node=law.prelevements_sociaux.contributions.csg.retraite. deductible, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) return montant_csg
def function(self, simulation, period): period = period.this_month chomage_brut = simulation.calculate('chomage_brut', period) law = simulation.legislation_at(period.start) montant_csg = montant_csg_crds( base_avec_abattement = chomage_brut, law_node = law.csg.chomage.imposable, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = law.csg.chomage.min_exo * nbh_travail * law.cotsoc.gen.smic_h_b csg_imposable_chomage = max_(- montant_csg - max_(cho_seuil_exo - (chomage_brut + montant_csg), 0), 0) return period, - csg_imposable_chomage
def function(self, simulation, period): period = period.this_month assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period) assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) csg = simulation.legislation_at(period.start).prelevements_sociaux.contributions.csg montant_csg = montant_csg_crds( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, law_node = csg.activite.deductible, plafond_securite_sociale = plafond_securite_sociale, ) return period, montant_csg
def function(self, simulation, period): period = period.this_month assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period) assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) legislation = simulation.legislation_at(period.start) montant_csg = montant_csg_crds( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, law_node = legislation.prelevements_sociaux.contributions.csg.activite.imposable, plafond_securite_sociale = plafond_securite_sociale, ) return period, montant_csg
def formula(self, simulation, period): assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period) assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period) plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period) law = simulation.parameters_at(period.start) montant_crds = montant_csg_crds( law_node = law.prelevements_sociaux.contributions.crds.activite, base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, plafond_securite_sociale = plafond_securite_sociale, ) return montant_crds
def formula(individu, period, parameters): chomage_brut = individu('chomage_brut', period) parameters = parameters(period.start) montant_csg = montant_csg_crds( base_avec_abattement = chomage_brut, law_node = parameters.prelevements_sociaux.contributions.csg.chomage.imposable, plafond_securite_sociale = parameters.cotsoc.gen.plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = ( parameters.prelevements_sociaux.contributions.csg.chomage.min_exo * nbh_travail * parameters.cotsoc.gen.smic_h_b ) csg_imposable_chomage = max_(- montant_csg - max_(cho_seuil_exo - (chomage_brut + montant_csg), 0), 0) return - csg_imposable_chomage
def formula(individu, period, parameters): chomage_brut = individu('chomage_brut', period) parameters = parameters(period.start) montant_csg = montant_csg_crds( base_avec_abattement = chomage_brut, law_node = parameters.prelevements_sociaux.contributions.csg.chomage.imposable, plafond_securite_sociale = parameters.cotsoc.gen.plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = ( parameters.prelevements_sociaux.contributions.csg.chomage.min_exo * nbh_travail * parameters.cotsoc.gen.smic_h_b ) csg_imposable_chomage = max_(- montant_csg - max_(cho_seuil_exo - (chomage_brut + montant_csg), 0), 0) return - csg_imposable_chomage
def function(individu, period, legislation): period = period.this_month chomage_brut = individu('chomage_brut', period) legislation = legislation(period.start) montant_csg = montant_csg_crds( base_avec_abattement=chomage_brut, law_node=legislation.prelevements_sociaux.contributions.csg. chomage.imposable, plafond_securite_sociale=legislation.cotsoc.gen. plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = ( legislation.prelevements_sociaux.contributions.csg.chomage.min_exo * nbh_travail * legislation.cotsoc.gen.smic_h_b) csg_imposable_chomage = max_( -montant_csg - max_(cho_seuil_exo - (chomage_brut + montant_csg), 0), 0) return period, -csg_imposable_chomage
def function(self, simulation, period): period = period.this_month chomage_brut = simulation.calculate('chomage_brut', period) csg_imposable_chomage = simulation.calculate('csg_imposable_chomage', period) taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period) law = simulation.legislation_at(period.start) montant_csg = montant_csg_crds( base_avec_abattement = chomage_brut, indicatrice_taux_plein = (taux_csg_remplacement == 3), indicatrice_taux_reduit = (taux_csg_remplacement == 2), law_node = law.csg.chomage.deductible, plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale, ) nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ? cho_seuil_exo = law.csg.chomage.min_exo * nbh_travail * law.cotsoc.gen.smic_h_b csg_deductible_chomage = max_( - montant_csg - max_(cho_seuil_exo - (chomage_brut + csg_imposable_chomage + montant_csg), 0), 0, ) return period, - csg_deductible_chomage
def function(individu, period, legislation): chomage_brut = individu('chomage_brut', period) csg_deductible_chomage = individu('csg_deductible_chomage', period) csg_imposable_chomage = individu('csg_imposable_chomage', period) taux_csg_remplacement = individu('taux_csg_remplacement', period) law = legislation(period.start) smic_h_b = law.cotsoc.gen.smic_h_b # salaire_mensuel_reference = chomage_brut / .7 # heures_mensuelles = min_(salaire_mensuel_reference / smic_h_b, 35 * 52 / 12) # TODO: depuis 2001 mais avant ? heures_mensuelles = 35 * 52 / 12 cho_seuil_exo = law.prelevements_sociaux.contributions.csg.chomage.min_exo * heures_mensuelles * smic_h_b montant_crds = montant_csg_crds( base_avec_abattement=chomage_brut, law_node=law.prelevements_sociaux.contributions.crds.activite, plafond_securite_sociale=law.cotsoc.gen.plafond_securite_sociale, ) * (2 <= taux_csg_remplacement) crds_chomage = max_( -montant_crds - max_( cho_seuil_exo - (chomage_brut + csg_imposable_chomage + csg_deductible_chomage + montant_crds), 0), 0) return -crds_chomage