This commit is contained in:
sidya82 2015-02-07 23:59:01 +01:00
parent b7b6a84643
commit e92819cbb7
25 changed files with 879 additions and 597 deletions

View File

@ -4,9 +4,6 @@ from src.c.Main import Main
__author__ = 'sidya' __author__ = 'sidya'
if __name__ == "__main__": if __name__ == "__main__":
# c = connexionBDD()
#c.initialisationBDD()
#c.seDeconnecter()
# lancement du controleur principal # lancement du controleur principal
main = Main() main = Main()

View File

@ -1,27 +0,0 @@
from src.v import Ui_Panneau, Ui_Borne, Camera
from src.m import Parking
__author__ = 'sidya'
class Acces:
"""
Controleur Acces
"""
def __init__(self):
self.__parking = Parking()
self.__camera = Camera()
self.__borne = Ui_Borne()
self.__panneau = Ui_Panneau()
def actionnerCamera(self):
return self.__camera.donnerVoiture()
def majPanneau(self):
self.__panneau.afficherNbPlaceDisponible()
def lancerProcedureEntree(self, client):
self.__borne.afficher("Inserer votre carte ou valider")

View File

@ -1,13 +1,12 @@
from PyQt4 import QtGui, QtCore from PyQt4 import QtGui, QtCore
from src.c.Teleporteur import Teleporteur from src.c.Teleporteur import Teleporteur
from src.m.Parking import Placement from src.m.Parking import Placement
from src.m.Client import Client from src.m.Abonnement import Client
from src.m.Abonnement import TypeAbonnement
from src.m.Service import Service, TypeService from src.m.Service import Service, TypeService
from src.m.Client import TypeAbonnement
from src.v.Camera import Camera from src.v.Camera import Camera
from src.v.MyQWidget import MyQWidget from src.v.MyQt import MyQWidget
from src.v.Ui_Borne import Ui_Borne from src.v.Ui_User import Ui_Borne
__author__ = 'sidya' __author__ = 'sidya'
@ -43,10 +42,10 @@ class Borne:
self.__ui.btn_annuler.clicked.connect(self.nonVoiture) self.__ui.btn_annuler.clicked.connect(self.nonVoiture)
self.__ui.btn_validerID.clicked.connect(self.identification) self.__ui.btn_validerID.clicked.connect(self.identification)
self.__ui.btn_valider_abo.clicked.connect(self.abo) self.__ui.btn_valider_abo.clicked.connect(self.abo)
self.__ui.btn_desabo.clicked.connect(self.desabo)
self.__ui.btn_garer.clicked.connect(self.garer) self.__ui.btn_garer.clicked.connect(self.garer)
self.__ui.btn_recuperer.clicked.connect(self.recuperer) self.__ui.btn_recuperer.clicked.connect(self.recuperer)
self.__ui.pushButton.clicked.connect(self.payer)
# Validator # Validator
validatorText = QtGui.QRegExpValidator(QtCore.QRegExp('^([a-zA-Z\'àâéèêôùûçñãõÀÂÉÈÔÙÛÑÃÕÇ\s-]{2,30})$')) validatorText = QtGui.QRegExpValidator(QtCore.QRegExp('^([a-zA-Z\'àâéèêôùûçñãõÀÂÉÈÔÙÛÑÃÕÇ\s-]{2,30})$'))
@ -90,6 +89,7 @@ class Borne:
self.__ui.box_service.setDisabled(True) self.__ui.box_service.setDisabled(True)
self.__ui.btn_Voiture.setDisabled(False) self.__ui.btn_Voiture.setDisabled(False)
self.__ui.btn_desabo.setDisabled(True) self.__ui.btn_desabo.setDisabled(True)
self.__ui.btn_quitter.setDisabled(False)
self.__ui.nomLineEdit.setText("") self.__ui.nomLineEdit.setText("")
self.__ui.prenomLineEdit.setText("") self.__ui.prenomLineEdit.setText("")
@ -98,6 +98,12 @@ class Borne:
self.__ui.lineEdit_id.setText("") self.__ui.lineEdit_id.setText("")
self.__ui.numeroTicketLineEdit.setText("") self.__ui.numeroTicketLineEdit.setText("")
self.__ui.labIdClient.setText("Non identifier") self.__ui.labIdClient.setText("Non identifier")
self.__ui.btn_valider_abo.setText("Valider")
self.__ui.checkBox_Maintenance_2.setChecked(False)
self.__ui.checkBox_Entretien_2.setChecked(False)
self.__ui.checkBox_Livraison_2.setChecked(False)
self.__ui.lieuLineEdit_2.setText("")
self.__ui.dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())
Borne.MajBornes() Borne.MajBornes()
def newVoiture(self): def newVoiture(self):
@ -113,6 +119,7 @@ class Borne:
self.__ui.box_id.setDisabled(False) self.__ui.box_id.setDisabled(False)
self.__ui.box_recup.setDisabled(True) self.__ui.box_recup.setDisabled(True)
self.__ui.label_aff.setText("Bienvenue !") self.__ui.label_aff.setText("Bienvenue !")
self.__ui.btn_quitter.setDisabled(True)
def identification(self): def identification(self):
@ -128,6 +135,10 @@ class Borne:
self.__ui.box_service.setDisabled(False) self.__ui.box_service.setDisabled(False)
self.__ui.btn_desabo.setDisabled(False) self.__ui.btn_desabo.setDisabled(False)
self.__v_actuel.setClient(self.__c) self.__v_actuel.setClient(self.__c)
self.__ui.nomLineEdit.setText(self.__c.nom)
self.__ui.prenomLineEdit.setText(self.__c.prenom)
self.__ui.numeroCarteLineEdit.setText(self.__c.cb)
self.__ui.btn_valider_abo.setText("Modifier")
self.__main.activity(self.__nomBorne + " : Mise a jour : " + str(self.__v_actuel), self.__main.lvl.INFO) 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) self.__main.activity(self.__nomBorne + " : Identification : " + str(self.__c), self.__main.lvl.INFO)
except IndexError: except IndexError:
@ -145,10 +156,16 @@ class Borne:
:return: :return:
""" """
if self.__c != None: if self.__c != None:
self.__c.maj(self.__ui.nomLineEdit, if self.__ui.checkBox.isChecked():
self.__ui.prenomLineEdit, self.__c.maj(str(self.__ui.nomLineEdit.text()),
"", str(self.__ui.prenomLineEdit.text()),
TypeAbonnement.SUPER_ABONNE) str(self.__ui.numeroCarteLineEdit.text()),
TypeAbonnement.SUPER_ABONNE)
else:
self.__c.maj(str(self.__ui.nomLineEdit.text()),
str(self.__ui.prenomLineEdit.text()),
str(self.__ui.numeroCarteLineEdit.text()),
TypeAbonnement.ABONNE)
self.__ui.label_aff.setText("Mise a jour de votre abonnement effectué") 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) self.__main.activity(self.__nomBorne + " : Mise à jour : " + str(self.__c), self.__main.lvl.INFO)
else: else:
@ -156,18 +173,31 @@ class Borne:
self.__c = Client(None, self.__c = Client(None,
str(self.__ui.nomLineEdit.text()), str(self.__ui.nomLineEdit.text()),
str(self.__ui.prenomLineEdit.text()), str(self.__ui.prenomLineEdit.text()),
"", str(self.__ui.numeroCarteLineEdit.text()),
TypeAbonnement.SUPER_ABONNE) TypeAbonnement.SUPER_ABONNE)
else: else:
self.__c = Client(None, self.__c = Client(None,
str(self.__ui.nomLineEdit.text()), str(self.__ui.nomLineEdit.text()),
str(self.__ui.prenomLineEdit.text()), str(self.__ui.prenomLineEdit.text()),
"", str(self.__ui.numeroCarteLineEdit.text()),
TypeAbonnement.ABONNE) TypeAbonnement.ABONNE)
self.identification()
self.__main.activity(self.__nomBorne + " : Ajout : " + str(self.__c), self.__main.lvl.INFO) 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.__ui.lineEdit_id.setText(self.__c.id)
self.identification()
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
def desabo(self):
self.__c.desabo()
self.__c = None
self.__ui.nomLineEdit.setText("")
self.__ui.prenomLineEdit.setText("")
self.__ui.numeroCarteLineEdit.setText("")
self.__ui.lineEdit_id.setText("")
self.__ui.checkBox.setChecked(False)
self.__ui.box_id.setDisabled(False)
self.__ui.box_service.setDisabled(True)
def garer(self): def garer(self):
@ -181,12 +211,23 @@ class Borne:
if p is not None: if p is not None:
placement = Teleporteur.teleporterVoiture(self.__v_actuel, p) placement = Teleporteur.teleporterVoiture(self.__v_actuel, p)
else: else:
if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE: p = self.__parking.recherchePlace(self.__v_actuel)
p = self.__parking.recherchePlace(self.__v_actuel) if p is not None:
if p is not None: placement = Teleporteur.teleporterVoiture(self.__v_actuel, p)
placement = Teleporteur.teleporterVoiture(self.__v_actuel, p)
# Si superAbo on cree une place sur mesure dans le cas ou acun est valide
if p is None and self.__c.abonnement == TypeAbonnement.SUPER_ABONNE:
placement = Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel, self.__parking)
p = placement.place
self.__main.activity(self.__nomBorne + " : Nouveau place SuperAbo : " + str(p), self.__main.lvl.INFO)
# Creation des service
if p is not None:
try :
if self.__ui.checkBox_Livraison_2.isChecked(): if self.__ui.checkBox_Livraison_2.isChecked():
s = Service(None, self.__c, placement, TypeService.LIVRAISON) s = Service(None, self.__c, placement, TypeService.LIVRAISON,
self.__ui.dateTimeEdit.dateTime().toPyDateTime().timestamp(),
self.__ui.lieuLineEdit_2.text())
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
if self.__ui.checkBox_Entretien_2.isChecked(): if self.__ui.checkBox_Entretien_2.isChecked():
s = Service(None, self.__c, placement, TypeService.ENTRETIEN) s = Service(None, self.__c, placement, TypeService.ENTRETIEN)
@ -194,12 +235,13 @@ class Borne:
if self.__ui.checkBox_Maintenance_2.isChecked(): if self.__ui.checkBox_Maintenance_2.isChecked():
s = 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) self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
else: except Exception :
placement = Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel, self.__parking) self.__main.activity(self.__nomBorne + " : Echec creation service : " + str(s), self.__main.lvl.FAIL)
self.error("Erreur lors de la creation des Services")
if placement is not None: if placement is not None:
self.nonVoiture() self.nonVoiture()
self.ticketDepot(placement.id)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(placement), self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Nouveau : " + str(placement), self.__main.lvl.INFO)
self.ticketDepot(placement.id)
else: else:
self.__ui.label_aff.setText("Aucune Place Correspondante. Devenez Super Abonné!") 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.activity(self.__nomBorne + " : Pas de place dispo pour " + str(self.__v_actuel),
@ -219,13 +261,31 @@ class Borne:
self.__main.activity(self.__nomBorne + " : Mauvais numero de ticket", self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Mauvais numero de ticket", self.__main.lvl.INFO)
try: try:
Teleporteur.teleporterVersSortie(p) Teleporteur.teleporterVersSortie(p)
except Exception: except Exception as e :
self.__ui.label_aff.setText("Voiture déjà recuperé") self.__ui.label_aff.setText("Voiture déjà recuperée")
self.__main.activity(self.__nomBorne + " : Recuperation déjà effectué : " + str(p), self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Recuperation déjà effectué : " + str(p), self.__main.lvl.INFO)
if p.place.estSuperAbo :
p.place.supprimer()
self.__main.activity(self.__nomBorne + " : Suppresion place SuperAbo : " , self.__main.lvl.INFO)
if p is not None: if p is not None:
self.nonVoiture() if p.voiture.client != "NULL":
self.ticketRetrait(p, Service.getAllServicePlacement(p)) self.ticketRetrait(p, Service.getAllServicePlacement(p))
self.__main.activity(self.__nomBorne + " : Recuperation : " + str(p), self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Recuperation Abo : " + str(p), self.__main.lvl.INFO)
self.nonVoiture()
else:
self.__placementAPayer = p
self.blockAll()
self.__ui.box_recup.setDisabled(False)
self.__ui.numeroTicketLineEdit.setDisabled(True)
self.__ui.btn_quitter.setDisabled(True)
self.__ui.pushButton.setDisabled(False)
self.__ui.numeroTicketLineEdit.setDisabled(True)
def payer(self):
self.ticketRetrait(self.__placementAPayer, Service.getAllServicePlacement(self.__placementAPayer))
self.__main.activity(self.__nomBorne + " : Recuperation Anonyme : " + str(self.__placementAPayer), self.__main.lvl.INFO)
self.nonVoiture()
def ticketDepot(self, id): def ticketDepot(self, id):
QtGui.QMessageBox.information(self.__w, QtGui.QMessageBox.information(self.__w,
@ -249,13 +309,13 @@ class Borne:
name = "Entretien" name = "Entretien"
else: else:
name = "Autre Service" name = "Autre Service"
if service.estRealise:
if service.estRealiser():
s += "\nService : " + name + " + 2€" s += "\nService : " + name + " + 2€"
else: else:
service.nonRealise()
s += "\nNous n'avons pas pu réaliser le service" + name + "." s += "\nNous n'avons pas pu réaliser le service" + name + "."
s += "\nVeuillez nous excuser de la gène ocassionée." s += "\nVeuillez nous excuser de la gène ocassionée."
s += "Le Montant sera débiter automatiquement sur votre compte." s += "\nLe Montant sera débiter automatiquement sur votre compte."
s += "\nMerci de votre confiance! Bonne journée !" s += "\nMerci de votre confiance! Bonne journée !"
QtGui.QMessageBox.information(self.__w, QtGui.QMessageBox.information(self.__w,
"Ticket", "Ticket",
@ -269,8 +329,6 @@ class Borne:
:return: :return:
""" """
self.__w.show() self.__w.show()
self.__child = None # supprime l'eventuel widget enfant
self.__w.focusWidget() # reprend le focus sur la fenetre
def quitter(self): def quitter(self):
""" """
@ -280,7 +338,6 @@ class Borne:
self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO) self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO)
self.__main.showWindow() self.__main.showWindow()
def error(self, msg): def error(self, msg):
""" """
Qdialog message erreur Qdialog message erreur
@ -288,5 +345,6 @@ class Borne:
""" """
QtGui.QMessageBox.warning(self._w, QtGui.QMessageBox.warning(self._w,
"Erreur ...", "Erreur ...",
"Erreur lors de la création du parking ...\n" +
msg msg
) )

View File

@ -1,32 +0,0 @@
from PyQt4.QtGui import QTableWidgetItem
from src.c.CreaParking import CreaParking
__author__ = 'sidya'
class DetailsPlaces(CreaParking):
def __init__(self, main, parking):
self.__parking = parking
super(DetailsPlaces, self).__init__(main)
self._ui.lineEdit_nom.setText(parking.nom)
for p in parking.typePlacesParNiv.l:
row = self._ui.tableWidget.rowCount() - 1
if row != 0:
self._ui.tableWidget.insertRow(row)
self._ui.tableWidget.setItem(row, 0, QTableWidgetItem(str(p.hauteur)))
self._ui.tableWidget.setItem(row, 1, QTableWidgetItem(str(p.longueur)))
self._ui.tableWidget.setItem(row, 2, QTableWidgetItem(str(p.nb)))
self._ui.lineEdit_nom.setDisabled(True)
self._ui.tableWidget.setDisabled(True)
self._ui.btn_annuler.setVisible(False)
self._ui.btn_addRow.setVisible(False)
self._ui.btn_rmRow.setVisible(False)
def valider(self):
self._w.hide()
self._main.showWindow()

View File

@ -1,20 +1,20 @@
import sys import sys
from PyQt4 import QtGui from PyQt4 import QtGui, QtCore
import datetime
from src.c.Teleporteur import Teleporteur
from src.c.Borne import Borne from src.c.Borne import Borne
from src.c.DetailsPlaces import DetailsPlaces from src.c.Parking import CreaParking, DetailsPlaces
from src.c.log.log import Log from src.c.utils.connexionBDD import connexionBDD
from src.c.log.log import lvl from src.c.utils.log import Log
from src.c.CreaParking import CreaParking from src.c.utils.log import lvl
from src.m.Service import Service from src.m.Abonnement import Client
from src.m.Parking import Parking from src.m.Parking import Parking, Placement
from src.m.Service import TypeService from src.m.Service import Service, TypeService
from src.m.connexionBDD import connexionBDD from src.v.MyQt import MyQMainWindow
from src.v.MyQMainWindow import MyQMainWindow from src.v.Ui_Admin import Ui_MainWindow
from src.v.Ui_MainWindow import Ui_MainWindow
__author__ = 'sidya'
class Main: class Main:
@ -43,6 +43,7 @@ class Main:
self.__ui.actionSauvegarder.triggered.connect(self.sauver) self.__ui.actionSauvegarder.triggered.connect(self.sauver)
self.__ui.actionCharger.triggered.connect(self.charger) self.__ui.actionCharger.triggered.connect(self.charger)
self.__ui.actionQuitter.triggered.connect(self.quitter) self.__ui.actionQuitter.triggered.connect(self.quitter)
self.__ui.btn_modif_livraison.clicked.connect(self.majLivraison)
@ -105,6 +106,8 @@ class Main:
self.__ui.comboBox_livraison.clear() self.__ui.comboBox_livraison.clear()
self.__ui.comboBox_entretien.clear() self.__ui.comboBox_entretien.clear()
self.__ui.comboBox_maintenance.clear() self.__ui.comboBox_maintenance.clear()
self.__ui.dateTimeEdit.clear()
self.__ui.lieuLineEdit.clear()
self.__serviceLivraisons = [] self.__serviceLivraisons = []
self.__serviceEntretien = [] self.__serviceEntretien = []
self.__serviceMaintenance = [] self.__serviceMaintenance = []
@ -113,13 +116,21 @@ class Main:
if s.typeService == TypeService.LIVRAISON: if s.typeService == TypeService.LIVRAISON:
self.__serviceLivraisons.append(s) self.__serviceLivraisons.append(s)
self.__ui.comboBox_livraison.addItem(str(s.info)) self.__ui.comboBox_livraison.addItem(str(s.info))
time = QtCore.QDateTime(datetime.datetime.fromtimestamp(s.dateService))
self.__ui.dateTimeEdit.setDateTime(time)
self.__ui.lieuLineEdit.setText(str(s.lieu))
if s.typeService == TypeService.ENTRETIEN: if s.typeService == TypeService.ENTRETIEN:
self.__serviceEntretien.append(s) self.__serviceEntretien.append(s)
self.__ui.comboBox_entretien.addItem(str(s.info)) self.__ui.comboBox_entretien.addItem(str(s.info))
if s.typeService == TypeService.MAINTENANCE: if s.typeService == TypeService.MAINTENANCE:
self.__serviceMaintenance.append(s) self.__serviceMaintenance.append(s)
self.__ui.comboBox_maintenance.addItem(str(s.info)) self.__ui.comboBox_maintenance.addItem(str(s.info))
#Onglet Stats
#Onglet Stats
self.__ui.labelNbAbo.setText(str(Client.nbAbo()))
self.__ui.labelNbSuperAbo.setText(str(Client.nbSuperAbo()))
self.__ui.labelMoySta.setText(str(Placement.dureeMoyPlacement()))
def doMaintenance(self): def doMaintenance(self):
@ -129,7 +140,7 @@ class Main:
s.doService() s.doService()
self.activity("Livraision reussit : " + str(s), self.lvl.INFO) self.activity("Livraision reussit : " + str(s), self.lvl.INFO)
except Exception as e: except Exception as e:
self.activity("Livraision echoue : " + str(e), self.lvl.FAIL) self.activity("Livraision echoue : " + str(e), self.lvl.FAIL)
self.error("Livraision echoué.") self.error("Livraision echoué.")
self.selectParking() self.selectParking()
@ -149,12 +160,25 @@ class Main:
try: try:
s = self.__serviceLivraisons[self.__ui.comboBox_livraison.currentIndex()] s = self.__serviceLivraisons[self.__ui.comboBox_livraison.currentIndex()]
s.doService() s.doService()
Teleporteur.teleporterVersSortie(s.placement)
self.activity("Livraison reussit : " + str(s), self.lvl.INFO) self.activity("Livraison reussit : " + str(s), self.lvl.INFO)
except Exception as e: except Exception as e:
self.activity("Livraison echoue : " + str(e), self.lvl.FAIL) self.activity("Livraison echoue : " + str(e), self.lvl.FAIL)
self.error("Livraison echoué.") self.error("Livraison echoué.")
self.selectParking() self.selectParking()
def majLivraison(self):
if len(self.__serviceLivraisons) > 0:
try:
s = self.__serviceLivraisons[self.__ui.comboBox_livraison.currentIndex()]
s.maj(self.__ui.dateTimeEdit.dateTime().toPyDateTime().timestamp(),
self.__ui.lieuLineEdit.text())
self.activity("Maj Livraison reussit : " + str(s), self.lvl.INFO)
except Exception as e:
self.activity("Maj Livraison echoue : " + str(e), self.lvl.FAIL)
self.error("Maj Livraison echoué.")
self.selectParking()
def creerParking(self): def creerParking(self):
self.__view.hide() self.__view.hide()
self.__widgetCourant = CreaParking(self) self.__widgetCourant = CreaParking(self)
@ -239,7 +263,7 @@ class Main:
Qdialog message erreur Qdialog message erreur
:return: :return:
""" """
QtGui.QMessageBox.warning(self._w, QtGui.QMessageBox.warning(self.__widgetCourant,
"Erreur ...", "Erreur ...",
msg msg
) )

View File

@ -1,11 +1,8 @@
from PyQt4 import QtGui, QtCore from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QTableWidgetItem
from src.m.Parking import Parking, TypePlace from src.m.Parking import TypePlace, Parking
from src.v.MyQWidget import MyQWidget from src.v.MyQt import MyQWidget
from src.v.Ui_CreaParking import Ui_CreaParking from src.v.Ui_Admin import Ui_CreaParking
__author__ = 'sidya'
class CreaParking: class CreaParking:
@ -95,7 +92,6 @@ class CreaParking:
:return: :return:
""" """
self._w.show() self._w.show()
self._w.focusWidget() # reprend le focus sur la fenetre
def error(self, msg): def error(self, msg):
""" """
@ -106,4 +102,29 @@ class CreaParking:
"Erreur ...", "Erreur ...",
"Erreur lors de la création du parking ...\n" + "Erreur lors de la création du parking ...\n" +
msg msg
) )
class DetailsPlaces(CreaParking):
def __init__(self, main, parking):
self.__parking = parking
super(DetailsPlaces, self).__init__(main)
self._ui.lineEdit_nom.setText(parking.nom)
for p in parking.typePlaces :
row = self._ui.tableWidget.rowCount() - 1
if row != 0:
self._ui.tableWidget.insertRow(row)
self._ui.tableWidget.setItem(row, 0, QTableWidgetItem(str(p.hauteur)))
self._ui.tableWidget.setItem(row, 1, QTableWidgetItem(str(p.longueur)))
self._ui.tableWidget.setItem(row, 2, QTableWidgetItem(str(p.nb)))
self._ui.lineEdit_nom.setDisabled(True)
self._ui.tableWidget.setDisabled(True)
self._ui.btn_annuler.setVisible(False)
self._ui.btn_addRow.setVisible(False)
self._ui.btn_rmRow.setVisible(False)
def valider(self):
self._w.hide()
self._main.showWindow()

View File

@ -1,2 +1 @@
__author__ = 'sidya' __author__ = 'sidya'

View File

@ -1,7 +1,4 @@
from shutil import copyfile from shutil import copyfile
__author__ = 'sidya'
import sqlite3 import sqlite3

View File

@ -1,3 +1,7 @@
"""
Module de gestion de Log
"""
import logging import logging
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
@ -15,7 +19,7 @@ class bcolors:
class lvl: class lvl:
""" """
Define constant value for level log Define constant value for level utils
""" """
NOTSET = 0 NOTSET = 0
DEBUG = 10 DEBUG = 10
@ -51,10 +55,10 @@ class Log(object):
def __init__(self): def __init__(self):
""" """
Define 3 differents log : Define 3 differents utils :
activity.log -> all activity activity.utils -> all activity
warning.log -> only warning warning.utils -> only warning
error.log -> error error.utils -> error
Write all message on terminal too Write all message on terminal too
""" """
self.logger = logging.getLogger() self.logger = logging.getLogger()
@ -80,9 +84,9 @@ class Log(object):
def printL(self, pMsg, pLvl): def printL(self, pMsg, pLvl):
""" """
Add color and write in log with an define level Add color and write in utils with an define level
pMsg : message to write in log pMsg : message to write in utils
pLvl : level of log message pLvl : level of utils message
""" """
if pLvl == lvl.DEBUG: if pLvl == lvl.DEBUG:
pMsg = bcolors.DEBUG + str(pMsg) + bcolors.ENDC pMsg = bcolors.DEBUG + str(pMsg) + bcolors.ENDC

132
src/m/Abonnement.py Normal file
View File

@ -0,0 +1,132 @@
"""
Module qui implémente les classes representants les Abonnements de DreamPark.
"""
import random
import string
from src.c.utils.connexionBDD import connexionBDD
## Représentation d'un Client de DreamPark
class Client:
##
# Contsructeur du Client
# @param id Si None : Création du Client dans la bd a l'aide des autres parametres.
# Sinon : tentative de récupération du client avec cet id dans la bd
# @param nom nom du Client si creation
# @param prenom prenom du Client si creation
# @param cb cb du Client si creation
# @param typeAbonnement typeabonnement du client si creation
def __init__(self, id, nom=None, prenom=None, cb=None, typeAbonnement=None):
if id is None:
self.__nom = nom
self.__prenom = prenom
self.__typeAbonnement = typeAbonnement
self.__cb = cb
while True:
id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10)))
try:
Client(id)
except IndexError:
break
self.__id = id
c = connexionBDD()
c.execute("INSERT INTO client (idClient, nom, prenom, cb, typeAbonnement) VALUES (?,?,?,?,?)",
(str(self.__id), str(self.__nom), str(self.__prenom), str(self.__cb), str(self.__typeAbonnement)))
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM client WHERE idClient='" + str(id) + "'")
row = r.fetchone()
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
self.__nom = row["nom"]
self.__prenom = row["prenom"]
self.__typeAbonnement = row["typeAbonnement"]
self.__cb = row["cb"]
## Mise a jour du Client
# @param nom nouveau nom
# @param prenom nouveau prenom
# @param cb nouveau cb
# @param typeAbonnement nouveau TypeAbonnement
def maj(self, nom, prenom, cb, typeAbonnement):
self.__nom = nom
self.__prenom = prenom
self.__typeAbonnement = typeAbonnement
self.__cb = cb
c = connexionBDD()
c.execute("UPDATE client SET nom = ?, prenom = ?, cb = ?, typeAbonnement = ? WHERE idClient = ?",
(str(self.__nom), str(self.__prenom), "", str(self.__typeAbonnement), str(self.__id)))
c.seDeconnecter()
## Desabonne le Client en le supprimant
def desabo(self):
c = connexionBDD()
c.execute("DELETE FROM client WHERE idClient ='" + str(self.__id) + "'")
c.seDeconnecter()
## Propriete : prenom du Client
@property
def prenom(self):
return self.__prenom
## Propriete : nom du Client
@property
def nom(self):
return self.__nom
## Propriete : id du Client
@property
def id(self):
return self.__id
## Propriete : cb du Client
@property
def cb(self):
return self.__cb
## Propriete : abonnement du Client
@property
def abonnement(self):
return self.__typeAbonnement
## Retourne le nombre de super abonné
# @return nombre de super abonné
@staticmethod
def nbSuperAbo():
c = connexionBDD()
r = c.execute("SELECT COUNT(*) FROM client WHERE typeAbonnement = " + str(TypeAbonnement.SUPER_ABONNE))
nb = r.fetchone()[0]
c.seDeconnecter()
return nb
## Retourne le nombre d'abonné
# @return nombre d'abonné
@staticmethod
def nbAbo():
c = connexionBDD()
r = c.execute("SELECT COUNT(*) FROM client WHERE typeAbonnement = " + str(TypeAbonnement.ABONNE))
nb = r.fetchone()[0]
c.seDeconnecter()
return nb
## Representation du Client en chaine
def __str__(self):
return "[Client :" \
" id = " + str(self.__id) + ", "+\
" prenom = " + str(self.__prenom) + ", "+\
" nom = " + str(self.__nom) + ", " +\
" cb = " + str( self.__cb) + ", " +\
" typeAbonnement = " + str(self.__typeAbonnement) + "]"
## Classe définissant les constantes de TypeAbonnement disponible pour le Client
class TypeAbonnement:
ABONNE = 0
SUPER_ABONNE = 1

View File

@ -1,90 +0,0 @@
import random
import string
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Client:
def __init__(self, id, nom=None, prenom=None, adresse=None, typeAbonnement=None):
if id is None:
self.__nom = nom
self.__prenom = prenom
self.__typeAbonnement = typeAbonnement
self.__adresse = adresse
while True:
id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10)))
try:
Client(id)
except IndexError:
break
self.__id = id
c = connexionBDD()
c.execute("INSERT INTO client (idClient, nom, prenom, adresse, typeAbonnement) VALUES (?,?,?,?,?)",
(str(self.__id), str(self.__nom), str(self.__prenom), "", str(self.__typeAbonnement)))
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM client WHERE idClient='" + str(id) + "'")
row = r.fetchone()
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
self.__nom = row["nom"]
self.__prenom = row["prenom"]
self.__typeAbonnement = row["typeAbonnement"]
self.__adresse = row["adresse"]
def maj(self, nom, prenom, adresse, typeAbonnement):
self.__nom = nom
self.__prenom = prenom
self.__typeAbonnement = typeAbonnement
self.__adresse = adresse
c = connexionBDD()
c.execute("UPDATE client SET nom = ?, prenom = ?, adresse = ?, typeAbonnement = ? WHERE idClient = ?",
(str(self.__nom), str(self.__prenom), "", str(self.__typeAbonnement), str(self.__id)))
c.seDeconnecter()
def desabo(self):
c = connexionBDD()
c.execute("DELETE FROM client WHERE idClient ='" + str(id) + "'")
c.seDeconnecter()
@property
def prenom(self):
return self.__prenom
@property
def nom(self):
return self.__nom
@property
def id(self):
return self.__id
@property
def adr(self):
return self.__adresse
@property
def abonnement(self):
return self.__typeAbonnement
def __str__(self):
return "[Client :" \
" id = " + str(self.__id) + ", " \
" prenom = " + str(self.__prenom) + ", " \
" nom = " + str(self.__nom) + ", " \
" adresse = " + str(
self.__adresse) + ", " \
" typeAbonnement = " + str(self.__typeAbonnement) + "]"
class TypeAbonnement:
ABONNE = 0
SUPER_ABONNE = 1

