⬆ Mise à jour publicodes
parent
e693c93566
commit
1362c89bae
|
@ -5,10 +5,7 @@
|
|||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"editor.tabSize": 2,
|
||||
"eslint.enable": true,
|
||||
"cSpell.words": [
|
||||
"mycompanyinfrance",
|
||||
"smarttag"
|
||||
],
|
||||
"cSpell.words": ["mycompanyinfrance", "smarttag"],
|
||||
"search.exclude": {
|
||||
"**/dist": true
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
"devDependencies": {
|
||||
"js-yaml": "^4.1.0",
|
||||
"onchange": "^7.1.0",
|
||||
"publicodes": "^1.0.0-beta.31"
|
||||
"publicodes": "^1.0.0-beta.32"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"publicodes": "^1.0.0-beta.31"
|
||||
"publicodes": "^1.0.0-beta.32"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ../scripts/build-rules.js",
|
||||
|
|
|
@ -19,10 +19,10 @@
|
|||
"devDependencies": {
|
||||
"js-yaml": "^4.1.0",
|
||||
"onchange": "^7.1.0",
|
||||
"publicodes": "^1.0.0-beta.30"
|
||||
"publicodes": "^1.0.0-beta.32"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"publicodes": "^1.0.0-beta.30"
|
||||
"publicodes": "^1.0.0-beta.32"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ../scripts/build-rules.js",
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
artiste-auteur:
|
||||
description: Le régime des artistes-auteurs
|
||||
icônes: 👩🎨
|
||||
formule: oui
|
||||
|
||||
artiste-auteur . revenus: oui
|
||||
artiste-auteur . revenus:
|
||||
artiste-auteur . revenus . traitements et salaires:
|
||||
titre: Revenu en traitements et salaires
|
||||
par défaut: 0 €/an
|
||||
|
|
|
@ -56,6 +56,7 @@ dirigeant . rémunération . imposable:
|
|||
alors: indépendant . revenu professionnel
|
||||
- si: auto-entrepreneur
|
||||
alors: auto-entrepreneur . impôt . revenu imposable
|
||||
- sinon: 0 €/an
|
||||
|
||||
dirigeant . rémunération . impôt:
|
||||
titre: impôt sur le revenu
|
||||
|
@ -777,7 +778,6 @@ dirigeant . indépendant . cotisations et contributions:
|
|||
|
||||
dirigeant . indépendant . assiette minimale:
|
||||
non applicable si: situation personnelle . RSA
|
||||
valeur: oui
|
||||
description: |
|
||||
Si le revenu du chef d'entreprise est déficitaire ou inférieur aux bases de calcul, certaines cotisations seront portées à un montant minimum.
|
||||
Les cotisations pour les indemnités journalières, retraite de base, invalidité-décès et pour la formation ne sont plus calculées selon le revenu du chef d'entreprise mais selon une "assiette" (montant retenu qui sert de base au calcul d'un impôt ou d'une taxe).
|
||||
|
@ -1030,7 +1030,6 @@ dirigeant . indépendant . cotisations et contributions . régularisation:
|
|||
**montant prévisionnel pour l'année en cours, qui sera pris comme base de calcul**
|
||||
(attention cependant, vous serez tenus de faire une estimation précise).
|
||||
|
||||
valeur: oui
|
||||
références:
|
||||
Fiche Urssaf: https://www.urssaf.fr/portail/cms/render/live/fr/sites/urssaf/home/independant/mes-cotisations/les-etapes-de-calcul/le-mode-de-calcul/les-cotisations-provisionnelles/demande-de-modulation.html
|
||||
Article L131-6-2 du Code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037062224/
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
entreprise:
|
||||
valeur: oui
|
||||
description: |
|
||||
Le contrat lie une entreprise, identifiée par un code SIREN, et un employé.
|
||||
|
||||
|
@ -200,7 +199,7 @@ entreprise . chiffre d'affaires . franchise de TVA . seuil service:
|
|||
|
||||
entreprise . chiffre d'affaires . franchise de TVA . dépassement:
|
||||
type: notification
|
||||
formule:
|
||||
valeur:
|
||||
une de ces conditions:
|
||||
- chiffre d'affaires > seuil vente + seuil service
|
||||
- vente restauration hébergement > seuil vente
|
||||
|
@ -866,7 +865,6 @@ entreprise . activité . débit de tabac:
|
|||
par défaut: non
|
||||
|
||||
établissement:
|
||||
formule: oui
|
||||
description: |
|
||||
Le salarié travaille dans un établissement de l'entreprise, identifié par un code SIRET.
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
impôt:
|
||||
valeur: oui
|
||||
icônes: 🏛️
|
||||
description: Cet ensemble de formules est un modèle simplifié de l'impôt sur le revenu.
|
||||
titre: impôt sur le revenu
|
||||
|
@ -36,7 +35,7 @@ impôt . méthode de calcul:
|
|||
question: Comment souhaitez-vous calculer l'impôt sur le revenu ?
|
||||
# applicable si: revenu imposable > 0
|
||||
# bizarrement, cette condition ne semble pas marcher, on se résout donc à utiliser une version plus "hacky" et moins proche de la loi. Elle posera problème le jour où l'on aura a calculer l'impot avec plusieurs sources de revenu
|
||||
non applicable si: dirigeant . auto-entrepreneur . impôt . versement libératoire
|
||||
non applicable si: dirigeant . auto-entrepreneur . impôt . versement libératoire > 0
|
||||
par défaut:
|
||||
nom: par défaut
|
||||
valeur: "'barème standard'"
|
||||
|
@ -270,7 +269,6 @@ impôt . taux personnalisé:
|
|||
# in the "impôt" namespace to have a better questions ordering
|
||||
impôt . foyer fiscal:
|
||||
icônes: 👨👩👧👦
|
||||
formule: oui
|
||||
|
||||
impôt . foyer fiscal . situation de famille:
|
||||
question: Quelle est votre situation familiale ?
|
||||
|
@ -353,7 +351,7 @@ impôt . foyer fiscal . nombre de parts . majoration personne veuve avec enfant:
|
|||
impôt . foyer fiscal . taux effectif:
|
||||
unité: '%'
|
||||
variations:
|
||||
- si: impôt à payer = 0
|
||||
- si: revenu imposable = 0
|
||||
alors: 0%
|
||||
- sinon: impôt à payer / revenu imposable
|
||||
|
||||
|
@ -379,6 +377,7 @@ impôt . foyer fiscal . revenu imposable . revenu d'activité abattu:
|
|||
alors: contrat salarié . rémunération . net imposable
|
||||
- si: entreprise . imposition = 'IS'
|
||||
alors: dirigeant . rémunération . imposable
|
||||
- sinon: 0 €/an
|
||||
abattement:
|
||||
valeur: 10% * assiette
|
||||
plafond:
|
||||
|
|
|
@ -356,7 +356,6 @@ dirigeant . indépendant . PL . CNAVPL:
|
|||
l'organisme qui fédère les différentes caisses existantes (CIPAV, CARPIMKO,
|
||||
CARCDSF, CAVEC etc..)
|
||||
non applicable si: régime général
|
||||
valeur: oui
|
||||
|
||||
dirigeant . indépendant . PL . CNAVPL . retraite:
|
||||
titre: retraite de base (CNAVPL)
|
||||
|
|
|
@ -63,7 +63,7 @@ contrat salarié . frais professionnels:
|
|||
frais de panier, titres-restaurant, forfait mobilités durables...).
|
||||
formule:
|
||||
somme:
|
||||
- titres-restaurant . montant . employeur
|
||||
- titres-restaurant . part employeur
|
||||
- abonnement transports publics . prise en charge
|
||||
- transports personnels . montant
|
||||
|
||||
|
@ -95,27 +95,26 @@ contrat salarié . frais professionnels . titres-restaurant:
|
|||
- de fruits et légumes.
|
||||
|
||||
Ce titre peut être émis sur support papier ou sous forme dématérialisée.
|
||||
question: Le salarié reçoit-il des titres-restaurant ?
|
||||
par défaut: non
|
||||
|
||||
contrat salarié . frais professionnels . titres-restaurant . montant:
|
||||
titre: Titres-restaurant
|
||||
applicable si:
|
||||
nom: éligible
|
||||
question: Le salarié reçoit-il des titres-restaurant ?
|
||||
par défaut: non
|
||||
formule:
|
||||
produit:
|
||||
assiette: montant unitaire
|
||||
facteur: nombre
|
||||
composantes:
|
||||
- attributs:
|
||||
nom: employeur
|
||||
nom: part employeur
|
||||
taux: taux participation employeur
|
||||
- attributs:
|
||||
nom: salarié
|
||||
nom: part salarié
|
||||
taux: 100% - taux participation employeur
|
||||
|
||||
contrat salarié . frais professionnels . titres-restaurant . part déductible:
|
||||
titre: Titres-restaurant (déductible)
|
||||
formule:
|
||||
valeur: montant . employeur
|
||||
valeur: part employeur
|
||||
plafond:
|
||||
produit:
|
||||
assiette: nombre
|
||||
|
@ -179,7 +178,6 @@ contrat salarié . frais professionnels . titres-restaurant . contrôle taux emp
|
|||
|
||||
contrat salarié . frais professionnels . abonnement transports publics:
|
||||
icônes: 🚍
|
||||
valeur: oui
|
||||
|
||||
contrat salarié . frais professionnels . abonnement transports publics . montant:
|
||||
titre: Abonnement aux transports publics
|
||||
|
@ -221,7 +219,6 @@ contrat salarié . frais professionnels . abonnement transports publics . prise
|
|||
valeur: taux de prise en charge * montant
|
||||
|
||||
contrat salarié . frais professionnels . transports personnels:
|
||||
valeur: oui
|
||||
non applicable si: déduction forfaitaire spécifique
|
||||
références:
|
||||
circ. DGT-DSS 2009-1 du 28 janvier 2009: https://www.legifrance.gouv.fr/download/file/pdf/cir_2423/CIRC
|
||||
|
@ -252,7 +249,6 @@ contrat salarié . frais professionnels . transports personnels . proportion dé
|
|||
Article R3261-14 du code du travail, version 11/05/2020: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000041865023/2020-05-11/
|
||||
|
||||
contrat salarié . frais professionnels . transports personnels . carburant faible émission:
|
||||
valeur: oui
|
||||
|
||||
contrat salarié . frais professionnels . transports personnels . carburant faible émission . montant:
|
||||
titre: Prise en charge du carburant pour véhicule électrique, hybride rechargeable ou hydrogène
|
||||
|
@ -286,7 +282,6 @@ contrat salarié . frais professionnels . transports personnels . carburant faib
|
|||
abattement: abonnement transports publics . prise en charge
|
||||
|
||||
contrat salarié . frais professionnels . transports personnels . forfait mobilités durables:
|
||||
valeur: oui
|
||||
|
||||
contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . montant:
|
||||
titre: Prise en charge des frais de transports forfait mobilités durables
|
||||
|
@ -333,7 +328,6 @@ contrat salarié . frais professionnels . transports personnels . forfait mobili
|
|||
- carburant faible émission . part déductible
|
||||
|
||||
contrat salarié . activité partielle:
|
||||
question: Le salarié est-il en chômage partiel ?
|
||||
description: >-
|
||||
À la suite de la crise du Coronavirus, le gouvernement a mis en place un
|
||||
dispositif de chômage partiel étendu dans lequel l'État prend en charge
|
||||
|
@ -1220,7 +1214,7 @@ contrat salarié . professionnalisation:
|
|||
indéterminée (CDI), la période de professionnalisation proprement-dite
|
||||
devant durer entre 6 et 12 mois. Dans certains cas cette période peut être
|
||||
prolongée jusqu'à 36 mois.
|
||||
formule: contrat salarié = 'professionnalisation'
|
||||
applicable si: contrat salarié = 'professionnalisation'
|
||||
rend non applicable: rémunération . contrôle smic
|
||||
références:
|
||||
Contrat de professionnalisation: https://www.service-public.fr/particuliers/vosdroits/F15478
|
||||
|
@ -1910,7 +1904,7 @@ contrat salarié . rémunération . net:
|
|||
somme:
|
||||
- net avec revenus de remplacement
|
||||
- (- avantages en nature . montant)
|
||||
- (- frais professionnels . titres-restaurant . montant)
|
||||
- (- frais professionnels . titres-restaurant)
|
||||
|
||||
contrat salarié . rémunération . net après impôt:
|
||||
titre: Salaire net après impôt
|
||||
|
@ -2209,9 +2203,6 @@ contrat salarié . aides employeur . emploi franc:
|
|||
- sinon: 5000 €/an
|
||||
facteur: temps de travail . quotité de travail effective
|
||||
arrondi: oui
|
||||
rend non applicable:
|
||||
# Dispositifs moins généreux et non cumulables
|
||||
- aide à l'embauche des travailleurs handicapés
|
||||
références:
|
||||
Fiche emploi franc: https://travail-emploi.gouv.fr/emploi/emplois-francs/article/embaucher-une-personne-en-emploi-franc
|
||||
|
||||
|
@ -2498,7 +2489,7 @@ contrat salarié . réduction générale:
|
|||
urssaf.fr: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale.html
|
||||
calcul: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale/le-calcul-de-la-reduction.html
|
||||
cumuls: https://www.legisocial.fr/actualites-sociales/2068-comment-declarer-les-cotisations-dallocations-familiales-si-lentreprise-beneficie-du-regime-jei.html
|
||||
non applicable si: cotisations . assiette forfaitaire . montant
|
||||
non applicable si: cotisations . assiette forfaitaire . montant > 0
|
||||
formule:
|
||||
produit:
|
||||
assiette: cotisations . assiette
|
||||
|
@ -2569,7 +2560,7 @@ contrat salarié . réduction générale . imputation retraite complémentaire:
|
|||
formule: réduction générale - imputation sécurité sociale
|
||||
|
||||
contrat salarié . réduction générale . plafond avec application de la DFS:
|
||||
applicable si: déduction forfaitaire spécifique > 0
|
||||
applicable si: déduction forfaitaire spécifique
|
||||
unité: €/mois
|
||||
formule:
|
||||
produit:
|
||||
|
@ -3096,15 +3087,16 @@ contrat salarié . FNAL:
|
|||
calcul: https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-contribution-au-fonds-nationa.html
|
||||
formule:
|
||||
produit:
|
||||
assiette: cotisations . assiette
|
||||
assiette:
|
||||
valeur: cotisations . assiette
|
||||
plafond:
|
||||
applicable si: éligible taux réduit
|
||||
valeur: plafond sécurité sociale
|
||||
taux [ref]:
|
||||
variations:
|
||||
- si: éligible taux réduit
|
||||
alors: 0.1%
|
||||
- sinon: 0.5%
|
||||
plafond:
|
||||
applicable si: éligible taux réduit
|
||||
valeur: plafond sécurité sociale
|
||||
|
||||
exemples:
|
||||
- nom: SMIC
|
||||
|
@ -3556,7 +3548,6 @@ contrat salarié . maladie . taux domiciliation fiscale étranger:
|
|||
formule: 5.50%
|
||||
|
||||
contrat salarié . lodeom:
|
||||
valeur: oui
|
||||
description: |
|
||||
Un ensemble assez complexe de réductions de cotisation est disponible pour les salariés d'outre-mer.
|
||||
Leur fonctionnement est similaire à celui de la réduction générale sur les bas salaires : pour un certain salaire donné, 100% de réduction.
|
||||
|
|
|
@ -77,8 +77,8 @@
|
|||
"fuse.js": "^6.4.6",
|
||||
"markdown-to-jsx": "^7.1.5",
|
||||
"modele-social": "^0.6.0",
|
||||
"publicodes": "^1.0.0-beta.31",
|
||||
"publicodes-react": "^1.0.0-beta.31",
|
||||
"publicodes": "^1.0.0-beta.32",
|
||||
"publicodes-react": "^1.0.0-beta.32",
|
||||
"ramda": "^0.27.0",
|
||||
"react": "^17.0.0",
|
||||
"react-color": "^2.14.0",
|
||||
|
|
|
@ -6,7 +6,7 @@ import getSimulationData, {
|
|||
MetadataSrc,
|
||||
} from '../../source/pages/Simulateurs/metadata-src.js'
|
||||
|
||||
const rules = parsePublicodes(rawRules)
|
||||
const { parsedRules } = parsePublicodes(rawRules)
|
||||
|
||||
// @ts-ignore Needed by ts-node/esm
|
||||
const env = process.env
|
||||
|
@ -100,7 +100,7 @@ try {
|
|||
|
||||
console.log('Uploading: rules')
|
||||
|
||||
await rulesIndex.saveObjects(formatRulesToAlgolia(rules)).wait()
|
||||
await rulesIndex.saveObjects(formatRulesToAlgolia(parsedRules)).wait()
|
||||
|
||||
console.log('Clearing: simulateurs')
|
||||
await simulateursIndex.clearObjects().wait()
|
||||
|
|
|
@ -2,6 +2,7 @@ import { DottedName } from 'modele-social'
|
|||
import Engine, {
|
||||
ASTNode,
|
||||
formatValue,
|
||||
isNotApplicable,
|
||||
isNotYetDefined,
|
||||
PublicodesExpression,
|
||||
UNSAFE_isNotApplicable,
|
||||
|
@ -68,7 +69,11 @@ export function Condition({
|
|||
}: ConditionProps) {
|
||||
const engine = useEngine()
|
||||
const value = engine.evaluate(expression).nodeValue
|
||||
const boolValue = isNotYetDefined(value) ? defaultIfNotYetDefined : value
|
||||
const boolValue = isNotYetDefined(value)
|
||||
? defaultIfNotYetDefined
|
||||
: isNotApplicable(value)
|
||||
? false
|
||||
: value
|
||||
|
||||
if (Boolean(boolValue) !== boolValue) {
|
||||
console.error(
|
||||
|
|
|
@ -52,7 +52,7 @@ export const SalaireNetSection = () => {
|
|||
/>
|
||||
<Line
|
||||
negative
|
||||
rule="contrat salarié . frais professionnels . titres-restaurant . montant"
|
||||
rule="contrat salarié . frais professionnels . titres-restaurant"
|
||||
/>
|
||||
<Line rule="contrat salarié . rémunération . net" />
|
||||
<Condition expression="impôt . montant > 0">
|
||||
|
|
|
@ -73,7 +73,7 @@ export function SimulationGoal({
|
|||
if (
|
||||
small &&
|
||||
!editable &&
|
||||
(evaluation.nodeValue === false || evaluation.nodeValue === null)
|
||||
(evaluation.nodeValue === null || evaluation.nodeValue === undefined)
|
||||
) {
|
||||
return null
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ function SalariéSimulationGoals() {
|
|||
function TitreRestaurant() {
|
||||
const targetUnit = useSelector(targetUnitSelector)
|
||||
const dottedName =
|
||||
'contrat salarié . frais professionnels . titres-restaurant . montant'
|
||||
'contrat salarié . frais professionnels . titres-restaurant'
|
||||
return (
|
||||
<Condition expression={`${dottedName} > 0`}>
|
||||
<StyledInfo>
|
||||
|
|
|
@ -28,6 +28,7 @@ questions:
|
|||
unité par défaut: €/an
|
||||
situation:
|
||||
dirigeant: "'assimilé salarié'"
|
||||
entreprise . résultat fiscal: 0 €/an
|
||||
|
||||
#TODO : en attendant que la transitivité du remplacement soit implémentée (https://github.com/betagouv/publicodes/issues/55)
|
||||
contrat salarié . activité partielle: non
|
||||
|
|
|
@ -5,7 +5,7 @@ import rules from 'modele-social'
|
|||
|
||||
// les variables dans les tests peuvent être exprimées relativement à l'espace de nom de la règle,
|
||||
// comme dans sa formule
|
||||
let parsedRules = parsePublicodes(rules)
|
||||
let { parsedRules } = parsePublicodes(rules)
|
||||
const engine = new Engine(rules)
|
||||
let runExamples = (examples, rule) =>
|
||||
examples.map((ex) => {
|
||||
|
@ -39,7 +39,7 @@ let runExamples = (examples, rule) =>
|
|||
describe('Tests des règles de notre base de règles', () =>
|
||||
Object.values(parsedRules)
|
||||
.filter((rule) => rule.rawNode.exemples)
|
||||
.map((rule) => {
|
||||
.forEach((rule) => {
|
||||
describe(rule.dottedName, () => {
|
||||
let examples = runExamples(rule.rawNode.exemples, rule)
|
||||
examples.map((example) =>
|
||||
|
|
|
@ -28,7 +28,10 @@ exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 5`] =
|
|||
|
||||
exports[`calculate aide-déclaration-indépendant > débit de tabac 1`] = `"[5652,50000,39713,0,1,1,0]"`;
|
||||
|
||||
exports[`calculate aide-déclaration-indépendant > international 1`] = `"[14610,50000,35287,0,1,1,0]"`;
|
||||
exports[`calculate aide-déclaration-indépendant > international 1`] = `
|
||||
"[14610,50000,35287,0,1,1,0]
|
||||
Notifications affichées : impôt . domiciliation étranger non implémentée"
|
||||
`;
|
||||
|
||||
exports[`calculate aide-déclaration-indépendant > international 2`] = `"[11875,50000,36215,0,1,1,0]"`;
|
||||
|
||||
|
@ -117,7 +120,7 @@ exports[`calculate simulations-auto-entrepreneur > activité mixte 2`] = `"[2000
|
|||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 3`] = `"[20000,301,16388,0,16388]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 4`] = `"[0,715,0,0,0]"`;
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 4`] = `"[null,715,null,null,null]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > aides 1`] = `"[5741,62,5000,0,5000]"`;
|
||||
|
||||
|
@ -157,7 +160,7 @@ exports[`calculate simulations-dividendes > barème couple 2 enfants 2`] = `"[20
|
|||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 3`] = `"[200,112,34,40,112,112,36]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 4`] = `"[20000,13204,3440,613,11184,11184,5]"`;
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 4`] = `"[20000,14985,3440,613,11184,11184,5]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème défauts 1`] = `"[200,166,34,0,112,112,0]"`;
|
||||
|
||||
|
@ -739,7 +742,7 @@ Notifications affichées : contrat salarié . CDD . information"
|
|||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 4`] = `
|
||||
"[4104,0,2200,2387,2262]
|
||||
"[4416,0,2200,2370,2179]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
|
|
|
@ -50,5 +50,8 @@ activité mixte:
|
|||
- entreprise . chiffre d'affaires . service BIC: 20000 €/an
|
||||
entreprise . chiffre d'affaires . service BNC: 10000 €/an
|
||||
entreprise . chiffre d'affaires . vente restauration hébergement: 15000 €/an
|
||||
entreprise . activité . mixte . proportions . service BIC: 44.44%
|
||||
entreprise . activité . mixte . proportions . service BNC: 22.22%
|
||||
entreprise . activité . mixte . proportions . vente restauration hébergement: 33.33%
|
||||
entreprise . activité . mixte: oui
|
||||
entreprise . activité: "'commerciale'"
|
||||
|
|
|
@ -77,6 +77,7 @@ cdd:
|
|||
contrat salarié . frais professionnels . abonnement transports publics . montant: 80€/mois
|
||||
contrat salarié . frais professionnels . transports personnels . carburant faible émission . montant: 100€/mois
|
||||
contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . montant: 360€/mois
|
||||
contrat salarié . rémunération . avantages en nature: oui
|
||||
contrat salarié . rémunération . avantages en nature . montant: 200 €/mois
|
||||
- <<: *CDD
|
||||
contrat salarié . convention collective: "'BTP'"
|
||||
|
@ -270,14 +271,14 @@ JEI:
|
|||
|
||||
frais pro - titres restaurant:
|
||||
- contrat salarié . rémunération . brut de base: 2000 €/mois
|
||||
contrat salarié . frais professionnels . titres-restaurant: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . éligible: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . nombre: 10 titres-restaurant
|
||||
- contrat salarié . rémunération . brut de base: 3000 €/mois
|
||||
contrat salarié . frais professionnels . titres-restaurant: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . éligible: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . nombre: 20 titres-restaurant
|
||||
contrat salarié . frais professionnels . titres-restaurant . montant unitaire: 20€/titre-restaurant
|
||||
- contrat salarié . rémunération . brut de base: 2000 €/mois
|
||||
contrat salarié . frais professionnels . titres-restaurant: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . éligible: oui
|
||||
contrat salarié . frais professionnels . titres-restaurant . taux participation employeur: 55%
|
||||
|
||||
frais pro - abonnement transports publics:
|
||||
|
|
|
@ -6,13 +6,13 @@ import unitsTranslations from '../source/locales/units.yaml'
|
|||
|
||||
describe('Tests units', function () {
|
||||
it('use unit that exists in publicodes', function () {
|
||||
const rules = parsePublicodes(rawRules)
|
||||
const { parsedRules } = parsePublicodes(rawRules)
|
||||
const units = uniq(
|
||||
Object.keys(rules).reduce(
|
||||
Object.keys(parsedRules).reduce(
|
||||
(prev, name) => [
|
||||
...prev,
|
||||
...(rules[name].unit?.numerators ?? []),
|
||||
...(rules[name].unit?.denumerators ?? []),
|
||||
...(parsedRules[name].unit?.numerators ?? []),
|
||||
...(parsedRules[name].unit?.denumerators ?? []),
|
||||
],
|
||||
[]
|
||||
)
|
||||
|
|
|
@ -9,7 +9,7 @@ import {
|
|||
} from '../source/components/utils/useSearchParamsSimulationSharing'
|
||||
|
||||
describe('identifiant court', () => {
|
||||
const questions = Object.entries(parsePublicodes(rules))
|
||||
const questions = Object.entries(parsePublicodes(rules).parsedRules)
|
||||
.filter(([, ruleNode]) => ruleNode.rawNode['identifiant court'])
|
||||
.map(([dottedName, ruleNode]) => [
|
||||
dottedName,
|
||||
|
@ -90,7 +90,7 @@ rule without:
|
|||
})
|
||||
|
||||
describe('useSearchParamsSimulationSharing hook', () => {
|
||||
const parsedRules = parsePublicodes(`
|
||||
const { parsedRules } = parsePublicodes(`
|
||||
rule with:
|
||||
identifiant court: panta
|
||||
formule: 0
|
||||
|
|
|
@ -92,6 +92,20 @@ export default defineConfig(({ command }) => ({
|
|||
targets: ['defaults', 'not IE 11'],
|
||||
}),
|
||||
],
|
||||
server: {
|
||||
// Keep watching changes in the publicodes package to support live reload
|
||||
// when we iterate on publicodes logic.
|
||||
// https://vitejs.dev/config/#server-watch
|
||||
watch: {
|
||||
ignored: [
|
||||
'!**/node_modules/publicodes/**',
|
||||
'!**/node_modules/publicodes-react/**',
|
||||
],
|
||||
},
|
||||
},
|
||||
optimizeDeps: {
|
||||
exclude: ['publicodes-react', 'publicodes'],
|
||||
},
|
||||
}))
|
||||
|
||||
type MultipleSPAOptions = {
|
||||
|
@ -118,6 +132,8 @@ function multipleSPA(options: MultipleSPAOptions): Plugin {
|
|||
enforce: 'pre',
|
||||
|
||||
configureServer(vite) {
|
||||
// TODO: this middleware is specific to the "mon-entreprise" app and
|
||||
// shouldn't be in the "multipleSPA" plugin
|
||||
vite.middlewares.use(
|
||||
'/simulateur-iframe-integration.js',
|
||||
serveStatic(new URL('./dist', import.meta.url).pathname, {
|
||||
|
|
30
yarn.lock
30
yarn.lock
|
@ -10604,9 +10604,9 @@ __metadata:
|
|||
dependencies:
|
||||
js-yaml: ^4.1.0
|
||||
onchange: ^7.1.0
|
||||
publicodes: ^1.0.0-beta.31
|
||||
publicodes: ^1.0.0-beta.32
|
||||
peerDependencies:
|
||||
publicodes: ^1.0.0-beta.31
|
||||
publicodes: ^1.0.0-beta.32
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
|
@ -14344,9 +14344,9 @@ __metadata:
|
|||
dependencies:
|
||||
js-yaml: ^4.1.0
|
||||
onchange: ^7.1.0
|
||||
publicodes: ^1.0.0-beta.30
|
||||
publicodes: ^1.0.0-beta.32
|
||||
peerDependencies:
|
||||
publicodes: ^1.0.0-beta.30
|
||||
publicodes: ^1.0.0-beta.32
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
|
@ -15820,28 +15820,28 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"publicodes-react@npm:^1.0.0-beta.31":
|
||||
version: 1.0.0-beta.31
|
||||
resolution: "publicodes-react@npm:1.0.0-beta.31"
|
||||
"publicodes-react@npm:^1.0.0-beta.32":
|
||||
version: 1.0.0-beta.32
|
||||
resolution: "publicodes-react@npm:1.0.0-beta.32"
|
||||
dependencies:
|
||||
styled-components: ^5.1.0
|
||||
peerDependencies:
|
||||
publicodes: 1.0.0-beta.31
|
||||
publicodes: 1.0.0-beta.32
|
||||
react: ^17.0.2
|
||||
checksum: a010704677d416983b464859b160b264d68acff3d2654c1eb5d0ee0e1388d741c38fc13324f4c3234da86daf3ded5744a616aa138fa50eb28858f56a4ff2700f
|
||||
checksum: 2cdf91420982e909869cf9ddc1754943d4e5e8bef7545e4d5afdfc202eb1bbdcb33197bb4ad2978f6cfd02aad3229ec53061ff06680c9f2917638fde79b98b28
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"publicodes@npm:^1.0.0-beta.30, publicodes@npm:^1.0.0-beta.31":
|
||||
version: 1.0.0-beta.31
|
||||
resolution: "publicodes@npm:1.0.0-beta.31"
|
||||
"publicodes@npm:^1.0.0-beta.32":
|
||||
version: 1.0.0-beta.32
|
||||
resolution: "publicodes@npm:1.0.0-beta.32"
|
||||
dependencies:
|
||||
moo: ^0.5.1
|
||||
nearley: ^2.19.2
|
||||
yaml: ^1.9.2
|
||||
peerDependencies:
|
||||
"@types/mocha": ^9.0.0
|
||||
checksum: 9bf074037e97339f05a84f9557f7d6b8c51b9af28c7526e06c3c3675f32349c2ef36dfbbab14610e0638c1e6e9d42ea335502df6cf455d1af543559caedec8ac
|
||||
checksum: 674a5f1ee9f755cf8f9fd2312523ee70f3963b1c8cb9e0249919ad48269f3dbe831d4fe3e1c13400216bd21b34d2bbd5f71e571b3adc210ebdb1c2dc18ee72d6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -17645,8 +17645,8 @@ __metadata:
|
|||
markdown-to-jsx: ^7.1.5
|
||||
modele-social: ^0.6.0
|
||||
prettier: ^2.5.1
|
||||
publicodes: ^1.0.0-beta.31
|
||||
publicodes-react: ^1.0.0-beta.31
|
||||
publicodes: ^1.0.0-beta.32
|
||||
publicodes-react: ^1.0.0-beta.32
|
||||
ramda: ^0.27.0
|
||||
react: ^17.0.0
|
||||
react-color: ^2.14.0
|
||||
|
|
Loading…
Reference in New Issue