commit
e688fdc5e6
|
@ -86,7 +86,7 @@
|
|||
"style-loader": "^0.18.2",
|
||||
"url-loader": "^0.5.8",
|
||||
"webpack": "^3.6.0",
|
||||
"webpack-dev-server": "^2.4.5"
|
||||
"webpack-dev-server": "^2.9.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node source/server.js",
|
||||
|
|
|
@ -62,7 +62,3 @@
|
|||
- espace: contrat salarié
|
||||
nom: multiplicateur réduction générale
|
||||
formule: 1.6
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: smic mensuel
|
||||
formule: 1480.27
|
||||
|
|
|
@ -5,47 +5,28 @@
|
|||
type de retraite: complémentaire
|
||||
destinataire: AGIRC
|
||||
description: |
|
||||
Les salariés relevant du régime Agirc et travaillant à temps plein dont le salaire ne permet pas d'obtenir le nombre minimum de 120 points Agirc, ont la garantie de les obtenir en contrepartie d'une cotisation forfaitaire.
|
||||
Les salariés relevant du régime Agirc qui n'ont pas un salaire suffisant pour
|
||||
atteindre le nombre minimum de 120 points Agirc,
|
||||
ont la garantie de les obtenir en contrepartie d'une cotisation forfaitaire.
|
||||
référence: http://www.agirc-arrco.fr/entreprises/gerer-les-salaries/calcul-des-cotisations/
|
||||
note: |
|
||||
Mécanisme:
|
||||
si < PSS -> cotisation forfaitaire GMP
|
||||
si > PSS alors on va payer une cotisation AGIRC sur la tranche B, et la GMP sera le complément pour arriver à un montant total = cotisation #forfaitaire GMP
|
||||
Autrement dit, si agirc < cotisation forfaitaire, GMP = complément
|
||||
|
||||
# TODO On pourrait aussi se dire que cette formule est un complément de AGIRC,
|
||||
# donc que les conditions d'applicabilité d'AGIRC n'ont pas à être répétées
|
||||
non applicable si: ≠ statut cadre
|
||||
|
||||
|
||||
formule:
|
||||
complément:
|
||||
# TODO harmoniser la syntaxe de ce 'complément' avec les systèmes de réduction de cotisation. C'est pareil avec une addition finalement
|
||||
# cette cotisation vient compléter la cotisation cible, à hauteur du montant spécifié
|
||||
cible: agirc
|
||||
composantes:
|
||||
- attributs:
|
||||
dû par: employeur
|
||||
montant: 43.76
|
||||
cible: agirc (employeur)
|
||||
montant: 43.67 * quotité de travail
|
||||
- attributs:
|
||||
dû par: salarié
|
||||
montant: 26.71
|
||||
cible: agirc (salarié)
|
||||
montant: 26.71 * quotité de travail
|
||||
|
||||
# salaire charnière, inutile avec le méchanisme de complément.
|
||||
# C'est le salaire pour lequel le salarié acquiert 120 points AGIRC
|
||||
# 2017: 42590.88
|
||||
# 2016: 42590.88
|
||||
# 2015: 41913.84
|
||||
# 2014: 41444.64
|
||||
# 2013: 40948.70
|
||||
# 2012: 40251.98
|
||||
# 2011: 39146.63
|
||||
# 2010: 38332.92
|
||||
# 2009: 37973.00
|
||||
# 2008: 36877.00
|
||||
# 2007: 35666.00
|
||||
# 2006: 34428.00
|
||||
# 2005: 33512.00
|
||||
# 2004: 32952.00
|
||||
# 2003: 32349.00
|
||||
# 2002: 31337.00
|
||||
note: Le mécanisme de complément de la cotisation AGIRC nous évite d'avoir à utiliser le "salaire charnière"
|
||||
|
||||
# TODO
|
||||
# - harmoniser la syntaxe de ce 'complément' avec les systèmes de réduction de cotisation. C'est pareil avec une addition finalement
|
||||
# - on pourrait aussi se dire que cette formule est un complément de AGIRC,
|
||||
# donc que les conditions d'applicabilité d'AGIRC n'ont pas à être répétées
|
||||
|
|
|
@ -26,3 +26,12 @@
|
|||
- nom: plafonnée
|
||||
plafond: plafond sécurité sociale
|
||||
taux: 8.55%
|
||||
exemples:
|
||||
- nom: SMIC
|
||||
situation:
|
||||
assiette cotisations sociales: 1480
|
||||
valeur attendue: 262.70
|
||||
- nom: Salaire élevé
|
||||
situation:
|
||||
assiette cotisations sociales: 8000
|
||||
valeur attendue: 689.06
|
||||
|
|
|
@ -98,6 +98,7 @@
|
|||
entreprise . effectif: 1
|
||||
entreprise . association non lucrative: 1
|
||||
par défaut:
|
||||
contrat salarié . temps partiel: non
|
||||
contrat salarié . CDD . événement: non
|
||||
contrat salarié . CDD . congés non pris: 0
|
||||
contrat salarié . CDD . contrat jeune vacances: non
|
||||
|
|
|
@ -89,11 +89,26 @@
|
|||
description: Notion mal définie mais reconnue par les conventions collectives et déterminant l'appartenance à une caise de retraite de base spécifique
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: plafond sécurité sociale
|
||||
nom: plafond sécurité sociale temps plein
|
||||
#TODO peut-être à déplacer ? Doit être accessible par d'autres types d'activité que contrat salarié
|
||||
# type de période: mensuel
|
||||
formule: 3269
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: plafond sécurité sociale
|
||||
#TODO peut-être à déplacer ? Doit être accessible par d'autres types d'activité que contrat salarié
|
||||
# type de période: mensuel
|
||||
formule: plafond sécurité sociale temps plein * quotité de travail
|
||||
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: smic mensuel temps plein
|
||||
formule: 1480.27
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: smic mensuel
|
||||
formule: smic mensuel temps plein * quotité de travail
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: cotisations salariales
|
||||
formule:
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
- espace: contrat salarié
|
||||
nom: temps partiel
|
||||
question: Le contrat est-il à temps partiel ?
|
||||
description: |
|
||||
Le temps partiel peut avoir une influence sur les règles.
|
||||
Par exemple les cotisations plafonnées ou les exonérations dépendant du SMIC.
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: heures par semaine
|
||||
question: Quel est le nombre d'heures travaillées par semaine dans le cadre du temps partiel ?
|
||||
format: nombre
|
||||
# contrôle : le code du travail définit la borne inférieure de 24h par semaine
|
||||
|
||||
- espace: contrat salarié
|
||||
nom: quotité de travail
|
||||
formule:
|
||||
multiplication:
|
||||
assiette: 1
|
||||
variations:
|
||||
- si: temps partiel
|
||||
taux: heures par semaine / 35
|
||||
- si: ≠ temps partiel
|
||||
taux: 1
|
|
@ -14,6 +14,7 @@
|
|||
"transform-object-rest-spread",
|
||||
"transform-class-properties",
|
||||
"syntax-dynamic-import",
|
||||
"react-hot-loader/babel",
|
||||
["webpack-alias", { "config": "./source/webpack.config.js" }]
|
||||
]
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ let decompose = (recurse, k, v) => {
|
|||
[<li className="composante" key={JSON.stringify(c.composante)}>
|
||||
<ul className="composanteAttributes">
|
||||
{R.toPairs(c.composante).map(([k,v]) =>
|
||||
<li>
|
||||
<li key={k}>
|
||||
<span>{k}: </span>
|
||||
<span>{v}</span>
|
||||
</li>
|
||||
|
@ -48,7 +48,7 @@ let decompose = (recurse, k, v) => {
|
|||
{makeJsx(c)}
|
||||
</div>
|
||||
</li>,
|
||||
i < (explanation.length - 1) && <li className="composantesSymbol"><i className="fa fa-plus-circle" aria-hidden="true"></i></li>
|
||||
i < (explanation.length - 1) && <li key="+" className="composantesSymbol"><i className="fa fa-plus-circle" aria-hidden="true"></i></li>
|
||||
])
|
||||
}
|
||||
</ul>
|
||||
|
@ -98,7 +98,7 @@ let devariate = (recurse, k, v) => {
|
|||
|
||||
let collectMissing = node => {
|
||||
let choice = R.find(node => node.condition.nodeValue, node.explanation),
|
||||
leftMissing = choice ? [] : R.chain(collectNodeMissing,R.pluck("condition",node.explanation)),
|
||||
leftMissing = choice ? [] : R.uniq(R.chain(collectNodeMissing,R.pluck("condition",node.explanation))),
|
||||
rightMissing = choice ? collectNodeMissing(choice) : R.chain(collectNodeMissing,node.explanation)
|
||||
return R.concat(leftMissing,rightMissing)
|
||||
}
|
||||
|
@ -595,13 +595,14 @@ export let mecanismComplement = (recurse,k,v) => {
|
|||
type: 'numeric',
|
||||
category: 'mecanism',
|
||||
name: 'complément pour atteindre',
|
||||
jsx: <Node
|
||||
jsx: (nodeValue, explanation) => <Node
|
||||
classes="mecanism list complement"
|
||||
name="complément pour atteindre"
|
||||
name="complément"
|
||||
value={nodeValue}
|
||||
child={
|
||||
<ul className="properties">
|
||||
<li key="cible">
|
||||
<span className="key">montant calculé: </span>
|
||||
<span className="key">cible: </span>
|
||||
<span className="value">{makeJsx(explanation.cible)}</span>
|
||||
</li>
|
||||
<li key="mini">
|
||||
|
|
|
@ -23,12 +23,9 @@ render(
|
|||
// Hot react component reloading. Unstable but helpful.
|
||||
if (module.hot) {
|
||||
module.hot.accept('./containers/App', () => {
|
||||
// If you use Webpack 2 in ES modules mode, you can
|
||||
// use <App /> here rather than require() a <NextApp />.
|
||||
const NextApp = require('./containers/App').default
|
||||
render(
|
||||
<AppContainer>
|
||||
<NextApp store={store} />
|
||||
<App store={store} />
|
||||
</AppContainer>,
|
||||
anchor
|
||||
)
|
||||
|
|
|
@ -12,8 +12,8 @@ module.exports = {
|
|||
] : [
|
||||
'webpack-dev-server/client?http://localhost:3000/',
|
||||
'webpack/hot/only-dev-server',
|
||||
'react-hot-loader/patch',
|
||||
'babel-polyfill',
|
||||
'react-hot-loader/patch',
|
||||
'./source/entry.js'
|
||||
],
|
||||
output: {
|
||||
|
|
|
@ -274,7 +274,7 @@ describe('buildNextSteps', function() {
|
|||
result = buildNextSteps(stateSelector, rules, situation)
|
||||
|
||||
expect(R.path(["question","props","label"])(result[0])).to.equal("Quel est le salaire brut ?")
|
||||
expect(R.path(["question","props","label"])(result[1])).to.equal("Le salarié a-t-il le statut cadre ?")
|
||||
expect(R.path(["question","props","label"])(result[1])).to.equal("Le contrat est-il à temps partiel ?")
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue