Pages for variables

pull/1/head
Mael Thomas 2016-12-07 19:08:10 +01:00
parent e3b6ba2dbb
commit 5f71feb9c6
33 changed files with 217 additions and 156 deletions

View File

@ -3,12 +3,15 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>prel2</title>
<title>Syso</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:200,300,400,700' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="js">lOl</div>
<script type="text/javascript" src="dist/bundle.js"></script>
<script type="text/javascript" src="/dist/bundle.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</body>
</html>

View File

@ -4,7 +4,7 @@
"license": "AGPL-3.0",
"repository": {
"type": "git",
"url": "git@github.com:laem/prel2.git"
"url": "git@github.com:laem/syso.git"
},
"description": "Expérimentation sur les prélèvements sociaux en code",
"engines": {
@ -14,7 +14,10 @@
"babel-runtime": "^6.6.1",
"classnames": "^2.2.1",
"deep-assign": "^2.0.0",
"ramda": "^0.21.0",
"install": "^0.8.2",
"js-yaml": "^3.7.0",
"npm": "^4.0.3",
"ramda": "^0.22.1",
"react": "^15.0.1",
"react-dom": "^15.0.1",
"react-hot-loader": "3.0.0-beta.2",

View File

@ -1,16 +0,0 @@
- variable: crédit impot compétitivité emploi
abbreviation: CICE
depuis: 2013-1-1
calc: ad hoc
- variable: aide premier salarie
tags:
type aide: aide embauche
depuis: 2015-6-9
calc: ad hoc
- variable: aide embauche pme
tags:
type aide: aide embauche
depuis: 2015-1-18
calc: ad hoc

View File

@ -29,60 +29,60 @@
- allocations familiales
+:
Aide:
variante: exonération de droit commun
- Aide:
variante: exonération de droit commun
conditions à remplir:
toutes ces conditions:
- effectif entreprise < 11
#TODO règles de calcul de l'effectif, maintien partiel de l'éxo en cas de croissance : https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite/les-employeurs-concernes-par-lex/lexoneration-de-droit-commun-pou.html
- secteur Salariat ⊂ : # Voir la remarque "Bon à savoir" de l'URSSAF : c'est bien le secteur d'activité du salarié qui importe
- Bâtiment et travaux publics, industrie
- Restauration
- Presse, production audiovisuelle
- Energies renouvelables
- Nouvelles technologies de l'information, de la communication et centres d'appel
- Pêche, cultures marines, aquaculture
- Agriculture y compris les coopératives agricoles et les SICA et leurs unions, coopératives maritimes et leurs unions
- Tourisme, restauration de tourisme y compris les activités de loisirs s'y rapportant et hôtellerie
- Transport aérien #TODO conditionné
- Transport maritime ou fluvial #TODO conditionné
conditions à remplir:
toutes ces conditions:
- effectif entreprise < 11
#TODO règles de calcul de l'effectif, maintien partiel de l'éxo en cas de croissance : https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite/les-employeurs-concernes-par-lex/lexoneration-de-droit-commun-pou.html
- secteur Salariat ⊂ : # Voir la remarque "Bon à savoir" de l'URSSAF : c'est bien le secteur d'activité du salarié qui importe
- Bâtiment et travaux publics, industrie
- Restauration
- Presse, production audiovisuelle
- Energies renouvelables
- Nouvelles technologies de l'information, de la communication et centres d'appel
- Pêche, cultures marines, aquaculture
- Agriculture y compris les coopératives agricoles et les SICA et leurs unions, coopératives maritimes et leurs unions
- Tourisme, restauration de tourisme y compris les activités de loisirs s'y rapportant et hôtellerie
- Transport aérien #TODO conditionné
- Transport maritime ou fluvial #TODO conditionné
# Méchanisme de calcul assez original
coefficient de réduction:
# Le principe de cette exonération :
# les cotisations cibles vont être rejouées,
# mais avec une assiette réduite à un coefficient * le smic, puis retranchées.
# la formule ci-dessous donne le coefficient qui varie sur des tranches
affine par morceaux:
base: smic proratisé
tranches:
- seuil: 0
# Exonération totale des cotisations dassurances sociales et dallocations familiales
coefficient: 1
- seuil: 1.4
# Exonération sur la partie du salaire horaire brut limitée à 1.4
coefficient: 1.4
- seuil: 2
# le coefficient suit une fonction linéaire passant par la borne précédente et la borne suivante
#TODO est-ce clair ?
coefficient: linéaire
- seuil: 3
# Pas dexonération dès le 1er euro versé
exonération: 0
# Méchanisme de calcul assez original
coefficient de réduction:
# Le principe de cette exonération :
# les cotisations cibles vont être rejouées,
# mais avec une assiette réduite à un coefficient * le smic, puis retranchées.
# la formule ci-dessous donne le coefficient qui varie sur des tranches
affine par morceaux:
base: smic proratisé
tranches:
- seuil: 0
# Exonération totale des cotisations dassurances sociales et dallocations familiales
coefficient: 1
- seuil: 1.4
# Exonération sur la partie du salaire horaire brut limitée à 1.4
coefficient: 1.4
- seuil: 2
# le coefficient suit une fonction linéaire passant par la borne précédente et la borne suivante
#TODO est-ce clair ?
coefficient: linéaire
- seuil: 3
# Pas dexonération dès le 1er euro versé
exonération: 0
# Faire le même pour les autres conditions : CICE: [oui, non], type de réduction: [effectif, secteur]
# Faire le même pour les autres conditions : CICE: [oui, non], type de réduction: [effectif, secteur]
+:
Aide:
variante: exonération renforcée
# Complexité énorme pour 'concerne' !!!!!!!!!!!!!!
conditions à remlir:
toutes ces conditions:
- effectif < 250 && CA < 50 000 000
- condition complexe ...
- soumis de plein droit ou sur option à un régime réel dimposition
#TODO IMPORTANT résoudre la syntaxe ET OU...
# si machin alors condition suppl
# méchanisme de calcul : IDEM exo droit commun
- Aide:
variante: exonération renforcée
# Complexité énorme pour 'concerne' !!!!!!!!!!!!!!
conditions à remlir:
toutes ces conditions:
- effectif < 250 && CA < 50 000 000
- condition complexe ...
- soumis de plein droit ou sur option à un régime réel dimposition
#TODO IMPORTANT résoudre la syntaxe ET OU...
# si machin alors condition suppl
# méchanisme de calcul : IDEM exo droit commun

View File

@ -1,5 +1,4 @@
- Aide: réduction générale bas salaires
attributs:
type: réduction de cotisations
thème: aide bas salaires

View File

@ -1,4 +1,4 @@
- variable: régime géographique = Alsace Moselle
- Variable: régime Alsace Moselle
description: Appartenance au régime local de sécurité sociale Alsace-Moselle
référence: http://regime-local.fr/salaries/
logique:

View File

@ -1,6 +1,6 @@
- variable: CIF CDD
- Cotisation: CIF CDD
description: Conrtibution au financement du congé individuel de formation spécifique aux CDD
tags:
attributs:
collecteur: OPCA
reference: Code du travail - Article L6322-37
ne concerne pas:
@ -12,6 +12,7 @@
- contrat aidé # voir la définition précise dans indemnité de fin de contrat
- apprentissage
linear:
base: assiette cotisations sociales
historique: 0.01
formule:
linéaire:
base: assiette cotisations sociales
historique: 0.01

View File

@ -1 +0,0 @@
- CDD

View File

@ -1,4 +1,4 @@
- variable: indemnité compensatrice congés payés
- Cotisation: indemnité compensatrice congés payés
references:
- https://www.service-public.fr/particuliers/vosdroits/F2931
- https://www.easycdd.com/LEGISLATION-CDD/L-embauche-le-suivi-du-contrat-CDD-les-incidents-frequents/Conges-payes-et-contrat-CDD

View File

@ -1,7 +1,7 @@
- variable: indemnité de fin de contrat
tags:
- indemnité
alias: prime de précarité
- Cotisation: Indemnité de Fin de Contrat
attributs:
type: indemnité
alias: Prime de précarité
description: Somme versée en fin de CDD comme compensation de précarité.
notes: Attention, les exceptions sont légion. Conventions collectives.
concerne:
@ -21,9 +21,10 @@
- contrat jeune vacances # (contrat conclu avec un jeune pendant ses vacances scolaires ou universitaires.)
- engagement employeur complément formation professionnelle
- saisonnier
linear:
base: salaire brut
taux: .1
formule:
linéaire:
base: salaire brut
taux: .1
références:
- Fin du CDD: https://www.service-public.fr/particuliers/vosdroits/F40

View File

@ -1,4 +1,4 @@
- variable: contrat aidé
- Variable: Contrat Aidé
description: Contrat aidé dans le cadre de la polotique pour l'emploi
notes: Il est assez difficile de déterminer ce que le terme contrat aidé regroupe
logique:
@ -8,34 +8,35 @@
- étudiant apprenti professeur
- CDD sénior
- variable: CDD transformé en CDI
logique:
- embauche en CDI suivant le CDD
- CDD requalifié en CDI # quand ça arrive ?
- Variable: CDD transformé en CDI
formule:
logique:
- embauche en CDI suivant le CDD
- CDD requalifié en CDI # quand ça arrive ?
- variable: CDD usage # Similaire pour intérim, mais domaines différents
- Variable: CDD usage # Similaire pour intérim, mais domaines différents
référence: https://www.service-public.fr/particuliers/vosdroits/F32476
si: emploi temporaire par nature
inclusion logique:
variable: secteur activité entreprise
possibilités:
- Déménagement
- Services à la personne
- Hôtellerie, restauration
- Centre de loisirs et de vacances
- Activité foraine
- Sport professionnel
- Enseignement
- Spectacle
- Action culturelle
- Audiovisuel, production cinématographique, édition phonographique
- Exploitation forestière
- Réparation navale
- Information
- Enquêtes, sondages
- Entreposage et stockage de la viande
- Bâtiment et travaux publics pour les chantiers à l'étranger
- Coopération, assistance technique d'ingénierie et de recherche à l'étranger
- Recherche scientifique dans le cadre d'un accord international (convention, arrangement administratif)
- Assistance technique ou logistique dans les institutions internationales ou dans l'Union européenne prévu par les traités
-
concerne: emploi temporaire par nature
formule:
inclusion logique:
variable: secteur activité entreprise
possibilités:
- Déménagement
- Services à la personne
- Hôtellerie, restauration
- Centre de loisirs et de vacances
- Activité foraine
- Sport professionnel
- Enseignement
- Spectacle
- Action culturelle
- Audiovisuel, production cinématographique, édition phonographique
- Exploitation forestière
- Réparation navale
- Information
- Enquêtes, sondages
- Entreposage et stockage de la viande
- Bâtiment et travaux publics pour les chantiers à l'étranger
- Coopération, assistance technique d'ingénierie et de recherche à l'étranger
- Recherche scientifique dans le cadre d'un accord international (convention, arrangement administratif)
- Assistance technique ou logistique dans les institutions internationales ou dans l'Union européenne prévu par les traités

View File

@ -1,4 +1,4 @@
- Cotisation: allocations familiales
- Cotisation: Allocations Familiales
attributes:
dû par: employeur
branche: famille

View File

@ -1,4 +1,4 @@
- Cotisation: chomage
- Cotisation: Chomage
attributs:
branche: chomage
collecteur: Pôle-Emploi

View File

@ -1,4 +1,4 @@
- Cotisation: contribution au dialogue social
- Cotisation: Contribution au Dialogue Social
attributs:
dû par: employeur
branche: aucune idée

View File

@ -1,4 +1,4 @@
- Cotisation: cotisation exceptionnelle temporaire
- Cotisation: Cotisation Exceptionnelle Temporaire
attributs:
branche: retraite
type de retraite: complémentaire
@ -15,19 +15,19 @@
- Cotisation:
dû par: employeur
taux:
2016-01-01: .0022
2001-01-01: .0022
2000-01-01: .0017
1999-01-01: .0013
1998-01-01: .0009
1997-01-01: .00044
2016: .0022
2001: .0022
2000: .0017
1999: .0013
1998: .0009
1997: .00044
- Cotisation:
dû par: salarié
taux:
2016-01-01: .0013
2001-01-01: .0013
2000-01-01: .0011
1999-01-01: .0008
1998-01-01: .0005
1997-01-01: .00026
2016: .0013
2001: .0013
2000: .0011
1999: .0008
1998: .0005
1997: .00026

View File

@ -1,4 +1,4 @@
- Cotisation: formation professionnelle
- Cotisation: Formation Professionnelle
attributs:
dû par: employeur
collecteur: OPCA

View File

@ -1,4 +1,4 @@
- Cotisation: maladie
- Cotisation: Maladie
attributs:
branche: maladie
initiales: MMID-CSA

View File

@ -1,4 +1,4 @@
- Cotisation: participation effort construction
- Cotisation: Participation Effort Construction
attributs:
branche: aucune idée
dû par: employeur

View File

@ -1,4 +1,4 @@
- Cotisation: Prévoyance obligatoire cadre
- Cotisation: Prévoyance Obligatoire Cadre
attributs:
dû par: employeur
concerne: catégorie salarié = cadre

View File

@ -1,4 +1,4 @@
- Cotisation: apprentissage
- Cotisation: Taxe pour l'Apprentissage
attributs:
branche: aucune idée
collecteur: Organisme Collecteur de Taxe d'Apprentissage (OCTA)
@ -8,7 +8,7 @@
- https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574
- http://www.opcalia.com/employeurs/financer-la-formation-et-lapprentissage/taxe-dapprentissage/contribution-supplementaire-a-lapprentissage-csa/
notes: Taxe complexe, comportant notamment des exonérations non prises en compte ici.
notes: Taxe complexe, comportant notamment des exonérations non prises en compte ici.
ne concerne pas:
- Entreprise . association non lucrative
@ -32,8 +32,10 @@
description: Contribution supplémentaire à l'apprentissage
abbreviation: CSA
concerne: effectif entreprise >= 250
concerne: ratio alternants < 0.05
conditions à remplir:
toutes ces conditions:
- effectif entreprise >= 250
- ratio alternants < 0.05
variations:
- si: régime géographique = général

View File

@ -1,4 +1,4 @@
- Cotisation: vieillesse
- Cotisation: Vieillesse
attributs:
branche: retraite
type de retraite: de base

View File

@ -0,0 +1,3 @@
#variable {
font-size: 150%;
}

