Adding little frame for the sales receipt and fix some typos
This commit is contained in:
parent
b7f9c66309
commit
897c4dd9d6
1 changed files with 34 additions and 6 deletions
40
main.py
40
main.py
|
@ -5,6 +5,8 @@ from tkinter.messagebox import showerror, showinfo, showwarning, askyesno
|
||||||
from tkinter.filedialog import askopenfile
|
from tkinter.filedialog import askopenfile
|
||||||
# Regex
|
# Regex
|
||||||
from re import sub
|
from re import sub
|
||||||
|
# Date
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
# Import des fichiers pour gérer la base de donnée
|
# Import des fichiers pour gérer la base de donnée
|
||||||
from users import Utilisateurs
|
from users import Utilisateurs
|
||||||
|
@ -22,6 +24,7 @@ class GesMag:
|
||||||
self.f = Frame(self.parent) # `Frame` affiché à l'écran
|
self.f = Frame(self.parent) # `Frame` affiché à l'écran
|
||||||
self.imagesStock = [] # liste qui va contenir nos images pour l'affichage du stock
|
self.imagesStock = [] # liste qui va contenir nos images pour l'affichage du stock
|
||||||
self.dossierImage = PhotoImage(file = "img/dossier.gif") # image pour l'icone de selection
|
self.dossierImage = PhotoImage(file = "img/dossier.gif") # image pour l'icone de selection
|
||||||
|
self.panier = [] # liste des éléments "dans le panier"
|
||||||
|
|
||||||
def demarrer(self) -> None:
|
def demarrer(self) -> None:
|
||||||
"""Lance le programme GesMag."""
|
"""Lance le programme GesMag."""
|
||||||
|
@ -195,7 +198,7 @@ class GesMag:
|
||||||
"""Affiche l'interface du caissier."""
|
"""Affiche l'interface du caissier."""
|
||||||
caissier = Utilisateurs().recuperationUtilisateur(id=id)
|
caissier = Utilisateurs().recuperationUtilisateur(id=id)
|
||||||
self.parent.title(f"Caissier {caissier['nom']} {caissier['prenom']}")
|
self.parent.title(f"Caissier {caissier['nom']} {caissier['prenom']}")
|
||||||
self.dimensionsFenetre(self.parent, 940, 670)
|
self.dimensionsFenetre(self.parent, 940, 690)
|
||||||
|
|
||||||
# Suppresssion de la dernière Frame
|
# Suppresssion de la dernière Frame
|
||||||
self.f.destroy()
|
self.f.destroy()
|
||||||
|
@ -217,6 +220,9 @@ class GesMag:
|
||||||
boucheriePoissonnerieVerif = IntVar(stock)
|
boucheriePoissonnerieVerif = IntVar(stock)
|
||||||
entretienVerif = IntVar(stock)
|
entretienVerif = IntVar(stock)
|
||||||
|
|
||||||
|
def __formatPrix(prix: str) -> str:
|
||||||
|
return f"{float(prix):.2f} €".replace('.', ',')
|
||||||
|
|
||||||
def __affichageTableau(parent: Frame, page: int = 1):
|
def __affichageTableau(parent: Frame, page: int = 1):
|
||||||
"""Fonction qui va actualiser le tableau avec une page donnée (par défaut affiche la première page)."""
|
"""Fonction qui va actualiser le tableau avec une page donnée (par défaut affiche la première page)."""
|
||||||
# On supprime et refais la frame qui va stocker notre tableau
|
# On supprime et refais la frame qui va stocker notre tableau
|
||||||
|
@ -290,7 +296,7 @@ class GesMag:
|
||||||
Label(parent, text=element["type"].capitalize()).grid(column=2, row=i, padx=ecart)
|
Label(parent, text=element["type"].capitalize()).grid(column=2, row=i, padx=ecart)
|
||||||
Label(parent, text=element["nom"].capitalize()).grid(column=3, row=i, padx=ecart)
|
Label(parent, text=element["nom"].capitalize()).grid(column=3, row=i, padx=ecart)
|
||||||
Label(parent, text=element["quantite"]).grid(column=4, row=i, padx=ecart)
|
Label(parent, text=element["quantite"]).grid(column=4, row=i, padx=ecart)
|
||||||
Label(parent, text=f"{float(element['prix']):.2f} €".replace('.', ',')).grid(column=5, row=i, padx=ecart)
|
Label(parent, text=__formatPrix(element["prix"])).grid(column=5, row=i, padx=ecart)
|
||||||
curseur += 1
|
curseur += 1
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
@ -313,9 +319,25 @@ class GesMag:
|
||||||
__affichageTableau(tableau) # affichage du tableau
|
__affichageTableau(tableau) # affichage du tableau
|
||||||
|
|
||||||
# Partie affichage du ticket de caisse
|
# Partie affichage du ticket de caisse
|
||||||
|
ecart = 10
|
||||||
ticket = LabelFrame(self.f, text="Ticket de caisse")
|
ticket = LabelFrame(self.f, text="Ticket de caisse")
|
||||||
ticket.grid(column=1, row=1, sticky='n', padx=5)
|
ticket.grid(column=1, row=1, sticky='n', padx=5)
|
||||||
Label(ticket, text="TODO").grid()
|
|
||||||
|
Label(ticket, text=f"Date de vente : {date.today().strftime('%Y/%m/%d')}").grid(column=0, row=0, pady=ecart)
|
||||||
|
|
||||||
|
Label(ticket, text=f"Éléments achetés ({len(self.panier)}) :").grid(column=0, row=1, pady=ecart)
|
||||||
|
i = 2
|
||||||
|
prixTotal = 0
|
||||||
|
for element in self.panier:
|
||||||
|
Label(ticket, text=element).grid(column=0, row=i)
|
||||||
|
prixTotal += 0 # ajout du prix
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
Label(ticket, text=f"Prix total : {__formatPrix(prixTotal)}").grid(column=0, row=i, pady=ecart)
|
||||||
|
|
||||||
|
Button(ticket, text="Valider le\nticket de caisse", font=self.font).grid(column=0, row=i + 1, pady=ecart)
|
||||||
|
|
||||||
|
#.grid(column=1, row=1, sticky='s')
|
||||||
|
|
||||||
# Partie ajout élément au stock
|
# Partie ajout élément au stock
|
||||||
def __ajouterElementStock():
|
def __ajouterElementStock():
|
||||||
|
@ -443,11 +465,11 @@ class GesMag:
|
||||||
Button(enfant, text="Vider les champs", command=___viderChamps).grid(column=0, row=8, columnspan=3)
|
Button(enfant, text="Vider les champs", command=___viderChamps).grid(column=0, row=8, columnspan=3)
|
||||||
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
||||||
|
|
||||||
Button(self.f, text="Ajouter un élément\nau stock", font=self.font, command=__ajouterElementStock).grid(column=1, row=1, sticky='s')
|
Button(self.f, text="Ajouter un élément\nau stock", font=self.font, command=__ajouterElementStock).grid(column=1, row=2)
|
||||||
|
|
||||||
# Boutton pour passer en mode manager si la personne est un manager
|
# Boutton pour passer en mode manager si la personne est un manager
|
||||||
if caissier["metier"] == 0:
|
if caissier["metier"] == 0:
|
||||||
Button(self.f, text="Passer en mode Manager", font=self.font, command=lambda: self._interfaceManager(id)).grid()
|
Button(self.f, text="Passer en mode Manager", font=self.font, command=lambda: self._interfaceManager(id)).grid(column=0, row=2)
|
||||||
|
|
||||||
|
|
||||||
def _interfaceManager(self, id: int):
|
def _interfaceManager(self, id: int):
|
||||||
|
@ -645,7 +667,13 @@ class GesMag:
|
||||||
utilisateur["metier"] = "Manager" if utilisateur["metier"] == 0 else "Caissier"
|
utilisateur["metier"] = "Manager" if utilisateur["metier"] == 0 else "Caissier"
|
||||||
del utilisateur["passe"] # le manager ne doit pas connaître le mot de passe de l'utilisateur
|
del utilisateur["passe"] # le manager ne doit pas connaître le mot de passe de l'utilisateur
|
||||||
for idx, cle in enumerate(utilisateur):
|
for idx, cle in enumerate(utilisateur):
|
||||||
Label(frameInfos, text=f"{cle.capitalize()} :").grid(column=0, row=idx + 1, sticky='e')
|
if cle == "stats_journaliere":
|
||||||
|
cleAffichage = cle.replace('_', ' ').title() # remplace le `_` en espace et met une majuscule à tous les mots
|
||||||
|
else:
|
||||||
|
cleAffichage = cle.capitalize()
|
||||||
|
if cle == "date":
|
||||||
|
continue
|
||||||
|
Label(frameInfos, text=f"{cleAffichage} :").grid(column=0, row=idx + 1, sticky='e')
|
||||||
Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w')
|
Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w')
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in a new issue