def Ajouter(self, event): # Recherche si l'individu est rattaché à d'autres familles listeNoms = [] listeFamille = [] # Vérifie que l'individu est rattaché comme REPRESENTANT ou ENFANT à une famille if self.dictFamillesRattachees != None : valide = False for IDfamille, dictFamille in self.dictFamillesRattachees.iteritems() : if dictFamille["IDcategorie"] in (1, 2) : valide = True if valide == False : dlg = wx.MessageDialog(self, _(u"Pour être inscrit à une activité, un individu doit obligatoirement être\nrattaché comme représentant ou enfant à une fiche famille !"), _(u"Inscription impossible"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return if len(self.dictFamillesRattachees) == 1 : IDfamille = self.dictFamillesRattachees.keys()[0] listeFamille.append(IDfamille) listeNoms.append(self.dictFamillesRattachees[IDfamille]["nomsTitulaires"]) else: # Si rattachée à plusieurs familles for IDfamille, dictFamille in self.dictFamillesRattachees.iteritems() : IDcategorie = dictFamille["IDcategorie"] if IDcategorie in (1, 2) : listeFamille.append(IDfamille) listeNoms.append(dictFamille["nomsTitulaires"]) if len(listeFamille) == 1 : IDfamille = listeFamille[0] else: # On demande à quelle famille rattacher cette inscription dlg = wx.SingleChoiceDialog(self, _(u"Cet individu est rattaché à %d familles.\nA quelle famille souhaitez-vous rattacher cette inscription ?") % len(listeNoms), _(u"Rattachements multiples"), listeNoms, wx.CHOICEDLG_STYLE) if dlg.ShowModal() == wx.ID_OK: indexSelection = dlg.GetSelection() IDfamille = listeFamille[indexSelection] dlg.Destroy() else: dlg.Destroy() return # Recherche de la ville de l'individu pour sélection auto de la catégorie de tarif cp, ville = None, None try : dictAdresse = self.GetGrandParent().GetPageAvecCode("coords").GetAdresseIndividu() cp = dictAdresse["cp"] ville = dictAdresse["ville"] except : pass from Dlg import DLG_Inscription dlg = DLG_Inscription.Dialog(self, mode="saisie", IDindividu=self.IDindividu, IDfamille=IDfamille, cp=cp, ville=ville) if dlg.ShowModal() == wx.ID_OK: self.MAJ(dlg.GetIDinscription()) dlg.Destroy()
def Modifier(self, event): if len(self.Selection()) == 0 : dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucune inscription à modifier dans la liste !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return track = self.Selection()[0] from Dlg import DLG_Inscription dlg = DLG_Inscription.Dialog(self, mode="modification", IDindividu=self.IDindividu, IDinscription=track.IDinscription, IDfamille=track.IDfamille) if dlg.ShowModal() == wx.ID_OK: self.MAJ(track.IDinscription) dlg.Destroy()
def Traitement_inscriptions(self): # Récupération des paramètres IDindividu = int(self.dict_parametres["IDindividu"]) IDactivite = int(self.dict_parametres["IDactivite"]) IDgroupe = int(self.dict_parametres["IDgroupe"]) # Traitement manuel ou automatique if self.mode == "manuel" or self.mode == "automatique" : # Création du texte d'intro DB = GestionDB.DB() req = """SELECT nom, prenom, date_naiss FROM individus WHERE IDindividu=%d;""" % IDindividu DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0 : nom, prenom, date_naiss = listeDonnees[0] if date_naiss != None : date_naiss = UTILS_Dates.DateEngEnDateDD(date_naiss) today = datetime.date.today() age = _(u"%d ans") % ((today.year - date_naiss.year) - int((today.month, today.day) < (date_naiss.month, date_naiss.day))) else : age = _(u"Âge inconnu") intro = _(u"Confirmez l'inscription de %s (%s) à l'activité sélectionnée et sur le groupe demandé par la famille." % (prenom, age)) from Dlg import DLG_Inscription dlg = DLG_Inscription.Dialog(self.parent, mode="saisie", IDindividu=IDindividu, IDfamille=self.track.IDfamille, intro=intro) dlg.bouton_activites.Show(False) dlg.ctrl_parti.Show(False) dlg.ctrl_famille.Enable(False) dlg.SetIDactivite(IDactivite) dlg.SetIDgroupe(IDgroupe) reponse = dlg.ShowModal() dlg.Destroy() if reponse == wx.ID_OK : self.EcritLog(_(u"Inscription de %s enregistrée.") % prenom) return True else : self.EcritLog(_(u"Inscription de %s annulée.") % prenom) return False