]> git.immae.eu Git - perso/Denise/oms.git/blobdiff - gestion_donnees.py
priorité des dates sur les âges
[perso/Denise/oms.git] / gestion_donnees.py
index c24192ef1caeb01698102fbaa51f68e626ff4253..7c15486511eaa903367f5e2b2c4bb4e2ffc64ba3 100644 (file)
@@ -70,7 +70,7 @@ def convertit_age_vers_texte(nombre):
         chaine += str(annees)+"a"
     if mois >0:
         chaine += str(mois)+"m"
-    if jours>0 or  nombre ==0: # si c'est la naissance, faut beien écrire 0j quand même
+    if jours>0 or  nombre ==0: # si c'est la naissance, faut bien écrire 0j quand même
         chaine += str(jours)+"j"
     return chaine
 
@@ -157,13 +157,13 @@ def convertit_date_vers_texte(date):
         #return (str(date.year)+"-"+str(date.month)+"-"+str(date.day))
         return str(date)
 
-def delta_date(date1,datenaissance):
+def delta_date(date1,datenaissance, liste_err):
     """ renvoie le nombre de jours (entier) entre date1 et datenaissance format "datetime"
     datenaissance est supposée antérieure. Erreur sinon."""
     d = date1 - datenaissance
     jours = d.days
     if jours<0:
-        warning("La différence entre les dates est négative... :/")
+        warning("Une des dates saisies ("+str(date1)+") est inférieure à la date de naissance (la donnée est donc ignorée)", liste_err)
         return -1
     return jours
 
@@ -239,7 +239,7 @@ def gere_configuration(data,liste_err, court=False):
     
     sexe = data.get("sexe","")
     if not (sexe in ["F","M","N"]):
-        warning("Le sexe de l'enfant est invalide ! "+sexe,liste_err)
+        warning("Le sexe de l'enfant est invalide. "+sexe,liste_err)
         sexe = "N"
     configuration["sexe"] = sexe
    
@@ -404,19 +404,22 @@ def gere_donnees(data,naissance,typedonnee,liste_err):
     while "age_"+str(i) in data.keys():
         if data.get(typedonnee+"_"+str(i), "") != "": # si la donne de ce type existe
             donnee = convertit_donnee_vers_python(data[typedonnee+"_"+str(i)],typedonnee,liste_err)
-            age = data.get("age_"+str(i),"")
-            if age !="":
-                age = convertit_jours_vers_python(age,liste_err)
-                liste_donnees.append((age,donnee))
-            else: 
-                date = data.get("date_"+str(i),"")
-                datep = convertit_date_vers_python(date,liste_err)
-                # on vérifie la date
-                if naissance == "":
-                    warning("La date de naissance n'a pas été précisée. Du coup on ne peut pas calculer l'âge de l'enfant le "+date,liste_err)
-                elif datep != "":  # la date est valide et on a une date de naissance
-                    age = delta_date(datep,naissance)
-                    liste_donnees.append((age,donnee))
+
+            ## Si une date est saisie, on la prend en priorité car c'est des entiers et les entiers c'est BIEN
+            date = data.get("date_"+str(i),"")
+            datep = convertit_date_vers_python(date,liste_err)
+            
+            if naissance != "" and datep != "": # On ne peut pas calculer l'âge si on n'a pas ces deux données      
+                age = delta_date(datep,naissance, liste_err)
+                if age != -1: # -1 signifie une erreur donc on ne garde pas la donnée
+                        liste_donnees.append((age,donnee))
+            else: # Sinon, on regarde si on a saisi l'âge
+                age = data.get("age_"+str(i),"")
+                if age == "":
+                    warning("gere_donnees : ni l'âge ni la date ne sont saisies... donnée ignorée", liste_err)
+                else:
+                    age = convertit_jours_vers_python(age,liste_err)
+                    liste_donnees.append((age,donnee))                    
         i+=1
         
     # Trier la liste