This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
L3GestionParking/src/c/Borne.py

228 lines
7.9 KiB
Python
Raw Normal View History

2015-01-12 15:49:41 +00:00
from PyQt4 import QtGui
2015-01-12 15:06:44 +00:00
from src.c.Teleporteur import Teleporteur
2015-01-13 23:39:12 +00:00
from src.m.Parking import Placement
2015-01-12 15:06:44 +00:00
from src.m.Client import Client
2015-02-04 13:20:39 +00:00
from src.m.Service import Service, TypeService
2015-01-13 23:39:12 +00:00
from src.m.Client import TypeAbonnement
2015-01-12 15:06:44 +00:00
from src.v.Camera import Camera
from src.v.MyQWidget import MyQWidget
from src.v.Ui_Borne import Ui_Borne
2015-01-12 15:49:41 +00:00
2015-01-12 15:06:44 +00:00
__author__ = 'sidya'
class Borne:
"""
2015-02-04 13:20:39 +00:00
Controleur de la vue des bornes permettant l'accès au parking
2015-01-12 15:06:44 +00:00
"""
2015-02-04 13:20:39 +00:00
bornes = []
@staticmethod
def MajBornes():
pass
2015-01-12 15:49:41 +00:00
2015-01-12 15:06:44 +00:00
def __init__(self, main, parking):
self.__parking = parking
self.__main = main
self.__main.activity("Affichage Borne", self.__main.lvl.INFO)
self.__w = MyQWidget(self.__main)
self.__ui = Ui_Borne()
self.__ui.setupUi(self.__w)
# connect
self.__ui.btn_quitter.clicked.connect(self.quitter)
self.__ui.btn_Voiture.clicked.connect(self.newVoiture)
self.__ui.btn_annuler.clicked.connect(self.nonVoiture)
self.__ui.btn_validerID.clicked.connect(self.identification)
self.__ui.btn_valider_abo.clicked.connect(self.abo)
self.__ui.btn_garer.clicked.connect(self.garer)
self.__ui.btn_recuperer.clicked.connect(self.recuperer)
2015-01-12 15:49:41 +00:00
# Validator
2015-01-12 15:06:44 +00:00
2015-02-04 13:20:39 +00:00
self.__ui.label_aff.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.__ui.nomParking.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
2015-01-12 15:06:44 +00:00
self.nonVoiture()
self.showWindow()
2015-02-04 13:20:39 +00:00
self.__ui.nomParking.setText("Borne " + str(len(self.bornes)+1) + " - Parking : " +parking.nom)
def blockAll(self):
self.__ui.box_abo.setDisabled(True)
self.__ui.box_garer.setDisabled(True)
self.__ui.box_id.setDisabled(True)
self.__ui.box_recup.setDisabled(True)
2015-01-12 15:06:44 +00:00
2015-02-04 13:20:39 +00:00
self.__ui.btn_Voiture.setDisabled(True)
self.__ui.btn_annuler.setDisabled(True)
self.__ui.btn_desabo.setDisabled(True)
2015-01-12 15:06:44 +00:00
def nonVoiture(self):
"""
Met en etat initial de départ sans voiture
:return:
"""
2015-02-04 13:20:39 +00:00
self.__ui.label_aff.setText("Dream park")
2015-01-12 15:06:44 +00:00
self.__c = None
self.__ui.box_abo.setDisabled(True)
self.__ui.box_garer.setDisabled(True)
self.__ui.box_id.setDisabled(True)
self.__ui.box_recup.setDisabled(False)
2015-02-04 13:20:39 +00:00
self.__ui.box_service.setDisabled(True)
self.__ui.btn_Voiture.setDisabled(False)
self.__ui.btn_desabo.setDisabled(True)
self.__ui.nomLineEdit.setText("")
self.__ui.prenomLineEdit.setText("")
self.__ui.numeroCarteLineEdit.setText("")
self.__ui.checkBox.setChecked(False)
self.__ui.lineEdit_id.setText("")
self.__ui.numeroTicketLineEdit.setText("")
self.__ui.labIdClient.setText("Non identifier")
2015-01-12 15:06:44 +00:00
def newVoiture(self):
"""
Meten etat d'arrive de voiture detecte par la camera
:return:
"""
2015-02-04 13:20:39 +00:00
self.__ui.btn_Voiture.setDisabled(True)
self.__v_actuel = Camera.donnerVoiture()
2015-01-12 15:06:44 +00:00
self.__ui.box_abo.setDisabled(False)
self.__ui.box_garer.setDisabled(False)
self.__ui.box_id.setDisabled(False)
self.__ui.box_recup.setDisabled(True)
self.__ui.label_aff.setText("Bienvenue !")
def identification(self):
"""
Gestion de l'identification a partir d'un abo a partir de son id (lineedit)
:return:
"""
2015-02-04 13:20:39 +00:00
try :
self.__c = Client.get(self.__ui.lineEdit_id.text())
2015-01-12 15:49:41 +00:00
self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
2015-02-04 13:20:39 +00:00
self.__ui.labIdClient.setText("Vous étes identifier")
2015-01-12 15:06:44 +00:00
self.__ui.box_id.setDisabled(True)
2015-02-04 13:20:39 +00:00
self.__ui.box_service.setDisabled(False)
self.__ui.btn_desabo.setDisabled(False)
except IndexError :
2015-01-12 15:06:44 +00:00
self.__ui.label_aff.setText("Echec identification")
self.__ui.labIdClient.setText("Non identifier")
def abo(self):
"""
2015-02-04 13:20:39 +00:00
Gestion validation formulaire d'abonnement
2015-01-12 15:06:44 +00:00
:return:
"""
2015-01-12 15:49:41 +00:00
if self.__c != None:
2015-01-12 15:06:44 +00:00
self.__c.maj(self.__ui.nomLineEdit,
2015-01-12 15:49:41 +00:00
self.__ui.prenomLineEdit,
"",
TypeAbonnement.SUPER_ABONNE)
2015-01-12 15:06:44 +00:00
self.__ui.label_aff.setText("Mise a jour de votre abonnement effectué")
else:
2015-01-13 23:39:12 +00:00
if self.__ui.checkBox.isChecked():
self.__c = Client(None,
2015-02-04 13:20:39 +00:00
str(self.__ui.nomLineEdit.text()),
str(self.__ui.prenomLineEdit.text()),
2015-01-12 15:06:44 +00:00
"",
TypeAbonnement.SUPER_ABONNE)
2015-01-12 15:49:41 +00:00
else:
2015-01-13 23:39:12 +00:00
self.__c = Client(None,
2015-02-04 13:20:39 +00:00
str(self.__ui.nomLineEdit.text()),
str(self.__ui.prenomLineEdit.text()),
2015-01-12 15:06:44 +00:00
"",
TypeAbonnement.ABONNE)
2015-02-04 13:20:39 +00:00
print(self.__c)
2015-01-12 15:06:44 +00:00
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
self.__ui.lineEdit_id.setText(self.__c.id)
self.identification()
def garer(self):
"""
Gestion de la validation de garer son vehicule
:return:
"""
2015-02-04 13:20:39 +00:00
id = None
2015-01-12 15:06:44 +00:00
if self.__c is None:
2015-02-04 13:20:39 +00:00
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None:
id = Teleporteur.teleporterVoiture(self.__v_actuel, p)
2015-01-12 15:06:44 +00:00
else:
2015-01-12 15:49:41 +00:00
if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE:
2015-02-04 13:20:39 +00:00
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None :
id = Teleporteur.teleporterVoiture(self.__v_actuel, p)
if self.__ui.checkBox_Livraison_2.isChecked():
Service(None, self.__c, p, TypeService.LIVRAISON)
if self.__ui.checkBox_Entretien_2.isChecked():
Service(None, self.__c, p, TypeService.ENTRETIEN)
if self.__ui.checkBox_Maintenance_2.isChecked():
Service(None, self.__c, p, TypeService.MAINTENANCE)
2015-01-12 15:06:44 +00:00
else:
2015-02-04 13:20:39 +00:00
Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel)
if id is not None:
self.nonVoiture()
self.ticketDepot(id)
else:
self.__ui.label_aff.setText("Aucune Place Disponible Pour Votre Véhicule. Devenez Super Abonné!")
2015-01-12 15:06:44 +00:00
def recuperer(self):
"""
Essaie de recuperer une voiture avec le numero de ticket (lineedit)
:return:
"""
2015-01-13 23:39:12 +00:00
try :
p = Placement.get(self.__ui.numeroTicketLineEdit.text())
2015-01-12 15:06:44 +00:00
Teleporteur.teleporterVersSortie(p)
2015-02-04 13:20:39 +00:00
self.nonVoiture()
self.ticketDepot(id)
2015-01-13 23:39:12 +00:00
except IndexError:
self.__ui.label_aff.setText("Mauvais numero de ticket")
2015-02-04 13:20:39 +00:00
def ticketDepot(self, id):
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Votre numero ticket : " + str(id)
)
2015-01-12 15:06:44 +00:00
2015-02-04 13:20:39 +00:00
def ticketRetrait(self):
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Merci de votre confiance! Bonne journée !"
)
2015-01-12 15:06:44 +00:00
def showWindow(self):
"""
Gestion affichage de la vue borne
:return:
"""
self.__w.show()
self.__child = None # supprime l'eventuel widget enfant
self.__w.focusWidget() # reprend le focus sur la fenetre
def quitter(self):
"""
Gestion de sortie de la vue borne
:return:
"""
self.__main.showWindow()
2015-02-04 13:20:39 +00:00
2015-01-12 15:06:44 +00:00
def error(self):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self.__w,
"Erreur ...",
"Une erreur est survenue ...")
self.__w.hide()
self.__main.showWindow()