def MaJ_header(self): # MàJ de l'affichage de ID : if self.IDpersonne == 0: ID = "Attribution de l'ID en cours" else: ID = self.IDpersonne # MàJ de l'affichage du contrat en cours : if self.contratEnCours == None: txtContrat = _(u"Aucun contrat en cours") else: date_debut = FonctionsPerso.DateEngFr(self.contratEnCours[1]) if self.contratEnCours[2] == "2999-01-01": txtContrat = _(u"Contrat en cours : ") + self.contratEnCours[ 0] + " depuis le " + date_debut + _(u" (Durée ind.)") else: date_fin = FonctionsPerso.DateEngFr(self.contratEnCours[2]) date_rupture = FonctionsPerso.DateEngFr(self.contratEnCours[3]) if date_rupture != "//": date_fin = date_rupture txtContrat = _(u"Contrat en cours : ") + self.contratEnCours[ 0] + " du " + date_debut + " au " + date_fin # Affichage self.label_hd_CatId.SetLabel(txtContrat + " | ID : " + str(ID)) try: self.sizer_header_textes.Layout() except: pass
def Categorie_general(self): nomCategorie = _(u"Général") listeItems = [] # Récupération du nom du fichier nomFichier = self.DB.GetNomFichierDefaut() if "[RESEAU]" in nomFichier: nomFichier = nomFichier[nomFichier.index("[RESEAU]"):] listeItems.append((_(u"Nom du fichier"), nomFichier)) # Récupération des paramètres du fichier req = """SELECT IDparametre, nom, parametre FROM parametres WHERE categorie='fichier' ;""" self.DB.ExecuterReq(req) listeTemp = self.DB.ResultatReq() dictInfos = {} for IDparametre, nom, parametre in listeTemp: dictInfos[nom] = parametre listeItems.append( (_(u"Date de création"), FonctionsPerso.DateEngFr(dictInfos["date_creation"]))) listeItems.append((_(u"Version de fichier"), dictInfos["version"])) listeItems.append((_(u"IDfichier"), dictInfos["IDfichier"])) # Nbre de tables de données listeTables = self.DB.GetListeTables() listeItems.append( (_(u"Nombre de tables de données"), str(len(listeTables) + 2))) return nomCategorie, listeItems
def ImportationCandidatures(self): """ Récupération des données """ DB = GestionDB.DB() req = """ SELECT candidatures.IDcontrat, cabdacontrats_class.nom, contrats_types.nom, date_debut, date_fin FROM candidatures LEFT JOIN candidats ON candidats.IDcandidat = candidatures.IDcandidat LEFT JOIN contrats_class ON contrats_class.IDclassification = contrats.IDclassification LEFT JOIN contrats_types ON contrats_types.IDtype = contrats.IDtype ORDER BY nomPersonne, date_debut """ DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() listeContrats = [] dictGroupes = {} for IDcandidature, nomCandidat, classification, type, date_debut, date_fin in listeDonnees : texteContrat = _(u"%s %s du %s au %s") % (type, classification, FonctionsPerso.DateEngFr(date_debut), FonctionsPerso.DateEngFr(date_fin)) if nomPersonne in dictGroupes : dictGroupes[nomPersonne].append( (IDcontrat, texteContrat) ) else: dictGroupes[nomPersonne] = [ (IDcontrat, texteContrat), ] listeKeys = list(dictGroupes.keys()) listeKeys.sort() for key in listeKeys: listeContrats.append( (key, dictGroupes[key]) ) return listeContrats
def Importation_valPoint(self): controle = self.choice_valpoint selection = controle.GetSelection() IDselection = None if selection != -1: IDselection = controle.GetClientData(selection) # Récupération des données DB = GestionDB.DB() req = """SELECT * FROM valeurs_point ORDER BY date_debut """ DB.ExecuterReq(req) liste = DB.ResultatReq() DB.Close() # Recherche de la valeur actuelle dateJour = str(datetime.date.today()) valeurActuelle = None for ID, valeur, dateDebut in liste: if dateJour >= dateDebut: valeurActuelle = ID # Placement de la liste dans le Choice controle.Clear() x = 0 for ID, valeur, dateDebut in liste: txt = str(valeur) + _(u" ¤ (à partir du " ) + FonctionsPerso.DateEngFr(dateDebut) + ")" controle.Append(txt, ID) # Sélection de l'ancienne valeur sélectionnée if IDselection == ID: controle.SetSelection(x) # Sélection de la valeur actuelle si rien n'a été sélectionnée if IDselection == None and valeurActuelle == ID: controle.SetSelection(x) x += 1 self.listeValPoint = liste
def Importation_contrat(IDcontrat=None): # Importation des données d'un contrat dictDonnees = {} DB = GestionDB.DB() req = """ SELECT IDpersonne, IDclassification, IDtype, valeur_point, date_debut, date_fin, essai FROM contrats WHERE IDcontrat=%d; """ % IDcontrat DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() if len(listeDonnees) == 0: DB.Close() return {} IDpersonne, IDclassification, IDtype, valeur_point, date_debut, date_fin, essai = listeDonnees[ 0] dictDonnees["_IDPERSONNE"] = IDpersonne # Dates du contrat dictDonnees["DATEDEBUT"] = "" if date_debut != "": dictDonnees["DATEDEBUT"] = FonctionsPerso.DateEngFr(date_debut) dictDonnees["DATEFIN"] = "" if date_fin != "": dictDonnees["DATEFIN"] = FonctionsPerso.DateEngFr(date_fin) # Essai dictDonnees["ESSAI"] = str(essai) # Classification req = """ SELECT nom FROM contrats_class WHERE IDclassification=%d; """ % IDclassification DB.ExecuterReq(req) dictDonnees["CLASSIFICATION"] = DB.ResultatReq()[0][0] # Type contrat req = """ SELECT nom, nom_abrege, duree_indeterminee FROM contrats_types WHERE IDtype=%d; """ % IDtype DB.ExecuterReq(req) dictDonnees["TYPECONTRAT"] = DB.ResultatReq()[0][0] # Valeur du point req = """ SELECT valeur, date_debut FROM valeurs_point WHERE IDvaleur_point=%d; """ % valeur_point DB.ExecuterReq(req) dictDonnees["VALEURPOINT"] = u"%s ¤" % DB.ResultatReq()[0][0] # Liste des mots-clés listeMotscles = [ "DATEDEBUT", "DATEFIN", "CLASSIFICATION", "TYPECONTRAT", "VALEURPOINT", "ESSAI" ] # Champs personnalisés des contrats req = """ SELECT IDchamp, mot_cle FROM contrats_champs; """ DB.ExecuterReq(req) listeChamps = DB.ResultatReq() dictChamps = {} for IDchamp, mot_cle in listeChamps: dictChamps[IDchamp] = mot_cle listeMotscles.append(mot_cle) # Valeurs des champs personnalisés req = """ SELECT IDchamp, valeur FROM contrats_valchamps WHERE IDcontrat=%d AND type='contrat'; """ % IDcontrat DB.ExecuterReq(req) listeChamps = DB.ResultatReq() for IDchamp, valeur in listeChamps: mot_cle = dictChamps[IDchamp] dictDonnees[mot_cle] = valeur DB.Close() return listeMotscles, dictDonnees
def Importation_candidature(IDcandidature=None): # Importation des données de la candidature dictDonnees = {} DB = GestionDB.DB() req = """SELECT IDcandidat, IDpersonne, date_depot, IDtype, acte_remarques, IDemploi, periodes_remarques, poste_remarques, IDdecision, decision_remarques, reponse_obligatoire, reponse, date_reponse, IDtype_reponse FROM candidatures WHERE IDcandidature=%d; """ % IDcandidature DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) == 0: return {} IDcandidat, IDpersonne, date_depot, IDtype, acte_remarques, IDemploi, periodes_remarques, poste_remarques, IDdecision, decision_remarques, reponse_obligatoire, reponse, date_reponse, IDtype_reponse = listeDonnees[ 0] dictDonnees["_IDCANDIDAT"] = IDcandidat dictDonnees["_IDPERSONNE"] = IDpersonne # Date de dépôt dictDonnees["DATEDEPOT"] = FonctionsPerso.DateEngFr(date_depot) # Type dépôt listeTypes = [ _(u"De vive voix"), _(u"Courrier"), _(u"Téléphone"), _(u"Main à main"), _(u"Email"), _(u"Pôle Emploi"), _(u"Organisateur"), _(u"Fédération"), _(u"Autre") ] dictDonnees["TYPEDEPOT"] = listeTypes[IDtype] # Offre d'emploi dictDonnees["OFFREDEMPLOI"] = "" if IDemploi == 0: dictDonnees["OFFREDEMPLOI"] = _(u"Candidature spontanée") else: listeMotsclesEmmplois, dictDonneesEmplois = Importation_offre_emploi( IDemploi=IDemploi) dictDonnees["OFFREDEMPLOI"] = dictDonneesEmplois["OFFRE_INTITULE"] # Disponibilités dictDonnees["DISPONIBILITES"] = "" DB = GestionDB.DB() req = """SELECT IDdisponibilite, date_debut, date_fin FROM disponibilites WHERE IDcandidature=%d ORDER BY date_debut; """ % IDcandidature DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: texteTemp = "" for IDdisponibilite, date_debut, date_fin in listeDonnees: texteTemp += _(u"du %s au %s") % (FonctionsPerso.DateEngFr( date_debut), FonctionsPerso.DateEngFr(date_fin)) + "; " dictDonnees["DISPONIBILITES"] = texteTemp[:-2] # Fonctions dictDonnees["FONCTIONS"] = "" DB = GestionDB.DB() req = """ SELECT fonctions.IDfonction, fonctions.fonction FROM fonctions LEFT JOIN cand_fonctions ON fonctions.IDfonction = cand_fonctions.IDfonction WHERE cand_fonctions.IDcandidature=%d """ % IDcandidature DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: texteTemp = "" for IDfonction, nomFonction in listeDonnees: texteTemp += nomFonction + "; " dictDonnees["FONCTIONS"] = texteTemp[:-2] # Fonctions dictDonnees["AFFECTATIONS"] = "" DB = GestionDB.DB() req = """ SELECT affectations.IDaffectation, affectations.affectation FROM affectations LEFT JOIN cand_affectations ON affectations.IDaffectation = cand_affectations.IDaffectation WHERE cand_affectations.IDcandidature=%d """ % IDcandidature DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: texteTemp = "" for IDfonction, nomAffectation in listeDonnees: texteTemp += nomAffectation + "; " dictDonnees["AFFECTATIONS"] = texteTemp[:-2] # Décision typesDecision = [_(u"Décision non prise"), _(u"Oui"), _(u"Non")] dictDonnees["DECISION"] = typesDecision[IDdecision] # Réponse listeTypesReponses = [ _(u"De vive voix"), _(u"Courrier"), _(u"Téléphone"), _(u"Main à main"), _(u"Email"), _(u"Autre") ] if reponse == 1: dictDonnees["DATEREPONSE"] = FonctionsPerso.DateEngFr(date_reponse) dictDonnees["TYPEREPONSE"] = listeTypesReponses(IDtype_reponse) # Liste des mots-clés listeMotscles = [ "DATEDEPOT", "TYPEDEPOT", "OFFREDEMPLOI", "DISPONIBILITES", "FONCTIONS", "AFFECTATIONS", "DECISION", "DATEREPONSE", "TYPEREPONSE" ] return listeMotscles, dictDonnees
def Importation_candidat(IDcandidat=None): # Données CANDIDAT dictDonnees = {} DB = GestionDB.DB() req = """SELECT IDcandidat, civilite, nom, prenom, date_naiss, age, adresse_resid, cp_resid, ville_resid, memo FROM candidats WHERE IDcandidat=%d; """ % IDcandidat DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) == 0: return {} IDcandidat, civilite, nom, prenom, date_naiss, age, adresse_resid, cp_resid, ville_resid, memo = listeDonnees[ 0] dictDonnees["_IDCANDIDAT"] = IDcandidat dictDonnees["CIVILITE"] = civilite dictDonnees["NOM"] = nom dictDonnees["PRENOM"] = prenom dictDonnees["ADRESSERESID"] = adresse_resid dictDonnees["VILLERESID"] = ville_resid dictDonnees["MEMO"] = memo # Champs spéciaux dictDonnees["CPRESID"] = "" try: if cp_resid != "" and cp_resid != None and cp_resid != " ": if type(cp_resid) == six.text_type: cp_resid = int(cp_resid) dictDonnees["CPRESID"] = "%05d" % cp_resid if cp_naiss != "" and cp_naiss != None and cp_naiss != " ": if type(cp_naiss) == six.text_type: cp_naiss = int(cp_naiss) dictDonnees["CPRESID"] = "%05d" % cp_resid except: pass # Date de naissance dictDonnees["DATENAISS"] = "" temp = date_naiss if temp == " / / " or temp == '' or temp == None: temp = "" else: temp = FonctionsPerso.DateEngFr(temp) dictDonnees["DATENAISS"] = temp # Age dictDonnees["AGE"] = "" if age != "" and age != None and age != 0: dictDonnees["AGE"] = str(age) else: if dictDonnees["DATENAISS"] != "": # Calcul de l'age de la personne datenaissanceTmp = dictDonnees["DATENAISS"] jour = int(datenaissanceTmp[:2]) mois = int(datenaissanceTmp[3:5]) annee = int(datenaissanceTmp[6:10]) bday = datetime.date(annee, mois, jour) datedujour = datetime.date.today() age = (datedujour.year - bday.year) - int( (datedujour.month, datedujour.day) < (bday.month, bday.day)) dictDonnees["AGE"] = str(age) # Qualifications dictDonnees["QUALIFICATIONS"] = "" DB = GestionDB.DB() req = """ SELECT types_diplomes.nom_diplome, types_diplomes.IDtype_diplome FROM types_diplomes LEFT JOIN diplomes_candidats ON types_diplomes.IDtype_diplome = diplomes_candidats.IDtype_diplome WHERE diplomes_candidats.IDcandidat=%d """ % IDcandidat DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: texteTemp = "" for nom_diplome, IDtype_diplome in listeDonnees: texteTemp += nom_diplome + "; " dictDonnees["QUALIFICATIONS"] = texteTemp[:-2] # Coordonnées dictDonnees["TELEPHONES"] = "" dictDonnees["FAX"] = "" dictDonnees["EMAILS"] = "" DB = GestionDB.DB() req = """SELECT IDcoord, categorie, texte, intitule FROM coords_candidats WHERE IDcandidat=%d; """ % IDcandidat DB.ExecuterReq(req) listeCoords = DB.ResultatReq() DB.Close() texteTel = "" texteFax = "" texteEmails = "" nbreTel = 0 nbreFax = 0 nbreEmails = 0 if len(listeCoords) > 0: for IDcoord, categorie, texte, intitule in listeCoords: if categorie == "Fixe" or categorie == "Mobile": texteTel += texte + ", " nbreTel += 1 if categorie == "Email": texteEmails += texte + ", " nbreEmails += 1 if categorie == "Fax": texteFax += texte + ", " nbreFax += 1 if nbreTel > 0: dictDonnees["TELEPHONES"] = texteTel[:-2] if nbreEmails > 0: dictDonnees["EMAILS"] = texteEmails[:-2] if nbreFax > 0: dictDonnees["FAX"] = texteFax[:-2] # Liste des mots-clés listeMotscles = [ "CIVILITE", "NOM", "PRENOM", "DATENAISS", "AGE", "ADRESSERESID", "CPRESID", "VILLERESID", "QUALIFICATIONS", "TELEPHONES", "FAX", "EMAILS", "MEMO" ] return listeMotscles, dictDonnees
def Import_Donnees(self): """ Importe les champs de la base de données """ DB = GestionDB.DB() listeContacts = [] # Base personnes req = """ SELECT IDpersonne, civilite, nom, prenom, date_naiss, adresse_resid, cp_resid, ville_resid FROM personnes; """ DB.ExecuterReq(req) listePersonnes = DB.ResultatReq() for personne in listePersonnes: IDpersonne = personne[0] civilite = personne[1] nom = personne[2] prenom = personne[3] date_naiss = personne[4] if date_naiss == None: date_naiss = "" if date_naiss != "": date_naiss = FonctionsPerso.DateEngFr(date_naiss) adresse_resid = personne[5] cp_resid = str(personne[6]) ville_resid = personne[7] # Adaptation des données if civilite == "Mr": civilite = "M." if civilite == "Mme": civilite = "Mme" if civilite == "Melle": civilite = "Melle" # Base coordonnées req = """ SELECT categorie, texte FROM coordonnees WHERE IDpersonne=%d; """ % IDpersonne DB.ExecuterReq(req) listeCoords = DB.ResultatReq() emails = [] fixes = [] fax = "" mobile = "" for categorie, texte in listeCoords: if categorie == "Mobile": mobile = texte if categorie == "Fixe": fixes.append(texte) if categorie == "Email": emails.append(texte) if categorie == "Fax": fax = texte # Création de la liste listeContacts.append([ IDpersonne, civilite, nom, prenom, date_naiss, adresse_resid, cp_resid, ville_resid, emails, fixes, fax, mobile ]) DB.Close() return listeContacts
def Import_Donnees(self): """ Importe les champs de la base de données """ IDcontrat = self.IDcontrat DB = GestionDB.DB() # Import des données enregistrées dans la base req = """ SELECT IDvaleur, code, valeur FROM due_valeurs; """ DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() # Intégration des données à la liste des champs index = 0 global champs for IDvaleur, code, valeur in listeDonnees : index = 0 for champ in champs : if champ[0] == code : champs[index][4] = valeur index += 1 # Base Contrats req = """ SELECT IDpersonne, IDclassification, IDtype, valeur_point, date_debut, date_fin, essai FROM contrats WHERE IDcontrat=%d; """ % IDcontrat DB.ExecuterReq(req) listeContrat = DB.ResultatReq()[0] IDpersonne = listeContrat[0] IDclassification = listeContrat[1] IDtype = listeContrat[2] IDvaleur_point = listeContrat[3] date_debut = listeContrat[4] if date_debut != "" : date_debut = FonctionsPerso.DateEngFr(date_debut) date_fin = listeContrat[5] if date_fin != "" : date_fin = FonctionsPerso.DateEngFr(date_fin) date_debut = date_debut.replace("/", "") date_fin = date_fin.replace("/", "") essai = str(listeContrat[6]) # Base contrats_class req = """ SELECT nom FROM contrats_class WHERE IDclassification=%d; """ % IDclassification DB.ExecuterReq(req) listeClassification = DB.ResultatReq()[0] classification = listeClassification[0] # Base contrats_types req = """ SELECT nom, nom_abrege, duree_indeterminee FROM contrats_types WHERE IDtype=%d; """ % IDtype DB.ExecuterReq(req) listeType = DB.ResultatReq()[0] type = listeType[0] type_CDI = listeType[2] if type_CDI == "non" : type_contrat = _(u"Contrat à durée déterminée") else: type_contrat = "" #_(u"Contrat à durée indéterminée") # Base valeurs_point req = """ SELECT valeur, date_debut FROM valeurs_point WHERE IDvaleur_point=%d; """ % IDvaleur_point DB.ExecuterReq(req) listeValeursPoint = DB.ResultatReq()[0] valeur_point = listeValeursPoint[0] # Base personnes req = """ SELECT civilite, nom, nom_jfille, prenom, date_naiss, cp_naiss, ville_naiss, nationalite, num_secu, adresse_resid, cp_resid, ville_resid, IDsituation, pays_naiss FROM personnes WHERE IDpersonne=%d; """ % IDpersonne DB.ExecuterReq(req) listePersonne = DB.ResultatReq()[0] civilite = listePersonne[0] nom = listePersonne[1] nom_jfille = listePersonne[2] prenom = listePersonne[3] date_naiss = listePersonne[4] if date_naiss == None : date_naiss = "" if date_naiss != "" : date_naiss = FonctionsPerso.DateEngFr(date_naiss) cp_naiss = listePersonne[5] if cp_naiss != "" and cp_naiss != None and cp_naiss != " " : cp_naiss = "%05d" % cp_naiss else: cp_naiss = "" ville_naiss = listePersonne[6] IDnationalite = listePersonne[7] num_secu = listePersonne[8] adresse_resid = listePersonne[9] cp_resid = listePersonne[10] if cp_resid != "" and cp_resid != None and cp_resid != " " : cp_resid = "%05d" % cp_resid else: cp_resid = "" ville_resid = listePersonne[11] IDsituation = listePersonne[12] IDpays_naiss = listePersonne[13] # Adaptation des données if civilite == "Mr" : civilite = "M." sexe = _(u"Masculin") nomNaiss = nom nomMarital = "" if civilite == "Mme" : civilite = "Mme" sexe = _(u"Féminin") nomNaiss = nom_jfille nomMarital = nom if civilite == "Melle" : civilite = "Melle" sexe = _(u"Féminin") nomNaiss = nom nomMarital = "" num_secu = num_secu.replace(" ", "") date_naiss = date_naiss.replace("/", "") depart_naiss = cp_naiss[:2] # Base coordonnées req = """ SELECT categorie, texte FROM coordonnees WHERE IDpersonne=%d AND (categorie='Fixe' or categorie='Mobile'); """ % IDpersonne DB.ExecuterReq(req) listeCoords = DB.ResultatReq() if len(listeCoords) == 0 : telephone = "Aucun" else : listeCoords.sort() telephone = listeCoords[0][1] # Nationalité req = """ SELECT nationalite FROM pays WHERE IDpays=%d; """ % IDnationalite DB.ExecuterReq(req) listePays = DB.ResultatReq() nationalite = listePays[0][0] if nationalite == _(u"Française") : nationalite1 = _(u"Française") nationalite2 = "" else: nationalite1 = _(u"Etrangère") nationalite2 = nationalite # Pays de naissance req = """ SELECT nom FROM pays WHERE IDpays=%d; """ % IDpays_naiss DB.ExecuterReq(req) listePays = DB.ResultatReq() pays_naiss = listePays[0][0] # Intégration des données à la liste des valeurs listeDonnees = {} listeDonnees["CIVILITE_SALARIE"] = civilite listeDonnees["NOMNAISS_SALARIE"] = nomNaiss listeDonnees["NOMMARITAL_SALARIE"] = nomMarital listeDonnees["PRENOM_SALARIE"] = prenom listeDonnees["SEXE_SALARIE"] = sexe listeDonnees["NUMSECU_SALARIE"] = num_secu listeDonnees["DATENAISS_SALARIE"] = date_naiss listeDonnees["DEPARTNAISS_SALARIE"] = depart_naiss listeDonnees["VILLENAISS_SALARIE"] = ville_naiss listeDonnees["PAYSNAISS_SALARIE"] = pays_naiss listeDonnees["NATIONALITE1_SALARIE"] = nationalite1 listeDonnees["NATIONALITE2_SALARIE"] = nationalite2 listeDonnees["ADRESSE_SALARIE"] = adresse_resid listeDonnees["CP_SALARIE"] = cp_resid listeDonnees["VILLE_SALARIE"] = ville_resid listeDonnees["DATE_EMBAUCHE"] = date_debut listeDonnees["PERIODE_ESSAI"] = essai listeDonnees["DATE_FIN_CONTRAT"] = date_fin listeDonnees["CONTRAT_TYPE"] = type_contrat index = 0 for code, valeur in listeDonnees.items() : index = 0 for champ in champs : if champ[0] == code : champs[index][4] = valeur index += 1 DB.Close()
def OnSelectPersonne(self, IDpersonne=0): """ Met à jour le cadre résumé identité """ # Récupération des données de la table Personnes DB = GestionDB.DB() req = """SELECT civilite, nom, prenom, date_naiss, ville_naiss, adresse_resid, cp_resid, ville_resid FROM personnes WHERE IDpersonne=%d; """ % IDpersonne DB.ExecuterReq(req) donnees = DB.ResultatReq()[0] DB.Close() civilite = donnees[0] if donnees[1] == "" or donnees[1] == None: nom = "?" else: nom = donnees[1] if donnees[2] == "" or donnees[2] == None: prenom = "?" else: prenom = donnees[2] if donnees[3] == "" or donnees[3] == None: date_naiss = "?" else: date_naiss = FonctionsPerso.DateEngFr(donnees[3]) if donnees[4] == "" or donnees[4] == None: ville_naiss = u"?" else: ville_naiss = donnees[4] if donnees[5] == "" or donnees[5] == None: adresse_resid = u"?" else: adresse_resid = donnees[5] if donnees[6] == "" or donnees[6] == None: cp_resid = u"?" else: cp_resid = str(donnees[6]) if donnees[7] == "" or donnees[7] == None: ville_resid = u"?" else: ville_resid = donnees[7] age = self.RetourneAge(donnees[3]) # Récupération des données de la table Coordonnées DB = GestionDB.DB() req = """SELECT categorie, texte, intitule FROM coordonnees WHERE IDpersonne=%d; """ % IDpersonne DB.ExecuterReq(req) listeCoords = DB.ResultatReq() DB.Close() if len(listeCoords) != 0: texteCoords = _(u"Tél : ") for coord in listeCoords: categorie = coord[0] texte = coord[1] intitule = coord[2] texteCoords += texte + " | " texteCoords = texteCoords[:-3] else: texteCoords = _(u"Aucune coordonnée") # Création des lignes ligne1 = nom + " " + prenom if civilite == "Mr": ligne2 = _(u"Né le ") else: ligne2 = _(u"Née le ") ligne2 += date_naiss + u" à " + ville_naiss + ", " + age ligne3 = _( u"Résidant ") + adresse_resid + " " + cp_resid + " " + ville_resid if civilite == "Mr": img = "Homme.png" elif civilite == "Mme" or civilite == "Melle": img = "Femme.png" else: img = "Personne.png" nomFichier = "Images/128x128/" + img self.bitmap_photo.SetPhoto(IDpersonne, nomFichier, taillePhoto=(128, 128)) # Recherche des contrats DB = GestionDB.DB() req = """SELECT contrats_class.nom, contrats.date_debut, contrats.date_fin, contrats.date_rupture, contrats_types.duree_indeterminee FROM contrats INNER JOIN contrats_class ON contrats.IDclassification = contrats_class.IDclassification INNER JOIN contrats_types ON contrats.IDtype = contrats_types.IDtype WHERE contrats.IDpersonne=%d ORDER BY contrats.date_fin;""" % IDpersonne DB.ExecuterReq(req) listeContrats = DB.ResultatReq() DB.Close() contratEnCours = False if len(listeContrats) == 0: # Aucun contrat existant etatContrat = _(u"Aucun contrat à ce jour.") detailContrat = u"" else: # Analyse des contrats dateDuJour = str(datetime.date.today()) for classification, date_debut, date_fin, date_rupture, type in listeContrats: # Contrats à durée déterminée if type == "non": if date_debut <= dateDuJour <= date_fin: etatContrat = _(u">> Contrat en cours :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut) + " au " + FonctionsPerso.DateEngFr( date_fin) + "." contratEnCours = True break elif date_fin < dateDuJour: etatContrat = _( u"Aucun contrat en cours. Dernier contrat :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut) + " au " + FonctionsPerso.DateEngFr( date_fin) + "." elif date_debut > dateDuJour: etatContrat = _( u"Aucun contrat en cours. Prochain contrat :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut) + " au " + FonctionsPerso.DateEngFr( date_fin) + "." else: # Contrats à durée indéterminée if date_rupture != "": if date_debut <= dateDuJour <= date_rupture: etatContrat = _(u">> Contrat en cours :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut ) + " au " + FonctionsPerso.DateEngFr( date_rupture) + " (rupture)." contratEnCours = True break elif date_rupture < dateDuJour: etatContrat = _( u"Aucun contrat en cours. Dernier contrat :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut ) + " au " + FonctionsPerso.DateEngFr( date_rupture) + " (rupture)." elif date_debut > dateDuJour: etatContrat = _( u"Aucun contrat en cours. Prochain contrat :") detailContrat = classification + " du " + FonctionsPerso.DateEngFr( date_debut ) + " au " + FonctionsPerso.DateEngFr( date_rupture) + " (rupture)." else: if date_debut <= dateDuJour: etatContrat = _(u">> Contrat en cours :") detailContrat = classification + _( u" depuis le ") + FonctionsPerso.DateEngFr( date_debut) + _(u" (durée ind.).") contratEnCours = True break elif date_debut > dateDuJour: etatContrat = _( u"Aucun contrat en cours. Prochain contrat :") detailContrat = classification + _( u" à partir du ") + FonctionsPerso.DateEngFr( date_debut) + _(u" (durée ind.).") # Met dans les controles self.resume_L1.SetLabel(ligne1) self.resume_L2.SetLabel(ligne2) self.resume_L3.SetLabel(ligne3) self.resume_L4.SetLabel(texteCoords) self.resume_L5.SetLabel(etatContrat) self.resume_L6.SetLabel(detailContrat) if contratEnCours == True: self.resume_L5.SetForegroundColour('Red') else: self.resume_L5.SetForegroundColour('Black') self.Refresh()