View File

@ -1,22 +1,22 @@
"""
Module qui implémente les classes representants un parking de DreamPark.
"""
import random import random
import string import string
import time import time
import random from datetime import datetime
import string
import time
from src.c.utils.connexionBDD import connexionBDD
from src.m.Voiture import Voiture from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
## Representation d'un parking de DreamPark
class Parking: class Parking:
parkings = [] parkings = []
## Retourne un objet parking correspondant à id
# @param id id du Parking a retourner
@staticmethod @staticmethod
def get(id): def get(id):
if len(Parking.parkings) == 0: if len(Parking.parkings) == 0:
@ -25,6 +25,7 @@ class Parking:
if p.id == id: if p.id == id:
return p return p
## Retourne tout les Parking actif present dans la bd
@staticmethod @staticmethod
def getAllActif(): def getAllActif():
if len(Parking.parkings) == 0: if len(Parking.parkings) == 0:
@ -36,6 +37,8 @@ class Parking:
Parking(row["idParking"], row["nom"], None) Parking(row["idParking"], row["nom"], None)
return Parking.parkings return Parking.parkings
## Supprime un parking
# @param parking L'objet parking a supprimer
@staticmethod @staticmethod
def remove(parking): def remove(parking):
Parking.parkings.remove(parking) Parking.parkings.remove(parking)
@ -43,11 +46,15 @@ class Parking:
c.execute("UPDATE parking SET actif = 0 WHERE idParking='" + str(parking.id) + "'") c.execute("UPDATE parking SET actif = 0 WHERE idParking='" + str(parking.id) + "'")
c.seDeconnecter() c.seDeconnecter()
## Supprime les parkings present dans la mémoire vive (pas dans la bd)
@staticmethod @staticmethod
def removeAllRam(): def removeAllRam():
Parking.parkings = [] Parking.parkings = []
## Constructeur du Parking
# @param id Si None : Cree un Parking dans la BD Sinon : tentative de récupération du Parking avec cet id dans la bd
# @param nom : Si creation nom du parking
# @param listeTypePlace : Si creation Liste des TypePlace du parking
def __init__(self, id, nom=None, listeTypePlace=None): def __init__(self, id, nom=None, listeTypePlace=None):
self.__nom = nom self.__nom = nom
if id is None: if id is None:
@ -69,43 +76,56 @@ class Parking:
self.__id = id self.__id = id
self.parkings.append(self) self.parkings.append(self)
## Propriete : id du Parking
@property @property
def id(self): def id(self):
return self.__id return self.__id
## propriete : nom du Parking
@property @property
def nom(self): def nom(self):
return self.__nom return self.__nom
## propriete : nombre de Place du Parking
@property @property
def nbPlaces(self): def nbPlaces(self):
return Place.nbPlaceParking(self.__id) return Place.nbPlaceParking(self.__id)
## propriete : nombre de Place libres du Parking
@property @property
def nbPlacesLibresParking(self): def nbPlacesLibresParking(self):
return Place.nbPlaceLibreParking(self.__id) return Place.nbPlaceLibreParking(self.__id)
## propriete : nombre de Place super abo
@property @property
def nbSuperAbo(self): def nbSuperAbo(self):
return Place.nbSuperAbo(self.__id) return Place.nbSuperAbo(self.__id)
## Recherche une place pour une voiture
# @param voiture voiture pour laquel on recherche la place
# @return Place Si touvé : Place sinon : None
def recherchePlace(self, voiture): def recherchePlace(self, voiture):
"""
Permet de rechercher une place valide pour une voiture
:param voiture: Voiture
:return: Place
"""
return Place.placeValide(self.__id, voiture) return Place.placeValide(self.__id, voiture)
def addPlaceSuperAbo(self, parking): ## Ajout d'une place surmesure pour super abo
return Place(None, parking, None, None, False, True) # @param parking le parking ou il faut ajouter la place
def addPlaceSuperAbo(self):
return Place(None, self, None, None, False, True)
## Representation du Parking en chaine
def __str__(self): def __str__(self):
return "[Parking : nom = " + self.__nom + "]" return "[Parking : nom = " + self.__nom + "]"
## Representation d'une place de DreamPark
class Place: class Place:
def __init__(self, id=None, parking=None, typePlace=None, numero=None, estLibre=True, estSuperAbo=False): ## Contructeur de Place
# @param id Si None : creation de la Place dans la bd Sinon : tentative de récupération de la Place avec cet id dans la bd
# @param parking Si creation : le Parking ou est creer la Place
# @param typePlace Si creation : le TypePlace de Place
# @param numero Si creation : le numero de Place
# @param estLibre Si creation : Si la Place est libre ou non
# @param estSuperAbo Si creation : Si la Place est superAbo ou non
def __init__(self, id, parking=None, typePlace=None, numero=None, estLibre=True, estSuperAbo=False):
if id is None: if id is None:
self.__parking = parking self.__parking = parking
self.__typePlace = typePlace self.__typePlace = typePlace
@ -137,17 +157,10 @@ class Place:
self.__estSuperAbo = row["estSuperAbo"] self.__estSuperAbo = row["estSuperAbo"]
self.__id = id self.__id = id
@property
def id(self):
return self.__id
## Rend la Place la indisponible
def prendre(self): def prendre(self):
"""
Rend la place indisponible
:param Placement:
:return:
"""
if (self.__estLibre == False): if (self.__estLibre == False):
raise Exception("Place déjà prise") raise Exception("Place déjà prise")
self.__estLibre = False self.__estLibre = False
@ -155,31 +168,49 @@ class Place:
c.execute("UPDATE place SET estLibre = 0 WHERE idPlace ='" + str(self.__id) + "'") c.execute("UPDATE place SET estLibre = 0 WHERE idPlace ='" + str(self.__id) + "'")
c.seDeconnecter() c.seDeconnecter()
## Rend la Place disponible
def liberer(self): def liberer(self):
"""
Libere une place non dispo
:return:
"""
if (self.__estLibre == True): if (self.__estLibre == True):
raise Exception("Impossible de liberer une place vide") raise Exception("Impossible de liberer une place vide")
self.__estLibre = True self.__estLibre = True
c = connexionBDD() c = connexionBDD()
c.execute( c.execute("UPDATE place SET estLibre = 1 WHERE idPlace ='" + str(self.__id) + "'")
"UPDATE place SET estLibre = 1, fin ='" + str(time.time()) + "' WHERE idPlace ='" + str(self.__id) + "'")
c.seDeconnecter() c.seDeconnecter()
## Suppression place de la bd
def supprimer(self):
c = connexionBDD()
c.execute("DELETE FROM place idPlace ='" + str(self.__id) + "'")
c.seDeconnecter()
## propriete : id de la Place
@property
def id(self):
return self.__id
## propriete : identification etage : numero de la Place
@property @property
def identification(self): def identification(self):
return str(chr(self.__typePlace.niveau + ord('A')) + ":" + str(self.__numero)) return str(chr(self.__typePlace.niveau + ord('A')) + ":" + str(self.__numero))
## propriete : True si la place est Place
@property @property
def estlibre(self): def estlibre(self):
return self.__estLibre return self.__estLibre
## propriete : typePlace de la Place
@property @property
def typePlace(self): def typePlace(self):
return self.__typePlace return self.__typePlace
## propriete : typePlace de la Place
@property
def estSuperAbo(self):
return self.__estSuperAbo
## Retourne les nombre de place du Parking d'id idParking
# @param idParking l'id du Parking
# @return le nombre de Place
@staticmethod @staticmethod
def nbPlaceParking(idParking): def nbPlaceParking(idParking):
c = connexionBDD() c = connexionBDD()
@ -188,6 +219,9 @@ class Place:
c.seDeconnecter() c.seDeconnecter()
return row[0] return row[0]
## Retourne les nombre de place libre du Parking d'id idParking
# @param idParking l'id du Parking
# @return le nombre de Place libre
@staticmethod @staticmethod
def nbPlaceLibreParking(idParking): def nbPlaceLibreParking(idParking):
c = connexionBDD() c = connexionBDD()
@ -196,6 +230,9 @@ class Place:
c.seDeconnecter() c.seDeconnecter()
return row[0] return row[0]
## Retourne les nombre de place superAbo du Parking d'id idParking
# @param idParking l'id du Parking
# @return le nombre de Place superAbo
@staticmethod @staticmethod
def nbSuperAbo(idParking): def nbSuperAbo(idParking):
c = connexionBDD() c = connexionBDD()
@ -204,6 +241,10 @@ class Place:
c.seDeconnecter() c.seDeconnecter()
return row[0] return row[0]
## Retourne si une Place valide pour une Voiture dans un parking
# @param idParking id du Parking ou est recherché la place
# @param voiture Voiture pour laquelle est recherché la place
# @return Si non trouve : None. Sinon : Place une place valide
@staticmethod @staticmethod
def placeValide(idPArking, voiture): def placeValide(idPArking, voiture):
c = connexionBDD() c = connexionBDD()
@ -220,17 +261,25 @@ class Place:
row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"])) row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"]))
## Representation d'une Place en chaine
def __str__(self): def __str__(self):
return "[Place : " \ return "[Place : " +\
"Parking = " + str(self.__parking) + "," \ "Parking = " + str(self.__parking) + ","+\
"typePlace = " + str(self.__typePlace) + "," \ "typePlace = " + str(self.__typePlace) + ","+\
"numero = " + str( "numero = " + str(self.__numero) + ","+\
self.__numero) + "," \ "estLibre = " + str(self.__estLibre) + ","+\
"estLibre = " + str(self.__estLibre) + "," \ "estSuperAbo = " + str(self.__estSuperAbo) + "]"
"estSuperAbo = " + str(self.__estSuperAbo) + "]" \
\
\ ## Representation d'un TypePlace de DreamPark
class TypePlace: class TypePlace:
## Constructeur de TypePlace
# @param id Si None : creation du TypePlace dans la bd Sinon : tentative de récupération du TypePlace avec cet id dans la bd
# @param longueur Longueur de la Place en cm
# @param hauteur Hauteur de la Place en cm
# @param nombre Nombre de Place de ce type
# @param prix Le prix pur ce type de Place
# @param niveau Le niveau ou se trouve les Place
def __init__(self, id, longueur=None, hauteur=None, nombre=None, prix=None, niveau=None): def __init__(self, id, longueur=None, hauteur=None, nombre=None, prix=None, niveau=None):
if id is None: if id is None:
self.__longueur = longueur self.__longueur = longueur
@ -257,50 +306,53 @@ class TypePlace:
self.__niveau = row["niveau"] self.__niveau = row["niveau"]
self.__id = id self.__id = id
## propriete : id du Typeplace
@property @property
def id(self): def id(self):
return self.__id return self.__id
## propriete : longueur du Typeplace
@property @property
def longueur(self): def longueur(self):
return self.__longueur return self.__longueur
## propriete : hauteur du Typeplace
@property @property
def hauteur(self): def hauteur(self):
return self.__hauteur return self.__hauteur
## propriete : nombre du Typeplace
@property @property
def nombre(self): def nombre(self):
return self.__nombre return self.__nombre
## propriete : prix du Typeplace
@property @property
def prix(self): def prix(self):
return self.__prix return self.__prix
## propriete : niveau du Typeplace
@property @property
def niveau(self): def niveau(self):
return self.__niveau return self.__niveau
## Representation du TypePlace en chaine
def __str__(self): def __str__(self):
return "[TypePlace : " \ return "[TypePlace : " \
"id = " + str(self.__id) + "," \ "id = " + str(self.__id) + ","+\
"longueur = " + str(self.__longueur) + "," \ "longueur = " + str(self.__longueur) + ","+\
"hauteur = " + str( "hauteur = " + str(self.__hauteur) + ","+\
self.__hauteur) + "," \ "nombre = " + str(self.__nombre) + "," +\
"nombre = " + str(self.__nombre) + "," \ "prix = " + str(self.__prix) + ","+\
"prix = " + str(self.__prix) + "," \ "niveau = " + str(self.__niveau) + "]"
"niveau = " + str(
self.__niveau) + "]"
## Representation d'un Placement de DreamPark
class Placement: class Placement:
def __init__(self, id, voiture=None, place=None, debut=None, fin=None): ## Constructeur Placement
""" # @param id Si None : creation du Placement dans la bd Sinon : tentative de récupération du Placement avec cet id dans la bd
Creer un placement # @param voiture Si creation : Voiture lié au Placement
:param voiture: Voiture # @param place Si creation : Place lié au Placement
:param place: Place def __init__(self, id, voiture=None, place=None):
:return:
"""
if id is None: if id is None:
self.__voiture = voiture self.__voiture = voiture
self.__place = place self.__place = place
@ -328,33 +380,47 @@ class Placement:
self.__voiture = Voiture(row["idVoiture"]) self.__voiture = Voiture(row["idVoiture"])
self.__place = Place(row["idPlace"]) self.__place = Place(row["idPlace"])
self.__id = id self.__id = id
self.__debut = debut self.__debut = row["debut"]
self.__fin = fin self.__fin = row["fin"]
## Propriete : id du Placement
@property @property
def id(self): def id(self):
return self.__id return self.__id
## Propriete : place liée du Placement
@property @property
def place(self): def place(self):
return self.__place return self.__place
## Propriete : voiture liée du Placement
@property @property
def voiture(self): def voiture(self):
return self.__voiture return self.__voiture
## Retourne la durée moyenne des placement
# @return duree moyenne placement
@staticmethod
def dureeMoyPlacement():
c = connexionBDD()
r= c.execute("SELECT AVG(FIN - DEBUT) AS duree FROM placement")
nb = r.fetchone()[0]
c.seDeconnecter()
return nb
## Fin du placement (depart voiture)
def end(self): def end(self):
self.__fin = time.time() self.__fin = time.time()
c = connexionBDD() c = connexionBDD()
c.execute("UPDATE placement SET fin='" + str(self.__fin) + "' WHERE idPlacement='" + str(id) + "'") c.execute("UPDATE placement SET fin='" + str(self.__fin) + "' WHERE idPlacement='" + str(self.__id) + "'")
c.seDeconnecter() c.seDeconnecter()
self.__place.liberer() self.__place.liberer()
## Representation du Placement en chaine
def __str__(self): def __str__(self):
return "[Placement : " \ return "[Placement : " \
"id = " + str(self.__id) + "," \ "id = " + str(self.__id) + "," +\
"Voiture = " + str(self.__voiture) + "," \ "Voiture = " + str(self.__voiture) + ","+\
"Place = " + str(self.__place) + "," \ "Place = " + str(self.__place) + "," +\
"Debut = " + str( "Debut = " + str( self.__debut) + "," +\
self.__debut) + "," \ "Fin = " + str(self.__fin) + "]"
"Fin = " + str(self.__fin) + "]"

