🔨 Intègre (grossièrement) la cotisation ATMP

pull/60/head
Laurent Bossavit 2017-09-24 15:26:07 +02:00
parent 91956f2d4b
commit e0844ab810
4 changed files with 37 additions and 7 deletions

View File

@ -0,0 +1,23 @@
- espace: contrat salarié
nom: atmp
description: Cotisation due au titre des Accidents du Travail et Maladies Professionnelles
cotisation:
branche: maladie
destinataire: URSSAF
responsable: CARSAT
formule:
multiplication:
assiette: assiette cotisations sociales
taux: ATMP . taux collectif ATMP / 100
- espace: contrat salarié . ATMP
nom: taux collectif ATMP
titre: Taux collectif ATMP
question: Quel taux Accidents du Travail et Maladies Professionnelles s'applique à l'entreprise ?
description: |
Les entreprises de moins de 20 salariés sont assujetties à ce taux collectif. Pour les entreprises plus importantes,
ce taux est modulé (jusqu'à 150 salariés) voire individualisé (au-delà). L'entreprise peut consulter le taux qui la
concerne en ligne sur [net-entreprise](http://www.net-entreprises.fr/html/compte-accident-travail.htm).
format: pourcentage
suggestions: atmp-2017

View File

@ -136,6 +136,7 @@
formule:
somme:
- maladie (employeur)
- ATMP
- prévoyance obligatoire cadre
- vieillesse (employeur)
- ARRCO (employeur)

View File

@ -1,5 +1,5 @@
import React, { Component } from 'react'
import {FormDecorator} from './FormDecorator'
import React, { Component } from 'react'
import {FormDecorator} from '../FormDecorator'
import ReactSelect from 'react-select'
import SelectOption from './SelectOption.js'
import 'react-select/dist/react-select.css'
@ -13,8 +13,8 @@ class ReactSelectWrapper extends Component {
options,
submitOnChange =
option => {
option.text = option['Taux net'] + ' %'
onChange(option)
option.text = option['Taux net'].replace(",",".")
onChange(option.text)
submit()
},
selectValue = value && value['Code risque'],
@ -32,7 +32,7 @@ class ReactSelectWrapper extends Component {
valueKey="Code risque"
placeholder="Tapez des mots ou déroulez la liste complète"
optionRenderer={SelectOption}
valueRenderer={(value) => value['Nature du risque'].substring(0, 50) + '...'}
valueRenderer={(value) => value['Taux net']}
clearable={false}
value={selectValue}
onBlur={() => onBlur(value)}
@ -61,7 +61,7 @@ export default class Select extends Component {
}
componentDidMount() {
fetch(this.props.stepProps.optionsURL)
fetch("https://raw.githubusercontent.com/sgmap/taux-collectifs-cotisation-atmp/master/taux-2017.json")
.then(response => {
if (!response.ok) {
let error = new Error(response.statusText)

View File

@ -5,6 +5,7 @@ import Explicable from 'Components/conversation/Explicable'
import Question from 'Components/conversation/Question'
import Input from 'Components/conversation/Input'
import Select from 'Components/conversation/select/Select'
import SelectAtmp from 'Components/conversation/select/SelectTauxRisque'
import formValueTypes from 'Components/conversation/formValueTypes'
import {analyseSituation} from './traverse'
@ -156,6 +157,11 @@ export let generateQuestion = flatRules => ([dottedName, objectives]) => {
valueType: formValueTypes[rule.format],
suggestions: rule.suggestions,
})
let selectAtmp = rule => ({
component: SelectAtmp,
valueType: formValueTypes[rule.format],
suggestions: rule.suggestions,
})
let binaryQuestion = rule => ({
component: Question,
choices: [
@ -177,7 +183,7 @@ export let generateQuestion = flatRules => ([dottedName, objectives]) => {
rule.format == null ?
binaryQuestion(rule) :
typeof rule.suggestions == 'string' ?
selectQuestion(rule) :
(rule.suggestions == 'atmp-2017' ? selectAtmp(rule) : selectQuestion(rule)) :
inputQuestion(rule)
,
guidance