示例#1
0
    def OuvrirFicheFamille(self,
                           track=None,
                           ouvrirGrille=False,
                           ouvrirFicheInd=False,
                           IDfamille=None):
        if UTILS_Utilisateurs.VerificationDroitsUtilisateurActuel(
                "familles_fiche", "consulter") == False:
            return

        IDindividu = None
        if IDfamille == None:

            IDindividu = track.IDindividu

            rattachements, dictTitulaires, txtTitulaires = track.GetRattachements(
            )
            if rattachements != None:
                rattachements.sort()

            # Rattaché à aucune famille
            if rattachements == None:
                dlg = wx.MessageDialog(
                    self,
                    _(u"Cet individu n'est rattaché à aucune famille.\n\nSouhaitez-vous ouvrir sa fiche individuelle ?"
                      ), _(u"Confirmation"), wx.YES_NO | wx.YES_DEFAULT
                    | wx.CANCEL | wx.ICON_INFORMATION)
                reponse = dlg.ShowModal()
                dlg.Destroy()
                if reponse != wx.ID_YES:
                    return False
                else:
                    # Ouverture de la fiche individuelle
                    from Dlg import DLG_Individu
                    dlg = DLG_Individu.Dialog(None, IDindividu=IDindividu)
                    if dlg.ShowModal() == wx.ID_OK:
                        pass
                    dlg.Destroy()
                    self.MAJ()
                    return

            # Rattachée à une seule famille
            elif len(rattachements) == 1:
                IDcategorie, IDfamille, titulaire = rattachements[0]
            # Rattachée à plusieurs familles
            else:
                listeNoms = []
                for IDcategorie, IDfamille, titulaire in rattachements:
                    nomTitulaires = dictTitulaires[IDfamille]
                    if IDcategorie == 1:
                        nomCategorie = _(u"représentant")
                        if titulaire == 1:
                            nomCategorie += _(u" titulaire")
                    elif IDcategorie == 2:
                        nomCategorie = _(u"enfant")
                    elif IDcategorie == 3:
                        nomCategorie = _(u"contact")
                    else:
                        nomCategorie = _(u"Catégorie inconnue")
                    listeNoms.append(
                        _(u"%s (en tant que %s)") %
                        (nomTitulaires, nomCategorie))
                dlg = wx.SingleChoiceDialog(
                    self,
                    _(u"Cet individu est rattaché à %d familles.\nLa fiche de quelle famille souhaitez-vous ouvrir ?"
                      ) % len(listeNoms), _(u"Rattachements multiples"),
                    listeNoms, wx.CHOICEDLG_STYLE)
                IDfamilleSelection = None
                if dlg.ShowModal() == wx.ID_OK:
                    indexSelection = dlg.GetSelection()
                    IDcategorie, IDfamille, titulaire = rattachements[
                        indexSelection]
                    dlg.Destroy()
                else:
                    dlg.Destroy()
                    return

        # Ouverture de la fiche famille
        if IDfamille != None and IDfamille != -1:
            from Dlg import DLG_Famille
            if ouvrirGrille == True or ouvrirFicheInd == True:
                AfficherMessagesOuverture = False
            else:
                AfficherMessagesOuverture = True
            dlg = DLG_Famille.Dialog(
                self,
                IDfamille=IDfamille,
                AfficherMessagesOuverture=AfficherMessagesOuverture)
            # Ouverture grille de l'individ
            if ouvrirGrille == True:
                dlg.OuvrirGrilleIndividu(IDindividu)
            # Ouverture fiche de l'individu
            if ouvrirFicheInd == True:
                dlg.OuvrirFicheIndividu(IDindividu)
            if dlg.ShowModal() == wx.ID_OK:
                self.MAJ(IDindividu)
            try:
                dlg.Destroy()
            except:
                pass
            # MAJ du remplissage
            try:
                if self.GetGrandParent().GetName() == "general":
                    self.GetGrandParent().MAJ()
                else:
                    self.MAJ()
            except:
                pass
            # Mémorisation pour l'historique de la barre de recherche rapide
            try:
                if IDindividu not in self.historique:
                    self.historique.append(IDindividu)
                    if len(self.historique) > 30:
                        self.historique.pop(0)
            except:
                pass
示例#2
0
    def OuvrirFicheFamille(self, event=None):
        if UTILS_Utilisateurs.VerificationDroitsUtilisateurActuel("familles_fiche", "consulter") == False : return
        if len(self.Selection()) == 0 :
            dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucune fiche famille à ouvrir !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION)
            dlg.ShowModal()
            dlg.Destroy()
            return
        track = self.Selection()[0]

        if self.mode == "familles":

            # Mode familles
            from Dlg import DLG_Famille
            dlg = DLG_Famille.Dialog(self, track.IDfamille)
            if dlg.ShowModal() == wx.ID_OK:
                self.MAJ(track.IDfamille)
            dlg.Destroy()

        else :

            # Mode individus
            IDindividu = track.IDindividu

            rattachements, dictTitulaires, txtTitulaires = OL_Individus.GetRattachements(IDindividu)
            if rattachements != None:
                rattachements.sort()

            # Rattaché à aucune famille
            if rattachements == None:
                dlg = wx.MessageDialog(self, _(u"Cet individu n'est rattaché à aucune famille.\n\nSouhaitez-vous ouvrir sa fiche individuelle ?"), _(u"Confirmation"), wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL | wx.ICON_INFORMATION)
                reponse = dlg.ShowModal()
                dlg.Destroy()
                if reponse != wx.ID_YES:
                    return False
                else:
                    # Ouverture de la fiche individuelle
                    from Dlg import DLG_Individu
                    dlg = DLG_Individu.Dialog(None, IDindividu=IDindividu)
                    if dlg.ShowModal() == wx.ID_OK:
                        pass
                    dlg.Destroy()
                    self.MAJ()
                    return

            # Rattachée à une seule famille
            elif len(rattachements) == 1:
                IDcategorie, IDfamille, titulaire = rattachements[0]
            # Rattachée à plusieurs familles
            else:
                listeNoms = []
                for IDcategorie, IDfamille, titulaire in rattachements:
                    nomTitulaires = dictTitulaires[IDfamille]
                    if IDcategorie == 1:
                        nomCategorie = _(u"représentant")
                        if titulaire == 1:
                            nomCategorie += _(u" titulaire")
                    if IDcategorie == 2: nomCategorie = _(u"enfant")
                    if IDcategorie == 3: nomCategorie = _(u"contact")
                    listeNoms.append(_(u"%s (en tant que %s)") % (nomTitulaires, nomCategorie))
                dlg = wx.SingleChoiceDialog(self, _(u"Cet individu est rattaché à %d familles.\nLa fiche de quelle famille souhaitez-vous ouvrir ?") % len(listeNoms), _(u"Rattachements multiples"), listeNoms, wx.CHOICEDLG_STYLE)
                IDfamilleSelection = None
                if dlg.ShowModal() == wx.ID_OK:
                    indexSelection = dlg.GetSelection()
                    IDcategorie, IDfamille, titulaire = rattachements[indexSelection]
                    dlg.Destroy()
                else:
                    dlg.Destroy()
                    return

            # Ouverture de la fiche famille
            if IDfamille != None and IDfamille != -1:
                from Dlg import DLG_Famille
                dlg = DLG_Famille.Dialog(self, IDfamille=IDfamille)
                if dlg.ShowModal() == wx.ID_OK:
                    self.MAJ(IDindividu)
                try:
                    dlg.Destroy()
                except:
                    pass