From 7a9429578c92007029091efbec584936d35c6c72 Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Tue, 3 Dec 2019 14:52:34 +0100 Subject: [PATCH] Corrige le lien vers le webinar pour les auto-entrepreneurs --- source/actions/existingCompanyActions.js | 5 +- source/reducers/inFranceAppReducer.ts | 18 +++++-- source/reducers/rootReducer.ts | 5 +- source/règles/base.yaml | 16 ------ .../pages/Gérer/AideOrganismeLocal.tsx | 54 +++++++++++++++++++ .../mon-entreprise.fr/pages/Gérer/Home.tsx | 2 + .../pages/Gérer/aideOrganisme.svg | 1 + 7 files changed, 78 insertions(+), 23 deletions(-) create mode 100644 source/sites/mon-entreprise.fr/pages/Gérer/AideOrganismeLocal.tsx create mode 100644 source/sites/mon-entreprise.fr/pages/Gérer/aideOrganisme.svg diff --git a/source/actions/existingCompanyActions.js b/source/actions/existingCompanyActions.js index 0ddcfa36a..9003a117c 100644 --- a/source/actions/existingCompanyActions.js +++ b/source/actions/existingCompanyActions.js @@ -15,8 +15,9 @@ export const setEntreprise = siren => async dispatch => { }) const companyDetails = await fetchCompanyDetails(siren) dispatch({ - type: 'EXISTING_COMPANY::SET_CATEGORIE_JURIDIQUE', - catégorieJuridique: companyDetails.categorie_juridique + type: 'EXISTING_COMPANY::SET_DETAILS', + catégorieJuridique: companyDetails.categorie_juridique, + dateDébutActivité: companyDetails.date_debut }) const communeDetails = await fetchCommuneDetails( companyDetails.etablissement_siege.code_commune diff --git a/source/reducers/inFranceAppReducer.ts b/source/reducers/inFranceAppReducer.ts index 5856df9f1..de30645a7 100644 --- a/source/reducers/inFranceAppReducer.ts +++ b/source/reducers/inFranceAppReducer.ts @@ -123,12 +123,21 @@ const infereLegalStatusFromCategorieJuridique = ( return 'NON_IMPLÉMENTÉ' } +type GeoDetails = { + nom: string + code: string +} export type Company = { siren: string catégorieJuridique?: string statutJuridique?: string + dateDébutActivité?: Date isAutoEntrepreneur?: boolean isDirigeantMajoritaire?: boolean + localisation?: GeoDetails & { + departement: GeoDetails + region: GeoDetails + } } function existingCompany(state: Company = null, action): Company { @@ -141,13 +150,14 @@ function existingCompany(state: Company = null, action): Company { if (action.type.endsWith('SET_SIREN')) { return { siren: action.siren } } - if (state && action.type.endsWith('SET_CATEGORIE_JURIDIQUE')) { + if (state && action.type.endsWith('SET_DETAILS')) { const statutJuridique = infereLegalStatusFromCategorieJuridique( action.catégorieJuridique ) return { siren: state.siren, - statutJuridique + statutJuridique, + dateDébutActivité: action.dateDébutActivité } } if (state && action.type.endsWith('SPECIFY_AUTO_ENTREPRENEUR')) { @@ -156,7 +166,9 @@ function existingCompany(state: Company = null, action): Company { if (state && action.type.endsWith('SPECIFY_DIRIGEANT_MAJORITAIRE')) { return { ...state, isDirigeantMajoritaire: action.isDirigeantMajoritaire } } - + if (state && action.type.endsWith('ADD_COMMUNE_DETAILS')) { + return { ...state, localisation: action.details } + } return state } diff --git a/source/reducers/rootReducer.ts b/source/reducers/rootReducer.ts index 5863c3b5e..07d06d5e5 100644 --- a/source/reducers/rootReducer.ts +++ b/source/reducers/rootReducer.ts @@ -222,8 +222,9 @@ const addAnswerToSituation = ( value: any, state: RootState ) => { + console.log(state) return (compose( - set(lensPath(['simulation', 'situation', dottedName]), value), + set(lensPath(['simulation', 'config', 'situation', dottedName]), value), over(lensPath(['conversationSteps', 'foldedSteps']), (steps = []) => uniq([...steps, dottedName]) ) as any @@ -235,7 +236,7 @@ const removeAnswerFromSituation = ( state: RootState ) => { return (compose( - over(lensPath(['simulation', 'situation']), dissoc(dottedName)), + over(lensPath(['simulation', 'config', 'situation']), dissoc(dottedName)), over( lensPath(['conversationSteps', 'foldedSteps']), without([dottedName]) diff --git a/source/règles/base.yaml b/source/règles/base.yaml index 57a1b2711..cde5ede17 100644 --- a/source/règles/base.yaml +++ b/source/règles/base.yaml @@ -1752,7 +1752,6 @@ entreprise: Le contrat lie une entreprise, identifiée par un code SIREN, et un employé. entreprise . prélèvements obligatoires: - applicable si: établissement . localisation période: flexible formule: somme: @@ -3971,21 +3970,6 @@ dirigeant . auto-entrepreneur: icônes: 🚶 description: | L'auto-entreprise est une entreprise individuelle simplifiée. À l'origine connu sous l'appellation « auto-entrepreneur », le régime de « micro-entrepreneur » est un régime de travailleur indépendant créé pour simplifier la gestion administrative, notamment en remplaçant toutes les cotisations sociales par un prélèvement unique mensuel. - contrôles: - - si: - toutes ces conditions: - - une de ces conditions: - - établissement . localisation . département = 'Ariège' - - établissement . localisation . département = 'Aveyron' - - établissement . localisation . département = 'Haute-Garonne' - - établissement . localisation . département = 'Gers' - - établissement . localisation . département = 'Lot' - - établissement . localisation . département = 'Hautes-Pyrénées' - - établissement . localisation . département = 'Tarn' - - établissement . localisation . département = 'Tarn-et-Garonne' - - dirigeant . auto-entrepreneur - niveau: info - message: L'Urssaf Midi-Pyrénées vous accompagne ! Assistez au webinar dédiés aux auto-entrepreneur en début d'activité, où vous pourrez poser toutes vos questions. [En savoir plus](https://webikeo.fr/webinar/auto-entrepreneurs-maitrisez-les-fondamentaux-pour-une-installation-reussie-3) dirigeant . auto-entrepreneur . base des cotisations: diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/AideOrganismeLocal.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/AideOrganismeLocal.tsx new file mode 100644 index 000000000..fa81314ad --- /dev/null +++ b/source/sites/mon-entreprise.fr/pages/Gérer/AideOrganismeLocal.tsx @@ -0,0 +1,54 @@ +import React from 'react' +import { useTranslation } from 'react-i18next' +import { useSelector } from 'react-redux' +import { RootState } from 'Reducers/rootReducer' +import animate from 'Ui/animate' +import aideOrganismeSvg from './aideOrganisme.svg' + +const aideMidiPyrenéesAutoEntrepreneur = (state: RootState) => { + const company = state.inFranceApp.existingCompany + if (!company) { + return false + } + return ( + new Date(company.dateDébutActivité) > new Date('2019-04-01') && + company.isAutoEntrepreneur && + company.localisation && + ['09', '12', '31', '32', '46', '65', '81', '82'].includes( + company.localisation.departement.code + ) + ) +} +export default function AideOrganismeLocal() { + const aideLocale = useSelector(aideMidiPyrenéesAutoEntrepreneur) + const { + i18n: { language } + } = useTranslation() + if (language !== 'fr' || !aideLocale) { + return null + } + return ( + +
+
+ +

L'Urssaf Midi-Pyrénées vous accompagne !

+

+ Assistez au webinar dédié aux auto-entrepreneur en début d'activité, + où vous pourrez poser toutes vos questions. +

+ + En savoir plus + +
+
+
+ ) +} diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx index 70bed396f..731012109 100644 --- a/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx +++ b/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx @@ -17,6 +17,7 @@ import { Link } from 'react-router-dom' import { Company } from 'Reducers/inFranceAppReducer' import { RootState } from 'Reducers/rootReducer' import * as Animate from 'Ui/animate' +import AideOrganismeLocal from './AideOrganismeLocal' import businessPlan from './businessPlan.svg' const infereRégimeFromCompanyDetails = (company: Company) => { @@ -127,6 +128,7 @@ export default function SocialSecurity() { )} +

Ressources utiles

diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/aideOrganisme.svg b/source/sites/mon-entreprise.fr/pages/Gérer/aideOrganisme.svg new file mode 100644 index 000000000..1fc570818 --- /dev/null +++ b/source/sites/mon-entreprise.fr/pages/Gérer/aideOrganisme.svg @@ -0,0 +1 @@ +online discussion \ No newline at end of file