commit
4ec00d5d6b
16
_redirects
16
_redirects
|
@ -1,6 +1,10 @@
|
|||
https://embauche.beta.gouv.fr/règle/contrat-salarié--salaire--net-après-impôt https://embauche.beta.gouv.fr/documentation/contrat-salarié/salaire/net-après-impôt 302
|
||||
https://embauche.beta.gouv.fr/règle/prime-de-fin-de-contrat https://embauche.beta.gouv.fr/documentation/contrat-salarié/CDD/prime-de-fin-de-contrat 302
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--salaire--brut-de-base https://embauche.beta.gouv.fr/documentation/contrat-salarié/salaire/brut-de-base 302
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--rémunération-total https://embauche.beta.gouv.fr/documentation/contrat-salarié/rémunération/total 302
|
||||
https://embauche.beta.gouv.fr/règle/contribution-au-dialogue-social https://embauche.beta.gouv.fr/documentation/contrat-salarié/contribution-au-dialogue-social 302
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--CDD--motif--complément-formation https://embauche.beta.gouv.fr/documentation/contrat-salarié/CDD/motif/complément-formation 302
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--salaire--net-après-impôt https://mon-entreprise.fr/contrat-salarié/salaire/net-après-impôt 301
|
||||
https://embauche.beta.gouv.fr/règle/prime-de-fin-de-contrat https://mon-entreprise.fr/contrat-salarié/CDD/prime-de-fin-de-contrat 301
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--salaire--brut-de-base https://mon-entreprise.fr/contrat-salarié/salaire/brut-de-base 301
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--rémunération-total https://mon-entreprise.fr/contrat-salarié/rémunération/total 301
|
||||
https://embauche.beta.gouv.fr/règle/contribution-au-dialogue-social https://mon-entreprise.fr/contrat-salarié/contribution-au-dialogue-social 301
|
||||
https://embauche.beta.gouv.fr/règle/contrat-salarié--CDD--motif--complément-formation https://mon-entreprise.fr/contrat-salarié/CDD/motif/complément-formation 301
|
||||
https://embauche.beta.gouv.fr/règle/* https://mon-entreprise.fr/documentation/:splat 301
|
||||
|
||||
|
||||
/documentation/contrat-salarié/salaire/* /documentation/contrat-salarié/rémunération/:splat 301
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
|
||||
|
||||
|
||||
# Redirect for google SEO. See also _redirects file
|
||||
[[redirects]]
|
||||
from = "/documentation/salaire/*"
|
||||
to = "/documentation/rémunération/:splat"
|
||||
status = 302
|
||||
|
||||
# InFrance PRODUCTION settings
|
||||
[[redirects]]
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
"i18next": "^14.1.1",
|
||||
"iframe-resizer": "^4.1.1",
|
||||
"js-yaml": "^3.13.1",
|
||||
"nearley": "^2.16.0",
|
||||
"moo": "^0.5.0",
|
||||
"nearley": "^2.19.0",
|
||||
"ramda": "^0.25.0",
|
||||
"raven-for-redux": "^1.3.1",
|
||||
"raven-js": "^3.26.4",
|
||||
|
|
|
@ -43,7 +43,7 @@ type Props = OwnProps & {
|
|||
}
|
||||
|
||||
let getBranchIndex = branch =>
|
||||
({ assimilé: 0, indépendant: 1, 'auto entrepreneur': 2 }[branch])
|
||||
({ assimilé: 0, indépendant: 1, 'auto-entrepreneur': 2 }[branch])
|
||||
let getRuleFrom = analyses => (branch, dottedName) => {
|
||||
let i = getBranchIndex(branch)
|
||||
return getRuleFromAnalysis(analyses[i])(dottedName)
|
||||
|
@ -360,7 +360,7 @@ const SchemeComparaison = ({
|
|||
'Plafond de CA dépassé'
|
||||
) : (
|
||||
<RuleValueLink
|
||||
branch="auto entrepreneur"
|
||||
branch="auto-entrepreneur"
|
||||
rule="revenu net après impôt"
|
||||
/>
|
||||
)}
|
||||
|
@ -388,8 +388,8 @@ const SchemeComparaison = ({
|
|||
'—'
|
||||
) : (
|
||||
<RuleValueLink
|
||||
branch="auto entrepreneur"
|
||||
rule="auto entrepreneur . revenu net de cotisations"
|
||||
branch="auto-entrepreneur"
|
||||
rule="auto-entrepreneur . revenu net de cotisations"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
@ -438,12 +438,12 @@ const SchemeComparaison = ({
|
|||
{plafondAutoEntrepreneurDépassé ? (
|
||||
'—'
|
||||
) : getRule(
|
||||
'auto entrepreneur',
|
||||
'auto-entrepreneur',
|
||||
'protection sociale . retraite'
|
||||
).applicable !== false ? (
|
||||
<span>
|
||||
<RuleValueLink
|
||||
branch="auto entrepreneur"
|
||||
branch="auto-entrepreneur"
|
||||
rule="protection sociale . retraite"
|
||||
/>{' '}
|
||||
<InfoBulle>
|
||||
|
@ -485,7 +485,7 @@ const SchemeComparaison = ({
|
|||
'—'
|
||||
) : (
|
||||
<RuleValueLink
|
||||
branch="auto entrepreneur"
|
||||
branch="auto-entrepreneur"
|
||||
rule="protection sociale . retraite . trimestres validés par an"
|
||||
appendText={<T>trimestres</T>}
|
||||
unit={null}
|
||||
|
@ -538,7 +538,7 @@ const SchemeComparaison = ({
|
|||
) : (
|
||||
<span>
|
||||
<RuleValueLink
|
||||
branch="auto entrepreneur"
|
||||
branch="auto-entrepreneur"
|
||||
rule="protection sociale . santé . indemnités journalières"
|
||||
appendText={
|
||||
<>
|
||||
|
|
|
@ -170,7 +170,7 @@ export default compose(
|
|||
to={
|
||||
dottedName.includes('contrat salarié')
|
||||
? sitePaths.sécuritéSociale.salarié
|
||||
: dottedName.includes('auto entrepreneur')
|
||||
: dottedName.includes('auto-entrepreneur')
|
||||
? sitePaths.sécuritéSociale['auto-entrepreneur']
|
||||
: dottedName.includes('indépendant')
|
||||
? sitePaths.sécuritéSociale.indépendant
|
||||
|
|
|
@ -39,7 +39,7 @@ questions:
|
|||
- contrat salarié . régime des impatriés
|
||||
|
||||
situation:
|
||||
auto entrepreneur: non
|
||||
auto-entrepreneur: non
|
||||
indépendant: non
|
||||
contrat salarié . assimilé salarié: oui
|
||||
contrat salarié . temps partiel: non
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
objectifs:
|
||||
- entreprise . chiffre d'affaires
|
||||
- auto entrepreneur . cotisations et contributions
|
||||
- auto entrepreneur . revenu net de cotisations
|
||||
- auto-entrepreneur . cotisations et contributions
|
||||
- auto-entrepreneur . revenu net de cotisations
|
||||
- impôt
|
||||
- revenu net après impôt
|
||||
|
||||
questions:
|
||||
à l'affiche:
|
||||
Type d'activité: entreprise . catégorie d'activité
|
||||
Versement libératoire: auto entrepreneur . impôt . versement libératoire
|
||||
Versement libératoire: auto-entrepreneur . impôt . versement libératoire
|
||||
Impôt sur le revenu: impôt . méthode de calcul
|
||||
ACRE: entreprise . ACRE
|
||||
liste noire:
|
||||
- entreprise . charges
|
||||
|
||||
situation:
|
||||
auto entrepreneur: oui
|
||||
auto-entrepreneur: oui
|
||||
indépendant: non
|
||||
contrat salarié: non
|
||||
période: année
|
||||
|
|
|
@ -24,6 +24,6 @@ questions:
|
|||
|
||||
situation:
|
||||
indépendant: oui
|
||||
auto entrepreneur: non
|
||||
auto-entrepreneur: non
|
||||
contrat salarié: non
|
||||
période: année
|
||||
|
|
|
@ -24,7 +24,7 @@ situation:
|
|||
branches:
|
||||
- nom: Assimilé salarié
|
||||
situation:
|
||||
auto entrepreneur: non
|
||||
auto-entrepreneur: non
|
||||
indépendant: non
|
||||
contrat salarié: oui
|
||||
contrat salarié . assimilé salarié: oui
|
||||
|
@ -32,10 +32,10 @@ branches:
|
|||
- nom: Indépendant
|
||||
situation:
|
||||
indépendant: oui
|
||||
auto entrepreneur: non
|
||||
auto-entrepreneur: non
|
||||
contrat salarié: non
|
||||
- nom: Auto-entrepreneur
|
||||
situation:
|
||||
auto entrepreneur: oui
|
||||
auto-entrepreneur: oui
|
||||
indépendant: non
|
||||
contrat salarié: non
|
||||
|
|
|
@ -31,5 +31,5 @@ questions:
|
|||
situation:
|
||||
contrat salarié . assimilé salarié: non
|
||||
indépendant: non
|
||||
auto entrepreneur: non
|
||||
auto-entrepreneur: non
|
||||
période: mois
|
||||
|
|
|
@ -212,7 +212,6 @@
|
|||
display: flex;
|
||||
user-select: text;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
padding: 1rem;
|
||||
background: white;
|
||||
color: var(--darkColour);
|
||||
|
|
|
@ -15,7 +15,6 @@ export default function withSitePaths<Props: { sitePaths: SitePaths }>(
|
|||
constructor(props) {
|
||||
super(props)
|
||||
i18n.on('languageChanged', () => {
|
||||
console.log('zop')
|
||||
this.forceUpdate()
|
||||
})
|
||||
}
|
||||
|
|
|
@ -31,20 +31,6 @@ export let mergeMissing = (left, right) =>
|
|||
export let evaluateNode = (cache, situationGate, parsedRules, node) =>
|
||||
node.evaluate ? node.evaluate(cache, situationGate, parsedRules, node) : node
|
||||
|
||||
export let rewriteNode = (
|
||||
node,
|
||||
nodeValue,
|
||||
explanation,
|
||||
missingVariables,
|
||||
lazyEval
|
||||
) => ({
|
||||
...node,
|
||||
nodeValue,
|
||||
explanation,
|
||||
missingVariables,
|
||||
lazyEval
|
||||
})
|
||||
|
||||
export let evaluateArray = (reducer, start) => (
|
||||
cache,
|
||||
situationGate,
|
||||
|
@ -60,8 +46,7 @@ export let evaluateArray = (reducer, start) => (
|
|||
: reduce(reducer, start, values),
|
||||
missingVariables =
|
||||
node.nodeValue == null ? mergeAllMissing(explanation) : {}
|
||||
// console.log("".padStart(cache.parseLevel), missingVariables)
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
export let evaluateArrayWithFilter = (evaluationFilter, reducer, start) => (
|
||||
|
@ -83,7 +68,7 @@ export let evaluateArrayWithFilter = (evaluationFilter, reducer, start) => (
|
|||
missingVariables =
|
||||
node.nodeValue == null ? mergeAllMissing(explanation) : {}
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
export let defaultNode = nodeValue => ({
|
||||
|
@ -123,8 +108,7 @@ export let evaluateObject = (objectShape, effect) => (
|
|||
: automaticExplanation,
|
||||
nodeValue = is(Object, evaluated) ? evaluated.nodeValue : evaluated,
|
||||
missingVariables = mergeAllMissing(values(explanation))
|
||||
// console.log("".padStart(cache.parseLevel),map(node => length(flatten(collectNodeMissing(node))) ,explanation))
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
export let E = (cache, situationGate, parsedRules) => {
|
||||
|
|
|
@ -6,80 +6,89 @@
|
|||
|
||||
@{%
|
||||
import {string, filteredVariable, variable, temporalVariable, operation, boolean, number, percentage } from './grammarFunctions'
|
||||
|
||||
const moo = require("moo");
|
||||
|
||||
const letter = '[a-zA-Z\u00C0-\u017F]';
|
||||
const letterOrNumber = '[a-zA-Z\u00C0-\u017F0-9\']';
|
||||
const word = `${letter}(?:[\-']?${letterOrNumber}+)*`;
|
||||
const words = `${word}(?: ${word}|${letterOrNumber}*)*`
|
||||
const numberRegExp = '-?(?:[1-9][0-9]+|[0-9])(?:\.[0-9]+)?';
|
||||
const percentageRegExp = numberRegExp + '\\%'
|
||||
|
||||
const lexer = moo.compile({
|
||||
percentage: new RegExp(percentageRegExp),
|
||||
number: new RegExp(numberRegExp),
|
||||
'(': '(',
|
||||
')': ')',
|
||||
'[': '[',
|
||||
']': ']',
|
||||
comparisonOperator: ['>','<','>=','<=','=','!='],
|
||||
additionSubstractionOperator: /[\+-]/,
|
||||
multiplicationDivisionOperator: ['*','/'],
|
||||
temporality: ['annuel' , 'mensuel'],
|
||||
words: new RegExp(words),
|
||||
string: /'[ \t\.'a-zA-Z\-\u00C0-\u017F0-9 ]+'/,
|
||||
dot: ' . ',
|
||||
_: { match: /[\s]/, lineBreaks: true }
|
||||
});
|
||||
%}
|
||||
|
||||
@lexer lexer
|
||||
|
||||
main ->
|
||||
AdditionSubstraction {% id %}
|
||||
| Comparison {% id %}
|
||||
| NonNumericTerminal {% id %}
|
||||
AdditionSubstraction {% id %}
|
||||
| Comparison {% id %}
|
||||
| NonNumericTerminal {% id %}
|
||||
|
||||
NumericTerminal ->
|
||||
Variable {% id %}
|
||||
| TemporalVariable {% id %}
|
||||
| FilteredVariable {% id %}
|
||||
| percentage {% id %}
|
||||
| number {% id %}
|
||||
Variable {% id %}
|
||||
| TemporalVariable {% id %}
|
||||
| FilteredVariable {% id %}
|
||||
| number {% id %}
|
||||
|
||||
Parentheses -> "(" AdditionSubstraction ")" {% ([,e]) => e %}
|
||||
| NumericTerminal {% id %}
|
||||
Parentheses ->
|
||||
"(" AdditionSubstraction ")" {% ([,e]) => e %}
|
||||
| NumericTerminal {% id %}
|
||||
|
||||
ComparisonOperator -> ">" | "<" | ">=" | "<=" | "=" | "!="
|
||||
|
||||
Comparison -> Comparable _ ComparisonOperator _ Comparable {% operation('comparison')%}
|
||||
Comparison -> Comparable %_ %comparisonOperator %_ Comparable {% operation('comparison')%}
|
||||
|
||||
Comparable -> ( AdditionSubstraction | NonNumericTerminal) {% ([[e]]) => e %}
|
||||
|
||||
NonNumericTerminal ->
|
||||
Boolean {% id %}
|
||||
| String {% id %}
|
||||
boolean {% id %}
|
||||
| string {% id %}
|
||||
|
||||
|
||||
FilteredVariable -> Variable _ Filter {% filteredVariable %}
|
||||
|
||||
Filter -> "[" VariableFragment "]" {% ([,filter]) => filter %}
|
||||
Variable -> %words (%dot %words {% ([,words]) => words %}):* {% variable %}
|
||||
|
||||
TemporalVariable -> Variable _ TemporalTransform {% temporalVariable %}
|
||||
|
||||
TemporalTransform -> "[" Temporality "]" {% d =>d[1] %}
|
||||
Filter -> "[" %words "]" {% ([,filter]) => filter %}
|
||||
FilteredVariable -> Variable %_ Filter {% filteredVariable %}
|
||||
|
||||
TemporalTransform -> "[" %temporality "]" {% ([,temporality]) => temporality %}
|
||||
TemporalVariable -> Variable %_ TemporalTransform {% temporalVariable %}
|
||||
|
||||
Temporality -> "annuel" | "mensuel" {% id %}
|
||||
#-----
|
||||
|
||||
|
||||
# Addition and subtraction
|
||||
AdditionSubstraction -> AdditionSubstraction _ AdditionSubstractionOperator _ MultiplicationDivision {% operation('calculation') %}
|
||||
| MultiplicationDivision {% id %}
|
||||
AdditionSubstraction ->
|
||||
AdditionSubstraction %_ %additionSubstractionOperator %_ MultiplicationDivision {% operation('calculation') %}
|
||||
| MultiplicationDivision {% id %}
|
||||
|
||||
|
||||
AdditionSubstractionOperator -> "+" {% id %}
|
||||
| "-" {% id %}
|
||||
|
||||
MultiplicationDivisionOperator -> "*" {% id %}
|
||||
| "/" {% id %}
|
||||
|
||||
# Multiplication and division
|
||||
MultiplicationDivision -> MultiplicationDivision _ MultiplicationDivisionOperator _ Parentheses {% operation('calculation') %}
|
||||
| Parentheses {% id %}
|
||||
|
||||
Variable -> VariableFragment (_ Dot _ VariableFragment {% ([,,,fragment]) => fragment %}):*
|
||||
{% variable %}
|
||||
|
||||
String -> "'" [ .'a-zA-Z\-\u00C0-\u017F0-9 ]:+ "'" {% string %}
|
||||
|
||||
VariableFragment -> VariableWordWithoutNumber (_ VariableWord {% d=> ' ' + d[1] %}):* {% d => d[0] + d[1].join('') %}
|
||||
|
||||
VariableWordWithoutNumber -> [a-zA-Z\u00C0-\u017F] [\-'a-zA-Z\u00C0-\u017F]:* {% d => d[0] + d[1].join('') %}
|
||||
VariableWord -> [a-zA-Z\u00C0-\u017F0-9] [\-'a-zA-Z\u00C0-\u017F0-9]:* {% d => d[0] + d[1].join('') %}
|
||||
|
||||
Dot -> [\.] {% d => null %}
|
||||
|
||||
_ -> [\s] {% d => null %}
|
||||
MultiplicationDivision ->
|
||||
MultiplicationDivision %_ %multiplicationDivisionOperator %_ Parentheses {% operation('calculation') %}
|
||||
| Parentheses {% id %}
|
||||
|
||||
|
||||
number -> [0-9]:+ ([\.] [0-9]:+):? {% number %}
|
||||
boolean ->
|
||||
"oui" {% boolean(true) %}
|
||||
| "non" {% boolean(false) %}
|
||||
|
||||
percentage -> [0-9]:+ ([\.] [0-9]:+):? [\%] {% percentage %}
|
||||
|
||||
Boolean -> (
|
||||
"oui"
|
||||
| "non" ) {% boolean %}
|
||||
number ->
|
||||
%number {% number %}
|
||||
| %percentage {% percentage %}
|
||||
string -> %string {% string %}
|
|
@ -1,4 +1,4 @@
|
|||
/* Those are postprocessor functions for the Nearley grammar.ne.
|
||||
/* Those are postprocessor functions for the Nearley grammar.ne.
|
||||
The advantage of putting them here is to get prettier's JS formatting, since Nealrey doesn't support it https://github.com/kach/nearley/issues/310 */
|
||||
import { parseUnit } from 'Engine/units'
|
||||
|
||||
|
@ -9,7 +9,11 @@ export let operation = operationType => ([A, , operator, , B]) => ({
|
|||
}
|
||||
})
|
||||
|
||||
export let filteredVariable = ([{ variable }, , filter], l, reject) =>
|
||||
export let filteredVariable = (
|
||||
[{ variable }, , { value: filter }],
|
||||
l,
|
||||
reject
|
||||
) =>
|
||||
['mensuel', 'annuel'].includes(filter)
|
||||
? reject
|
||||
: { filter: { filter, explanation: variable } }
|
||||
|
@ -18,10 +22,11 @@ export let temporalVariable = ([{ variable }, , temporalTransform]) => ({
|
|||
temporalTransform: { explanation: variable, temporalTransform }
|
||||
})
|
||||
|
||||
export let variable = ([firstFragment, nextFragments], l, reject) => {
|
||||
let fragments = [firstFragment, ...nextFragments]
|
||||
if (fragments.length === 1 && ['oui', 'non'].includes(fragments[0]))
|
||||
export let variable = ([firstFragment, nextFragment], _, reject) => {
|
||||
const fragments = [firstFragment, ...nextFragment].map(({ value }) => value)
|
||||
if (!nextFragment.length && ['oui', 'non'].includes(firstFragment)) {
|
||||
return reject
|
||||
}
|
||||
return {
|
||||
variable: {
|
||||
fragments
|
||||
|
@ -29,37 +34,30 @@ export let variable = ([firstFragment, nextFragments], l, reject) => {
|
|||
}
|
||||
}
|
||||
|
||||
export let number = d => ({
|
||||
export let number = ([{ value }]) => ({
|
||||
constant: {
|
||||
rawNode: d,
|
||||
nodeValue: parseFloat(
|
||||
d[0].join('') + (d[1] ? d[1][0] + d[1][1].join('') : '')
|
||||
)
|
||||
nodeValue: parseFloat(value)
|
||||
}
|
||||
})
|
||||
|
||||
export let percentage = d => ({
|
||||
export let percentage = ([{ value }]) => ({
|
||||
constant: {
|
||||
rawNode: d,
|
||||
type: 'percentage',
|
||||
unit: parseUnit('%'),
|
||||
nodeValue:
|
||||
parseFloat(d[0].join('') + (d[1] ? d[1][0] + d[1][1].join('') : '')) / 100
|
||||
nodeValue: parseFloat(value.slice(0, -1)) / 100
|
||||
}
|
||||
})
|
||||
|
||||
export let boolean = ([val]) => ({
|
||||
export let boolean = nodeValue => () => ({
|
||||
constant: {
|
||||
rawNode: val,
|
||||
type: 'boolean',
|
||||
nodeValue: { oui: true, non: false }[val]
|
||||
nodeValue
|
||||
}
|
||||
})
|
||||
|
||||
export let string = d => ({
|
||||
export let string = ([{ value }]) => ({
|
||||
constant: {
|
||||
type: 'string',
|
||||
nodeValue: d[1].join(''),
|
||||
rawNode: d[1].join('')
|
||||
nodeValue: value.slice(1, -1)
|
||||
}
|
||||
})
|
||||
|
|
|
@ -38,8 +38,7 @@ import {
|
|||
makeJsx,
|
||||
mergeAllMissing,
|
||||
mergeMissing,
|
||||
parseObject,
|
||||
rewriteNode
|
||||
parseObject
|
||||
} from './evaluation'
|
||||
import Allègement from './mecanismViews/Allègement'
|
||||
import { Node, SimpleRuleLink } from './mecanismViews/common'
|
||||
|
@ -88,7 +87,7 @@ export let mecanismOneOf = (recurse, k, v) => {
|
|||
? reduce(mergeWith(max), {}, map(collectNodeMissing, explanation))
|
||||
: {}
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -133,7 +132,7 @@ export let mecanismAllOf = (recurse, k, v) => {
|
|||
: true,
|
||||
missingVariables = nodeValue == null ? mergeAllMissing(explanation) : {}
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -231,7 +230,7 @@ export let mecanismNumericalSwitch = (recurse, k, v) => {
|
|||
? choice.missingVariables
|
||||
: mergeAllMissing(explanation)
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
let explanation = map(parseCondition, terms)
|
||||
|
@ -374,12 +373,15 @@ export let mecanismInversion = dottedName => (recurse, k, v) => {
|
|||
given: inversion.inversedWith.rule.dottedName,
|
||||
estimated: dottedName
|
||||
}
|
||||
let evaluatedNode = rewriteNode(
|
||||
node,
|
||||
let evaluatedNode = {
|
||||
...node,
|
||||
nodeValue,
|
||||
{ ...node.explanation, inversedWith: inversion?.inversedWith },
|
||||
explanation: {
|
||||
...node.explanation,
|
||||
inversedWith: inversion?.inversedWith
|
||||
},
|
||||
missingVariables
|
||||
)
|
||||
}
|
||||
// TODO - we need this so that ResultsGrid will work, but it's
|
||||
// just not right
|
||||
toPairs(inversion.inversionCache).map(([k, v]) => (cache[k] = v))
|
||||
|
@ -665,7 +667,7 @@ export let mecanismSynchronisation = (recurse, k, v) => {
|
|||
let missingVariables =
|
||||
val(APIExplanation) === null ? { [APIExplanation.dottedName]: 1 } : {}
|
||||
let explanation = { ...v, API: APIExplanation }
|
||||
return rewriteNode(node, safeNodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue: safeNodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { defaultNode, E, rewriteNode } from 'Engine/evaluation'
|
||||
import variations from 'Engine/mecanisms/variations'
|
||||
import { defaultNode, E } from 'Engine/evaluation'
|
||||
import { decompose } from 'Engine/mecanisms/utils'
|
||||
import variations from 'Engine/mecanisms/variations'
|
||||
import Barème from 'Engine/mecanismViews/Barème'
|
||||
import { val } from 'Engine/traverse-common-functions'
|
||||
import { evolve, has, pluck, sum } from 'ramda'
|
||||
import { inferUnit, parseUnit } from 'Engine/units'
|
||||
import { evolve, has, pluck, sum } from 'ramda'
|
||||
|
||||
export let desugarScale = recurse => tranches =>
|
||||
tranches
|
||||
|
@ -68,16 +68,16 @@ export default (recurse, k, v) => {
|
|||
}),
|
||||
nodeValue = sum(pluck('value', tranches))
|
||||
|
||||
return rewriteNode(
|
||||
node,
|
||||
return {
|
||||
...node,
|
||||
nodeValue,
|
||||
{
|
||||
explanation: {
|
||||
...explanation,
|
||||
tranches
|
||||
},
|
||||
e.missingVariables(),
|
||||
e.valNode
|
||||
)
|
||||
missingVariables: e.missingVariables(),
|
||||
lazyEval: e.valNode
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
import React from 'react'
|
||||
import { curry, map } from 'ramda'
|
||||
import { inferUnit } from 'Engine/units'
|
||||
import {
|
||||
evaluateNode,
|
||||
makeJsx,
|
||||
mergeMissing,
|
||||
rewriteNode
|
||||
} from 'Engine/evaluation'
|
||||
import { evaluateNode, makeJsx, mergeMissing } from 'Engine/evaluation'
|
||||
import { Node } from 'Engine/mecanismViews/common'
|
||||
import { inferUnit } from 'Engine/units'
|
||||
import { curry, map } from 'ramda'
|
||||
import React from 'react'
|
||||
|
||||
export default (k, operatorFunction, symbol) => (recurse, k, v) => {
|
||||
let evaluate = (cache, situation, parsedRules, node) => {
|
||||
|
@ -26,7 +21,7 @@ export default (k, operatorFunction, symbol) => (recurse, k, v) => {
|
|||
explanation[1].missingVariables
|
||||
)
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
let explanation = v.explanation.map(recurse)
|
||||
|
@ -43,7 +38,6 @@ export default (k, operatorFunction, symbol) => (recurse, k, v) => {
|
|||
<span className="fa fa" />
|
||||
{makeJsx(explanation[0])}
|
||||
<span className="operator">{symbol || k}</span>
|
||||
|
||||
{makeJsx(explanation[1])}
|
||||
</span>
|
||||
}
|
||||
|
@ -55,7 +49,6 @@ export default (k, operatorFunction, symbol) => (recurse, k, v) => {
|
|||
evaluate,
|
||||
jsx,
|
||||
operator: symbol || k,
|
||||
// is this useful ? text: rawNode,
|
||||
explanation,
|
||||
unit
|
||||
}
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
import { inferUnit } from 'Engine/units'
|
||||
import {
|
||||
bonus,
|
||||
collectNodeMissing,
|
||||
evaluateNode,
|
||||
mergeAllMissing,
|
||||
mergeMissing,
|
||||
rewriteNode
|
||||
mergeMissing
|
||||
} from 'Engine/evaluation'
|
||||
import { reject, pluck, isNil, filter, dissoc, reduce } from 'ramda'
|
||||
import Variations from 'Engine/mecanismViews/Variations'
|
||||
import { inferUnit } from 'Engine/units'
|
||||
import { dissoc, filter, isNil, pluck, reduce, reject } from 'ramda'
|
||||
|
||||
/* @devariate = true => This function will produce variations of a same mecanism (e.g. product) that share some common properties */
|
||||
export default (recurse, k, v, devariate) => {
|
||||
|
@ -78,11 +77,15 @@ export default (recurse, k, v, devariate) => {
|
|||
? collectNodeMissing(satisfiedVariation.consequence)
|
||||
: mergeMissing(bonus(leftMissing), rightMissing)
|
||||
|
||||
return rewriteNode(node, nodeValue, resolvedExplanation, missingVariables)
|
||||
return {
|
||||
...node,
|
||||
nodeValue,
|
||||
explanation: resolvedExplanation,
|
||||
missingVariables
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - find an appropriate representation
|
||||
|
||||
return {
|
||||
explanation,
|
||||
evaluate,
|
||||
|
|
|
@ -5,30 +5,29 @@
|
|||
import barème from 'Engine/mecanisms/barème'
|
||||
import barèmeContinu from 'Engine/mecanisms/barème-continu'
|
||||
import barèmeLinéaire from 'Engine/mecanisms/barème-linéaire'
|
||||
import variations from 'Engine/mecanisms/variations'
|
||||
import operation from 'Engine/mecanisms/operation'
|
||||
import { Parser } from 'nearley'
|
||||
|
||||
import variations from 'Engine/mecanisms/variations'
|
||||
import { Grammar, Parser } from 'nearley'
|
||||
import {
|
||||
add,
|
||||
cond,
|
||||
divide,
|
||||
equals,
|
||||
fromPairs,
|
||||
gt,
|
||||
gte,
|
||||
is,
|
||||
keys,
|
||||
without,
|
||||
lt,
|
||||
lte,
|
||||
multiply,
|
||||
propOr,
|
||||
subtract,
|
||||
fromPairs,
|
||||
is,
|
||||
cond,
|
||||
T
|
||||
T,
|
||||
without
|
||||
} from 'ramda'
|
||||
import React from 'react'
|
||||
import Grammar from './grammar.ne'
|
||||
import grammar from './grammar.ne'
|
||||
import {
|
||||
mecanismAllOf,
|
||||
mecanismComplement,
|
||||
|
@ -38,11 +37,11 @@ import {
|
|||
mecanismMin,
|
||||
mecanismNumericalSwitch,
|
||||
mecanismOneOf,
|
||||
mecanismOnePossibility,
|
||||
mecanismProduct,
|
||||
mecanismReduction,
|
||||
mecanismSum,
|
||||
mecanismSynchronisation,
|
||||
mecanismOnePossibility
|
||||
mecanismSynchronisation
|
||||
} from './mecanisms'
|
||||
import { parseReferenceTransforms } from './parseReference'
|
||||
|
||||
|
@ -62,15 +61,13 @@ export let parse = (rules, rule, parsedRules) => rawNode => {
|
|||
: { ...parsedNode, evaluate: defaultEvaluate }
|
||||
}
|
||||
|
||||
export let nearley = () => new Parser(Grammar.ParserRules, Grammar.ParserStart)
|
||||
const compiledGrammar = Grammar.fromCompiled(grammar)
|
||||
|
||||
export let parseString = (rules, rule, parsedRules) => rawNode => {
|
||||
/* Strings correspond to infix expressions.
|
||||
* Indeed, a subset of expressions like simple arithmetic operations `3 + (quantity * 2)` or like `salary [month]` are more explicit that their prefixed counterparts.
|
||||
* This function makes them prefixed operations. */
|
||||
|
||||
let [parseResult] = nearley().feed(rawNode).results
|
||||
|
||||
let [parseResult] = new Parser(compiledGrammar).feed(rawNode).results
|
||||
return parseObject(rules, rule, parsedRules)(parseResult)
|
||||
}
|
||||
|
||||
|
@ -93,7 +90,7 @@ export let parseObject = (rules, rule, parsedRules) => rawNode => {
|
|||
let mecanisms = intersection(keys(rawNode), keys(knownMecanisms))
|
||||
|
||||
if (mecanisms.length != 1) {
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
let attributes = keys(rawNode),
|
||||
|
@ -162,7 +159,7 @@ export let parseObject = (rules, rule, parsedRules) => rawNode => {
|
|||
nodeValue: v.nodeValue,
|
||||
unit: v.unit,
|
||||
// eslint-disable-next-line
|
||||
jsx: () => <span className={v.type}>{v.rawNode}</span>
|
||||
jsx: () => <span className={v.type}>{v.nodeValue}</span>
|
||||
})
|
||||
},
|
||||
action = propOr(mecanismError, k, dispatch)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Reference to a variable
|
||||
import parseRule from 'Engine/parseRule'
|
||||
import React from 'react'
|
||||
import { evaluateNode, rewriteNode } from './evaluation'
|
||||
import { evaluateNode } from './evaluation'
|
||||
import { getSituationValue } from './getSituationValue'
|
||||
import { Leaf } from './mecanismViews/common'
|
||||
import {
|
||||
|
@ -50,12 +50,12 @@ export let parseReference = (rules, rule, parsedRules, filter) => ({
|
|||
: variable
|
||||
|
||||
let cacheAndNode = (nodeValue, missingVariables, customExplanation) => {
|
||||
cache[cacheName] = rewriteNode(
|
||||
node,
|
||||
cache[cacheName] = {
|
||||
...node,
|
||||
nodeValue,
|
||||
customExplanation || explanation,
|
||||
explanation: customExplanation || explanation,
|
||||
missingVariables
|
||||
)
|
||||
}
|
||||
return cache[cacheName]
|
||||
}
|
||||
const variableScore = variable.defaultValue ? 1 : 2
|
||||
|
@ -187,16 +187,14 @@ export let parseReferenceTransforms = (
|
|||
: nodeValue,
|
||||
periodTransform = nodeValue !== transformedNodeValue
|
||||
|
||||
let result = rewriteNode(
|
||||
{
|
||||
...filteredNode,
|
||||
periodTransform: periodTransform,
|
||||
...(periodTransform ? { originPeriodValue: nodeValue } : {})
|
||||
},
|
||||
transformedNodeValue,
|
||||
filteredNode.explanation,
|
||||
filteredNode.missingVariables
|
||||
)
|
||||
let result = {
|
||||
...filteredNode,
|
||||
periodTransform,
|
||||
...(periodTransform ? { originPeriodValue: nodeValue } : {}),
|
||||
nodeValue: transformedNodeValue,
|
||||
explanation: filteredNode.explanation,
|
||||
missingVariables: filteredNode.missingVariables
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import evaluate from 'Engine/evaluateRule'
|
|||
import { parse } from 'Engine/parse'
|
||||
import { evolve, map } from 'ramda'
|
||||
import React from 'react'
|
||||
import { evaluateNode, makeJsx, rewriteNode } from './evaluation'
|
||||
import { evaluateNode, makeJsx } from './evaluation'
|
||||
import { Node } from './mecanismViews/common'
|
||||
import { disambiguateRuleReference, findParentDependency } from './rules'
|
||||
|
||||
|
@ -82,7 +82,7 @@ export default (rules, rule, parsedRules) => {
|
|||
nodeValue = explanation.nodeValue,
|
||||
missingVariables = explanation.missingVariables
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
let child = parse(rules, rule, parsedRules)(value)
|
||||
|
@ -177,7 +177,7 @@ let evolveCond = (name, rule, rules, parsedRules) => value => {
|
|||
nodeValue = explanation.nodeValue,
|
||||
missingVariables = explanation.missingVariables
|
||||
|
||||
return rewriteNode(node, nodeValue, explanation, missingVariables)
|
||||
return { ...node, nodeValue, explanation, missingVariables }
|
||||
}
|
||||
|
||||
let child = parse(rules, rule, parsedRules)(value)
|
||||
|
|
|
@ -84,9 +84,19 @@ export let nameLeaf = pipe(
|
|||
)
|
||||
|
||||
export let encodeRuleName = name =>
|
||||
encodeURI(name.replace(/\s\.\s/g, '/').replace(/\s/g, '-'))
|
||||
encodeURI(
|
||||
name
|
||||
.replace(/\s\.\s/g, '/')
|
||||
.replace(/-/g, '\u2011') // replace with a insecable tiret to differenciate from space
|
||||
.replace(/\s/g, '-')
|
||||
)
|
||||
export let decodeRuleName = name =>
|
||||
decodeURI(name.replace(/\//g, ' . ').replace(/-/g, ' '))
|
||||
decodeURI(
|
||||
name
|
||||
.replace(/\//g, ' . ')
|
||||
.replace(/-/g, ' ')
|
||||
.replace(/\u2011/g, '-')
|
||||
)
|
||||
|
||||
export let ruleParents = dottedName => {
|
||||
let fragments = splitName(dottedName) // dottedName ex. [CDD . événements . rupture]
|
||||
|
@ -232,7 +242,7 @@ export let findParentDependency = (rules, rule) => {
|
|||
reject(isNil),
|
||||
find(
|
||||
//Find the first "calculable" parent
|
||||
({ question, unit, formule, name }) =>
|
||||
({ question, unit, formule }) =>
|
||||
(question && !unit && !formule) ||
|
||||
(question && formule?.['une possibilité'] !== undefined) ||
|
||||
(typeof formule === 'string' && formule.includes(' = ')) //implicitly, the format is boolean
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
import { evaluateControls } from 'Engine/controls';
|
||||
import parseRule from 'Engine/parseRule';
|
||||
import { chain, path } from 'ramda';
|
||||
import { evaluateNode } from './evaluation';
|
||||
import { parseReference } from './parseReference';
|
||||
import { findRule, findRuleByDottedName, disambiguateRuleReference } from './rules';
|
||||
import { evaluateControls } from 'Engine/controls'
|
||||
import parseRule from 'Engine/parseRule'
|
||||
import { chain, path } from 'ramda'
|
||||
import { evaluateNode } from './evaluation'
|
||||
import { parseReference } from './parseReference'
|
||||
import {
|
||||
disambiguateRuleReference,
|
||||
findRule,
|
||||
findRuleByDottedName
|
||||
} from './rules'
|
||||
|
||||
/*
|
||||
Dans ce fichier, les règles YAML sont parsées.
|
||||
|
@ -65,7 +69,7 @@ export let parseAll = flatRules => {
|
|||
)
|
||||
})
|
||||
})
|
||||
/* Then we need to infer units. Since only references to variables have been created, we need to wait for the latter map to complete before starting this job. Consider this example :
|
||||
/* Then we need to infer units. Since only references to variables have been created, we need to wait for the latter map to complete before starting this job. Consider this example :
|
||||
A = B * C
|
||||
B = D / E
|
||||
|
||||
|
|
|
@ -557,7 +557,7 @@ Plusieurs associés: Several partners
|
|||
Un seul associé: Only one partner
|
||||
Responsabilité limitée: Limited liability
|
||||
Sans responsabilité limitée: Without limited liability
|
||||
Pas en auto entrepreneur: Not in auto-entrepreneur
|
||||
Pas en auto-entrepreneur: Not in auto-entrepreneur
|
||||
|
||||
Précédent: Previous
|
||||
Choisir plus tard: Choose later
|
||||
|
|
|
@ -1310,7 +1310,7 @@
|
|||
type: rémunération
|
||||
unité: €
|
||||
période: flexible
|
||||
formule: rémunération . brut - cotisations . salariales
|
||||
formule: brut - cotisations . salariales
|
||||
|
||||
- espace: contrat salarié . rémunération
|
||||
nom: net imposable
|
||||
|
@ -3267,7 +3267,7 @@
|
|||
assiette: revenu imposable
|
||||
taux: taux personnalisé
|
||||
- CEHR
|
||||
- auto entrepreneur . impôt . versement libératoire . montant
|
||||
- auto-entrepreneur . impôt . versement libératoire . montant
|
||||
|
||||
- espace: impôt
|
||||
nom: méthode de calcul
|
||||
|
@ -3281,7 +3281,7 @@
|
|||
question: Comment souhaitez-vous calculer l'impôt sur le revenu ?
|
||||
# applicable si: revenu imposable > 0
|
||||
# bizarrement, cette condition ne semble pas marcher, on se résout donc à utiliser une version plus "hacky" et moins proche de la loi. Elle posera problème le jour où l'on aura a calculer l'impot avec plusieurs sources de revenu
|
||||
non applicable si: auto entrepreneur . impôt . versement libératoire
|
||||
non applicable si: auto-entrepreneur . impôt . versement libératoire
|
||||
période: aucune
|
||||
par défaut: barème standard
|
||||
formule:
|
||||
|
@ -3322,7 +3322,7 @@
|
|||
somme:
|
||||
- contrat salarié . rémunération . net imposable
|
||||
- indépendant . revenu professionnel
|
||||
- auto entrepreneur . impôt . revenu imposable
|
||||
- auto-entrepreneur . impôt . revenu imposable
|
||||
|
||||
- espace: impôt
|
||||
nom: revenu abattu
|
||||
|
@ -3333,7 +3333,7 @@
|
|||
formule:
|
||||
somme:
|
||||
- revenu abattu par défaut
|
||||
- auto entrepreneur . impôt . revenu imposable
|
||||
- auto-entrepreneur . impôt . revenu imposable
|
||||
|
||||
- espace: impôt
|
||||
nom: revenu abattu par défaut
|
||||
|
@ -3407,7 +3407,7 @@
|
|||
formule:
|
||||
somme:
|
||||
- revenu abattu par défaut
|
||||
- auto entrepreneur . impôt . revenu abattu
|
||||
- auto-entrepreneur . impôt . revenu abattu
|
||||
- contrat salarié . prime d'impatriation
|
||||
références:
|
||||
Article 1417 du Code général des impôts: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000034596743&cidTexte=LEGITEXT000006069577&categorieLien=id&dateTexte=20170505
|
||||
|
@ -3442,7 +3442,7 @@
|
|||
somme:
|
||||
- contrat salarié . rémunération . net
|
||||
- indépendant . revenu net de cotisations
|
||||
- auto entrepreneur . revenu net de cotisations
|
||||
- auto-entrepreneur . revenu net de cotisations
|
||||
|
||||
- nom: revenu net après impôt
|
||||
unité: €
|
||||
|
@ -3559,11 +3559,11 @@
|
|||
variations:
|
||||
- si: indépendant
|
||||
alors: revenu net de cotisations + indépendant . cotisations et contributions
|
||||
- si: auto entrepreneur
|
||||
- si: auto-entrepreneur
|
||||
alors:
|
||||
inversion numérique:
|
||||
avec:
|
||||
- auto entrepreneur . revenu net de cotisations
|
||||
- auto-entrepreneur . revenu net de cotisations
|
||||
- revenu net après impôt
|
||||
- entreprise . chiffre d'affaires
|
||||
- entreprise . chiffre d'affaires minimum
|
||||
|
@ -3577,7 +3577,7 @@
|
|||
question: Quelles sont les charges de l'entreprise ?
|
||||
description: |
|
||||
|
||||
Ce sont les dépenses de l'entreprise engagées dans l'intérêt de celle-ci, hors rémunération du dirigeant. Pour les sociétés et entreprises hors auto entrepreneur, ces charges sont dites déductibles du résultat : l'entreprise ne paiera pas de cotisations ou impôt dessus. Pour l'auto entrepreneur, elles ne sont pas déductibles du chiffre d'affaire encaissé.
|
||||
Ce sont les dépenses de l'entreprise engagées dans l'intérêt de celle-ci, hors rémunération du dirigeant. Pour les sociétés et entreprises hors auto-entrepreneur, ces charges sont dites déductibles du résultat : l'entreprise ne paiera pas de cotisations ou impôt dessus. Pour l'auto-entrepreneur, elles ne sont pas déductibles du chiffre d'affaire encaissé.
|
||||
|
||||
Nous ne traitons pas encore la TVA : les charges sont à renseigner hors taxe (excepté pour les auto-entrepreneurs en franchise de TVA)
|
||||
|
||||
|
@ -3894,7 +3894,7 @@
|
|||
- entreprise . date de création = 'avant 2019'
|
||||
- entreprise . catégorie d'activité = 'libérale'
|
||||
- toutes ces conditions:
|
||||
- auto entrepreneur
|
||||
- auto-entrepreneur
|
||||
- entreprise . date de création = 'avant 2018'
|
||||
- entreprise . catégorie d'activité = 'libérale'
|
||||
|
||||
|
@ -4196,7 +4196,7 @@
|
|||
1.1: 0%
|
||||
1.4: 3.1%
|
||||
|
||||
- nom: auto entrepreneur
|
||||
- nom: auto-entrepreneur
|
||||
icônes: 🚶
|
||||
par défaut: non
|
||||
question: L'activité est-elle exercée en auto-entreprise ?
|
||||
|
@ -4205,7 +4205,7 @@
|
|||
rend non applicable:
|
||||
- contrat salarié
|
||||
|
||||
- espace: auto entrepreneur
|
||||
- espace: auto-entrepreneur
|
||||
nom: base des cotisations
|
||||
formule: entreprise . chiffre d'affaires
|
||||
période: flexible
|
||||
|
@ -4214,7 +4214,7 @@
|
|||
message: Seuil de chiffre d'affaires dépassé. [En savoir plus](/documentation/auto-entrepreneur/plafond)
|
||||
niveau: avertissement
|
||||
|
||||
- espace: auto entrepreneur
|
||||
- espace: auto-entrepreneur
|
||||
nom: plafond
|
||||
description: |
|
||||
Le statut de micro-entrepreneur s'applique tant que le chiffre d'affaires annuel (effectivement encaissé au cours de l'année civile) ne dépasse pas un certain seuil, qui dépend de sa catégorie d'activité.
|
||||
|
@ -4237,7 +4237,7 @@
|
|||
alors: 170000
|
||||
- sinon: 70000
|
||||
|
||||
- espace: auto entrepreneur
|
||||
- espace: auto-entrepreneur
|
||||
nom: revenu net de cotisations
|
||||
résumé: Avant impôt
|
||||
question: Quel revenu avant impôt voulez-vous toucher ?
|
||||
|
@ -4246,7 +4246,7 @@
|
|||
période: flexible
|
||||
unité: €
|
||||
|
||||
- espace: auto entrepreneur
|
||||
- espace: auto-entrepreneur
|
||||
nom: cotisations et contributions
|
||||
unité: €
|
||||
formule:
|
||||
|
@ -4259,7 +4259,7 @@
|
|||
Imposition du micro-entrepreneur: https://www.service-public.fr/professionnels-entreprises/vosdroits/F23267
|
||||
période: flexible
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions
|
||||
- espace: auto-entrepreneur . cotisations et contributions
|
||||
nom: TFC
|
||||
titre: Taxes pour frais de chambre
|
||||
unité: €
|
||||
|
@ -4276,7 +4276,7 @@
|
|||
- commerce
|
||||
- métiers
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . TFC
|
||||
- espace: auto-entrepreneur . cotisations et contributions . TFC
|
||||
nom: commerce
|
||||
titre: taxe pour frais de chambre de commerce
|
||||
période: flexible
|
||||
|
@ -4294,7 +4294,7 @@
|
|||
alors: 0.015%
|
||||
- sinon: 0.044%
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . TFC
|
||||
- espace: auto-entrepreneur . cotisations et contributions . TFC
|
||||
nom: métiers
|
||||
période: flexible
|
||||
unité: €
|
||||
|
@ -4309,7 +4309,7 @@
|
|||
alors: 0.22%
|
||||
- sinon: 0.48%
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions
|
||||
- espace: auto-entrepreneur . cotisations et contributions
|
||||
nom: contribution formation professionnelle
|
||||
titre: Contribution à la formation professionnelle
|
||||
unité: €
|
||||
|
@ -4332,7 +4332,7 @@
|
|||
alors: 0.1%
|
||||
- sinon: 0
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions
|
||||
- espace: auto-entrepreneur . cotisations et contributions
|
||||
nom: cotisations
|
||||
description: |
|
||||
Les cotisations sociales donnent à l'auto-entrepreneur accès à une protection sociale minimale : une retraite, des soins de santé, des allocations familiales, etc.
|
||||
|
@ -4354,7 +4354,7 @@
|
|||
références:
|
||||
La protection sociale du micro-entrepreneur: https://bpifrance-creation.fr/encyclopedie/micro-entreprise-regime-auto-entrepreneur/fiscal-social-comptable/protection-sociale
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . cotisations
|
||||
- espace: auto-entrepreneur . cotisations et contributions . cotisations
|
||||
nom: retraite complémentaire
|
||||
description: Le montant total qui est alloué à la retraite complémentaire, utile pour estimer le montant total de la pension de retraite des auto-entrepreneurs
|
||||
unité: €
|
||||
|
@ -4377,7 +4377,7 @@
|
|||
- entreprise . catégorie d'activité = 'artisanale'
|
||||
alors: 3.50%
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . cotisations
|
||||
- espace: auto-entrepreneur . cotisations et contributions . cotisations
|
||||
nom: taux de cotisation
|
||||
description: |
|
||||
Les cotisations sociales de l'auto-entreprise sont simplifiées : il n'y a qu'une ligne unique dont le taux dépend de la catégorie d'activité.
|
||||
|
@ -4407,7 +4407,7 @@
|
|||
|
||||
- espace: entreprise . ACRE
|
||||
nom: année
|
||||
applicable si: auto entrepreneur
|
||||
applicable si: auto-entrepreneur
|
||||
question: Quel est l'âge de l'entreprise ?
|
||||
formule:
|
||||
une possibilité:
|
||||
|
@ -4427,12 +4427,12 @@
|
|||
- espace: entreprise . ACRE . année
|
||||
nom: moins de trois ans
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . cotisations
|
||||
- espace: auto-entrepreneur . cotisations et contributions . cotisations
|
||||
nom: taux ACRE
|
||||
période: flexible
|
||||
formule: 100% - réduction ACRE
|
||||
|
||||
- espace: auto entrepreneur . cotisations et contributions . cotisations
|
||||
- espace: auto-entrepreneur . cotisations et contributions . cotisations
|
||||
nom: réduction ACRE
|
||||
titre: réduction ACRE
|
||||
applicable si: entreprise . ACRE
|
||||
|
@ -4449,16 +4449,16 @@
|
|||
références:
|
||||
Fiche URSSAF: https://www.urssaf.fr/portail/home/independant/je-beneficie-dexonerations/accre.html
|
||||
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32318
|
||||
- espace: auto entrepreneur . cotisations et contributions . cotisations
|
||||
- espace: auto-entrepreneur . cotisations et contributions . cotisations
|
||||
nom: plafond ACRE
|
||||
|
||||
formule: plafond sécurité sociale temps plein / impôt . abattement . taux inversé
|
||||
période: flexible
|
||||
|
||||
- espace: auto entrepreneur
|
||||
- espace: auto-entrepreneur
|
||||
nom: impôt
|
||||
|
||||
- espace: auto entrepreneur . impôt
|
||||
- espace: auto-entrepreneur . impôt
|
||||
nom: abattement
|
||||
période: flexible
|
||||
unité: '€'
|
||||
|
@ -4469,12 +4469,12 @@
|
|||
taux: taux
|
||||
- 305
|
||||
|
||||
- espace: auto entrepreneur . impôt . abattement
|
||||
- espace: auto-entrepreneur . impôt . abattement
|
||||
nom: taux inversé
|
||||
description: C'est le taux à appliquer pour savoir ce qu'il reste après application de l'abattement
|
||||
formule: 1 - taux
|
||||
|
||||
- espace: auto entrepreneur . impôt . abattement
|
||||
- espace: auto-entrepreneur . impôt . abattement
|
||||
nom: taux
|
||||
titre: taux d'abattement de l'impôt
|
||||
formule:
|
||||
|
@ -4488,7 +4488,7 @@
|
|||
alors: 71%
|
||||
- sinon: 50%
|
||||
|
||||
- espace: auto entrepreneur . impôt
|
||||
- espace: auto-entrepreneur . impôt
|
||||
nom: versement libératoire
|
||||
description: >
|
||||
Avec l'option pour le versement libératoire, l’impôt sur le revenu est payé en même temps que vos cotisations (par mois ou par trimestre) avec application d’un taux spécifique en fonction de votre activité.
|
||||
|
@ -4504,9 +4504,9 @@
|
|||
niveau: info
|
||||
période: aucune
|
||||
|
||||
- espace: auto entrepreneur . impôt . versement libératoire
|
||||
- espace: auto-entrepreneur . impôt . versement libératoire
|
||||
nom: montant
|
||||
titre: versement libératoire auto entrepreneur
|
||||
titre: versement libératoire auto-entrepreneur
|
||||
description: |
|
||||
Si vous avez opté pour le versement libératoire, l’impôt sur le revenu est payé en même temps que vos cotisations (par mois ou par trimestre) avec application d’un taux spécifique en fonction de votre activité :
|
||||
|
||||
|
@ -4531,13 +4531,13 @@
|
|||
- si: entreprise . catégorie d'activité = 'libérale'
|
||||
alors: 2.2%
|
||||
|
||||
- espace: auto entrepreneur . impôt
|
||||
- espace: auto-entrepreneur . impôt
|
||||
nom: revenu imposable
|
||||
non applicable si: versement libératoire
|
||||
période: flexible
|
||||
formule: revenu abattu
|
||||
|
||||
- espace: auto entrepreneur . impôt
|
||||
- espace: auto-entrepreneur . impôt
|
||||
nom: revenu abattu
|
||||
titre: revenu abattu auto-entrepreneur
|
||||
période: flexible
|
||||
|
@ -4632,7 +4632,7 @@
|
|||
- somme:
|
||||
- trimestres salarié
|
||||
- trimestres indépendant
|
||||
- trimestres auto entrepreneur
|
||||
- trimestres auto-entrepreneur
|
||||
- 4
|
||||
|
||||
- nom: trimestres salarié
|
||||
|
@ -4681,11 +4681,11 @@
|
|||
références:
|
||||
cnav.fr: https://www.legislation.cnav.fr/Pages/bareme.aspx?Nom=salaire_validant_un_trimestre_montant_bar
|
||||
|
||||
- nom: trimestres auto entrepreneur
|
||||
applicable si: auto entrepreneur
|
||||
- nom: trimestres auto-entrepreneur
|
||||
applicable si: auto-entrepreneur
|
||||
espace: protection sociale . retraite . trimestres validés par an
|
||||
période: aucune
|
||||
description: Les seuils de chiffre d'affaires minimum pour la validation des trimestres pour la retraite en auto entrepreneur. En-dessous du montant minimum, vous n'aurez accès qu'à l'allocation de solidarité.
|
||||
description: Les seuils de chiffre d'affaires minimum pour la validation des trimestres pour la retraite en auto-entrepreneur. En-dessous du montant minimum, vous n'aurez accès qu'à l'allocation de solidarité.
|
||||
formule:
|
||||
variations:
|
||||
- si: entreprise . catégorie d'activité = 'libérale'
|
||||
|
@ -4759,7 +4759,7 @@
|
|||
formule:
|
||||
le maximum de:
|
||||
- indépendant . revenu professionnel
|
||||
- auto entrepreneur . impôt . revenu imposable
|
||||
- auto-entrepreneur . impôt . revenu imposable
|
||||
- contrat salarié . rémunération . brut
|
||||
|
||||
- espace: protection sociale . retraite
|
||||
|
@ -4834,7 +4834,7 @@
|
|||
assiette:
|
||||
somme:
|
||||
- indépendant . cotisations et contributions . cotisations . retraite complémentaire
|
||||
- auto entrepreneur . cotisations et contributions . cotisations . retraite complémentaire
|
||||
- auto-entrepreneur . cotisations et contributions . cotisations . retraite complémentaire
|
||||
facteur: 1 / prix d'achat du point
|
||||
|
||||
- espace: protection sociale . retraite . complémentaire sécurité des indépendants
|
||||
|
@ -4879,13 +4879,13 @@
|
|||
unité: €
|
||||
formule:
|
||||
somme:
|
||||
- indemnités journalières . auto entrepreneur
|
||||
- indemnités journalières . auto-entrepreneur
|
||||
- indemnités journalières . indépendant
|
||||
- indemnités journalières . salarié
|
||||
|
||||
- espace: protection sociale . santé . indemnités journalières
|
||||
nom: auto entrepreneur
|
||||
applicable si: auto entrepreneur
|
||||
nom: auto-entrepreneur
|
||||
applicable si: auto-entrepreneur
|
||||
période: aucune
|
||||
unité: €
|
||||
formule:
|
||||
|
|
|
@ -2369,7 +2369,7 @@ entreprise . charges:
|
|||
description.en: >
|
||||
These are the company's expenses incurred in the company's interest,
|
||||
excluding executive compensation. For companies and businesses excluding
|
||||
auto entrepreneur, these expenses are said to be deductible from the result:
|
||||
auto-entrepreneur, these expenses are said to be deductible from the result:
|
||||
the company will not pay any contributions or taxes on it. For the
|
||||
self-entrepreneur, they are not deductible: the contractor pays them with
|
||||
his salary staff net of contributions and income.
|
||||
|
@ -2402,7 +2402,7 @@ entreprise . charges:
|
|||
Ce sont les dépenses de l'entreprise engagées dans l'intérêt de celle-ci,
|
||||
hors rémunération du dirigeant. Pour les sociétés et entreprises hors auto
|
||||
entrepreneur, ces charges sont dites déductibles du résultat : l'entreprise
|
||||
ne paiera pas de cotisations ou impôt dessus. Pour l'auto entrepreneur,
|
||||
ne paiera pas de cotisations ou impôt dessus. Pour l'auto-entrepreneur,
|
||||
elles ne sont pas déductibles du chiffre d'affaire encaissé.
|
||||
|
||||
|
||||
|
@ -2823,7 +2823,7 @@ indépendant . cotisations et contributions . formation professionnelle:
|
|||
indépendant . cotisations et contributions . cotisations . allocations familiales:
|
||||
titre.en: family allowances
|
||||
titre.fr: allocations familiales
|
||||
auto entrepreneur:
|
||||
auto-entrepreneur:
|
||||
question.en: Is the activity carried out in a auto-enterprise?
|
||||
question.fr: L'activité est-elle exercée en auto-entreprise ?
|
||||
description.en: |
|
||||
|
@ -2837,9 +2837,9 @@ auto entrepreneur:
|
|||
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.
|
||||
titre.en: auto entrepreneur
|
||||
titre.fr: auto entrepreneur
|
||||
auto entrepreneur . base des cotisations:
|
||||
titre.en: auto-entrepreneur
|
||||
titre.fr: auto-entrepreneur
|
||||
auto-entrepreneur . base des cotisations:
|
||||
contrôles.en:
|
||||
- si: base des cotisations > plafond
|
||||
message: >-
|
||||
|
@ -2854,7 +2854,7 @@ auto entrepreneur . base des cotisations:
|
|||
niveau: avertissement
|
||||
titre.en: contribution basis
|
||||
titre.fr: base des cotisations
|
||||
auto entrepreneur . plafond:
|
||||
auto-entrepreneur . plafond:
|
||||
description.en: >
|
||||
The status of microentrepreneur applies as long as the annual turnover
|
||||
(actually collected during the calendar year) does not exceed a certain
|
||||
|
@ -2874,7 +2874,7 @@ auto entrepreneur . plafond:
|
|||
individuelle](/sécurité-sociale/indépendant).
|
||||
titre.en: upper limit
|
||||
titre.fr: plafond
|
||||
auto entrepreneur . revenu net de cotisations:
|
||||
auto-entrepreneur . revenu net de cotisations:
|
||||
résumé.en: Before taxes
|
||||
résumé.fr: Avant impôt
|
||||
question.en: What pre-tax income do you want to receive?
|
||||
|
@ -2887,22 +2887,22 @@ auto entrepreneur . revenu net de cotisations:
|
|||
l'impôt sur le revenu.
|
||||
titre.en: Net contribution income
|
||||
titre.fr: revenu net de cotisations
|
||||
auto entrepreneur . cotisations et contributions:
|
||||
auto-entrepreneur . cotisations et contributions:
|
||||
titre.en: Contributions
|
||||
titre.fr: cotisations et contributions
|
||||
auto entrepreneur . cotisations et contributions . TFC:
|
||||
auto-entrepreneur . cotisations et contributions . TFC:
|
||||
titre.en: Chamber taxes
|
||||
titre.fr: Taxes pour frais de chambre
|
||||
auto entrepreneur . cotisations et contributions . TFC . commerce:
|
||||
auto-entrepreneur . cotisations et contributions . TFC . commerce:
|
||||
titre.en: Chamber of Trades taxes
|
||||
titre.fr: taxe pour frais de chambre de commerce
|
||||
auto entrepreneur . cotisations et contributions . TFC . métiers:
|
||||
auto-entrepreneur . cotisations et contributions . TFC . métiers:
|
||||
titre.en: Chamber of Crafts taxes
|
||||
titre.fr: taxe pour frais de chambre des métiers
|
||||
? auto entrepreneur . cotisations et contributions . contribution formation professionnelle
|
||||
? auto-entrepreneur . cotisations et contributions . contribution formation professionnelle
|
||||
: titre.en: Contribution to vocational training
|
||||
titre.fr: Contribution à la formation professionnelle
|
||||
auto entrepreneur . cotisations et contributions . cotisations:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations:
|
||||
description.en: >
|
||||
Social security contributions give the self-employed entrepreneur access to
|
||||
a minimum social protection: a pension, health care, social security, social
|
||||
|
@ -2931,7 +2931,7 @@ auto entrepreneur . cotisations et contributions . cotisations:
|
|||
l'ACRE, une réduction de cotisations, dégressive sur 3 ans.
|
||||
titre.en: contributions
|
||||
titre.fr: cotisations
|
||||
auto entrepreneur . cotisations et contributions . cotisations . retraite complémentaire:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations . retraite complémentaire:
|
||||
description.en: >-
|
||||
The total amount that is allocated to the supplementary pension, useful to
|
||||
estimate the total amount of the retirement pension for auto-entrepreneurs
|
||||
|
@ -2940,7 +2940,7 @@ auto entrepreneur . cotisations et contributions . cotisations . retraite compl
|
|||
estimer le montant total de la pension de retraite des auto-entrepreneurs
|
||||
titre.en: supplementary pension
|
||||
titre.fr: retraite complémentaire
|
||||
auto entrepreneur . cotisations et contributions . cotisations . taux de cotisation:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations . taux de cotisation:
|
||||
description.en: >
|
||||
The social contributions of the self-employed are simplified: there is no
|
||||
than a single line whose rate depends on the category of activity.
|
||||
|
@ -3002,11 +3002,11 @@ entreprise . ACRE . année . moins de deux ans:
|
|||
entreprise . ACRE . année . moins de trois ans:
|
||||
titre.en: less than three years
|
||||
titre.fr: moins de trois ans
|
||||
auto entrepreneur . cotisations et contributions . cotisations . taux ACRE:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations . taux ACRE:
|
||||
titre.en: |
|
||||
"ACRE" rate
|
||||
titre.fr: taux ACRE
|
||||
auto entrepreneur . cotisations et contributions . cotisations . réduction ACRE:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations . réduction ACRE:
|
||||
titre.en: |
|
||||
"ACRE" reduction
|
||||
titre.fr: réduction ACRE
|
||||
|
@ -3017,16 +3017,16 @@ auto entrepreneur . cotisations et contributions . cotisations . réduction ACRE
|
|||
description.fr: >-
|
||||
Ce taux peut dans certains cas réduire le montant des cotisations sociales
|
||||
de l'auto-entrepreneur pour l'aider dans ses premières année d'activité.
|
||||
auto entrepreneur . cotisations et contributions . cotisations . plafond ACRE:
|
||||
auto-entrepreneur . cotisations et contributions . cotisations . plafond ACRE:
|
||||
titre.en: ACRE upper limit
|
||||
titre.fr: plafond ACRE
|
||||
auto entrepreneur . impôt:
|
||||
auto-entrepreneur . impôt:
|
||||
titre.en: tax
|
||||
titre.fr: impôt
|
||||
auto entrepreneur . impôt . abattement:
|
||||
auto-entrepreneur . impôt . abattement:
|
||||
titre.en: allowance
|
||||
titre.fr: abattement
|
||||
auto entrepreneur . impôt . abattement . taux inversé:
|
||||
auto-entrepreneur . impôt . abattement . taux inversé:
|
||||
description.en: >-
|
||||
This is the rate to be applied to determine what remains after the
|
||||
application of
|
||||
|
@ -3036,10 +3036,10 @@ auto entrepreneur . impôt . abattement . taux inversé:
|
|||
l'abattement
|
||||
titre.en: inverted rate
|
||||
titre.fr: taux inversé
|
||||
auto entrepreneur . impôt . abattement . taux:
|
||||
auto-entrepreneur . impôt . abattement . taux:
|
||||
titre.en: tax allowance rate
|
||||
titre.fr: taux d'abattement de l'impôt
|
||||
auto entrepreneur . impôt . versement libératoire:
|
||||
auto-entrepreneur . impôt . versement libératoire:
|
||||
description.en: >
|
||||
With the option for the discharge payment, the income tax is paid at the same time as your contributions (per month or per quarter) with the application of a specific rate according to your activity. To benefit from it, your reference tax income must not exceed €27,086 in 2018
|
||||
description.fr: >
|
||||
|
@ -3069,9 +3069,9 @@ auto entrepreneur . impôt . versement libératoire:
|
|||
niveau: info
|
||||
titre.en: discharge payment
|
||||
titre.fr: versement libératoire
|
||||
auto entrepreneur . impôt . versement libératoire . montant:
|
||||
titre.en: discharge payment for auto entrepreneur
|
||||
titre.fr: versement libératoire auto entrepreneur
|
||||
auto-entrepreneur . impôt . versement libératoire . montant:
|
||||
titre.en: discharge payment for auto-entrepreneur
|
||||
titre.fr: versement libératoire auto-entrepreneur
|
||||
description.en: |
|
||||
If you have opted for the discharge payment, the income tax is paid at the same time as your contributions (per month or per quarter) with application of a specific rate according to your activity:
|
||||
|
||||
|
@ -3094,10 +3094,10 @@ auto entrepreneur . impôt . versement libératoire . montant:
|
|||
|
||||
- 2,2% pour les autres prestations de services relevants des bénéfices non
|
||||
commerciaux (BNC)
|
||||
auto entrepreneur . impôt . revenu imposable:
|
||||
auto-entrepreneur . impôt . revenu imposable:
|
||||
titre.en: taxable income
|
||||
titre.fr: revenu imposable
|
||||
auto entrepreneur . impôt . revenu abattu:
|
||||
auto-entrepreneur . impôt . revenu abattu:
|
||||
titre.en: reduced income
|
||||
titre.fr: revenu abattu auto-entrepreneur
|
||||
protection sociale:
|
||||
|
@ -3146,17 +3146,17 @@ protection sociale . retraite . trimestres validés par an . trimestres indépen
|
|||
protection sociale . retraite . trimestres validés par an . barème trimestres générique:
|
||||
titre.en: generic quarters scale
|
||||
titre.fr: barème trimestres générique
|
||||
protection sociale . retraite . trimestres validés par an . trimestres auto entrepreneur:
|
||||
protection sociale . retraite . trimestres validés par an . trimestres auto-entrepreneur:
|
||||
description.en: >-
|
||||
Minimum turnover thresholds for the validation of quarters for retirement as
|
||||
a self-employed entrepreneur. Below the minimum amount, you will only have
|
||||
access to the solidarity allowance.
|
||||
description.fr: >-
|
||||
Les seuils de chiffre d'affaires minimum pour la validation des trimestres
|
||||
pour la retraite en auto entrepreneur. En-dessous du montant minimum, vous
|
||||
pour la retraite en auto-entrepreneur. En-dessous du montant minimum, vous
|
||||
n'aurez accès qu'à l'allocation de solidarité.
|
||||
titre.en: auto-entrepreneur quarters
|
||||
titre.fr: trimestres auto entrepreneur
|
||||
titre.fr: trimestres auto-entrepreneur
|
||||
protection sociale . revenu moyen:
|
||||
description.en: >-
|
||||
The income used to calculate the amount of retirement pensions and daily
|
||||
|
@ -3221,9 +3221,9 @@ protection sociale . santé . indemnités journalières:
|
|||
partir de votre revenu brut et versées tous les 14 jours en moyenne.
|
||||
titre.en: Daily allowances
|
||||
titre.fr: indemnités journalières
|
||||
protection sociale . santé . indemnités journalières . auto entrepreneur:
|
||||
titre.en: auto entrepreneur
|
||||
titre.fr: auto entrepreneur
|
||||
protection sociale . santé . indemnités journalières . auto-entrepreneur:
|
||||
titre.en: auto-entrepreneur
|
||||
titre.fr: auto-entrepreneur
|
||||
protection sociale . santé . indemnités journalières . indépendant:
|
||||
titre.en: self employed
|
||||
titre.fr: indépendant
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
html,
|
||||
body,
|
||||
#js {
|
||||
min-height: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.app-container {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
height: 100vh;
|
||||
}
|
||||
.app-content {
|
||||
|
@ -22,8 +24,6 @@ body,
|
|||
flex: 1;
|
||||
}
|
||||
.app-container {
|
||||
overflow: auto;
|
||||
min-height: 100vh;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,9 +75,7 @@ function InFranceRoute({ basename, language }) {
|
|||
...retrievePersistedState(),
|
||||
previousSimulation: retrievePersistedSimulation()
|
||||
}}>
|
||||
<div id="content">
|
||||
<RouterSwitch />
|
||||
</div>
|
||||
<RouterSwitch />
|
||||
</Provider>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
}
|
||||
.sidebar__container.opened + * {
|
||||
transform: translateX(100%);
|
||||
overflow: hidden;
|
||||
}
|
||||
.menu__button {
|
||||
position: absolute;
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
plateformes:
|
||||
- Deliveroo
|
||||
- Uber
|
||||
- Academia
|
||||
- Malt
|
||||
- plateformes de jobbing (Youpijob, Frizbiz)
|
||||
seuil pro: 0
|
||||
explication: |
|
||||
|
|
|
@ -62,7 +62,7 @@ describe('bug-analyse-many', function() {
|
|||
const situationSelector = dottedName =>
|
||||
({
|
||||
'contrat salarié . rémunération . net de cotisations': 3500,
|
||||
'auto entrepreneur': 'non',
|
||||
'auto-entrepreneur': 'non',
|
||||
'contrat salarié': 'oui',
|
||||
'contrat salarié . assimilé salarié': 'oui',
|
||||
'contrat salarié . ATMP . taux réduit': 'oui',
|
||||
|
|
|
@ -104,7 +104,6 @@
|
|||
nombre de personnes: 10
|
||||
valeur attendue: 300
|
||||
|
||||
|
||||
- test: comparaison stricte
|
||||
formule: salaire de base < 3001
|
||||
exemples:
|
||||
|
@ -215,16 +214,23 @@
|
|||
- situation:
|
||||
revenu: 1000
|
||||
valeur attendue: 12000
|
||||
##############
|
||||
# Hors limite aujourd'hui
|
||||
|
||||
#- test: opérations multiples
|
||||
# formule: 4 * plafond sécurité sociale * 12
|
||||
#
|
||||
#- test: comparaison et opération
|
||||
# formule: salaire de base < 4 * plafond sécurité sociale
|
||||
# exemples:
|
||||
# - situation:
|
||||
# salaire de base: 1000
|
||||
# plafond sécurité sociale: 3500
|
||||
# valeur attendue: true
|
||||
- test: opérations multiples
|
||||
formule: 4 * plafond sécurité sociale * 10%
|
||||
exemples:
|
||||
- situation:
|
||||
plafond sécurité sociale: 1000
|
||||
valeur attendue: 400
|
||||
|
||||
- test: comparaison et opération
|
||||
formule: salaire de base < 4 * plafond sécurité sociale
|
||||
exemples:
|
||||
- situation:
|
||||
salaire de base: 1000
|
||||
plafond sécurité sociale: 3500
|
||||
valeur attendue: true
|
||||
|
||||
- test: nombres négatifs
|
||||
formule: -5 * -10
|
||||
exemples:
|
||||
- valeur attendue: 50
|
||||
|
|
20
yarn.lock
20
yarn.lock
|
@ -5889,12 +5889,7 @@ lodash.uniq@^4.5.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
||||
|
||||
lodash@4.17.15, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0:
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
|
||||
|
||||
lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4:
|
||||
lodash@4.17.15, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0:
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
|
||||
|
@ -6359,6 +6354,11 @@ moo@^0.4.3:
|
|||
resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e"
|
||||
integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==
|
||||
|
||||
moo@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.0.tgz#72f949e6735aeb27d07eb7c087ea5a70143c56e5"
|
||||
integrity sha512-AMv6iqhTEd5vT/cQlH6cammKS5ekyHhyqTRKi5zKMWl1RTyFnQ3ohPSBNSm8ySe2wlxSKwDonr9D5ZT44mdO3g==
|
||||
|
||||
move-concurrently@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
||||
|
@ -6423,10 +6423,10 @@ nearley-loader@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/nearley-loader/-/nearley-loader-2.0.0.tgz#8d75fd2ab3ca9f6153ae099b2bf18f8d5605d203"
|
||||
integrity sha512-kkUlMrkLWMoQPlOVmv7a8aHFEiTOShPb1H+CkvJrDMYpMCqnQUpfJgViGFlh0wufMQlGcawPzebcng6KnDJEdg==
|
||||
|
||||
nearley@^2.16.0:
|
||||
version "2.18.0"
|
||||
resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.18.0.tgz#a9193612dd6d528a2e47e743b1dc694cfe105223"
|
||||
integrity sha512-/zQOMCeJcioI0xJtd5RpBiWw2WP7wLe6vq8/3Yu0rEwgus/G/+pViX80oA87JdVgjRt2895mZSv2VfZmy4W1uw==
|
||||
nearley@^2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.0.tgz#37717781d0fd0f2bfc95e233ebd75678ca4bda46"
|
||||
integrity sha512-2v52FTw7RPqieZr3Gth1luAXZR7Je6q3KaDHY5bjl/paDUdMu35fZ8ICNgiYJRr3tf3NMvIQQR1r27AvEr9CRA==
|
||||
dependencies:
|
||||
commander "^2.19.0"
|
||||
moo "^0.4.3"
|
||||
|
|
Loading…
Reference in New Issue