View File

@ -1,55 +1,65 @@
import time import time
from src.m.Client import Client from src.c.utils.connexionBDD import connexionBDD
from src.m.Abonnement import Client
from src.m.Parking import Placement from src.m.Parking import Placement
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
## Representation d'un Service de DreamPack
class Service: class Service:
## Retourne tout les services en cours dans le Parking parking
# @param parking Parking dont on veut connaitre les services
# @return Liste Service en cours
@staticmethod @staticmethod
def getAllEnCours(parking): def getAllEnCours(parking):
c = connexionBDD() c = connexionBDD()
r = c.execute("SELECT * FROM service WHERE dateRealisation is NULL " r = c.execute("SELECT idService FROM service WHERE dateRealisation is NULL "
"AND idPlacement IN (SELECT idPlacement FROM PLACEMENT WHERE " "AND idPlacement IN (SELECT idPlacement FROM PLACEMENT WHERE "
"idPlace IN (SELECT idPlace FROM Place WHERE idParking = '" + str(parking.id) + "'))") "idPlace IN (SELECT idPlace FROM Place WHERE idParking = '" + str(parking.id) + "'))")
rows = r.fetchall() rows = r.fetchall()
c.seDeconnecter() c.seDeconnecter()
l = [] l = []
for row in rows: for row in rows:
l.append(Service(row["idService"], Client(row["idClient"]), Placement(row["idPlacement"]), l.append(Service(row["idService"]))
row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
print("l = " + str(l)) print("l = " + str(l))
return l return l
## Retourne tout les services associé a un Placement
# @param parking Parking dont on veut connaitre les services
# @return Liste Service associé a un Placement
@staticmethod @staticmethod
def getAllServicePlacement(placement): def getAllServicePlacement(placement):
c = connexionBDD() c = connexionBDD()
r = c.execute("SELECT * FROM service WHERE idPlacement ='" + str(placement.id) + "'") r = c.execute("SELECT idService FROM service WHERE idPlacement ='" + str(placement.id) + "'")
rows = r.fetchall() rows = r.fetchall()
c.seDeconnecter() c.seDeconnecter()
l = [] l = []
for row in rows: for row in rows:
l.append(Service(row["idService"], Client(row["idClient"]), Placement(row["idPlacement"]), l.append(Service(row["idService"]))
row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
print("l = " + str(l)) print("l = " + str(l))
return l return l
## Contructeur d'un Service
# @param id Si None : Cree un Service dans la BD Sinon : tentative de récupération du Service avec cet id dans la bd
# @param client Si creation : Client associe au Service
# @param placement Si creation : Placement associe au Service
# @param typeService Si creation : TypeService du Service
# @param dateService Si creation : date ou sera realise le service si necessaire
# @param lieu Si creation : lieu ou realise le service si necessaire
def __init__(self, id, client=None, placement=None, typeService=None, def __init__(self, id, client=None, placement=None, typeService=None,
dateService=None, dateDemande=time.time(), dateRealisation=None): dateService="NULL", lieu =""):
if id is None: if id is None:
self.__client = client self.__client = client
self.__placement = placement self.__placement = placement
self.__typeService = typeService self.__typeService = typeService
self.__dateDemande = dateDemande self.__dateDemande = time.time()
self.__dateService = dateService self.__dateService = dateService
self.__dateRealisation = dateRealisation self.__dateRealisation = "NULL"
self.__lieu = lieu
c = connexionBDD() c = connexionBDD()
c.execute("INSERT INTO service (idClient,idPlacement, typeService, dateDemande) VALUES (?,?,?,?)", c.execute("INSERT INTO service (idClient,idPlacement, typeService, dateDemande,dateService,lieu) VALUES (?,?,?,?,?,?)",
(str(self.__client.id), str(self.__placement.id), str(self.__typeService), (str(self.__client.id), str(self.__placement.id), str(self.__typeService),
str(self.__dateDemande))) str(self.__dateDemande), str(self.__dateService),str(self.__lieu)))
self.__id = c.lastId() self.__id = c.lastId()
c.seDeconnecter() c.seDeconnecter()
else: else:
@ -66,31 +76,44 @@ class Service:
self.__dateDemande = row["dateDemande"] self.__dateDemande = row["dateDemande"]
self.__dateService = row["dateService"] self.__dateService = row["dateService"]
self.__dateRealisation = row["dateRealisation"] self.__dateRealisation = row["dateRealisation"]
self.__lieu = row["lieu"]
## Propriete : id Service
@property @property
def id(self): def id(self):
return self.__id return self.__id
## Propriete : TypeService du Service
@property @property
def typeService(self): def typeService(self):
return self.__typeService return self.__typeService
## Propriete : Placement associe au Service
@property @property
def placement(self): def placement(self):
return self.__placement return self.__placement
## Propriete : date ou le Service doit etre realisé
@property
def dateService(self):
return self.__dateService
## Propriete : lieu ou le Service doit etre realisé
@property
def lieu(self):
return self.__lieu
## Propriete : information interessante pout l'admin pour un Service
@property @property
def info(self): def info(self):
str = "Place : " + self.__placement.place.identification + "Imma : " + self.__placement.voiture.immatriculation return "Place : " + self.__placement.place.identification + " Imma : " + self.__placement.voiture.immatriculation
if self.typeService == TypeService.LIVRAISON:
str += "Date : " + self.__dateService
return str
## Propriete : Retour si un service a été réalisé du Service
@property @property
def estRealise(self): def estRealise(self):
return self.__dateRealisation is None or self.__dateRealisation == "NULL" return self.__dateRealisation is not None and not self.__dateRealisation == "NULL"
## Passe le service comme realise
def doService(self): def doService(self):
self.__dateRealisation = time.time() self.__dateRealisation = time.time()
c = connexionBDD() c = connexionBDD()
@ -98,18 +121,37 @@ class Service:
self.__id) + "'") self.__id) + "'")
c.seDeconnecter() c.seDeconnecter()
## Passe a un service a un etat de non realisé si le Client recupere sa Voiture avant que le Service est été réalisé
def nonRealise(self):
self.__dateRealisation = 1
c = connexionBDD()
c.execute("UPDATE service SET dateRealisation = '" + str(self.__dateRealisation) + "' WHERE idService='" + str(
self.__id) + "'")
c.seDeconnecter()
## mise a jour de infos de livraison
def maj(self, datetime, lieu):
self.__dateService = datetime
self.__lieu = lieu
c = connexionBDD()
c.execute("UPDATE service SET dateService = '" + str(self.__dateService) +
"' , lieu = '" + str(self.__lieu) +
"' WHERE idService='" + str(self.__id) + "'")
c.seDeconnecter()
## Representation en chaine d'un Service
def __str__(self): def __str__(self):
return "[Service : " \ return "[Service : " \
"id = " + str(self.__id) + "," \ "id = " + str(self.__id) + ","+\
"Client = " + str(self.__client) + "," \ "Client = " + str(self.__client) + "," +\
"TypeService = " + str( "Placement = " + str(self.__placement) + "," +\
self.__typeService) + "," \ "TypeService = " + str( self.__typeService) + ","+\
"DateDemande = " + str(self.__dateDemande) + "," \ "DateDemande = " + str(self.__dateDemande) + ","+\
"DateService = " + str( "DateService = " + str( self.__dateService) + "," +\
self.__dateService) + "," \ "DateRealisation = " + str(self.__dateRealisation) + \
"DateRealisation = " + str(self.__dateRealisation) + "]" "Lieu = " + str( self.__lieu) +" ]"
## Classe Representant les différents TypeService
class TypeService: class TypeService:
MAINTENANCE = 1 MAINTENANCE = 1
ENTRETIEN = 2 ENTRETIEN = 2

