From f49fc6aaa6784929b63bbb92ee9b8e7f05358b4a Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Mon, 25 Jan 2021 15:52:01 +0100 Subject: [PATCH] =?UTF-8?q?Ajoute=20une=20checkbox=20activit=C3=A9=20mixte?= =?UTF-8?q?=20qui=20change=20l'interface=20du=20simulateur=20auto-entrepre?= =?UTF-8?q?neur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modele-social/règles/dirigeant.yaml | 5 +- .../règles/entreprise-établissement.yaml | 1 + .../CurrencyInput/CurrencyInput.tsx | 5 +- .../source/components/SimulationGoals.tsx | 19 ++- .../AutoEntrepreneurExplanation.tsx | 39 ------ .../pages/Simulateurs/ArtisteAuteur.tsx | 6 +- .../pages/Simulateurs/AutoEntrepreneur.tsx | 121 ++++++++++++++++++ .../configs/auto-entrepreneur.yaml | 6 - .../source/pages/Simulateurs/metadata.tsx | 19 +-- 9 files changed, 150 insertions(+), 71 deletions(-) delete mode 100644 mon-entreprise/source/components/simulationExplanation/AutoEntrepreneurExplanation.tsx create mode 100644 mon-entreprise/source/pages/Simulateurs/AutoEntrepreneur.tsx diff --git a/modele-social/règles/dirigeant.yaml b/modele-social/règles/dirigeant.yaml index 77f7bbf6a..64d8c78dd 100644 --- a/modele-social/règles/dirigeant.yaml +++ b/modele-social/règles/dirigeant.yaml @@ -127,12 +127,12 @@ dirigeant . auto-entrepreneur . seuils dépassés . notification: dirigeant . auto-entrepreneur . net de cotisations: titre: Revenu net de cotisations + arrondi: oui identifiant court: auto-entrepreneur-net résumé: Avant impôt question: Quel revenu avant impôt voulez-vous toucher ? description: Il s'agit du revenu net de cotisations et de charges, avant le paiement de l'impôt sur le revenu. formule: entreprise . chiffre d'affaires - cotisations et contributions - unité: €/mois dirigeant . auto-entrepreneur . cotisations et contributions: unité: €/mois @@ -236,10 +236,12 @@ dirigeant . auto-entrepreneur . chiffre d'affaires: question: Quel est votre chiffre d'affaires ? résumé: Montant total des recettes brutes unité: €/an + arrondi: oui non applicable si: entreprise . activité . mixte inversion numérique: avec: - net de cotisations + - net après impôt dirigeant . auto-entrepreneur . cotisations et contributions . cotisations: description: | Les cotisations sociales donnent à l'auto-entrepreneur accès à une @@ -385,6 +387,7 @@ dirigeant . auto-entrepreneur . net après impôt: identifiant court: auto-entrepreneur-net-apres-impot résumé: Avant déduction des dépenses liées à l'activité unité: €/an + arrondi: oui question: Quel est le revenu net après impôt souhaité ? description: >- Le revenu net de l'auto-entrepreneur après déduction de l'impôt diff --git a/modele-social/règles/entreprise-établissement.yaml b/modele-social/règles/entreprise-établissement.yaml index 6f74a1add..f8e9ff574 100644 --- a/modele-social/règles/entreprise-établissement.yaml +++ b/modele-social/règles/entreprise-établissement.yaml @@ -56,6 +56,7 @@ entreprise . chiffre d'affaires: question: Quel est votre chiffre d'affaires envisagé ? résumé: Montant total des recettes brutes (hors taxe) unité: €/an + arrondi: oui somme: - vente restauration hébergement - prestations de service diff --git a/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx b/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx index 5ed8c39f9..d48a2254f 100644 --- a/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx +++ b/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx @@ -1,7 +1,7 @@ import classnames from 'classnames' import React, { useMemo, useRef, useState } from 'react' import NumberFormat, { NumberFormatProps } from 'react-number-format' -import { debounce, currencyFormat } from '../../utils' +import { currencyFormat, debounce } from '../../utils' import './CurrencyInput.css' type CurrencyInputProps = NumberFormatProps & { @@ -13,7 +13,7 @@ type CurrencyInputProps = NumberFormatProps & { } export default function CurrencyInput({ - value: valueProp = '', + value, debounce: debounceTimeout, currencySymbol = '€', onChange, @@ -21,6 +21,7 @@ export default function CurrencyInput({ className, ...forwardedProps }: CurrencyInputProps) { + const valueProp = value ?? '' const [initialValue, setInitialValue] = useState(valueProp) const [currentValue, setCurrentValue] = useState(valueProp) const onChangeDebounced = useMemo( diff --git a/mon-entreprise/source/components/SimulationGoals.tsx b/mon-entreprise/source/components/SimulationGoals.tsx index f6a8759da..ed9004e18 100644 --- a/mon-entreprise/source/components/SimulationGoals.tsx +++ b/mon-entreprise/source/components/SimulationGoals.tsx @@ -1,12 +1,12 @@ import { updateSituation } from 'Actions/actions' +import Animate from 'Components/ui/animate' import { DottedName } from 'modele-social' import { UNSAFE_isNotApplicable } from 'publicodes' +import { createContext, useContext, useEffect, useState } from 'react' import { useDispatch, useSelector } from 'react-redux' import { situationSelector } from 'Selectors/simulationSelectors' -import RuleInput, { RuleInputProps } from './conversation/RuleInput' +import RuleInput from './conversation/RuleInput' import { useEngine } from './utils/EngineContext' -import Animate from 'Components/ui/animate' -import { useState, useEffect, createContext, useContext } from 'react' type SimulationGoalsProps = { className?: string @@ -42,11 +42,16 @@ function useInitialRender() { type SimulationGoalProps = { dottedName: DottedName -} & Omit + labelWithTitle?: boolean + small?: boolean + titleLevel?: number +} export function SimulationGoal({ dottedName, - ...otherProps + labelWithTitle = false, + small = false, + titleLevel = 2, }: SimulationGoalProps) { const dispatch = useDispatch() const engine = useEngine() @@ -65,13 +70,13 @@ export function SimulationGoal({ } return ( -
  • +
  • diff --git a/mon-entreprise/source/components/simulationExplanation/AutoEntrepreneurExplanation.tsx b/mon-entreprise/source/components/simulationExplanation/AutoEntrepreneurExplanation.tsx deleted file mode 100644 index d6de3dbd1..000000000 --- a/mon-entreprise/source/components/simulationExplanation/AutoEntrepreneurExplanation.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import StackedBarChart from 'Components/StackedBarChart' -import { ThemeColorsContext } from 'Components/utils/colors' -import { default as React, useContext } from 'react' -import { Trans, useTranslation } from 'react-i18next' -import AidesCovid from './AidesCovid' - -export default function AutoEntrepreneurExplanation() { - const { t } = useTranslation() - const { palettes } = useContext(ThemeColorsContext) - return ( -
    - -
    -

    - Répartition du chiffre d'affaires -

    - -
    - ) -} diff --git a/mon-entreprise/source/pages/Simulateurs/ArtisteAuteur.tsx b/mon-entreprise/source/pages/Simulateurs/ArtisteAuteur.tsx index d6a221990..d4d3c909d 100644 --- a/mon-entreprise/source/pages/Simulateurs/ArtisteAuteur.tsx +++ b/mon-entreprise/source/pages/Simulateurs/ArtisteAuteur.tsx @@ -1,4 +1,3 @@ -import useSimulationConfig from 'Components/utils/useSimulationConfig' import { DistributionBranch } from 'Components/Distribution' import Value, { Condition } from 'Components/EngineValue' import SimulateurWarning from 'Components/SimulateurWarning' @@ -7,10 +6,11 @@ import { SimulationGoal, SimulationGoals } from 'Components/SimulationGoals' import 'Components/TargetSelection.css' import Animate from 'Components/ui/animate' import { EngineContext } from 'Components/utils/EngineContext' +import useSimulationConfig from 'Components/utils/useSimulationConfig' import { DottedName } from 'modele-social' -import { useContext, useEffect, useState } from 'react' +import { useContext, useState } from 'react' import { Trans } from 'react-i18next' -import { useDispatch, useSelector } from 'react-redux' +import { useSelector } from 'react-redux' import { situationSelector } from 'Selectors/simulationSelectors' import styled from 'styled-components' import config from './configs/artiste-auteur.yaml' diff --git a/mon-entreprise/source/pages/Simulateurs/AutoEntrepreneur.tsx b/mon-entreprise/source/pages/Simulateurs/AutoEntrepreneur.tsx new file mode 100644 index 000000000..90c6b6c0c --- /dev/null +++ b/mon-entreprise/source/pages/Simulateurs/AutoEntrepreneur.tsx @@ -0,0 +1,121 @@ +import { updateSituation } from 'Actions/actions' +import { Condition } from 'Components/EngineValue' +import RuleLink from 'Components/RuleLink' +import SimulateurWarning from 'Components/SimulateurWarning' +import { SimulationGoal, SimulationGoals } from 'Components/SimulationGoals' +import StackedBarChart from 'Components/StackedBarChart' +import { ThemeColorsContext } from 'Components/utils/colors' +import { useEngine } from 'Components/utils/EngineContext' +import { default as React, useContext } from 'react' +import { Trans, useTranslation } from 'react-i18next' +import { useDispatch } from 'react-redux' +import AidesCovid from '../../components/simulationExplanation/AidesCovid' + +export default function AutoEntrepreneur() { + const dispatch = useDispatch() + + return ( + <> + + + + + + + + +

    + +

    + + + + +
    + + + +
    + + + ) +} + +function ActivitéMixte() { + const defaultCheked = !!useEngine().evaluate('entreprise . activité . mixte') + .nodeValue + const dispatch = useDispatch() + return ( + + ) +} + +function Explanation() { + const { t } = useTranslation() + const { palettes } = useContext(ThemeColorsContext) + return ( +
    + +
    +

    + Répartition du chiffre d'affaires +

    + +
    + ) +} diff --git a/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml b/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml index 82a9c942e..b8479c7c9 100644 --- a/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml +++ b/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml @@ -1,12 +1,6 @@ objectifs: - - dirigeant . auto-entrepreneur . chiffre d'affaires - - entreprise . chiffre d'affaires . vente restauration hébergement - - entreprise . chiffre d'affaires . prestations de service . BIC - - entreprise . chiffre d'affaires . prestations de service . BNC - dirigeant . auto-entrepreneur . cotisations et contributions - - dirigeant . auto-entrepreneur . net de cotisations - dirigeant . auto-entrepreneur . net après impôt . impôt - - dirigeant . auto-entrepreneur . net après impôt questions: à l'affiche: diff --git a/mon-entreprise/source/pages/Simulateurs/metadata.tsx b/mon-entreprise/source/pages/Simulateurs/metadata.tsx index 7e2220c31..1efbf81e0 100644 --- a/mon-entreprise/source/pages/Simulateurs/metadata.tsx +++ b/mon-entreprise/source/pages/Simulateurs/metadata.tsx @@ -1,7 +1,6 @@ import RuleLink from 'Components/RuleLink' import SimulateurWarning from 'Components/SimulateurWarning' import Simulation from 'Components/Simulation' -import AutoEntrepreneurExplanation from 'Components/simulationExplanation/AutoEntrepreneurExplanation' import SalaryExplanation from 'Components/simulationExplanation/SalaryExplanation' import Emoji from 'Components/utils/Emoji' import { SitePathsContext } from 'Components/utils/SitePathsContext' @@ -12,7 +11,9 @@ import { constructLocalizedSitePath } from '../../sitePaths' import { RessourceAutoEntrepreneur } from '../Créer/CreationChecklist' import AideDéclarationIndépendant from '../Gérer/AideDéclarationIndépendant' import FormulaireMobilitéIndépendant from '../Gérer/DemandeMobilite' +import AidesEmbauche from './AidesEmbauche' import ArtisteAuteur from './ArtisteAuteur' +import AutoEntrepreneur from './AutoEntrepreneur' import ChômagePartielComponent from './ChômagePartiel' import autoEntrepreneurConfig from './configs/auto-entrepreneur.yaml' import chômageParielConfig from './configs/chômage-partiel.yaml' @@ -24,19 +25,18 @@ import AutoEntrepreneurPreview from './images/AutoEntrepreneurPreview.png' import ChômagePartielPreview from './images/ChômagePartielPreview.png' import urlIllustrationNetBrutEn from './images/illustration-net-brut-en.png' import urlIllustrationNetBrut from './images/illustration-net-brut.png' +import logoFranceRelance from './images/logo-france-relance.svg' import RémunérationSASUPreview from './images/RémunérationSASUPreview.png' import salaireBrutNetPreviewEN from './images/SalaireBrutNetPreviewEN.png' import salaireBrutNetPreviewFR from './images/SalaireBrutNetPreviewFR.png' -import logoFranceRelance from './images/logo-france-relance.svg' -import PAMCHome from './PAMCHome' import IndépendantSimulation, { IndépendantPLSimulation, } from './IndépendantSimulation' -import SalariéSimulation from './SalariéSimulation' import ISSimulation from './ISSimulation' +import PAMCHome from './PAMCHome' +import SalariéSimulation from './SalariéSimulation' import SchemeComparaisonPage from './SchemeComparaison' import ÉconomieCollaborative from './ÉconomieCollaborative' -import AidesEmbauche from './AidesEmbauche' const simulateurs = [ 'salarié', @@ -215,14 +215,7 @@ export function getSimulatorsData({ 'Auto-entrepreneurs : simulateur de revenus' ), }, - component: function AutoEntrepreneurSimulation() { - return ( - <> - - } /> - - ) - }, + component: AutoEntrepreneur, path: sitePaths.simulateurs['auto-entrepreneur'], shortName: t( 'pages.simulateurs.auto-entrepreneur.shortname',