def OnBoutonApercu(self, event):
        """ Aperçu PDF des inscriptions """
        # Validation des données saisies
        tracks = self.ctrl_liste_inscriptions.GetTracksCoches()
        if len(tracks) == 0:
            dlg = wx.MessageDialog(
                self,
                _(u"Vous n'avez sélectionné aucune inscription à imprimer !"
                  ), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION)
            dlg.ShowModal()
            dlg.Destroy()
            return

        listeIDinscription = []
        for track in tracks:
            listeIDinscription.append(track.IDinscription)

        # Récupération des options
        dictOptions = self.ctrl_options.GetOptions()
        if dictOptions == False:
            return False

        # Impression des inscriptions sélectionnées
        x = UTILS_Inscriptions.Inscription()
        x.Impression(listeInscriptions=listeIDinscription,
                     afficherDoc=True,
                     dictOptions=dictOptions,
                     repertoire=dictOptions["repertoire"])
示例#2
0
 def CreationPDF(self, nomDoc="", afficherDoc=True):
     """ Création du PDF pour Email """
     IDinscription = self.Selection()[0].IDinscription
     from Utils import UTILS_Inscriptions
     inscription = UTILS_Inscriptions.Inscription()
     resultat = inscription.Impression(listeInscriptions=[IDinscription,], nomDoc=nomDoc, afficherDoc=False)
     if resultat == False :
         return False
     dictChampsFusion, dictPieces = resultat
     return dictChampsFusion[IDinscription]
示例#3
0
 def ImprimerPDF(self, event):
     if len(self.Selection()) == 0 :
         dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucune inscription à imprimer !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION)
         dlg.ShowModal()
         dlg.Destroy()
         return
     IDinscription = self.Selection()[0].IDinscription
     from Utils import UTILS_Inscriptions
     inscription = UTILS_Inscriptions.Inscription()
     inscription.Impression(listeInscriptions=[IDinscription,])
示例#4
0
    def OnBoutonOk(self, event): 
        """ Aperçu PDF des inscriptions """
        # Validation des données saisies
        tracks = self.ctrl_liste_inscriptions.GetTracksCoches()
        if len(tracks) == 0 : 
            dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucune inscription à envoyer par Email !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION)
            dlg.ShowModal()
            dlg.Destroy()
            return

        # Création des inscriptions sélectionnées
        listeIDinscription = []
        for track in tracks :
            listeIDinscription.append(track.IDinscription)
        inscription = UTILS_Inscriptions.Inscription()
        dictOptions = self.ctrl_options.GetOptions()
        if dictOptions == False :
            return

        resultat = inscription.Impression(listeInscriptions=listeIDinscription, nomDoc=None, afficherDoc=False, dictOptions=dictOptions, repertoire=dictOptions["repertoire"], repertoireTemp=True)
        if resultat == False : 
            return
        dictChampsFusion, dictPieces = resultat
        
        def SupprimerFichiersTemp():
            for IDinscription, fichier in dictPieces.items():
                if os.path.isfile(fichier):
                    os.remove(fichier)

        # Récupération des adresses Emails
        dict_adresses = UTILS_Envoi_email.GetAdressesFamilles([track.IDfamille for track in tracks])
        if dict_adresses == False:
            return False

        liste_donnees = []
        for track in tracks:
            if track.IDinscription in dictPieces:
                for adresse in dict_adresses.get(track.IDfamille, []):
                    fichier = dictPieces[track.IDinscription]
                    champs = dictChampsFusion[track.IDinscription]
                    liste_donnees.append({"adresse" : adresse, "pieces" : [fichier,], "champs" : champs})

        # Transfert des données vers DLG Mailer
        from Dlg import DLG_Mailer
        dlg = DLG_Mailer.Dialog(self, categorie="inscription")
        dlg.SetDonnees(liste_donnees, modificationAutorisee=False)
        dlg.ChargerModeleDefaut()
        dlg.ShowModal() 
        dlg.Destroy()

        # Suppression des PDF temporaires
        SupprimerFichiersTemp()
