diff --git a/.gitconfig b/.gitconfig
deleted file mode 100644
index d7a782912..000000000
--- a/.gitconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[core]
- quotepath = false
\ No newline at end of file
diff --git a/CONTRIBUTION.md b/CONTRIBUTING.md
similarity index 97%
rename from CONTRIBUTION.md
rename to CONTRIBUTING.md
index 81ca3858e..4dbb82190 100644
--- a/CONTRIBUTION.md
+++ b/CONTRIBUTING.md
@@ -97,9 +97,7 @@ $ yarn run test-cypress
Le site est disponible en français, et en anglais sur https://mycompanyinfrance.com
-Les traductions de la base de règle se trouvent dans
-`source/règles/externalized.yaml`. Celles de l'Ui sont dans le fichier
-`source/locales/en.yaml`
+Les traductions se trouvent dans le répertoire `source/locales`.
La librairie utilisée pour la traduction de l'Ui est
[react-i18next](https://react.i18next.com/).
diff --git a/LICENSE b/LICENSE
index c885e5cb8..763dc7e03 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2018 beta.gouv.fr
+Copyright (c) 2018-2020 beta.gouv.fr
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index d6192c504..4b658da53 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,8 @@
-> [🙋 We're hiring !](https://beta.gouv.fr/recrutement/2020/01/13/mon-entreprise-JS-senior.html)
-
![logo mon-entreprise.fr](https://mon-entreprise.fr/images/logo.svg)
-This repository powers [mycompanyinfrance.fr](https://mycompanyinfrance.fr) and [mon-entreprise.fr](https://mon-entreprise.fr).
+This repository powers [mycompanyinfrance.fr](https://mycompanyinfrance.fr) and [mon-entreprise.fr](https://mon-entreprise.fr) and [publi.codes](https://publi.codes).
-It's a React, Redux, Webpack website hosted on Netlify with no backend.
-
-The hiring simulator, available on both websites, embeds a [model](https://github.com/betagouv/mon-entreprise/blob/master/source/règles/base.yaml) of the french tax system as a YAML domain specific language. It enables displaying the computing rules on the Web and having a single source of logic for both the computation engine (a JS library) and the generated end-user conversation-like form.
+The hiring simulator, available on both websites, embeds a [model](https://github.com/betagouv/mon-entreprise/blob/master/publicode/base.yaml) of the french tax system as a YAML domain specific language. It enables displaying the computing rules on the Web and having a single source of logic for both the computation engine (a JS library) and the generated end-user conversation-like form.
The engine with the French tax law is available as a NPM module and explained [on the wiki](https://github.com/betagouv/mon-entreprise/wiki/Librairie-de-calcul).
@@ -16,7 +12,7 @@ Most of the documentation (including issues and the wiki) is written in french,
## Contribute
-If you want to contribute to this application, please check out [CONTRIBUTION.md](./CONTRIBUTION.md).
+If you want to contribute to this application, please check out [CONTRIBUTING.md](./CONTRIBUTING.md).
## Supported browsers
diff --git a/circle.yml b/circle.yml
index d39046574..abcd2a630 100644
--- a/circle.yml
+++ b/circle.yml
@@ -50,7 +50,6 @@ jobs:
steps:
- install
- run: |
- git config --global core.quotepath false
yarn test
yarn test-regressions
diff --git a/crédits-icônes.yaml b/crédits-icônes.yaml
deleted file mode 100644
index 05732f0d2..000000000
--- a/crédits-icônes.yaml
+++ /dev/null
@@ -1 +0,0 @@
-- https://thenounproject.com/search/?q=employee&i=859814
diff --git a/formeJuridique.yaml b/formeJuridique.yaml
deleted file mode 100644
index 4131af2c8..000000000
--- a/formeJuridique.yaml
+++ /dev/null
@@ -1,144 +0,0 @@
-- nom: forme juridique
- formule:
- une possibilité parmi:
- - auto-entrepreneur
- - auto-entrepreneur option EIRL
- - EI
- - EURL
- - EIRL
- - SARL
- - SAS
- - SA
- - SNC
- - SASU
-
-- nom: EI
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - régime du directeur = 'indépendant'
- - nombre d'associés = 1
- non applicable si:
- une de ces conditions:
- - responsabilité limitée
-
-- nom: EIRL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés = 1
-
-- nom: EIRL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés = 1
-
-- nom: auto-entrepreneur
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - régime du directeur = 'indépendant'
- - nombre d'associés = 1
- non applicable si:
- une de ces conditions:
- - responsabilité limitée
-
-- nom: auto-entrepreneur option EIRL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés = 1
-
-- nom: SARL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés > 1
-
-- nom: SARL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés > 1
-
-- nom: directeur minoritaire
- applicable si: nombre d'associés > 1
-
-- nom: SARL
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'indépendant'
- - nombre d'associés > 1
-
-
-- nom: SAS
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'assimilé salarié'
- - nombre d'associés > 1
-
-- nom: SASU
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'assimilé salarié'
- - nombre d'associés = 1
-
-- nom: SA
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - responsabilité limitée
- - régime du directeur = 'assimilé salarié'
- - nombre d'associés > 1
-
-
-
-- nom: SNC
- espace: forme juridique
- applicable si:
- toutes ces conditions:
- - régime du directeur = 'indépendant'
- - nombre d'associés > 1
- non applicable si:
- une de ces conditions:
- - responsabilité limitée
-
-
-
-
-
-- nom: régime du directeur
- formule:
- une possibilité parmi:
- - assimilé salarié
- - indépendant
-
-- nom: assimilé salarié
- espace: régime du directeur
- non applicable si:
- toutes ces conditions:
- - forme juridique = 'SARL'
- - directeur majoritaire
-
-- nom: nombre d'associés
- unité: _
-
-- nom: responsabilité limitée
-
diff --git a/source/règles/base.yaml b/publicode/base.yaml
similarity index 100%
rename from source/règles/base.yaml
rename to publicode/base.yaml
diff --git a/source/components/SchemeComparaison.tsx b/source/components/SchemeComparaison.tsx
index ecb63139e..147077a9e 100644
--- a/source/components/SchemeComparaison.tsx
+++ b/source/components/SchemeComparaison.tsx
@@ -648,10 +648,7 @@ function RuleValueLink({
{appendText && <> {appendText}>}
diff --git a/source/components/rule/Destinataire.tsx b/source/components/rule/Destinataire.tsx
index 6e5213a06..f1bab5427 100644
--- a/source/components/rule/Destinataire.tsx
+++ b/source/components/rule/Destinataire.tsx
@@ -1,6 +1,6 @@
+import possiblesDestinataires from 'Images/destinataires/destinataires.yaml'
import React from 'react'
import { Trans } from 'react-i18next'
-import possiblesDestinataires from 'Règles/ressources/destinataires/destinataires.yaml'
import './Destinataire.css'
export default function Rule({ destinataire }) {
@@ -16,8 +16,7 @@ export default function Rule({ destinataire }) {
{destinataireData.image && (
)}
{!destinataireData.image && (
diff --git a/source/components/rule/References.tsx b/source/components/rule/References.tsx
index fb92d47b8..a4f89aa80 100644
--- a/source/components/rule/References.tsx
+++ b/source/components/rule/References.tsx
@@ -1,6 +1,6 @@
+import references from 'Images/références/références.yaml'
import { toPairs } from 'ramda'
import React from 'react'
-import references from 'Règles/ressources/références/références.yaml'
import { capitalise0 } from '../../utils'
import './References.css'
@@ -21,7 +21,7 @@ function Ref({ name, link }) {
{refData.image && (
-
+
)}
diff --git a/source/components/rule/RuleSource.tsx b/source/components/rule/RuleSource.tsx
index 8ae6e6246..4c98e0098 100644
--- a/source/components/rule/RuleSource.tsx
+++ b/source/components/rule/RuleSource.tsx
@@ -1,7 +1,7 @@
import { safeDump } from 'js-yaml'
+import rules from 'Publicode/base.yaml'
import React from 'react'
import emoji from 'react-easy-emoji'
-import rules from 'Règles/base.yaml'
import { Rule } from 'Types/rule'
import ColoredYaml from './ColoredYaml'
diff --git a/source/documentation/conception-des-mécanismes/aiguillage.md b/source/documentation/conception-des-mécanismes/aiguillage.md
deleted file mode 100644
index f675f4d21..000000000
--- a/source/documentation/conception-des-mécanismes/aiguillage.md
+++ /dev/null
@@ -1,49 +0,0 @@
-On discute ici des différentes syntaxes permettant d'exprimer un 'switch'.
-
-La proposition suivante a l'avantage d'utiliser 'si' qui fait de suite comprendre cette notion de variation.
-Elle semble la plus claire (1 test utilisateur...)
-
-```yaml
-formule:
- assiette: assiette cotisations sociales
- taux:
- variations:
- - si: statut cadre = non
- 2017: 16%
- 2016: 12%
-
- - si: statut cadre = oui
- 2017: 6%
- 2016: 2%
-```
-
-Etant donné que le statut cadre est une exception, on pourrait aussi utiliser cette syntaxe bien plus succincte.
-
-```yaml
-formule:
- assiette: assiette cotisations sociales
- taux:
- 2017: 16%
- 2016: 12%
- exception:
- si: statut cadre
- 2017: 6%
- 2016: 2%
-```
-
-Dans le cas d'une variable de type énumération, il peut être commode de factoriser le sujet comparé et de parler de 'cas'.
-
-> Mais la variable devient alors une clé, alors qu'elles sont normalement des valeurs, ça peut être perturbant
-
-```yaml
-formule:
- assiette: assiette cotisations sociales
- taux:
- régime salarial:
- - cas: agricol
- 2017: 16%
- 2016: 12%
- - cas: général
- 2017: 6%
- 2016: 2%
-```
diff --git a/source/documentation/conception-des-mécanismes/barèmes.md b/source/documentation/conception-des-mécanismes/barèmes.md
deleted file mode 100644
index 6f07f0470..000000000
--- a/source/documentation/conception-des-mécanismes/barèmes.md
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Version 'OpenFisca'
-
-```yaml
-- seuil: 0
- taux: 0%
-- seuil: 1
- taux: 7.8%
-- seuil: 8
- taux: 0%
-```
-Le problème de cette syntaxe, c'est que ce ne sont pas des tranches : la tranche 1 ne contient pas assez d'informations pour être calculée !
-
-Version plus explicite :
-
-```yaml
-- de: 0
- à: 1
- taux: 0%
-- de: 1
- à: 8
- taux: 7.8%
-- de: 8
- taux: 0%
-```
-
-Ou, étant donné que les barèmes se suivent a priori toujours et commencent à zéro :
-
-```yaml
-- en-dessous de: 1
- taux: 0%
-- de: 1
- à: 8
- taux: 7.8%
-- au-dessus de: 8
- taux: 0%
-```
-
-Autre version possible :
-
-```yaml
-seuils:
- 0: 0%
- 1: 7.8%
- 8: 0%
-```
diff --git a/source/documentation/conception-des-mécanismes/conditions-logiques.yaml b/source/documentation/conception-des-mécanismes/conditions-logiques.yaml
deleted file mode 100644
index d8185e8b3..000000000
--- a/source/documentation/conception-des-mécanismes/conditions-logiques.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-- Variable: ma variable
-
-# Cette variable est valable quand les conditions de la liste 'concerne'
-# sont vérifiées
- concerne:
- - ma condition 1
- - ma condition 2
-
-# Mais comment faire des & ? Comment dire : condition1 ET condition2 ?
-
-# Première idée :
-# Une liste c'est des OU par défaut
-# Une :indentation c'est un ET par défaut
- concerne:
- - ma condition 1:
- - ma condition 1.1
- - ma condition 2
- - ma condition 3:
- - ma condition 3.1:
- - ou ma condition 3.2
-
-# Cela multiplie les indentations dans le cas de ET en série... trouvons mieux.
-
-# Une liste est OU par défaut
-# Un &: transforme transforme la liste suivant en ET
- concerne:
- - ma condition 1:
- - ma condition 1.1
- - ma condition 2
- - ma condition 3 &:
- - ma condition 3.1
- - ou ma condition 3.2
-
-# Essai dans la vrai vie
-
- concerne & :
- - effectif entreprise <= 200
- - chiffre d'affaires < 50 000 000
- - établissement . région ⊂ :
- - Alsace
- - Pays-Basque
- - Bretagne
- - Îles Kerguelen
- - établissement . secteur ⊂ :
- - industrie aéronautique
- - industrie pharmaceutique
- - agriculture biologique
-
- # Et l'inverse ? Intégrer un OU dans une liste de ET (le & initial ne se transfère pas !)
- conditions & :
- - effectif entreprise <= 200
- - chiffre d'affaires < 50 000 000
- -
- - entreprise . région = Alsace
- - établissement . secteur = éducation
-
- # On peut aussi partir sur des phrases qui enlèvent toute ambiguité
- toutes ces conditions:
- - effectif entreprise <= 200
- - chiffre d'affaires < 50 000 000
- - et une de ces conditions:
- - entreprise . région = Alsace
- - établissement . secteur = éducation
-
- # On peut imaginer que 'toutes ces conditions' devienne en fonction du contexte:
- toutes ces situations:
- # On peut aussi légèrement adapter par exemple:
- une de ces conditions: # devient :
- et une de ces conditions:
-
-# OPTIONS ABANDONNÉES
-
-# alternative PAS POSSIBLE : | est réservé au strings multilignes
- # concerne:
- # - | ma condition 1:
- # - ma condition 1.1
- # - | ma condition 2
- # - | ma condition 3:
- # - & ma condition 3.1
- # - & ma condition 3.2
-
-
-# Lourd visuellement
- concerne:
- - :OU ma condition 1:
- - ma condition 1.1
- - :OU ma condition 2
- - :OU ma condition 3:
- - :ET ma condition 3.1
- - :ET ma condition 3.2
-
-
-# Puis tester avec des calculs (inclus) et &
diff --git a/source/documentation/conception-des-mécanismes/multiplication.md b/source/documentation/conception-des-mécanismes/multiplication.md
deleted file mode 100644
index b9147b2fc..000000000
--- a/source/documentation/conception-des-mécanismes/multiplication.md
+++ /dev/null
@@ -1,9 +0,0 @@
- Syntaxe alternative :
-
-```yaml
-multiplication:
- assiette: assiette cotisations sociales
- avant plafond: 0.001
- plafond: plafond de la sécurité sociale
- après plafond: 0
-```
diff --git a/source/engine/rules.js b/source/engine/rules.js
index 32a46d1ea..772919872 100644
--- a/source/engine/rules.js
+++ b/source/engine/rules.js
@@ -1,4 +1,5 @@
import { parseUnit } from 'Engine/units'
+import rawRules from 'Publicode/base.yaml'
import {
assoc,
chain,
@@ -24,8 +25,7 @@ import {
trim,
when
} from 'ramda'
-import rawRules from 'Règles/base.yaml'
-import translations from 'Règles/externalized.yaml'
+import translations from '../locales/rules-en.yaml'
// TODO - should be in UI, not engine
import { capitalise0, coerceArray } from '../utils'
import { syntaxError, warning } from './error'
diff --git a/source/règles/ressources/destinataires/URSSAF.png b/source/images/destinataires/URSSAF.png
similarity index 100%
rename from source/règles/ressources/destinataires/URSSAF.png
rename to source/images/destinataires/URSSAF.png
diff --git a/source/règles/ressources/destinataires/URSSAF.svg b/source/images/destinataires/URSSAF.svg
similarity index 100%
rename from source/règles/ressources/destinataires/URSSAF.svg
rename to source/images/destinataires/URSSAF.svg
diff --git a/source/règles/ressources/destinataires/agff.png b/source/images/destinataires/agff.png
similarity index 100%
rename from source/règles/ressources/destinataires/agff.png
rename to source/images/destinataires/agff.png
diff --git a/source/règles/ressources/destinataires/agirc.png b/source/images/destinataires/agirc.png
similarity index 100%
rename from source/règles/ressources/destinataires/agirc.png
rename to source/images/destinataires/agirc.png
diff --git a/source/règles/ressources/destinataires/cnav.png b/source/images/destinataires/cnav.png
similarity index 100%
rename from source/règles/ressources/destinataires/cnav.png
rename to source/images/destinataires/cnav.png
diff --git a/source/règles/ressources/destinataires/destinataires.yaml b/source/images/destinataires/destinataires.yaml
similarity index 100%
rename from source/règles/ressources/destinataires/destinataires.yaml
rename to source/images/destinataires/destinataires.yaml
diff --git a/source/règles/ressources/destinataires/salarié.png b/source/images/destinataires/salarié.png
similarity index 100%
rename from source/règles/ressources/destinataires/salarié.png
rename to source/images/destinataires/salarié.png
diff --git a/source/règles/ressources/références/URSSAF.png b/source/images/références/URSSAF.png
similarity index 100%
rename from source/règles/ressources/références/URSSAF.png
rename to source/images/références/URSSAF.png
diff --git a/source/règles/ressources/références/agirc-arrco.png b/source/images/références/agirc-arrco.png
similarity index 100%
rename from source/règles/ressources/références/agirc-arrco.png
rename to source/images/références/agirc-arrco.png
diff --git a/source/règles/ressources/références/ameli.png b/source/images/références/ameli.png
similarity index 100%
rename from source/règles/ressources/références/ameli.png
rename to source/images/références/ameli.png
diff --git a/source/règles/ressources/références/bpi-création.png b/source/images/références/bpi-création.png
similarity index 100%
rename from source/règles/ressources/références/bpi-création.png
rename to source/images/références/bpi-création.png
diff --git a/source/règles/ressources/références/ladocumentationfrançaise.png b/source/images/références/ladocumentationfrançaise.png
similarity index 100%
rename from source/règles/ressources/références/ladocumentationfrançaise.png
rename to source/images/références/ladocumentationfrançaise.png
diff --git a/source/règles/ressources/références/marianne.png b/source/images/références/marianne.png
similarity index 100%
rename from source/règles/ressources/références/marianne.png
rename to source/images/références/marianne.png
diff --git a/source/règles/ressources/références/pole-emploi.png b/source/images/références/pole-emploi.png
similarity index 100%
rename from source/règles/ressources/références/pole-emploi.png
rename to source/images/références/pole-emploi.png
diff --git a/source/règles/ressources/références/références.yaml b/source/images/références/références.yaml
similarity index 100%
rename from source/règles/ressources/références/références.yaml
rename to source/images/références/références.yaml
diff --git a/source/règles/ressources/références/senat.png b/source/images/références/senat.png
similarity index 100%
rename from source/règles/ressources/références/senat.png
rename to source/images/références/senat.png
diff --git a/source/règles/ressources/références/wikipedia.png b/source/images/références/wikipedia.png
similarity index 100%
rename from source/règles/ressources/références/wikipedia.png
rename to source/images/références/wikipedia.png
diff --git a/source/règles/externalized.yaml b/source/locales/rules-en.yaml
similarity index 100%
rename from source/règles/externalized.yaml
rename to source/locales/rules-en.yaml
diff --git a/source/règles/brouillons/TNS.yaml b/source/règles/brouillons/TNS.yaml
deleted file mode 100644
index a6b1ebe3e..000000000
--- a/source/règles/brouillons/TNS.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-description:
- - travailleur non salarié
-
-possibilités : travailleur individuel indépendant | gérant majoritaire de société
-travailleur individuel indépendant: commerçant | artisan | professionnel libéral
diff --git a/source/règles/brouillons/indemnité-kilométrique-vélo.yaml b/source/règles/brouillons/indemnité-kilométrique-vélo.yaml
deleted file mode 100644
index 00662ca84..000000000
--- a/source/règles/brouillons/indemnité-kilométrique-vélo.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# AFAIRE :
-# - gérer l'aspect temporel : indemnité par jour, convertible proportionnellement.
-# - les réductions de cotisations / impôts
-# - créer et documenter les entités accord employeur, distance minimale domicile travail
-
-
-. : ikv
-nom: indemnité kilométrique vélo
-description: Indemnité Kilométrique Vélo pour les salariés qui pédalent entre leur domicile et leur lieu de travail
-formule:
- applicable si: accord employeur ikv
- multiplication:
- assiette: 0.25€
- facteur: distance minimale domicile travail
- # par jour travaillé
- réduction:
- cibles:
- - cotisations sociales #pour l'employeur
- - salaire net imposable #pour le salarié
- plafond: 200€
-
-références:
- Indemnité kilométrique: https://www.service-public.fr/professionnels-entreprises/vosdroits/F33808
diff --git a/source/règles/brouillons/lisez-moi.md b/source/règles/brouillons/lisez-moi.md
deleted file mode 100644
index 9c0001a78..000000000
--- a/source/règles/brouillons/lisez-moi.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Ce dossier contient tout ce qui peut ressembler à un brouillon de nouvelles règles à ajouter à la base.
-Tout créativité est la bienvenue, mais gardez en tête les mécanismes qui existent déjà et le fait que tout brouillon a pour but d'être un jour _implémenté_.
diff --git a/source/règles/brouillons/périodes.md b/source/règles/brouillons/périodes.md
deleted file mode 100644
index f7cfbea08..000000000
--- a/source/règles/brouillons/périodes.md
+++ /dev/null
@@ -1,67 +0,0 @@
-formula API:
-salaire_net <- 1200 €
-=> 1200 for each month of 2016
-
-Sinon :
-
-base_function = requested_period_added_value
-set_input = set_input_divide_by_period
-
-Input is year:2013 12000€, output is month:2013-02
--> 1000€ per month, used in salaire_net_a_payer
-
-
-- salaire_net is requested_period_added_value
-
-Input is 1200 every month of 2015, requested output is year 2015
--> give SUM(months)
-
-
-- effectif_entreprise is requested_period_last_value
-Input is 29 every month of 2015, requested output is year 2015
--> give last value
-Why not mean ?
-
-# cotisation_sociale_mode_recouvrement
-http://rfpaye.grouperf.com/article/0242/ms/rfpayems0242_0255976.html
-
-cotisation_sociale_mode_recouvrement =
- Mensuel avec régularisation en fin d'année
- | Annuel
-
-apply_bareme -> compute_cotisation_annuelle() | compute_cotisation_anticipee()
-
-> tranche 1 à 1%, tranche 2 à 10%
-
-Si mon mec a eu 10 000 € en décembre, et 1000 euros sinon toute l'année,
-compute_cotisation_annuelle ->
-- 0 tous les mois sauf déc
-- en déc, assiette = 21 000. PSS = 38 616 -> il ne paie pas de tranche 2 (e.g retraite)
-
-compute_cotisation_anticipee -> Si paiement des cotisations mensuelles en vrai:
-- en décembre : il paie une grosse tranche 2 ~ 700 € !
-- les autres mois il paie la tranche 1 ~ 10 €
-
-
-compute_cotisation(year) - Somme(compute_cotisation(month))
-= 210 - 800
-
-Donc c'est bien correctement implémenté dans OpenFisca
-
-URSSAF
-> Ce contrôle est inévitable pour les salariés dont le salaire brut est variable, et qui peuvent donc se trouver, d’un mois sur l’autre, au-dessus puis en dessous du plafond de la Sécurité sociale (ou inversement).
-
-https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/la-base-de-calcul/lassiette-maximale/la-regularisation-annuelle.html
-
-*C'est la DADS*
-
-Donc selon l'URSSAF le calcul des cotisations se fait sur l'année !
-Et puis :
-> Vous pouvez, si vous le souhaitez, effectuer tous les mois une régularisation des plafonds de Sécurité sociale. Cette méthode permet d’éviter des régularisations trop importantes (en positif ou en négatif) en fin d’année.
-
-BILAN
--------
-
-Cette *régularisation progressive* n'est pas implémentée aujourd'hui
-Elle est pourtant **obligatoire pour la DSN** !!
-Je crois bien que c'est exactement ça qui est implémenté pour les deux réductions fillon et allocs. Il faut le refaire pour toutes les cotisations comportant des tranches !!
diff --git a/source/règles/brouillons/régimes-juridiques.yaml b/source/règles/brouillons/régimes-juridiques.yaml
deleted file mode 100644
index 5218a5767..000000000
--- a/source/règles/brouillons/régimes-juridiques.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-# https://fr.wikipedia.org/wiki/Salaire#Autres_r.C3.A9mun.C3.A9rations_du_travail
-
-# https://contrat-de-travail.ooreka.fr/astuce/voir/297014/regimes-juridiques-du-travail-salarie-fonctionnaire-independant
-# Tout individu qui décide d'avoir une activité professionnelle, que ce soit médecin, ouvrier, trappeur ou inventeur, doit choisir entre les 3 régimes de travail existant : salarié, fonctionnaire ou travailleur indépendant.
-# Il n'existe aucune définition légale du contrat de travail.
-
-Régimes juridiques du travail
----------------------------------
-objectif: Hiérarchie du travail en France, dans le but de calculer les cotisations sociales. Ce qui nous intéresse, c'est toutes les exceptions qui impactent les cotisations. Vue employé. Il manque toute la partie entreprise.
-
-Questions:
- - Comment exprimer l'exclusivité des différents propriétés quand il le faut ?
- Ex. choisissez votre statut : salarié classique | apprenti | stagiaire | employé services à la personne
- Peut-on coder tout ça grâce à des union types ?
-
-- Salariat
-# http://francestrategie1727.fr/thematiques/nouvelles-formes-du-travail-et-de-la-protection-sociale/
-# En droit du travail, la jurisprudence définit le salariat en repérant, en fonction des éléments de faits, l’existence de plusieurs critères constitutifs du contrat de travail : une prestation personnelle de travail, une rémunération, un lien de subordination
-# Si ces trois critères sont réunis, il y a salariat, et les dispositions relatives au contrat de travail doivent s’appliquer
- - engagement: CDD | CDI | CTT (intérim)
- - services à la personne
- - employeurs particuliers
- - organismes spécialisés
- - personnes morales
- - entrepreneurs individuels
- - alternance: contrat de professionnalisation | apprentissage
- - statut d'employé: cadre | non-cadre
- - Assimilé Salarié
- - journalistes (taux réduits !)
- - artistes ? # http://patrickmorvan.over-blog.com/article-19134130.html
- - VRP, VRP-multicartes (ne cotise pas à l’Urssaf mais à la Caisse de Compensation des VRP)
- - salariés portés
- - les entrepreneur-salariés des coopératives d’activité et d’emploi (SCOP | SCIC)
- - mannequins ?
- - assimilation au salariat:
- - gérant de succursales
- - travailleur à domicile
- - assistants maternels et familiaux
- - concierges
- - rattachés par le code de la sécurité sociale
- # La définition du lien de subordination est commune au droit du travail et au droit de la sécurité sociale. Le droit de la sécurité sociale fait toutefois preuve d’autonomie en assimilant à des salariés un plus grand nombre de travailleurs indépendants. En particulier, l’article L. 311-3 du Code de la sécurité sociale rattache au régime général [...] d’autres professions ou activités :
- - sous-agents d’assurance,ouvreuses, accueillants familiaux, gérants non salariés des coopératives, gérants de sociétés à responsabilité limitée, les personnes ayant souscrit un service civique, les arbitres sportifs
-
-
-- Stagiaire (indemnité)
-- Doctorant (allocation de recherche)
-- Étudiant-entrepreneur ?
-
-- Travailleurs Indépendants (liberté d’organiser son travail)
- - auto-entreprise ?
- - agriculteur (inscrit à la chambre d'agriculture)
- - commerçant (inscrit à la chambre de commerce et d'industrie)
- - industriels ?
- - artisan (inscrit à la chambre des métiers)
- - libéral (inscrit à l'URSSAF)
- - professions libérales règlementées
- # Une profession libérale réglementée est celle exercée par des personnes ayant reçu un diplôme (généralement de l'enseignement supérieur) reconnu dans leur métier, qui sont tenues par un code de déontologie, et qui sont soumises au contrôle d'instances professionnelles.
- - santé
- - médicales
- - paramédicales
- ...
- - juridiques
- - avocat
- - notaire
- ...
- - économiques
- - expert-comptable
- - conseiller fiscal
- - techniques
- - architecte
- ...
- ...
- - non règlementées
- # https://travailleur-independant.ooreka.fr/comprendre/profession-liberale-non-reglementee
-
- - artiste (inscrit à la maison des artistes)
-
-- Fonction publique (subordination à l'une des institutions suivantes)
- - Fonctions: État | Collectivités | Hospitalière
- - Fonctionnaire (traitement)
- - Non-titulaire
- - Agents contractuels
- - engagement: CDI | CDD
- - Auxiliaires
- - Vacataires
- - Stagiaires
- - Emplois de cabinet
-
-? ? ?
-- Élu (traitement, indemnisation, avantage en nature) ?
-- Intermittent du spectacle ? C'est un salarié, qui alterne contrats à durée déterminée, d'alternance de périodes d'emploi et de chômage -> droits de chômage adaptés
-- Doctorant (allocation de recherche)
-- Militaire (solde)
diff --git a/source/règles/brouillons/rémunération-travail/aides/AFAIRE.exonération-chomage-jeunes.md b/source/règles/brouillons/rémunération-travail/aides/AFAIRE.exonération-chomage-jeunes.md
deleted file mode 100644
index 5bc52bde0..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/AFAIRE.exonération-chomage-jeunes.md
+++ /dev/null
@@ -1,4 +0,0 @@
- l’exonération de la contribution d'assurance chômage pour trois mois dans les entreprises de 50 salariés et plus et pour quatre mois dans celles de taille inférieure pour les embauches en CDI de jeunes de moins de 26 ans sont exonérées de la part patronale
-
- https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/lassurance-chomage-et-lags/lexoneration-de-la-contribution.html
-
diff --git a/source/règles/brouillons/rémunération-travail/aides/JEI.md b/source/règles/brouillons/rémunération-travail/aides/JEI.md
deleted file mode 100644
index 09f73ce0e..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/JEI.md
+++ /dev/null
@@ -1,67 +0,0 @@
-- Le JEI peut se cumuler avec le CICE sans problème.
-- JEI n'est ouverte qu'à certains salariés... à préciser dans le simulateur.
-- JEI est un dispositif complexe, soumis à beaucoup de conditions. l'attribution de cette aide dans les résultats est sujette à confirmation. Il faut que votre entreprise réponde aux conditions d'une JEI, et que votre employé soit elligible aux éxonérations de charges (consacré à 50% R&D + statut spécifique)
-Voir https://www.service-public.fr/professionnels-entreprises/vosdroits/F31188
-
-- JEI + Fillon + Allocs pas possible
-
-Fillon, Allocs annulent un certain nombre de cotisations
-JEI aussi
-
-- Aide à l'embauche PME pas compatible avec JEI
-Les exonérations JEI ne sont pas cumulables, pour l’emploi d’un même salarié, avec le bénéfice d’une aide à l’emploi de l’Etat, d’une autre mesure d’exonération totale ou partielle des cotisations patronales, de taux spécifiques, d’assiettes ou de montants forfaitaires de cotisations.
-
-Le pb : dans OpenFisca on devrait pouvoir dire : CICE = - 6% de certaines cotisations !
-
-- de quelles cotisations on parle ?
-
-On peut simplement dire que !JEI if (Fillon || Allocs || Aide-PME)
-Mais peut-on choisir (ex. pour un salaire de 3xSMIC), pas éxo allocs mais JEI ? Oui, "option entre mesures d'allègement"
-https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-ou-aides-liees-au-s/jeunes-entreprises-innovantes/regles-de-cumul.html
-Combien fait JEI ?
-
-JEI > réduc allocs familiales
-Fillon c'est éxo :
-"zéro cotisations URSSAF au SMIC"
-mmidcsa, allocs, fnal
-
-JEI > Fillon
-JEI > aide 1er employé
-JEI > aide PME + aide 1er sal
-
-Mais PME, SMIC => Aide PME + Fillon + aide allocs >> JEI
-2500€ ???
-
----------------
-Faut vraiment faire ce calcul : est-ce que JEI > aide PME + aide 1er sal + Fillon + aide allocs ??
----------------
-JEI = calc, si > 0 et > aides machin machin, res calc
-Toutes les aides non cumulables JEI = si estJEI, calc JEI, calc autres, si autres > JEI renvois aide
-:-0
-
-Résultat utilisateur
-----------------
-
-Je choisis JEI -> JEI sera choisi seulement si > aux éxos -> confusion possible
-Ou alors : je choisis JEI (désirez-vous bénéficier du statut JEI ?) -> on utilise JEI et voilà.
--> IMPLÉ
-Pour chaque aide, vérifier si JEI. Si exoneration_cotisations_employeur_jei > 0, 0.
-
-
-JEI
----
-
-- sal < 4.5x brut
-exonération totale de charges sociales patronales d'assurances sociales et d'allocations familiales
-= maladie (mmid sauf CSA), vieillesse (plaf + déplaf) et allocations familiales ?
-
-? retraite ? CET ? etc.
-
-pas éxo :
-- AT/MP
-- CSG et CRDS
-- FNAL
-- VT
-- forfait sociale
-- CSAutonomie
-- chomage
diff --git a/source/règles/brouillons/rémunération-travail/aides/aide-embauche-pme.yaml b/source/règles/brouillons/rémunération-travail/aides/aide-embauche-pme.yaml
deleted file mode 100644
index 196489d9b..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/aide-embauche-pme.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-- Aide: Aide embauche PME
- attributs:
- type: prime
- thème: aide à l'embauche
- par: État
- démarches: demande rapide
- description: |
- Aide à l'embauche d'un salarié pour les entreprises de moins de 250 salariés, pour les embauche en 2016, a priori prolongée en 2017.
- Le montant de l'aide pour 2 ans est égal à 4 000 € maximum pour un même salarié.
- référence: https://www.service-public.fr/professionnels-entreprises/actualites/A10338
-
- conditions à remplir:
- toutes ces conditions:
- - Activité = Salariat
- - effectif entreprise <= 250
- - 2016-01-18 < début contrat <= 2016
- - durée contrat > 6 mois # CDD OK, pas cumul avec apprentissage, donc alternance seulement en Contrat Pro
- - salaire de base < 1,3 * SMIC
- - entreprise de droit privé # nécessaire ?
-
- non-cumul:
- # Cette prime est cumulable avec certains dispositifs existants : réduction générale des cotisations patronales sur les bas salaires, CICE, Acre
- # L'aide n'est pas cumulable avec une autre aide de l'État à l'insertion, à l'accès ou au retour à l'emploi versée au titre du même salarié : contrat de génération, contrat d'apprentissage (sauf si l'embauche a lieu à l'issue de l'apprentissage), aide à l'embauche d'un premier salarié...
- - Aide:
- par: État
-
- # Le montant de l'aide pour 2 ans est égal à 4 000 € maximum pour un même salarié.
- # L'aide est versée sous la forme d'une prime trimestrielle de 500 €.
- # Si le salarié est embauché à temps partiel, l'aide est proratisée en fonction de sa durée de travail. Par exemple, pour un CDI à temps partiel (à 80 % d'un temps plein), la prime est de 400 € par trimestre ( 3 200 € sur 2 ans).
- périodicité: trimestrielle
- proratisation: temps de travail
- durée: 2 ans
- formule: 500
diff --git a/source/règles/brouillons/rémunération-travail/aides/aide-embauche-premier-salarie.yaml b/source/règles/brouillons/rémunération-travail/aides/aide-embauche-premier-salarie.yaml
deleted file mode 100644
index 020141d61..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/aide-embauche-premier-salarie.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-- Aide: Aide embauche premier salarié
- attributs:
- type: prime
- thème: aide à l'embauche
- par: État
- démarches: demande
- description: |
- Aide à l'embauche d'un premier salarié d'un montant maximal de 4 000 € pour toute embauche en CDI ou en CDD de plus de 6 mois comprise entre le 9 juin 2015 et le 31 décembre 2016.
- référence: https://www.service-public.fr/professionnels-entreprises/actualites/008168
-
- conditions à remplir:
- toutes ces conditions:
- - Activité = Salariat
- - effectif entreprise = 0
- - 2015-06-09 < début contrat <= 2016
- - durée contrat > 6 mois # CDD OK, pas cumul avec apprentissage, donc alternance seulement en Contrat Pro
- - salaire de base < 1.3 * SMIC
- - entreprise de droit privé
- #TODO Le ministère du Travail indique dans son questions-réponses que les comités d'entreprise sont également éligibles à cette aide, tout comme les groupements d'employeurs au titre de l'embauche d'un salarié permanent, mais aussi d'un salarié mis à disposition des entreprises adhérentes.
- #TODO l’entreprise n’a pas conclu de contrat de travail avec un salarié, au-delà de la période d’essai, dans les 12 mois précédant la nouvelle embauche
- #TODO
- # L’entreprise peut bénéficier d’une nouvelle aide, si un premier contrat de travail est rompu pour l’un des motifs suivants :
- # rupture de la période d’essai,
- # retraite,
- # démission,
- # décès,
- # licenciement pour inaptitude ou pour faute grave ou lourde.
- #
- # Dans ce cas, l’aide totale versée à l’employeur (pour les 2 contrats) ne peut pas dépasser 4 000 €.
-
- non-cumul:
- # Cette prime est cumulable avec certains dispositifs existants : réduction générale des cotisations patronales sur les bas salaires, CICE, Acre
- # L'aide n'est pas cumulable avec une autre aide de l'État à l'insertion, à l'accès ou au retour à l'emploi versée au titre du même salarié : contrat de génération, contrat d'apprentissage (sauf si l'embauche a lieu à l'issue de l'apprentissage), aide à l'embauche d'un premier salarié...
- - Aide:
- par: État
-
- # Le montant de l'aide pour 2 ans est égal à 4 000 € maximum pour un même salarié.
- # L'aide est versée sous la forme d'une prime trimestrielle de 500 €.
- # Si le salarié est embauché à temps partiel, l'aide est proratisée en fonction de sa durée de travail. Par exemple, pour un CDI à temps partiel (à 80 % d'un temps plein), la prime est de 400 € par trimestre ( 3 200 € sur 2 ans).
- périodicité: trimestrielle
- proratisation: temps de travail
- durée: 2 ans
- formule: 500
diff --git a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.brouillon.yaml b/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.brouillon.yaml
deleted file mode 100644
index 7e2ba948f..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.brouillon.yaml
+++ /dev/null
@@ -1 +0,0 @@
-# https://www.urssaf.fr/portail/home/outre-mer/employeur/le-cui-cae-domcontrat-dacces-a-l/les-exonerations-de-cotisations.html
diff --git a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml b/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml
deleted file mode 100644
index 89848c03d..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-- Aide: Exonération Lodeom
- attributs:
- type: exonération
- thème:
- - aide territoriale
- - aide TPE
- description: |
- Une exonération de cotisations patronales d’assurances sociales et d’allocations familiales dite « exonération Lodeom » est ouverte aux employeurs situés dans les départements d'Outre-mer (Guadeloupe, Guyane, Martinique, la Réunion) ainsi qu'à Saint-Barthélemy et Saint-Martin.
- Elle est accordée aux employeurs qui occupent moins de 11 salariés et aux employeurs de certains secteurs d’activité, quel que soit leur effectif.
- référence: https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite.html
-
- concerne:
- - établissement . territoire outre-mer ⊂ :
- - Guadeloupe
- - Guyane
- - Martinique
- - la Réunion
- - Saint-Barthélemy
- - Saint-Martin
-
- variables ciblées:
- filtre:
- Cotisation:
- dû par: employeur
- cibles:
- - Cotisation: maladie
- composante: maladie, maternité, invalidité, décès
- - vieillesse
- - allocations familiales
-
- composantes:
- - Aide:
- variante: exonération de droit commun
-
- conditions à remplir:
- toutes ces conditions:
- - effectif entreprise < 11
- #TODO règles de calcul de l'effectif, maintien partiel de l'éxo en cas de croissance : https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite/les-employeurs-concernes-par-lex/lexoneration-de-droit-commun-pou.html
- - secteur Salariat ⊂ : # Voir la remarque "Bon à savoir" de l'URSSAF : c'est bien le secteur d'activité du salarié qui importe
- - Bâtiment et travaux publics, industrie
- - Restauration
- - Presse, production audiovisuelle
- - Energies renouvelables
- - Nouvelles technologies de l'information, de la communication et centres d'appel
- - Pêche, cultures marines, aquaculture
- - Agriculture y compris les coopératives agricoles et les SICA et leurs unions, coopératives maritimes et leurs unions
- - Tourisme, restauration de tourisme y compris les activités de loisirs s'y rapportant et hôtellerie
- - Transport aérien #TODO conditionné
- - Transport maritime ou fluvial #TODO conditionné
-
- # Méchanisme de calcul assez original
- coefficient de réduction:
- # Le principe de cette exonération :
- # les cotisations cibles vont être rejouées,
- # mais avec une assiette réduite à un coefficient * le smic, puis retranchées.
- # la formule ci-dessous donne le coefficient qui varie sur des tranches
- affine par morceaux:
- multiplicateur: smic proratisé
- tranches:
- - seuil: 0
- # Exonération totale des cotisations d’assurances sociales et d’allocations familiales
- coefficient: 1
- - seuil: 1.4
- # Exonération sur la partie du salaire horaire brut limitée à 1.4
- coefficient: 1.4
- - seuil: 2
- # le coefficient suit une fonction linéaire passant par la borne précédente et la borne suivante
- #TODO est-ce clair ?
- coefficient: linéaire
- - seuil: 3
- # Pas d’exonération dès le 1er euro versé
- exonération: 0
-
- # Faire le même pour les autres conditions : CICE: [oui, non], type de réduction: [effectif, secteur]
-
-
- - Aide:
- variante: exonération renforcée
- # Complexité énorme pour 'concerne' !!!!!!!!!!!!!!
- conditions à remlir:
- toutes ces conditions:
- - effectif < 250 && CA < 50 000 000
- - condition complexe ...
- - soumis de plein droit ou sur option à un régime réel d’imposition
- #TODO IMPORTANT résoudre la syntaxe ET OU...
- # si machin alors condition suppl
-
- # méchanisme de calcul : IDEM exo droit commun
diff --git a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-mayotte.brouillon.yaml b/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-mayotte.brouillon.yaml
deleted file mode 100644
index 40827a92e..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-mayotte.brouillon.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-# Saint Pierre et Miquelon https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-applicable-a-saint-p/le-calcul-de-lexoneration.html
-
-# Même types de condition que Lodéom, calcul plus simple (conditions -> exo sur X*SMIC)
diff --git a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.brouillon.yaml b/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.brouillon.yaml
deleted file mode 100644
index 40827a92e..000000000
--- a/source/règles/brouillons/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.brouillon.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-# Saint Pierre et Miquelon https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-applicable-a-saint-p/le-calcul-de-lexoneration.html
-
-# Même types de condition que Lodéom, calcul plus simple (conditions -> exo sur X*SMIC)
diff --git a/source/règles/brouillons/rémunération-travail/alsace-moselle.md b/source/règles/brouillons/rémunération-travail/alsace-moselle.md
deleted file mode 100644
index 5966d1d05..000000000
--- a/source/règles/brouillons/rémunération-travail/alsace-moselle.md
+++ /dev/null
@@ -1,22 +0,0 @@
-### Assurance maladie
-- cotisation assurance maladie salariale supplémentaire (1,5 % du salaire brut au 1er janvier 2012)
-
-https://baseircantec.retraites.fr/cotisations-assurance-maladie-alsace-moselle.html
-Avec des taux différents pour le régime agricole.
-Il semble y avoir une erreur (??) dans ce document : il indique que l'assiette est celle de la CSG, information non retrouvée ailleurs.
-
-#### Bénéficiaires :
-Voir alsace-moselle.yaml
-
-
-### Apprentissage
-Le taux de la taxe d'apprentissage est de 0,68 % (ou 0,44 % en Alsace-Moselle) de la masse salariale.
-
-La taxe d'apprentissage comprend :
-
-- une part régionale de 51 % qui constitue la fraction régionale pour l'apprentissage (FRA),
-- un quota d'apprentissage de 26 % (49 % pour l'Alsace-Moselle) pour les centres de formations d'apprentis (CFA) et sections d'apprentissage (SA),
-- un hors quota (23 %) destiné aux dépenses de formation hors apprentissage.
-
-https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574
-http://www.juritravail.com/chiffres-et-indices/taux-cotisations-salariales-securite-sociale-cadres-non-cadres.html
diff --git a/source/règles/brouillons/rémunération-travail/cdd/variables.md b/source/règles/brouillons/rémunération-travail/cdd/variables.md
deleted file mode 100644
index a090629d2..000000000
--- a/source/règles/brouillons/rémunération-travail/cdd/variables.md
+++ /dev/null
@@ -1,32 +0,0 @@
-variables du CDD:
-
-# Evènements
-- poursuite du CDD en CDI:
- - embauche en CDI suivant le CDD
- - CDD requalifié en CDI # quand ça arrive ?
-
-- refus CDI avantageux # (emploi similaire, rémunération >=)
-- engagement employeur complément formation professionnelle
- # Evènements particuliers - Rupture
-- rupture anticipée salarié
-- rupture pour faute grave, lourde, cas de force majeure
-- rupture CDD pendant période essai
-
-
-# Types de CDD
-- CDD type saisonnier
-- contrat jeune vacances
-- contrat aidé: # voir la définition précise dans indemnité de fin de contrat
- - contrat unique insertion # (CUI)
- - contrat de professionnalisation
- - emploi avenir
- - étudiant apprenti professeur
- - CDD sénior
-
-- CDD d'usage:
- - secteur activité entreprise
-
-- CDD type accroissement temporaire d'activité
-
-
-- contrat de travail durée
diff --git a/source/règles/brouillons/rémunération-travail/cotisations/AFAIRE.forfait-social.yaml b/source/règles/brouillons/rémunération-travail/cotisations/AFAIRE.forfait-social.yaml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/source/règles/brouillons/rémunération-travail/cotisations/AFAIRE.taxe-salaires.yaml b/source/règles/brouillons/rémunération-travail/cotisations/AFAIRE.taxe-salaires.yaml
deleted file mode 100644
index 5b3ffae77..000000000
--- a/source/règles/brouillons/rémunération-travail/cotisations/AFAIRE.taxe-salaires.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Cette cotisation est très compliquée de par ses conditions :
-# - elle est à payer en totalité si l'entreprise n'est pas assujettie à la TVA sur son CA
-# (c'est le cas des associations à but non lucratif)
-# - elle est à payer proportionnellement si l'entreprise n'est pas assujettie à la TVA sur au moins 90% de son CA
-
-# C'est donc simple si l'on pose la question du % du CA, mais on peut sûrement faire mieux !
-
-#http://www.journaldunet.com/management/pratique/vie-de-l-entreprise/12235/le-taux-de-tva-en-2016.html
diff --git a/source/règles/brouillons/rémunération-travail/cotisations/atmp.yaml b/source/règles/brouillons/rémunération-travail/cotisations/atmp.yaml
deleted file mode 100644
index beb156e23..000000000
--- a/source/règles/brouillons/rémunération-travail/cotisations/atmp.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- contrat salarié: ATMP
- nom: Cotisation d'Accidents du Travail et Maladies Professionnelles
- description: Cotisation due au titre des Accidents du Travail et Maladies Professionnelles
- cotisation:
- branche: santé
- collecteur: URSSAF
- responsable: CARSAT
-
- notes: |
- Cette cotisation est particulière. Elle est calculée pour chaque établissement.
- - Pour les petites entreprises, un taux par secteur.
- - Pour les grandes, un taux individuel basé sur les sinistres passés.
- - Pour les entreprise intermédiaires, un taux mixte.
-
- Il nous faut arriver à exprimer à exprimer une première version du calcul de façon progressive : en prenant en main l'utilisateur.
-
-
- formule:
- multiplication:
- assiette: cotisations . assiette
- variations:
- - si: entreprise . effectif >= 150
- message: |
- L'entreprise relève de la tarification individuelle.
- Le taux AT/MP de l'établissement, privé, est accessible en ligne sur [net-entreprise](http://www.net-entreprises.fr/html/compte-accident-travail.htm) ou reçu par courrier.
- taux:
- variable: établissement . taux ATMP
- alternative:
- # mécanisme à utiliser quand la probabilité est forte pour que
- # l'utilisateur ne connaisse pas cette information
- message: En l'absence de cette information, estimez-le avec votre taux collectif
- # il est ici redirigé vers une variable qui permet une approximation
- variable: établissement . taux collectif ATMP
-
- - si: entreprise . effectif >= 20
- message: |
- L'entreprise relève de la tarification mixte, une combinaison du taux individuel de l'établissement et du taux collectif du secteur de l'établissement.
- Ce taux mixte est accessible en ligne sur [net-entreprise](http://www.net-entreprises.fr/html/compte-accident-travail.htm) ou reçu par courrier.
- taux:
- variable: établissement . taux ATMP
- alternative:
- message: En l'absence de cette information, estimez-le avec votre taux collectif
- variable: établissement . taux collectif ATMP
-
- - si: entreprise . effectif < 20
- message: |
- Votre entreprise relève du taux individuel, qui est privé.
- Il est accessible en ligne sur [net-entreprise](http://www.net-entreprises.fr/html/compte-accident-travail.htm) ou reçu par courrier.
- taux: établissement . taux collectif ATMP
-
-- contrat salarié . ATMP : taux collectif ATMP
- saisie:
- selection: # affichera une saisie utilisateur de type avec champ de recherche par mots clefs
- données: https://raw.githubusercontent.com/sgmap/taux-collectifs-cotisation-atmp/master/taux-2016.csv
- valeur clef: Taux net
diff --git a/source/règles/brouillons/rémunération-travail/cotisations/indemnités-journalières.yaml b/source/règles/brouillons/rémunération-travail/cotisations/indemnités-journalières.yaml
deleted file mode 100644
index 9f884b7e5..000000000
--- a/source/règles/brouillons/rémunération-travail/cotisations/indemnités-journalières.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-- variable: indemnités journalières
- si: Activité = Indépendant & catégorie Indépendant ⊂ [Commerçant, Artisan, Industriel]
- Cotisation:
- branche: ?
- collecteur: RSI
- référence: https://www.rsi.fr/ij.html
-
- formule*:
- type: linéaire
- base: revenus professionnels
- taux: 0.007
- limite: 193080
diff --git a/source/règles/brouillons/rémunération-travail/cout-du-travail.yaml b/source/règles/brouillons/rémunération-travail/cout-du-travail.yaml
deleted file mode 100644
index f9be3772c..000000000
--- a/source/règles/brouillons/rémunération-travail/cout-du-travail.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-- Somme: coût du travail (Salariat)
- description: Coût du travail à long terme. Inclut les charges, aides et crédits différés
- plus: salaire super brut
- # Définition d'une somme sur de variables plutôt qu'une liste finie
- -:
- Réduction de Cotisation:
- automatique: non
-
-
-- Somme: salaire super brut (Salariat)
- description: Coût du travail à court terme. Inclut les exonérations et allègements de charges
- plus: salaire super brut hors allegements
- -:
- Réduction de Cotisation:
- automatique: oui
-
-- Somme: salaire super brut hors allegements (Salariat)
- description: 'Salaire super-brut (fiche de paie): rémunération + cotisations sociales employeur'
- # plus: @rémunérations + @primes et indémnités
- plus:
- - salaire brut
- - Cotisation:
- dû par: employeur
-
-
-- Somme: salaire brut (Salariat)
- description: Le salaire brut est l'ensemble des revenus du salarié (salaires) avant cotisations
- plus: Salaire
- # TODO pourquoi le salaire brut est-il dans OF différent de l'assiette des cotsoc ? pas de primes_salaires
- # Refaire la part des choses
diff --git a/source/règles/brouillons/rémunération-travail/entités/CDD.motifs.contrats-aidés.yaml b/source/règles/brouillons/rémunération-travail/entités/CDD.motifs.contrats-aidés.yaml
deleted file mode 100644
index 384b10cf6..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/CDD.motifs.contrats-aidés.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-# TODO Aujourd'hui, nous n'avons besoin des contrats aidés que dans le contexte du motif de recours au CDD.
-# Il faudra par la suite, par exemple pour un simulateur CUI, les en extraire, par exemple dans `contrat salarié`, mais toujours pouvoir les utiliser ici.
-
-- espace: contrat salarié . CDD . motif
- nom: contrat aidé
- titre: Contrat aidé (CUI, alternance, ...)
- # Voir le TODO de contrat salarié . CDD . événement . poursuite du CDD en CDI
- # formule:
- # une possibilité:
- # - contrat unique d'insertion
- # - emplois d'avenir
- # - CDD sénior
- # - alternance
- # # CDD d'insertion (CDDI) https://www.service-public.fr/particuliers/vosdroits/F14100
- formule: contrat salarié . CDD . motif = 'contrat aidé'
- références:
- Code du travail - Article L1242-3: https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=714D2E2B814371F4F1D5AA88472CD621.tpdila20v_1?idArticle=LEGIARTI000006901196&cidTexte=LEGITEXT000006072050&dateTexte=20170420
-
-- espace: contrat salarié . CDD . motif . contrat aidé
- nom: contrat unique d'insertion
- # Voir le TODO de contrat salarié . CDD . événement . poursuite du CDD en CDI
- # formule:
- # une possibilité:
- # - CUI-CAE
- # - CUI-CIE
- références:
- CUI - dispositions générales: http://travail-emploi.gouv.fr/emploi/insertion-dans-l-emploi/contrats-aides/article/le-contrat-unique-d-insertion-cui-dispositions-generales
-
-- espace: contrat salarié . CDD . motif . contrat aidé
- nom: CDD sénior
- titre: Contrat CDD sénior
-
-- espace: contrat salarié . CDD . motif . contrat aidé
- nom: emploi d'avenir
- description: Contrat de travail aidé créé pour faciliter l'insertion professionnelle et l’accès à une qualification pour les jeunes en difficulté
- références:
- Emploi d'avenir: https://www.service-public.fr/particuliers/vosdroits/F24438
-
-- espace: contrat salarié . CDD . motif . contrat aidé
- nom: alternance
- # Voir le TODO de contrat salarié . CDD . événement . poursuite du CDD en CDI
- # formule:
- # une possibilité:
- # - apprentissage
- # - professionnalisation
-
-
-- espace: contrat salarié . CDD . motif . contrat aidé . alternance
- nom: apprentissage
- description: Contrat de travail aidé destiné au jeune professionnel qui suit une formation en alternance entre une entreprise et un centre de formation.
- référence: https://fr.wikipedia.org/wiki/Contrat_d'apprentissage#En_France
- # cette variable peut se calculer ! Au boulot !
- # y intégrer l'Étudiant apprenti professeur https://www.service-public.fr/particuliers/vosdroits/F24439
- # attention ! Le contrat d'apprentissage n'est pas soumis aux dispositions légales du CDD:
- # Article L1241-1
- # Les dispositions du présent titre ne s'appliquent ni au contrat d'apprentissage [...]
-
-- espace: contrat salarié . CDD . motif . contrat aidé . alternance
- nom: professionnalisation
- description: Contrat de travail aidé consistant en l'alternance de périodes d’acquisition de savoir-faire en entreprise et de périodes de formation théorique dispensées en centres de formation ou par l’entreprise elle-même si elle dispose d’un service de formation agréé.
- référence: https://fr.wikipedia.org/wiki/Contrat_de_professionnalisation
- # cette variable peut se calculer ! Au boulot !
diff --git a/source/règles/brouillons/rémunération-travail/entités/activité.md b/source/règles/brouillons/rémunération-travail/entités/activité.md
deleted file mode 100644
index b64ac9ba3..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/activité.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 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 contrat:
-- 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 peut 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/source/règles/brouillons/rémunération-travail/entités/activité.yaml b/source/règles/brouillons/rémunération-travail/entités/activité.yaml
deleted file mode 100644
index d2505c948..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/activité.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-- entité : activité
- description: Une activité est une occupation d'un individu, souvent rémunérée.
- valeur:
- # 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.
- une possibilité:
- - contrat salarié
- - indépendant
- - fonction publique
- - stage
- - inactif # (demandeur d'emploi, etc.)
- # TODO ...
-
-- activité: département
- description: Département où l'activité est exercée
- type: numerique
-
-- activité: individu
- description: l'individu qui exerce cette activité
- # on ne spécifie pas d'information de valeur -> une activité a une propriété individu, qui ne créée pas d'entité, c'est simplement une attache à l'entité individu existante
-
-
- # TODO C'est aux 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.
-
-
- # TODO durée déterminée: Booléen (Non)
- # peut être un calcul allant chercher les propriétés des types : CDD pour le salariat, durée du stage, etc.
diff --git a/source/règles/brouillons/rémunération-travail/entités/individu.sexe.yaml b/source/règles/brouillons/rémunération-travail/entités/individu.sexe.yaml
deleted file mode 100644
index 67c023237..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/individu.sexe.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Pourquoi ne pas simplement définir l'espace de nom en en-tête du fichier, par ex:
-# ```espace: individu . sexe```
-# pour ne pas avoir à le répéter ci-dessous ?
-# -> pour pouvoir dans un futur, que l'on espère proche, éditer ou parcourir ce code source directement dans un navigateur _par espace de nom_ avec une barre de recherche avancée. La notion de fichier serait alors embêtante.
-
-
-- individu . sexe : masculin
- image: fa-male
-
-- individu . sexe : masculin
- image: fa-female
diff --git a/source/règles/brouillons/rémunération-travail/entités/individu.yaml b/source/règles/brouillons/rémunération-travail/entités/individu.yaml
deleted file mode 100644
index 96ada6c51..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/individu.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Un des concepts de base du système, l'individu.
-# C'est une collection de champs (un _record_)
-
-- entité : individu
- # individu n'est une proriété d'aucun autre objet
- description: C'est le concept représentant une personne
-
-- individu: sexe
- valeur:
- une possibilité:
- - masculin
- - féminin
-
-# Voir ./individu.sexe.yaml, ces termes y sont définis.
-# Ils sont attachés à l'espace de nom `individu . sexe`.
-#
-# Pourquoi les propriétés de l'objet individu sont-elles éclatées dans une liste plate ? Concrêtement, pourquoi `sexe` n'est pas une propriété écrite directement au sein de l'objet `individu` ?
-# -> Pour plus de lisibilité : sexe, masculin, féminin peuvent s'étendre sur plusieurs lignes et rendraient l'objet individu illisible si elles y étaient toutes imbriquées.
-# Des objets à proriété pourront être reconstitués dans le navigateur.
-
-# Cette propriété est non calculable.
-# On peut parler de variables d'entrée, à saisir par l'utilisateur de la simulation.
-- individu: date de naissance
- valeur:
- date: JJ-MM-AAAA
-
-# Celle-ci est calculable, mais toujours saisissable
-- individu: age
- valeur:
- différence temporelle:
- échelle: année
- entre: date de naissance
- et: aujourd'hui
-
-# 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.
-- individu: activités
- valeur:
- 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]
-# }
diff --git a/source/règles/brouillons/rémunération-travail/entités/régime-alsace-moselle.yaml b/source/règles/brouillons/rémunération-travail/entités/régime-alsace-moselle.yaml
deleted file mode 100644
index f0bfffe6f..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/régime-alsace-moselle.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-- entité: régime alsace moselle
- description: Appartenance au régime local de sécurité sociale Alsace-Moselle
- référence: http://regime-local.fr/salaries/
- valeur:
- une de ces conditions:
- - affiliation 2012 conservée
- - activité . département ⊂ [57 67 68] #TODO peut-être trop complexe pour être une expression infixe
- - itinérance en Alsace Moselle:
- - departement établissement ⊂ [57 67 68]
- - itinérance en Alsace Moselle contractualisée
-
-- régime alsace moselle: affiliation 2012 conservée
- type: booléen
-
-- régime alsace moselle: itinérance en Alsace Moselle
- description: Le salarié effectue une itinérance en Alsace-Moselle
- type: booléen
-
-- régime alsace moselle: itinérance en Alsace Moselle contractualisée
- description: Le salarié effectue une itinérance en Alsace-Moselle, et celle-ci est définie explicitement dans le contrat de travail
- type: booléen
diff --git a/source/règles/brouillons/rémunération-travail/entités/à-lire.md b/source/règles/brouillons/rémunération-travail/entités/à-lire.md
deleted file mode 100644
index 6745ab360..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/à-lire.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Dans ce dossier `entités`, on définit l'individu, l'entreprise, l'établissement, le contrat etc.
-Ce sont principalement des variables sans formule compliquée.
diff --git a/source/règles/brouillons/rémunération-travail/entités/établissement.yaml b/source/règles/brouillons/rémunération-travail/entités/établissement.yaml
deleted file mode 100644
index 77c3fd0a3..000000000
--- a/source/règles/brouillons/rémunération-travail/entités/établissement.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-- entité : établissement
-
-- établissement: entreprise
-
-
-- établissement: employés
- valeur:
- liste: contrat salarié #TODO stagiaires, etc. ??
-
-- établissement: effectif
- valeur:
- décompte: employés
-
-- établissement: SIRET
- valeur: entier à 14 chiffres
-
-- établissement: code commune
- valeur: entier à 5 chiffres
-
-- établissement: code postal
- valeur: entier à 5 chiffres
-
-- établissement: compte AT/MP
-
-- établissement . compte AT/MP: code risque
- valeur: ?
-
-- établissement . compte AT/MP: appréciation du risque
- valeur:
- une possibilité:
- - très élevé
- - élevé
- - moyen
- - faible
-
-- établissement . compte AT/MP: taux risque
-# TODO faire référence à la règle de atmp.yaml
diff --git a/source/règles/brouillons/rémunération-travail/indemnité_congés_payés.md b/source/règles/brouillons/rémunération-travail/indemnité_congés_payés.md
deleted file mode 100644
index 93373ab0f..000000000
--- a/source/règles/brouillons/rémunération-travail/indemnité_congés_payés.md
+++ /dev/null
@@ -1,22 +0,0 @@
-http://travail-emploi.gouv.fr/droit-du-travail/temps-de-travail-et-conges/conges-et-absences/article/les-conges-payes
-
-> Est appelée indemnité de congés payés la rémunération à laquelle le salarié a droit pendant son congé annuel.
-
--> le salarié n'est pas payé pendant ses jours de congés, mais reçoit une indemnité.
-
-Son mode de calcul fait qu'elle est forcément plus elevée que le salaire qui serait reçu s'il avait travaillé !
-> calcul : https://www.cogilog.com/Logiciel/exemple-bulletin-paie-conges-payes-4.html
-
-
--> QUESTIONS
-
-- Faut-il en intégrer une estimation dans le prix d'embauche ?
-Oui je pense
-
-- Si un salarié a négocié un salaire de 40 000 euros annuels sur son contrat de travail
-
-Il prend 25 jours de congés.
-
-Soit :
- - il reçoit donc plus d'argent pendant ses congés que pendant ses jours de travail, donc il reçoit au total plus que 40k, par exemple 40 300€
- - l'employeur abaisse son taux horaire pour prendre en compte la différence et le paie bien 40k par an
diff --git a/source/règles/brouillons/rémunération-travail/rémunérations-salarié.yaml b/source/règles/brouillons/rémunération-travail/rémunérations-salarié.yaml
deleted file mode 100644
index bd6001626..000000000
--- a/source/règles/brouillons/rémunération-travail/rémunérations-salarié.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-# - Salaire: salaire de base
-#
-# - Salaire: salaire apprentis
-#
-# - Salaire: salaire contrat professionnalisation
-#
-# - Prime: primes salarié
-# description: Indemnités, primes et avantages en argent
-
-- Variable: cotisations . assiette
- description: L'assiette de la plupart des cotisations sociales pour le calcul des cotisations sociales sur le travail salarié.
- formule:
- somme: ? # juste pour le type numérique
- # - salaire brut
- # - primes etc.
diff --git a/source/règles/brouillons/rémunération-travail/salaire-net.yaml b/source/règles/brouillons/rémunération-travail/salaire-net.yaml
deleted file mode 100644
index b787a59db..000000000
--- a/source/règles/brouillons/rémunération-travail/salaire-net.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-- Somme: salaire net à payer
- description: Salaire net à payer (fiche de paie)
- tags:
- - rémunération
- - net
- somme: |
- + salaire net
- + depense_cantine_titre_restaurant_employe
- + indemnites_forfaitaires
- + remuneration_apprenti
- + stage_gratification
-
-- Somme: salaire net
- description: Salaire net d'après définition INSEE
- tags:
- - rémunération
- - net
- somme: |
- + salaire imposable
- + CRDS@revenu=activité
- + CSG@revenu=activité&déductible=non
-
-- Somme: salaire imposable
- # TODO cerfa_field
- somme: |
- + salaire de base
- + primes_salaires
- + remuneration_principale
- + primes_fonction_publique
- + indemnite_residence
- + supp_familial_traitement
- + csg_deductible_salaire
- + rev_microsocial_declarant1
- + indemnite_fin_contrat
- + complementaire_sante_salarie
- - hsup
- plus:
- type: cotisations
- dû par: salarié
diff --git a/source/règles/brouillons/rémunération-travail/variables-diverses/plafond-sécurité-sociale.yaml b/source/règles/brouillons/rémunération-travail/variables-diverses/plafond-sécurité-sociale.yaml
deleted file mode 100644
index ecd6f6712..000000000
--- a/source/règles/brouillons/rémunération-travail/variables-diverses/plafond-sécurité-sociale.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-- Variable: plafond sécurité sociale
- type de période: mensuel
- formule:
- 2017: 3269
- 2016: 3218
- 2015: 3170
- 2014: 3129
- 2013: 3086
- 2012: 3031
- 2011: 2946
- 2010: 2885
- 2009: 2859
- 2008: 2773
- 2007: 2689
- 2006: 2589
- 2005: 2516
- 2004: 2476
- 2003: 2432
- 2002: 2352
- 2001: 2279
diff --git a/source/règles/brouillons/types-de-variables.yaml b/source/règles/brouillons/types-de-variables.yaml
deleted file mode 100644
index d71217f0e..000000000
--- a/source/règles/brouillons/types-de-variables.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-# Voilà un brouillon de la définition des "types de variables". Reste à coder ça d'une façon ou d'une autre.
-
-Variable
- | Cotisation
- | Réduction de Cotisation
- | Prestation
- | Rémunération
-
-Rémunération
- | Rémunération salarié
- | Avantage en nature
- | ? pour les TNS
- | Indemnité de stage
- | ?
-
-Rémunération salarié
- domaine: Salariat
- type:
- | Salaire
- | Prime
-
-Cotisation
- domaine: Activité
- description:
- - Cotisation sociale
- - Prélèvement social sur les revenus du travail
- - Prélèvement ayant pour base l'assiette des cotisations sociales
-
- # contrat: Contrat
- dû par: salarié | employeur
- branche: santé | chômage | vieillesse | famille
- collecteur: URSSAF | RSI # | ...
- # D'autres attributs peuvent être ajoutés directement dans les instances de cette classe.
- # Ils ne sont alors pas contraints ni obligatoires
- # Example : type de retraite: base | complémentaire
diff --git a/source/règles/cas-types.yaml b/source/règles/cas-types.yaml
deleted file mode 100644
index ffe9c4ac1..000000000
--- a/source/règles/cas-types.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-- nom: CDI au salaire médian
- situation:
- contrat salarié . rémunération . brut de base: 2300
-
-- nom: CDI au SMIC
- situation:
- contrat salarié . rémunération . brut de base: 1500
-
-
-- nom: CDI au SMIC temps partiel 24h / semaine
- situation:
- contrat salarié . rémunération . brut de base: 1030
- contrat salarié . temps partiel: oui
- contrat salarié . temps partiel . heures par semaine: 24
-
-- nom: CDI cadre salaire cadre médian
- situation:
- contrat salarié . rémunération . brut de base: 3600
- contrat salarié . statut cadre: oui
-
-- nom: CDD usage de 2 mois
- situation:
- contrat salarié . rémunération . brut de base: 2300
- contrat salarié . type de contrat: CDD
- contrat salarié . CDD . motif: 'classique . usage'
- contrat salarié . CDD . durée: 2
-
-- nom: CDD accroissement d'activité de 1 an
- situation:
- contrat salarié . rémunération . brut de base: 2300
- contrat salarié . type de contrat: CDD
- contrat salarié . CDD . motif: 'classique . accroissement activité'
- contrat salarié . CDD . durée: 12
diff --git a/source/règles/ressources/todo.md b/source/règles/ressources/todo.md
deleted file mode 100644
index 75bfce070..000000000
--- a/source/règles/ressources/todo.md
+++ /dev/null
@@ -1,4 +0,0 @@
-#TODO
-
-Il faudra migrer les éléments des dossiers destinataires et références dans une définition de type des propriétés `cotisation` et `meta`.
-Lire la note `typer les variables`.
diff --git a/source/scripts/dottednames.js b/source/scripts/dottednames.js
index 19d38beeb..b5564a8e0 100644
--- a/source/scripts/dottednames.js
+++ b/source/scripts/dottednames.js
@@ -10,7 +10,7 @@ const fs = require('fs')
const path = require('path')
const yaml = require('js-yaml')
-const sourcePath = path.resolve(__dirname, '../règles/base.yaml')
+const sourcePath = path.resolve(__dirname, '../../publicode/base.yaml')
const outPath = path.resolve(__dirname, '../types/dottednames.json')
function persistJsonFileFromYaml() {
diff --git a/source/scripts/i18n/utils.js b/source/scripts/i18n/utils.js
index 8b5eb5cfa..1f18b3d00 100644
--- a/source/scripts/i18n/utils.js
+++ b/source/scripts/i18n/utils.js
@@ -6,7 +6,7 @@ let R = require('ramda')
var querystring = require('querystring')
let { safeLoad } = require('js-yaml')
-let rulesTranslationPath = path.resolve('source/règles/externalized.yaml')
+let rulesTranslationPath = path.resolve('source/locales/rules-en.yaml')
let UiTranslationPath = path.resolve('source/locales/en.yaml')
// TODO: This should be shared with the variable exported by Engine/rules, but
@@ -24,7 +24,7 @@ let attributesToTranslate = [
function getRulesMissingTranslations() {
let rules = safeLoad(
- fs.readFileSync(path.resolve('source/règles/base.yaml'), 'utf-8')
+ fs.readFileSync(path.resolve('publicode/base.yaml'), 'utf-8')
)
let currentExternalization = safeLoad(
diff --git a/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.css b/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.css
deleted file mode 100644
index 129f8849e..000000000
--- a/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.css
+++ /dev/null
@@ -1,38 +0,0 @@
-#exampleSituations ul {
- margin-top: 1.5em;
-}
-#exampleSituations .example {
- border-bottom: 1px solid #eee;
- width: 100%;
- display: flex;
- justify-items: space-between;
- align-items: center;
-}
-#exampleSituations .example h2 {
- width: 25%;
- display: inline-block;
- font-size: 120%;
- text-align: center;
-}
-#exampleSituations .example ul {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-around;
- list-style: none;
- flex-wrap: wrap;
-}
-#exampleSituations .example li {
- padding-top: 0;
-}
-#exampleSituations .example h3 {
- font-size: 95%;
- font-weight: 600;
- color: #444;
-}
-#exampleSituations .example .figure {
- font-size: 110%;
- text-align: center;
- display: inline-block;
- width: 100%;
-}
diff --git a/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.tsx b/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.tsx
deleted file mode 100644
index 720959c2c..000000000
--- a/source/sites/mon-entreprise.fr/pages/Documentation/ExampleSituations.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-// Page listing the engine's currently implemented mecanisms and their tests
-import { ThemeColorsContext } from 'Components/utils/colors'
-import { analyseMany } from 'Engine/traverse'
-import React, { useContext } from 'react'
-import emoji from 'react-easy-emoji'
-import { Trans } from 'react-i18next'
-import { useSelector } from 'react-redux'
-import examples from 'Règles/cas-types.yaml'
-import {
- parsedRulesSelector,
- ruleDefaultsSelector
-} from 'Selectors/analyseSelectors'
-import { DottedName } from 'Types/rule'
-import './ExampleSituations.css'
-
-export default function ExampleSituations() {
- return (
-
-
- {emoji('💡 ')}
- Quelques exemples de salaires
-
-
- {examples.map((ex: any) => (
-
- ))}
-
-
- )
-}
-
-const Example = function Example({ ex: { nom, situation } }) {
- const defaults = useSelector(ruleDefaultsSelector)
- const parsedRules = useSelector(parsedRulesSelector)
- const colors = useContext(ThemeColorsContext)
- let [total, net, netAprèsImpôts] = analyseMany(parsedRules, [
- 'total',
- 'net',
- 'net après impôt'
- ])(
- (dottedName: DottedName) => ({ ...defaults, ...situation }[dottedName])
- ).targets,
- figures = [
- total,
- {
- dottedName: 'contrat salarié . rémunération . brut de base',
- nodeValue: situation['contrat salarié . rémunération . brut de base'],
- title: 'Salaire brut'
- },
- net,
- { ...netAprèsImpôts, title: 'Après impôt' }
- ],
- de = figures[0].nodeValue,
- à = figures[3].nodeValue,
- percentage = Math.round(((de - à) / de) * 100)
-
- return (
-
- {nom}
-
- {figures.map(t => (
-
- {t.title}
-
- {Math.round(t.nodeValue)} €
-
-
- ))}{' '}
-
- Prélèvements
-
- {percentage} %
-
-
-
-
- )
-}
diff --git a/source/sites/mon-entreprise.fr/pages/Documentation/index.tsx b/source/sites/mon-entreprise.fr/pages/Documentation/index.tsx
index 7174fe755..234a6984a 100644
--- a/source/sites/mon-entreprise.fr/pages/Documentation/index.tsx
+++ b/source/sites/mon-entreprise.fr/pages/Documentation/index.tsx
@@ -2,7 +2,6 @@ import RulePage from 'Components/RulePage'
import { SitePathsContext } from 'Components/utils/withSitePaths'
import React, { useContext } from 'react'
import { Route, Switch } from 'react-router'
-import ExampleSituations from './ExampleSituations'
import RulesList from './RulesList'
export default function Documentation() {
@@ -10,11 +9,6 @@ export default function Documentation() {
return (
-
{
},
nouveautés: t('path.nouveautés', '/nouveautés'),
documentation: {
- exemples: t('path.documentation.exemples', '/exemples'),
index: t('path.documentation.index', '/documentation'),
rule: (dottedName: DottedName) => '/' + encodeRuleName(dottedName)
},
diff --git a/source/webpack.common.js b/source/webpack.common.js
index 5ec4c75da..0f182c584 100644
--- a/source/webpack.common.js
+++ b/source/webpack.common.js
@@ -8,13 +8,13 @@ module.exports.default = {
resolve: {
alias: {
Engine: path.resolve('source/engine/'),
- Règles: path.resolve('source/règles/'),
Actions: path.resolve('source/actions/'),
Ui: path.resolve('source/components/ui/'),
Components: path.resolve('source/components/'),
Selectors: path.resolve('source/selectors/'),
Reducers: path.resolve('source/reducers/'),
Types: path.resolve('source/types/'),
+ Publicode: path.resolve('publicode/'),
Images: path.resolve('source/images/')
},
extensions: ['.js', '.ts', '.tsx']
diff --git a/test/library.test.js b/test/library.test.js
index dd3021af5..a597a54f3 100644
--- a/test/library.test.js
+++ b/test/library.test.js
@@ -1,7 +1,7 @@
import { expect } from 'chai'
import Lib from '../source/engine/index'
-import co2 from '../source/règles/co2.yaml'
-import sasuRules from '../source/règles/sasu.yaml'
+import co2 from './rules/co2.yaml'
+import sasuRules from './rules/sasu.yaml'
describe('library', function() {
it('should evaluate one target with no input data', function() {
diff --git a/test/mecanisms.test.js b/test/mecanisms.test.js
index 90c6ae477..463d70d3f 100644
--- a/test/mecanisms.test.js
+++ b/test/mecanisms.test.js
@@ -1,7 +1,8 @@
/*
- Les mécanismes sont testés dans mécanismes/ comme le sont les variables directement dans la base YAML.
- On construit dans chaque fichier une base YAML autonome, dans laquelle intervient le mécanisme à tester,
- puis on teste idéalement tous ses comportements sans en faire intervenir d'autres.
+ Les mécanismes sont testés dans mécanismes/ comme le sont les variables
+ directement dans la base Publicode. On construit dans chaque fichier une base
+ Publicode autonome, dans laquelle intervient le mécanisme à tester, puis on
+ teste idéalement tous ses comportements sans en faire intervenir d'autres.
*/
import { expect } from 'chai'
diff --git a/source/règles/co2.yaml b/test/rules/co2.yaml
similarity index 99%
rename from source/règles/co2.yaml
rename to test/rules/co2.yaml
index 0785f901a..3eaf51ba6 100644
--- a/source/règles/co2.yaml
+++ b/test/rules/co2.yaml
@@ -81,7 +81,6 @@ chauffage . impact par kWh:
notes: |
La base carbone de l'ADEME ne permet malheureusement pas de faire des liens profonds vers les chiffres utilisés.
Pour l'électricité, nous retenons le chiffre de l'ADEME "Electricité - 2016 - usage : Eau Chaude Sanitaire - consommation".
-
références:
base carbone ADEME: http://www.bilans-ges.ademe.fr/fr/accueil
électricité: https://www.electricitymap.org/?page=country&solar=false&remote=true&wind=false&countryCode=FR
diff --git a/source/règles/sasu.yaml b/test/rules/sasu.yaml
similarity index 90%
rename from source/règles/sasu.yaml
rename to test/rules/sasu.yaml
index 35d58b7b3..f231cf4ca 100644
--- a/source/règles/sasu.yaml
+++ b/test/rules/sasu.yaml
@@ -1,4 +1,6 @@
-# Ce petit ensemble de règles a été historiquement utilisé pour tester l'externalisation du moteur, et est en train d'être réintégré progressivement dans la base centrale
+# Ce petit ensemble de règles a été historiquement utilisé pour tester
+# l'externalisation du moteur, et est en train d'être réintégré progressivement
+# dans la base centrale
chiffre affaires:
unité par défaut: €/mois
diff --git a/tsconfig.json b/tsconfig.json
index a70f455d0..f44cf3a3d 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -31,7 +31,7 @@
"Engine/*": ["engine/*"],
"Images/*": ["images/*"],
"Reducers/*": ["reducers/*"],
- "Règles/*": ["règles/*"],
+ "Publicode/*": ["../publicode/*"],
"Selectors/*": ["selectors/*"],
"Types/*": ["types/*"]
}