Skip to content

Commit

Permalink
Factorise la recherche des conditions dans le gestionnaire de conso.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jérôme Lebleu committed Jun 30, 2017
1 parent 4885731 commit ea46556
Showing 1 changed file with 30 additions and 32 deletions.
62 changes: 30 additions & 32 deletions noethys/Dlg/DLG_Gestionnaire_conso.py
Expand Up @@ -344,29 +344,38 @@ def SetActivites(self, listeActivites=[]):
def SetGroupes(self, listeGroupes=[]):
self.listeGroupes = listeGroupes

def GetListeConditions(self):
conditions = []

# Condition Activités
conditionActivites = ""
if len(self.listeActivites) > 0:
conditionActivites = ", ".join(map(str, self.listeActivites))
conditions.append("IDactivite IN ({0})".format(conditionActivites))

# Condition Groupes
if len(self.listeGroupes) > 0:
if len(self.listeGroupes) == 1:
conditions.append("IDgroupe={0}".format(self.listeGroupes[0]))
else:
conditions.append("IDgroupe IN ({0})".format(
", ".join(map(str, self.listeGroupes))
))

return conditions

def GetListeIndividus(self):
listeSelectionIndividus = []
# Conditions Activités
if len(self.listeActivites) == 0:
conditionActivites = "()"
elif len(self.listeActivites) == 1:
conditionActivites = "(%d)" % self.listeActivites[0]
else:
conditionActivites = str(tuple(self.listeActivites))
# Condition Groupes
if len(self.listeGroupes) == 0:
conditionGroupes = ""
elif len(self.listeGroupes) == 1:
conditionGroupes = " AND IDgroupe=%d" % self.listeGroupes[0]
else:
conditionGroupes = " AND IDgroupe IN %s" % str(tuple(self.listeGroupes))

conditions = self.GetListeConditions()
conditions.append("date='{0}'".format(self.date))

DB = GestionDB.DB()
req = """SELECT IDindividu, COUNT(IDconso)
FROM consommations
WHERE date='%s' AND IDactivite IN %s %s
WHERE {0}
GROUP BY IDindividu
ORDER BY IDindividu;""" % (str(self.date), conditionActivites, conditionGroupes)
ORDER BY IDindividu;""".format(" AND ".join(conditions))
DB.ExecuterReq(req)
listeDonnees = DB.ResultatReq()
DB.Close()
Expand Down Expand Up @@ -414,27 +423,16 @@ def AjouterIndividu(self, event=None):

def AfficherTousInscrits(self, event=None):
""" Affiche tous les inscrits à l'activité """
# Conditions Activités
if len(self.listeActivites) == 0:
conditionActivites = "()"
elif len(self.listeActivites) == 1:
conditionActivites = "(%d)" % self.listeActivites[0]
else:
conditionActivites = str(tuple(self.listeActivites))
# Condition Groupes
if len(self.listeGroupes) == 0:
conditionGroupes = ""
elif len(self.listeGroupes) == 1:
conditionGroupes = " AND IDgroupe=%d" % self.listeGroupes[0]
else:
conditionGroupes = " AND IDgroupe IN %s" % str(tuple(self.listeGroupes))
conditions = self.GetListeConditions()
conditions.append("(date_desinscription IS NULL OR"
" date_desinscription>='{0}')".format(self.date))

DB = GestionDB.DB()
req = """SELECT IDinscription, IDindividu
FROM inscriptions
WHERE IDactivite IN %s %s and (date_desinscription IS NULL OR date_desinscription>='%s')
WHERE {0}
GROUP BY IDindividu
ORDER BY IDindividu;""" % (conditionActivites, conditionGroupes, self.date)
ORDER BY IDindividu;""".format(" AND ".join(conditions))
DB.ExecuterReq(req)
listeDonnees = DB.ResultatReq()
DB.Close()
Expand Down

0 comments on commit ea46556

Please sign in to comment.