corrige le dispositif ZFU pour les indeps

pull/789/head
Johan Girod 2020-01-07 12:00:48 +01:00
parent 91d0989a87
commit 22bcda8e2a
6 changed files with 88 additions and 59 deletions

View File

@ -52,46 +52,48 @@ function StepsTable({ rules, onClose }) {
return (
<table>
<tbody>
{rules.map(rule => (
<tr
key={rule.dottedName}
css={`
background: var(--lightestColor);
`}
>
<td>
<RuleLink {...rule} />
</td>
<td>
<button
className="answer"
css={`
display: inline-block;
padding: 0.6rem;
color: inherit;
font-size: inherit;
width: 100%;
text-align: start;
font-weight: 500;
> span {
border-bottom: 1px dashed blue;
border-bottom-color: var(--textColorOnWhite);
padding: 0.05em 0em;
{rules
.filter(rule => rule.nodeValue !== undefined)
.map(rule => (
<tr
key={rule.dottedName}
css={`
background: var(--lightestColor);
`}
>
<td>
<RuleLink {...rule} />
</td>
<td>
<button
className="answer"
css={`
display: inline-block;
}
`}
onClick={() => {
dispatch(goToQuestion(rule.dottedName))
onClose()
}}
>
<span className="answerContent">
<Value {...rule} />
</span>
</button>{' '}
</td>
</tr>
))}
padding: 0.6rem;
color: inherit;
font-size: inherit;
width: 100%;
text-align: start;
font-weight: 500;
> span {
border-bottom: 1px dashed blue;
border-bottom-color: var(--textColorOnWhite);
padding: 0.05em 0em;
display: inline-block;
}
`}
onClick={() => {
dispatch(goToQuestion(rule.dottedName))
onClose()
}}
>
<span className="answerContent">
<Value {...rule} />
</span>
</button>{' '}
</td>
</tr>
))}
</tbody>
</table>
)

View File

@ -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({
<DateField
autoFocus
placeholder="JJ"
css="text-align: right;"
type="tel"
onChange={({ target: { value } }) => {
if (+value > 31) {
@ -99,6 +99,7 @@ export default FormDecorator('input')(function DateInput({
<DateField
type="tel"
placeholder="MM"
css="text-align: center;"
ref={monthInput}
onChange={({ target: { value } }) => {
if (+value > 12) {
@ -114,6 +115,7 @@ export default FormDecorator('input')(function DateInput({
/
<DateField
type="tel"
css="text-align: left;"
ref={yearInput}
placeholder="AAAA"
onChange={({ target: { value } }) => {

View File

@ -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

View File

@ -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 }) {
<td key="tranche">
<SeuilFormatteur
value={Number(seuil)}
unit={explanation.assiette.unit}
multiplicateur={
explanation.multiplicateur.explanation
explanation.multiplicateur?.explanation
}
/>
</td>
@ -52,7 +54,7 @@ let Comp = function Barème({ nodeValue, explanation, unit }) {
<b>
<Trans>Votre taux </Trans> :{' '}
</b>
{formatPercentage(explanation.taux)}
<NodeValuePointer data={100 * explanation.taux} unit="%" />
</span>
)}
{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 && (
<>
&nbsp;
<RuleLink {...multiplicateur} title={multiplicateur.name}>
{multiplicateur.acronyme}
</RuleLink>
<NodeValuePointer
data={value * multiplicateur.nodeValue}
unit={multiplicateur.unit}
/>
</>
)}{' '}
<NodeValuePointer
data={value * multiplicateur.nodeValue}
unit={multiplicateur.unit}
/>
</>
)
}

View File

@ -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

View File

@ -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%