19
source/components/Rule.js Normal file
View File

@ -0,0 +1,19 @@
import React, { Component } from 'react'
import {findRuleByName} from '../model.js'
import {safeDump} from 'js-yaml'
import './Rule.css'
export default class Rule extends Component {
render() {
return (
<div id="variable">
<pre>
<code className="yaml">
{safeDump(findRuleByName(this.props.params.name)[2])}
</code>
</pre>
</div>
)
}
}

View File

@ -50,3 +50,14 @@
margin: 0 auto;
list-style: none;
}
#search-results li {
margin: .5em 0;
}
#search-results .rule-type {
border: 1px solid lightGrey;
padding: 0 .5em;
font-size: 75%;
margin-right: 1em;
}

View File

@ -1,7 +1,7 @@
import React, { Component } from 'react'
import './Home.css'
console.log('rules', rules.length)
import {searchRules} from '../model.js'
import {Link} from 'react-router'
export default class Home extends Component {
state = {
@ -27,13 +27,19 @@ export default class Home extends Component {
</section>
<section id="search-results">
<ul>
{this.state.userSearch != null && rules
.filter( rule =>
rule && rule.Cotisation &&
JSON.stringify(rule).indexOf(this.state.userSearch) > -1)
.map( ({Cotisation}) => console.log(Cotisation) ||
<li key={Cotisation}>{Cotisation}</li>
)
{this.state.userSearch != null &&
searchRules(this.state.userSearch)
.map(([type, name, rule]) =>
// console.log(rule) ||
<li key={name}>
<span className="rule-type">
{type}
</span>
<span className="rule-name">
<Link to={`/regle/${name}`}>{name}</Link>
</span>
</li>
)
}</ul>
</section>
</div>)

View File

@ -3,8 +3,8 @@ import R from 'ramda'
/* Load yaml files */
let context = require.context(
'../règles/rémunération-travail/cotisations', false,
/([a-zA-Z]|\.|-|_)+.yaml$/)
'../règles/rémunération-travail', true,
/([a-zA-Z]|-|_)+.yaml$/)
let rules = R.pipe(
@ -13,4 +13,5 @@ let rules = R.pipe(
R.unnest,
)(context.keys())
export default rules
export default rules.filter(r => r != null)

25
source/model.js Normal file
View File

@ -0,0 +1,25 @@
import rules from './load-rules'
import possibleVariableTypes from './possibleVariableTypes.yaml'
export let findRuleByName = name =>
rules
.map(extractRuleTypeAndName)
.find( ([, n]) =>
n === name
)
export let searchRules = searchInput =>
rules
.filter( rule =>
rule && hasKnownRuleType(rule) &&
JSON.stringify(rule).indexOf(searchInput) > -1)
.map(extractRuleTypeAndName)
export let extractRuleTypeAndName = rule => {
let type = possibleVariableTypes.find(t => rule[t])
return [type, rule[type], rule]
}
export let hasKnownRuleType = rule => rule && extractRuleTypeAndName(rule)[0]

View File

@ -0,0 +1,3 @@
# Ce fichier n'est que temporaire et remplace une vraie définition de types
- Cotisation
- Aide

View File

@ -6,7 +6,7 @@ import Rule from './components/Rule'
export default (
<Route path="/" component={Layout}>
<Route path="règle" component={Rule} />
<Route path="regle/:name" component={Rule} />
<IndexRoute component={Home} />
<Route path="*" component={() => <h2>On vous a perdu !</h2>} />
</Route>