def formula(individu, period, parameters):
        taille_entreprise = individu('taille_entreprise', period)
        TypesTailleEntreprise = taille_entreprise.possible_values

        cotisation_0_9 = (taille_entreprise == TypesTailleEntreprise.moins_de_10) * apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'formprof_09',
            variable_name = 'formation_professionnelle',
            )

        cotisation_10_19 = (taille_entreprise == TypesTailleEntreprise.de_10_a_19) * apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'formprof_1019',
            variable_name = 'formation_professionnelle',
            )

        entreprise_eligible = (
            (taille_entreprise == TypesTailleEntreprise.de_20_a_249)
            + (taille_entreprise == TypesTailleEntreprise.plus_de_250)
            )
        cotisation_20 = entreprise_eligible * apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'formprof_20',
            variable_name = 'formation_professionnelle',
            )
        return cotisation_0_9 + cotisation_10_19 + cotisation_20
    def formula(individu, period, parameters):
        redevable_taxe_apprentissage = individu('redevable_taxe_apprentissage', period)
        salarie_regime_alsace_moselle = individu('salarie_regime_alsace_moselle', period)

        cotisation_regime_alsace_moselle = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'apprentissage_alsace_moselle',
            variable_name = 'taxe_apprentissage',
            )

        cotisation_regime_general = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'apprentissage',
            variable_name = 'taxe_apprentissage',
            )

        cotisation = np.where(
            salarie_regime_alsace_moselle,
            cotisation_regime_alsace_moselle,
            cotisation_regime_general,
            )

        return cotisation * redevable_taxe_apprentissage
    def formula_2015_01_01(individu, period, parameters):
        exposition_penibilite = individu('exposition_penibilite', period)
        TypesExpositionPenibilite = exposition_penibilite.possible_values
        multiplicateur = parameters(period).cotsoc.cotisations_employeur.prive_cadre.penibilite_multiplicateur_exposition_multiple

        cotisation_base = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = "employeur",
            bareme_name = "penibilite_base",
            variable_name = 'penibilite',
            )
        cotisation_additionnelle = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = "employeur",
            bareme_name = "penibilite_additionnelle",
            variable_name = 'penibilite',
            )

        cotisation = switch(
            exposition_penibilite,
            {
                TypesExpositionPenibilite.nulle: cotisation_base,
                TypesExpositionPenibilite.simple: cotisation_base + cotisation_additionnelle,
                TypesExpositionPenibilite.multiple: cotisation_base + cotisation_additionnelle * multiplicateur,
                }
            )

        return cotisation
    def formula(individu, period, parameters):
        cotisation_minimale = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = "employeur",
            bareme_name = "arrco",
            variable_name = 'arrco_employeur',
            )
        arrco_tranche_a_taux_employeur = individu('arrco_tranche_a_taux_employeur', period)
        assiette_cotisations_sociales = individu('assiette_cotisations_sociales', period, options = [ADD])
        plafond_securite_sociale = individu('plafond_securite_sociale', period, options = [ADD])
        categorie_salarie = individu('categorie_salarie', period)

        # cas où l'entreprise applique un taux spécifique
        cotisation_entreprise = - (
            min_(max_(assiette_cotisations_sociales, 0), plafond_securite_sociale)
            * arrco_tranche_a_taux_employeur
            )

        public = (
            (categorie_salarie == TypesCategorieSalarie.prive_non_cadre)
            + (categorie_salarie == TypesCategorieSalarie.prive_cadre)
            )
        return (
            cotisation_minimale * (arrco_tranche_a_taux_employeur == 0) + cotisation_entreprise
            ) * public
Esempio n. 5
0
 def function(self, simulation, period):
     cotisation = apply_bareme(
         simulation, period,
         cotisation_type = "employeur",
         bareme_name = "chomfg",
         variable_name = self.__class__.__name__,
         )
     return period, cotisation
Esempio n. 6
0
 def function(self, simulation, period):
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = "employeur",
         bareme_name = "apec",
         variable_name = self.__class__.__name__,
         )
     return period, cotisation  # TODO: check public notamment contractuel
Esempio n. 7
0
 def function(self, simulation, period):
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'salarie',
         bareme_name = 'cet',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation
