This commit is contained in:
sidya82
2015-02-05 01:21:43 +01:00
parent 2a1099c450
commit b7b6a84643
22 changed files with 460 additions and 316 deletions

View File

@@ -1,4 +1,4 @@
from PyQt4 import QtGui
from PyQt4 import QtGui, QtCore
from src.c.Teleporteur import Teleporteur
from src.m.Parking import Placement
@@ -18,9 +18,9 @@ class Borne:
Controleur de la vue des bornes permettant l'accès au parking
"""
bornes = []
@staticmethod
def MajBornes():
print(Borne.bornes)
for b in Borne.bornes:
b.MajBorne()
@@ -28,9 +28,10 @@ class Borne:
self.__ui.lcdNumber.display(self.__parking.nbPlacesLibresParking)
def __init__(self, main, parking):
self.__nomBorne = "Borne " + str(len(self.bornes) + 1)
self.__parking = parking
self.__main = main
self.__main.activity("Affichage Borne", self.__main.lvl.INFO)
self.__main.activity("Affichage " + self.__nomBorne, self.__main.lvl.INFO)
self.__w = MyQWidget(self.__main)
self.__ui = Ui_Borne()
@@ -48,14 +49,18 @@ class Borne:
# Validator
validatorText = QtGui.QRegExpValidator(QtCore.QRegExp('^([a-zA-Z\'àâéèêôùûçñãõÀÂÉÈÔÙÛÑÃÕÇ\s-]{2,30})$'))
validatorCB = QtGui.QRegExpValidator(QtCore.QRegExp('^([0-9]*)$'))
self.__ui.nomLineEdit.setValidator(validatorText)
self.__ui.prenomLineEdit.setValidator(validatorText)
self.__ui.lieuLineEdit_2.setValidator(validatorText)
self.__ui.numeroCarteLineEdit.setValidator(validatorCB)
self.__ui.label_aff.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.__ui.nomParking.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.nonVoiture()
self.showWindow()
self.__ui.nomParking.setText("Borne " + str(len(self.bornes)+1) + " - Parking : " +parking.nom)
self.__ui.nomParking.setText(self.__nomBorne + " - Parking : " + parking.nom)
Borne.bornes.append(self)
Borne.MajBornes()
@@ -75,6 +80,7 @@ class Borne:
Met en etat initial de départ sans voiture
:return:
"""
self.__main.activity(self.__nomBorne + " : En Attente d'une voiture", self.__main.lvl.INFO)
self.__ui.label_aff.setText("Dream park")
self.__c = None
self.__ui.box_abo.setDisabled(True)
@@ -101,6 +107,7 @@ class Borne:
"""
self.__ui.btn_Voiture.setDisabled(True)
self.__v_actuel = Camera.donnerVoiture()
self.__main.activity(self.__nomBorne + " : Arrivee : " + str(self.__v_actuel), self.__main.lvl.INFO)
self.__ui.box_abo.setDisabled(False)
self.__ui.box_garer.setDisabled(False)
self.__ui.box_id.setDisabled(False)
@@ -113,16 +120,24 @@ class Borne:
Gestion de l'identification a partir d'un abo a partir de son id (lineedit)
:return:
"""
try :
try:
self.__c = Client(self.__ui.lineEdit_id.text())
self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
self.__ui.labIdClient.setText("Vous étes identifier")
self.__ui.box_id.setDisabled(True)
self.__ui.box_service.setDisabled(False)
self.__ui.btn_desabo.setDisabled(False)
except Exception :
self.__v_actuel.setClient(self.__c)
self.__main.activity(self.__nomBorne + " : Mise a jour : " + str(self.__v_actuel), self.__main.lvl.INFO)
self.__main.activity(self.__nomBorne + " : Identification : " + str(self.__c), self.__main.lvl.INFO)
except IndexError:
self.__ui.label_aff.setText("Echec identification")
self.__ui.labIdClient.setText("Non identifier")
self.__main.activity(self.__nomBorne + " : Identifiant Invalide", self.__main.lvl.INFO)
except Exception as e:
self.error("Une erreur est survenu lors de votre identification")
self.__main.activity(self.__nomBorne + " : Erreur lors de l'indentification " + str(e),
self.__main.lvl.FAIL)
def abo(self):
"""
@@ -135,6 +150,7 @@ class Borne:
"",
TypeAbonnement.SUPER_ABONNE)
self.__ui.label_aff.setText("Mise a jour de votre abonnement effectué")
self.__main.activity(self.__nomBorne + " : Mise à jour : " + str(self.__c), self.__main.lvl.INFO)
else:
if self.__ui.checkBox.isChecked():
self.__c = Client(None,
@@ -148,16 +164,18 @@ class Borne:
str(self.__ui.prenomLineEdit.text()),
"",
TypeAbonnement.ABONNE)
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
self.identification()
self.__main.activity(self.__nomBorne + " : Ajout : " + str(self.__c), self.__main.lvl.INFO)
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:
"""
id = None
placement = None
if self.__c is None:
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None:
@@ -165,21 +183,27 @@ class Borne:
else:
if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE:
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None :
if p is not None:
placement = Teleporteur.teleporterVoiture(self.__v_actuel, p)
if self.__ui.checkBox_Livraison_2.isChecked():
Service(None, self.__c, placement, TypeService.LIVRAISON)
s = Service(None, self.__c, placement, TypeService.LIVRAISON)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
if self.__ui.checkBox_Entretien_2.isChecked():
Service(None, self.__c, placement, TypeService.ENTRETIEN)
s = Service(None, self.__c, placement, TypeService.ENTRETIEN)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
if self.__ui.checkBox_Maintenance_2.isChecked():
Service(None, self.__c, placement, TypeService.MAINTENANCE)
s = Service(None, self.__c, placement, TypeService.MAINTENANCE)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
else:
placement = Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel, self.__parking)
if placement is not None:
self.nonVoiture()
self.ticketDepot(placement.id)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(placement), self.__main.lvl.INFO)
else:
self.__ui.label_aff.setText("Aucune Place Correspondante. Devenez Super Abonné!")
self.__main.activity(self.__nomBorne + " : Pas de place dispo pour " + str(self.__v_actuel),
self.__main.lvl.INFO)
def recuperer(self):
@@ -187,26 +211,58 @@ class Borne:
Essaie de recuperer une voiture avec le numero de ticket (lineedit)
:return:
"""
try :
p = Placement.get(self.__ui.numeroTicketLineEdit.text())
Teleporteur.teleporterVersSortie(p)
self.nonVoiture()
self.ticketDepot(id)
p = None
try:
p = Placement(self.__ui.numeroTicketLineEdit.text())
except IndexError:
self.__ui.label_aff.setText("Mauvais numero de ticket")
self.__main.activity(self.__nomBorne + " : Mauvais numero de ticket", self.__main.lvl.INFO)
try:
Teleporteur.teleporterVersSortie(p)
except Exception:
self.__ui.label_aff.setText("Voiture déjà recuperé")
self.__main.activity(self.__nomBorne + " : Recuperation déjà effectué : " + str(p), self.__main.lvl.INFO)
if p is not None:
self.nonVoiture()
self.ticketRetrait(p, Service.getAllServicePlacement(p))
self.__main.activity(self.__nomBorne + " : Recuperation : " + str(p), self.__main.lvl.INFO)
def ticketDepot(self, id):
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Votre numero ticket : " + str(id)
"Ticket",
"Votre numero ticket : " + str(id)
)
def ticketRetrait(self):
def ticketRetrait(self, placement, services):
if placement.voiture.client == "NULL":
prix = placement.place.typePlace.prix
s = "Prix : " + str(prix) + "" + \
"\nMerci de votre confiance! Bonne journée !"
else:
prix = placement.place.typePlace.prix - placement.place.typePlace.prix * 10 / 100
s = "Prix : " + str(placement.place.typePlace.prix) + "- 10% = " + \
str(prix) + ""
for service in services:
if service.typeService == TypeService.MAINTENANCE:
name = "Maintenance"
elif service.typeService == TypeService.ENTRETIEN:
name = "Entretien"
else:
name = "Autre Service"
if service.estRealiser():
s += "\nService : " + name + " + 2€"
else:
s += "\nNous n'avons pas pu réaliser le service" + name + "."
s += "\nVeuillez nous excuser de la gène ocassionée."
s += "Le Montant sera débiter automatiquement sur votre compte."
s += "\nMerci de votre confiance! Bonne journée !"
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Merci de votre confiance! Bonne journée !"
"Ticket",
str(s)
)
def showWindow(self):
"""
Gestion affichage de la vue borne
@@ -221,16 +277,16 @@ class Borne:
Gestion de sortie de la vue borne
:return:
"""
self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO)
self.__main.showWindow()
def error(self):
def error(self, msg):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self.__w,
QtGui.QMessageBox.warning(self._w,
"Erreur ...",
"Une erreur est survenue ...")
self.__w.hide()
self.__main.showWindow()
msg
)