From e15828a31d7a656dc9c3c14771a99408f941b5cb Mon Sep 17 00:00:00 2001 From: Alex S Date: Wed, 29 Sep 2021 14:39:40 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Ajoute=20un=20simulateur=20pour?= =?UTF-8?q?=20les=20pharmaciens=20(CAVP)=20(#1741)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Alexandre Valsamou-Stanislawski --- modele-social/règles/profession-libérale.yaml | 128 +++++++++++++++++- mon-entreprise/package.json | 6 +- .../InstitutionsPartenaires.tsx | 3 +- mon-entreprise/source/locales/rules-en.yaml | 76 +++++++++++ mon-entreprise/source/locales/ui-en.yaml | 3 + mon-entreprise/source/locales/ui-fr.yaml | 3 + .../source/pages/Simulateurs/Home.tsx | 1 + .../source/pages/Simulateurs/metadata-src.js | 16 ++- .../source/pages/Simulateurs/metadata.tsx | 12 ++ mon-entreprise/source/sitePaths.ts | 2 + .../images/logos-caisses-retraite/cavp.svg | 1 + .../images/logos-caisses-retraite/index.tsx | 1 + 12 files changed, 245 insertions(+), 7 deletions(-) create mode 100644 mon-entreprise/source/static/images/logos-caisses-retraite/cavp.svg diff --git a/modele-social/règles/profession-libérale.yaml b/modele-social/règles/profession-libérale.yaml index 0552986f9..777be024d 100644 --- a/modele-social/règles/profession-libérale.yaml +++ b/modele-social/règles/profession-libérale.yaml @@ -55,11 +55,13 @@ dirigeant . indépendant . PL . métier . santé: - chirurgien-dentiste - sage-femme - auxiliaire médical + - pharmacien dirigeant . indépendant . PL . métier . santé . auxiliaire médical: description: | Vous exercez un des métiers suivants : infirmier, masseur-kinésithérapeute, orthophoniste, orthoptiste ou pédicure-podologue. +dirigeant . indépendant . PL . métier . santé . pharmacien: dirigeant . indépendant . PL . métier . santé . chirurgien-dentiste: dirigeant . indépendant . PL . métier . santé . sage-femme: # dirigeant . indépendant . PL . métier . santé . médecin remplaçant: @@ -600,7 +602,7 @@ dirigeant . indépendant . PL . PAMC . participation CPAM: arrondi: oui références: amelie.fr: https://www.ameli.fr/assure/droits-demarches/salaries-travailleurs-independants-et-personnes-sans-emploi/emploi-independant-non-salarie/praticien-auxiliaire-medical - rapport sécurtié sociale 2009: https://www.securite-sociale.fr/files/live/sites/SSFR/files/medias/CCSS/2009/RAPPORT/CCSS-RAPPORT-JUIN_2009-FICHE-LA_PRISE_EN_CHARGE_DES_COTISATIONS_DES_PRATICIENS_ET_AUXILIAIRES_MEDICAUX.pdf + rapport sécurité sociale 2009: https://www.securite-sociale.fr/files/live/sites/SSFR/files/medias/CCSS/2009/RAPPORT/CCSS-RAPPORT-JUIN_2009-FICHE-LA_PRISE_EN_CHARGE_DES_COTISATIONS_DES_PRATICIENS_ET_AUXILIAIRES_MEDICAUX.pdf dirigeant . indépendant . PL . PAMC . IJSS: remplace: indépendant . IJSS . imposable @@ -623,6 +625,130 @@ dirigeant . indépendant . PL . PAMC . IJSS: question: Quel est le montant des indemnités journalières de maternité ou paternité perçu au titre de votre activité libérale ? par défaut: 0 €/an +dirigeant . indépendant . PL . CAVP: + description: La CAVP est la caisse de retraite des pharmaciens. + formule: oui + applicable si: métier = 'santé . pharmacien' + références: + Site CAVP: https://www.cavp.fr/ + +dirigeant . indépendant . PL . CAVP . directeur non médecin: + applicable si: métier = 'santé . pharmacien' + par défaut: non + question: Êtes-vous biologiste médical conventionné ? + +dirigeant . indépendant . PL . CAVP . demande reduction: + type: notification + formule: + une de ces conditions: + - assiette des cotisations < 1.8125 * plafond sécurité sociale temps plein + - entreprise . durée d'activité <= 2 an + résumé: | + Une réduction de cotisations peut être demandée les 2 premières années, ou + en cas de revenus faibles. Ainsi, si vos revenus de l'avant-dernière année, + ou de l'année précédente s'ils sont connus (soit 2018 ou 2019 pour les cotisations + 2020), étaient : + - inférieurs à 1/3 du PASS (13 712 € en 2020), vous pouvez demander une réduction de 75 % ; + - entre 1/3 et 2/3 du PASS (entre 13 712 et 27 423 € en 2020), vous pouvez demander une réduction de 50 % ; + - entre 2/3 du PASS et le PASS (entre 27 424 € et 41 135 € en 2020), vous pouvez demander une réduction de 25 %. + + Cette possibilité est réservée aux pharmaciens qui cotisent en classe 3 (la plus basse). + références: + CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/quelles-possibilit%C3%A9s-en-cas-de-difficult%C3%A9s + +dirigeant . indépendant . PL . CAVP . cotisation de référence: + valeur: 1200 € + +dirigeant . indépendant . PL . CAVP . retraite complémentaire: + remplace: cotisations et contributions . retraite complémentaire + titre: retraite complémentaire (CAVP) + formule: part géré par répartition + part géré par capitalisation + références: + Site CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations-regime-complementaire + Legifrance: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000039357705 + +dirigeant . indépendant . PL . CAVP . retraite complémentaire . part géré par répartition: + formule: 5 * cotisation de référence + références: + Site CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations-regime-complementaire + Legifrance: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000039357705 + +dirigeant . indépendant . PL . CAVP . retraite complémentaire . part géré par capitalisation: + formule: + grille: + assiette: assiette des cotisations + multiplicateur: plafond sécurité sociale temps plein + tranches: + - montant: 2 * cotisation de référence + plafond: 1.8125 + - montant: 3 * cotisation de référence + plafond: 2.1875 + - montant: 4 * cotisation de référence + plafond: 2.5625 + - montant: 5 * cotisation de référence + plafond: 2.9375 + - montant: 6 * cotisation de référence + plafond: 3.3125 + - montant: 7 * cotisation de référence + plafond: 3.6875 + - montant: 8 * cotisation de référence + plafond: 4.0625 + - montant: 9 * cotisation de référence + plafond: 4.4375 + - montant: 10 * cotisation de référence + plafond: 4.8125 + - montant: 11 * cotisation de référence + plafond: 5.1875 + - montant: 12 * cotisation de référence + références: + Site CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations-regime-complementaire + Legifrance: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000039357705 + +dirigeant . indépendant . PL . CAVP . invalidité et décès: + titre: invalidité et décès (CAVP) + remplace: cotisations et contributions . invalidité et décès + formule: 608 €/an + références: + Site CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations + +dirigeant . indépendant . PL . CAVP . PCV: + titre: Prestation complémentaire de vieillesse (CAVP) + remplace: cotisations et contributions . PCV + applicable si: dirigeant . indépendant . PL . CAVP . directeur non médecin + formule: + somme: + - cotisations forfaitaire + - cotisations proportionnelle + - (- aide CPAM) + arrondi: oui + référence: + Taux 2021 (CAVP): https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations-regime-des-prestations-complementaires-vieillesse + La retraite en claire: https://www.la-retraite-en-clair.fr/parcours-professionnel-regimes-retraite/retraite-travailleurs-independants/retraite-complementaire-pharmaciens-cavp + +dirigeant . indépendant . PL . CAVP . PCV . cotisations forfaitaire: + formule: 1728 €/an + +dirigeant . indépendant . PL . CAVP . PCV . cotisations proportionnelle: + formule: + produit: + assiette: assiette des cotisations + taux: 0.30% + plafond: 5 * plafond sécurité sociale temps plein + +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM: + somme: + - aide CPAM forfaitaire + - aide CPAM proportionnelle + référence: + CAVP: https://www.cavp.fr/votre-profil/pharmacien-en-activite/vos-cotisations-regime-des-prestations-complementaires-vieillesse + La retraite en claire: https://www.la-retraite-en-clair.fr/parcours-professionnel-regimes-retraite/retraite-travailleurs-independants/retraite-complementaire-pharmaciens-cavp + +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM forfaitaire: + formule: 66% * cotisations forfaitaire + +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM proportionnelle: + formule: 50% * cotisations proportionnelle + dirigeant . indépendant . PL . CARPIMKO: description: La CARPIMKO est la caisse de retraite autonome des auxiliaires médicaux. formule: oui diff --git a/mon-entreprise/package.json b/mon-entreprise/package.json index d0fc5b3a7..179a990d6 100644 --- a/mon-entreprise/package.json +++ b/mon-entreprise/package.json @@ -12,10 +12,7 @@ "engines": { "node": ">=12.16.1" }, - "browserslist": [ - "> 1% in FR", - "not ie < 11" - ], + "browserslist": ["> 1% in FR", "not ie < 11"], "devDependencies": { "@babel/core": "^7.9.0", "@babel/plugin-proposal-class-properties": "^7.8.3", @@ -125,6 +122,7 @@ "test:dev-e2e:mon-entreprise": "cypress open --browser chromium", "test:dev-e2e:mycompanyinfrance": "cypress open --browser chromium --config baseUrl=http://localhost:8080/infrance,integrationFolder=cypress/integration/mon-entreprise/english --env language=en", "test:record-http-calls:mon-entreprise": "cypress run --env record_http=", + "i18n:check": "yarn run i18n:rules:check && yarn run i18n:ui:check", "i18n:rules:check": "node scripts/i18n/check-missing-rule-translation.js", "i18n:rules:translate": "node scripts/i18n/translate-rules.js", "i18n:ui:check": "yarn run i18next -c scripts/i18n/parser.config.js && node scripts/i18n/check-missing-UI-translation", diff --git a/mon-entreprise/source/components/simulationExplanation/InstitutionsPartenaires.tsx b/mon-entreprise/source/components/simulationExplanation/InstitutionsPartenaires.tsx index dd4023ed4..d27c4ed69 100644 --- a/mon-entreprise/source/components/simulationExplanation/InstitutionsPartenaires.tsx +++ b/mon-entreprise/source/components/simulationExplanation/InstitutionsPartenaires.tsx @@ -1,5 +1,5 @@ -import Value, { Condition } from 'Components/EngineValue' import RuleLink from 'Components/RuleLink' +import Value, { Condition } from 'Components/EngineValue' import { FromBottom } from 'Components/ui/animate' import Emoji from 'Components/utils/Emoji' import { useEngine } from 'Components/utils/EngineContext' @@ -145,6 +145,7 @@ function CaisseRetraite() { 'CARMF', 'CNBF', 'CAVEC', + 'CAVP', ] as const return ( diff --git a/mon-entreprise/source/locales/rules-en.yaml b/mon-entreprise/source/locales/rules-en.yaml index 3f958f8f0..8520df060 100644 --- a/mon-entreprise/source/locales/rules-en.yaml +++ b/mon-entreprise/source/locales/rules-en.yaml @@ -5873,6 +5873,79 @@ dirigeant . indépendant . PL . CAVEC . invalidité et décès: dirigeant . indépendant . PL . CAVEC . retraite complémentaire: titre.en: '[automatic] supplementary pension (CAVEC)' titre.fr: retraite complémentaire (CAVEC) +dirigeant . indépendant . PL . CAVP: + description.en: '[automatic] The CAVP is the pension fund for pharmacists.' + description.fr: La CAVP est la caisse de retraite des pharmaciens. + titre.en: '[automatic] CAVP' + titre.fr: CAVP +dirigeant . indépendant . PL . CAVP . PCV: + titre.en: '[automatic] Old-age benefit (CAVP)' + titre.fr: Prestation complémentaire de vieillesse (CAVP) +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM: + titre.en: '[automatic] CPAM assistance' + titre.fr: aide CPAM +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM forfaitaire: + titre.en: '[automatic] flat-rate CPAM aid' + titre.fr: aide CPAM forfaitaire +dirigeant . indépendant . PL . CAVP . PCV . aide CPAM proportionnelle: + titre.en: '[automatic] proportional CPAM assistance' + titre.fr: aide CPAM proportionnelle +dirigeant . indépendant . PL . CAVP . PCV . cotisations forfaitaire: + titre.en: '[automatic] flat-rate contributions' + titre.fr: cotisations forfaitaire +dirigeant . indépendant . PL . CAVP . PCV . cotisations proportionnelle: + titre.en: '[automatic] proportional contributions' + titre.fr: cotisations proportionnelle +dirigeant . indépendant . PL . CAVP . cotisation de référence: + titre.en: '[automatic] benchmark contribution' + titre.fr: cotisation de référence +dirigeant . indépendant . PL . CAVP . demande reduction: + résumé.en: > + [automatic] A reduction in contributions can be requested for the first 2 + years, or + + in case of low income. Thus, if your income for the year before last + + or the previous year if known (i.e. 2018 or 2019 for 2020 contributions) + + 2020), were : + - less than 1/3 of the PASS (€13,712 in 2020), you can claim a 75% reduction; + - between 1/3 and 2/3 of the PASS (between €13,712 and €27,423 in 2020), you can apply for a 50% reduction; + - between 2/3 of the PASS and the PASS (between €27,424 and €41,135 in 2020), you can apply for a 25% reduction. + + This possibility is reserved for pharmacists who contribute in class 3 (the lowest). + résumé.fr: > + Une réduction de cotisations peut être demandée les 2 premières années, ou + + en cas de revenus faibles. Ainsi, si vos revenus de l'avant-dernière année, + + ou de l'année précédente s'ils sont connus (soit 2018 ou 2019 pour les cotisations + + 2020), étaient : + - inférieurs à 1/3 du PASS (13 712 € en 2020), vous pouvez demander une réduction de 75 % ; + - entre 1/3 et 2/3 du PASS (entre 13 712 et 27 423 € en 2020), vous pouvez demander une réduction de 50 % ; + - entre 2/3 du PASS et le PASS (entre 27 424 € et 41 135 € en 2020), vous pouvez demander une réduction de 25 %. + + Cette possibilité est réservée aux pharmaciens qui cotisent en classe 3 (la plus basse). + titre.en: '[automatic] reduction request' + titre.fr: demande reduction +dirigeant . indépendant . PL . CAVP . directeur non médecin: + question.en: '[automatic] Are you a registered medical biologist?' + question.fr: Êtes-vous biologiste médical conventionné ? + titre.en: '[automatic] non-physician director' + titre.fr: directeur non médecin +dirigeant . indépendant . PL . CAVP . invalidité et décès: + titre.en: '[automatic] disability and death (CAVP)' + titre.fr: invalidité et décès (CAVP) +dirigeant . indépendant . PL . CAVP . retraite complémentaire: + titre.en: '[automatic] supplementary pension (CAVP)' + titre.fr: retraite complémentaire (CAVP) +dirigeant . indépendant . PL . CAVP . retraite complémentaire . part géré par capitalisation: + titre.en: '[automatic] share managed by capitalisation' + titre.fr: part géré par capitalisation +dirigeant . indépendant . PL . CAVP . retraite complémentaire . part géré par répartition: + titre.en: '[automatic] pay-as-you-go portion' + titre.fr: part géré par répartition dirigeant . indépendant . PL . CIPAV: description.en: > [automatic] CIPAV is the independent pension fund for the regulated @@ -6456,6 +6529,9 @@ dirigeant . indépendant . PL . métier . santé . chirurgien-dentiste: dirigeant . indépendant . PL . métier . santé . médecin: titre.en: '[automatic] doctor' titre.fr: médecin +dirigeant . indépendant . PL . métier . santé . pharmacien: + titre.en: '[automatic] pharmacist' + titre.fr: pharmacien dirigeant . indépendant . PL . métier . santé . sage-femme: titre.en: '[automatic] midwife' titre.fr: sage-femme diff --git a/mon-entreprise/source/locales/ui-en.yaml b/mon-entreprise/source/locales/ui-en.yaml index c660285ba..e53f65259 100644 --- a/mon-entreprise/source/locales/ui-en.yaml +++ b/mon-entreprise/source/locales/ui-en.yaml @@ -1398,6 +1398,9 @@ pages: title: PAMC diet simulators shortname: PAMC title: "PAMC: contribution and income simulators" + pharmacien: + shortname: Pharmacist + title: Income simulator for self-employed pharmacists print-info: date: This simulation was performed on recover: You can find this simulation and other tools to help you create and diff --git a/mon-entreprise/source/locales/ui-fr.yaml b/mon-entreprise/source/locales/ui-fr.yaml index bbba8761b..0d8532385 100644 --- a/mon-entreprise/source/locales/ui-fr.yaml +++ b/mon-entreprise/source/locales/ui-fr.yaml @@ -1057,6 +1057,9 @@ pages: title: Simulateurs régime PAMC shortname: PAMC title: "PAMC : simulateurs de cotisations et de revenu" + pharmacien: + shortname: Pharmacien + title: Simulateur de revenus pour pharmacien en libéral print-info: date: Cette simulation a été effectuée le recover: Retrouvez cette simulation ainsi que d'autres outils d'aide à la diff --git a/mon-entreprise/source/pages/Simulateurs/Home.tsx b/mon-entreprise/source/pages/Simulateurs/Home.tsx index 4c57448d2..caeaee408 100644 --- a/mon-entreprise/source/pages/Simulateurs/Home.tsx +++ b/mon-entreprise/source/pages/Simulateurs/Home.tsx @@ -75,6 +75,7 @@ export default function Simulateurs() { + diff --git a/mon-entreprise/source/pages/Simulateurs/metadata-src.js b/mon-entreprise/source/pages/Simulateurs/metadata-src.js index 88df8c6c4..3ab4d656b 100644 --- a/mon-entreprise/source/pages/Simulateurs/metadata-src.js +++ b/mon-entreprise/source/pages/Simulateurs/metadata-src.js @@ -369,12 +369,26 @@ module.exports = ({ t = (_, text) => text } = {}) => { private: true, iframePath: 'demande-mobilite', }, + pharmacien: { + tracking: { + chapter2: 'profession_liberale', + chapter3: 'pharmacien', + }, + icône: '⚕️', + iframePath: 'pharmacien', + pathId: 'simulateurs.profession-libérale.pharmacien', + shortName: t('pages.simulateurs.pharmacien.shortname', 'Pharmacien'), + title: t( + 'pages.simulateurs.pharmacien.title', + 'Simulateur de revenus pour pharmacien en libéral' + ), + }, médecin: { tracking: { chapter2: 'profession_liberale', chapter3: 'medecin', }, - icône: '⚕️', + icône: '🩺', iframePath: 'médecin', pathId: 'simulateurs.profession-libérale.médecin', shortName: t('pages.simulateurs.médecin.shortname', 'Médecin'), diff --git a/mon-entreprise/source/pages/Simulateurs/metadata.tsx b/mon-entreprise/source/pages/Simulateurs/metadata.tsx index d6a67be2e..6ed7c3833 100644 --- a/mon-entreprise/source/pages/Simulateurs/metadata.tsx +++ b/mon-entreprise/source/pages/Simulateurs/metadata.tsx @@ -57,6 +57,7 @@ const simulateurs = [ 'demande-mobilité', 'profession-libérale', 'médecin', + 'pharmacien', 'chirurgien-dentiste', 'sage-femme', 'auxiliaire-médical', @@ -608,6 +609,16 @@ export function getSimulatorsData({ path: sitePaths.gérer.formulaireMobilité, private: true, }, + pharmacien: { + ...pureSimulatorsData['pharmacien'], + config: pharmacienConfig, + tracking: { + chapter2: 'profession_liberale', + chapter3: 'pharmacien', + }, + path: sitePaths.simulateurs['profession-libérale'].pharmacien, + component: IndépendantPLSimulation, + }, médecin: { ...pureSimulatorsData['médecin'], config: médecinConfig, @@ -869,6 +880,7 @@ const configFromPLMetier = (metier: string): SimulationConfig => ({ const auxiliaireConfig = configFromPLMetier('santé . auxiliaire médical') const dentisteConfig = configFromPLMetier('santé . chirurgien-dentiste') const médecinConfig = configFromPLMetier('santé . médecin') +const pharmacienConfig = configFromPLMetier('santé . pharmacien') const sageFemmeConfig = configFromPLMetier('santé . sage-femme') const avocatConfig = configFromPLMetier('avocat') const expertComptableConfig = configFromPLMetier('expert-comptable') diff --git a/mon-entreprise/source/sitePaths.ts b/mon-entreprise/source/sitePaths.ts index 74d736646..604cdcbd3 100644 --- a/mon-entreprise/source/sitePaths.ts +++ b/mon-entreprise/source/sitePaths.ts @@ -62,6 +62,7 @@ const sitePathsFr = { 'profession-libérale': { index: '/profession-liberale', médecin: '/medecin', + pharmacien: '/pharmacien', auxiliaire: '/auxiliaire-medical', 'chirurgien-dentiste': '/chirurgien-dentiste', 'sage-femme': '/sage-femme', @@ -130,6 +131,7 @@ const sitePathsEn = { 'profession-libérale': { index: '/liberal-profession', médecin: '/doctor', + pharmacien: '/pharmacist', auxiliaire: '/medical-auxiliary', 'chirurgien-dentiste': '/dental-surgeon', 'sage-femme': '/midwife', diff --git a/mon-entreprise/source/static/images/logos-caisses-retraite/cavp.svg b/mon-entreprise/source/static/images/logos-caisses-retraite/cavp.svg new file mode 100644 index 000000000..fa05a2fb9 --- /dev/null +++ b/mon-entreprise/source/static/images/logos-caisses-retraite/cavp.svg @@ -0,0 +1 @@ +logo-cavp \ No newline at end of file diff --git a/mon-entreprise/source/static/images/logos-caisses-retraite/index.tsx b/mon-entreprise/source/static/images/logos-caisses-retraite/index.tsx index d7b06cbf4..2aed7e636 100644 --- a/mon-entreprise/source/static/images/logos-caisses-retraite/index.tsx +++ b/mon-entreprise/source/static/images/logos-caisses-retraite/index.tsx @@ -5,3 +5,4 @@ export { default as CARCDSF } from './carcdsf.jpg' export { default as CNBF } from './cnbf.png' export { default as CAVEC } from './cavec.jpg' export { default as IRCEC } from './ircec.jpg' +export { default as CAVP } from './cavp.svg'