Améliore le comportement des champs de nombre vides en cas de variables manquantes

Également : une valeur à undefined supprime la règle de la situation désormais
pull/2126/head
Johan Girod 2022-05-02 17:19:33 +02:00
parent ce64d0cc24
commit 103f47f64f
8 changed files with 48 additions and 50 deletions

View File

@ -48,10 +48,12 @@ déclaration charge sociales . cotisations payées:
déclaration charge sociales . cotisations payées . CSG déductible et CFP:
question: Quel est le montant total de CSG déductible et CFP payées cette année ?
unité: €/an
plancher: 0 €/an
description: |
Indiquez le montant de la part de CSG déductible et de CFP que vous avez payé en 2021 (peu importe lannée à laquelle ces contributions se rapportent).
déclaration charge sociales . cotisations payées . cotisations sociales:
question: Quel est le montant de vos cotisations sociales payées cette année ?
plancher: 0 €/an
unité: €/an
description: |
Indiquez le montant des cotisations sociales aux régimes obligatoires (maladie-maternité, vieillesse, invalidité-décès, famille) que vous avez payées en 2021 (peu importe lannée à laquelle ces cotisations se rapportent).

View File

@ -99,6 +99,7 @@ entreprise . chiffre d'affaires . vente restauration hébergement:
valeur: chiffre d'affaires
arrondi: oui
plancher: 0€/an
par défaut: 0€/an
description: |
### Vente de biens
Il sagit du chiffre d'affaires de toutes les opérations comportant
@ -132,6 +133,7 @@ entreprise . chiffre d'affaires . service BIC:
services qui nécessite plus qu'un ordinateur pour être effectuées.
**Exemples** : transports, service à la personne, réparation etc.
par défaut: 0€/an
variations:
- si: activité . mixte
alors:
@ -149,6 +151,7 @@ entreprise . chiffre d'affaires . service BNC:
résumé: Recettes hors taxes
question: Quelles sont les recettes issues de lactivité libérale ?
arrondi: oui
par défaut: 0€/an
plancher: 0€/an
description: |
Ce sont toutes les opérations dont l'activité intellectuelle tient

View File

@ -1,9 +1,9 @@
import { SimulationConfig } from '@/reducers/rootReducer'
import { DottedName } from 'modele-social'
import Engine from 'publicodes'
import { SimulationConfig } from '@/reducers/rootReducer'
import { CompanyActions } from './companyActions'
import { CompanyCreationAction } from './companyCreationChecklistActions'
import { CompanyStatusAction } from './companyStatusActions'
import { CompanyActions } from './companyActions'
import { HiringChecklistAction } from './hiringChecklistAction'
export type Action =
@ -60,11 +60,13 @@ export const setActiveTarget = (targetName: DottedName) =>
} as const)
export const updateSituation = (fieldName: DottedName, value: unknown) =>
({
type: 'UPDATE_SITUATION',
fieldName,
value,
} as const)
value === undefined
? deleteFromSituation(fieldName)
: ({
type: 'UPDATE_SITUATION',
fieldName,
value,
} as const)
export const deleteFromSituation = (fieldName: DottedName) =>
({

View File

@ -360,7 +360,9 @@ function useSimpleNumberFieldState(
canDecrement: true,
validate: () => true,
commit: () => {
rawInputValue && updateInputValue(numberValue)
numberValue === undefined
? setInputValue(numberValue)
: updateInputValue(numberValue)
},
incrementToMax: () => null,
decrementToMin: () => null,

View File

@ -133,7 +133,10 @@ export function SimpleField({
aria-labelledby={displayedQuestion ? labelId : undefined}
label={displayedLabel}
required={meta.requis === 'oui'}
missing={!isEmpty(evaluation.missingVariables)}
missing={
evaluation.nodeValue === undefined &&
!isEmpty(evaluation.missingVariables)
}
onChange={dispatchValue}
showSuggestions={showSuggestions}
/>

View File

@ -155,21 +155,7 @@ export default function AideDéclarationIndépendant() {
</Condition>
<Condition expression="déclaration charge sociales . cotisations payées">
<SubSection dottedName="déclaration charge sociales . cotisations payées" />
<SimpleField dottedName="déclaration charge sociales . nature de l'activité" />
<SimpleField dottedName="dirigeant . indépendant . conjoint collaborateur" />
<SubSection dottedName="dirigeant . indépendant . cotisations facultatives" />
{/* We can't use a subsection here cause revenu étrangers is not missing when CSG is replaced */}
<H3>
<Trans>Revenus étranger</Trans>
</H3>
<SimpleField dottedName="dirigeant . indépendant . revenus étrangers" />
<Condition expression="dirigeant . indépendant . revenus étrangers">
<SimpleField dottedName="dirigeant . indépendant . revenus étrangers . montant" />
</Condition>
</Condition>
<Condition expression="déclaration charge sociales . cotisations payées">
<H2>Cotisations et contributions sociales en 2021</H2>
<SimpleField dottedName="déclaration charge sociales . cotisations payées . cotisations sociales" />
<SimpleField dottedName="déclaration charge sociales . cotisations payées . CSG déductible et CFP" />
</Condition>
@ -177,7 +163,7 @@ export default function AideDéclarationIndépendant() {
</Grid>
</FromTop>
<WhenAlreadyDefined dottedName="déclaration charge sociales . résultat . cotisations obligatoires">
<WhenAlreadyDefined dottedName="déclaration charge sociales . résultat . total charges sociales déductible">
<ResultatsSimples />
</WhenAlreadyDefined>
</>

View File

@ -141,7 +141,7 @@ function simulation(
const newState = {
...state,
situation: omit(
{ ...state.situation },
state.situation,
action.fieldName
) as Simulation['situation'],
}

View File

@ -587,70 +587,70 @@ Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA .
`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > ACRE 1`] = `
"[0,null,null,null,null,null]
"[0,null,null,null,0,null]
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > ACRE 2`] = `
"[0,null,null,null,null,null]
"[0,null,null,null,0,null]
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > ACRE 3`] = `
"[0,null,null,null,null,null]
"[0,null,null,null,0,null]
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 1`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 1`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 2`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 2`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 3`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 3`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 4`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 4`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 5`] = `
"[0,261252,261252,20568,4,56]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement, entreprise . imposition . IS . information sur le report de déficit"
`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 6`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 6`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 7`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 7`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > JEI 1`] = `"[2829,33949,0,32212,4,49]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 1`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 1`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 2`] = `"[0,null,null,null,null,0]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 2`] = `"[0,null,null,null,0,0]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 3`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 3`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 4`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 4`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 5`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 5`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 6`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 6`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > avec charges 1`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > avec charges 1`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > avec charges 2`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > avec charges 2`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 1`] = `"[0,87,87,0,0,0]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 2`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 2`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 3`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 3`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 4`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 4`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 5`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 5`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 6`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 6`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 7`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 7`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 8`] = `"[0,null,null,null,null,null]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > échelle de rémunération 8`] = `"[0,null,null,null,0,null]"`;
exports[`calculate simulations-salarié > CCN HCR 1`] = `
"[3499,0,2500,2005,1894]