1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#############################################################################
# Gestionnaire de transaction #
# Créé par: Pascal St-louis #
# En date du: 2014-01-14 #
#---------------------------------------------------------------------------#
# Module : #
# tkinter #
# os #
# time #
#############################################################################
#---Importation des modules
try:
from tkinter import *
from tkinter.ttk import *
import os, time
except ImportError as error:
print("Impossible de charger le module: ", error)
print("Sortie forcé du systeme")
try:
os._exit(0)
except:
print("Systeme bloqué, quitter manuellement")
#---Variable
titre = "GesTransac"
screenX = 200
screenY = 300
nomfichier1 = "relever.txt"
nomfichier2 = "fournisseur.txt"
#---Fonction
def listCombo(choix, liste):
"""Génère une liste déroulante"""
box = Combobox(textvariable = choix, values = liste, state = "readonly")
return box
def valider():
"""Format les chaines de caractère dans les bon standars puis sauvegarde
dans une fichier"""
date = time.strftime("%Y-%m-%d") #date du jour
chaine1 = saisie.get() #formatage du nombre monaitère
if chaine1[-1] != "$":
chaine1 = chaine1 + "$"
ok = False
for signe in chaine1:
if signe == ".":
ok = True
if ok == False:
chaineB = chaine1[:-1]
chaine1 = chaineB + ".00$"
chaine3 = saisie3.get(1.0, END) #Formatage du champs de commantère
chaine3 = chaine3.strip()
chaine3 = chaine3.lower()
chaine3 = chaine3.capitalize()
texte = date + " " + select.get() + " " + chaine1 + " " + saisie2.get() + " " + chaine3 + "\n"
with open(nomfichier1, "a") as fichier:
fichier.write(texte)
def erase():
"""Efface un contenu"""
saisie.delete(0, END)
saisie2.delete(0, END)
saisie3.delete(1.0, END)
def consulter(fichier):
"""Ouvre un programme"""
os.system(fichier)
def lirefichier():
"""Lit un fichier et retourne son contenu"""
with open(nomfichier2, "r") as fichier:
contenu = fichier.read()
return contenu
#---fenetre principal
fen1 = Tk()
fen1.title(titre)
#centrage et dimensionnement de la fenetre
fen1.geometry("%dx%d+%d+%d" % (screenX, screenY, fen1.winfo_screenwidth()/2 -
(screenX/2), fen1.winfo_screenheight()/2 - (
screenY/2)))
#Placement des items dans la fenêtre
Label(fen1, text="Fournisseur").place(x=0, y=0)
select = StringVar()
listCombo(select, lirefichier()).place(x=0, y=20)
Button(fen1, text="ajout", width=5, command=lambda: consulter(nomfichier2)).place(x=145, y=17)
Label(fen1, text="Montant").place(x=0, y=50)
saisie = Entry(fen1, width=23)
saisie.place(x=0, y=70)
Label(fen1, text="# de confimation").place(x=0, y=100)
saisie2 = Entry(fen1, width=23)
saisie2.place(x=0, y=120)
Label(fen1, text="Commentaire").place(x=0, y=150)
saisie3 = Text(fen1, width=18, height=6)
saisie3.place(x=0, y=170)
Button(fen1, text="Valider", width=7, command=valider).place(x=0, y=270)
Button(fen1, text="Effacer", width=7, command=erase).place(x=52, y=270)
Button(fen1, text="Quitter", width=7, command=fen1.destroy).place(x=104, y=270)
Button(fen1, text="Voir", width=5, command=lambda: consulter(nomfichier1)).place(x=156, y=270)
fen1.mainloop()
#---Sortie du systeme
print("Sortie du systeme")
fen1.quit()
os._exit(0) |
Partager