diff --git a/parameters/Entités/1.Individu.yaml b/parameters/Entités/1.Individu.yaml new file mode 100644 index 000000000..2def069d1 --- /dev/null +++ b/parameters/Entités/1.Individu.yaml @@ -0,0 +1,21 @@ +# Individu est le concept représentant une personne. +# C'est un 'record', une collection de champs nommés +Individu + # Ce concept a des propriétés non calculables. + # On peut parler de variables d'entrée, à saisir par l'utilisateur de la simulation. + date de naissance: YYYY-MM-JJ + # Et d'autres calculables. Mais toujours saisissables. + # On parle alors simplement de variables. + age = calc(date de naissance): nombre positif + # A ce concept est associée une liste d'un autre concept, l'Activité. + # La liste dénote le fait qu'elles peuvent se cumuler. + activités: liste Activité + +# Lors de l'éxecution du simulateur, ce concept sera instancié avec des données, +# potentiellement plusieurs fois pour construire une population : +# { +# date de naissance: 1989-08-01, +# activités: [a1, a2] +# } + +# -------> allez voir le concept Activité diff --git a/parameters/Entités/2.Activité.yaml b/parameters/Entités/2.Activité.yaml new file mode 100644 index 000000000..8dad1a822 --- /dev/null +++ b/parameters/Entités/2.Activité.yaml @@ -0,0 +1,14 @@ +Activité + # L'activité d'un individu, souvent rémunérée. + + Salariat + | Indépendant + | Fonction publique + | Stage + | Demandeur Emploi + + # Cette syntaxe indique que l'activité est une alternative entre plusieurs autres concepts incompatibles : c'est ce que l'on appelle une variante. + # Ce qui ne veux pas dire que le cumul de plusieurs activités est impossible (etc. Salariat et Indépendant), mais celui-ci est défini en amont dans le concept d'Individu. + + # C'est aux TODO fonctions de contrôle que revient la tâche de vérifier la cohérence des données + # Par exemple, un on peut cumuler un emploi dans la fonction publique et une activité d'indépendant que sous certaines conditions. diff --git a/parameters/Entités/3.Salariat.yaml b/parameters/Entités/3.Salariat.yaml new file mode 100644 index 000000000..538e3673b --- /dev/null +++ b/parameters/Entités/3.Salariat.yaml @@ -0,0 +1,52 @@ +Salariat + # Sur ce concept de Salariat sont définies une liste de propriétés. + # Le salarié est embauché dans un établissement, lui même rattaché à une entreprise + établissement: Établissement + salaire de base: nombre positif (0) + salaire brut: salaire de base + primes + indemnités + salaire net: calc() + cout du travail: calc() + terme Contrat: CDI | CDD + statut: Cadre | Non cadre + # Cette propriété a pour type une énumération, mais peut-être calculée. + régime géographique: + calc() : + | Alsace-Moselle + | Outre-Mer + + # les variables contenues dans le concept Régime Alsace Moselle (précisé plus loin) servent au calcul ci-dessus + régime alsace moselle: Régime Alsace Moselle + + # Une instance de Salariat peut préciser le type de contrat. + + contrat: Contrat + Aidé: + | Contrat unique insertion + | Contrat professionnalisation + | Emploi avenir + | Étudiant apprenti professeur + | CDD sénior + Alternance: + | Apprentissage + | Contrat professionnalisation + +# Ce type Contrat n'est pas exactement une hiérarchie : on observe que Contrat Professionnalisation est à la fois un contrat aidé et un contrat d'alternance. Ce type de définition revient à combiner ces deux tâches : +# - écrire une liste de possibilités exclusives pour les contrats +# - définir des variables de calcul d'appartenance à une catégorie : aidé = contrat est (CUI ou Contrat Pro ou ...) +Contrat + Aidé: + | Contrat unique insertion + | Contrat professionnalisation + | Emploi avenir + | Étudiant apprenti professeur + | CDD sénior + Alternance: + | Apprentissage + | Contrat professionnalisation + +# Il aurait été possible d'attacher ces propriétés directement au concept Salariat, mais la définition de sous-concepts nous donne de l'ordre. C'est en quelque sorte un espace de nom ('namespace'). +Régime Alsace Moselle + affiliation 2012 conservée: Booléen + département activité salarié: code département + itinérance en Alsace Moselle: Booléen + itinérance en Alsace Moselle contractualisée: Booléen diff --git a/parameters/Entités/4.Entreprise.yaml b/parameters/Entités/4.Entreprise.yaml new file mode 100644 index 000000000..db2bff969 --- /dev/null +++ b/parameters/Entités/4.Entreprise.yaml @@ -0,0 +1,22 @@ +# Le nom de ce fichier n'est qu'un guide : plusieurs concepts sont ici définis + +Établissement + Entreprise + effectif: nombre positif + code INSEE: entier à 5 chiffres + code Postal = calc(code INSEE) : entier à 5 chiffres + compte AT/MP: Compte AT/MP + +Compte AT/MP + code risque: caractères + appréciation du risque: très élevé | élevé | moyen | bureau + taux de risque: calc(code risque) nombre positif + +Entreprise + # l'effectif est par défaut automatiquement rempli de cette façon + effectif: (sum(Établissements.effectif)): nombre positif + employés: liste Individus + établissements: liste Établissements + nombre apprenti: nombre positif + + taxe sur les salaires(Cotisation, Impôt) = sum(Employés.Taxe sur les salaires) diff --git a/parameters/Entités/Activité.md b/parameters/Entités/Activité.md new file mode 100644 index 000000000..7d19e883e --- /dev/null +++ b/parameters/Entités/Activité.md @@ -0,0 +1,16 @@ +# Réflection sur la notion de haut niveau permettant d'implémenter les cotisations sociales + +Malheureusement Contrat n'est pas adapté à toutes les situations: il est possible d'employer quelqu'un sans emploi: +- particuliers employeurs : plus de 8 heures par semaine ou de plus de 4 semaines consécutives dans l'année. +- La signature d’un contrat de travail n’est pas obligatoire dans certains cas. C’est le cas du Contrat de travail à Durée Indéterminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail). + - un assimilé salarié peut sûrement ne pas avoir de contrat + +Cela dit, un contrat pourrait être noté "virtuel" pour ces cas là. + +On pourrait alors se tourner vers le concept de "Salarié" (en y incluant tout ce qui y est assimilé). +Ce qui nous donnerait deux autres catégories : TNS (travailleur non salarié) et Fonction publique. +Mais ! +- c'est étrange de se dire qu'un agent de la fonction publique, notamment contractuel, n'est pas salarié +- un stagiaire (et d'autres exceptions) n'est pas un salarié ! + +Autre possibilité : l'Activité. diff --git a/parameters/classes/Cotisation.yaml b/parameters/Entités/Cotisation.yaml similarity index 100% rename from parameters/classes/Cotisation.yaml rename to parameters/Entités/Cotisation.yaml diff --git a/parameters/classes/Activité.yaml b/parameters/classes/Activité.yaml deleted file mode 100644 index 07ccf230e..000000000 --- a/parameters/classes/Activité.yaml +++ /dev/null @@ -1,76 +0,0 @@ -# Malheureusement Contrat n'est pas adapté à toutes les situations: il est possible d'employer quelqu'un sans emploi -# - particuliers employeurs : plus de 8 heures par semaine ou de plus de 4 semaines consécutives dans l'année. -# - La signature d’un contrat de travail n’est pas obligatoire dans certains cas. C’est le cas du Contrat de travail à Durée Indéterminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail). -# - un assimilé salarié peut sûrement ne pas avoir de contrat -# -# Cela dit, un contrat pourrait être noté "virtuel" pour ces cas là. -# -# On pourrait alors se tourner vers le concept de "Salarié" (en y incluant tout ce qui y est assimilé). -# Ce qui nous donnerait deux autres catégories : TNS (travailleur non salarié) et Fonction publique. -# Mais ! -# - c'est étrange de se dire qu'un agent de la fonction publique, notamment contractuel, n'est pas salarié -# - un stagiaire (et d'autres exceptions) n'est pas un salarié ! -# -# Autre possibilité : l'Activité. - -Individu - date de naissance: YYYY-MM-JJ - age = calc(date de naissance): nombre positif - liste Activité - -Activité -# Une activité d'un individu, souvent rémunérée et cumulable. - Salariat - | Indépendant - | Fonction publique - | Stage - - -Salariat -# Sur ce concept de Salariat sont définies une liste de propriétés - Établissement - salaire de base: nombre positif (0) - salaire brut: salaire de base + primes + indemnités - salaire net: calc() - cout du travail: calc() - Rémunérations: liste Prime - Contrat: - | Apprentissage - | CDD Sénior - | Contrat Professionnalisation - | Contrat Unique Insertion - | Contrat Aidé - - Terme Contrat: CDI | CDD - Contrat aidé: - | Contrat unique insertion - | Contrat de professionnalisation - | Emploi avenir - | Étudiant apprenti professeur - | CDD sénior - - Alternance: - | Apprentissage - | Contrat professionnalisation - - Statut: Cadre | Non cadre - - -Établissement - Entreprise - effectif: nombre positif - code INSEE: entier à 5 chiffres - code Postal = calc(code INSEE) : entier à 5 chiffres - Compte AT/MP - -Compte AT/MP - code risque AT/MP: caractères - taux de risque AT/MP: nombre positif - -Entreprise - effectif = sum(Etablissements.effectif) - employés: liste Individus - nombre apprenti: nombre positif - établissements: liste Établissements - - taxe sur les salaires(Cotisation, Impôt) = sum(Employés.Taxe sur les salaires) diff --git a/parameters/classes/Individu.yaml b/parameters/classes/Individu.yaml deleted file mode 100644 index de118a866..000000000 --- a/parameters/classes/Individu.yaml +++ /dev/null @@ -1,7 +0,0 @@ -classe: Individu - -date de naissance: Date -contrats de travail: [Contrat] - - -# famille: Famille etc diff --git a/parameters/classes/TNS.yaml b/parameters/recherche/TNS.yaml similarity index 100% rename from parameters/classes/TNS.yaml rename to parameters/recherche/TNS.yaml diff --git a/parameters/classes/assimilé-salarié.yaml b/parameters/recherche/assimilé-salarié.yaml similarity index 100% rename from parameters/classes/assimilé-salarié.yaml rename to parameters/recherche/assimilé-salarié.yaml diff --git a/parameters/classes/régimes-juridiques.yaml b/parameters/recherche/régimes-juridiques.yaml similarity index 100% rename from parameters/classes/régimes-juridiques.yaml rename to parameters/recherche/régimes-juridiques.yaml