Merge pull request #1085 from betagouv/seo

Seo
pull/1088/head
Johan Girod 2020-07-03 19:23:01 +02:00 committed by GitHub
commit c508d2b810
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 801 additions and 447 deletions

View File

@ -70,6 +70,7 @@ Et ceux spécifiques au projet :
- :alien: `:alien:` pour ajouter des traductions
- :wheelchair: `:wheelchair:` pour corriger les problèmes liés à l'accessibilité
- :fountain_pen: `:fountain_pen:` pour séparer les commits liés à la modification du contenu
- :mag: `:mag:` pour les modifications liées au référencement naturel
### Tests

View File

@ -12,11 +12,9 @@ describe('Manage page test', function() {
.first()
.type('menoz')
cy.contains('834364291').click()
cy.contains('assimilé-salarié').click()
cy.contains(fr ? 'simulateur SASU' : 'simulator for SASU').click()
cy.location().should(loc => {
expect(loc.pathname).to.match(
fr ? /assimil%C3%A9-salari%C3%A9$/ : /assimile-salarie$/
)
expect(loc.pathname).to.match(fr ? /dirigeant-sasu$/ : /sasu-chairman$/)
})
})
it('should allow auto entrepreneur to access the corresponding income simulator', function() {

View File

@ -49,15 +49,18 @@
<meta property="og:type" content="website" />
<meta
property="og:title"
data-react-helmet="true"
content="<%= htmlWebpackPlugin.options.title %>"
/>
<meta
property="og:description"
data-react-helmet="true"
content="<%= htmlWebpackPlugin.options.description %>"
/>
<meta
property="og:image"
data-react-helmet="true"
content="<%= htmlWebpackPlugin.options.shareImage %>"
/>
<!-- data-helmet pour que React Helmet puisse écraser ce meta par défaut -->

View File

@ -100,7 +100,9 @@ async function fetchSimulators(dt) {
const resultSimulateurs = dataSimulateurs
.filter(({ label }) =>
[
'/salaire-brut-net',
'/salarié',
'/chômage-partiel',
'/auto-entrepreneur',
'/artiste-auteur',
'/indépendant',
@ -143,10 +145,13 @@ async function fetchSimulators(dt) {
const groupSimulateursIframesVisits = ({ label }) =>
label.startsWith('/coronavirus')
? '/chômage-partiel'
: label.startsWith('/simulateur-embauche')
: label.startsWith('/simulateur-embauche') ||
label === '/salaire-brut-net'
? '/salarié'
: label.startsWith('/simulateur-autoentrepreneur')
? '/auto-entrepreneur'
: label === '/assimilé-salarié'
? '/dirigeant-sasu'
: label
const sumVisits = (acc, { nb_visits }) => acc + nb_visits

View File

@ -14,22 +14,26 @@ fs.writeFileSync(
rulesTranslationPath,
stringify(resolved, { sortMapEntries: true })
)
missingTranslations.forEach(async ([dottedName, attr, value]) => {
try {
const translation = await fetchTranslation(value)
resolved[dottedName][attr] = '[automatic] ' + translation
} catch (e) {
console.log(e)
}
})
prettier.resolveConfig(rulesTranslationPath).then(options => {
fs.writeFileSync(
rulesTranslationPath,
prettier.format(stringify(resolved, { sortMapEntries: true }), {
...options,
parser: 'yaml'
;(async function main() {
await Promise.all(
missingTranslations.map(async ([dottedName, attr, value]) => {
try {
const translation = await fetchTranslation(value)
resolved[dottedName][attr] = '[automatic] ' + translation
} catch (e) {
console.log(e)
}
})
)
})
prettier.resolveConfig(rulesTranslationPath).then(options => {
const formattedYaml = prettier.format(
stringify(resolved, { sortMapEntries: true }),
{
...options,
parser: 'yaml'
}
)
fs.writeFileSync(rulesTranslationPath, formattedYaml)
})
})()

View File

@ -49,11 +49,18 @@ export default function SimulateurWarning({
</Trans>
</li>
)}
{simulateur === 'SASU' && (
<li>
<Trans i18nKey="simulateurs.warning.sasu">
L'impôt sur les société et la gestion des dividendes ne sont pas
encore implémentées.
</Trans>
</li>
)}
{simulateur === 'artiste-auteur' && (
<>
<li>
<Trans i18nKey="simulateurs.warning.artiste-auteur">
<Trans i18nKey="simulateurs.warning.artiste-auteur.1">
Cette estimation est proposée à titre indicatif. Elle est faite
à partir des éléments réglementaires applicables et des éléments
que vous avez saisis, mais elle ne tient pas compte de
@ -62,7 +69,7 @@ export default function SimulateurWarning({
</Trans>
</li>
<li>
<Trans i18nKey="simlateurs.warning.artiste-auteur">
<Trans i18nKey="simulateurs.warning.artiste-auteur.2">
Ce simulateur permet d'estimer le montant de vos cotisations
pour l'année 2020 à partir de votre revenu projeté
</Trans>

View File

@ -0,0 +1,8 @@
import emojiFn from 'react-easy-emoji'
type PropType = {
emoji: string
}
export default function Emoji({ emoji }: PropType) {
return emojiFn(emoji)
}

View File

@ -0,0 +1,40 @@
import React from 'react'
import { Helmet } from 'react-helmet'
import { useLocation } from 'react-router'
type PropType = {
title: string
description: string
ogDescription?: string
ogTitle?: string
ogImage?: string
}
export default function Meta({
title,
description,
ogDescription,
ogTitle,
ogImage
}: PropType) {
const { pathname } = useLocation()
return (
<Helmet>
<title>{title}</title>
<meta name="description" content={description} />
<meta property="og:type" content="website" />
<meta property="og:title" content={ogTitle ?? title} />
<meta property="og:description" content={ogDescription ?? description} />
{ogImage && (
<meta
property="og:image"
content={
ogImage.startsWith('http')
? ogImage
: window.location.host + pathname + '/' + ogImage
}
/>
)}
</Helmet>
)
}

View File

@ -17,6 +17,15 @@ export function LinkRenderer({
...otherProps
}: Omit<React.ComponentProps<'a'>, 'ref'>) {
const siteName = useContext(SiteNameContext)
if (href && !href.startsWith('http')) {
return (
<Link to={href} {...otherProps}>
{children}
</Link>
)
}
if (href && !href.startsWith('http')) {
return (
<Link to={href} {...otherProps}>
@ -97,6 +106,7 @@ export const Markdown = ({
...otherProps
}: MarkdownProps) => (
<ReactMarkdown
transformLinkUri={src => src}
source={source}
className={`markdown ${className}`}
renderers={{

View File

@ -1778,6 +1778,16 @@ contrat salarié . cotisations . patronales . conventionnelles:
titre.en: employer contribution specific to the "convention collective"
titre.fr: cotisations patronales conventionnelles
contrat salarié . cotisations . patronales . réductions de cotisations:
description.en: >-
[automatic] With the exception of the overtime deduction, the employer
contribution reduction schemes are mutually exclusive.
The formula below therefore automatically selects the most advantageous for the employer.
description.fr: >-
À l'exception de la déduction heure supplémentaire, les dispositifs de
réduction de cotisations patronales sont mutuellement exclusif.
Le formule ci dessous selectionne donc automatiquement le plus avantageux pour l'employeur.
titre.en: contribution reductions
titre.fr: réductions de cotisations
? contrat salarié . cotisations . patronales . réductions de cotisations . déduction heures supplémentaires
@ -2538,12 +2548,6 @@ contrat salarié . retraite supplémentaire . part déductible:
contrat salarié . retraite supplémentaire . salarié:
titre.en: '[automatic] employee'
titre.fr: salarié
contrat salarié . réduction ACRE:
titre.en: ACRE reduction
titre.fr: réduction ACRE
contrat salarié . réduction ACRE . taux:
titre.en: ACRE rate
titre.fr: taux ACRE
contrat salarié . réduction générale:
description.en: >
[automatic] Within the framework of the responsibility and solidarity pact,
@ -3469,6 +3473,12 @@ dirigeant . assimilé salarié:
droit.
titre.en: Assimilated salaried
titre.fr: assimilé salarié
dirigeant . assimilé salarié . réduction ACRE:
titre.en: '[automatic] ACRE reduction'
titre.fr: réduction ACRE
dirigeant . assimilé salarié . réduction ACRE . taux:
titre.en: '[automatic] ACRE rate'
titre.fr: taux ACRE
dirigeant . auto-entrepreneur:
description.en: >
Self-enterprise is a simplified sole proprietorship. At the beginning

View File

@ -1,7 +1,7 @@
'404':
"404":
action: Return to safe place
message: This page does not exist or no longer exists
'<0>Covid-19 et chômage partiel </0>: <3>Calculez votre indemnité</3>': '<0>Covid-19 and Short-Time </0>Work: <3>Calculate Your Benefit</3>'
"<0>Covid-19 et chômage partiel </0>: <3>Calculez votre indemnité</3>": "<0>Covid-19 and Short-Time </0>Work: <3>Calculate Your Benefit</3>"
<0>Oui</0>: <0>Yes</0>
A quoi servent mes cotisations ?: What's included in my contributions?
Accueil: Home
@ -27,16 +27,16 @@ Choisir plus tard: Choose later
Chômage partiel: Partial unemployment
Code d'intégration: Integration Code
Commencer: Get started
'Commerçant, artisan, ou libéral ?': Trader, craftsman, or liberal?
"Commerçant, artisan, ou libéral ?": Trader, craftsman, or liberal?
Comparaison statuts: Status comparison
Continuer: Continue
Coronavirus: Coronavirus
Cotisations: Contributions
Cotisations sociales: Social contributions
Covid 19: Covid 19
"Covid-19 : Calculer l'impact du chômage partiel": 'Covid-19: Calculating the impact of short-time work'
'Covid-19 : Découvrez les mesures de soutien aux entreprises': 'Covid-19: Find out about business support measures'
'Covid-19 : Découvrir les mesures de soutien aux entreprises': 'Covid-19: Discovering Business Support Measures'
"Covid-19 : Calculer l'impact du chômage partiel": "Covid-19: Calculating the impact of short-time work"
"Covid-19 : Découvrez les mesures de soutien aux entreprises": "Covid-19: Find out about business support measures"
"Covid-19 : Découvrir les mesures de soutien aux entreprises": "Covid-19: Discovering Business Support Measures"
Coût pour l'entreprise: Cost to the company
Crée le: Created on
Créer une: Create a
@ -69,7 +69,7 @@ Gérant minoritaire: Managing director
Habituellement: Usually
Imprimer: Print
Impôts: Taxes
"Indemnité chômage partiel prise en charge par l'état :": 'State-paid short-time working allowance :'
"Indemnité chômage partiel prise en charge par l'état :": "State-paid short-time working allowance :"
Indépendant: Indépendant
International: International
Intégrer l'interface de simulation: Integrate the simulation interface
@ -100,7 +100,7 @@ Pas en auto-entrepreneur: Not in auto-entrepreneur
Pas implémenté: Not implemented
Passer: Skip
Personnalisez l'integration: Customize the integration
'Perte de revenu net :': 'Loss of net income :'
"Perte de revenu net :": "Loss of net income :"
Plafonds des tranches: Wafer ceilings
Plein écran: Fullscreen
Plus d'informations: More information (fr)
@ -128,7 +128,7 @@ Retour à mon activité: Back to my business
Revenir à la documentation: Go back to documentation
Revenu (incluant les dépenses liées à l'activité): Revenue (including expenses related to the activity)
Revenu disponible: Disposable income
'Revenu net avec chômage partiel :': 'Net income with short-time work :'
"Revenu net avec chômage partiel :": "Net income with short-time work :"
Revenu net mensuel: Monthly net income
Réductions: Discounts
Rémunération du dirigeant: Director's remuneration
@ -152,7 +152,7 @@ Taux: Rate
Taux calculé: Calculated rate
Taux moyen: Average rate
Total des retenues: Total withheld
"Total payé par l'entreprise :": 'Total paid by the company :'
"Total payé par l'entreprise :": "Total paid by the company :"
Tout effacer: Delete all
Tranche de l'assiette: Scale bracket
Un seul associé: Only one partner
@ -165,6 +165,7 @@ Voir ma situation: See my situation
Votre adresse e-mail: Your email address
Votre entreprise: Your company
Votre forme juridique: Your legal status
Vous êtes dirigeant d'une SAS(U) ? <2>Accéder au simulateur de revenu dédié</2>: Are you a SAS(U) manager? <2>Access the dedicated income simulator</2>
aide: aid or subsidy
aide-déclaration-indépendant:
description: <0>Help with your 2019 income tax return</0><1>This tool is a tax
@ -211,11 +212,11 @@ après:
registered, you'll have access to the following
kbis:
description:
'1': It is the official document attesting to <2>the legal existence of a
"1": It is the official document attesting to <2>the legal existence of a
commercial enterprise</2>. In most cases, to be opposable and authentic
for administrative procedures, the extract must be less than 3 months
old.
'2': This document is generally requested when applying for a public tender,
"2": This document is generally requested when applying for a public tender,
opening a professional bank account, purchasing professional equipment
from distributors, etc.
titre: The Kbis
@ -269,7 +270,7 @@ autoentrepreneur:
titre: Auto-entrepeneur
back: Resume simulation
barème: scale
calcul-avec: 'Calculation from <1></1>with :'
calcul-avec: "Calculation from <1></1>with :"
cancelExample: Back to your situation
car dépend de: because it depends on
cible: target
@ -355,8 +356,8 @@ comparaisonRégimes:
infobulles:
AS: Pension calculated for 172 quarters contributed to the general scheme with
no change in income.
auto: Pension calculated for 172 quarters of self-employed contributions with no
change in income.
auto: Pension calculated for 172 quarters of auto-entrepreneur contributions
with no change in income.
indep: Pension calculated for 172 quarters of contributions to the self-employed
scheme with no change in income.
legend: |
@ -381,8 +382,8 @@ comparaisonRégimes:
AS: SAS, SASU or SARL with minority director
auto: Auto-entreprise
indep:
'1': EI, EIRL, EURL or SARL with majority director
'2': EI or EIRL
"1": EI, EIRL, EURL or SARL with majority director
"2": EI or EIRL
legend: Possible legal status
sécuritéSociale: |
<0> Social security</0>
@ -396,13 +397,13 @@ comparaisonRégimes:
trimestreValidés: <0>Number of quarters validated <1>(for retirement)</1></0>
composantes: components
coronavirus:
description: '<0>Coronavirus and short-time working: what impact on my
description: "<0>Coronavirus and short-time working: what impact on my
income?</0><1>The government is putting in place measures to support
employees affected by the Coronavirus crisis. One of the key measures is the
assumption of the entire short-time working compensation by the State.</1>'
assumption of the entire short-time working compensation by the State.</1>"
page:
description: Estimate net income with short-time working benefits
titre: 'Coronavirus and short-time working: what impact on your income?'
titre: "Coronavirus and short-time working: what impact on your income?"
cotisation: contribution
créer:
cta:
@ -421,7 +422,7 @@ créer:
<0>List of legal statuses</0>
<1>EURL, SARL, SASU, etc: a shortcut if you already know your status </1>
titre: Create a company
warningPL: 'Note: the case of regulated liberal professions is not covered'
warningPL: "Note: the case of regulated liberal professions is not covered"
d'aides: of aid
domiciliation inconnue: unknown address
domiciliée à: domiciled in
@ -537,9 +538,9 @@ entreprise:
creation process. It is automatically saved in your browser.
banque:
description:
'1': The purpose of a <1>professional bank account</1> is to separate your
"1": The purpose of a <1>professional bank account</1> is to separate your
company's assets from your personal assets.
'2': 'The professional bank account allows you to:'
"2": "The professional bank account allows you to:"
EI: If its opening is not obligatory for an EI, it is strongly recommended.
liste: >
<0>Differentiate your private and professional operations and simplify
@ -692,8 +693,9 @@ gérant minoritaire:
titre: Chairman or managing director
gérer:
choix:
chomage-partiel: <0>Find out about aid</0><1>Calculate the amount of short-time
working benefits. Discover the list of business support schemes.</1>
chomage-partiel: <0>Partial activity</0><1>Calculate the remaining amount to be
paid after government reimbursement when you activate the device for an
employee.</1>
déclaration: <0>Completing my tax return</0><1>Easily calculate the amounts to
carry forward on your 2019 tax return</1>
embauche: >
@ -741,13 +743,13 @@ indicationTempsPlein: in full-time gross salary equivalent
inférieurs à: lower than
jour: day
landing:
aboutUs: '<0>Who are we?</0><1>We are a small<2>, autonomous and
multidisciplinary team</2> within<4> USSAF</4>. We have at heart to be close
to your needs in order to continuously improve this site in accordance with
the <7>State Startup</7> method.</1><2>We have developed this site to
aboutUs: "<0>Who are we ?</0><1>We are a small<2>, autonomous and
multidisciplinary team</2> within<4> URSSAF</4>. We have at heart to be
close to your needs in order to constantly improve this site in accordance
with the <7>beta.gouv.fr</7> approach.</1><2>We have developed this site to
<2>support entrepreneurs</2> in the development of their business.</2><3>Our
goal is to <2>remove all uncertainties with regard to administration</2> so
that you can concentrate on what matters: your business.</3>'
goal is to <2>remove all uncertainties with regard to the administration</2>
so that you can concentrate on what matters: your business.</3>"
choice:
create: <0>Create a company</0><1>Assistance in choosing the status and the
complete list of creation steps</1>
@ -756,6 +758,7 @@ landing:
flow.</1>
simulators: <0>Access the simulators</0><1>The exhaustive list of all the
simulators available on the site.</1>
covid19: "Covid-19: Calculating the impact of short-time work"
seeSimulators: See the simulators list
subtitle: All the resources you need to develop your business, from legal status
to hiring.
@ -805,14 +808,22 @@ page:
documentation:
title: Documentation
pages:
common:
ressources-auto-entrepreneur:
FAQ: <0><0>Frequently Asked Questions</0><1>An exhaustive and up-to-date list of
all the frequently (and less frequently) asked questions that you may
have as an auto-entrepreneur (in french).</1></0>
impôt: <0><0>How to declare your income?</0><1>Official information from the tax
authorities concerning auto-entrepreneurs and the micro-enterprise
scheme (in french).</1></0>
dévelopeurs:
bibliothèque: '<0>Integrate our calculation library</0><1>If you think that your
bibliothèque: "<0>Integrate our calculation library</0><1>If you think that your
site or service would benefit from displaying salary calculations, for
example switching from gross salary to net salary, good news: all the
contribution and tax calculations behind my-company.fr are free and <2>can
be integrated in the form of an <2>NPM library</2></2>.</1><2>Put simply,
your team''s developers are able to integrate the calculation into your
interface in 5 minutes{emoji(''⌚'')}, without having to deal with the
your team's developers are able to integrate the calculation into your
interface in 5 minutes{emoji('⌚')}, without having to deal with the
complexity of payroll and the regular updating of calculation
rules.</2><3>This library is a common digital library developed by the
State and ACOSS. It is based on a new programming language,
@ -823,36 +834,36 @@ pages:
recipe for a calculation is simple: input variables (gross wage), one or
more output variables (net wage).</9><10>All these variables are listed
and explained in our <2>online documentation</2>.</10><11>Use the search
engine to find the right variable, then click on "View source code" to
get all the documentation: default value, possible values when it''s an
enumeration of choice, unit when it''s a number, description, associated
user question, etc.</11><12>Let''s run a calculation closer to a payslip:
engine to find the right variable, then click on \"View source code\" to
get all the documentation: default value, possible values when it's an
enumeration of choice, unit when it's a number, description, associated
user question, etc.</11><12>Let's run a calculation closer to a payslip:
Here is a description of the input situation with links to the
corresponding pages of the documentation :</12><13> An <3>executive</3>
earning <7>€3,400 gross</7>, who benefits from the<10> bicycle mileage
allowance</10> and works in a company with <14>12
employees</14>.</13><14>The calculation for this more complete example is
as follows:</14><15><0></0></15><16>{emoji('' '')} Note that in the
as follows:</14><15><0></0></15><16>{emoji(' ')} Note that in the
previous example we have to specify the transport payment rate
ourselves.</16><17>Whereas in the <2>employee</2> simulator, it is
sufficient to fill in the municipality and the corresponding rate is
automatically determined. It''s intentional: to keep the library (and the
automatically determined. It's intentional: to keep the library (and the
site) light, we use two online APIs. The<4> Geo API - communes</4> to
switch from the commune name to the common code. Then the<7> transport
payout API</7>, developed and maintained by us, which is not documented
but its use is very simple and understandable <10>in this React component
that calls it</10>, a component that also uses the common
API.</17><18>Making economic charts{emoji('' 📈'')}</18><19>It is also
API.</17><18>Making economic charts{emoji(' 📈')}</18><19>It is also
possible to use the library for economic or political analysis
calculations. Here, the price of labour and the net wage is plotted
against the gross wage.</19><20>We can see the progressiveness of the
total wage, which is in percent lower for a minimum wage than for a high
income. In other words, high-wage earners pay part of the social security
contributions of low-wage earners.</20><21>{emoji(''⚠️ '')}Beware, this
contributions of low-wage earners.</20><21>{emoji('⚠️ ')}Beware, this
example does a lot of calculations in one go, which can block your browser
for a few seconds. To overcome this problem, you would have to call the
library in a Web Worker, but this is not possible for the <3>moment</3> in
these demos.</21><22><0></0></22>'
these demos.</21><22><0></0></22>"
développeurs:
choice:
github: <0>Contribute to GitHub</0><1>All our tools are open and publicly
@ -863,10 +874,10 @@ pages:
publicode: <0>Publicodes</0><1>Our tools are powered by Publicodes, a new
language for encoding "explainable" algorithms.</1>
code:
description: 'Here is the code to copy and paste on your site:'
description: "Here is the code to copy and paste on your site:"
titre: Integration Code
code à copier: 'Here is the code to copy and paste on your site:'
couleur: 'What color? '
code à copier: "Here is the code to copy and paste on your site:"
couleur: "What color? "
home:
choice:
iframe: <0>Integrating a simulator</0><1>Integrate one of our simulators in one
@ -885,12 +896,162 @@ pages:
attribute <1>data-lang="en"</1> allows you to choose English as the
simulator language.</3>
module: What module?
simulateurs:
auto-entrepreneur:
meta:
description: Calculation of your income based on turnover, after deduction of
contributions and income tax.
ogDescription: "Thanks to the auto-entrepreneur income simulator developed by
URSSAF, you can estimate the amount of your income based on your
monthly or annual turnover to better manage your cash flow. Or in the
opposite direction: to know what amount to invoice to achieve a
certain income."
ogTitle: "Auto-entrepreneur: quickly calculate your net income from sales and
vice versa"
titre: "Auto-entrepreneurs: income simulator"
seo explanation: "<0>How do you calculate the net income for an
auto-entrepreneur?</0><1>An auto-entrepreneur has to pay social
security contributions to the administration (also known as
\"social charge\"). These social contributions are used to finance
social security, and give rights for retirement or health insurance.
They are also used to finance vocational training.</1><2><0></0> <2>See
details of how the contributions are calculated</2></2><3>But this is
not the only expense: to calculate net income, one must also take into
account all expenses incurred in the course of the professional activity
(assets, raw materials, premises, transport). Although they are not
useful for the calculation of contributions and taxes, they must be
taken into account to estimate the viability of one''s
activity.</3><4>The complete calculation formula is therefore:<1><0>Net
income = Turnover - Social contributions - Professional
expenses</0></1></4><5>How to calculate income tax for an
auto-entrepreneur ?</5><6>If you opted for the flat-rate payment when
you set up your business, income tax is paid at the same time as social
security contributions.</6><7><0></0> <2>See how the amount of the
flat-rate tax is calculated</2></7><8>Otherwise, you will be taxed
according to the standard income tax schedule. The taxable income is
then calculated as a percentage of turnover. This is called the lump-sum
allowance. This percentage varies according to the type of activity
carried out. It is said to be lump-sum because it does not take into
account the actual expenses incurred in the activity.</8><9><0></0>
<2>See details of the calculation of the income allowance for an
auto-entrepreneur</2></9><10>Useful resources</10><11><0></0></11>'"
titre: Auto-entrepreneur income simulator
chômage-partiel:
explications seo: >-
[👨 Integrate this simulator on your
site](/integration/iframe?module=simulateur-chomage-partiel)
## How do you calculate the partial activity allowance?
The basic partial activity allowance is set by law at 70% of gross earnings. It is prorated according to the number of hours off work. For an employee at €2,300 gross who works 50% of his usual time, this gives **€2,300 × 50% × 70% = €805**.
In addition to this basic allowance, there is a supplementary allowance for salaries close to the minimum wage. This additional allowance is paid when the combined remuneration and basic allowance are below a net SMIC.
These allowances must be paid by the employer, who will then be reimbursed in part or in full by the State.
👉 [See details of the calculation of the allowance](/documentation/contrat-salarié/activité-partielle/indemnités)
## How do you calculate the portion reimbursed by the state? ##
The State covers part of the partial compensation for wages up to 4.5 SMIC, with a minimum of €8.03 per hour off.
In concrete terms, this results in **100%** coverage for wages close to the SMIC. It then gradually decreases until it stabilizes at **93%** for wages between €2,000 and €7,000 (~ 4.5 SMIC).
👉 [See the details of the calculation of the reimbursement of the allowance](/documentation/contrat-salarié/activité-partielle/indemnisation-entreprise)
## How do you report a partial activity?
In the face of the coronavirus crisis, the modalities for partial activity have been lightened. The employer is allowed to place his employees in activity partial before the formal application is filed. It shall provide that then a period of **30 days** to comply. The benefits will be paid retroactively from the date of inception of the plan. of short-time work.
👉 [Apply for short-time work](https://www.service-public.fr/professionnels-entreprises/vosdroits/R31001) (french)
## What are the social contributions to be paid for the partial activity allowance?
The partial activity allowance is subject to the CSG/CRDS and to an disease contribution in some cases. For more information, see the explanatory page on [the URSSAF website](https://www.urssaf.fr/portail/home/actualites/toute-lactualite-employeur/activite-partielle--nouveau-disp.html) (french).
meta:
description: Calculation of the net income for the employee and the remaining
amount to be paid by the employer after reimbursement by the State,
taking into account all social contributions.
ogDescription: Access a first estimate by entering from a gross wage. You will
then be able to personalize your situation (part-time, agreement,
etc). Take into account all contributions, including those specific to
the allowance (CSG and CRDS).
ogTitle: "Short-time working simulator: find out the impact on the net salaried
income and the total employer cost."
titre: Calculation of the short-time working allowance in France
dirigean sasu:
explication seo: "<0>How to calculate the salary of a SASU executive? </0><1>As
for a conventional employee, the SASU <1>manager</1> pays social
security contributions on the salary he or she pays. The contributions
are calculated in the same way as for the employee: they are broken down
into the employer and employee parts and are expressed as a percentage
of the gross salary.</1><2>On the other hand, the assimilated
manager-employee does not pay <2>unemployment contributions</2>.
Moreover, they do not benefit from the <5>general reduction</5> in
contributions or from the schemes governed by the Labour Code, such as
<9>overtime</9> or bonuses.</2><3>A SASU executive's salary can be
calculated by entering the total amount of the salary in the \"total
expense\" box, but he or she can claim the <2>ACRE reduction</2> at the
beginning of the activity, under certain conditions.</3><4>You can use
our simulator to calculate the <2>net remuneration</2> from a
super-gross amount allocated to the executive's remuneration. To do
this, simply enter the announced compensation in the total loaded box.
The simulation can then be refined by answering the various
questions.</4>"
salarié:
explication seo: <0>Calculate your net salary</0><1>During the job interview,
the employer usually offers a "gross" remuneration. The announced amount
thus includes employee contributions, which are used to finance the
employee's social protection and which are deducted from the "net"
salary received by the employee.</1><2>You can use our simulator to
convert the <2>gross salary into net</2> salary. To do this, simply
enter the salary shown in the gross salary box. The simulation can be
refined by answering different questions (on CDD, framework status,
etc.).</2><3></3><4>Furthermore, since 2019,<1> income tax</1> is
withheld at source. To do this, the “Direction Générale des Finances
Publiques” (DGFiP) sends the employer the tax rate calculated from the
employee's tax return. If this rate is unknown, for example in the first
year of employment, the employer uses the <5>neutral
rate</5>.</4><5>Cost of hiring</5><6>If you are looking to hire, you can
calculate the total cost of your employee's remuneration, as well as the
corresponding employer and employee contribution amounts. This enables
you to define the pay level in knowledge of the overall amount of
expense this represents for your company.</6><7>In addition to salary,
our simulator takes into account the calculation of benefits in kind
(telephone, company car, etc.), as well as the compulsory health
insurance.</7><8>There are <2>deferred</2> hiring <2>aids</2> which are
not all taken into account by our simulator, you can find them on the
<6>official portal</6>.</8>
meta:
description: Calculation of net salary, net after tax and total employer cost in
France. Many options are available (executive, internship,
apprenticeship, overtime, etc.)
ogDescription: As an employee, calculate your net income after tax immediately
from the monthly or annual gross income. As an employee, estimate the
total cost of hiring from gross. This simulator is developed with
URSSAF experts, and it adapts the calculations to your situation
(executive status, internship, apprenticeship, overtime, restaurant
vouchers, mutual insurance, part-time work, collective agreement,
etc.).
ogTitle: "Gross, net, net after-tax salary, total cost: the ultimate simulator
for employees and employers"
titre: "Gross / net salary: the Urssaf converter"
titre: Income simulator for employees
sasu:
meta:
description: Calculation of net salary from turnover + expenses and vice versa.
ogDescription: As an officer in a similar position, immediately calculate your
net income after tax from the total allocated to your compensation.
ogTitle: "SASU executive compensation: a simulator to find out your net salary"
titre: "Head of SASU: Urssaf revenue simulator"
titre: Revenue simulator for SAS(U) executive
par: per
payslip:
disclaimer: It takes into account national law but not union negotiated rules.
Lots of financial aids for your enterprise exist, explore them on
<1>aides-entreprises.fr (French)</1>.
heures: 'Hours worked per month: '
heures: "Hours worked per month: "
notice: This simulation helps you understand your French payslip, but it should
not be used as one. For further details, check <1>service-public.fr
(French)</1>.
@ -959,10 +1120,6 @@ selectionRégime:
page:
titre: Social scheme selection
titre: Which social scheme would you like to explore?
simlateurs:
warning:
artiste-auteur: This simulator allows you to estimate the amount of your
contributions for the year 2020 based on your projected income.
simulateurs:
accueil:
description: >-
@ -1010,7 +1167,7 @@ simulateurs:
invite you to try another value.
précision:
bonne: Good accuracy
défaut: 'Refine the simulation by answering the following questions:'
défaut: "Refine the simulation by answering the following questions:"
faible: Low accuracy
moyenne: Medium accuracy
résumé:
@ -1033,37 +1190,6 @@ simulateurs:
similar
économie-collaborative: A guide to know how to declare your income from online
platforms (AirBnb, leboncoin, blablacar, etc.).
salarié:
page:
description: Estimate the contributions for an employee based on gross, net or
"super gross" salary. All contributions from the general system and
income tax are taken into account. Discover the counterparties
guaranteed by social security'.
explication seo: <0>Calculate your net salary</0><1>During the job interview,
the employer usually offers a "gross" remuneration. The announced amount
thus includes employee contributions, which are used to finance the
employee's social protection and which are deducted from the "net"
salary received by the employee.</1><2>You can use our simulator to
convert the <2>gross salary into net</2> salary. To do this, simply
enter the salary shown in the gross salary box. The simulation can be
refined by answering different questions (on CDD, framework status,
etc.).</2><3></3><4>Furthermore, since 2019,<1> income tax</1> is
withheld at source. To do this, the “Direction Générale des Finances
Publiques” (DGFiP) sends the employer the tax rate calculated from the
employee's tax return. If this rate is unknown, for example in the first
year of employment, the employer uses the <5>neutral
rate</5>.</4><5>Cost of hiring</5><6>If you are looking to hire, you can
calculate the total cost of your employee's remuneration, as well as the
corresponding employer and employee contribution amounts. This enables
you to define the pay level in knowledge of the overall amount of
expense this represents for your company.</6><7>In addition to salary,
our simulator takes into account the calculation of benefits in kind
(telephone, company car, etc.), as well as the compulsory health
insurance.</7><8>There are <2>deferred</2> hiring <2>aids</2> which are
not all taken into account by our simulator, you can find them on the
<6>official portal</6>.</8>
titre: 'Calculation of net and gross salary: official simulator'
titre: Income simulator for employees
warning:
artiste-auteur: This estimate is proposed for information only. It is based on
the applicable regulatory elements and the elements that you have entered,
@ -1077,6 +1203,7 @@ simulateurs:
depending on the company's turnover and the company's domiciliation.
<2>More info.</2>
plus: Read explanations
sasu: Corporate income tax and dividend management are not yet implemented.
titre: Before starting...
urssaf: The figures are indicative and do not replace the actual accounts of the
Urssaf, impots.gouv.fr, etc
@ -1087,7 +1214,8 @@ simulation-end:
text: You can now turn your hiring project into reality.
text: You have reached the most accurate estimate.
title: No more questions left!
siteName: My company in France
site:
titleTemplate: "%s"
statut du dirigeant:
description: <0>This choice is important because it determines the social
security regime and the social coverage of the manager. The amount and terms
@ -1138,8 +1266,8 @@ une de ces conditions: one of these applies
onwards, these revenues will be automatically reported by the platforms to
the tax authorities and Urssaf.</2>
question: What types of activity did you undertake?
réassurance: 'PS: this tool is only there to inform you, no data will be
transmitted to the administrations'
réassurance: "PS: this tool is only there to inform you, no data will be
transmitted to the administrations"
titre: How to declare income from digital platforms?
activité:
choix: What are more precisely the activities carried out?

View File

@ -43,6 +43,29 @@ dirigeant . assimilé salarié:
références:
Le régime des dirigeants: https://www.urssaf.fr/portail/home/employeur/creer/choisir-une-forme-juridique/le-statut-du-dirigeant/les-dirigeants-rattaches-au-regi.html
dirigeant . assimilé salarié . réduction ACRE:
applicable si: entreprise . ACRE
formule:
produit:
assiette:
somme:
- contrat salarié . maladie
- contrat salarié . allocations familiales
- contrat salarié . vieillesse
taux: taux
dirigeant . assimilé salarié . réduction ACRE . taux:
titre: taux ACRE
formule:
taux progressif:
assiette: contrat salarié . cotisations . assiette
multiplicateur: plafond sécurité sociale temps plein
tranches:
- plafond: 75%
taux: 100%
- plafond: 100%
taux: 0%
dirigeant . auto-entrepreneur:
rend non applicable: contrat salarié
formule: dirigeant = 'auto-entrepreneur'

View File

@ -1713,13 +1713,24 @@ contrat salarié . rémunération . total:
- activité partielle . indemnités
contrat salarié . cotisations . patronales . réductions de cotisations:
description: >-
À l'exception de la déduction heure supplémentaire, les
dispositifs de réduction de cotisations patronales sont
mutuellement exclusif.
Le formule ci dessous selectionne donc automatiquement
le plus avantageux pour l'employeur.
formule:
somme:
- réduction générale
- lodeom . réduction outre-mer
- statut JEI . exonération de cotisations
- réduction ACRE
- déduction heures supplémentaires
- le maximum de:
- réduction générale
- lodeom . réduction outre-mer
- statut JEI . exonération de cotisations
- dirigeant . assimilé salarié . réduction ACRE
références:
urssaf.fr (cumul réduction générale): https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale/les-regles-relatives-au-cumul.html
urssaf.fr (cumul JEI): https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-ou-aides-liees-au-s/jeunes-entreprises-innovantes/regles-de-cumul.html
contrat salarié . cotisations . patronales . réductions de cotisations . déduction heures supplémentaires:
applicable si: entreprise . effectif < 20
@ -1732,32 +1743,6 @@ contrat salarié . cotisations . patronales . réductions de cotisations . dédu
références:
urssaf.fr: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-deduction-forfaitaire-patrona/employeurs-concernes.html
contrat salarié . réduction ACRE:
applicable si:
toutes ces conditions:
- dirigeant . assimilé salarié
- entreprise . ACRE
formule:
produit:
assiette:
somme:
- maladie
- allocations familiales
- vieillesse
taux: taux
contrat salarié . réduction ACRE . taux:
titre: taux ACRE
formule:
taux progressif:
assiette: cotisations . assiette
multiplicateur: plafond sécurité sociale temps plein
tranches:
- plafond: 75%
taux: 100%
- plafond: 100%
taux: 0%
contrat salarié . cotisations . salariales . réduction heures supplémentaires:
cotisation:
branche: retraite

View File

@ -135,7 +135,9 @@ const App = () => {
return (
<div className="app-container">
<Helmet titleTemplate={`%s - ${t(['siteName', 'Mon-entreprise.fr'])}`} />
<Helmet
titleTemplate={`${t(['site.titleTemplate', '%s - Mon-entreprise'])}`}
/>
{/* Passing location down to prevent update blocking */}
<div className="app-content">

View File

@ -49,7 +49,7 @@ const moduleToSitePath = {
'simulateur-embauche': '/simulateurs/salarié',
'simulateur-autoentrepreneur': '/simulateurs/auto-entrepreneur',
'simulateur-independant': '/simulateurs/indépendant',
'simulateur-assimilesalarie': '/simulateurs/assimilé-salarié'
'simulateur-dirigeantsasu': '/simulateurs/dirigeant-sasu'
}
const simulateurLink = (fr ? process.env.FR_SITE : process.env.EN_SITE).replace(
'${path}',

View File

@ -18,7 +18,7 @@ const feedbackBlacklist = [
['entreprise', 'statutJuridique', 'index'],
['simulateurs', 'indépendant'],
['simulateurs', 'auto-entrepreneur'],
['simulateurs', 'assimilé-salarié'],
['simulateurs', 'sasu'],
['simulateurs', 'salarié'],
['coronavirus', 'chômagePartiel']
].map(lensPath)

View File

@ -4,32 +4,19 @@ manière dont elles sont employées.
## Principes
Notre organisation souscrit aux principes établis dans le [manifeste des
startups dÉtat](https://beta.gouv.fr/approche/manifeste) que nous rappelons ici :
Notre organisation souscrit aux principes établis dans le [manifeste beta.gouv](https://beta.gouv.fr/approche/manifeste) que nous rappelons ici :
> ### Considère les besoins des usagers avant ceux de ladministration
> ### Les besoins des utilisateurs sont prioritaires sur les besoins de ladministration
>
> Que ce soient des usagers (citoyens, entreprises, associations, etc) ou des agents publics, lobjectif premier est de construire un service utile et facile à utiliser, qui résolve efficacement un problème ou qui contribue à la mise en oeuvre dune politique publique. Le choix des priorités de développement du service est donc guidé par les retours de ses utilisateurs et non par les besoins de la structure.
> Il cible ses investissements sur des sujets qui en valent la peine,
> cest-à-dire où existe un réel irritant supporté par des milliers ou des
> millions de personnes. Il ne soutient pas dinvestissement qui nait obtenu de
> plébiscite usagers au-delà de 6 mois, il incite donc à la confrontation la
> plus rapide au terrain.
> ### Léquipe travaille sans préjuger à lavance du résultat final et progresse en se confrontant le plus rapidement possible à de premiers utilisateurs
>
> Dans un premier temps, la nature et létendue des besoins des utilisateurs ne sont pas déterminées avec précision. Léquipe lance rapidement une première version fonctionnelle du service de façon à tester son utilité et à lajuster selon les retours du terrain par des améliorations successives, appelées « itérations » ; le service, imparfait au départ, saméliore en continu pour élargir progressivement le périmètre couvert et maximiser son impact. En particulier, léquipe ne suit jamais de cahier des charges.
> ### Pilote ses équipes par la finalité plus que par les moyens
> Son mode de gestion repose sur la confiance. Une autonomie maximale est
> concédée aux équipes, pilotées uniquement par leurs objectifs dimpact et non
> par leurs moyens. Il veille en particulier à ne leur imposer aucune des
> contraintes inhérentes à la structure (comitologie, communication, achat,
> standard technologique…).
> ### Saméliore en continu plus quil nobéit à un plan
> Il simpose à lui-même la méthode frugale et incrémentale quil promeut. En
> particulier, son objectif initial est de lancer le plus rapidement possible
> une première startup puis daméliorer en continu ses méthodes, ses produits et
> les compétences de ses membres. Dans son portefeuille, rien nest en
> maintenance, tout est soit en vie, soit stoppé.
> ### Le mode de gestion de léquipe repose sur la confiance.
>
> Une fois son objectif fixé, une autonomie la plus large possible lui est accordée : léquipe a toute latitude pour prendre les décisions nécessaires au succès du service ; elle a la main sur les décisions opérationnelles (recrutement, communication, organisation interne, gestion du budget alloué). Les commanditaires veillent à imposer le minimum des contraintes inhérentes à la structure (comitologie, reporting, communication, achat, standard technologique) afin de garantir à léquipe un espace de liberté pour innover. En contrepartie de cette autonomie, léquipe assure une transparence la plus large possible sur son travail (code source ouvert, mesure de limpact publique, démonstrations fréquentes, documentation facilement accessible)
---
@ -81,7 +68,7 @@ expertes provenant du réseau des URSSAF.
Nous utilisons une petite équipe de développeurs freelances, qui sont
pluridisciplinaires aussi bien sur les aspects techniques, stratégiques et
métiers. Les rémunérations suivent
[la grille des startups dÉtat](https://doc.incubateur.net/communaute/travailler-a-beta-gouv/recrutement/remuneration).
[la grille de beta.gouv](https://doc.incubateur.net/communaute/travailler-a-beta-gouv/recrutement/remuneration).
- **Logiciels et hébergement 💻**

View File

@ -500,12 +500,12 @@ export default function CreateCompany({ statut }: CreateCompanyProps) {
<Link
className="ui__ interactive card button-choice lighter-bg"
to={{
pathname: sitePaths.simulateurs['assimilé-salarié'],
pathname: sitePaths.simulateurs.SASU,
state: { fromCréer: true }
}}
>
<Trans i18nKey="entreprise.ressources.simu.assimilé">
<p>Simulateur de cotisations assimilé-salarié</p>
<p>Simulateur de rémunération pour dirigeant de SASU</p>
<small>
Simuler le montant de vos cotisations sociales pour bien
préparer votre business plan.
@ -525,24 +525,7 @@ export default function CreateCompany({ statut }: CreateCompanyProps) {
</small>
</Trans>
</Link>
{i18n.language === 'fr' && isAutoentrepreneur && (
<a
className="ui__ interactive card button-choice lighter-bg"
href={GuideAutoEntrepreneurUrl}
download="guide-devenir-auto-entrepreneur-en-2020"
>
<p>Guide URSSAF auto-entrepreneur 2020</p>
<small>
Des conseils sur comment préparer son projet pour se lancer dans
la création et une présentation détaillée de votre protection
sociale.
</small>
<br />
<div css="text-align: right">
<small className="ui__ label">PDF</small>
</div>
</a>
)}
{isAutoentrepreneur && <RessourceAutoEntrepreneur />}
{i18n.language === 'fr' && ['EI', 'EIRL', 'EURL'].includes(statut) && (
<a
target="_blank"
@ -587,3 +570,56 @@ const StatutsExample = ({ statut }: StatutsExampleProps) => {
</a>
)
}
export function RessourceAutoEntrepreneur() {
const { i18n } = useTranslation()
return (
<>
<Trans i18nKey="pages.common.ressources-auto-entrepreneur.FAQ">
<a
className="ui__ interactive card button-choice lighter-bg"
href="https://www.autoentrepreneur.urssaf.fr/portail/accueil/une-question/questions-frequentes.html"
target="_blank"
>
<p>Questions fréquentes</p>
<small>
Une liste exhaustive et maintenue à jour de toutes les questions
fréquentes (et moins fréquentes) que l'on est amené à poser en tant
qu'auto-entrepreneur
</small>
</a>
</Trans>
{i18n.language === 'fr' && (
<a
className="ui__ interactive card button-choice lighter-bg"
href={GuideAutoEntrepreneurUrl}
download="guide-devenir-auto-entrepreneur-en-2020"
>
<p>Guide partique Urssaf 2020</p>
<small>
Des conseils pour les auto-entrepreneurs : comment préparer son
projet pour se lancer dans la création et une présentation détaillée
de votre protection sociale.
</small>
<br />
<div css="text-align: right">
<small className="ui__ label">PDF</small>
</div>
</a>
)}
<Trans i18nKey="pages.common.ressources-auto-entrepreneur.impôt">
<a
className="ui__ interactive card button-choice lighter-bg"
target="_blank"
href="https://www.impots.gouv.fr/portail/professionnel/je-choisis-le-regime-du-micro-entrepreneur-auto-entrepreneur"
>
<p>Comment déclarer son revenu aux impôts ?</p>
<small>
Les informations officielles de l'administration fiscale concernant
les auto-entrepreneurs et le régime de la micro-entreprise.
</small>
</a>
</Trans>
</>
)
}

View File

@ -20,7 +20,7 @@ import * as Animate from 'Components/ui/animate'
import AideOrganismeLocal from './AideOrganismeLocal'
import businessPlan from './businessPlan.svg'
const infereRégimeFromCompanyDetails = (company: Company | null) => {
const infereDirigeantFromCompanyDetails = (company: Company | null) => {
if (!company) {
return null
}
@ -34,11 +34,8 @@ const infereRégimeFromCompanyDetails = (company: Company | null) => {
return 'indépendant'
}
if (
['SASU', 'SAS'].includes(company.statutJuridique ?? '') ||
(company.statutJuridique === 'SARL' && !company.isDirigeantMajoritaire)
) {
return 'assimilé-salarié'
if (['SASU', 'SAS'].includes(company.statutJuridique ?? '')) {
return 'SASU'
}
return null
@ -50,7 +47,7 @@ export default function SocialSecurity() {
(state: RootState) => state.inFranceApp.existingCompany
)
const sitePaths = useContext(SitePathsContext)
const régime = infereRégimeFromCompanyDetails(company)
const dirigeant = infereDirigeantFromCompanyDetails(company)
return (
<>
@ -109,11 +106,11 @@ export default function SocialSecurity() {
</Link>
)}
{!!régime && (
{!!dirigeant && (
<Link
className="ui__ interactive card box"
to={{
pathname: sitePaths.simulateurs[régime],
pathname: sitePaths.simulateurs[dirigeant],
state: {
fromGérer: true
}
@ -124,7 +121,7 @@ export default function SocialSecurity() {
<h3>Calculer mon revenu net de cotisations</h3>
<p className="ui__ notice">
Estimez précisément le montant de vos cotisations grâce au
simulateur {{ régime }} de l'Urssaf
simulateur {{ régime: dirigeant }} de l'Urssaf
</p>
</Trans>
<div className="ui__ small simple button hide-mobile">
@ -132,7 +129,7 @@ export default function SocialSecurity() {
</div>
</Link>
)}
{régime !== 'auto-entrepreneur' && (
{dirigeant !== 'auto-entrepreneur' && (
<>
<Link
className="ui__ interactive card box"
@ -141,13 +138,12 @@ export default function SocialSecurity() {
pathname: sitePaths.simulateurs['chômage-partiel']
}}
>
<div className="ui__ big box-icon">{emoji('😷')}</div>
<div className="ui__ big box-icon">{emoji('🕟')}</div>
<Trans i18nKey="gérer.choix.chomage-partiel">
<h3>Connaître les aides</h3>
<h3>Activité partielle</h3>
<p className="ui__ notice">
Calculez le montant des indemnités de chômage partiel.
Découvrez la liste des dispositifs d'aides aux
entreprises.
Calculez le reste à payer après remboursement de l'État
lorsque vous activez le dispositif pour un employé.
</p>
</Trans>
<span className="ui__ label">Covid-19</span>

View File

@ -21,7 +21,7 @@ export default function SchemeChoice() {
</h1>
<p>
<Link
to={sitePaths.simulateurs['assimilé-salarié']}
to={sitePaths.simulateurs.SASU}
className="ui__ interactive card light-bg button-choice"
>
{emoji('☂')}

View File

@ -4,7 +4,7 @@ import { Route } from 'react-router-dom'
import { inIframe } from '../../../../utils'
import SimulateurChômagePartiel from '../Simulateurs/ChômagePartiel'
import SimulateurArtisteAuteur from '../Simulateurs/ArtisteAuteur'
import SimulateurAssimiléSalarié from '../Simulateurs/AssimiléSalarié'
import SimulateurAssimiléSalarié from '../Simulateurs/RémunérationSASU'
import SimulateurAutoEntrepreneur from '../Simulateurs/AutoEntrepreneur'
import SimulateurIndépendant from '../Simulateurs/Indépendant'
import DemandeMobilite from '../Gérer/DemandeMobilite'

View File

@ -46,7 +46,9 @@ export default function Landing() {
className="ui__ plain small button"
>
{emoji('😷')}{' '}
<Trans>Covid-19 : Calculer l'impact du chômage partiel</Trans>
<Trans i18nKey="landing.covid19">
Covid-19 : Calculer l'impact du chômage partiel
</Trans>
</Link>
</div>
<Link
@ -105,8 +107,8 @@ export default function Landing() {
<strong>équipe autonome et pluridisciplinaire</strong> au sein de l
<a href="https://www.urssaf.fr">Urssaf</a>. Nous avons à coeur
dêtre au près de vos besoins afin daméliorer en permanence ce site
conformément à la méthode des{' '}
<a href="https://beta.gouv.fr">Startup dÉtat</a>.
conformément à l'approche{' '}
<a href="https://beta.gouv.fr/approche/manifeste">beta.gouv.fr</a>.
</p>
<p>
Nous avons développé ce site pour{' '}

View File

@ -1,45 +0,0 @@
import SalaryExplanation from 'Components/SalaryExplanation'
import Warning from 'Components/SimulateurWarning'
import Simulation from 'Components/Simulation'
import assimiléConfig from 'Components/simulationConfigs/assimilé.yaml'
import { IsEmbeddedContext } from 'Components/utils/embeddedContext'
import React, { useContext } from 'react'
import { Helmet } from 'react-helmet'
import { Trans, useTranslation } from 'react-i18next'
export default function AssimiléSalarié() {
const { t } = useTranslation()
const inIframe = useContext(IsEmbeddedContext)
return (
<>
<Helmet>
<title>
{t(
'simulateurs.assimilé-salarié.page.titre',
'Assimilé salarié : simulateur officiel de revenus et cotisations'
)}
</title>
<meta
name="description"
content={t(
'simulateurs.assimilé-salarié.page.description',
"Estimez vos revenus en tant qu'assimilé salarié à partir de votre chiffre d'affaire (pour les gérants de SAS, SASU et SARL minoritaire). Prise en compte de toutes les cotisations et de l'impôt sur le revenu. Simulateur officiel de l'Urssaf"
)}
/>
</Helmet>
{!inIframe && (
<h1>
<Trans i18nKey="simulateurs.assimilé-salarié.titre">
Simulateur de revenus assimilé salarié
</Trans>
</h1>
)}
<Warning simulateur="assimilé-salarié" />
<Simulation
config={assimiléConfig}
explanations={<SalaryExplanation />}
/>
</>
)
}

View File

@ -5,36 +5,46 @@ import StackedBarChart from 'Components/StackedBarChart'
import { ThemeColorsContext } from 'Components/utils/colors'
import { IsEmbeddedContext } from 'Components/utils/embeddedContext'
import { EngineContext } from 'Components/utils/EngineContext'
import Meta from 'Components/utils/Meta'
import { SitePathsContext } from 'Components/utils/SitePathsContext'
import { default as React, useContext } from 'react'
import { Helmet } from 'react-helmet'
import { Trans, useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { targetUnitSelector } from 'Selectors/simulationSelectors'
import AutoEntrepreneurPreview from './images/AutoEntrepreneurPreview.png'
import Emoji from 'Components/utils/Emoji'
import { RessourceAutoEntrepreneur } from '../Créer/CreationChecklist'
import RuleLink from 'Components/RuleLink'
export default function AutoEntrepreneur() {
const inIframe = useContext(IsEmbeddedContext)
const { t } = useTranslation()
const { t, i18n } = useTranslation()
const META = {
title: t(
'pages.simulateurs.auto-entrepreneur.meta.titre',
'Auto-entrepreneurs : simulateur de revenus'
),
description: t(
'pages.simulateurs.auto-entrepreneur.meta.description',
"Calcul de votre revenu à partir du chiffre d'affaires, après déduction des cotisations et de l'impôt sur le revenu."
),
ogTitle: t(
'pages.simulateurs.auto-entrepreneur.meta.ogTitle',
'Auto-entrepreneur : calculez rapidement votre revenu net à partir du CA et vice-versa'
),
ogDescription: t(
'pages.simulateurs.auto-entrepreneur.meta.ogDescription',
"Grâce au simulateur de revenu auto-entrepreneur développé par l'Urssaf, vous pourrez estimer le montant de vos revenus en fonction de votre chiffre d'affaire mensuel ou annuel pour mieux gérer votre trésorerie. Ou dans le sens inverse : savoir quel montant facturer pour atteindre un certain revenu."
),
...(i18n.language === 'fr' && { ogImage: AutoEntrepreneurPreview })
}
const isEmbedded = React.useContext(IsEmbeddedContext)
return (
<>
<Helmet>
<title>
{t(
'simulateurs.auto-entrepreneur.page.titre',
'Auto-entrepreneur : simulateur officiel de revenus et de cotisations'
)}
</title>
<meta
name="description"
content={t(
'simulateurs.auto-entrepreneur.page.description',
"Estimez vos revenus en tant qu'auto-entrepreneur à partir de votre chiffre d'affaire. Prise en compte de toutes les cotisations et de l'impôt sur le revenu. Simulateur officiel de l'Urssaf"
)}
/>
</Helmet>
<Meta {...META} />
{!inIframe && (
<h1>
<Trans i18nKey="simulateurs.auto-entrepreneur.titre">
<Trans i18nKey="pages.simulateurs.auto-entrepreneur.titre">
Simulateur de revenus auto-entrepreneur
</Trans>
</h1>
@ -44,6 +54,7 @@ export default function AutoEntrepreneur() {
config={autoEntrepreneurConfig}
explanations={<ExplanationSection />}
/>
{!isEmbedded && <SeoExplanations />}
</>
)
}
@ -87,3 +98,74 @@ function ExplanationSection() {
</section>
)
}
function SeoExplanations() {
const sitePaths = useContext(SitePathsContext)
return (
<Trans i18nKey="pages.simulateurs.auto-entrepreneur.seo explanation">
<h2>Comment calculer le revenu net d'un auto-entrepreneur ?</h2>
<p>
Un auto-entrepreneur doit payer des cotisations sociales à
l'administration. Ces cotisations servent au financement de la sécurité
sociale, et ouvrent des droits pour la retraite ou pour l'assurance
maladie. Elle permettent également de financer la formation
professionnelle. Leur montant varie en fonction du type d'activité.
</p>
<p>
<Emoji emoji="👉" />{' '}
<RuleLink dottedName="dirigeant . auto-entrepreneur . cotisations et contributions">
Voir le détail du calcul des cotisations
</RuleLink>
</p>
<p>
Mais ce n'est pas la seule dépense : pour calculer le revenu net, il
faut aussi prendre en compte toutes les dépenses effectuées dans le
cadre de l'activité professionnelle (équipements, matière premières,
local, transport). Bien qu'elles ne soient pas utilisées pour le calcul
des cotisations et de l'impôt, elles doivent être prises en compte pour
vérifier si l'activité est viable économiquement.
</p>
<p>
La formule de calcul complète est donc :
<blockquote>
<strong>
Revenu net = Chiffres d'affaires Cotisations sociales Dépenses
professionnelles
</strong>
</blockquote>
</p>
<h2>
Comment calculer l'impôt sur le revenu pour un auto-entrepreneur ?
</h2>
<p>
Si vous avez opté pour le versement libératoire lors de la création de
votre auto-entreprise, l'impôt sur le revenu est payé en même temps que
les cotisations sociales.
</p>
<p>
<Emoji emoji="👉" />{' '}
<RuleLink dottedName="dirigeant . auto-entrepreneur . impôt . versement libératoire . montant">
Voir comment est calculé le montant du versement libératoire
</RuleLink>
</p>
<p>
Sinon, vous serez imposé selon le barème standard de l'impôt sur le
revenu. Le revenu imposable est alors calculé comme un pourcentage du
chiffre d'affaires. C'est qu'on appel l'abattement forfaitaire. Ce
pourcentage varie en fonction du type d'activité excercé. On dit qu'il
est forfaitaire car il ne prends pas en compte les dépenses réelles
effectuées dans le cadre de l'activité.
</p>
<p>
<Emoji emoji="👉" />{' '}
<RuleLink dottedName="dirigeant . auto-entrepreneur . impôt . revenu abattu">
Voir le détail du calcul du revenu abattu pour un auto-entrepreneur
</RuleLink>
</p>
<h2>Ressources utiles</h2>
<div style={{ display: 'flex' }}>
<RessourceAutoEntrepreneur />
</div>
</Trans>
)
}

View File

@ -9,11 +9,12 @@ import { Markdown } from 'Components/utils/markdown'
import { ScrollToTop } from 'Components/utils/Scroll'
import { EvaluatedRule, formatValue } from 'publicodes'
import React, { useContext, useEffect, useState } from 'react'
import { Helmet } from 'react-helmet'
import { Trans, useTranslation } from 'react-i18next'
import { DottedName } from 'Rules'
import styled from 'styled-components'
import { productionMode } from '../../../../utils'
import ChômagePartielPreview from './images/ChômagePartielPreview.png'
import Meta from 'Components/utils/Meta'
declare global {
interface Window {
@ -36,41 +37,34 @@ export default function ChômagePartiel() {
document.body.removeChild(script)
}
}, [])
const { t } = useTranslation()
const { t, i18n } = useTranslation()
const META = {
title: t(
'pages.simulateurs.chômage-partiel.meta.titre',
"Calcul de l'indemnité chômage partiel : le simulateur Urssaf"
),
description: t(
'pages.simulateurs.chômage-partiel.meta.description',
"Calcul du revenu net pour l'employé et du reste à charge pour l'employeur après remboursement de l'Etat, en prenant en compte toutes les cotisations sociales."
),
ogTitle: t(
'pages.simulateurs.chômage-partiel.meta.ogTitle',
"Simulateur chômage partiel : découvrez l'impact sur le revenu net salarié et le coût total employeur."
),
ogDescription: t(
'pages.simulateurs.chômage-partiel.meta.ogDescription',
"Accédez à une première estimation en saisissant à partir d'un salaire brut. Vous pourrez ensuite personaliser votre situation (temps partiel, convention, etc). Prends en compte la totalité des cotisations, y compris celles spécifiques à l'indemnité (CSG et CRDS)."
),
...(i18n.language === 'fr' && { ogImage: ChômagePartielPreview })
}
return (
<>
<Helmet>
<title>
{t(
'coronavirus.page.titre',
'Coronavirus et chômage partiel : quel impact sur vos revenus ?'
)}
</title>
<meta
name="description"
content={t(
'coronavirus.page.description',
'Estimez le revenus net avec les indemnités de chômage partiel'
)}
/>
</Helmet>
<Meta {...META} />
<ScrollToTop />
{!inIframe && (
<Trans i18nKey="coronavirus.description">
<h1>Covid-19 : Simulateur de chômage partiel</h1>
<h2 style={{ marginTop: 0 }}>
<small>Comment calculer l'indemnité de chômage partiel ?</small>
</h2>
<p>
Ce simulateur permet de connaître le revenu net versé au salarié,
ainsi que le coût total restant à charge pour l'entreprise en cas de
recours à l'activité partielle.
</p>
<p>
Toutes les indemnités d'activité partielle sont prises en compte,
ainsi que les cotisations qui leur sont associées.
</p>
</Trans>
)}
@ -361,21 +355,38 @@ const ResultTable = styled.table`
`
function TextExplanations() {
const { i18n } = useTranslation()
if (i18n.language !== 'fr') {
return null
}
const { t } = useTranslation()
return (
<Markdown
css={`
margin-top: 2rem;
`}
source={`
source={t(
'pages.simulateurs.chômage-partiel.explications seo',
`
[👨💻 Intégrer ce simulateur sur votre site](/intégration/iframe?module=simulateur-chomage-partiel)
## Comment calculer l'indemnité d'activité partielle ?
## Pour l'entreprise : déclarer une activité partielle 📫
L'indemnité d'activité partielle de base est fixée par la loi à **70% du brut**. Elle est proratisée en fonction du nombre d'heures chômées. Pour un salarié à 2300 brut mensuel, qui travaille à 50% de son temps usuel, cela donne **2300 × 50% × 70% = 805 **
A cette indemnité de base s'ajoute l'indemnité complémentaire pour les salaires proches du SMIC. Ce complément intervient lorsque le cumul de la rémunération et de l'indemnité de base est en dessous d'un SMIC net.
Ces indemnités sont prises en charge par l'employeur, qui sera ensuite remboursé en parti ou en totalité par l'Etat.
👉 [Voir le détail du calcul de l'indemnité](/documentation/contrat-salarié/activité-partielle/indemnités)
## Comment calculer la part remboursée par l'État ?
L'Etat prend en charge une partie de l'indemnité partielle pour les salaires allant jusqu'à **4,5 SMIC**, avec un minimum à 8,03 par heures chômée.
Concrètement, cela abouti à une prise en charge à **100%** pour les salaires proches du SMIC. Celle-ci diminue progressivement jusqu'à se stabiliser à **93%** pour les salaires compris **entre 2000 et 7000 ** (salaire correspondant à la limite de 4.5 SMIC).
👉 [Voir le détail du calcul du remboursement de l'indemnité](/documentation/contrat-salarié/activité-partielle/indemnisation-entreprise)
## Comment déclarer une activité partielle ?
Face à la crise du coronavirus, les modalités de passage en activité partielle
ont été allégées. L'employeur est autorisé a placer ses salariés en activité
@ -384,13 +395,16 @@ ensuite d'un délai de **30 jours** pour se mettre en règle. Les
indemnités seront versées avec un effet rétro-actif débutant à la mise en place
du chômage partiel.
[ Effectuer la demande de chômage partiel](https://www.service-public.fr/professionnels-entreprises/vosdroits/R31001).
👉 [Effectuer la demande de chômage partiel](https://www.service-public.fr/professionnels-entreprises/vosdroits/R31001)
> #### Cotisations sociales
> L'indemnité d'activité partielle est soumise à la CSG/CRDS et à une
contribution maladie dans certains cas.
[ En savoir plus sur le site de l'URSSAF](https://www.urssaf.fr/portail/home/actualites/toute-lactualite-employeur/activite-partielle--nouveau-disp.html)
`}
## Quelles sont les cotisations sociales à payer pour l'indemnité d'activité partielle ?
L'indemnité d'activité partielle est soumise à la CSG/CRDS et à une
contribution maladie dans certains cas. Pour en savoir plus, voir la page explicative sur [le site de l'URSSAF](https://www.urssaf.fr/portail/home/actualites/toute-lactualite-employeur/activite-partielle--nouveau-disp.html).
`
)}
/>
)
}

View File

@ -25,7 +25,7 @@ export function useSimulatorsMetadata() {
'simulateurs.résumé.assimilé',
"Calculer le revenu d'un dirigeant de SAS, SASU ou SARL minoritaire"
),
sitePath: sitePaths.simulateurs['assimilé-salarié']
sitePath: sitePaths.simulateurs.SASU
},
{
name: t('Indépendant'),

View File

@ -0,0 +1,98 @@
import RuleLink from 'Components/RuleLink'
import SalaryExplanation from 'Components/SalaryExplanation'
import Warning from 'Components/SimulateurWarning'
import Simulation from 'Components/Simulation'
import assimiléConfig from 'Components/simulationConfigs/assimilé.yaml'
import { IsEmbeddedContext } from 'Components/utils/embeddedContext'
import Meta from 'Components/utils/Meta'
import React, { useContext } from 'react'
import { Trans, useTranslation } from 'react-i18next'
import RémunérationSASUPreview from './images/RémunérationSASUPreview.png'
export default function RémunérationSASU() {
const { t } = useTranslation()
const META = {
title: t(
'pages.simulateurs.sasu.meta.titre',
'Dirigeant de SASU : simulateur de revenus Urssaf'
),
description: t(
'pages.simulateurs.sasu.meta.description',
"Calcul du salaire net à partir du chiffre d'affaires + charges et vice-versa."
),
ogTitle: t(
'pages.simulateurs.sasu.meta.ogTitle',
'Rémunération du dirigeant de SASU : un simulateur pour connaître votre salaire net'
),
ogDescription: t(
'pages.simulateurs.sasu.meta.ogDescription',
'En tant que dirigeant assimilé-salarié, calculez immédiatement votre revenu net après impôt à partir du total alloué à votre rémunération.'
),
ogImage: RémunérationSASUPreview
}
const inIframe = useContext(IsEmbeddedContext)
return (
<>
<Meta {...META} />
{!inIframe && (
<h1>
<Trans i18nKey="pages.simulateurs.sasu.titre">
Simulateur de revenus pour dirigeant de SASU
</Trans>
</h1>
)}
<Warning simulateur="SASU" />
<Simulation
config={assimiléConfig}
explanations={<SalaryExplanation />}
/>
{!inIframe && <SeoExplanations />}
</>
)
}
function SeoExplanations() {
return (
<Trans i18nKey="pages.simulateurs.dirigean sasu.explication seo">
<h2>Comment calculer le salaire d'un dirigeant de SASU ? </h2>
<p>
Comme pour un salarié classique, le <strong>dirigeant de sasu</strong>{' '}
paye des cotisations sociales sur la rémunération qu'il se verse. Les
cotisations sont calculées de la même manière que pour le salarié : elle
sont décomposée en partie employeur et partie salarié et sont exprimée
comme un pourcentage du salaire brut.
</p>
<p>
En revanche, le dirigeant assimilé-salarié ne paye pas de{' '}
<strong>cotisations chômage</strong>. Par ailleurs, il ne bénéficie pas
de la{' '}
<RuleLink dottedName="contrat salarié . réduction générale">
réduction générale de cotisations
</RuleLink>{' '}
ni des dispositifs encadrés par le code du travail comme les{' '}
<RuleLink dottedName="contrat salarié . temps de travail . heures supplémentaires">
heures supplémentaires
</RuleLink>{' '}
ou les primes.
</p>
<p>
Il peut en revanche prétendre à la{' '}
<RuleLink dottedName="dirigeant . assimilé salarié . réduction ACRE">
réduction ACRE
</RuleLink>{' '}
en debut d'activité, sous certaines conditions.
</p>
<p>
Vous pouvez utiliser notre simulateur pour calculer la{' '}
<strong>rémunération nette</strong> à partir d'un montant superbrut
alloué à la rémunération du dirigeant. Il vous suffit pour cela saisir
la rémunération annoncée dans la case total chargé. La simulation peut
ensuite être affinée en répondant aux différentes questions.
</p>
</Trans>
)
}

View File

@ -5,38 +5,44 @@ import SalaryExplanation from 'Components/SalaryExplanation'
import Simulation from 'Components/Simulation'
import salariéConfig from 'Components/simulationConfigs/salarié.yaml'
import { IsEmbeddedContext } from 'Components/utils/embeddedContext'
import Meta from 'Components/utils/Meta'
import { SitePathsContext } from 'Components/utils/SitePathsContext'
import urlIllustrationNetBrutEn from 'Images/illustration-net-brut-en.png'
import urlIllustrationNetBrut from 'Images/illustration-net-brut.png'
import { default as React, useContext } from 'react'
import { Helmet } from 'react-helmet'
import { Trans, useTranslation } from 'react-i18next'
import { Link } from 'react-router-dom'
import urlIllustrationNetBrutEn from './images/illustration-net-brut-en.png'
import urlIllustrationNetBrut from './images/illustration-net-brut.png'
import salaireBrutNetPreviewEN from './images/SalaireBrutNetPreviewEN.png'
import salaireBrutNetPreviewFR from './images/SalaireBrutNetPreviewFR.png'
export default function Salarié() {
const { t } = useTranslation()
const { t, i18n } = useTranslation()
const META = {
title: t(
'pages.simulateurs.salarié.meta.titre',
'Salaire brut / net : le convertisseur Urssaf'
),
description: t(
'pages.simulateurs.salarié.meta.description',
"Calcul du salaire net, net après impôt et coût total employeur. Beaucoup d'options disponibles (cadre, stage, apprentissage, heures supplémentaires, etc.)"
),
ogTitle: t(
'pages.simulateurs.salarié.meta.ogTitle',
'Salaire brut, net, net après impôt, coût total : le simulateur ultime pour salariés et employeurs'
),
ogDescription: t(
'pages.simulateurs.salarié.meta.ogDescription',
"En tant que salarié, calculez immédiatement votre revenu net après impôt à partir du brut mensuel ou annuel. En tant qu'employé, estimez le coût total d'une embauche à partir du brut. Ce simulateur est développé avec les experts de l'Urssaf, et il adapte les calculs à votre situation (statut cadre, stage, apprentissage, heures supplémentaire, titre-restaurants, mutuelle, temps partiel, convention collective, etc.)"
),
ogImage:
i18n.language === 'fr' ? salaireBrutNetPreviewFR : salaireBrutNetPreviewEN
}
const isEmbedded = React.useContext(IsEmbeddedContext)
return (
<>
<Helmet>
<title>
{t(
'simulateurs.salarié.page.titre',
"Calcul du salaire brut / net : le simulateur de l'Urssaf"
)}
</title>
<meta
name="description"
content={t(
'simulateurs.salarié.page.description',
'Estimez les cotisations sociales pour un salarié à partir du salaire brut, net ou "superbrut". Prise en compte de toutes les cotisations du régime général et de l\'impôt sur le revenu. Découvrez les contreparties garanties par sécurité sociale'
)}
/>
</Helmet>
<Meta {...META} />
<h1>
<Trans i18nKey="simulateurs.salarié.titre">
<Trans i18nKey="pages.simulateurs.salarié.titre">
Simulateur de revenus pour salarié
</Trans>
</h1>
@ -48,12 +54,11 @@ export default function Salarié() {
}
function SeoExplanations() {
const { t, i18n } = useTranslation()
const sitePaths = useContext(SitePathsContext)
const { i18n } = useTranslation()
return (
<Trans i18nKey="simulateurs.salarié.page.explication seo">
<h2>Calculer son salaire net</h2>
<Trans i18nKey="pages.simulateurs.salarié.explication seo">
<h2>Comment calculer le salaire net ?</h2>
<p>
Lors de l'entretien d'embauche l'employeur propose en général une
@ -65,8 +70,8 @@ function SeoExplanations() {
Vous pouvez utiliser notre simulateur pour convertir le{' '}
<strong>salaire brut en net</strong> : il vous suffit pour cela saisir
la rémunération annoncée dans la case salaire brut. La simulation
peut-être affinée en répondant aux différentes questions (sur le CDD,
statut cadre, etc.).
peut-être affinée en répondant aux différentes questions (CDD, statut
cadre, heures supplémentaires, temps partiel, titre-restaurants, etc.).
</p>
<img
src={
@ -91,7 +96,7 @@ function SeoExplanations() {
.
</p>
<h2>Coût d'embauche</h2>
<h2>Comment calculer le coût d'embauche ?</h2>
<p>
Si vous cherchez à embaucher, vous pouvez calculer le coût total de la
@ -149,19 +154,15 @@ export const SalarySimulation = () => {
}
/>
<br />
{/** L'équipe Code Du Travail Numérique ne souhaite pas référencer
* le simulateur de chômage partiel sur son site. */}
{!document.referrer?.includes('code.travail.gouv.fr') && (
<Banner icon={'😷'}>
<Trans>
<strong>Covid-19 et chômage partiel </strong>:{' '}
<Link to={sitePaths.simulateurs['chômage-partiel']}>
Calculez votre indemnité
</Link>
</Trans>
</Banner>
)}
<PreviousSimulationBanner />
<Banner icon={'👨‍✈️'}>
<Trans>
Vous êtes dirigeant d'une SAS(U) ?{' '}
<Link to={sitePaths.simulateurs.SASU}>
Accéder au simulateur de revenu dédié
</Link>
</Trans>
</Banner>
</>
)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -5,7 +5,7 @@ import React, { useContext, useEffect } from 'react'
import { Trans } from 'react-i18next'
import { Link, Route, Switch, useLocation } from 'react-router-dom'
import ArtisteAuteur from './ArtisteAuteur'
import AssimiléSalarié from './AssimiléSalarié'
import AssimiléSalarié from './RémunérationSASU'
import ChômagePartiel from './ChômagePartiel'
import AutoEntrepreneur from './AutoEntrepreneur'
import Home from './Home'
@ -64,10 +64,7 @@ export default function Simulateurs() {
path={sitePaths.simulateurs.comparaison}
component={SchemeComparaison}
/>
<Route
path={sitePaths.simulateurs['assimilé-salarié']}
component={AssimiléSalarié}
/>
<Route path={sitePaths.simulateurs.SASU} component={AssimiléSalarié} />
<Route
path={sitePaths.simulateurs.indépendant}
component={Indépendant}

View File

@ -49,11 +49,11 @@ const sitePathsFr = {
},
simulateurs: {
index: '/simulateurs',
'assimilé-salarié': '/assimilé-salarié',
SASU: '/dirigeant-sasu',
indépendant: '/indépendant',
'auto-entrepreneur': '/auto-entrepreneur',
comparaison: '/comparaison-régimes-sociaux',
salarié: '/salarié',
salarié: '/salaire-brut-net',
'artiste-auteur': '/artiste-auteur',
'chômage-partiel': '/chômage-partiel',
économieCollaborative: {
@ -98,12 +98,12 @@ const sitePathsEn = {
formulaireMobilité: '/posting-demand'
},
simulateurs: {
index: '/simulators',
'assimilé-salarié': '/assimile-salarie',
index: '/calculators',
SASU: '/sasu-chairman',
indépendant: '/independant',
'auto-entrepreneur': '/auto-entrepreneur',
comparaison: '/social-scheme-comparaison',
salarié: '/salaried',
salarié: '/salary',
'artiste-auteur': '/artist-author',
'chômage-partiel': '/partial-unemployement',
économieCollaborative: {

View File

@ -116,11 +116,7 @@ module.exports = {
new PrerenderSPAPlugin({
...prerenderConfig(),
outputDir: path.resolve('dist', 'prerender', 'infrance'),
routes: [
'/',
'/social-security/salaried',
'/iframes/simulateur-embauche'
],
routes: ['/', '/calculators/salary', '/iframes/simulateur-embauche'],
indexPath: path.resolve('dist', 'infrance.html')
}),
process.env.ANALYZE_BUNDLE !== '1' &&
@ -129,10 +125,10 @@ module.exports = {
outputDir: path.resolve('dist', 'prerender', 'mon-entreprise'),
routes: [
'/',
'/simulateurs/salarié',
'/simulateurs/salaire-brut-net',
'/simulateurs/auto-entrepreneur',
'/simulateurs/artiste-auteur',
'/simulateurs/assimilé-salarié',
'/simulateurs/dirigeant-sasu',
'/simulateurs/indépendant',
'/simulateurs/chômage-partiel',
'/créer',

View File

@ -1,69 +1,7 @@
# Redirects following architectural changes on the end of October 2018
[[redirects]]
from="/s%C3%A9curit%C3%A9-sociale"
to="/g%C3%A9rer"
status = 301
[[redirects]]
from="/d%C3%A9marches-embauche"
to="/g%C3%A9rer/embaucher"
status = 301
[[redirects]]
from="/s%C3%A9curit%C3%A9-sociale/s%C3%A9lection-du-r%C3%A9gime"
to="/simulateurs"
status = 301
[[redirects]]
from="/s%C3%A9curit%C3%A9-sociale/*"
to="/simulateurs/:splat"
status = 301
[[redirects]]
from="/entreprise/cr%C3%A9er-une-*"
to="/cr%C3%A9er/:splat"
status = 301
[[redirects]]
from="/entreprise/devenir-*"
to="/cr%C3%A9er/:splat"
status = 301
[[redirects]]
from="/entreprise/*"
to="/cr%C3%A9er/:splat"
status = 301
[[redirects]]
from="/social-security"
to="/manage"
status = 301
[[redirects]]
from="/social-security/assimilated-salaried"
to="/social-security/assimile-salarie"
status = 301
[[redirects]]
from="/social-security/*"
to="/simulators/:splat"
status = 301
[[redirects]]
from="/company/create-a-*"
to="/create/:splat"
status = 301
[[redirects]]
from="/company/become-*"
to="/create/:splat"
status = 301
[[redirects]]
from="/company/*"
to="/create/:splat"
status = 301
############
# Redirects following architectural changes
# FR | coronavirus -> simulateurs/chômage-partiel
[[redirects]]
from="/coronavirus"
to="/simulateurs/ch%C3%B4mage-partiel"
@ -74,12 +12,40 @@
to="/simulateurs/%C3%A9conomie-collaborative"
status = 301
# EN | salaried -> salary
[[redirects]]
from="/simulators/salaried"
to="/calcultors/salary"
status = 301
# EN | simulators -> calculators
[[redirects]]
from="/simulators/*"
to="/calcultors/:splat"
status = 301
# FR | salarié -> salaire-brut-net
[[redirects]]
from="/simulateurs/salari%C3%A9"
to="/simulateurs/salaire-brut-net"
status = 301
# FR | assimilé-salarié -> dirigeant-sasu
[[redirects]]
from="/simulateurs/assimil%C3%A9-salari%C3%A9"
to="/simulateurs/dirigeant-sasu"
status = 301
# SEO redirect
[[redirects]]
from = "/documentation/contrat-salari%C3%A9/salaire/*"
to = "/documentation/contrat-salari%C3%A9/r%C3%A9mun%C3%A9ration/:splat"
status = 301
############
# Redirects for single page app config & prerendering purpose
# InFrance PRODUCTION settings
[[redirects]]
from = "https://www.mycompanyinfrance.fr/*"

View File

@ -105,7 +105,7 @@ const StyledRow = styled.div`
}
.element .result,
.element .nodeValue {
.element > .variable > .nodeHead > .nodeValue {
display: none;
}
:first-child {

View File

@ -17,7 +17,7 @@ export const mecanismMax = (recurse, v) => {
}
return Math.max(a, b)
}
const evaluate = evaluateArray(max, Number.NEGATIVE_INFINITY)
const evaluate = evaluateArray(max, false)
const jsx = ({ nodeValue, explanation, unit }) => (
<Mecanism name="le maximum de" value={nodeValue} unit={unit}>