Ajoute un contrôle pour les dates de début et date de fin
parent
363c34b45a
commit
cb5267b6f6
|
@ -133,6 +133,13 @@ détachement . date de fin:
|
|||
note: 2.2
|
||||
type: date
|
||||
|
||||
détachement . vérification date:
|
||||
titre: Date de détachement non valide
|
||||
formule: date de début > date de fin
|
||||
type: notification
|
||||
description: La date de fin de détachement ne peut être antérieure à la date de début
|
||||
sévérité: avertissement
|
||||
|
||||
détachement . nature de l'activité:
|
||||
question: Quel sera la nature de votre activité pendant la période de détachement ?
|
||||
type: texte
|
||||
|
@ -195,6 +202,12 @@ activité transfrontalière simultanée . activité salariée . période . date
|
|||
activité transfrontalière simultanée . activité salariée . période . date de fin:
|
||||
applicable si: date de fin connue
|
||||
type: date
|
||||
activité transfrontalière simultanée . activité salariée . période . vérification:
|
||||
titre: Date d'activité salariée non valides
|
||||
formule: date de début du contrat > date de fin
|
||||
type: notification
|
||||
description: La date de fin du contrat ne peut être antérieure à la date de début
|
||||
sévérité: avertissement
|
||||
|
||||
activité transfrontalière simultanée . activité salariée . employeur:
|
||||
note: 5.1
|
||||
|
|
|
@ -5,7 +5,7 @@ import Emoji from 'Components/utils/Emoji'
|
|||
import { EngineContext, EngineProvider } from 'Components/utils/EngineContext'
|
||||
import { Markdown } from 'Components/utils/markdown'
|
||||
import { usePersistingState } from 'Components/utils/persistState'
|
||||
import Engine, { evaluateRule } from 'publicodes'
|
||||
import Engine, { evaluateRule, EvaluatedRule } from 'publicodes'
|
||||
import { equals } from 'ramda'
|
||||
import {
|
||||
lazy,
|
||||
|
@ -13,7 +13,7 @@ import {
|
|||
Suspense,
|
||||
useCallback,
|
||||
useState,
|
||||
useContext,
|
||||
useContext
|
||||
} from 'react'
|
||||
import emoji from 'react-easy-emoji'
|
||||
import { hash } from '../../../../../utils'
|
||||
|
@ -92,11 +92,11 @@ const useFields = (
|
|||
engine: Engine<string>,
|
||||
fieldNames: Array<string>,
|
||||
situation: Record<string, unknown>
|
||||
) => {
|
||||
): Array<EvaluatedRule> => {
|
||||
const fields = fieldNames
|
||||
.map((name) => evaluateRule(engine, name))
|
||||
.map(name => evaluateRule(engine, name))
|
||||
.filter(
|
||||
(node) =>
|
||||
node =>
|
||||
// TODO change this when not applicable value can be differenciated from false value
|
||||
(equals(node.missingVariables, { [node.dottedName]: 1 }) ||
|
||||
node.dottedName in situation ||
|
||||
|
@ -115,9 +115,9 @@ function FormulairePublicodes() {
|
|||
)
|
||||
const onChange = useCallback(
|
||||
(dottedName, value) => {
|
||||
setSituation((situation) => ({
|
||||
setSituation(situation => ({
|
||||
...situation,
|
||||
[dottedName]: value,
|
||||
[dottedName]: value
|
||||
}))
|
||||
},
|
||||
[setSituation]
|
||||
|
@ -140,7 +140,7 @@ function FormulairePublicodes() {
|
|||
const isMissingValues = !!missingValues.length
|
||||
return (
|
||||
<Animate.fromTop key={clearFieldsKey}>
|
||||
{fields.map((field) => (
|
||||
{fields.map(field => (
|
||||
<Animate.fromTop key={field.dottedName}>
|
||||
{field.type === 'groupe' ? (
|
||||
<>
|
||||
|
@ -151,6 +151,14 @@ function FormulairePublicodes() {
|
|||
)}
|
||||
{field.description && <Markdown source={field.description} />}
|
||||
</>
|
||||
) : field.type === 'notification' && field.nodeValue === true ? (
|
||||
<small
|
||||
css={`
|
||||
color: #ff2d96;
|
||||
`}
|
||||
>
|
||||
{field.description}
|
||||
</small>
|
||||
) : (
|
||||
<>
|
||||
<label htmlFor={field.dottedName}>
|
||||
|
@ -175,7 +183,7 @@ function FormulairePublicodes() {
|
|||
<RuleInput
|
||||
id={field.dottedName}
|
||||
dottedName={field.dottedName}
|
||||
onChange={(value) => onChange(field.dottedName, value)}
|
||||
onChange={value => onChange(field.dottedName, value)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
|
|
Loading…
Reference in New Issue