View File

@ -1,10 +1,17 @@
from src.m.Client import Client """
from src.m.connexionBDD import connexionBDD Module qui implémente les classes representants d'une voiture de DreamPark.
"""
__author__ = 'sidya' from src.c.utils.connexionBDD import connexionBDD
from src.m.Abonnement import Client
## Representation d'une Voiture de DreamPark
class Voiture: class Voiture:
## Constucteur Voiture
# @param id Si None : Cree une Voiture dans la BD Sinon : tentative de récupération de la Voiture avec cet id dans la bd
# @param client Si creation Client qui posséde la Voiture
# @param longueur Si creation longueur de la Voiture
# @param hauteur Si creation hauteur de la Voiture
# @param imma Si creation imma de la Voiture
def __init__(self, id, client=None, longueur=None, hauteur=None, imma=None): def __init__(self, id, client=None, longueur=None, hauteur=None, imma=None):
if id is None: if id is None:
if client is None: if client is None:
@ -37,38 +44,44 @@ class Voiture:
self.__hauteur = row["hauteur"] self.__hauteur = row["hauteur"]
self.__imma = row["imma"] self.__imma = row["imma"]
## Met a jour la possesion d'un voiture par un Client
# @param client Client qui posséde la voiture
def setClient(self, client): def setClient(self, client):
self.__client = client self.__client = client
c = connexionBDD() c = connexionBDD()
c.execute("UPDATE voiture SET idClient = '" + str(client.id) + "' WHERE idVoiture='" + str(self.id) + "'") c.execute("UPDATE voiture SET idClient = '" + str(client.id) + "' WHERE idVoiture='" + str(self.id) + "'")
c.seDeconnecter() c.seDeconnecter()
## propriete : id Voiture
@property @property
def id(self): def id(self):
return self.__id return self.__id
## propriete : hauteur Voiture
@property @property
def hauteur(self): def hauteur(self):
return self.__hauteur return self.__hauteur
## propriete : longueur Voiture
@property @property
def longueur(self): def longueur(self):
return self.__longueur return self.__longueur
## propriete : immatriculation Voiture
@property @property
def immatriculation(self): def immatriculation(self):
return self.__imma return self.__imma
## propriete : Client possedant Voiture
@property @property
def client(self): def client(self):
return self.__client return self.__client
## Representation d'une Voiture en chaine
def __str__(self): def __str__(self):
return "[Voiture :" \ return "[Voiture :" \
" id = " + str(self.__id) + ", " \ " id = " + str(self.__id) + ", "+\
" client = " + str(self.__client) + ", " \ " client = " + str(self.__client) + ", " +\
" longueur = " + str( " longueur = " + str(self.__longueur) + ", " +\
self.__longueur) + ", " \ " hauteur = " + str(self.__hauteur) + ", " +\
" hauteur = " + str(self.__hauteur) + ", " \ " imma = " + str(self.__imma) + "]"
" imma = " + str(self.__imma) + "]"