示例#5
0
    def OnBoutonOk(self, event):
        """ Aperçu PDF des inscriptions """
        # Validation des données saisies
        tracks = self.ctrl_liste_inscriptions.GetTracksCoches()
        if len(tracks) == 0:
            dlg = wx.MessageDialog(
                self,
                _(u"Vous n'avez sélectionné aucune inscription à envoyer par Email !"
                  ), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION)
            dlg.ShowModal()
            dlg.Destroy()
            return

        # Création des inscriptions sélectionnées
        listeIDinscription = []
        for track in tracks:
            listeIDinscription.append(track.IDinscription)
        inscription = UTILS_Inscriptions.Inscription()
        dictOptions = self.ctrl_options.GetOptions()
        if dictOptions == False:
            return

        resultat = inscription.Impression(listeInscriptions=listeIDinscription,
                                          nomDoc=None,
                                          afficherDoc=False,
                                          dictOptions=dictOptions,
                                          repertoire=dictOptions["repertoire"],
                                          repertoireTemp=True)
        if resultat == False:
            return
        dictChampsFusion, dictPieces = resultat

        def SupprimerFichiersTemp():
            for IDinscription, fichier in dictPieces.iteritems():
                os.remove(fichier)

        # Récupération de toutes les adresses Emails
        DB = GestionDB.DB()
        req = """SELECT IDindividu, mail, travail_mail
        FROM individus;"""
        DB.ExecuterReq(req)
        listeAdressesIndividus = DB.ResultatReq()
        DB.Close()
        dictAdressesIndividus = {}
        for IDindividu, mail, travail_mail in listeAdressesIndividus:
            dictAdressesIndividus[IDindividu] = {
                "perso": mail,
                "travail": travail_mail
            }

        # Récupération des données adresse + champs + pièces
        listeDonnees = []
        listeAnomalies = []
        listeEnvoiNonDemande = []
        for track in tracks:
            adresse = UTILS_Envoi_email.GetAdresseFamille(
                track.IDfamille,
                choixMultiple=False,
                muet=True,
                nomTitulaires=track.nomTitulaires)

            # Mémorisation des données
            if adresse not in (None, "", []):
                if dictPieces.has_key(track.IDinscription):
                    fichier = dictPieces[track.IDinscription]
                    champs = dictChampsFusion[track.IDinscription]
                    listeDonnees.append({
                        "adresse": adresse,
                        "pieces": [
                            fichier,
                        ],
                        "champs": champs
                    })
            else:
                listeAnomalies.append(track.nomTitulaires)

        # Annonce les anomalies trouvées
        if len(listeAnomalies) > 0:
            texte = _(
                u"%d des familles sélectionnées n'ont pas d'adresse Email.\n\n"
            ) % len(listeAnomalies)
            texte += _(
                u"Souhaitez-vous quand même continuer avec les %d autres familles ?"
            ) % len(listeDonnees)
            dlg = wx.MessageDialog(
                self, texte, _(u"Avertissement"),
                wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION)
            reponse = dlg.ShowModal()
            dlg.Destroy()
            if reponse != wx.ID_YES:
                SupprimerFichiersTemp()
                return

        # Dernière vérification avant transfert
        if len(listeDonnees) == 0:
            dlg = wx.MessageDialog(
                self,
                _(u"Il ne reste finalement aucune inscription à envoyer par Email !"
                  ), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION)
            dlg.ShowModal()
            dlg.Destroy()
            SupprimerFichiersTemp()
            return

        # Transfert des données vers DLG Mailer
        import DLG_Mailer
        dlg = DLG_Mailer.Dialog(self, categorie="inscription")
        dlg.SetDonnees(listeDonnees, modificationAutorisee=False)
        dlg.ChargerModeleDefaut()
        dlg.ShowModal()
        dlg.Destroy()

        # Suppression des PDF temporaires
        SupprimerFichiersTemp()