Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Trèfle
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
6
Issues
6
List
Boards
Labels
Service Desk
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Open source
Trèfle
Commits
332936a2
Commit
332936a2
authored
Jan 13, 2020
by
David Foucher
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'BFC-remu-maj' into 'master'
Bfc remu maj See merge request
!12
parents
85691f3c
73b9503c
Pipeline
#2142
passed with stage
in 1 minute and 20 seconds
Changes
9
Pipelines
6
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
232 additions
and
60 deletions
+232
-60
trefle/__init__.py
trefle/__init__.py
+17
-0
trefle/api.py
trefle/api.py
+11
-19
trefle/config/features/Bourgogne-Franche-Comté.feature
trefle/config/features/Bourgogne-Franche-Comté.feature
+3
-3
trefle/config/features/Rémunérations et aides Bourgogne-Franche-Comté.feature
...es/Rémunérations et aides Bourgogne-Franche-Comté.feature
+75
-0
trefle/config/features/steps/steps.py
trefle/config/features/steps/steps.py
+32
-6
trefle/config/rules/rémunération/rémunération Bourgogne-Franche-Comté.rules
...s/rémunération/rémunération Bourgogne-Franche-Comté.rules
+78
-20
trefle/config/schema.yml
trefle/config/schema.yml
+9
-9
trefle/helpers.py
trefle/helpers.py
+4
-0
trefle/routine.py
trefle/routine.py
+3
-3
No files found.
trefle/__init__.py
View file @
332936a2
...
...
@@ -31,6 +31,23 @@ async def simulate(data, financements):
if
key
.
startswith
(
"financement"
):
del
data
[
key
]
async
def
simulate_remuneration
(
data
,
remunerations
):
# Prepare context
flatten
(
data
)
context
=
Context
(
data
.
copy
())
routine
.
extrapolate_context
(
context
)
routine
.
preprocess
(
context
)
for
remuneration
in
remunerations
:
copy
=
context
.
copy
()
routine
.
check_remuneration
(
context
,
remuneration
)
data
.
update
(
copy
.
cleaned_data
)
# FIXME (limits of the single-store-all context object)
# Clean keys not meant to be exposed
for
key
in
list
(
data
.
keys
()):
if
key
.
startswith
(
"remuneration"
):
del
data
[
key
]
def
get_financements
(
tags
=
None
):
financements
=
[
config
.
Financement
(
f
)
for
f
in
config
.
FINANCEMENTS
]
...
...
trefle/api.py
View file @
332936a2
...
...
@@ -5,7 +5,13 @@ from roll.extensions import cors
import
ujson
as
json
from
.
import
VERSION
,
get_financements
,
get_remunerations
,
simulate
from
.
import
(
VERSION
,
get_financements
,
get_remunerations
,
simulate
,
simulate_remuneration
,
)
from
.
import
routine
from
.config
import
FINANCEMENTS
,
GLOSSARY
,
IDCC
,
NAF
,
RAW_RULES
,
SCHEMA
from
.context
import
Context
...
...
@@ -65,8 +71,8 @@ async def simulate_(request, response):
body
=
{
"financements"
:
financements
}
if
request
.
query
.
bool
(
"context"
,
False
):
body
[
"context"
]
=
{
k
:
v
for
k
,
v
in
context
.
items
()
if
k
in
SCHEMA
and
"label"
in
SCHEMA
[
k
]
}
k
:
v
for
k
,
v
in
context
.
items
()
if
k
in
SCHEMA
and
"label"
in
SCHEMA
[
k
]
}
if
request
.
query
.
bool
(
"scenario"
,
False
):
body
[
"scenario"
]
=
make_scenario
(
context
,
financements
)
response
.
json
=
body
...
...
@@ -77,24 +83,10 @@ async def simulate_(request, response):
# TODO : add pointer error for bad region number + test
@
app
.
route
(
"/remuneration"
,
methods
=
[
"POST"
])
async
def
remuneration_
(
request
,
response
):
data
=
request
.
json
context
=
request
.
json
remunerations
=
get_remunerations
(
tags
=
request
.
query
.
list
(
"tags"
,
[]))
try
:
flatten
(
data
)
context
=
Context
(
data
.
copy
())
routine
.
extrapolate_context
(
context
)
routine
.
preprocess
(
context
)
for
remuneration
in
remunerations
:
copy
=
context
.
copy
()
routine
.
check_remuneration
(
context
,
remuneration
)
data
.
update
(
copy
.
cleaned_data
)
# FIXME (limits of the single-store-all context object)
# Clean keys not meant to be exposed
for
key
in
list
(
data
.
keys
()):
if
key
.
startswith
(
"remuneration"
):
del
data
[
key
]
await
simulate_remuneration
(
context
,
remunerations
)
except
DataError
as
err
:
error
=
{
err
.
key
:
err
.
error
}
log_simulate
(
context
,
errors
=
error
)
...
...
trefle/config/features/Bourgogne-Franche-Comté.feature
View file @
332936a2
...
...
@@ -288,7 +288,7 @@ Scénario: Cas parent isolé
Quand
je sélectionne le financement «Action collective financée par la Région»
Alors
la rémunération applicable vaut 863.0
Et
le montant de l'aide au transport vaut «98,79€ par mois (sous condition)»
Et
le montant de l'aide
au lo
gement vaut «101,84€ par mois (sous condition)»
Et
le montant de l'aide
à l'héber
gement vaut «101,84€ par mois (sous condition)»
Scénario
:
Cas non salarié ayant travaillé
...
...
@@ -341,7 +341,7 @@ Scénario: Cas travailleur handicapé
Et
c'est un travailleur handicapé
Quand
je demande un calcul de financement
Quand
je sélectionne le financement «Action collective financée par la Région»
Alors
la rémunération applicable vaut
910
.02
Alors
la rémunération applicable vaut
1001
.02
Scénario
:
Cas travailleur handicapé rémunération > 910
Soit
un bénéficiaire et une formation
...
...
@@ -370,7 +370,7 @@ Scénario: Cas travailleur handicapé rémunération
Et
c'est un travailleur handicapé
Quand
je demande un calcul de financement
Quand
je sélectionne le financement «Action collective financée par la Région»
Alors
la rémunération applicable vaut
910
.02
Alors
la rémunération applicable vaut
1001
.02
Scénario
:
Cas ESSFIMO
Soit
un bénéficiaire et une formation
...
...
trefle/config/features/Rémunérations et aides Bourgogne-Franche-Comté.feature
0 → 100644
View file @
332936a2
Fonctionnalité
:
Rémunérations et aides en Bourgogne-Franche-Comté
Scénario
:
Rému et aides moins de 18 ans
Soit
un bénéficiaire et une formation
Et
c'est un demandeur d'emploi
Et
l'âge du bénéficiaire vaut 16
Et
les codes financeur de la formation valent [«Conseil régional»]
Et
la région de la formation vaut «Bourgogne-Franche-Comté»
Quand
je demande un calcul de rémunération
Alors
la rémunération applicable vaut 455.01
Et
une aide à l'hébergement est éligible
Et
une aide au transport est éligible
Scénario
:
Rému et aides plus de 18 ans
Soit
un bénéficiaire et une formation
Et
c'est un demandeur d'emploi
Et
l'âge du bénéficiaire vaut 36
Et
les codes financeur de la formation valent [«Conseil régional»]
Et
la région de la formation vaut «Bourgogne-Franche-Comté»
Quand
je demande un calcul de rémunération