From 3aacc4d35907cfa94edd072b916119babec103d1 Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Wed, 14 Jun 2023 15:30:14 +0200 Subject: [PATCH] Ajoute le lien avec publicodes (in progress) --- modele-social/règles/entreprise/activité.yaml | 4 +- .../entreprise/catégorie-juridique.yaml | 7 +++- .../{StatusTag.tsx => StatutTag.tsx} | 16 ++++---- .../_components/Navigation.tsx | 1 + .../_components/StatutsDisponibles.tsx | 39 +++++++------------ .../choix-du-statut/détails-activité.tsx | 29 +++++++++----- .../recherche-code-ape/GuichetInfo.tsx | 4 +- .../components/AllerPlusLoinRevenus.tsx | 8 ++-- .../components/DetailsRowCards.tsx | 2 +- .../components/Détails.tsx | 12 +++--- .../components/RevenuAprèsImpot.tsx | 6 +-- .../components/StatusCard.tsx | 12 +++--- 12 files changed, 72 insertions(+), 68 deletions(-) rename site/source/components/{StatusTag.tsx => StatutTag.tsx} (86%) diff --git a/modele-social/règles/entreprise/activité.yaml b/modele-social/règles/entreprise/activité.yaml index f2a96629b..2f2bdd6ad 100644 --- a/modele-social/règles/entreprise/activité.yaml +++ b/modele-social/règles/entreprise/activité.yaml @@ -320,7 +320,9 @@ entreprise . activités . principale: code guichet: description: | Le code guichet est utilisé pour identifier l'activité principale lors de la déclaration de - la nouvelle entreprise via le guichet unique + la nouvelle entreprise via le guichet unique. Il diffère du code APE : certains code APE ont plusieurs code guichet associés. + + Il permet de connaître le type d'imposition de bénéfince (BIC, BNC, BA), la nature d'activité ou encore les régimes de retraite spécifiques associés au type d'activité. # une possibilité: # choix obligatoire: oui diff --git a/modele-social/règles/entreprise/catégorie-juridique.yaml b/modele-social/règles/entreprise/catégorie-juridique.yaml index 40e03d531..42463aac9 100644 --- a/modele-social/règles/entreprise/catégorie-juridique.yaml +++ b/modele-social/règles/entreprise/catégorie-juridique.yaml @@ -51,7 +51,11 @@ entreprise . catégorie juridique . EI: par: "'unique'" avec: auto-entrepreneur: - non applicable si: associés . multiples + acronyme: AE + non applicable si: + une de ces conditions: + - associés . multiples + - entreprise . imposition . IR . type de bénéfices = 'BA' question: Êtes-vous auto-entrepreneur ? remplace: - règle: imposition . régime @@ -68,6 +72,7 @@ entreprise . catégorie juridique . EI: valeur: oui EI: titre: entreprise individuelle + acronyme: EI valeur: auto-entrepreneur = non non applicable si: associés . multiples diff --git a/site/source/components/StatusTag.tsx b/site/source/components/StatutTag.tsx similarity index 86% rename from site/source/components/StatusTag.tsx rename to site/source/components/StatutTag.tsx index 955754023..331128a95 100644 --- a/site/source/components/StatusTag.tsx +++ b/site/source/components/StatutTag.tsx @@ -11,7 +11,7 @@ import { import { Tag } from '@/design-system/tag' import { Colors } from '@/design-system/theme' -export const TAG_DATA = { +const TAG_DATA = { EI: { color: 'independant', longName: 'Entreprise individuelle', @@ -71,7 +71,7 @@ export const TAG_DATA = { } } -export type Status = keyof typeof TAG_DATA +export type Statut = keyof typeof TAG_DATA const StyledTag = styled(Tag)` margin: 0 0.25rem; @@ -87,19 +87,19 @@ const StyledTag = styled(Tag)` } ` -interface StatusTagProps { - status: Status +interface StatutTagProps { + statut: Statut text: 'acronym' | 'shortName' | 'longName' showIcon?: boolean } -export const StatusTag = ({ status, text, showIcon }: StatusTagProps) => { - const Icon = TAG_DATA[status].icon +export const StatutTag = ({ statut, text, showIcon }: StatutTagProps) => { + const Icon = TAG_DATA[statut].icon return ( - + {showIcon && } - {TAG_DATA[status][text]} + {TAG_DATA[statut][text]} ) } diff --git a/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx b/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx index 38ee93e30..82a0a2262 100644 --- a/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx +++ b/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx @@ -139,6 +139,7 @@ const Shadow = styled.div` position: sticky; bottom: 35px; transform: translateY(-200%); + clip-path: inset(-5px 0px -5px -5px); height: 25px; padding: 0; margin: 0; diff --git a/site/source/pages/assistants/choix-du-statut/_components/StatutsDisponibles.tsx b/site/source/pages/assistants/choix-du-statut/_components/StatutsDisponibles.tsx index 6a422362e..4e74d6597 100644 --- a/site/source/pages/assistants/choix-du-statut/_components/StatutsDisponibles.tsx +++ b/site/source/pages/assistants/choix-du-statut/_components/StatutsDisponibles.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' import { DottedName } from '@/../../modele-social' -import { Status, StatusTag } from '@/components/StatusTag' +import { Statut, StatutTag } from '@/components/StatutTag' import { useEngine } from '@/components/utils/EngineContext' import { Message } from '@/design-system' import { H5 } from '@/design-system/typography/heading' @@ -17,29 +17,15 @@ export default function StatutsDisponibles() { professionnelle que vous exercez - - - - + + + + {/* */} - + ) @@ -96,14 +79,18 @@ const StyledMessage = styled(Message)` } ` -function Statut({ statut, status }: { statut: DottedName; status: Status }) { +function Statut({ statut }: { statut: DottedName }) { const engine = useEngine() - const disabled = status === 'AE' + const disabled = + engine.evaluate({ 'est non applicable': statut }).nodeValue === true + + const acronyme = (engine.getRule(statut).rawNode.acronyme ?? + engine.getRule(statut).title.toLocaleLowerCase()) as Statut return (
  • {engine.getRule(statut).title} - +
  • ) } diff --git a/site/source/pages/assistants/choix-du-statut/détails-activité.tsx b/site/source/pages/assistants/choix-du-statut/détails-activité.tsx index b9a18b26a..3b44fe8b0 100644 --- a/site/source/pages/assistants/choix-du-statut/détails-activité.tsx +++ b/site/source/pages/assistants/choix-du-statut/détails-activité.tsx @@ -11,7 +11,7 @@ import { Spacing } from '@/design-system/layout' import { H3, H5 } from '@/design-system/typography/heading' import { Body } from '@/design-system/typography/paragraphs' import { useSitePaths } from '@/sitePaths' -import { updateSituation } from '@/store/actions/actions' +import { batchUpdateSituation } from '@/store/actions/actions' import { GuichetDescription, @@ -37,6 +37,23 @@ export default function DétailsActivité() { setCodeGuichet(guichetEntries[0].code) }, [guichetEntries]) + const guichetSelected = guichetEntries?.find( + (guichet) => guichet.code === codeGuichet + ) + + const onNextStepClicked = () => { + if (!guichetSelected) { + return + } + dispatch( + batchUpdateSituation({ + 'entreprise . activités . principale . code guichet': `'${guichetSelected.code}'`, + 'entreprise . imposition . IR . type de bénéfices': + guichetSelected.typeBénéfice, + }) + ) + } + if (!codeApe) return return ( @@ -68,15 +85,7 @@ export default function DétailsActivité() { guichetEntries?.length === 1 && t('créer.activité-détails.next1', 'Continuer avec cette activité') } - onNextStep={() => - codeGuichet && - dispatch( - updateSituation( - 'entreprise . activités . principale . code guichet', - `'${codeGuichet}'` - ) - ) - } + onNextStep={onNextStepClicked} /> diff --git a/site/source/pages/assistants/recherche-code-ape/GuichetInfo.tsx b/site/source/pages/assistants/recherche-code-ape/GuichetInfo.tsx index a829bb989..7711d675c 100644 --- a/site/source/pages/assistants/recherche-code-ape/GuichetInfo.tsx +++ b/site/source/pages/assistants/recherche-code-ape/GuichetInfo.tsx @@ -72,8 +72,8 @@ export function GuichetDescription({ return ( <> - Activité {catégorieActivité.replace(/_/g, ' ')} avec - des revenus déclarés en {typeBénéfice} + Activité {catégorieActivité.replace(/_/g, ' ')} avec le + type de bénéfice {typeBénéfice} {caisseDeRetraiteSpéciale && ( <> , affiliée à la {caisseDeRetraiteSpéciale} pour la diff --git a/site/source/pages/simulateurs/comparaison-statuts/components/AllerPlusLoinRevenus.tsx b/site/source/pages/simulateurs/comparaison-statuts/components/AllerPlusLoinRevenus.tsx index d41c58ef7..558e3a230 100644 --- a/site/source/pages/simulateurs/comparaison-statuts/components/AllerPlusLoinRevenus.tsx +++ b/site/source/pages/simulateurs/comparaison-statuts/components/AllerPlusLoinRevenus.tsx @@ -9,7 +9,7 @@ import { SwitchInput } from '@/components/conversation/ChoicesInput' import { ExplicableRule } from '@/components/conversation/Explicable' import RuleInput from '@/components/conversation/RuleInput' import Value from '@/components/EngineValue' -import { StatusTag } from '@/components/StatusTag' +import { StatutTag } from '@/components/StatutTag' import { useEngine } from '@/components/utils/EngineContext' import { Message } from '@/design-system' import { Button } from '@/design-system/buttons' @@ -138,7 +138,7 @@ const AllerPlusLoinRevenus = ({ Type de structure - + @@ -148,7 +148,7 @@ const AllerPlusLoinRevenus = ({ id="tooltip-ei-table" > - + @@ -156,7 +156,7 @@ const AllerPlusLoinRevenus = ({ - + diff --git a/site/source/pages/simulateurs/comparaison-statuts/components/DetailsRowCards.tsx b/site/source/pages/simulateurs/comparaison-statuts/components/DetailsRowCards.tsx index 90f17ed0e..11e70230e 100644 --- a/site/source/pages/simulateurs/comparaison-statuts/components/DetailsRowCards.tsx +++ b/site/source/pages/simulateurs/comparaison-statuts/components/DetailsRowCards.tsx @@ -121,7 +121,7 @@ const DetailsRowCards = ({ as="ul" > - + - + 1 € minimum - + Aucun @@ -664,17 +664,17 @@ const Détails = ({ - + Conjoint associé ou salarié - + Conjoint collaborateur ou salarié - + Conjoint collaborateur diff --git a/site/source/pages/simulateurs/comparaison-statuts/components/RevenuAprèsImpot.tsx b/site/source/pages/simulateurs/comparaison-statuts/components/RevenuAprèsImpot.tsx index d9c259176..353182fba 100644 --- a/site/source/pages/simulateurs/comparaison-statuts/components/RevenuAprèsImpot.tsx +++ b/site/source/pages/simulateurs/comparaison-statuts/components/RevenuAprèsImpot.tsx @@ -66,7 +66,7 @@ const RevenuAprèsImpot = ({ { +}: StatutCardType) => { const tooltipIdRef = useRef(generateUuid()) return ( @@ -31,7 +31,7 @@ const StatusCard = ({ {status.map((statusString) => ( - + ))}