Esempio n. 8
0
 def function(self, simulation, period):
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'famille',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation
Esempio n. 9
0
 def function(self, simulation, period):
     period = period.start.period(u'month').offset('first-of')
     cotisation = apply_bareme(
         simulation,
         period, cotisation_type = 'employeur',
         bareme_name = 'vieillesse_plafonnee',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation
Esempio n. 10
0
 def function(self, simulation, period):
     cotisation = apply_bareme(
         simulation, period,
         cotisation_type = "employeur",
         bareme_name = "agirc",
         variable_name = self.__class__.__name__
         )
     categorie_salarie = simulation.calculate('categorie_salarie', period)
     return period, cotisation * (categorie_salarie == 1)
Esempio n. 11
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "employeur",
         bareme_name = "apec",
         variable_name = 'apec_employeur',
         )
     return cotisation  # TODO: check public notamment contractuel
Esempio n. 12
0
 def function(self, simulation, period):
     period = period.start.period(u'month').offset('first-of')
     categorie_salarie = simulation.calculate('categorie_salarie', period)
     cotisation = apply_bareme(
         simulation, period,
         cotisation_type = "salarie",
         bareme_name = "apec",
         variable_name = self.__class__.__name__,
         )
     return period, cotisation * (categorie_salarie == 1)  # TODO: check public notamment contractuel
Esempio n. 13
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = 'employeur',
         bareme_name = 'maladie',
         variable_name = 'mmid_employeur',
         )
     return cotisation
Esempio n. 14
0
 def function(self, simulation, period):
     period = period.start.period(u'month').offset('first-of')
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'salarie',
         bareme_name = 'maladie',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation
Esempio n. 15
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "salarie",
         bareme_name = "agff",
         variable_name = "agff_salarie"
         )
     return cotisation
Esempio n. 16
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = 'employeur',
         bareme_name = 'cet',
         variable_name = 'cotisation_exceptionnelle_temporaire_employeur',
         )
     return cotisation
 def function(self, simulation, period):
     categorie_salarie = simulation.calculate('categorie_salarie', period)
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'financement_organisations_syndicales',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation * or_(categorie_salarie <= 1, categorie_salarie == 6)
Esempio n. 18
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = 'employeur',
         bareme_name = 'vieillesse_plafonnee',
         variable_name = 'vieillesse_plafonnee_employeur',
         )
     return cotisation
 def function(self, simulation, period):
     taille_entreprise = simulation.calculate('taille_entreprise', period)
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'fnal2',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation * (taille_entreprise > 2)
Esempio n. 20
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "employeur",
         bareme_name = "assedic",
         variable_name = "chomage_employeur",
         )
     return cotisation
Esempio n. 21
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "employeur",
         bareme_name = "csa",
         variable_name = 'contribution_solidarite_autonomie',
         )
     return cotisation
Esempio n. 22
0
 def function(self, simulation, period):
     period = period.start.period(u'month').offset('first-of')
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'maladie',
         variable_name = self.__class__.__name__,
         )
     contribution_solidarite_autonomie = simulation.calculate('contribution_solidarite_autonomie', period)
     return period, cotisation + contribution_solidarite_autonomie
Esempio n. 23
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = 'employeur',
         bareme_name = 'maladie',
         variable_name = 'mmida_employeur',
         )
     contribution_solidarite_autonomie = individu('contribution_solidarite_autonomie', period)
     return cotisation + contribution_solidarite_autonomie
Esempio n. 24
0
 def formula(individu, period, parameters):
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "employeur",
         bareme_name = "agirc",
         variable_name = 'agirc_employeur'
         )
     categorie_salarie = individu('categorie_salarie', period)
     return cotisation * (categorie_salarie == TypesCategorieSalarie.prive_cadre)
Esempio n. 25
0
 def function(self, simulation, period):
     period = period.start.period(u'month').offset('first-of')
     cotisation = apply_bareme(
         simulation,
         period,
         cotisation_type = "salarie",
         bareme_name = "agirc",
         variable_name = self.__class__.__name__
         )
     categorie_salarie = simulation.calculate('categorie_salarie', period)
     return period, cotisation * (categorie_salarie == 1)
