WIP 👽 Liste de tâches pour la création

Reste le corps des tâches
pull/418/head
Mael 2018-11-02 11:42:54 +00:00 committed by Johan Girod
parent cd6e43e2ad
commit 9efb98e3f1
10 changed files with 231 additions and 129 deletions

View File

@ -47,7 +47,7 @@ const AnswerList = ({
<p style={{ textAlign: 'center' }}>
{emoji('🗑')}{' '}
<button className="ui__ link-button" onClick={resetSimulation}>
<Trans>Tout supprimer</Trans>
<Trans>Effacer</Trans>
</button>
</p>
<table>

View File

@ -1,16 +1,22 @@
/* @flow */
import * as React from 'react'
import { React, T } from 'Components'
import type { ElementConfig } from 'react'
import './button.css'
export const SkipButton = (props: React.ElementConfig<'button'>) => (
export const SkipButton = (props: ElementConfig<'button'>) => (
<button {...props} className={'ui__ skip-button ' + props.className}>
{props.children || 'Skip '}
{props.children || (
<>
<T>Passer</T>
</>
)}
</button>
)
export const LinkButton = (props: React.ElementConfig<'button'>) => (
export const LinkButton = (props: ElementConfig<'button'>) => (
<button {...props} className={'ui__ link-button ' + props.className} />
)
export const Button = (props: React.ElementConfig<'button'>) => (
export const Button = (props: ElementConfig<'button'>) => (
<button {...props} className={'ui__ button ' + props.className} />
)

View File

@ -139,7 +139,7 @@ A quoi servent mes cotisations ?: What's included in my contributions?
Simulation personnalisée: Custom simulation
Faire une simulation personnalisée: Do a customized simulation
custom-simulation: This is currently a <1>rough estimate</1> based on a generic contract. French legislation provides for a multitude of special cases and specific rules which considerably modify the costs of recruitment.
Effacer: Erase
Effacer: Reset
Continuer: Continue
CDI: Permanent
CDD: Fixed-term
@ -209,6 +209,7 @@ Taux final: Final rate
Créez votre entreprise: Start your business in France
subtitle: The ultimate how-to guide, from incorporation to hiring.
Commencer: Get started
Passer: Skip
accueil:
entreprise:
titre: Your new company
@ -230,25 +231,52 @@ piedDePage: This website is provided by the <1>URSSAF</1>, the French social sec
entreprise:
existeDéjà: My company is already registered with the French Administration
tâches:
intro: This checklist will guide you throughout all the necessary steps to register your
titre1: Needed for registration
nom:
titre: Find a corporate name
objetSocial:
titre: Write the corporate purpose of the company
adresse:
titre: Find an address to incorporate the company
statuts:
titre: Write the company's articles
banque:
titre: Open a business bank account
capital:
titre: Deposit capital funds
journal:
titre: Publish a notice of creation in a newspaper
formulaire:
titre: Register your company online
titre2: Recommended before starting your activity
comptable:
titre: Choose a certified accountant
assurance:
titre: Check out the need for professional insurance
avancement: Use these lists to track down your advancement in the business creation process. It is automatically saved in your browser.
retour: Choose another status
ensuite: After registration
formeJuridique:
incertain: Not sure about this status? Take our guide to help you choose
intro: "The French business law defines more than 20 possible legal statuses to declare a company with various acronyms and processes : SAS, SARL, SA, EIRL... This guide will help you find quickly the right status for your needs."
EI: Also called company in own name or company in a personal name. No capital contribution is necessary. Private wealth and corporate wealth are one.
EIRL: Allows you to protect your personal assets by assigning a specific heritage to your professional activity.
EURL: Companies with EURL status only have one partner. Liability is limited to the amount of the unique partner's contribution to the capital.
SARL: Composed of at least 2 partners whose financial responsibility is limited to the amount of their contribution to the company's capital. The minimum capital is freely fixed in the articles of association.
SAS: Société ayant au moins 2 associés. La responsabilité financière des associés est limitée au montant de leur apport au capital de la société. Le capital minimum est fixé librement dans les statuts.
SASU: Composed of only one associate. The financial responsibility is limited to the amount of his contribution to the company's capital. The minimum capital is freely fixed in the statutes.
SA: Composed of at least 2 shareholders. This is the only status that allows you to be listed on the stock exchange (from 7 shareholders). The minimum share capital is €37.000.
SNC: The liability of the partners for the debts of the company is unified (one partner only can be sued for the entire debt) and indefinite (responsible on the entirety of their personnal wealth).
micro: The micro-enterprise is a sole proprietorship company, subject to a flat-rate scheme for the calculation of taxes and the payment of social security contributions.
intro: "The French business law defines more than 20 possible legal statuses to declare a company with various acronyms and processes : SAS, SARL, SA, EIRL... This guide will help you find quickly the right status for your needs."
EI: Also called company in own name or company in a personal name. No capital contribution is necessary. Private wealth and corporate wealth are one.
EIRL: Allows you to protect your personal assets by assigning a specific heritage to your professional activity.
EURL: Companies with EURL status only have one partner. Liability is limited to the amount of the unique partner's contribution to the capital.
SARL: Composed of at least 2 partners whose financial responsibility is limited to the amount of their contribution to the company's capital. The minimum capital is freely fixed in the articles of association.
SAS: Société ayant au moins 2 associés. La responsabilité financière des associés est limitée au montant de leur apport au capital de la société. Le capital minimum est fixé librement dans les statuts.
SASU: Composed of only one associate. The financial responsibility is limited to the amount of his contribution to the company's capital. The minimum capital is freely fixed in the statutes.
SA: Composed of at least 2 shareholders. This is the only status that allows you to be listed on the stock exchange (from 7 shareholders). The minimum share capital is €37.000.
SNC: The liability of the partners for the debts of the company is unified (one partner only can be sued for the entire debt) and indefinite (responsible on the entirety of their personnal wealth).
micro: The micro-enterprise is a sole proprietorship company, subject to a flat-rate scheme for the calculation of taxes and the payment of social security contributions.
Votre forme juridique: Your legal status
Créer une: Create a
Choisir la forme juridique: Choose your legal status
Passer: Do it later
Plus tard: Do it later
Responsabilité de l'entreprise: Liability
responsabilité:
@ -260,4 +288,22 @@ responsabilité:
3: "<0>Limited liability</0>: A corporate structure whereby the
company members cannot be held personally liable for the company's debts or liabilities. However, it's heavier to set up,
and you need to provide an initial capital."
bouton1: Sole proprietorship
bouton2: Unlimited liability
bouton3: Limited liability
associés:
titre: Number of associates
description: If your company only has one associate, the administrative process is easier.
choix1: Only one associate
choix2: More than one associate
trouver:
titre: Find your company
non: I don't have a company yet
description: Thanks to the SIREN database, the public information of your company will be used automatically in the next steps.
Entrez le nom de votre société: Type your company name
Nous n'avons rien trouvé: We didn't find any matching registered company.
Recherche en cours...: Searching...

View File

@ -29,7 +29,8 @@ const CreateCompany = ({
onChecklistInitialization,
onItemCheck,
companyCreationChecklist,
onStatusChange
onStatusChange,
t
}: Props) => {
const status = match.params.status
if (!match.params.status) {
@ -66,10 +67,15 @@ const CreateCompany = ({
</>
)}
<p>
This checklist will guide you throughout all the necessary steps to
register your {match.params.status}.
<T k="entreprise.tâches.intro">
Voici la liste des tâches nécessaires pour créer votre
</T>
&nbsp;
{match.params.status}.
</p>
<h2 style={{ fontSize: '1.5rem' }}>Needed for registration</h2>
<h2 style={{ fontSize: '1.5rem' }}>
<T k="entreprise.tâches.titre1">Pour créer votre société</T>
</h2>
<Checklist
key={match.params.status}
onInitialization={items =>
@ -80,7 +86,9 @@ const CreateCompany = ({
{!['EI', 'EIRL', 'micro-enterprise'].includes(status) && (
<CheckItem
name="corporateName"
title="Find a corporate name"
title={
<T k="entreprise.tâches.nom.titre">Trouver un nom d'entreprise</T>
}
explanations={
<>
<p>
@ -102,7 +110,11 @@ const CreateCompany = ({
)}
<CheckItem
name="corporatePurpose"
title="Write the corporate purpose of the company"
title={
<T k="entreprise.tâches.objetSocial.titre">
Déterminer l'objet social
</T>
}
explanations={
<p>
<strong>The corporate purpose of the company</strong> ("objet
@ -114,7 +126,11 @@ const CreateCompany = ({
{status !== 'micro-enterprise' && (
<CheckItem
name="companyAddress"
title="Find an address to incorporate the company"
title={
<T k="entreprise.tâches.adresse.titre">
Choisir une adresse pour le siège
</T>
}
explanations={
<>
<p>
@ -133,7 +149,9 @@ const CreateCompany = ({
{!['EI', 'EIRL', 'micro-enterprise'].includes(status) && (
<CheckItem
name="companyStatus"
title="Write the company's articles"
title={
<T k="entreprise.tâches.statuts.titre">Écrire les statuts</T>
}
explanations={
<p>
<strong>The company's articles of association</strong> ( "les
@ -157,7 +175,9 @@ const CreateCompany = ({
)}
<CheckItem
name="openBankAccount"
title="Open a business bank account"
title={
<T k="entreprise.tâches.banque.titre">Ouvrir un compte bancaire</T>
}
explanations={
<>
<p>
@ -180,7 +200,7 @@ const CreateCompany = ({
{!['EI', 'EIRL', 'micro-enterprise'].includes(status) && (
<CheckItem
name="fundsDeposit"
title="Deposit capital funds"
title={<T k="entreprise.tâches.dépôt.titre">Déposer le capital</T>}
explanations={
<>
<p>
@ -205,8 +225,12 @@ const CreateCompany = ({
)}
{!['EI', 'EIRL', 'micro-enterprise'].includes(status) && (
<CheckItem
title={
<T k="entreprise.tâches.journal.titre">
Publier une annonce de création dans un journal
</T>
}
name="publishCreationNotice"
title="Publish a notice of creation in a newspaper"
explanations={
<>
<p>
@ -245,7 +269,11 @@ const CreateCompany = ({
<CheckItem
name="registerCompanyOnline"
title="Register your company online"
title={
<T k="entreprise.tâches.formulaire.titre">
Créer l'entreprise en ligne
</T>
}
explanations={
<>
<p>
@ -265,14 +293,20 @@ const CreateCompany = ({
/>
</Checklist>
<h2 style={{ fontSize: '1.5rem' }}>
Recommended before starting your activity
<T k="entreprise.tâches.titre2">
Recommandées avant le début de l'activité
</T>
</h2>
<Checklist>
{status !== 'micro-enterprise' && (
<CheckItem
name="chooseCertifiedAccountant"
title="Choose a certified accountant"
title={
<T k="entreprise.tâches.comptable.titre">
Choisir un comptable certifié
</T>
}
explanations={
<p>
Managing a company brings a number of{' '}
@ -287,7 +321,11 @@ const CreateCompany = ({
)}
<CheckItem
name="checkoutProfessionalAssuranceNeeds"
title="Check out the need for professional insurance"
title={
<T k="entreprise.tâches.assurance.titre">
Jugez de la nécessité de prendre une assurance
</T>
}
explanations={
<>
<p>
@ -307,15 +345,17 @@ const CreateCompany = ({
/>
</Checklist>
<p className="ui__ notice">
You can use these lists to track down your advancement in the business
creation process. This page automatically saves your progress.
<T k="entreprise.tâches.avancement">
Utilisez cette liste pour suivre votre avancement dans les démarches.
Il est automatiquement sauvegardé dans votre navigateur.
</T>
</p>
<p style={{ display: 'flex', justifyContent: 'space-between' }}>
<button onClick={onStatusChange} className="ui__ skip-button left">
Choose another status
<T k="entreprise.tâches.retour">Choisir un autre statut</T>
</button>
<Link to={'/company/after-registration'} className="ui__ skip-button">
After registration
<T k="entreprise.tâches.ensuite">Après la création</T>
</Link>
</p>
</Animate.fromBottom>

View File

@ -1,7 +1,7 @@
/* @flow */
import { saveExistingCompanyDetails } from 'Actions/existingCompanyActions'
import { compose } from 'ramda'
import React from 'react'
import { React, T } from 'Components'
import Helmet from 'react-helmet'
import { connect } from 'react-redux'
import { Link, withRouter } from 'react-router-dom'
@ -12,6 +12,7 @@ import 'react-select/dist/react-select.css'
import './Find.css'
import { CompanyDetails as Company } from './YourCompany'
import type { RouterHistory } from 'react-router'
import { translate } from 'react-i18next'
const goToNextStep = (history: RouterHistory) => {
history.push('/social-security')
@ -49,6 +50,7 @@ class Search extends React.Component<Props, State> {
})
render() {
let { t } = this.props
return (
<div id="findYourCompany">
<Helmet>
@ -58,14 +60,20 @@ class Search extends React.Component<Props, State> {
content="Find your existing company, and start simulate hiring cost customized to your situation"
/>
</Helmet>
<h1 className="question__title">Find your company</h1>
<h1 className="question__title">
<T k="trouver.titre">Trouver mon entreprise</T>
</h1>
<p>
<Link to="/company">I don&apos;t have a company yet</Link>
<Link to="/company">
<T k="trouver.non">Je n'ai pas encore d'entreprise</T>
</Link>
</p>
<p>
{' '}
Thanks to the SIREN database, the public informations of your company
will be automatically available for the next steps.
<T k="trouver.description">
Grâce à la base SIREN, les données publiques sur votre entreprise
seront automatiquement disponibles pour la suite du parcours sur le
site.
</T>
</p>
{/* $FlowFixMe */}
<ReactSelect.Async
@ -76,10 +84,10 @@ class Search extends React.Component<Props, State> {
optionRenderer={({ l1_normalisee, code_postal }) =>
l1_normalisee + ` (${code_postal})`
}
placeholder="Type your company name"
noResultsText="We didn't find any matching registered company."
placeholder={t('Entrez le nom de votre société')}
noResultsText={t("Nous n'avons rien trouvé")}
searchPromptText={null}
loadingPlaceholder="Searching..."
loadingPlaceholder={t('Recherche en cours...')}
loadOptions={this.getOptions}
/>
{!!this.state.input && (
@ -91,7 +99,7 @@ class Search extends React.Component<Props, State> {
goToNextStep(this.props.history)
}}
className="ui__ button">
Confirm and simulate hiring costs
<T k="trouver.ok">Confirm and simulate hiring costs</T>
</button>
</>
)}
@ -107,5 +115,6 @@ export default compose(
{
onCompanyDetailsConfirmation: saveExistingCompanyDetails
}
)
),
translate()
)(Search)

View File

@ -32,7 +32,7 @@ const CreateMyCompany = ({ match, nextQuestionUrl }: Props) => (
</Link>
</p>
<p>
<T k="entreprise.formeJuridique.intro">
<T k="formeJuridique.intro">
Le droit des sociétés définit plus de 20 statuts juridiques possibles
pour déclarer une société avec différents acronymes et démarches : SAS,
SARL, SA, EIRL.... Ce guide vous aide à trouver rapidement le statut qui
@ -45,7 +45,7 @@ const CreateMyCompany = ({ match, nextQuestionUrl }: Props) => (
<T>Choisir la forme juridique</T>
</Link>
<Link to={'/social-security'} className="ui__ skip-button">
<T>Passer</T>
<T>Plus tard</T>
</Link>
</div>
)}

View File

@ -1,7 +1,7 @@
/* @flow */
import { goToCompanyStatusChoice } from 'Actions/companyStatusActions'
import { isNil } from 'ramda'
import React from 'react'
import { React, T } from 'Components'
import emoji from 'react-easy-emoji'
import { connect } from 'react-redux'
import { capitalise0 } from '../../../../utils'
@ -32,12 +32,14 @@ const LegalStatusChoice = ({
return (
!!Object.keys(legalStatus).length && (
<>
<h2>My answers</h2>
<h2>
<T>Mes réponses</T>
</h2>
<p>
<button
className="ui__ link-button"
onClick={goToCompanyStatusChoice}>
Reset
<T>Effacer</T>
</button>
</p>
<ul>

View File

@ -73,16 +73,18 @@ const Liability = ({ chooseCompanyLiability, multipleAssociates }: Props) => (
chooseCompanyLiability('UNLIMITED_LIABILITY')
}}
className="ui__ button">
{multipleAssociates === false
? 'Sole proprietorship'
: 'Unlimited Liability'}
{multipleAssociates === false ? (
<T k="bouton1">Entreprise individuelle</T>
) : (
<T k="bouton2">Responsabilité illimitée</T>
)}
</button>
<button
onClick={() => {
chooseCompanyLiability('LIMITED_LIABILITY')
}}
className="ui__ button">
Limited liability
<T k="bouton3">Responsabilité limitée</T>
</button>
<SkipButton onClick={() => chooseCompanyLiability(null)} />
</div>

View File

@ -1,6 +1,6 @@
/* @flow */
import { companyHasMultipleAssociates } from 'Actions/companyStatusActions'
import React from 'react'
import { React, T } from 'Components'
import Helmet from 'react-helmet'
import { connect } from 'react-redux'
import { SkipButton } from 'Ui/Button'
@ -12,16 +12,19 @@ type Props = {
const NumberOfAssociates = ({ companyHasMultipleAssociates }: Props) => (
<>
<Helmet>
<title>Number of associate </title>
<title>Number of associates</title>
<meta
name="description"
content="If your company only has one associate, the administrative process for creating your company in France is easier."
/>
</Helmet>
<h2>Number of associates</h2>
<h2>
<T k="associés.titre">Nombre d'associés</T>
</h2>
<p>
If your company only has one associate, the administrative process is
easier.
<T k="associés.description">
Une entreprise à un seul associé est plus simple à créer et gérer.
</T>
</p>
<div className="ui__ answer-group">
@ -30,14 +33,14 @@ const NumberOfAssociates = ({ companyHasMultipleAssociates }: Props) => (
companyHasMultipleAssociates(false)
}}
className="ui__ button">
Only one associate
<T k="associés.choix1">Un associé</T>
</button>
<button
onClick={() => {
companyHasMultipleAssociates(true)
}}
className="ui__ button">
More than one associate
<T k="associés.choix2">Plusieurs associés</T>
</button>
<SkipButton onClick={() => companyHasMultipleAssociates(null)} />
</div>

View File

@ -2,74 +2,68 @@
// eslint-disable-next-line no-unused-vars
import { React, T } from 'Components'
import type { LegalStatus } from 'Selectors/companyStatusSelectors'
import { translate } from 'react-i18next'
type Props = {
status: LegalStatus
}
const StatusDescription = translate()(
({ status }: Props) =>
status === 'EI' ? (
<T k="formeJuridique.EI">
Également appelée société en nom propre. Aucun capital n'est nécessaire.
Le capital privé et le capital de l'entreprise ne font qu'un.
</T>
) : status === 'EIRL' ? (
<T k="formeJuridique.EIRL">
Permet de protéger son patrimoine personnel en attribuant un capital
spécifique à son activité professionnelle.
</T>
) : status === 'EURL' ? (
<T k="formeJuridique.EURL">
L'entreprise n'a qu'un associé. La responsabilité est limitée au montant
de l'apport de capital de l'unique associé.
</T>
) : status.includes('SARL') ? (
<T k="formeJuridique.SARL">
Société ayant au moins deux associés dont la responsabilité financière
est limitée au montant de leur apport au capital. Le capital minimum est
fixé librement dans les statuts. Les associés se répartissent des parts
sociales toutes identiques, et la société est dirigée par un ou
plusieurs gérants qui sont forcément des personnes physiques. Le
fonctionnement d'une SARL n'est pas libre, il est encadré par le code du
commerce.
</T>
) : status === 'SAS' ? (
<T k="formeJuridique.SAS">
Société ayant au moins deux associés. La responsabilité financière des
associés est limitée au montant de leur apport au capital de la société.
Le capital minimum est fixé librement dans les statuts. Les associés se
répartissent des actions qui peuvent être de plusieurs catégories, et la
société est dirigée notamment par un président qui peut être une
personne morale (une autre société). Le fonctionnement d'une SAS est peu
encadré par la législation.
</T>
) : status === 'SASU' ? (
<T k="formeJuridique.SASU">
L'entreprise n'a qu'un associé. La responsabilité est limitée au montant
de l'apport de capital de l'unique associé.
</T>
) : status === 'SA' ? (
<T k="formeJuridique.SA">
Société ayant au moins deux actionnaires. C'est le seul statut qui
permet d'être coté en bourse (à partir de 7 actionnaires). Le capital
social minimum est de 37.000 .
</T>
) : status === 'SNC' ? (
<T k="formeJuridique.SNC">
La responsabilité des associés pour les dettes de la société est
solidaire (un seul associé peut être poursuivi pour la totalité de la
dette) et indéfinie (responsable sur la totalité de son patrimoine
personnel).
</T>
) : status.toLowerCase().includes('micro-enterprise') ? (
<T k="formeJuridique.micro">
La micro-entreprise est une entreprise individuelle, soumise à un régime
forfaitaire pour le calcul des impôts et le paiement des cotisations de
sécurité sociale.
</T>
) : /* Otherwise */ null
)
const StatusDescription = ({ status }: Props) =>
status === 'EI' ? (
<T k="formeJuridique.EI">
Également appelée société en nom propre. Aucun capital n'est nécessaire.
Le capital privé et le capital de l'entreprise ne font qu'un.
</T>
) : status === 'EIRL' ? (
<T k="formeJuridique.EIRL">
Permet de protéger son patrimoine personnel en attribuant un capital
spécifique à son activité professionnelle.
</T>
) : status === 'EURL' ? (
<T k="formeJuridique.EURL">
L'entreprise n'a qu'un associé. La responsabilité est limitée au montant
de l'apport de capital de l'unique associé.
</T>
) : status.includes('SARL') ? (
<T k="formeJuridique.SARL">
Société ayant au moins deux associés dont la responsabilité financière est
limitée au montant de leur apport au capital. Le capital minimum est fixé
librement dans les statuts. Les associés se répartissent des parts
sociales toutes identiques, et la société est dirigée par un ou plusieurs
gérants qui sont forcément des personnes physiques. Le fonctionnement
d'une SARL n'est pas libre, il est encadré par le code du commerce.
</T>
) : status === 'SAS' ? (
<T k="formeJuridique.SAS">
Société ayant au moins deux associés. La responsabilité financière des
associés est limitée au montant de leur apport au capital de la société.
Le capital minimum est fixé librement dans les statuts. Les associés se
répartissent des actions qui peuvent être de plusieurs catégories, et la
société est dirigée notamment par un président qui peut être une personne
morale (une autre société). Le fonctionnement d'une SAS est peu encadré
par la législation.
</T>
) : status === 'SASU' ? (
<T k="formeJuridique.SASU">
L'entreprise n'a qu'un associé. La responsabilité est limitée au montant
de l'apport de capital de l'unique associé.
</T>
) : status === 'SA' ? (
<T k="formeJuridique.SA">
Société ayant au moins deux actionnaires. C'est le seul statut qui permet
d'être coté en bourse (à partir de 7 actionnaires). Le capital social
minimum est de 37.000 .
</T>
) : status === 'SNC' ? (
<T k="formeJuridique.SNC">
La responsabilité des associés pour les dettes de la société est solidaire
(un seul associé peut être poursuivi pour la totalité de la dette) et
indéfinie (responsable sur la totalité de son patrimoine personnel).
</T>
) : status.toLowerCase().includes('micro-enterprise') ? (
<T k="formeJuridique.micro">
La micro-entreprise est une entreprise individuelle, soumise à un régime
forfaitaire pour le calcul des impôts et le paiement des cotisations de
sécurité sociale.
</T>
) : /* Otherwise */ null
export default StatusDescription