コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
 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
コード例 #4
0
    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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
    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
コード例 #9
0
    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()
コード例 #10
0
    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()