Esempio n. 26
0
 def formula(individu, period, parameters):
     categorie_salarie = individu('categorie_salarie', period)
     cotisation = apply_bareme(
         individu,
         period,
         parameters,
         cotisation_type = "salarie",
         bareme_name = "apec",
         variable_name = 'apec_salarie',
         )
     return cotisation * (categorie_salarie == TypesCategorieSalarie.prive_cadre)  # TODO: check public notamment contractuel
    def function(self, simulation, period):
        redevable_taxe_apprentissage = simulation.calculate('redevable_taxe_apprentissage', period)

        cotisation = apply_bareme(
            simulation,
            period,
            cotisation_type = "employeur",
            bareme_name = "apprentissage_add",
            variable_name = self.__class__.__name__,
            )
        return period, cotisation * redevable_taxe_apprentissage
    def formula(individu, period, parameters):
        redevable_taxe_apprentissage = individu('redevable_taxe_apprentissage', period)

        cotisation = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = "employeur",
            bareme_name = "apprentissage_add",
            variable_name = "contribution_developpement_apprentissage",
            )
        return cotisation * redevable_taxe_apprentissage
    def function(self, simulation, period):
        period = period.start.period(u'month').offset('first-of')
        redevable_taxe_apprentissage = simulation.calculate('redevable_taxe_apprentissage', period)

        cotisation = apply_bareme(
            simulation,
            period,
            cotisation_type = 'employeur',
            bareme_name = 'apprentissage',
            variable_name = self.__class__.__name__,
            )
        return period, cotisation * redevable_taxe_apprentissage
Esempio n. 30
0
    def function(self, simulation, period):
        salarie_regime_alsace_moselle = simulation.calculate(
            'salarie_regime_alsace_moselle', period)

        cotisation_regime_general = apply_bareme(
            simulation,
            period,
            cotisation_type='salarie',
            bareme_name='maladie',
            variable_name=self.__class__.__name__,
        )

        cotisation_regime_alsace_moselle = apply_bareme(
            simulation,
            period,
            cotisation_type='salarie',
            bareme_name='maladie_alsace_moselle',
            variable_name=self.__class__.__name__,
        )

        cotisation = cotisation_regime_general + salarie_regime_alsace_moselle * cotisation_regime_alsace_moselle

        return cotisation
 def function(self, simulation, period):
     taille_entreprise = simulation.calculate('taille_entreprise', period)
     cotisation_0_9 = (taille_entreprise == 1) * apply_bareme(
         simulation,
         period, cotisation_type = 'employeur',
         bareme_name = 'formprof_09',
         variable_name = self.__class__.__name__,
         )
     cotisation_10_19 = (taille_entreprise == 2) * apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'formprof_1019',
         variable_name = self.__class__.__name__,
         )
     cotisation_20 = (taille_entreprise > 2) * apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'formprof_20',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation_0_9 + cotisation_10_19 + cotisation_20
 def function(self, simulation, period):
     taille_entreprise = simulation.calculate('taille_entreprise', period)
     cotisation_0_9 = (taille_entreprise == 1) * apply_bareme(
         simulation,
         period, cotisation_type = 'employeur',
         bareme_name = 'formprof_09',
         variable_name = self.__class__.__name__,
         )
     cotisation_10_19 = (taille_entreprise == 2) * apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'formprof_1019',
         variable_name = self.__class__.__name__,
         )
     cotisation_20 = (taille_entreprise > 2) * apply_bareme(
         simulation,
         period,
         cotisation_type = 'employeur',
         bareme_name = 'formprof_20',
         variable_name = self.__class__.__name__,
         )
     return period, cotisation_0_9 + cotisation_10_19 + cotisation_20
    def formula(individu, period, parameters):
        taille_entreprise = individu('taille_entreprise', period)
        TypesTailleEntreprise = taille_entreprise.possible_values

        cotisation_0_9 = (taille_entreprise
                          == TypesTailleEntreprise.moins_de_10) * apply_bareme(
                              individu,
                              period,
                              parameters,
                              cotisation_type='employeur',
                              bareme_name='formprof_09',
                              variable_name='formation_professionnelle',
                          )

        cotisation_10_19 = (taille_entreprise ==
                            TypesTailleEntreprise.de_10_a_19) * apply_bareme(
                                individu,
                                period,
                                parameters,
                                cotisation_type='employeur',
                                bareme_name='formprof_1019',
                                variable_name='formation_professionnelle',
                            )

        entreprise_eligible = (
            (taille_entreprise == TypesTailleEntreprise.de_20_a_249) +
            (taille_entreprise == TypesTailleEntreprise.plus_de_250))
        cotisation_20 = entreprise_eligible * apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type='employeur',
            bareme_name='formprof_20',
            variable_name='formation_professionnelle',
        )
        return cotisation_0_9 + cotisation_10_19 + cotisation_20