View File

@ -50,7 +50,7 @@ CREATE TABLE client (
idClient VARCHAR(10) PRIMARY KEY, idClient VARCHAR(10) PRIMARY KEY,
nom VARCHAR(20), nom VARCHAR(20),
prenom VARCHAR(20), prenom VARCHAR(20),
adresse VARCHAR(50), cb VARCHAR(50),
typeAbonnement INTEGER typeAbonnement INTEGER
); );
@ -71,6 +71,7 @@ CREATE TABLE service (
dateDemande TIMESTAMP, dateDemande TIMESTAMP,
dateService TIMESTAMP DEFAULT NULL, dateService TIMESTAMP DEFAULT NULL,
dateRealisation TIMESTAMP DEFAULT NULL, dateRealisation TIMESTAMP DEFAULT NULL,
lieu VARCHAR(255),
FOREIGN KEY (idClient) REFERENCES client(idClient), FOREIGN KEY (idClient) REFERENCES client(idClient),
FOREIGN KEY (idPlacement) REFERENCES placement(idPlacement) FOREIGN KEY (idPlacement) REFERENCES placement(idPlacement)
); );

View File

@ -1,12 +1,7 @@
import random import random
import string import string
from src.m.Voiture import Voiture from src.m.Voiture import Voiture
__author__ = 'sidya'
class Camera: class Camera:
@staticmethod @staticmethod
def donnerVoiture(): def donnerVoiture():

