Ajoute un avertissement pour les cas exclus de l'assistant statut
- Gestion de bien - PLR - Entreprises agricoles ...pull/2782/head
parent
1d2652b2d5
commit
03cb5d43fd
|
@ -87,6 +87,9 @@ entreprise . activité . nature:
|
|||
## | New activité modèle |
|
||||
## =======================
|
||||
|
||||
# Ce nouveau modèle gère la pluri activité (contrairement à l'ancien). Il est utilisé dans le simulateur de coût de création.
|
||||
# Dans le futur, il faudrait migrer les autres simulateurs pour ne plus utiliser que ce nouveau modèle
|
||||
|
||||
entreprise . activités:
|
||||
experimental: oui
|
||||
titre: nature de l'activité
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
import { Message } from '@/design-system'
|
||||
import { H3 } from '@/design-system/typography/heading'
|
||||
import { Intro } from '@/design-system/typography/paragraphs'
|
||||
|
||||
import { GuichetEntry } from '../../recherche-code-ape/GuichetInfo'
|
||||
|
||||
export function estNonDisponible(guichet: GuichetEntry): boolean {
|
||||
return (
|
||||
!!guichet.caisseDeRetraiteSpéciale ||
|
||||
guichet.artisteAuteurPossible ||
|
||||
guichet.affiliationPrincipale === 'MSA' ||
|
||||
guichet.catégorieActivité === 'AGENT_COMMERCIAL' ||
|
||||
guichet.catégorieActivité === 'GESTION_DE_BIENS'
|
||||
)
|
||||
}
|
||||
|
||||
export function AvertissementActivitéNonDisponible({
|
||||
guichet,
|
||||
}: {
|
||||
guichet: GuichetEntry | undefined
|
||||
}) {
|
||||
if (!guichet || !estNonDisponible(guichet)) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Message type="info">
|
||||
<H3>
|
||||
Cet assistant ne propose pas encore d'aide pour les{' '}
|
||||
{guichet.artisteAuteurPossible ? (
|
||||
<>artistes-auteurs</>
|
||||
) : guichet.caisseDeRetraiteSpéciale ? (
|
||||
<>professions libérales réglementées</>
|
||||
) : guichet.affiliationPrincipale === 'MSA' ? (
|
||||
<>entreprises agricoles</>
|
||||
) : guichet.catégorieActivité === 'AGENT_COMMERCIAL' ? (
|
||||
<>agents commerciaux</>
|
||||
) : (
|
||||
<>locations de biens</>
|
||||
)}
|
||||
</H3>
|
||||
<Intro>
|
||||
Pour plus d'informations relatives à votre situation, vous pouvez
|
||||
consulter les sites entreprendre.service-public.fr, urssaf.fr et
|
||||
bpifrance-création.fr
|
||||
</Intro>
|
||||
</Message>
|
||||
</>
|
||||
)
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import { Grid } from '@/design-system/layout'
|
||||
import { H3 } from '@/design-system/typography/heading'
|
||||
|
||||
import StatutsDisponibles from './StatutsDisponibles'
|
||||
import StatutsPossibles from './StatutsPossibles'
|
||||
|
||||
export default function Layout({
|
||||
title,
|
||||
|
@ -18,7 +18,7 @@ export default function Layout({
|
|||
{children}
|
||||
</Grid>
|
||||
<Grid item sm={12} md={5} lg={4}>
|
||||
<StatutsDisponibles />
|
||||
<StatutsPossibles />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</>
|
||||
|
|
|
@ -19,12 +19,14 @@ export default function Navigation({
|
|||
onNextStep,
|
||||
onPreviousStep, // TODO : prefer resetOnLeave
|
||||
assistantIsCompleted = false,
|
||||
children,
|
||||
}: {
|
||||
currentStepIsComplete: boolean
|
||||
nextStepLabel?: false | string
|
||||
onNextStep?: () => void
|
||||
onPreviousStep?: () => void
|
||||
assistantIsCompleted?: false | Statuts
|
||||
children?: React.ReactNode
|
||||
}) {
|
||||
const { t } = useTranslation()
|
||||
const nextStep = useNextStep()
|
||||
|
@ -39,6 +41,11 @@ export default function Navigation({
|
|||
<Spacing xs />
|
||||
<StyledNavigation>
|
||||
<Grid container spacing={2}>
|
||||
{children && (
|
||||
<Grid item xs={12}>
|
||||
{children}
|
||||
</Grid>
|
||||
)}
|
||||
<Grid item>
|
||||
<Button
|
||||
light
|
||||
|
|
|
@ -10,7 +10,7 @@ import { H5 } from '@/design-system/typography/heading'
|
|||
import { Li, Ul } from '@/design-system/typography/list'
|
||||
import { SmallBody } from '@/design-system/typography/paragraphs'
|
||||
|
||||
export default function StatutsDisponibles() {
|
||||
export default function StatutsPossibles() {
|
||||
const engine = useEngine()
|
||||
const statuts = [
|
||||
'entreprise . catégorie juridique . EI . EI',
|
|
@ -3,7 +3,6 @@ import { Trans, useTranslation } from 'react-i18next'
|
|||
import { useDispatch } from 'react-redux'
|
||||
|
||||
import { FromTop } from '@/components/ui/animate'
|
||||
import { useEngine } from '@/components/utils/EngineContext'
|
||||
import { usePersistingState } from '@/components/utils/persistState'
|
||||
import {
|
||||
Message,
|
||||
|
@ -115,7 +114,7 @@ export default function Associés() {
|
|||
</Message>
|
||||
</FromTop>
|
||||
)}
|
||||
{question2 === 'non' && (
|
||||
{question2 === 'non' && question1 === 'seul' && (
|
||||
<FromTop>
|
||||
<Spacing md />
|
||||
<Message type="secondary" border={false}>
|
||||
|
@ -163,6 +162,21 @@ export default function Associés() {
|
|||
</Message>
|
||||
</FromTop>
|
||||
)}
|
||||
{question1 === 'plusieurs' && (
|
||||
<FromTop>
|
||||
<Spacing lg />
|
||||
<Message type="info" icon>
|
||||
<Body>
|
||||
<Trans i18nKey="choix-statut.associés.plusieurs.avertissement">
|
||||
Cet assistant ne gère pas encore le cas des gérant associés
|
||||
égalitaire ou minoritaire. Il s'adresse uniquement aux
|
||||
personnes possédant <Strong>au minimum 51 % des parts</Strong>{' '}
|
||||
de leur entreprise.
|
||||
</Trans>
|
||||
</Body>
|
||||
</Message>
|
||||
</FromTop>
|
||||
)}
|
||||
|
||||
<Navigation currentStepIsComplete={isComplete} onPreviousStep={reset} />
|
||||
</Layout>
|
||||
|
@ -220,13 +234,9 @@ function useAssociésSelection(): [
|
|||
}
|
||||
|
||||
const isComplete =
|
||||
useEngine().evaluate({
|
||||
'toutes ces conditions': [
|
||||
{ 'est défini': 'entreprise . associés' },
|
||||
{ 'est défini': 'entreprise . catégorie juridique . EI' },
|
||||
{ 'est défini': 'entreprise . catégorie juridique . SARL . EURL' },
|
||||
],
|
||||
}).nodeValue === true
|
||||
state.question1 === 'plusieurs' ||
|
||||
state.question2 === 'oui' ||
|
||||
!!state.question3
|
||||
|
||||
return [state, handleChange, reset, isComplete]
|
||||
}
|
||||
|
|
|
@ -22,6 +22,10 @@ import {
|
|||
GuichetEntry,
|
||||
useGuichetInfo,
|
||||
} from '../recherche-code-ape/GuichetInfo'
|
||||
import {
|
||||
AvertissementActivitéNonDisponible,
|
||||
estNonDisponible,
|
||||
} from './_components/ActivitéNonDisponible'
|
||||
import Layout from './_components/Layout'
|
||||
import Navigation from './_components/Navigation'
|
||||
|
||||
|
@ -53,7 +57,9 @@ export default function DétailsActivité() {
|
|||
setCodeGuichet(defaultCodeGuichet)
|
||||
}
|
||||
}, [guichetEntries])
|
||||
|
||||
const guichet = guichetEntries?.find(
|
||||
(guichet) => guichet.code === codeGuichet
|
||||
)
|
||||
// Wait for the update to be done before rendering the component
|
||||
const isIdle = useEngineIsIdle()
|
||||
|
||||
|
@ -91,12 +97,14 @@ export default function DétailsActivité() {
|
|||
/>
|
||||
)}
|
||||
<Navigation
|
||||
currentStepIsComplete={!!codeGuichet}
|
||||
currentStepIsComplete={!!codeGuichet && !estNonDisponible(guichet)}
|
||||
nextStepLabel={
|
||||
guichetEntries?.length === 1 &&
|
||||
t('créer.activité-détails.next1', 'Continuer avec cette activité')
|
||||
}
|
||||
/>
|
||||
>
|
||||
<AvertissementActivitéNonDisponible guichet={guichet} />
|
||||
</Navigation>
|
||||
</Layout>
|
||||
</>
|
||||
)
|
||||
|
@ -139,7 +147,9 @@ function GuichetSelection({
|
|||
|
||||
return (
|
||||
<>
|
||||
<Body>Sectionnez la description d'activité qui correspond le mieux.</Body>
|
||||
<Body>
|
||||
Selectionnez la description d'activité qui correspond le mieux.
|
||||
</Body>
|
||||
{showCCIOrCMAHelp && (
|
||||
<Message>
|
||||
<Body>
|
||||
|
@ -203,7 +213,7 @@ function useUpdateSituationWithGuichet(guichetEntries: GuichetEntry[] | null) {
|
|||
'entreprise . activités . agricole': undefined,
|
||||
'entreprise . activités . commerciale': undefined,
|
||||
'entreprise . activité . nature': undefined,
|
||||
|
||||
'artiste-auteur': undefined,
|
||||
'entreprise . activité . nature . libérale . réglementée':
|
||||
undefined,
|
||||
'dirigeant . indépendant . PL . métier': undefined,
|
||||
|
@ -228,6 +238,7 @@ function useUpdateSituationWithGuichet(guichetEntries: GuichetEntry[] | null) {
|
|||
? 'oui'
|
||||
: 'non',
|
||||
'dirigeant . indépendant . PL . métier': PLRMétier,
|
||||
'artiste-auteur': guichet.artisteAuteurPossible ? 'oui' : 'non',
|
||||
})
|
||||
)
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue