+
-
+ value => fmt(value.toFixed(decimalDigits))
+export let humanFigure = decimalDigits => value => fmt(value.toFixed(decimalDigits))
import './RuleValueVignette.css'
export default ({
From d9ec269134acaa888fc6307a9ea41d92b2c37e9e Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 15:08:36 +0200
Subject: [PATCH 05/11] =?UTF-8?q?Utilisation=20de=20la=20v=C3=A9ritable=20?=
=?UTF-8?q?valeur=20de=20calcul=20pour=20les=20exemples?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On utilisait une valeur qui nous évitait de tester correctement les
conditions d'application de la règle
---
source/components/rule/Examples.js | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/source/components/rule/Examples.js b/source/components/rule/Examples.js
index 15e11c24d..b4fdbede8 100644
--- a/source/components/rule/Examples.js
+++ b/source/components/rule/Examples.js
@@ -26,14 +26,11 @@ export default class Examples extends Component {
)(ex.situation)
let runExemple = analyseSituation(rules, rule.name)(v => exempleSituation[v]),
- exempleCalculatedValue = runExemple["non applicable si"] &&
- runExemple["non applicable si"].nodeValue
- ? null
- : runExemple.formule.nodeValue
+ exempleValue = runExemple.nodeValue
return {
...ex,
- ok: Math.abs( ex['valeur attendue'] - exempleCalculatedValue ) < .1, //TODO on peut sûrement faire mieux...
+ ok: Math.abs( ex['valeur attendue'] - exempleValue ) < .1, //TODO on peut sûrement faire mieux...
rule: runExemple
}
})
@@ -65,7 +62,7 @@ export default class Examples extends Component {
Ce test ne passe pas
{showValues &&
- : la valeur attendue était {' '}
+ : le résultat attendu était {' '}
{expected}}
From 91b2014b02a878ff1649fe95624b18f4125b09d5 Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 15:12:08 +0200
Subject: [PATCH 06/11] :art: Centrage du bouton de signalement d'erreur
---
source/components/rule/Examples.css | 9 ---------
source/components/rule/Examples.js | 6 ------
source/components/rule/Rule.css | 11 +++++++++++
source/components/rule/Rule.js | 6 ++++++
4 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/source/components/rule/Examples.css b/source/components/rule/Examples.css
index 1313372f4..c2a11d134 100644
--- a/source/components/rule/Examples.css
+++ b/source/components/rule/Examples.css
@@ -65,12 +65,3 @@
#examples .example.ok i {
color: #2ecc71
}
-
-#reportError {
- background: #c0392b;
- color: white;
- border: none;
- font-size: 100%;
- padding: .3em .6em;
- margin-top: 3em;
-}
diff --git a/source/components/rule/Examples.js b/source/components/rule/Examples.js
index b4fdbede8..a994bc29e 100644
--- a/source/components/rule/Examples.js
+++ b/source/components/rule/Examples.js
@@ -80,12 +80,6 @@ export default class Examples extends Component {
}
-
)
}
diff --git a/source/components/rule/Rule.css b/source/components/rule/Rule.css
index 6990cac65..644e9a4fe 100644
--- a/source/components/rule/Rule.css
+++ b/source/components/rule/Rule.css
@@ -357,3 +357,14 @@
justify-content: space-between;
align-items: baseline;
}
+
+
+#reportError {
+ background: #c0392b;
+ color: white;
+ border: none;
+ font-size: 100%;
+ padding: .3em .6em;
+ margin: 3em auto 0;
+ display: block;
+}
diff --git a/source/components/rule/Rule.js b/source/components/rule/Rule.js
index e31eb1da3..8c66eb84b 100644
--- a/source/components/rule/Rule.js
+++ b/source/components/rule/Rule.js
@@ -124,6 +124,12 @@ export default class Rule extends Component {
showValues={this.state.showValues}
inject={example => this.setState({example, showValues: true})}/>
+
)
}
From c560501d0b819f75e59911b259271042b56d0385 Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 15:51:42 +0200
Subject: [PATCH 07/11] Affichage de l'erreur du test au clic seulement
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Ainsi au clic la valeur calculée est affichée et la comparaison entre
attendu et calculé est possible
---
source/components/rule/Examples.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/components/rule/Examples.js b/source/components/rule/Examples.js
index a994bc29e..c8a8e1a21 100644
--- a/source/components/rule/Examples.js
+++ b/source/components/rule/Examples.js
@@ -58,7 +58,7 @@ export default class Examples extends Component {
:
}
{nom}
- {!ok &&
+ {!ok && focusedExample == nom &&
Ce test ne passe pas
{showValues &&
From 9e1930909c7634a7f08cb9a04afdd636e1d62099 Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 15:52:40 +0200
Subject: [PATCH 08/11] :white_check_mark: Correction des exemples CIF
---
règles/rémunération-travail/cdd/CIF.yaml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/règles/rémunération-travail/cdd/CIF.yaml b/règles/rémunération-travail/cdd/CIF.yaml
index 086dd2f83..fb0add15a 100644
--- a/règles/rémunération-travail/cdd/CIF.yaml
+++ b/règles/rémunération-travail/cdd/CIF.yaml
@@ -23,23 +23,30 @@
Code du travail - Article L6322-37 : https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000022234996&cidTexte=LEGITEXT000006072050
exemples:
+
- nom: Non applicable si CDI
situation:
type de contrat: CDI
assiette cotisations sociales: 1480
valeur attendue: 0
+
- nom: SMIC
situation:
type de contrat: CDD
événement: aucun
motif: accroissement activité
contrat jeune vacances: non
+
assiette cotisations sociales: 1480
valeur attendue: 14.8
- nom: salaire médian
situation:
- contrat salarié . CDD . motif: classique . usage
+ type de contrat: CDD
+ événement: aucun
+ motif: accroissement activité
+ contrat jeune vacances: non
+
assiette cotisations sociales: 2300
valeur attendue: 23
From 5ae06c7162a9b9fc2302769df79bb46b41952ff5 Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 16:02:06 +0200
Subject: [PATCH 09/11] :hammer: Ajout de la variable "association non
lucrative"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Qui déclenche la taxe sur les salaires
---
.../cotisations/ok/taxe-salaires.yaml | 20 +++++++++++++++----
.../entités/ok/contrat-salarié.yaml | 6 ++++--
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml b/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
index 4e9568861..ee99ff733 100644
--- a/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
+++ b/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
@@ -4,6 +4,8 @@
description: |
Sont assujetties les associations à but non lucratif et les entreprises non soumises à la TVA ou payant la TVA sur moins de 10% de leur chiffre. Les particuliers employeurs, les employeurs agricoles, les établissements d'enseignement supérieur, les auto-entrepreneurs ne sont pas concernés.
question: L'entreprise est-elle assujettie à la taxe sur les salaires ?
+ # variable non utilisée pour l'instant, comme dans le simulateur v1
+ # à ajouter quand nous aurons des mécanismes logiques plus évolués (notamment 'applicable si')
- espace: contrat salarié
nom: taxe sur les salaires annuelle
@@ -26,6 +28,13 @@
taux: 13.6%
- au-dessus de: 152279
taux: 20%
+ exemples:
+ - nom: salaire médian
+ situation:
+ assiette taxe sur les salaires: 2300
+ valeur attendue: 2639.16 # calcul annuel : 7721×4.25%+(15417−7721)×8.5%+(27600−15417)×13.6%
+
+
- espace: contrat salarié
nom: assiette taxe sur les salaires
@@ -33,8 +42,9 @@
- espace: contrat salarié
nom: taxe sur les salaires
- description: La taxe sur les salaires en France est un impôt progressif créé en 1948 que certains employeurs doivent acquitter sur les salaires qu'ils distribuent.
- non applicable si: ≠ assujettie à la taxe sur les salaires
+ description: La taxe sur les salaires en France est un impôt progressif créé en 1948 que certains employeurs doivent acquitter sur les salaires qu'ils distribuent.
+ non applicable si: ≠ association non lucrative
+
formule: taxe sur les salaires annuelle / 12
exemples:
- nom: non applicable par défaut
@@ -42,6 +52,8 @@
salaire brut: 2300
valeur attendue: 0
- nom: association non lucrative
+ # Ce test ne sert qu'à tester la condition "association non lucrative", tant que nous faisons face à la limitation des calculs temporels
situation:
- salaire brut: 2300
- valeur attendue: 219.93 # calcul annuel : 7721×4.25%+(15417−7721)×8.5%+(27600−15417)×13.6%
+ association non lucrative: oui
+ taxe sur les salaires annuelle: 2639.16
+ valeur attendue: 219.93
diff --git a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
index 9e4ae8d82..0f2ca85d7 100644
--- a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
+++ b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
@@ -218,8 +218,10 @@
-
-
+- espace: contrat salarié
+ nom: association non lucrative
+ description: L'entreprise est une association non lucrative
+ question: S'agit-il d'une association à but non lucratif ?
From 9c9cd6e428d005b2e00b23c243b166b6eb04b00d Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 16:15:57 +0200
Subject: [PATCH 10/11] :hammer: Association 1901 -> pas de CICE ni de taxe
d'apprentissage
---
règles/rémunération-travail/aides/ok/cice.yaml | 17 ++++++++++++++++-
.../cotisations/ok/taxe-apprentissage.yaml | 4 +++-
.../cotisations/ok/taxe-salaires.yaml | 4 ++--
.../entités/ok/contrat-salarié.yaml | 5 -----
.../entités/ok/entreprise.yaml | 5 +++++
5 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/règles/rémunération-travail/aides/ok/cice.yaml b/règles/rémunération-travail/aides/ok/cice.yaml
index 7401683a2..1c712233a 100644
--- a/règles/rémunération-travail/aides/ok/cice.yaml
+++ b/règles/rémunération-travail/aides/ok/cice.yaml
@@ -10,13 +10,28 @@
calcul: https://www.service-public.fr/professionnels-entreprises/vosdroits/F31326
# TODO - exlure stage, apprentissage
- non applicable si: salaire brut > plafond cice
+ non applicable si:
+ une de ces conditions:
+ - assiette cotisations sociales > plafond cice
+ - entreprise . association non lucrative
formule:
multiplication:
assiette: assiette cotisations sociales
taux: 7%
+ exemples:
+ - nom: SMIC
+ situation:
+ assiette cotisations sociales: 2300
+ entreprise . association non lucrative: non
+ valeur attendue: 161
+ - nom: Non applicable si association
+ situation:
+ assiette cotisations sociales: 2300
+ entreprise . association non lucrative: oui
+ valeur attendue: 0
+
- espace: contrat salarié
nom: plafond cice
# TODO: calcul du smic proratisé
diff --git a/règles/rémunération-travail/cotisations/ok/taxe-apprentissage.yaml b/règles/rémunération-travail/cotisations/ok/taxe-apprentissage.yaml
index 3c46e7539..27246c331 100644
--- a/règles/rémunération-travail/cotisations/ok/taxe-apprentissage.yaml
+++ b/règles/rémunération-travail/cotisations/ok/taxe-apprentissage.yaml
@@ -10,7 +10,9 @@
notes: Taxe complexe, comportant notamment des exonérations non prises en compte ici.
- # non applicable si: Entreprise . association non lucrative
+ non applicable si: Entreprise . association non lucrative
+ # L'association a but non lucratif ne paie pas d'IS de droit commun article 206 du Code général des impôts
+ # -> pas de taxe ni contribution d'apprentissage
formule:
somme:
- taxe d'apprentissage de base
diff --git a/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml b/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
index ee99ff733..fde77fa0a 100644
--- a/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
+++ b/règles/rémunération-travail/cotisations/ok/taxe-salaires.yaml
@@ -43,7 +43,7 @@
- espace: contrat salarié
nom: taxe sur les salaires
description: La taxe sur les salaires en France est un impôt progressif créé en 1948 que certains employeurs doivent acquitter sur les salaires qu'ils distribuent.
- non applicable si: ≠ association non lucrative
+ non applicable si: ≠ Entreprise . association non lucrative
formule: taxe sur les salaires annuelle / 12
exemples:
@@ -54,6 +54,6 @@
- nom: association non lucrative
# Ce test ne sert qu'à tester la condition "association non lucrative", tant que nous faisons face à la limitation des calculs temporels
situation:
- association non lucrative: oui
+ Entreprise . association non lucrative: oui
taxe sur les salaires annuelle: 2639.16
valeur attendue: 219.93
diff --git a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
index 0f2ca85d7..d94b75043 100644
--- a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
+++ b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
@@ -218,11 +218,6 @@
-- espace: contrat salarié
- nom: association non lucrative
- description: L'entreprise est une association non lucrative
- question: S'agit-il d'une association à but non lucratif ?
-
diff --git a/règles/rémunération-travail/entités/ok/entreprise.yaml b/règles/rémunération-travail/entités/ok/entreprise.yaml
index 46dc7aa0e..fdfbe025c 100644
--- a/règles/rémunération-travail/entités/ok/entreprise.yaml
+++ b/règles/rémunération-travail/entités/ok/entreprise.yaml
@@ -28,3 +28,8 @@
suggestions:
1: 1
5: 5
+
+- espace: entreprise
+ nom: association non lucrative
+ description: L'entreprise est une association non lucrative
+ question: S'agit-il d'une association à but non lucratif ?
From ef3b2f19f7925d92b2b25ac6767f8da338c079d7 Mon Sep 17 00:00:00 2001
From: mama
Date: Tue, 3 Oct 2017 19:21:56 +0200
Subject: [PATCH 11/11] :hammer: Ajout du CITS, pendant du CICE pour les
associations
---
.../rémunération-travail/aides/ok/cits.yaml | 42 +++++++++++++++++++
.../entités/ok/contrat-salarié.yaml | 1 +
2 files changed, 43 insertions(+)
create mode 100644 règles/rémunération-travail/aides/ok/cits.yaml
diff --git a/règles/rémunération-travail/aides/ok/cits.yaml b/règles/rémunération-travail/aides/ok/cits.yaml
new file mode 100644
index 000000000..b78399130
--- /dev/null
+++ b/règles/rémunération-travail/aides/ok/cits.yaml
@@ -0,0 +1,42 @@
+- espace: contrat salarié
+ nom: CITS
+ titre: Crédit d'impôt de taxe sur les salaire
+ aide:
+ type: avantage fiscal
+ thème: aide bas salaires
+ démarches: non
+ description: |
+ La loi de finances pour 2017 instaure, au bénéfice des associations et organismes sans but lucratif (OSBL),
+ un dispositif de crédit d'impôt de taxe sur les salaires (CITS).
+ références:
+ fiche: https://www.service-public.fr/associations/actualites/A11012
+
+ non applicable si:
+ une de ces conditions:
+ - assiette cotisations sociales > plafond CITS
+ - ≠ entreprise . association non lucrative
+
+ formule:
+ multiplication:
+ assiette: assiette cotisations sociales
+ taux: 4%
+
+ exemples:
+ - nom: SMIC
+ situation:
+ assiette cotisations sociales: 2300
+ entreprise . association non lucrative: oui
+ valeur attendue: 92
+ - nom: Non applicable si organisme lucratif
+ situation:
+ assiette cotisations sociales: 2300
+ entreprise . association non lucrative: non
+ valeur attendue: 0
+
+- espace: contrat salarié
+ nom: plafond CITS
+ formule: multiplicateur CITS * smic mensuel
+
+- espace: contrat salarié
+ nom: multiplicateur CITS
+ formule: 2.5
diff --git a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
index d94b75043..cd99351e1 100644
--- a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
+++ b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml
@@ -196,6 +196,7 @@
formule:
somme:
- CICE
+ - CITS
- réduction générale
- exonération JEI