View File

@ -1,14 +0,0 @@
from PyQt4 import QtGui
__author__ = 'sidya'
class MyQMainWindow(QtGui.QMainWindow):
def closeEvent(self, event):
result = QtGui.QMessageBox.question(self,
"Confirmer Fermeture...",
"Etes vous sur de vouloir quitter ?",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
event.ignore()
if result == QtGui.QMessageBox.Yes:
event.accept()

View File

@ -1,19 +1,3 @@
from PyQt4 import QtGui
__author__ = 'sidya'
class MyQWidget(QtGui.QWidget):
def __init__(self, main):
super(MyQWidget, self).__init__()
self.__main = main
def closeEvent(self, event):
result = QtGui.QMessageBox.question(self,
"Confirmer Fermeture...",
"Etes vous sur de vouloir quitter ?\n",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
event.ignore()
if result == QtGui.QMessageBox.Yes:
event.accept()
self.__main.showWindow()

38
src/v/MyQt.py Normal file
View File

@ -0,0 +1,38 @@
from PyQt4 import QtGui
class MyQMainWindow(QtGui.QMainWindow):
def closeEvent(self, event):
result = QtGui.QMessageBox.question(self,
"Confirmer Fermeture...",
"Etes vous sur de vouloir quitter ?",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
event.ignore()
if result == QtGui.QMessageBox.Yes:
event.accept()
def error(self, msg):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self._w,
"Erreur ...",
msg
)
class MyQWidget(QtGui.QWidget):
def __init__(self, main):
super(MyQWidget, self).__init__()
self.__main = main
def closeEvent(self, event):
result = QtGui.QMessageBox.question(self,
"Confirmer Fermeture...",
"Etes vous sur de vouloir quitter ?\n",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
event.ignore()
if result == QtGui.QMessageBox.Yes:
event.accept()
self.__main.showWindow()

View File

@ -1,12 +1,3 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'main.ui'
#
# Created: Thu Jan 22 09:11:44 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
try: try:
@ -32,15 +23,12 @@ class Ui_MainWindow(object):
self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget) self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501)) self.tabWidget.setGeometry(QtCore.QRect(10, 40, 561, 501))
self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget() self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab")) self.tab.setObjectName(_fromUtf8("tab"))
self.label = QtGui.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(40, 10, 61, 15))
self.label.setObjectName(_fromUtf8("label"))
self.listWidget = QtGui.QListWidget(self.tab) self.listWidget = QtGui.QListWidget(self.tab)
self.listWidget.setGeometry(QtCore.QRect(60, 50, 431, 261)) self.listWidget.setGeometry(QtCore.QRect(10, 10, 531, 451))
self.listWidget.setObjectName(_fromUtf8("listWidget")) self.listWidget.setObjectName(_fromUtf8("listWidget"))
self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget() self.tab_2 = QtGui.QWidget()
@ -112,26 +100,60 @@ class Ui_MainWindow(object):
self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27)) self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27))
self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien")) self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien"))
self.groupBox_3 = QtGui.QGroupBox(self.tab_3) self.groupBox_3 = QtGui.QGroupBox(self.tab_3)
self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111)) self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 171))
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3) self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3)
self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27)) self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27))
self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison")) self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison"))
self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3) self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3)
self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27)) self.btn_effectuer_livraison.setGeometry(QtCore.QRect(320, 120, 161, 27))
self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison")) self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison"))
self.dateTimeEdit = QtGui.QDateTimeEdit(self.groupBox_3)
self.dateTimeEdit.setGeometry(QtCore.QRect(290, 70, 194, 23))
self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit"))
self.formLayoutWidget = QtGui.QWidget(self.groupBox_3)
self.formLayoutWidget.setGeometry(QtCore.QRect(20, 70, 261, 31))
self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget"))
self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout.setMargin(0)
self.formLayout.setObjectName(_fromUtf8("formLayout"))
self.lieuLabel = QtGui.QLabel(self.formLayoutWidget)
self.lieuLabel.setObjectName(_fromUtf8("lieuLabel"))
self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel)
self.lieuLineEdit = QtGui.QLineEdit(self.formLayoutWidget)
self.lieuLineEdit.setObjectName(_fromUtf8("lieuLineEdit"))
self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit)
self.btn_modif_livraison = QtGui.QPushButton(self.groupBox_3)
self.btn_modif_livraison.setGeometry(QtCore.QRect(136, 120, 141, 27))
self.btn_modif_livraison.setObjectName(_fromUtf8("btn_modif_livraison"))
self.tabWidget.addTab(self.tab_3, _fromUtf8("")) self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
self.tab_4 = QtGui.QWidget() self.tab_4 = QtGui.QWidget()
self.tab_4.setObjectName(_fromUtf8("tab_4")) self.tab_4.setObjectName(_fromUtf8("tab_4"))
self.label_2 = QtGui.QLabel(self.tab_4) self.formLayoutWidget_2 = QtGui.QWidget(self.tab_4)
self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16)) self.formLayoutWidget_2.setGeometry(QtCore.QRect(60, 40, 461, 181))
self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2"))
self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2)
self.formLayout_2.setMargin(0)
self.formLayout_2.setObjectName(_fromUtf8("formLayout_2"))
self.nombreAbonnLabel = QtGui.QLabel(self.formLayoutWidget_2)
self.nombreAbonnLabel.setObjectName(_fromUtf8("nombreAbonnLabel"))
self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.nombreAbonnLabel)
self.labelNbAbo = QtGui.QLabel(self.formLayoutWidget_2)
self.labelNbAbo.setObjectName(_fromUtf8("labelNbAbo"))
self.formLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, self.labelNbAbo)
self.label_2 = QtGui.QLabel(self.formLayoutWidget_2)
self.label_2.setObjectName(_fromUtf8("label_2")) self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_3 = QtGui.QLabel(self.tab_4) self.formLayout_2.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_2)
self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16)) self.labelNbSuperAbo = QtGui.QLabel(self.formLayoutWidget_2)
self.label_3.setObjectName(_fromUtf8("label_3")) self.labelNbSuperAbo.setObjectName(_fromUtf8("labelNbSuperAbo"))
self.label_4 = QtGui.QLabel(self.tab_4) self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.labelNbSuperAbo)
self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16)) self.label_4 = QtGui.QLabel(self.formLayoutWidget_2)
self.label_4.setObjectName(_fromUtf8("label_4")) self.label_4.setObjectName(_fromUtf8("label_4"))
self.formLayout_2.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_4)
self.labelMoySta = QtGui.QLabel(self.formLayoutWidget_2)
self.labelMoySta.setObjectName(_fromUtf8("labelMoySta"))
self.formLayout_2.setWidget(3, QtGui.QFormLayout.FieldRole, self.labelMoySta)
self.tabWidget.addTab(self.tab_4, _fromUtf8("")) self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
self.comboBox = QtGui.QComboBox(self.centralwidget) self.comboBox = QtGui.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27)) self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27))
@ -168,8 +190,8 @@ class Ui_MainWindow(object):
self.action.setObjectName(_fromUtf8("action")) self.action.setObjectName(_fromUtf8("action"))
self.actionNouveau_2 = QtGui.QAction(MainWindow) self.actionNouveau_2 = QtGui.QAction(MainWindow)
self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2")) self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2"))
self.menuFichier.addAction(self.actionCharger)
self.menuFichier.addAction(self.actionNouveau_2) self.menuFichier.addAction(self.actionNouveau_2)
self.menuFichier.addAction(self.actionCharger)
self.menuFichier.addAction(self.actionSauvegarder) self.menuFichier.addAction(self.actionSauvegarder)
self.menuFichier.addSeparator() self.menuFichier.addSeparator()
self.menuFichier.addAction(self.actionQuitter) self.menuFichier.addAction(self.actionQuitter)
@ -178,12 +200,11 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuA_propos.menuAction()) self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(2) self.tabWidget.setCurrentIndex(3)
QtCore.QMetaObject.connectSlotsByName(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Administration", None)) MainWindow.setWindowTitle(_translate("MainWindow", "Administration", None))
self.label.setText(_translate("MainWindow", "Activité :", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None))
self.label_13.setText(_translate("MainWindow", "Nom :", None)) self.label_13.setText(_translate("MainWindow", "Nom :", None))
self.nom.setText(_translate("MainWindow", "TextLabel", None)) self.nom.setText(_translate("MainWindow", "TextLabel", None))
@ -191,7 +212,7 @@ class Ui_MainWindow(object):
self.placesParNiveau.setText(_translate("MainWindow", "TextLabel", None)) self.placesParNiveau.setText(_translate("MainWindow", "TextLabel", None))
self.label_16.setText(_translate("MainWindow", "Places disponible :", None)) self.label_16.setText(_translate("MainWindow", "Places disponible :", None))
self.placesDispo.setText(_translate("MainWindow", "TextLabel", None)) self.placesDispo.setText(_translate("MainWindow", "TextLabel", None))
self.label_17.setText(_translate("MainWindow", "Places Reserve Super Abo : ", None)) self.label_17.setText(_translate("MainWindow", "Places Super Abo : ", None))
self.placesSuperAbo.setText(_translate("MainWindow", "TextLabel", None)) self.placesSuperAbo.setText(_translate("MainWindow", "TextLabel", None))
self.btn_details.setText(_translate("MainWindow", "Details Places", None)) self.btn_details.setText(_translate("MainWindow", "Details Places", None))
self.btn_borne.setText(_translate("MainWindow", "Borne", None)) self.btn_borne.setText(_translate("MainWindow", "Borne", None))
@ -204,10 +225,15 @@ class Ui_MainWindow(object):
self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None)) self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None))
self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None)) self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None))
self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None)) self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None))
self.lieuLabel.setText(_translate("MainWindow", "Lieu", None))
self.btn_modif_livraison.setText(_translate("MainWindow", "Modifer Livraison ", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None))
self.label_2.setText(_translate("MainWindow", "Frequentation par jour", None)) self.nombreAbonnLabel.setText(_translate("MainWindow", "Nombre Abonné :", None))
self.label_3.setText(_translate("MainWindow", "Frequentation par mois", None)) self.labelNbAbo.setText(_translate("MainWindow", "TextLabel", None))
self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None)) self.label_2.setText(_translate("MainWindow", "Nombre Super Abonné : ", None))
self.labelNbSuperAbo.setText(_translate("MainWindow", "TextLabel", None))
self.label_4.setText(_translate("MainWindow", "Durée Moyenne Stationnement :", None))
self.labelMoySta.setText(_translate("MainWindow", "TextLabel", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None))
self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None)) self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None)) self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))
@ -222,3 +248,85 @@ class Ui_MainWindow(object):
self.action.setText(_translate("MainWindow", "?", None)) self.action.setText(_translate("MainWindow", "?", None))
self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None)) self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None))
class Ui_CreaParking(object):
def setupUi(self, CreaParking):
CreaParking.setObjectName(_fromUtf8("CreaParking"))
CreaParking.resize(622, 300)
self.layoutWidget = QtGui.QWidget(CreaParking)
self.layoutWidget.setGeometry(QtCore.QRect(230, 260, 201, 29))
self.layoutWidget.setObjectName(_fromUtf8("layoutWidget"))
self.horizontalLayout_2 = QtGui.QHBoxLayout(self.layoutWidget)
self.horizontalLayout_2.setMargin(0)
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.btn_annuler = QtGui.QPushButton(self.layoutWidget)
self.btn_annuler.setObjectName(_fromUtf8("btn_annuler"))
self.horizontalLayout_2.addWidget(self.btn_annuler)
self.btn_valider = QtGui.QPushButton(self.layoutWidget)
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.tableWidget = QtGui.QTableWidget(CreaParking)
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 141))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(4, item)
self.btn_addRow = QtGui.QPushButton(CreaParking)
self.btn_addRow.setGeometry(QtCore.QRect(570, 120, 41, 27))
self.btn_addRow.setObjectName(_fromUtf8("btn_addRow"))
self.btn_rmRow = QtGui.QPushButton(CreaParking)
self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label = QtGui.QLabel(self.layoutWidget1)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget1)
self.lineEdit_nom.setObjectName(_fromUtf8("lineEdit_nom"))
self.verticalLayout_2.addWidget(self.lineEdit_nom)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.retranslateUi(CreaParking)
QtCore.QMetaObject.connectSlotsByName(CreaParking)
CreaParking.setTabOrder(self.lineEdit_nom, self.tableWidget)
CreaParking.setTabOrder(self.tableWidget, self.btn_addRow)
CreaParking.setTabOrder(self.btn_addRow, self.btn_rmRow)
CreaParking.setTabOrder(self.btn_rmRow, self.btn_annuler)
CreaParking.setTabOrder(self.btn_annuler, self.btn_valider)
def retranslateUi(self, CreaParking):
CreaParking.setWindowTitle(_translate("CreaParking", "Creation Parking", None))
self.btn_annuler.setText(_translate("CreaParking", "Annuler", None))
self.btn_valider.setText(_translate("CreaParking", "Valider", None))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("CreaParking", "Longueur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("CreaParking", "Nombre", None))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("CreaParking", "Etage", None))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("CreaParking", "Prix (€)", None))
self.btn_addRow.setText(_translate("CreaParking", "+", None))
self.btn_rmRow.setText(_translate("CreaParking", "-", None))
self.label.setText(_translate("CreaParking", "Nom :", None))

View File

@ -1,109 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'creationParking.ui'
#
# Created: Thu Feb 5 00:32:25 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_CreaParking(object):
def setupUi(self, CreaParking):
CreaParking.setObjectName(_fromUtf8("CreaParking"))
CreaParking.resize(622, 300)
self.layoutWidget = QtGui.QWidget(CreaParking)
self.layoutWidget.setGeometry(QtCore.QRect(230, 260, 201, 29))
self.layoutWidget.setObjectName(_fromUtf8("layoutWidget"))
self.horizontalLayout_2 = QtGui.QHBoxLayout(self.layoutWidget)
self.horizontalLayout_2.setMargin(0)
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.btn_annuler = QtGui.QPushButton(self.layoutWidget)
self.btn_annuler.setObjectName(_fromUtf8("btn_annuler"))
self.horizontalLayout_2.addWidget(self.btn_annuler)
self.btn_valider = QtGui.QPushButton(self.layoutWidget)
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.tableWidget = QtGui.QTableWidget(CreaParking)
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 141))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(4, item)
self.btn_addRow = QtGui.QPushButton(CreaParking)
self.btn_addRow.setGeometry(QtCore.QRect(570, 120, 41, 27))
self.btn_addRow.setObjectName(_fromUtf8("btn_addRow"))
self.btn_rmRow = QtGui.QPushButton(CreaParking)
self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label = QtGui.QLabel(self.layoutWidget1)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget1)
self.lineEdit_nom.setObjectName(_fromUtf8("lineEdit_nom"))
self.verticalLayout_2.addWidget(self.lineEdit_nom)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.retranslateUi(CreaParking)
QtCore.QMetaObject.connectSlotsByName(CreaParking)
CreaParking.setTabOrder(self.lineEdit_nom, self.tableWidget)
CreaParking.setTabOrder(self.tableWidget, self.btn_addRow)
CreaParking.setTabOrder(self.btn_addRow, self.btn_rmRow)
CreaParking.setTabOrder(self.btn_rmRow, self.btn_annuler)
CreaParking.setTabOrder(self.btn_annuler, self.btn_valider)
def retranslateUi(self, CreaParking):
CreaParking.setWindowTitle(_translate("CreaParking", "Creation Parking", None))
self.btn_annuler.setText(_translate("CreaParking", "Annuler", None))
self.btn_valider.setText(_translate("CreaParking", "Valider", None))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("CreaParking", "Longueur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("CreaParking", "Nombre", None))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("CreaParking", "Etage", None))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("CreaParking", "Prix (€)", None))
self.btn_addRow.setText(_translate("CreaParking", "+", None))
self.btn_rmRow.setText(_translate("CreaParking", "-", None))
self.label.setText(_translate("CreaParking", "Nom :", None))

View File

@ -1,12 +1,3 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'borne.ui'
#
# Created: Sun Feb 1 14:38:43 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
try: try:
@ -224,5 +215,4 @@ class Ui_Borne(object):
self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None)) self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None))
self.lieuLabel_2.setText(_translate("Borne", "Lieu", None)) self.lieuLabel_2.setText(_translate("Borne", "Lieu", None))
self.btn_annuler.setText(_translate("Borne", "Annuler", None)) self.btn_annuler.setText(_translate("Borne", "Annuler", None))
self.btn_quitter.setText(_translate("Borne", "Quitter", None)) self.btn_quitter.setText(_translate("Borne", "Quitter", None))