Esempio n. 34
0
    def formula(individu, period, parameters):
        salarie_regime_alsace_moselle = individu('salarie_regime_alsace_moselle', period)

        cotisation_regime_general = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'salarie',
            bareme_name = 'maladie',
            variable_name = 'mmid_salarie',
            )

        cotisation_regime_alsace_moselle = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'salarie',
            bareme_name = 'maladie_alsace_moselle',
            variable_name = 'mmid_salarie',
            )

        cotisation = cotisation_regime_general + salarie_regime_alsace_moselle * cotisation_regime_alsace_moselle

        return cotisation
Esempio n. 35
0
    def function(self, simulation, period):
        period = period.start.period(u'month').offset('first-of')
        salarie_regime_alsace_moselle = simulation.calculate(
            'salarie_regime_alsace_moselle', period)

        cotisation_regime_general = apply_bareme(
            simulation,
            period,
            cotisation_type='salarie',
            bareme_name='maladie',
            variable_name=self.__class__.__name__,
        )

        cotisation_regime_alsace_moselle = apply_bareme(
            simulation,
            period,
            cotisation_type='salarie',
            bareme_name='maladie_alsace_moselle',
            variable_name=self.__class__.__name__,
        )

        cotisation = cotisation_regime_general + salarie_regime_alsace_moselle * cotisation_regime_alsace_moselle

        return period, cotisation
    def formula(individu, period, parameters):
        taille_entreprise = individu('taille_entreprise', period)
        TypesTailleEntreprise = taille_entreprise.possible_values

        cotisation = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type='employeur',
            bareme_name='fnal2',
            variable_name='fnal_tranche_a_plus_20',
        )
        entreprise_eligible = (
            (taille_entreprise == TypesTailleEntreprise.de_20_a_249) +
            (taille_entreprise == TypesTailleEntreprise.plus_de_250))
        return cotisation * entreprise_eligible
    def formula(individu, period, parameters):
        effectif_entreprise = individu('effectif_entreprise', period)

        bareme = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type='employeur',
            bareme_name='construction',
            variable_name='participation_effort_construction',
        )

        seuil = parameters(period).cotsoc.pat.commun.construction_node.seuil
        cotisation = bareme * (effectif_entreprise >= seuil)

        return cotisation
    def formula_2015_01_01(individu, period, parameters):
        categorie_salarie = individu('categorie_salarie', period)
        cotisation = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type='employeur',
            bareme_name='financement_organisations_syndicales',
            variable_name='financement_organisations_syndicales',
        )
        contrat_de_droit_prive = (
            +(categorie_salarie == TypesCategorieSalarie.prive_non_cadre) +
            (categorie_salarie == TypesCategorieSalarie.prive_cadre) +
            (categorie_salarie == TypesCategorieSalarie.public_non_titulaire))

        return cotisation * contrat_de_droit_prive
Esempio n. 39
0
    def formula_2018(individu, period, parameters):
        """
        La cotisation maladie (hors Alsace-Moselle) disparaît à partir du 1er janvier 2018
        """
        salarie_regime_alsace_moselle = individu('salarie_regime_alsace_moselle', period)
        cotisation_regime_alsace_moselle = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'salarie',
            bareme_name = 'maladie_alsace_moselle',
            variable_name = 'mmid_salarie',
            )

        cotisation = salarie_regime_alsace_moselle * cotisation_regime_alsace_moselle

        return cotisation
    def formula(individu, period, parameters):
        taille_entreprise = individu('taille_entreprise', period)
        TypesTailleEntreprise = taille_entreprise.possible_values

        cotisation = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type='employeur',
            bareme_name='fnal1',
            variable_name="fnal_tranche_a",
        )
        entreprise_eligible = (
            (taille_entreprise == TypesTailleEntreprise.non_pertinent) +
            (taille_entreprise == TypesTailleEntreprise.moins_de_10) +
            (taille_entreprise == TypesTailleEntreprise.de_10_a_19))
        return cotisation * entreprise_eligible
