Merge pull request #589 from betagouv/quickfix

Quickfix
pull/593/head
Johan Girod 2019-07-02 17:30:53 +02:00 committed by GitHub
commit 900b1c79e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 75 additions and 77 deletions

View File

@ -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,

View File

@ -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">

View File

@ -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:

View File

@ -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

View File

@ -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 {

View File

@ -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}

View File

@ -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

View File

@ -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
})

View File

@ -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 dun contrat de travail nest pas obligatoire dans certains cas. Cest 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 dun contrat de travail nest pas obligatoire dans certains cas. Cest 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 nacquièrent aucun droit pendant la durée dexonération.
note: La durée dapplication est fixée au maximum jusquau 31 décembre de la huitième année civile suivant la prise de fonctions dans lentreprise daccueil.
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