View File

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'main.ui' # Form implementation generated from reading ui file 'main.ui'
# #
# Created: Thu Jan 22 09:11:44 2015 # Created: Sat Feb 7 23:25:05 2015
# by: PyQt4 UI code generator 4.11.3 # by: PyQt4 UI code generator 4.11.3
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
@ -30,15 +30,12 @@ class Ui_MainWindow(object):
self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget) self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501)) self.tabWidget.setGeometry(QtCore.QRect(10, 40, 561, 501))
self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget() self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab")) self.tab.setObjectName(_fromUtf8("tab"))
self.label = QtGui.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(40, 10, 61, 15))
self.label.setObjectName(_fromUtf8("label"))
self.listWidget = QtGui.QListWidget(self.tab) self.listWidget = QtGui.QListWidget(self.tab)
self.listWidget.setGeometry(QtCore.QRect(60, 50, 431, 261)) self.listWidget.setGeometry(QtCore.QRect(10, 10, 531, 451))
self.listWidget.setObjectName(_fromUtf8("listWidget")) self.listWidget.setObjectName(_fromUtf8("listWidget"))
self.tabWidget.addTab(self.tab, _fromUtf8("")) self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget() self.tab_2 = QtGui.QWidget()
@ -110,26 +107,60 @@ class Ui_MainWindow(object):
self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27)) self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27))
self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien")) self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien"))
self.groupBox_3 = QtGui.QGroupBox(self.tab_3) self.groupBox_3 = QtGui.QGroupBox(self.tab_3)
self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111)) self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 171))
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3) self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3)
self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27)) self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27))
self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison")) self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison"))
self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3) self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3)
self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27)) self.btn_effectuer_livraison.setGeometry(QtCore.QRect(320, 120, 161, 27))
self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison")) self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison"))
self.dateTimeEdit = QtGui.QDateTimeEdit(self.groupBox_3)
self.dateTimeEdit.setGeometry(QtCore.QRect(290, 70, 194, 23))
self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit"))
self.formLayoutWidget = QtGui.QWidget(self.groupBox_3)
self.formLayoutWidget.setGeometry(QtCore.QRect(20, 70, 261, 31))
self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget"))
self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout.setMargin(0)
self.formLayout.setObjectName(_fromUtf8("formLayout"))
self.lieuLabel = QtGui.QLabel(self.formLayoutWidget)
self.lieuLabel.setObjectName(_fromUtf8("lieuLabel"))
self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel)
self.lieuLineEdit = QtGui.QLineEdit(self.formLayoutWidget)
self.lieuLineEdit.setObjectName(_fromUtf8("lieuLineEdit"))
self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit)
self.btn_modif_livraison = QtGui.QPushButton(self.groupBox_3)
self.btn_modif_livraison.setGeometry(QtCore.QRect(136, 120, 141, 27))
self.btn_modif_livraison.setObjectName(_fromUtf8("btn_modif_livraison"))
self.tabWidget.addTab(self.tab_3, _fromUtf8("")) self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
self.tab_4 = QtGui.QWidget() self.tab_4 = QtGui.QWidget()
self.tab_4.setObjectName(_fromUtf8("tab_4")) self.tab_4.setObjectName(_fromUtf8("tab_4"))
self.label_2 = QtGui.QLabel(self.tab_4) self.formLayoutWidget_2 = QtGui.QWidget(self.tab_4)
self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16)) self.formLayoutWidget_2.setGeometry(QtCore.QRect(60, 40, 461, 181))
self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2"))
self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2)
self.formLayout_2.setMargin(0)
self.formLayout_2.setObjectName(_fromUtf8("formLayout_2"))
self.nombreAbonnLabel = QtGui.QLabel(self.formLayoutWidget_2)
self.nombreAbonnLabel.setObjectName(_fromUtf8("nombreAbonnLabel"))
self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.nombreAbonnLabel)
self.labelNbAbo = QtGui.QLabel(self.formLayoutWidget_2)
self.labelNbAbo.setObjectName(_fromUtf8("labelNbAbo"))
self.formLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, self.labelNbAbo)
self.label_2 = QtGui.QLabel(self.formLayoutWidget_2)
self.label_2.setObjectName(_fromUtf8("label_2")) self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_3 = QtGui.QLabel(self.tab_4) self.formLayout_2.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_2)
self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16)) self.labelNbSuperAbo = QtGui.QLabel(self.formLayoutWidget_2)
self.label_3.setObjectName(_fromUtf8("label_3")) self.labelNbSuperAbo.setObjectName(_fromUtf8("labelNbSuperAbo"))
self.label_4 = QtGui.QLabel(self.tab_4) self.formLayout_2.setWidget(2, QtGui.QFormLayout.FieldRole, self.labelNbSuperAbo)
self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16)) self.label_4 = QtGui.QLabel(self.formLayoutWidget_2)
self.label_4.setObjectName(_fromUtf8("label_4")) self.label_4.setObjectName(_fromUtf8("label_4"))
self.formLayout_2.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_4)
self.labelMoySta = QtGui.QLabel(self.formLayoutWidget_2)
self.labelMoySta.setObjectName(_fromUtf8("labelMoySta"))
self.formLayout_2.setWidget(3, QtGui.QFormLayout.FieldRole, self.labelMoySta)
self.tabWidget.addTab(self.tab_4, _fromUtf8("")) self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
self.comboBox = QtGui.QComboBox(self.centralwidget) self.comboBox = QtGui.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27)) self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27))
@ -166,8 +197,8 @@ class Ui_MainWindow(object):
self.action.setObjectName(_fromUtf8("action")) self.action.setObjectName(_fromUtf8("action"))
self.actionNouveau_2 = QtGui.QAction(MainWindow) self.actionNouveau_2 = QtGui.QAction(MainWindow)
self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2")) self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2"))
self.menuFichier.addAction(self.actionCharger)
self.menuFichier.addAction(self.actionNouveau_2) self.menuFichier.addAction(self.actionNouveau_2)
self.menuFichier.addAction(self.actionCharger)
self.menuFichier.addAction(self.actionSauvegarder) self.menuFichier.addAction(self.actionSauvegarder)
self.menuFichier.addSeparator() self.menuFichier.addSeparator()
self.menuFichier.addAction(self.actionQuitter) self.menuFichier.addAction(self.actionQuitter)
@ -176,12 +207,11 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuA_propos.menuAction()) self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(2) self.tabWidget.setCurrentIndex(3)
QtCore.QMetaObject.connectSlotsByName(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Administration", None)) MainWindow.setWindowTitle(_translate("MainWindow", "Administration", None))
self.label.setText(_translate("MainWindow", "Activité :", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None))
self.label_13.setText(_translate("MainWindow", "Nom :", None)) self.label_13.setText(_translate("MainWindow", "Nom :", None))
self.nom.setText(_translate("MainWindow", "TextLabel", None)) self.nom.setText(_translate("MainWindow", "TextLabel", None))
@ -189,7 +219,7 @@ class Ui_MainWindow(object):
self.placesParNiveau.setText(_translate("MainWindow", "TextLabel", None)) self.placesParNiveau.setText(_translate("MainWindow", "TextLabel", None))
self.label_16.setText(_translate("MainWindow", "Places disponible :", None)) self.label_16.setText(_translate("MainWindow", "Places disponible :", None))
self.placesDispo.setText(_translate("MainWindow", "TextLabel", None)) self.placesDispo.setText(_translate("MainWindow", "TextLabel", None))
self.label_17.setText(_translate("MainWindow", "Places Reserve Super Abo : ", None)) self.label_17.setText(_translate("MainWindow", "Places Super Abo : ", None))
self.placesSuperAbo.setText(_translate("MainWindow", "TextLabel", None)) self.placesSuperAbo.setText(_translate("MainWindow", "TextLabel", None))
self.btn_details.setText(_translate("MainWindow", "Details Places", None)) self.btn_details.setText(_translate("MainWindow", "Details Places", None))
self.btn_borne.setText(_translate("MainWindow", "Borne", None)) self.btn_borne.setText(_translate("MainWindow", "Borne", None))
@ -202,10 +232,15 @@ class Ui_MainWindow(object):
self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None)) self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None))
self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None)) self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None))
self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None)) self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None))
self.lieuLabel.setText(_translate("MainWindow", "Lieu", None))
self.btn_modif_livraison.setText(_translate("MainWindow", "Modifer Livraison ", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None))
self.label_2.setText(_translate("MainWindow", "Frequentation par jour", None)) self.nombreAbonnLabel.setText(_translate("MainWindow", "Nombre Abonné :", None))
self.label_3.setText(_translate("MainWindow", "Frequentation par mois", None)) self.labelNbAbo.setText(_translate("MainWindow", "TextLabel", None))
self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None)) self.label_2.setText(_translate("MainWindow", "Nombre Super Abonné : ", None))
self.labelNbSuperAbo.setText(_translate("MainWindow", "TextLabel", None))
self.label_4.setText(_translate("MainWindow", "Durée Moyenne Stationnement :", None))
self.labelMoySta.setText(_translate("MainWindow", "TextLabel", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None))
self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None)) self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None)) self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))

