diff --git a/source/components/conversation/AnswerList.tsx b/source/components/conversation/AnswerList.tsx
index 9394f8f38..852a999d6 100644
--- a/source/components/conversation/AnswerList.tsx
+++ b/source/components/conversation/AnswerList.tsx
@@ -52,46 +52,48 @@ function StepsTable({ rules, onClose }) {
return (
- {rules.map(rule => (
-
-
-
- |
-
- {' '}
+ |
+
+ ))}
)
diff --git a/source/components/conversation/DateInput.tsx b/source/components/conversation/DateInput.tsx
index 12f81c0fa..b140763d4 100644
--- a/source/components/conversation/DateInput.tsx
+++ b/source/components/conversation/DateInput.tsx
@@ -8,7 +8,6 @@ import SendButton from './SendButton'
const DateField = styled.input`
border: none;
- text-align: center;
color: inherit;
font-size: inherit;
margin: 0 0.1rem;
@@ -83,6 +82,7 @@ export default FormDecorator('input')(function DateInput({
{
if (+value > 31) {
@@ -99,6 +99,7 @@ export default FormDecorator('input')(function DateInput({
{
if (+value > 12) {
@@ -114,6 +115,7 @@ export default FormDecorator('input')(function DateInput({
/
{
diff --git a/source/components/simulationConfigs/auto-entrepreneur.yaml b/source/components/simulationConfigs/auto-entrepreneur.yaml
index 21db5b8d4..fda7f5961 100644
--- a/source/components/simulationConfigs/auto-entrepreneur.yaml
+++ b/source/components/simulationConfigs/auto-entrepreneur.yaml
@@ -19,5 +19,3 @@ questions:
unités par défaut: [€/an]
situation:
dirigeant: 'auto-entrepreneur'
- entreprise . catégorie d'activité: 'libérale'
- entreprise . catégorie d'activité . libérale règlementée: non
diff --git a/source/engine/mecanismViews/BarèmeContinu.js b/source/engine/mecanismViews/BarèmeContinu.js
index 952c91204..c7965aa8e 100644
--- a/source/engine/mecanismViews/BarèmeContinu.js
+++ b/source/engine/mecanismViews/BarèmeContinu.js
@@ -1,7 +1,8 @@
import { ShowValuesConsumer } from 'Components/rule/ShowValuesContext'
import RuleLink from 'Components/RuleLink'
-import { formatPercentage, formatValue } from 'Engine/format'
+import { formatValue } from 'Engine/format'
import { sortObjectByKeys } from 'Engine/mecanismViews/common'
+import { serialiseUnit } from 'Engine/units'
import React from 'react'
import { Trans, useTranslation } from 'react-i18next'
import { BarèmeAttributes } from './Barème'
@@ -37,8 +38,9 @@ let Comp = function Barème({ nodeValue, explanation, unit }) {
|
@@ -52,7 +54,7 @@ let Comp = function Barème({ nodeValue, explanation, unit }) {
Votre taux :{' '}
- {formatPercentage(explanation.taux)}
+
)}
{explanation.returnRate && (
@@ -68,7 +70,7 @@ let Comp = function Barème({ nodeValue, explanation, unit }) {
)
}
-function SeuilFormatteur({ value, multiplicateur }) {
+function SeuilFormatteur({ value, multiplicateur, unit }) {
const { language } = useTranslation().i18n
if (value === 0) {
return '0'
@@ -78,19 +80,20 @@ function SeuilFormatteur({ value, multiplicateur }) {
{formatValue({
value,
language
- })}
+ })}{' '}
+ {serialiseUnit(unit)}
{multiplicateur && (
<>
{multiplicateur.acronyme}
+
>
)}{' '}
-
>
)
}
diff --git a/source/engine/mecanisms/barème-continu.js b/source/engine/mecanisms/barème-continu.js
index 702a6a7dd..29e22156c 100644
--- a/source/engine/mecanisms/barème-continu.js
+++ b/source/engine/mecanisms/barème-continu.js
@@ -1,15 +1,35 @@
import { defaultNode, evaluateObject, parseObject } from 'Engine/evaluation'
+import { decompose } from 'Engine/mecanisms/utils'
+import variations from 'Engine/mecanisms/variations'
import BarèmeContinu from 'Engine/mecanismViews/BarèmeContinu'
import { anyNull, val } from 'Engine/traverse-common-functions'
import { parseUnit } from 'Engine/units'
-import { aperture, last, pipe, reduce, reduced, sort, toPairs } from 'ramda'
-
+import {
+ aperture,
+ isEmpty,
+ last,
+ pipe,
+ reduce,
+ reduced,
+ sort,
+ toPairs
+} from 'ramda'
export default (recurse, k, v) => {
+ if (v.composantes) {
+ return decompose(recurse, k, v)
+ }
+ if (v.variations) {
+ return variations(recurse, k, v, true)
+ }
+ if (!v.points || typeof v.points !== 'object' || isEmpty(v.points)) {
+ throw new Error(
+ 'Le mécanisme `barème linéaire` doit avoir un paramètre `points` valide'
+ )
+ }
let objectShape = {
assiette: false,
multiplicateur: defaultNode(1)
}
-
let returnRate = v['retourne seulement le taux'] === 'oui'
let effect = ({ assiette, multiplicateur, points }) => {
if (anyNull([assiette, multiplicateur])) return null
diff --git a/source/règles/base.yaml b/source/règles/base.yaml
index be7bbe1a4..2303af4fc 100644
--- a/source/règles/base.yaml
+++ b/source/règles/base.yaml
@@ -1732,6 +1732,8 @@ entreprise . effectif:
unité: employé
formule:
variations:
+ - si: entreprise . effectif . seuil = 'moins de 5'
+ alors: 4 employés
- si: entreprise . effectif . seuil = 'moins de 11'
alors: 10 employés
- si: entreprise . effectif . seuil = 'moins de 20'
@@ -1755,13 +1757,15 @@ entreprise . effectif . seuil:
une possibilité:
choix obligatoire: oui
possibilités:
+ - moins de 5
- moins de 11
- moins de 20
- moins de 50
- moins de 250
- 251 et plus
- par défaut: moins de 11
+ par défaut: moins de 5
+entreprise . effectif . seuil . moins de 5:
entreprise . effectif . seuil . moins de 11:
entreprise . effectif . seuil . moins de 20:
entreprise . effectif . seuil . moins de 50:
@@ -3152,9 +3156,9 @@ entreprise . date de création:
question: Quand avez-vous créé votre entreprise ?
par défaut: 01/01/2019
suggestions:
- Janvier 2020: 01/01/2020
- Janvier 2019: 01/01/2019
- Janvier 2018: 01/01/2018
+ Début 2020: 01/01/2020
+ Début 2019: 01/01/2019
+ Fin 2017: 31/12/2017
type: date
contrôles:
- si: date de création > 01/2020
@@ -4205,7 +4209,7 @@ dirigeant . indépendant . cotisations et contributions . exonérations . ZFU .
assiette: établissement . ZFU . durée d'implantation en fin d'année [an]
retourne seulement le taux: oui
variations:
- - si: entreprise . effectif
+ - si: entreprise . effectif < 5
alors:
points:
0: 100%