[TELE-1392]add calcul_total_abonnement_stationnement

This commit is contained in:
Nicolas Selva 2022-07-28 14:09:52 +02:00
parent 077c0a6ebc
commit 6b0efc631f
1 changed files with 29 additions and 0 deletions

View File

@ -1,4 +1,5 @@
import re
from decimal import Decimal
import requests
from django import template
@ -21,6 +22,11 @@ def is_strong_authentication(session_user):
@register.filter
def liste_type_rdv_plusieurs_personnes(value):
"""
Anciennement liste_type_general_rdv.py
value : (str) url api liste des type de rendez-vous
return : (list[str]) liste des différent type de rendez-vous sans - x personnes
"""
headers = {'Accept': 'application/json'}
liste = requests.get(value, headers=headers).json()
return list(set([re.sub(r" (pour|-) [0-9]+ personne(s)?$", "", x["text"]) for x in liste["data"]]))
@ -28,7 +34,30 @@ def liste_type_rdv_plusieurs_personnes(value):
@register.filter
def liste_type_rdv_nombres_personnes(value, arg):
"""
Anciennement liste_type_rdv.py
value : (str) url api liste des type de rendez-vous
arg : (str) type de rendez-vous
return : (list[str]) liste des rendez-vous de type arg
"""
headers = {'Accept': 'application/json'}
liste = requests.get(value, headers=headers).json()
return [x for x in liste["data"] if arg in x["text"]]
@register.filter
def calcul_total_abonnement_stationnement(fields_bloc):
"""
Anciennement fields_bloc.py
fields_bloc : (list[dict]) Bloc de champ Abonnements de stationnement données bénéficiaires
return : (Decimal) addition des entrées price
"""
total = 0
for field in fields_bloc:
for value in field.values():
if isinstance(value, dict):
total += Decimal(value.get('price'))
return total