From cb5267b6f66befe1aad61cfc82e00d0f9260dc7a Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Tue, 8 Dec 2020 15:32:36 +0100 Subject: [PATCH] =?UTF-8?q?Ajoute=20un=20contr=C3=B4le=20pour=20les=20date?= =?UTF-8?q?s=20de=20d=C3=A9but=20et=20date=20de=20fin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formulaire-détachement.yaml | 13 ++++++++++ .../pages/Gérer/DemandeMobilite/index.tsx | 26 ++++++++++++------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/formulaire-détachement.yaml b/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/formulaire-détachement.yaml index 2edd1f0b7..4725fc8b1 100644 --- a/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/formulaire-détachement.yaml +++ b/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/formulaire-détachement.yaml @@ -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 diff --git a/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/index.tsx b/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/index.tsx index c315010c5..8ded6f1ea 100644 --- a/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/index.tsx +++ b/mon-entreprise/source/sites/mon-entreprise.fr/pages/Gérer/DemandeMobilite/index.tsx @@ -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, fieldNames: Array, situation: Record -) => { +): Array => { 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 ( - {fields.map((field) => ( + {fields.map(field => ( {field.type === 'groupe' ? ( <> @@ -151,6 +151,14 @@ function FormulairePublicodes() { )} {field.description && } + ) : field.type === 'notification' && field.nodeValue === true ? ( + + {field.description} + ) : ( <>