コード例 #1
0
    def Fermer(self, save=True):
        """ Fermeture """
        if save == False:
            # Annule la création d'une nouvelle fiche
            if self.nouvelleFiche == True:
                db = GestionDB.DB()
                db.ReqDEL("coordonnees", "IDpersonne", self.IDpersonne)
                db.ReqDEL("personnes", "IDpersonne", self.IDpersonne)
                db.Close()

        else:
            # Sauvegarde des données
            # Vérifie que les infos principales sont saisies :
            if self.Verifie_validite_donnees() == True:
                self.notebook.pageGeneralites.Sauvegarde()
                self.notebook.pageQuestionnaire.Sauvegarde()
            else:
                return

        # Recherche si un parent est à mettre à jour
        frm = FonctionsPerso.FrameOuverte("Personnes")
        if frm != None:
            frm.listCtrl_personnes.MAJ(IDpersonne=self.IDpersonne)
            frm.panel_dossiers.tree_ctrl_problemes.MAJ_treeCtrl()
        # Fin
        self.EndModal(wx.ID_OK)
コード例 #2
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """
        # Vérifie que une valeur a été saisie
        valeur = self.text_valeur.GetValue()
        if valeur == "" :
            dlg = wx.MessageDialog(self, _(u"Vous devez saisir une valeur de point."), "Erreur", wx.OK)  
            dlg.ShowModal()
            dlg.Destroy()
            self.text_valeur.SetFocus()
            return
        # Vérifie que la valeur est bien constituée de chiffres uniquement
        incoherences = ""
        for lettre in valeur :
            if lettre not in "0123456789." : incoherences += "'"+ lettre + "', "
        if len(incoherences) != 0 :
            txt = _(u"Caractères incorrects : ") + incoherences[:-2]
            dlg = wx.MessageDialog(self, _(u"La valeur de point que vous avez saisie n'est pas correcte.\n\n") + txt, "Erreur", wx.OK)  
            dlg.ShowModal()
            dlg.Destroy()
            self.text_valeur.SetFocus()
            return
        # Sauvegarde
        self.Sauvegarde()

        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("config_val_point") != None :
            self.GetParent().MAJ_ListCtrl()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #3
0
 def OnBoutonOk(self, event):
     """ Validation des données saisies """
     # Sauvegarde
     self.Sauvegarde()
     
     # MAJ des parents       
     if self.parent == None and FonctionsPerso.FrameOuverte("panel_accueil") != None :
         # Mise à jour de la page d'accueil
         topWindow = wx.GetApp().GetTopWindow() 
         topWindow.toolBook.GetPage(0).MAJpanel() 
         
     # Fermeture
     self.EndModal(wx.ID_OK)
コード例 #4
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """
        nom_abrege = self.text_nom_abrege.GetValue()
        nom = self.text_nom.GetValue()
        if self.radio_oui.GetValue() == True:
            duree = "oui"
        else:
            duree = "non"

        # Vérifie que un nom abrégé a été saisi
        if nom_abrege == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez obligatoirement saisir un nom abrégé."),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom_abrege.SetFocus()
            return

        # Vérifie que un nom abrégé ne dépasse pas 5 caractéres
        if len(nom_abrege) > 5:
            dlg = wx.MessageDialog(
                self,
                _(u"Le nom abrégé ne doit pas dépasser 5 caractères !"),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom_abrege.SetFocus()
            return

        # Vérifie que un nom abrégé a été saisi
        if nom == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez obligatoirement saisir un nom complet."),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom.SetFocus()
            return

        # Sauvegarde
        self.Sauvegarde()

        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("config_typeContrat") != None:
            self.GetParent().MAJ_ListCtrl()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #5
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """

        varNom = self.text_ctrl_nom.GetValue()
        if varNom == "":
            dlg = wx.MessageDialog(
                self,
                _(u"Vous devez saisir un nom pour ce jour férié. Par exemple : 'Lundi de Pâques'..."
                  ), "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_ctrl_nom.SetFocus()
            return

        if self.typeJour == "fixe":
            varJour = self.choice_jour_fixe.GetSelection()
            if varJour == -1 or varJour == None:
                dlg = wx.MessageDialog(
                    self,
                    _(u"Vous devez sélectionner un jour pour ce jour férié !"
                      ), "Erreur", wx.OK)
                dlg.ShowModal()
                dlg.Destroy()
                self.choice_jour_fixe.SetFocus()
                return
            varMois = self.choice_mois_fixe.GetSelection()
            if varMois == -1 or varMois == None:
                dlg = wx.MessageDialog(
                    self,
                    _(u"Vous devez sélectionner un mois pour ce jour férié !"
                      ), "Erreur", wx.OK)
                dlg.ShowModal()
                dlg.Destroy()
                self.choice_mois_fixe.SetFocus()
                return

        # Sauvegarde
        self.Sauvegarde()

        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("Config_jours_feries_" +
                                       self.typeJour) != None:
            self.GetParent().MAJ_ListCtrl()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #6
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """

        varPassword1 = self.text_password1.GetValue()
        if varPassword1 == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez saisir un mot de passe valide !"),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_password1.SetFocus()
            return

        varPassword2 = self.text_password2.GetValue()
        if varPassword2 == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez confirmer le mot de passe !"), "Erreur",
                wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_password2.SetFocus()
            return

        if varPassword1 != varPassword2:
            dlg = wx.MessageDialog(
                self,
                _(u"Vous avez saisi deux mots de passe différents ! \n\nVeuillez recommencer votre saisie."
                  ), "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_password1.SetFocus()
            return

        # Sauvegarde
        self.Sauvegarde()

        # MAJ du panel Password
        if FonctionsPerso.FrameOuverte("panel_config_password") != None:
            self.GetParent().MAJpanel()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #7
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """
        # Vérifie que une valeur a été saisie
        valeur = self.text_nom.GetValue()
        if valeur == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez saisir au moins un nom de pays !"),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom.SetFocus()
            return

        # Sauvegarde
        self.Sauvegarde()
        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("panel_config_pays") != None:
            self.GetParent().MAJ_ListCtrl()
        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #8
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """
        # Récupération des valeurs des controles
        nom = self.text_nom.GetValue()
        defaut = self.text_defaut.GetValue()
        motCle = self.text_motCle.GetValue()

        # Vérifie que les valeurs ont été saisies
        if nom == "" :
            dlg = wx.MessageDialog(self, _(u"Vous devez saisir un nom pour le champ."), "Erreur", wx.OK)  
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom.SetFocus()
            return

        if motCle == "" :
            txt = _(u"Vous devez saisir un mot-clé.\n\nCe mot-clé sera nécessaire lors de l'impression des documents lors de la procédure de publipostage.")
            dlg = wx.MessageDialog(self, txt, "Erreur", wx.OK)  
            dlg.ShowModal()
            dlg.Destroy()
            self.text_motCle.SetFocus()
            return
        
        # Vérifie la validité du mot-clé
        incoherences = ""
        for lettre in motCle :
            if lettre not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" :
                incoherences += "'" + lettre + "', "
        if incoherences != "" :
            incoherences = incoherences[:-2]
            txt = _(u"Le mot-clé que vous avez saisi n'est pas valide. Les caractères suivants ne sont pas valides : ") + incoherences + _(u"\n\nRappel : Ce mot-clé doit être en majuscules, ne peut comporter que des lettres ou des chiffres. Les espaces, accents ou autres caractères spéciaux ne sont pas acceptés.")
            dlg = wx.MessageDialog(self, txt, "Erreur", wx.OK)  
            dlg.ShowModal()
            dlg.Destroy()
            return
        
        # Vérifie que le mot-clé n'existe pas déjà dans la base
        DB = GestionDB.DB()
        req = "SELECT IDchamp, categorie, nom, mot_cle, defaut FROM publipostage_champs WHERE categorie='%s' AND mot_cle='%s' AND IDchamp<>%d" % (self.categorie, motCle, self.IDchamp)
        DB.ExecuterReq(req)
        donnees = DB.ResultatReq()
        DB.Close()
        if len(donnees) > 0 :
            dlg = wx.MessageDialog(self, _(u"Ce mot-clé est déjà utilisé"), "Erreur", wx.OK| wx.ICON_EXCLAMATION)  
            dlg.ShowModal()
            dlg.Destroy()
            return
        
        # Vérifie que le mot-clé n'existe pas déjà dans les mots-clés de base
        for motcleTemp, type in self.listeMotsCles :
            if motcleTemp == motCle and type != self.IDchamp :
                dlg = wx.MessageDialog(self, _(u"Ce mot-clé est déjà utilisé dans les mots-clés de base. Veuillez saisir un autre mot-clé"), "Erreur", wx.OK| wx.ICON_EXCLAMATION)  
                dlg.ShowModal()
                dlg.Destroy()
                return
        
        # Sauvegarde
        ID = self.Sauvegarde()
        
        # MAJ du grid de valeurs du publiposteur
        if FonctionsPerso.FrameOuverte("frm_publiposteur") != None :
            if self.IDchamp == 0 :
                self.GetParent().AjouterChampPerso(ID, motCle, defaut)
            else:
                self.GetParent().ModifierChampPerso(self.IDchamp, nouveauMotcle=motCle, ancienMotcle=self.ancienMotcle, valeurDefaut=defaut)
            self.GetParent().grid.Remplissage() 
        
        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #9
0
    def Validation(self):

        # Enregistrement des données
        dictContrats = self.GetGrandParent().dictContrats
        dictChamps = self.GetGrandParent().dictChamps
        DB = GestionDB.DB()

        # Enregistrement des données du CONTRAT
        listeDonnees = [
            ("IDpersonne", dictContrats["IDpersonne"]),
            ("IDclassification", dictContrats["IDclassification"]),
            ("IDtype", dictContrats["IDtype"]),
            ("valeur_point", dictContrats["valeur_point"]),
            ("date_debut", dictContrats["date_debut"]),
            ("date_fin", dictContrats["date_fin"]),
            ("date_rupture", dictContrats["date_rupture"]),
            ("essai", dictContrats["essai"]),
        ]

        if dictContrats["IDcontrat"] == 0:
            # Ajout
            listeDonnees.append(("signature", ""))
            listeDonnees.append(("due", ""))
            IDcontrat = DB.ReqInsert("contrats", listeDonnees)
            DB.Commit()
        else:
            # Modification
            DB.ReqMAJ("contrats", listeDonnees, "IDcontrat",
                      dictContrats["IDcontrat"])
            DB.Commit()
            IDcontrat = dictContrats["IDcontrat"]

        # Enregistrement des données des CHAMPS

        # Crée une liste des champs existants déjà pour ce contrat
        req = "SELECT IDval_champ, IDchamp FROM contrats_valchamps WHERE (IDcontrat=%d AND type='contrat')  ;" % IDcontrat
        DB.ExecuterReq(req)
        listeChampsDB = DB.ResultatReq()
        nbreResultats = len(listeChampsDB)

        # On regarde chaque champ un par un
        for IDchamp, valeur in dictChamps.items():

            listeDonnees = [
                ("IDchamp", IDchamp),
                ("type", "contrat"),
                ("valeur", valeur),
                ("IDcontrat", IDcontrat),
                ("IDmodele", 0),
            ]

            # Recherche si le champ existe déjà dans la base
            modif = False
            for IDval_champDB, IDchampDB in listeChampsDB:
                if IDchampDB == IDchamp:
                    # Le champ existe déjà, alors on le modifie :
                    DB.ReqMAJ("contrats_valchamps", listeDonnees,
                              "IDval_champ", IDval_champDB)
                    DB.Commit()
                    modif = True

            if modif == False:
                # Le champ n'existe pas dans la base, alors on le créée :
                ID = DB.ReqInsert("contrats_valchamps", listeDonnees)
                DB.Commit()

        # On efface les champs déjà créés qui ne sont plus utilisés :
        for IDval_champDB, IDchampDB in listeChampsDB:

            trouve = False
            for IDchamp, valeur in dictChamps.items():
                if IDchampDB == IDchamp: trouve = True

            if trouve == False:
                # On l'efface :
                DB.ReqDEL("contrats_valchamps", "IDval_champ", IDval_champDB)

        # Fermeture de la DB
        DB.Close()

        # Recherche si un parent est à mettre à jour
        if FonctionsPerso.FrameOuverte("FicheIndividuelle") != None:
            self.GetGrandParent().GetParent().list_ctrl_contrats.Remplissage()
            self.GetGrandParent().GetParent().MAJ_barre_problemes()

        return True
コード例 #10
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """

        # Vérifie que des valeurs ont été saisies
        valeur = self.GetChoiceValue(self.choice_nom)
        if valeur == None:
            dlg = wx.MessageDialog(
                self,
                _(u"Vous devez sélectionner un nom de période dans la liste proposée !"
                  ), "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.choice_nom.SetFocus()
            return

        valeur = self.text_annee.GetValue()
        if valeur == "":
            dlg = wx.MessageDialog(self,
                                   _(u"Vous devez saisir une année valide."),
                                   "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_annee.SetFocus()
            return
        # Vérifie que la valeur est bien constituée de chiffres uniquement
        incoherences = ""
        for lettre in valeur:
            if lettre not in "0123456789.":
                incoherences += "'" + lettre + "', "
        if len(incoherences) != 0:
            dlg = wx.MessageDialog(
                self, _(u"L'année que vous avez saisie n'est pas correcte."),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_annee.SetFocus()
            return
        valeur = int(valeur)
        if valeur < 1000 or valeur > 3000:
            dlg = wx.MessageDialog(
                self, _(u"L'année que vous avez saisie n'est pas correcte."),
                "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_annee.SetFocus()
            return

        date_debut = self.datepicker_dateDebut.GetValue(
        )  # self.GetDatePickerValue(self.datepicker_date_debut)
        date_fin = self.datepicker_dateFin.GetValue(
        )  # self.GetDatePickerValue(self.datepicker_date_fin)
        # Vérifie que la date de fin est supérieure à la date de début de contrat
        if date_debut > date_fin:
            dlg = wx.MessageDialog(
                self,
                _(u"La date de fin de vacances doit être supérieure à la date de début !"
                  ), "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.datepicker_dateFin.SetFocus()
            return

        # Sauvegarde
        self.Sauvegarde()
        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("panel_config_periodes_vacs") != None:
            self.GetParent().MAJ_ListCtrl()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #11
0
    def OnBoutonOk(self, event):
        """ Validation des données saisies """
        # Récupération des valeurs des controles
        nom = self.text_nom.GetValue()
        description = self.text_description.GetValue()
        defaut = self.text_defaut.GetValue()
        motCle = self.text_motCle.GetValue()
        exemple = self.text_exemple.GetValue()

        # Vérifie que les valeurs ont été saisies
        if nom == "":
            dlg = wx.MessageDialog(
                self, _(u"Vous devez saisir un nom pour le champ."), "Erreur",
                wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom.SetFocus()
            return

        if description == "":
            txt = _(
                u"Vous n'avez pas saisi de description. Ce n'est pas obligatoire mais fortement conseillé pour faciliter ensuite la saisie du champ.\n\nVoulez-vous saisir une description ?"
            )
            dlgConfirm = wx.MessageDialog(
                self, txt, _(u"Confirmation"),
                wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
            reponse = dlgConfirm.ShowModal()
            dlgConfirm.Destroy()
            if reponse == wx.ID_YES:
                self.text_description.SetFocus()
                return

        if exemple == "":
            txt = _(
                u"Vous n'avez pas saisi de valeurs d'exemple. Ce n'est pas obligatoire mais fortement conseillé pour faciliter ensuite la saisie du champ.\n\nVoulez-vous saisir une ou plusieurs valeurs d'exemple ?"
            )
            dlgConfirm = wx.MessageDialog(
                self, txt, _(u"Confirmation"),
                wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
            reponse = dlgConfirm.ShowModal()
            dlgConfirm.Destroy()
            if reponse == wx.ID_YES:
                self.text_description.SetFocus()
                return

        if motCle == "":
            txt = _(
                u"Vous devez saisir un mot-clé.\n\nCe mot-clé sera nécessaire lors de l'impression des contrats lors de la procédure de publipostage sous Word."
            )
            dlg = wx.MessageDialog(self, txt, "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_motCle.SetFocus()
            return

        # Vérifie la validité du mot-clé
        incoherences = ""
        for lettre in motCle:
            if lettre not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789":
                incoherences += "'" + lettre + "', "
        if incoherences != "":
            incoherences = incoherences[:-2]
            txt = _(
                u"Le mot-clé que vous avez saisi n'est pas valide. Les caractères suivants ne sont pas valides : "
            ) + incoherences + _(
                u"\n\nRappel : Ce mot-clé doit être en majuscules, ne peut comporter que des lettres ou des chiffres. Les espaces, accents ou autres caractères spéciaux ne sont pas acceptés."
            )
            dlg = wx.MessageDialog(self, txt, "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            return

        # Sauvegarde
        self.Sauvegarde()

        # MAJ du listCtrl des valeurs de points
        if FonctionsPerso.FrameOuverte("panel_config_champsContrats") != None:
            self.GetParent().MAJ_ListCtrl()

        # Fermeture
        self.EndModal(wx.ID_OK)
コード例 #12
0
    def Validation(self):

        # Vérifie qu'un nom a été saisi
        if self.text_nom.GetValue() == "":
            dlg = wx.MessageDialog(
                self,
                _(u"Vous devez obligatoirement saisir un nom pour ce modèle !"
                  ), "Erreur", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            self.text_nom.SetFocus()
            return False

        # Enregistrement des données
        dictModeles = self.GetGrandParent().dictModeles
        dictChamps = self.GetGrandParent().dictChamps
        DB = GestionDB.DB()

        # Enregistrement des données du MODELE
        listeDonnees = [
            ("IDclassification", dictModeles["IDclassification"]),
            ("IDtype", dictModeles["IDtype"]),
            ("nom", self.text_nom.GetValue()),
            ("description", self.text_description.GetValue()),
        ]

        if dictModeles["IDmodele"] == 0:
            # Ajout
            IDmodele = DB.ReqInsert("contrats_modeles", listeDonnees)
            DB.Commit()
        else:
            # Modification
            DB.ReqMAJ("contrats_modeles", listeDonnees, "IDmodele",
                      dictModeles["IDmodele"])
            DB.Commit()
            IDmodele = dictModeles["IDmodele"]

        # Enregistrement des données des CHAMPS

        # Crée une liste des champs existants déjà pour ce contrat
        req = "SELECT IDval_champ, IDchamp FROM contrats_valchamps WHERE (IDmodele=%d AND type='modele')  ;" % IDmodele
        DB.ExecuterReq(req)
        listeChampsDB = DB.ResultatReq()
        nbreResultats = len(listeChampsDB)

        # On regarde chaque champ un par un
        for IDchamp, valeur in dictChamps.items():

            listeDonnees = [
                ("IDchamp", IDchamp),
                ("type", "modele"),
                ("valeur", valeur),
                ("IDmodele", IDmodele),
                ("IDcontrat", 0),
            ]

            # Recherche si le champ existe déjà dans la base
            modif = False
            for IDval_champDB, IDchampDB in listeChampsDB:
                if IDchampDB == IDchamp:
                    # Le champ existe déjà, alors on le modifie :
                    DB.ReqMAJ("contrats_valchamps", listeDonnees,
                              "IDval_champ", IDval_champDB)
                    DB.Commit()
                    modif = True

            if modif == False:
                # Le champ n'existe pas dans la base, alors on le créée :
                ID = DB.ReqInsert("contrats_valchamps", listeDonnees)
                DB.Commit()

        # On efface les champs déjà créés qui ne sont plus utilisés :
        for IDval_champDB, IDchampDB in listeChampsDB:

            trouve = False
            for IDchamp, valeur in dictChamps.items():
                if IDchampDB == IDchamp: trouve = True

            if trouve == False:
                # On l'efface :
                DB.ReqDEL("contrats_valchamps", "IDval_champ", IDval_champDB)

        # Fermeture de la DB
        DB.Close()

        # Recherche si un parent est à mettre à jour
        if FonctionsPerso.FrameOuverte(
                "panel_config_Modeles_Contrats") != None:
            self.GetGrandParent().GetParent().MAJ_ListCtrl()

        return True
コード例 #13
0
 def Onbouton_annuler(self, event):
     # Si frame Creation_contrats ouverte, on met à jour le listCtrl Valeurs de points
     if FonctionsPerso.FrameOuverte("panel_param_mail") != None:
         self.GetParent().MAJ_ctrl_expediteur()
     # Fermeture
     self.EndModal(wx.ID_CANCEL)