View File

@ -17,39 +17,26 @@
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>10</x>
<y>40</y> <y>40</y>
<width>561</width> <width>561</width>
<height>501</height> <height>501</height>
</rect> </rect>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>3</number>
</property> </property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<attribute name="title"> <attribute name="title">
<string>Activite</string> <string>Activite</string>
</attribute> </attribute>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>40</x>
<y>10</y>
<width>61</width>
<height>15</height>
</rect>
</property>
<property name="text">
<string>Activité :</string>
</property>
</widget>
<widget class="QListWidget" name="listWidget"> <widget class="QListWidget" name="listWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>60</x> <x>10</x>
<y>50</y> <y>10</y>
<width>431</width> <width>531</width>
<height>261</height> <height>451</height>
</rect> </rect>
</property> </property>
</widget> </widget>
@ -109,7 +96,7 @@
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_17"> <widget class="QLabel" name="label_17">
<property name="text"> <property name="text">
<string>Places Reserve Super Abo : </string> <string>Places Super Abo : </string>
</property> </property>
</widget> </widget>
</item> </item>
@ -238,7 +225,7 @@
<x>30</x> <x>30</x>
<y>290</y> <y>290</y>
<width>511</width> <width>511</width>
<height>111</height> <height>171</height>
</rect> </rect>
</property> </property>
<property name="title"> <property name="title">
@ -257,8 +244,8 @@
<widget class="QPushButton" name="btn_effectuer_livraison"> <widget class="QPushButton" name="btn_effectuer_livraison">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>326</x> <x>320</x>
<y>70</y> <y>120</y>
<width>161</width> <width>161</width>
<height>27</height> <height>27</height>
</rect> </rect>
@ -267,50 +254,113 @@
<string>Effectuer Livraison</string> <string>Effectuer Livraison</string>
</property> </property>
</widget> </widget>
<widget class="QDateTimeEdit" name="dateTimeEdit">
<property name="geometry">
<rect>
<x>290</x>
<y>70</y>
<width>194</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>70</y>
<width>261</width>
<height>31</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="lieuLabel">
<property name="text">
<string>Lieu</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lieuLineEdit"/>
</item>
</layout>
</widget>
<widget class="QPushButton" name="btn_modif_livraison">
<property name="geometry">
<rect>
<x>136</x>
<y>120</y>
<width>141</width>
<height>27</height>
</rect>
</property>
<property name="text">
<string>Modifer Livraison </string>
</property>
</widget>
</widget> </widget>
</widget> </widget>
<widget class="QWidget" name="tab_4"> <widget class="QWidget" name="tab_4">
<attribute name="title"> <attribute name="title">
<string>Stats</string> <string>Stats</string>
</attribute> </attribute>
<widget class="QLabel" name="label_2"> <widget class="QWidget" name="formLayoutWidget_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>40</x> <x>60</x>
<y>80</y> <y>40</y>
<width>161</width> <width>461</width>
<height>16</height> <height>181</height>
</rect> </rect>
</property> </property>
<property name="text"> <layout class="QFormLayout" name="formLayout_2">
<string>Frequentation par jour</string> <item row="0" column="0">
</property> <widget class="QLabel" name="nombreAbonnLabel">
</widget> <property name="text">
<widget class="QLabel" name="label_3"> <string>Nombre Abonné :</string>
<property name="geometry"> </property>
<rect> </widget>
<x>40</x> </item>
<y>110</y> <item row="0" column="1">
<width>161</width> <widget class="QLabel" name="labelNbAbo">
<height>16</height> <property name="text">
</rect> <string>TextLabel</string>
</property> </property>
<property name="text"> </widget>
<string>Frequentation par mois</string> </item>
</property> <item row="2" column="0">
</widget> <widget class="QLabel" name="label_2">
<widget class="QLabel" name="label_4"> <property name="text">
<property name="geometry"> <string>Nombre Super Abonné : </string>
<rect> </property>
<x>40</x> </widget>
<y>140</y> </item>
<width>241</width> <item row="2" column="1">
<height>16</height> <widget class="QLabel" name="labelNbSuperAbo">
</rect> <property name="text">
</property> <string>TextLabel</string>
<property name="text"> </property>
<string>Duree moyenne de stationnement </string> </widget>
</property> </item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Durée Moyenne Stationnement :</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="labelMoySta">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</widget> </widget>
</widget> </widget>