Esempio n. 41
0
    def formula(self, simulation, period):
        effectif_entreprise = simulation.calculate('effectif_entreprise',
                                                   period)

        bareme = apply_bareme(
            simulation,
            period,
            cotisation_type='employeur',
            bareme_name='construction',
            variable_name=self.__class__.__name__,
        )

        # TODO : seuil passé de 10 à 20 avec l'Ordonnance n° 2005-895 du 2 août 2005

        cotisation = (bareme * (effectif_entreprise >= 20) + self.zeros() *
                      (effectif_entreprise < 20))

        return cotisation
    def function(self, simulation, period):
        period = period.start.period(u'month').offset('first-of')
        effectif_entreprise = simulation.calculate('effectif_entreprise', period)

        bareme = apply_bareme(
            simulation,
            period,
            cotisation_type = 'employeur',
            bareme_name = 'construction',
            variable_name = self.__class__.__name__,
            )

        # TODO : seuil passé de 10 à 20 avec l'Ordonnance n° 2005-895 du 2 août 2005

        cotisation = (
            bareme * (effectif_entreprise >= 20) +
            self.zeros() * (effectif_entreprise < 20)
            )

        return period, cotisation
    def formula(individu, period, parameters):
        effectif_entreprise = individu('effectif_entreprise', period)

        bareme = apply_bareme(
            individu,
            period,
            parameters,
            cotisation_type = 'employeur',
            bareme_name = 'construction',
            variable_name = 'participation_effort_construction',
            )

        # TODO : seuil passé de 10 à 20 avec l'Ordonnance n° 2005-895 du 2 août 2005

        cotisation = (
            bareme * (effectif_entreprise >= 20) +
            individu.filled_array(0) * (effectif_entreprise < 20)
            )

        return cotisation
    def formula(self, simulation, period):
        cotisation_minimale = apply_bareme(
            simulation,
            period,
            cotisation_type = "employeur",
            bareme_name = "arrco",
            variable_name = self.__class__.__name__,
            )
        arrco_tranche_a_taux_employeur = simulation.calculate('arrco_tranche_a_taux_employeur', period)
        assiette_cotisations_sociales = simulation.calculate_add('assiette_cotisations_sociales', period)
        plafond_securite_sociale = simulation.calculate_add('plafond_securite_sociale', period)
        categorie_salarie = simulation.calculate('categorie_salarie', period)

        # cas où l'entreprise applique un taux spécifique
        cotisation_entreprise = - (
            min_(max_(assiette_cotisations_sociales, 0), plafond_securite_sociale) *
            arrco_tranche_a_taux_employeur
            )
        return (
            cotisation_minimale * (arrco_tranche_a_taux_employeur == 0) + cotisation_entreprise
            ) * (categorie_salarie <= 1)
Esempio n. 45
0
    def function(self, simulation, period):
        period = period.start.period(u'month').offset('first-of')
        cotisation_minimale = apply_bareme(
            simulation,
            period,
            cotisation_type="salarie",
            bareme_name="arrco",
            variable_name=self.__class__.__name__,
        )
        arrco_tranche_a_taux_salarie = simulation.calculate(
            'arrco_tranche_a_taux_salarie', period)
        assiette_cotisations_sociales = simulation.calculate_add(
            'assiette_cotisations_sociales', period)
        plafond_securite_sociale = simulation.calculate_add(
            'plafond_securite_sociale', period)
        categorie_salarie = simulation.calculate('categorie_salarie', period)

        # cas où l'entreprise applique un taux spécifique
        cotisation_entreprise = -(min_(max_(assiette_cotisations_sociales, 0),
                                       plafond_securite_sociale) *
                                  arrco_tranche_a_taux_salarie)
        return period, (cotisation_minimale *
                        (arrco_tranche_a_taux_salarie == 0) +
                        cotisation_entreprise) * (categorie_salarie <= 1)