diff --git a/règles/rémunération-travail/entités/ok/atmp.yaml b/règles/rémunération-travail/entités/ok/atmp.yaml new file mode 100644 index 000000000..b1f9bcdcb --- /dev/null +++ b/règles/rémunération-travail/entités/ok/atmp.yaml @@ -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 diff --git a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml index 28457d2d3..0b87f6007 100644 --- a/règles/rémunération-travail/entités/ok/contrat-salarié.yaml +++ b/règles/rémunération-travail/entités/ok/contrat-salarié.yaml @@ -136,6 +136,7 @@ formule: somme: - maladie (employeur) + - ATMP - prévoyance obligatoire cadre - vieillesse (employeur) - ARRCO (employeur) diff --git a/source/components/conversation/select/SelectTauxRisque.js b/source/components/conversation/select/SelectTauxRisque.js index b02657a11..6089225c3 100644 --- a/source/components/conversation/select/SelectTauxRisque.js +++ b/source/components/conversation/select/SelectTauxRisque.js @@ -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) diff --git a/source/engine/generateQuestions.js b/source/engine/generateQuestions.js index 5fe0b8150..39f0b72a1 100644 --- a/source/engine/generateQuestions.js +++ b/source/engine/generateQuestions.js @@ -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