pull/2782/head
Johan Girod 2023-06-19 12:41:14 +02:00
parent f2fca74851
commit 88ec1cc2f6
12 changed files with 137 additions and 173 deletions

View File

@ -5,6 +5,11 @@ entreprise . associés:
possibilités:
- unique
- multiples
non applicable si:
une de ces conditions:
- entreprise . catégorie juridique = 'EI'
- entreprise . catégorie juridique = 'association'
- entreprise . catégorie juridique = 'autre'
description: |
Si vous êtes le seul associé de votre société, alors vous êtes dans le cas d'une « société unipersonnelle ».
@ -46,9 +51,7 @@ entreprise . catégorie juridique . EI:
code insee: 1000
titre: Entreprise individuelle (y compris auto-entrepreneurs)
valeur: catégorie juridique = 'EI'
remplace:
règle: associés
par: "'unique'"
avec:
auto-entrepreneur:
acronyme: AE

View File

@ -1,6 +1,6 @@
import { TFunction } from 'i18next'
import getSimulationData from '../../source/pages/simulateurs/metadata-src.js'
import getSimulationData from '../../source/pages/simulateurs-et-assistants/metadata-src.js'
import { absoluteSitePaths } from '../../source/sitePaths.js'
export default getSimulationData({

View File

@ -3,7 +3,7 @@ import dotenv from 'dotenv'
import rawRules from 'modele-social'
import Engine, { ParsedRules } from 'publicodes'
import { MetadataSrc } from '@/pages/simulateurs/metadata-src'
import { MetadataSrc } from '@/pages/simulateurs-et-assistants/metadata-src'
dotenv.config()

View File

@ -1,7 +1,7 @@
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import getMetadataSrc from '@/pages/simulateurs/metadata-src'
import getMetadataSrc from '@/pages/simulateurs-et-assistants/metadata-src'
import { useSitePaths } from '@/sitePaths'
export type SimulatorData = ReturnType<typeof getMetadataSrc>

View File

@ -12,7 +12,7 @@ export default function Navigation({
currentStepIsComplete,
nextStepLabel,
onNextStep,
onPreviousStep,
onPreviousStep, // TODO : prefer resetOnLeave
assistantIsCompleted = false,
}: {
currentStepIsComplete: boolean

View File

@ -34,7 +34,6 @@ export function useNextStep() {
const nextStep =
stepOrder[currentStep ? stepOrder.indexOf(currentStep) + 1 : 0]
console.log('huihuihi', nextStep)
return absoluteSitePaths.assistants['choix-du-statut'][nextStep]
}

View File

@ -1,132 +0,0 @@
import { Trans, useTranslation } from 'react-i18next'
import { TrackPage } from '@/components/ATInternetTracking'
import { FromBottom } from '@/components/ui/animate'
import DefaultHelmet from '@/components/utils/DefaultHelmet'
import { ScrollToTop } from '@/components/utils/Scroll'
import { H1, H2 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
import { Body } from '@/design-system/typography/paragraphs'
import { useSitePaths } from '@/sitePaths'
import siret from './siret.png'
export default function AfterRegistration() {
const { absoluteSitePaths } = useSitePaths()
// const statutChoisi = useSelector(
// (state: RootState) => state.choixStatutJuridique.companyStatusChoice
// )
const { t } = useTranslation()
// const isAutoentrepreneur = statutChoisi?.match('auto-entrepreneur')
return (
<FromBottom>
<DefaultHelmet>
<title>Après la création de votre entreprise</title>
</DefaultHelmet>
<ScrollToTop />
<TrackPage name="apres_la_creation" />
<Link
noUnderline
to={absoluteSitePaths.assistants['choix-du-statut'].index}
>
<span aria-hidden></span> <Trans>Retour à la création</Trans>
</Link>
<H1>
<Trans i18nKey="après.titre">Après la création</Trans>
</H1>
<Body>
<Trans i18nKey="après.intro">
Une fois votre{' '}
{{
statutChoisi:
// isAutoentrepreneur
// ? t('auto-entreprise')
// : statutChoisi ||
t('après.entreprise', { defaultValue: 'entreprise' }),
}}{' '}
créée, vous recevez les informations suivantes :
</Trans>
</Body>
<H2>
<Trans i18nKey="après.siret.titre">Le numéro SIRET</Trans>
</H2>
<Body>
<Trans i18nKey="après.siret.description">
Le numéro SIREN <strong>est l'identifiant de votre entreprise</strong>{' '}
tandis que le numéro SIRET identifie chaque établissement de la même
entreprise. Le SIRET commence par le SIREN, auquel on ajoute le numéro
d'établissement (NIC).
</Trans>
<br />
<img
src={siret}
alt=""
style={{ maxWidth: '100%', filter: 'contrast(0.8) brightness(0.6)' }}
/>
</Body>
<H2>
<Trans i18nKey="après.ape.titre">Le code APE</Trans>
</H2>
<Body as="div">
<Trans i18nKey="après.ape.description">
Le code APE correspond au <strong>secteur d'activité</strong> de votre
entreprise. Il classifie la branche principale de votre entreprise
dans la nomenclature nationale d'activités françaises « NAF » (
<Link
href="https://www.insee.fr/fr/metadonnees/nafr2/section/A?champRecherche=false"
aria-label="voir la liste, nouvelle fenêtre"
>
voir la liste
</Link>
).{' '}
<span
// style={
// statutChoisi && /auto-entrepreneur|EI/.exec(statutChoisi)
// ? { display: 'none' }
// : {}
// }
>
Il détermine aussi la convention collective applicable à
l'entreprise, et en partie le taux de la cotisation accidents du
travail et maladies professionnelles à payer.
</span>
<p>
En cas de code APE erroné, vous pouvez{' '}
<Link
href="https://www.insee.fr/fr/information/2015441"
aria-label="demander une modification, nouvelle fenêtre"
>
demander une modification
</Link>{' '}
à l'INSEE.
</p>
</Trans>
</Body>
<H2>
<Trans i18nKey="après.kbis.titre">Le Kbis</Trans>
</H2>
<Body>
<Trans i18nKey="après.kbis.description.1">
C'est le document officiel qui atteste de{' '}
<strong>l'existence légale d'une entreprise commerciale</strong>. Le
plus souvent, pour être valable par les procédures administratives, il
doit dater de moins de 3 mois.{' '}
<Link
href="https://www.service-public.fr/professionnels-entreprises/vosdroits/F21000"
aria-label="Plus d'infos, voir plus d'informations sur service-public.fr, nouvelle fenêtre"
>
Plus d'infos.
</Link>
</Trans>
</Body>
<Body>
<Trans i18nKey="après.kbis.description.2">
Ce document est généralement demandé lors de la candidature à un appel
d'offre public, de l'ouverture d'un compte bancaire, d'achats
d'équipement professionnel auprès de fournisseurs, etc.
</Trans>
</Body>
</FromBottom>
)
}

View File

@ -65,7 +65,7 @@ export default function Association() {
<RadioCard
value={'non-lucratif'}
label={
<Trans i18nKey="choix-statut.association.question.gagner-argent">
<Trans i18nKey="choix-statut.association.question.non-lucratif">
Dans un but <Strong>non lucratif</Strong>
</Trans>
}

View File

@ -1,12 +1,109 @@
import { H1 } from '@/design-system/typography/heading'
import { useState } from 'react'
import { Trans, useTranslation } from 'react-i18next'
import { useDispatch } from 'react-redux'
import { useEngine } from '@/components/utils/EngineContext'
import { RadioCard, RadioCardGroup } from '@/design-system'
import { HelpButtonWithPopover } from '@/design-system/buttons'
import { Strong } from '@/design-system/typography'
import { Body } from '@/design-system/typography/paragraphs'
import { deleteFromSituation, updateSituation } from '@/store/actions/actions'
import Layout from './_components/Layout'
import Navigation from './_components/Navigation'
export default function Associé() {
export default function Associés() {
const { t } = useTranslation()
const [currentSelection, setCurrentSelection, reset] = useAssociésSelection()
return (
<>
<H1>Associé</H1>
<Navigation currentStepIsComplete />
<Layout
title={
<Trans i18nKey="choix-statut.associés.title">
Je gère cette entreprise...
<HelpButtonWithPopover
title={t(
'choix-statut.associés.help.title',
'Être associé(e) ou actionnaire'
)}
type="info"
>
<Body>
Vous{' '}
<Strong>
partagez la propriété de votre entreprise avec dautres
personnes qui peuvent être physiques (individus) ou morales
(sociétés)
</Strong>
. Dans le cas des <Strong>sociétés par actions</Strong> (SASU,
SAS), on parle d<Strong>actionnaires</Strong>.
</Body>
</HelpButtonWithPopover>
</Trans>
}
>
<RadioCardGroup
aria-label={t(
'choix-statut.associés.question',
'Comment gérez-vous cette entreprise ?'
)}
onChange={setCurrentSelection}
value={currentSelection}
>
<RadioCard
value={"'unique'"}
label={
<Trans i18nKey="choix-statut.associés.question.seul">Seul</Trans>
}
>
<Body></Body>
</RadioCard>
<RadioCard
value={"'multiples'"}
label={
<Trans i18nKey="choix-statut.associés.question.plusieurs">
À plusieurs
</Trans>
}
/>
</RadioCardGroup>
<Navigation
currentStepIsComplete={currentSelection !== undefined}
onPreviousStep={reset}
/>
</Layout>
</>
)
}
type RadioOption = "'unique'" | "'multiples'" | undefined
function useAssociésSelection(): [
RadioOption,
(value: RadioOption) => void,
() => void
] {
const associés = useEngine().evaluate('entreprise . associés').nodeValue as
| RadioOption
| undefined
console.log(
useEngine().evaluate('entreprise . associés'),
useEngine().evaluate('entreprise . catégorie juridique')
)
const [currentSelection, setCurrentSelection] =
useState<RadioOption>(associés)
const dispatch = useDispatch()
const handleChange = (value: RadioOption) => {
setCurrentSelection(value)
dispatch(updateSituation('entreprise . associés', value))
}
const reset = () => {
setCurrentSelection(undefined)
dispatch(deleteFromSituation('entreprise . associés'))
}
return [currentSelection, handleChange, reset]
}

View File

@ -3,7 +3,6 @@ import { Route, Routes, useLocation } from 'react-router-dom'
import { ScrollToTop } from '@/components/utils/Scroll'
import { useSitePaths } from '@/sitePaths'
import AfterRegistration from './après'
import Association from './association'
import Associé from './associé'
import Commune from './commune'
@ -24,7 +23,6 @@ export default function ChoixDuStatut() {
<ScrollToTop key={location.pathname} />
<Routes>
<Route index element={<AccueilChoixStatut />} />
<Route path={childrenPaths.après} element={<AfterRegistration />} />
<Route
path={childrenPaths['recherche-activité']}
element={<RechercheActivité />}

View File

@ -7,30 +7,30 @@ import { demandeMobilitéConfig } from '../assistants/demande-mobilité/config'
import { économieCollaborativeConfig } from '../assistants/économie-collaborative/config'
import { pourMonEntrepriseConfig } from '../assistants/pour-mon-entreprise/config'
import { rechercheCodeApeConfig } from '../assistants/recherche-code-ape/config'
import { PageConfig, SimulatorsDataParams } from './_configs/types'
import { artisteAuteurConfig } from './artiste-auteur/config'
import { autoEntrepreneurConfig } from './auto-entrepreneur/config'
import { auxiliaireMédicalConfig } from './auxiliaire-médical/config'
import { avocatConfig } from './avocat/config'
import { chirurgienDentisteConfig } from './chirurgien-dentiste/config'
import { chômagePartielConfig } from './chômage-partiel/config'
import { cipavConfig } from './cipav/config'
import { comparaisonStatutsConfig } from './comparaison-statuts/config'
import { coûtCréationEntrepriseConfig } from './cout-creation-entreprise/config.js'
import { dividendesConfig } from './dividendes/config'
import { eirlConfig } from './eirl/config'
import { entrepriseIndividuelleConfig } from './entreprise-individuelle/config'
import { eurlConfig } from './eurl/config'
import { expertComptableConfig } from './expert-comptable/config'
import { impôtSociétéConfig } from './impot-societe/config'
import { indépendantConfig } from './indépendant/config'
import { médecinConfig } from './médecin/config'
import { pamcConfig } from './pamc/config'
import { pharmacienConfig } from './pharmacien/config'
import { professionLibéraleConfig } from './profession-libérale/config'
import { sageFemmeConfig } from './sage-femme/config'
import { salariéConfig } from './salarié/config'
import { sasuConfig } from './sasu/config'
import { PageConfig, SimulatorsDataParams } from '../simulateurs/_configs/types'
import { artisteAuteurConfig } from '../simulateurs/artiste-auteur/config'
import { autoEntrepreneurConfig } from '../simulateurs/auto-entrepreneur/config'
import { auxiliaireMédicalConfig } from '../simulateurs/auxiliaire-médical/config'
import { avocatConfig } from '../simulateurs/avocat/config'
import { chirurgienDentisteConfig } from '../simulateurs/chirurgien-dentiste/config'
import { chômagePartielConfig } from '../simulateurs/chômage-partiel/config'
import { cipavConfig } from '../simulateurs/cipav/config'
import { comparaisonStatutsConfig } from '../simulateurs/comparaison-statuts/config'
import { coûtCréationEntrepriseConfig } from '../simulateurs/cout-creation-entreprise/config.js'
import { dividendesConfig } from '../simulateurs/dividendes/config'
import { eirlConfig } from '../simulateurs/eirl/config'
import { entrepriseIndividuelleConfig } from '../simulateurs/entreprise-individuelle/config'
import { eurlConfig } from '../simulateurs/eurl/config'
import { expertComptableConfig } from '../simulateurs/expert-comptable/config'
import { impôtSociétéConfig } from '../simulateurs/impot-societe/config'
import { indépendantConfig } from '../simulateurs/indépendant/config'
import { médecinConfig } from '../simulateurs/médecin/config'
import { pamcConfig } from '../simulateurs/pamc/config'
import { pharmacienConfig } from '../simulateurs/pharmacien/config'
import { professionLibéraleConfig } from '../simulateurs/profession-libérale/config'
import { sageFemmeConfig } from '../simulateurs/sage-femme/config'
import { salariéConfig } from '../simulateurs/salarié/config'
import { sasuConfig } from '../simulateurs/sasu/config'
/**
* Contient l'intégralité des données concernant les différents simulateurs et assistants

View File

@ -1,6 +1,6 @@
import { useTranslation } from 'react-i18next'
import { MetadataSrc } from '@/pages/simulateurs/metadata-src'
import { MetadataSrc } from '@/pages/simulateurs-et-assistants/metadata-src'
const rawSitePathsFr = {
index: '',
@ -37,7 +37,6 @@ const rawSitePathsFr = {
rémunération: 'remuneration',
statuts: 'statuts',
résultat: 'resultat',
après: 'apres-la-création',
},
},
simulateurs: {