commit
900b1c79e6
|
@ -88,7 +88,7 @@ export default compose(
|
|||
controls: analysisWithDefaultsSelector(state)?.controls,
|
||||
inversionFail: analysisWithDefaultsSelector(state)?.cache?.inversionFail,
|
||||
key: props.language,
|
||||
hiddenControls: state.hiddenControls
|
||||
hiddenControls: state.simulation.hiddenControls
|
||||
}),
|
||||
{
|
||||
goToQuestion,
|
||||
|
|
|
@ -33,11 +33,15 @@ export default withLanguage(function SimulateurWarning({
|
|||
<li>
|
||||
<T k="simulateurs.warning.impôt">
|
||||
L'impôt sur le revenu est calculé pour un célibataire sans
|
||||
enfant et sans autre revenu.
|
||||
</T>{' '}
|
||||
{simulateur == 'auto-entreprise' && language === 'fr' && (
|
||||
<span>L'impôt libératoire n'est pas encore intégré.</span>
|
||||
)}
|
||||
enfant et sans autre revenu.{' '}
|
||||
{simulateur == 'auto-entreprise' && language === 'fr' && (
|
||||
<>
|
||||
L'abattement forfaitaire pour les auto entrepreneur est
|
||||
intégré. En revanche, l'option pour le versement libératoire
|
||||
de l'impôt sur le revenu n'est pas encore présente.
|
||||
</>
|
||||
)}
|
||||
</T>
|
||||
</li>
|
||||
<li>
|
||||
<T k="simulateurs.warning.urssaf">
|
||||
|
|
|
@ -7,11 +7,11 @@ objectifs:
|
|||
- contrat salarié . salaire . net
|
||||
- impôt . neutre
|
||||
- contrat salarié . salaire . net après impôt
|
||||
# - icône: 🏢
|
||||
# nom: Mon entreprise
|
||||
# objectifs:
|
||||
# - entreprise . charges
|
||||
# - entreprise . chiffre d'affaires
|
||||
- icône: 🏢
|
||||
nom: Mon entreprise
|
||||
objectifs:
|
||||
- entreprise . charges
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
|
||||
questions:
|
||||
à l'affiche:
|
||||
|
|
|
@ -8,20 +8,18 @@ objectifs:
|
|||
- indépendant . revenu professionnel
|
||||
- impôt
|
||||
- revenu net après impôt
|
||||
# - icône: 🏢
|
||||
# nom: Mon entreprise
|
||||
# objectifs:
|
||||
# - entreprise . charges
|
||||
# - entreprise . chiffre d'affaires
|
||||
- icône: 🏢
|
||||
nom: Mon entreprise
|
||||
objectifs:
|
||||
- entreprise . charges
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
|
||||
questions:
|
||||
à l'affiche:
|
||||
Type d'activité: entreprise . catégorie d'activité
|
||||
ACRE: entreprise . année d'activité
|
||||
Charges: entreprise . charges
|
||||
liste noire:
|
||||
- entreprise . charges
|
||||
- entreprise . rémunération du dirigeant
|
||||
|
||||
situation:
|
||||
indépendant: oui
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
right: 0;
|
||||
top: -20px;
|
||||
opacity: 0;
|
||||
animation: evaporate 1.6s ease-out;
|
||||
animation: evaporate 2.5s ease-out;
|
||||
transform: scaleY(0.1);
|
||||
}
|
||||
@keyframes evaporate {
|
||||
|
|
|
@ -13,32 +13,15 @@ type State = {
|
|||
}
|
||||
export default withLanguage(
|
||||
class AnimatedTargetValue extends Component<Props, State> {
|
||||
previousValue: ?number = null
|
||||
timeoutId: ?TimeoutID = null
|
||||
state = { difference: 0 }
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (prevProps.value === this.props.value) {
|
||||
return
|
||||
}
|
||||
if (this.timeoutId) {
|
||||
clearTimeout(this.timeoutId)
|
||||
}
|
||||
this.previousValue =
|
||||
this.previousValue === null ? prevProps.value : this.previousValue
|
||||
|
||||
this.timeoutId = setTimeout(() => {
|
||||
this.setState({
|
||||
difference: (this.props.value || 0) - (this.previousValue || 0)
|
||||
})
|
||||
this.previousValue = null
|
||||
this.timeoutId = null
|
||||
}, 250)
|
||||
}
|
||||
componentWillUnmount() {
|
||||
if (this.timeoutId) {
|
||||
clearTimeout(this.timeoutId)
|
||||
}
|
||||
this.setState({
|
||||
difference: (this.props.value || 0) - (prevProps.value || 0)
|
||||
})
|
||||
}
|
||||
format = value => {
|
||||
return value == null
|
||||
|
@ -51,17 +34,14 @@ export default withLanguage(
|
|||
}).format(value)
|
||||
}
|
||||
render() {
|
||||
const formattedValue = this.format(this.props.value)
|
||||
const formattedDifference = this.format(this.state.difference)
|
||||
const shouldDisplayDifference =
|
||||
Math.abs(this.state.difference) > 1 &&
|
||||
formattedDifference !== formattedValue &&
|
||||
this.props.value != null &&
|
||||
this.state.difference < 0.5 * this.props.value &&
|
||||
!Number.isNaN(this.props.value)
|
||||
return (
|
||||
<>
|
||||
<span key={this.props.value} className="Rule-value">
|
||||
<span className="Rule-value">
|
||||
{shouldDisplayDifference && (
|
||||
<Evaporate
|
||||
style={{
|
||||
|
@ -87,7 +67,7 @@ class Evaporate extends PureComponent<{ children: string, style: Object }> {
|
|||
return (
|
||||
<ReactCSSTransitionGroup
|
||||
transitionName="evaporate"
|
||||
transitionEnterTimeout={1600}
|
||||
transitionEnterTimeout={2500}
|
||||
transitionLeaveTimeout={1}>
|
||||
<span
|
||||
key={this.props.children}
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
@import './reset.css';
|
||||
|
||||
:root {
|
||||
--colour: yellow;
|
||||
--darkColour: green;
|
||||
--textColour: red;
|
||||
--colour: rgb(41, 117, 209);
|
||||
--darkColour: rgb(24, 69, 123);
|
||||
--textColour: rgb(24, 69, 123);
|
||||
}
|
||||
html:fullscreen {
|
||||
background-color: white;
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 33 KiB |
|
@ -98,16 +98,18 @@ function conversationSteps(
|
|||
}
|
||||
return state
|
||||
}
|
||||
function hiddenControls(state = [], { type, id }) {
|
||||
if (type === 'HIDE_CONTROL') {
|
||||
return [...state, id]
|
||||
} else return state
|
||||
}
|
||||
|
||||
function simulation(state = null, { type, config, url }) {
|
||||
function simulation(state = null, { type, config, url, id }) {
|
||||
if (type === 'SET_SIMULATION') {
|
||||
return { config, url }
|
||||
} else return state
|
||||
return { config, url, hiddenControls: [] }
|
||||
}
|
||||
if (type === 'HIDE_CONTROL' && state !== null) {
|
||||
return { ...state, hiddenControls: [...state.hiddenControls, id] }
|
||||
}
|
||||
if (type === 'RESET_SIMULATION' && state !== null) {
|
||||
return { ...state, hiddenControls: [] }
|
||||
}
|
||||
return state
|
||||
}
|
||||
|
||||
const addAnswerToSituation = (dottedName, value, state) => {
|
||||
|
@ -156,7 +158,6 @@ export default reduceReducers(
|
|||
previousSimulation: defaultTo(null),
|
||||
currentExample,
|
||||
situationBranch,
|
||||
hiddenControls,
|
||||
activeTargetInput,
|
||||
inFranceApp: inFranceAppReducer
|
||||
})
|
||||
|
|
|
@ -668,7 +668,7 @@
|
|||
|
||||
Le contrat n'est en fait pas nécessaire dans le droit français, il est possible d'employer quelqu'un sans contrat par exemple dans les cas suivants:
|
||||
- Particuliers employeurs : Plus de 8 heures par semaine ou de plus de 4 semaines consécutives dans l'année.
|
||||
- CDI : La signature d’un contrat de travail n’est pas obligatoire dans certains cas. C’est le cas du Contrat de travail à Durée Ind<EFBFBD><EFBFBD>terminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail).
|
||||
- CDI : La signature d’un contrat de travail n’est pas obligatoire dans certains cas. C’est le cas du Contrat de travail à Durée Indéterminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail).
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: assimilé salarié
|
||||
|
@ -758,6 +758,7 @@
|
|||
- salaire . net après impôt
|
||||
- équivalent temps plein
|
||||
- entreprise . chiffre d'affaires
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
- entreprise . rémunération totale du dirigeant
|
||||
|
||||
références:
|
||||
|
@ -1093,7 +1094,14 @@
|
|||
description: |
|
||||
C'est la base utilisée pour calculer l'impôt sur le revenu.
|
||||
période: flexible
|
||||
formule: base - exonérations
|
||||
formule:
|
||||
allègement:
|
||||
assiette: base
|
||||
abattement:
|
||||
somme:
|
||||
- indemnité kilométrique vélo
|
||||
- prime d'impatriation
|
||||
|
||||
|
||||
- espace: contrat salarié . rémunération . net imposable
|
||||
nom: base
|
||||
|
@ -1105,13 +1113,6 @@
|
|||
- CSG [non déductible]
|
||||
- CRDS
|
||||
|
||||
- espace: contrat salarié . rémunération . net imposable
|
||||
nom: exonérations
|
||||
période: flexible
|
||||
formule:
|
||||
somme:
|
||||
- indemnité kilométrique vélo
|
||||
- prime d'impatriation
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: prime d'impatriation
|
||||
|
@ -1121,7 +1122,7 @@
|
|||
format: euros
|
||||
formule:
|
||||
multiplication:
|
||||
assiette: rémunération . net imposable
|
||||
assiette: rémunération . net imposable . base
|
||||
taux: 30%
|
||||
références:
|
||||
Article 155B du Code général des impôts: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006069577&idArticle=LEGIARTI000006307476&dateTexte=&categorieLien=cid
|
||||
|
@ -2025,6 +2026,7 @@
|
|||
|
||||
- espace: contrat salarié
|
||||
nom: APEC
|
||||
non applicable si: assimilé salarié
|
||||
cotisation:
|
||||
branche: assurance chômage
|
||||
type de retraite: complémentaire
|
||||
|
@ -2598,6 +2600,15 @@
|
|||
Les impatriés sont exonérés de cotisations retraite (régime de base et complémentaire) à condition de justifier d'une contribution minimale versée par ailleurs (par exemple dans une caisse de retraite ou un fond de pension étranger). Ils n’acquièrent aucun droit pendant la durée d’exonération.
|
||||
|
||||
note: La durée d’application est fixée au maximum jusqu’au 31 décembre de la huitième année civile suivant la prise de fonctions dans l’entreprise d’accueil.
|
||||
contrôles:
|
||||
- si: contrat salarié . régime des impatriés
|
||||
niveau: information
|
||||
message: |
|
||||
Pour bénéficier de l'exonération de cotisations vieillesse, il faut remplir les conditions suivantes :
|
||||
- Pouvoir justifier d'une contribution minimale versée ailleurs pour une assurance vieillesse
|
||||
- Ne pas avoir été affilié, au cours des cinq années civiles précédant celle de leur prise de fonctions, à un régime français obligatoire d'assurance vieillesse, sauf pour des activités accessoires, de caractère saisonnier ou pour les études.
|
||||
|
||||
[Lire le texte de loi](https://www.legifrance.gouv.fr/affichCode.do;jsessionid=F5CFB7C90D1D1F529A2CDC9FFD20BD6E.tplgfr34s_3?idSectionTA=LEGISCTA000038510929&cidTexte=LEGITEXT000006073189&dateTexte=20190626)
|
||||
références:
|
||||
impots.gouv.fr: https://www.impots.gouv.fr/portail/particulier/questions/puis-je-beneficier-du-regime-des-impatries
|
||||
bofip: http://bofip.impots.gouv.fr/bofip/5694-PGP
|
||||
|
@ -2707,6 +2718,7 @@
|
|||
- nom: plafonnée
|
||||
plafond: plafond sécurité sociale
|
||||
taux: 8.55%
|
||||
|
||||
exemples:
|
||||
- nom: SMIC
|
||||
situation:
|
||||
|
@ -2716,14 +2728,6 @@
|
|||
situation:
|
||||
cotisations . assiette: 8000
|
||||
valeur attendue: 705.75
|
||||
contrôles:
|
||||
- si: régime des impatriés
|
||||
niveau: information
|
||||
message: |
|
||||
Pour bénéficier de l'exonération de cotisations vieillesse, il faut remplir les conditions suivantes :
|
||||
- Pouvoir justifier d'une contribution minimale versée ailleurs pour une assurance vieilllesse
|
||||
- De ne pas avoir été affiliés, au cours des cinq années civiles précédant celle de leur prise de fonctions, à un régime français obligatoire d'assurance vieillesse, sauf pour des activités accessoires, de caractère saisonnier ou pour les études.
|
||||
[Voir plus](https://www.legifrance.gouv.fr/affichCode.do;jsessionid=F5CFB7C90D1D1F529A2CDC9FFD20BD6E.tplgfr34s_3?idSectionTA=LEGISCTA000038510929&cidTexte=LEGITEXT000006073189&dateTexte=20190626)
|
||||
|
||||
références:
|
||||
Article L727-2 du Code de la sécurité sociale: https://www.legifrance.gouv.fr/affichCode.do;jsessionid=F5CFB7C90D1D1F529A2CDC9FFD20BD6E.tplgfr34s_3?idSectionTA=LEGISCTA000038510929&cidTexte=LEGITEXT000006073189&dateTexte=20190626
|
||||
|
@ -2784,7 +2788,7 @@
|
|||
- espace: impôt
|
||||
nom: revenu abattu par défaut
|
||||
période: flexible
|
||||
description: Dans le cas général, l'impôt est calculé apr<EFBFBD><EFBFBD>s l'application d'un abattement forfaitaire fixe. Chacun peut néanmoins opter pour la déclaration de ses *frais réels*, qui viendront remplacer ce forfait par défaut.
|
||||
description: Dans le cas général, l'impôt est calculé après l'application d'un abattement forfaitaire fixe. Chacun peut néanmoins opter pour la déclaration de ses *frais réels*, qui viendront remplacer ce forfait par défaut.
|
||||
formule:
|
||||
allègement:
|
||||
assiette:
|
||||
|
@ -2936,13 +2940,21 @@
|
|||
|
||||
- espace: entreprise
|
||||
nom: chiffre d'affaires
|
||||
titre: chiffre d'affaire (H.T.)
|
||||
titre: chiffre d'affaires (H.T.)
|
||||
question: Quel est votre chiffre d'affaires envisagé ?
|
||||
résumé: Le montant des ventes réalisées
|
||||
période: flexible
|
||||
format: euros
|
||||
formule: rémunération totale du dirigeant + charges
|
||||
|
||||
- espace: entreprise
|
||||
nom: chiffre d'affaires minimum
|
||||
description: Le montant minimum des ventes (H.T) à réaliser pour atteindre le seuil de rentabilité.
|
||||
période: flexible
|
||||
question: Quel est votre chiffre d'affaires minimum envisagé ?
|
||||
format: euros
|
||||
formule: chiffre d'affaires
|
||||
|
||||
- espace: entreprise
|
||||
nom: chiffre d'affaires de société
|
||||
période: flexible
|
||||
|
@ -3014,11 +3026,13 @@
|
|||
- auto entrepreneur . revenu net de cotisations
|
||||
- revenu net après impôt
|
||||
- entreprise . chiffre d'affaires
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
- si: contrat salarié . assimilé salarié
|
||||
alors: contrat salarié . rémunération . total
|
||||
|
||||
- espace: entreprise
|
||||
nom: charges
|
||||
titre: charges de fonctionnement
|
||||
résumé: Toutes les dépenses nécessaires à l'entreprise
|
||||
question: Quelles sont les charges de l'entreprise ?
|
||||
description: |
|
||||
|
@ -3094,6 +3108,7 @@
|
|||
- entreprise . rémunération totale du dirigeant
|
||||
- revenu net après impôt
|
||||
- entreprise . chiffre d'affaires
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
|
||||
- espace: entreprise
|
||||
nom: catégorie d'activité
|
||||
|
@ -3646,7 +3661,7 @@
|
|||
par défaut: non
|
||||
question: L'activité est-elle exercée en auto-entreprise ?
|
||||
description: |
|
||||
L'auto-entreprise est une entreprise individuelle simplifi<EFBFBD><EFBFBD>e. À l'origine connu sous l'appellation « auto-entrepreneur », le régime de « micro-entrepreneur » est un régime de travailleur indépendant créé pour simplifier la gestion administrative, notamment en remplaçant toutes les cotisations sociales par un prélèvement unique mensuel.
|
||||
L'auto-entreprise est une entreprise individuelle simplifiée. À l'origine connu sous l'appellation « auto-entrepreneur », le régime de « micro-entrepreneur » est un régime de travailleur indépendant créé pour simplifier la gestion administrative, notamment en remplaçant toutes les cotisations sociales par un prélèvement unique mensuel.
|
||||
|
||||
- espace: auto entrepreneur
|
||||
nom: base des cotisations
|
||||
|
|
Loading…
Reference in New Issue