From 952b215c0ca744fb0761567eafdbdb4609222093 Mon Sep 17 00:00:00 2001
From: sidya82
Date: Wed, 4 Feb 2015 14:20:39 +0100
Subject: [PATCH] refonte
---
.idea/gestionParking.iml | 7 +
src/Launchme.py | 6 +-
src/c/Borne.py | 112 +++++++++++-----
src/c/CreaParking.py | 11 +-
src/c/DetailsPlaces.py | 6 +-
src/c/Main.py | 73 ++++++++--
src/c/SelectService.py | 55 --------
src/c/Teleporteur.py | 11 +-
src/c/test/TestAcces.py | 5 -
src/c/test/TestTeleporteur.py | 5 -
src/m/Client.py | 52 ++++---
src/m/Parking.py | 246 +++++++++++++++++++---------------
src/m/Service.py | 72 +++++++++-
src/m/Voiture.py | 48 +++----
src/m/connexionBDD.py | 26 +++-
src/m/table.sql | 82 ++++++------
src/m/test/TestClient.py | 9 ++
src/m/test/TestParking.py | 74 ++++++++++
src/m/test/TestService.py | 10 ++
src/m/test/TestVoiture.py | 28 ++++
src/{c => m}/test/__init__.py | 0
src/v/Camera.py | 2 +-
src/v/MyQWidget.py | 7 +-
src/v/Ui_Borne.py | 98 +++++++++++---
src/v/Ui_CreaParking.py | 34 +++--
src/v/Ui_MainWindow.py | 86 ++++++++----
src/v/Ui_Panneau.py | 6 -
src/v/Ui_Service.py | 78 -----------
ui/borne.py | 95 +++++++++++--
ui/borne.ui | 189 +++++++++++++++++++++-----
ui/creaParking.py | 31 +++--
ui/creationParking.ui | 38 ++++--
ui/main.py | 82 +++++++++---
ui/main.ui | 203 ++++++++++++++++++++++++----
34 files changed, 1301 insertions(+), 586 deletions(-)
delete mode 100644 src/c/SelectService.py
delete mode 100644 src/c/test/TestAcces.py
delete mode 100644 src/c/test/TestTeleporteur.py
create mode 100644 src/m/test/TestClient.py
create mode 100644 src/m/test/TestParking.py
create mode 100644 src/m/test/TestService.py
create mode 100644 src/m/test/TestVoiture.py
rename src/{c => m}/test/__init__.py (100%)
delete mode 100644 src/v/Ui_Panneau.py
delete mode 100644 src/v/Ui_Service.py
diff --git a/.idea/gestionParking.iml b/.idea/gestionParking.iml
index 6e81b8d..7301f59 100644
--- a/.idea/gestionParking.iml
+++ b/.idea/gestionParking.iml
@@ -5,5 +5,12 @@
+
+
+
+
+
+
+
diff --git a/src/Launchme.py b/src/Launchme.py
index e6b9709..2690f9e 100644
--- a/src/Launchme.py
+++ b/src/Launchme.py
@@ -8,9 +8,9 @@ __author__ = 'sidya'
if __name__ == "__main__":
- c = connexionBDD()
- c.initialisationBDD()
- c.seDeconnecter()
+ #c = connexionBDD()
+ #c.initialisationBDD()
+ #c.seDeconnecter()
# lancement du controleur principal
main = Main()
diff --git a/src/c/Borne.py b/src/c/Borne.py
index 805adee..e51403a 100644
--- a/src/c/Borne.py
+++ b/src/c/Borne.py
@@ -1,10 +1,9 @@
from PyQt4 import QtGui
-from src.c.SelectService import SelectService
from src.c.Teleporteur import Teleporteur
from src.m.Parking import Placement
from src.m.Client import Client
-from src.m.Service import Service
+from src.m.Service import Service, TypeService
from src.m.Client import TypeAbonnement
from src.v.Camera import Camera
from src.v.MyQWidget import MyQWidget
@@ -16,8 +15,12 @@ __author__ = 'sidya'
class Borne:
"""
- Controleur de la vue de la borne permettant l'accès au parking
+ Controleur de la vue des bornes permettant l'accès au parking
"""
+ bornes = []
+ @staticmethod
+ def MajBornes():
+ pass
def __init__(self, main, parking):
self.__parking = parking
@@ -41,29 +44,54 @@ class Borne:
# Validator
- self.__ui.label_aff.setText("Dream park")
- self.__ui.nomParking.setText(parking.nom)
+
+ self.__ui.label_aff.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
+ self.__ui.nomParking.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.nonVoiture()
self.showWindow()
+ self.__ui.nomParking.setText("Borne " + str(len(self.bornes)+1) + " - Parking : " +parking.nom)
+ def blockAll(self):
+ self.__ui.box_abo.setDisabled(True)
+ self.__ui.box_garer.setDisabled(True)
+ self.__ui.box_id.setDisabled(True)
+ self.__ui.box_recup.setDisabled(True)
+
+ self.__ui.btn_Voiture.setDisabled(True)
+ self.__ui.btn_annuler.setDisabled(True)
+ self.__ui.btn_desabo.setDisabled(True)
+
def nonVoiture(self):
"""
Met en etat initial de départ sans voiture
:return:
"""
+ self.__ui.label_aff.setText("Dream park")
self.__c = None
self.__ui.box_abo.setDisabled(True)
self.__ui.box_garer.setDisabled(True)
self.__ui.box_id.setDisabled(True)
self.__ui.box_recup.setDisabled(False)
+ self.__ui.box_service.setDisabled(True)
+ self.__ui.btn_Voiture.setDisabled(False)
+ self.__ui.btn_desabo.setDisabled(True)
+
+ self.__ui.nomLineEdit.setText("")
+ self.__ui.prenomLineEdit.setText("")
+ self.__ui.numeroCarteLineEdit.setText("")
+ self.__ui.checkBox.setChecked(False)
+ self.__ui.lineEdit_id.setText("")
+ self.__ui.numeroTicketLineEdit.setText("")
+ self.__ui.labIdClient.setText("Non identifier")
def newVoiture(self):
"""
Meten etat d'arrive de voiture detecte par la camera
:return:
"""
- self.v_actuel = Camera.donnerVoiture()
+ self.__ui.btn_Voiture.setDisabled(True)
+ self.__v_actuel = Camera.donnerVoiture()
self.__ui.box_abo.setDisabled(False)
self.__ui.box_garer.setDisabled(False)
self.__ui.box_id.setDisabled(False)
@@ -76,18 +104,20 @@ class Borne:
Gestion de l'identification a partir d'un abo a partir de son id (lineedit)
:return:
"""
- self.__c = Client.get(self.__ui.lineEdit_id.text())
- if self.__c != None:
+ try :
+ self.__c = Client.get(self.__ui.lineEdit_id.text())
self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
- # self.__ui.labIdClient.setText(str(self.__c))
+ self.__ui.labIdClient.setText("Vous étes identifier")
self.__ui.box_id.setDisabled(True)
- else:
+ self.__ui.box_service.setDisabled(False)
+ self.__ui.btn_desabo.setDisabled(False)
+ except IndexError :
self.__ui.label_aff.setText("Echec identification")
self.__ui.labIdClient.setText("Non identifier")
def abo(self):
"""
- Gestion validation formaulaire d'abonnement
+ Gestion validation formulaire d'abonnement
:return:
"""
if self.__c != None:
@@ -99,16 +129,17 @@ class Borne:
else:
if self.__ui.checkBox.isChecked():
self.__c = Client(None,
- self.__ui.nomLineEdit,
- self.__ui.prenomLineEdit,
+ str(self.__ui.nomLineEdit.text()),
+ str(self.__ui.prenomLineEdit.text()),
"",
TypeAbonnement.SUPER_ABONNE)
else:
self.__c = Client(None,
- self.__ui.nomLineEdit,
- self.__ui.prenomLineEdit,
+ str(self.__ui.nomLineEdit.text()),
+ str(self.__ui.prenomLineEdit.text()),
"",
TypeAbonnement.ABONNE)
+ print(self.__c)
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
self.__ui.lineEdit_id.setText(self.__c.id)
self.identification()
@@ -118,27 +149,29 @@ class Borne:
Gestion de la validation de garer son vehicule
:return:
"""
+ id = None
if self.__c is None:
- p = self.__parking.recherchePlace(self.v_actuel)
- if p is None :
- self.__ui.label_aff.setText("Aucun Place disponible")
- else :
- id = Teleporteur.teleporterVoiture(self.v_actuel, p)
- self.__ui.label_aff.setText("Votre num ticket est : " + str(id))
- self.nonVoiture()
+ p = self.__parking.recherchePlace(self.__v_actuel)
+ if p is not None:
+ id = Teleporteur.teleporterVoiture(self.__v_actuel, p)
else:
if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE:
- p = self.__parking.recherchePlace(self.v_actuel)
- if p is None :
- self.__ui.label_aff.setText("Aucun Place disponible")
- else :
- id = Teleporteur.teleporterVoiture(self.v_actuel, self.__parking.recherchePlace(self.v_actuel))
- self.__w.hide()
- self.__child = SelectService(self.__main)
- self.__ui.label_aff.setText("Votre num ticket est : " + str(id))
- self.nonVoiture()
+ p = self.__parking.recherchePlace(self.__v_actuel)
+ if p is not None :
+ id = Teleporteur.teleporterVoiture(self.__v_actuel, p)
+ if self.__ui.checkBox_Livraison_2.isChecked():
+ Service(None, self.__c, p, TypeService.LIVRAISON)
+ if self.__ui.checkBox_Entretien_2.isChecked():
+ Service(None, self.__c, p, TypeService.ENTRETIEN)
+ if self.__ui.checkBox_Maintenance_2.isChecked():
+ Service(None, self.__c, p, TypeService.MAINTENANCE)
else:
- Teleporteur.teleporterVoitureSuperAbonne(self.v_actuel)
+ Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel)
+ if id is not None:
+ self.nonVoiture()
+ self.ticketDepot(id)
+ else:
+ self.__ui.label_aff.setText("Aucune Place Disponible Pour Votre Véhicule. Devenez Super Abonné!")
def recuperer(self):
@@ -149,11 +182,22 @@ class Borne:
try :
p = Placement.get(self.__ui.numeroTicketLineEdit.text())
Teleporteur.teleporterVersSortie(p)
- self.__ui.label_aff.setText("Bonne journée")
+ self.nonVoiture()
+ self.ticketDepot(id)
except IndexError:
self.__ui.label_aff.setText("Mauvais numero de ticket")
+ def ticketDepot(self, id):
+ QtGui.QMessageBox.information(self.__w,
+ "Ticket",
+ "Votre numero ticket : " + str(id)
+ )
+ def ticketRetrait(self):
+ QtGui.QMessageBox.information(self.__w,
+ "Ticket",
+ "Merci de votre confiance! Bonne journée !"
+ )
def showWindow(self):
"""
@@ -169,9 +213,9 @@ class Borne:
Gestion de sortie de la vue borne
:return:
"""
- self.__w.hide()
self.__main.showWindow()
+
def error(self):
"""
Qdialog message erreur
diff --git a/src/c/CreaParking.py b/src/c/CreaParking.py
index 091a33a..dd0f5d7 100644
--- a/src/c/CreaParking.py
+++ b/src/c/CreaParking.py
@@ -65,7 +65,7 @@ class CreaParking:
if result == QtGui.QMessageBox.Yes:
self._main.activity("Annulation Creation Parking", self._main.lvl.INFO)
- self._w.hide()
+ #self._w.hide()
self._main.showWindow()
def valider(self):
@@ -76,9 +76,12 @@ class CreaParking:
# try:
l = []
for i in range(0, self._ui.tableWidget.rowCount()):
- l.append(TypePlace(None,int(self._ui.tableWidget.item(i, 0).text()), int(self._ui.tableWidget.item(i, 1).text()),
- int(self._ui.tableWidget.item(i, 2).text())))
- p = Parking(self._ui.lineEdit_nom.text(),l)
+ l.append(TypePlace(None, int(self._ui.tableWidget.item(i, 0).text()),
+ int(self._ui.tableWidget.item(i, 1).text()),
+ int(self._ui.tableWidget.item(i, 2).text()),
+ float(self._ui.tableWidget.item(i, 3).text()),
+ int(self._ui.tableWidget.item(i, 4).text())))
+ p = Parking(None, self._ui.lineEdit_nom.text(), l)
self._main.activity("Ajout:" + str(p), self._main.lvl.INFO)
self._w.hide()
self._main.showWindow()
diff --git a/src/c/DetailsPlaces.py b/src/c/DetailsPlaces.py
index dcf6089..4c7c44e 100644
--- a/src/c/DetailsPlaces.py
+++ b/src/c/DetailsPlaces.py
@@ -22,9 +22,9 @@ class DetailsPlaces(CreaParking):
self._ui.lineEdit_nom.setDisabled(True)
self._ui.tableWidget.setDisabled(True)
- self._ui.btn_annuler.setDisabled(True)
- self._ui.btn_addRow.setDisabled(True)
- self._ui.btn_rmRow.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()
diff --git a/src/c/Main.py b/src/c/Main.py
index f71821c..a8b454e 100644
--- a/src/c/Main.py
+++ b/src/c/Main.py
@@ -7,7 +7,10 @@ from src.c.DetailsPlaces import DetailsPlaces
from src.c.log.log import Log
from src.c.log.log import lvl
from src.c.CreaParking import CreaParking
+from src.m.Service import Service
from src.m.Parking import Parking
+from src.m.Service import TypeService
+from src.m.connexionBDD import connexionBDD
from src.v.MyQMainWindow import MyQMainWindow
from src.v.Ui_MainWindow import Ui_MainWindow
@@ -32,7 +35,11 @@ class Main:
self.__ui.btn_creer.clicked.connect(self.creerParking)
self.__ui.btn_supprimer.clicked.connect(self.rmParking)
self.__ui.btn_details.clicked.connect(self.detailsPlacesParking)
- self.__ui.btn_borne.clicked.connect(self.afficherBorne)
+ self.__ui.btn_borne.clicked.connect(self.afficherBornes)
+ self.__ui.actionNouveau_2.triggered.connect(self.nouveau)
+ self.__ui.actionSauvegarder.triggered.connect(self.sauver)
+ self.__ui.actionCharger.triggered.connect(self.charger)
+ self.__ui.actionQuitter.triggered.connect(self.quitter)
@@ -66,21 +73,40 @@ class Main:
def majListeParking(self):
self.__ui.comboBox.clear()
self.__ui.comboBox.addItem("Selectionner un parking")
- for p in Parking.getAll():
+ for p in Parking.getAllActif():
self.__ui.comboBox.addItem(p.nom)
def selectParking(self):
+ #onglet detail parking
self.__ui.nom.clear()
self.__ui.placesParNiveau.clear()
self.__ui.placesDispo.clear()
self.__ui.placesSuperAbo.clear()
if self.__ui.comboBox.count() > 1:
- p = Parking.getAll()
+ p = Parking.getAllActif()
self.__ui.nom.setText(p[self.__ui.comboBox.currentIndex() - 1].nom)
self.__ui.placesParNiveau.setText(str(p[self.__ui.comboBox.currentIndex() - 1].nbPlaces))
self.__ui.placesDispo.setText(
str(p[self.__ui.comboBox.currentIndex() - 1].nbPlacesLibresParking))
self.__ui.placesSuperAbo.setText(str(p[self.__ui.comboBox.currentIndex() - 1].nbSuperAbo))
+ self.__ui.btn_details.setDisabled(False)
+ self.__ui.btn_supprimer.setDisabled(False)
+ self.__ui.btn_borne.setDisabled(False)
+ else:
+ self.__ui.btn_details.setDisabled(True)
+ self.__ui.btn_supprimer.setDisabled(True)
+ self.__ui.btn_borne.setDisabled(True)
+
+ #onglet Service
+ for s in Service.serviceEnCours:
+ if s.typeService == TypeService.LIVRAISON :
+ self.__ui.comboBox_livraison.addItem(str(s.id))
+ if s.typeService == TypeService.ENTRETIEN :
+ self.__ui.comboBox_entretien.addItem(str(s.id))
+ if s.typeService == TypeService.MAINTENANCE :
+ self.__ui.comboBox_maintenance.addItem(str(s.id))
+
+ #Onglet Stats
def creerParking(self):
@@ -98,23 +124,52 @@ class Main:
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
if result == QtGui.QMessageBox.Yes:
- self.__parkings.remove(self.__parkings[self.__ui.comboBox.currentIndex() - 1])
+ Parking.remove(Parking.parkings[self.__ui.comboBox.currentIndex() - 1])
self.__view.hide()
self.showWindow()
def detailsPlacesParking(self):
+ if self.__ui.comboBox.currentIndex() != 0 :
+ self.__view.hide()
+ self.__widgetCourant = DetailsPlaces(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
+
+ def afficherBornes(self):
if self.__ui.comboBox.currentIndex() != 0:
self.__view.hide()
- self.__widgetCourant = DetailsPlaces(self, Parking.getAll()[self.__ui.comboBox.currentIndex() - 1])
+ Borne.bornes.append(Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1]))
+ Borne.bornes.append(Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1]))
- def afficherBorne(self):
- if self.__ui.comboBox.currentIndex() != 0:
- self.__view.hide()
- self.__widgetCourant = Borne(self, Parking.getAll()[self.__ui.comboBox.currentIndex() - 1])
+ def nouveau(self):
+ result = QtGui.QMessageBox.question(self.__view,
+ "Confirmer Nouveau...",
+ "Etes vous sur de vouloir supprimer ?\n"
+ "(Toutes données non sauvegardées seront perdues)",
+ QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
+ if result == QtGui.QMessageBox.Yes:
+ c = connexionBDD()
+ c.initialisationBDD()
+ c.seDeconnecter()
+ Parking.removeAllRam()
+ self.majListeParking()
+ def charger(self):
+ path = QtGui.QFileDialog.getOpenFileName(self.__view,"Charger",".")
+ if path:
+ connexionBDD.charger(path)
+ self.majListeParking()
+
+ def sauver(self):
+ path = QtGui.QFileDialog.getSaveFileName(self.__view,"Sauvegarder",".")
+ if path:
+ connexionBDD.sauver(path)
+ self.majListeParking()
+
+ def quitter(self):
+ self.__view.close()
def showWindow(self):
self.majListeParking()
self.__view.show()
self.__widgetCourant = None # supprime eventuel widget
+ Borne.bornes = []
self.__view.focusWidget() # reprend le focus sur la fenetre principal
\ No newline at end of file
diff --git a/src/c/SelectService.py b/src/c/SelectService.py
deleted file mode 100644
index ca1b444..0000000
--- a/src/c/SelectService.py
+++ /dev/null
@@ -1,55 +0,0 @@
-from PyQt4 import QtGui
-from src.v.MyQWidget import MyQWidget
-from src.v.Ui_Service import Ui_Service
-
-
-__author__ = 'sidya'
-
-
-class SelectService:
- """
- Controleur de cretion de parking
- """
- def __init__(self, main):
- self.__main = main
- self.__main.activity("Choix Service", self.__main.lvl.INFO)
-
- self._w = MyQWidget(self.__main)
- self.__ui = Ui_Service()
- self.__ui.setupUi(self._w)
-
- # connect
- self.__ui.btn_valider.clicked.connect(self.valider)
-
- # Validator
-
-
- self.showWindow()
-
-
- def valider(self):
- """
- Gestion validation de formulaire de choix de service
- :return:
- """
-
-
- def showWindow(self):
- """
- Gestion affichage vue Creation de Parking
- :return:
- """
- self._w.show()
- self.__child = None # supprime l'eventuel widget enfant
- self._w.focusWidget() # reprend le focus sur la fenetre
-
- def error(self):
- """
- Qdialog message erreur
- :return:
- """
- QtGui.QMessageBox.warning(self._w,
- "Erreur ...",
- "Erreur lors du choix de service ...")
- self._w.hide()
- self.__main.showWindow()
\ No newline at end of file
diff --git a/src/c/Teleporteur.py b/src/c/Teleporteur.py
index f42d3d4..e042462 100644
--- a/src/c/Teleporteur.py
+++ b/src/c/Teleporteur.py
@@ -6,13 +6,16 @@ __author__ = 'sidya'
class Teleporteur:
@staticmethod
def teleporterVoiture(voiture, place):
- p = Placement(None,voiture, place,None,None)
+ p = Placement(None,voiture, place)
+ place.prendre()
return p.id
@staticmethod
- def teleporterVoitureSuperAbonne(voiture):
- pass
+ def teleporterVoitureSuperAbonne(voiture, parking):
+ place = parking.addPlaceSuperAbo()
+ p = Placement(None, voiture, place)
+ return p.id
@staticmethod
def teleporterVersSortie(placement):
- placement.end()
\ No newline at end of file
+ placement.end()
diff --git a/src/c/test/TestAcces.py b/src/c/test/TestAcces.py
deleted file mode 100644
index a01ad3f..0000000
--- a/src/c/test/TestAcces.py
+++ /dev/null
@@ -1,5 +0,0 @@
-__author__ = 'sidya'
-
-
-class TestAcces:
- pass
\ No newline at end of file
diff --git a/src/c/test/TestTeleporteur.py b/src/c/test/TestTeleporteur.py
deleted file mode 100644
index dbb6d10..0000000
--- a/src/c/test/TestTeleporteur.py
+++ /dev/null
@@ -1,5 +0,0 @@
-__author__ = 'sidya'
-
-
-class TestTeleporteur:
- pass
diff --git a/src/m/Client.py b/src/m/Client.py
index 6b2f280..e9d7c73 100644
--- a/src/m/Client.py
+++ b/src/m/Client.py
@@ -6,40 +6,52 @@ from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Client:
- @staticmethod
- def get(id):
- 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()
- return Client(id, row["nom"],row["prenom"],row["adresse"], bool(row["typeAbonnement"]))
-
-
def __init__(self,id, nom, prenom, adresse, typeAbonnement):
- self.__nom = nom
- self.__prenom = prenom
- self.__typeAbonnement = typeAbonnement
- self.__adresse = adresse
-
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.get(id)
+ 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)))
- self.__id = id
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):
@@ -54,7 +66,7 @@ class Client:
return self.__id
@property
- def adr(self):
+ def adr(self,nom, prenom, adresse, typeAbonnement):
return self.__adresse
@property
diff --git a/src/m/Parking.py b/src/m/Parking.py
index 73e8463..e8ea595 100644
--- a/src/m/Parking.py
+++ b/src/m/Parking.py
@@ -1,6 +1,6 @@
import random
import string
-import datetime
+import time
from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
@@ -10,30 +10,51 @@ __author__ = 'sidya'
class Parking:
parkings = []
-
@staticmethod
def get(id):
+ if len(Parking.parkings) == 0 :
+ Parking.getAllActif()
for p in Parking.parkings :
if p.id == id :
return p
@staticmethod
- def getAll():
+ def getAllActif():
+ if len(Parking.parkings) == 0 :
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM parking WHERE actif = 1")
+ rows = r.fetchall()
+ c.seDeconnecter()
+ for row in rows :
+ Parking(row["idParking"], row["nom"], None)
return Parking.parkings
-
- def __init__(self, nom, listeTypePlace):
- self.__nom = nom
+ @staticmethod
+ def remove(parking):
+ Parking.parkings.remove(parking)
c = connexionBDD()
- c.execute("INSERT INTO parking (nom) VALUES ('"+str(self.__nom)+"')", ())
- self.__id = c.lastId()
+ c.execute("UPDATE parking SET actif = 0 WHERE idParking='"+str(parking.id)+"'")
+ c.seDeconnecter()
- #Crea des places
- n = 0
- for typePlace in listeTypePlace :
- for i in range(typePlace.nombre) :
- print(Place(None,self,typePlace,1,n,True,False))
- n += 1
+ @staticmethod
+ def removeAllRam():
+ Parking.parkings = []
+
+
+ def __init__(self, id, nom=None, listeTypePlace=None):
+ self.__nom = nom
+ if id is None :
+ c = connexionBDD()
+ c.execute("INSERT INTO parking (nom) VALUES ('"+str(self.__nom)+"')", ())
+ self.__id = c.lastId()
+ #Crea des places
+ n = 0
+ for typePlace in listeTypePlace :
+ for i in range(typePlace.nombre) :
+ print(Place(None,self,typePlace,n,1,True,False))
+ n += 1
+ else :
+ self.__id = id
self.parkings.append(self)
@property
@@ -64,40 +85,47 @@ class Parking:
"""
return Place.placeValide(self.__id, voiture)
+ def addPlaceSuperAbo(self, parking):
+ return Place(None, parking, None, None, None, True)
+
def __str__(self):
return "[Parking : nom = " + self.__nom +"]"
class Place:
- @staticmethod
- def get(id):
- c = connexionBDD()
- r = c.execute("SELECT * FROM place WHERE idPlace='"+str(id)+"'")
- row = r.fetchone()
- if row is None :
- raise IndexError("Invalid id")
- c.seDeconnecter()
- return Place(id,row["idParking"],row["idTypePlace"],row["niveau"],
- row["numero"],row["estLibre"],row["estSuperAbo"])
-
- def __init__(self, id, parking, typePlace, niveau, numero, estLibre, estSuperAbo):
- self.__parking = parking
- self.__typePlace = typePlace
- self.__niveau = niveau
- self.__numero = numero
- self.__estLibre = estLibre
- self.__estSuperAbo = estSuperAbo
+ def __init__(self, id=None, parking=None, typePlace=None, numero=None, niveau=None,estLibre=True, estSuperAbo=False):
if id is None :
+ self.__parking = parking
+ self.__typePlace = typePlace
+ self.__numero = numero
+ self.__niveau = niveau
+ self.__estLibre = estLibre
+ self.__estSuperAbo = estSuperAbo
c = connexionBDD()
- c.execute("INSERT INTO place (idParking, idTypePlace, niveau, numero, estLibre, estSuperAbo) "
- "VALUES (?,?,?,?,?,?)",
- (self.__parking.id, self.__typePlace.id,self.__niveau,
- self.__numero, self.__estLibre, int(self.__estSuperAbo)))
+ c.execute("INSERT INTO place (idParking, idTypePlace, numero, estLibre, estSuperAbo) "
+ "VALUES (?,?,?,?,?)",
+ (self.__parking.id, self.__typePlace.id,
+ self.__numero, int(self.__estLibre), int(self.__estSuperAbo)))
self.__id = c.lastId()
c.seDeconnecter()
else :
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM place WHERE idPlace='"+str(id)+"'")
+ row = r.fetchone()
+ if row is None :
+ raise IndexError("Invalid id")
+ c.seDeconnecter()
+ self.__parking = Parking.get(row["idParking"])
+ self.__typePlace = TypePlace(row["idTypePlace"])
+ self.__numero = row["numero"]
+ self.__estLibre = row["estLibre"]
+ self.__estSuperAbo = row["estSuperAbo"]
self.__id = id
+ @property
+ def id(self):
+ return self.__id
+
def prendre(self):
"""
Rend la place indisponible
@@ -108,7 +136,7 @@ class Place:
raise Exception("Place déjà prise")
self.__estLibre = False
c = connexionBDD()
- 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()
def liberer(self):
@@ -118,16 +146,23 @@ class Place:
"""
if (self.__estLibre == True):
raise Exception("Impossible de liberer une place vide")
- self.__estLibre = False
+ self.__estLibre = True
c = connexionBDD()
- c.execute("UPDATE place SET estLibre = 1 WHERE idPlace = ?", (str(self.__id)))
+ c.execute("UPDATE place SET estLibre = 1 WHERE idPlace ='"+str(self.__id)+"'")
c.seDeconnecter()
+ @property
+ def identification(self):
+ return TypePlace(self.__typePlace).niveau + ":" + self.__numero
+
+ @property
+ def estlibre(self):
+ return self.__estLibre
+
@staticmethod
def nbPlaceParking(idParking):
c = connexionBDD()
- print("lol")
- r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ?", (str(idParking)))
+ r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = " + str(idParking))
row = r.fetchone()
c.seDeconnecter()
return row[0]
@@ -135,7 +170,7 @@ class Place:
@staticmethod
def nbPlaceLibreParking(idParking):
c = connexionBDD()
- r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ? AND estLibre = 1", (str(idParking)))
+ r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estLibre = 1")
row = r.fetchone()
c.seDeconnecter()
return row[0]
@@ -143,7 +178,7 @@ class Place:
@staticmethod
def nbSuperAbo(idParking):
c = connexionBDD()
- r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ? AND estSuperAbo = 1", (str(idParking)))
+ r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estSuperAbo = 1")
row = r.fetchone()
c.seDeconnecter()
return row[0]
@@ -160,48 +195,47 @@ class Place:
if row is None :
return None
else :
- return Place(row["idPlace"],row["idParking"], row["idtypePlace"],
- row["niveau"], row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"]))
+ return Place(row["idPlace"],row["idParking"], row["idTypePlace"],
+ row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"]))
def __str__(self):
return "[Place : " \
"Parking = " + str(self.__parking) + "," \
"typePlace = " + str(self.__typePlace) + "," \
- "niveau = " + str(self.__niveau) + "," \
"numero = " + str(self.__numero) + "," \
"estLibre = " + str(self.__estLibre) + "," \
"estSuperAbo = " + str(self.__estSuperAbo) + "]" \
- @property
- def id(self):
- return self.__id
+
class TypePlace:
- @staticmethod
- def get(id):
- c = connexionBDD()
- r = c.execute("SELECT * FROM typePlace WHERE idTypePlace='"+str(id)+"'")
- row = r.fetchone()
- if row is None :
- raise IndexError("Invalid id")
- c.seDeconnecter()
- return TypePlace(id,row["longueur"],row["hauteur"],row["nombre"])
-
-
- def __init__(self, id ,longueur, hauteur, nombre):
- self.__longueur = longueur
- self.__hauteur = hauteur
- self.__nombre = nombre
+ def __init__(self, id ,longueur=None, hauteur=None, nombre=None, prix=None, niveau=None):
if id is None :
+ self.__longueur = longueur
+ self.__hauteur = hauteur
+ self.__nombre = nombre
+ self.__prix = prix
+ self.__niveau = niveau
c = connexionBDD()
- c.execute("INSERT INTO typePlace (longueur,hauteur,nombre) VALUES (?,?,?)",
- (self.__longueur, self.__hauteur, self.__nombre))
+ c.execute("INSERT INTO typePlace (longueur,hauteur,nombre, prix, niveau) VALUES (?,?,?,?,?)",
+ (self.__longueur, self.__hauteur, self.__nombre,self.__prix, self.__niveau))
self.__id = c.lastId()
c.seDeconnecter()
else:
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM typePlace WHERE idTypePlace='"+str(id)+"'")
+ row = r.fetchone()
+ if row is None :
+ raise IndexError("Invalid id")
+ c.seDeconnecter()
+ self.__longueur = row["longueur"]
+ self.__hauteur = row["hauteur"]
+ self.__nombre = row["nombre"]
+ self.__prix = row["prix"]
+ self.__niveau = row["niveau"]
self.__id = id
@property
@@ -220,43 +254,36 @@ class TypePlace:
def nombre(self):
return self.__nombre
+ @property
+ def prix(self):
+ return self.__prix
+
+ @property
+ def niveau(self):
+ return self.__niveau
+
def __str__(self):
return "[TypePlace : " \
"id = " + str(self.__id) + "," \
"longueur = " + str(self.__longueur) + "," \
- "hauteur = " + str(self.hauteur) + "," \
- "nombre = " + str(self.nombre) + "]"
+ "hauteur = " + str(self.__hauteur) + "," \
+ "nombre = " + str(self.__nombre) + "," \
+ "prix = " + str(self.__prix) + "," \
+ "niveau = " + str(self.__niveau) + "]"
class Placement:
- placementsEnCours = []
-
- @staticmethod
- def get(id):
- c = connexionBDD()
- r = c.execute("SELECT * FROM placement WHERE idPlacement='"+str(id)+"'")
- row = r.fetchone()
- if row is None :
- raise IndexError("Invalid id")
- c.seDeconnecter()
- print(row["idVoiture"])
- return Placement(row["idPlacement"], Voiture.get(row["idVoiture"]), Place.get(row["idPlace"]),
- row["debut"], row["fin"])
-
-
- def __init__(self,id, voiture, place, debut, fin):
+ def __init__(self, id, voiture=None, place=None, debut=None, fin=None):
"""
Creer un placement
:param voiture: Voiture
:param place: Place
:return:
"""
- self.__voiture = voiture
- self.__place = place
- place.prendre()
- self.placementsEnCours.append(self)
if id is None :
- self.__debut = datetime.datetime
+ self.__voiture = voiture
+ self.__place = place
+ self.__debut = time.time()
self.__fin = None
while True:
id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
@@ -271,6 +298,14 @@ class Placement:
self.__id = id
c.seDeconnecter()
else:
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM placement WHERE idPlacement='"+str(id)+"'")
+ row = r.fetchone()
+ if row is None :
+ raise IndexError("Invalid id")
+ c.seDeconnecter()
+ self.__voiture = row["voiture"]
+ self.__place = row["place"]
self.__id = id
self.__debut = debut
self.__fin = fin
@@ -279,23 +314,20 @@ class Placement:
def id(self):
return self.__id
+ @property
+ def place(self):
+ return self.__place
+
+ def end(self):
+ self.__fin = time.time()
+ c = connexionBDD()
+ c.execute("UPDATE placement SET fin='"+str(self.__fin)+"' WHERE idPlacement='"+str(id)+"'")
+ c.seDeconnecter()
+
def __str__(self):
return "[Placement : " \
- "id = " + self.__id +"," \
- "Voiture = " + self.__voiture +"," \
- "Place = " + self.__place +"," \
- "Debut = " + self.__debut +"," \
- "Fin = " + self.__fin +"]"
-
-
-
-
-if __name__ == "__main__" :
- c = connexionBDD()
- c.initialisationBDD()
- c.seDeconnecter()
- listeTypePlaces = []
- listeTypePlaces.append(TypePlace(None,200, 300,10))
- listeTypePlaces.append(TypePlace(None,120, 250,15))
- p = Parking("test",listeTypePlaces)
- print (p)
\ No newline at end of file
+ "id = " + str(self.__id) +"," \
+ "Voiture = " + str(self.__voiture) +"," \
+ "Place = " + str(self.__place) +"," \
+ "Debut = " + str(self.__debut) +"," \
+ "Fin = " + str(self.__fin) +"]"
\ No newline at end of file
diff --git a/src/m/Service.py b/src/m/Service.py
index 27d053a..fdf90cf 100644
--- a/src/m/Service.py
+++ b/src/m/Service.py
@@ -1,4 +1,74 @@
+import time
+from src.m import Client
+from src.m.Parking import Placement
+from src.m.connexionBDD import connexionBDD
+
__author__ = 'sidya'
class Service:
- pass
\ No newline at end of file
+ @staticmethod
+ def getAllEnCours(parking):
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM service WHERE dateRealisation = NULL "
+ "AND idPlacement = (SELECT idPlacement FORM PLACEMENT WHERE "
+ "idPlace = (SELECT idPlace FROM Place WHERE idParking '"+str(parking.id)+"'))")
+ rows = r.fetchall()
+ c.seDeconnecter()
+ l =[]
+ for row in rows:
+ l.append(Service(row["idService"], Client.get(row["idClient"]), Placement.get(row["idPlacement"]),
+ row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
+ return l
+
+ def __init__(self, id, client= None, placement= None, typeService= None,
+ dateService = None, dateDemande = time.time(), dateRealisation = None):
+ if id is None :
+ self.__client = client
+ self.__placement = placement
+ self.__typeService = typeService
+ self.__dateDemande = dateDemande
+ self.__dateService = dateService
+ self.__dateRealisation = dateRealisation
+ c = connexionBDD()
+ c.execute("INSERT INTO service (idClient,idPlacement, typeService, dateDemande) VALUES (?,?,?,?)",
+ (str(self.__client.id), str(self.__placement.id), str(self.__typeService), str(self.__dateDemande)))
+ self.__id = c.lastId()
+ c.seDeconnecter()
+ else:
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM service WHERE idService='"+str(id)+"'")
+ row = r.fetchone()
+ if row is None :
+ raise IndexError("Invalid id")
+ c.seDeconnecter()
+ self.__id = id
+ self.__client = row["client"]
+ self.__placement = row["placement"]
+ self.__typeService = row["typeService"]
+ self.__dateDemande = row["dateDemande"]
+ self.__dateService = row["dateService"]
+ self.__dateRealisation = row["dateRealisation"]
+
+
+ @property
+ def id(self):
+ return self.__id
+
+ @property
+ def typeService(self) :
+ return self.__typeService
+
+ def __str__(self):
+ return "[Service : " \
+ "id = " + str(self.__id) +"," \
+ "Client = " + str(self.__client) +"," \
+ "TypeService = " + str(self.__typeService) +"," \
+ "DateDemande = " + str(self.__dateDemande) +"," \
+ "DateService = " + str(self.__dateService) +"," \
+ "DateRealisation = " + str(self.__dateRealisation) +"]"
+
+
+class TypeService:
+ MAINTENANCE = 1
+ ENTRETIEN = 2
+ LIVRAISON = 3
\ No newline at end of file
diff --git a/src/m/Voiture.py b/src/m/Voiture.py
index 3ac4fd5..0a1d1ed 100644
--- a/src/m/Voiture.py
+++ b/src/m/Voiture.py
@@ -3,31 +3,32 @@ from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Voiture:
- @staticmethod
- def get(id):
- c = connexionBDD()
- r = c.execute("SELECT * FROM voiture WHERE idVoiture='"+str(id)+"'")
- row = r.fetchone()
- if row is None :
- raise IndexError("Invalid id")
- c.seDeconnecter()
- return Voiture(id,row["longueur"],row["hauteur"],row["imma"], bool(row["estDansParking"]))
-
-
- def __init__(self, longueur, hauteur, imma, estDansParking):
- self.__longueur = longueur
- self.__hauteur = hauteur
- self.__imma = imma
- self.__estDansParking = estDansParking
-
+ def __init__(self, id, idClient=None, longueur=None, hauteur=None, imma=None, estDansParking=False):
if id is None :
+ self.__idClient = idClient
+ self.__longueur = longueur
+ self.__hauteur = hauteur
+ self.__imma = imma
+ self.__estDansParking = estDansParking
c = connexionBDD()
- c.execute("INSERT INTO voiture (longueur,hauteur,imma, estDansParking) VALUES (?,?,?,?)",
+ c.execute("INSERT INTO voiture (longueur, hauteur, imma, estDansParking) VALUES (?,?,?,?)",
(self.__longueur, self.__hauteur, self.__imma, int(self.__estDansParking)))
self.__id = c.lastId()
c.seDeconnecter()
else:
+ c = connexionBDD()
+ r = c.execute("SELECT * FROM voiture WHERE idVoiture='"+str(id)+"'")
+ row = r.fetchone()
+ if row is None :
+ raise IndexError("Invalid id")
+ c.seDeconnecter()
self.__id = id
+ self.__idClient = row["idClient"]
+ self.__longueur = row["longueur"]
+ self.__hauteur = row["hauteur"]
+ self.__imma = row["imma"]
+ self.__estDansParking = row["estDansParking"]
+
@property
def id(self):
@@ -43,7 +44,7 @@ class Voiture:
@property
def immatriculation(self):
- return self.__immatriculation
+ return self.__imma
@property
def estDansParking(self):
@@ -51,7 +52,8 @@ class Voiture:
def __str__(self):
return "[Voiture :" \
- " longueur = " +self.__longueur + ", " \
- " hauteur = " +self.__hauteur + ", " \
- " imma = " +self.__imma + ", " \
- " estDansParking = " +self.__estDansParking + "]"
\ No newline at end of file
+ " id = " + str(self.__id) + ", " \
+ " longueur = " + str(self.__longueur) + ", " \
+ " hauteur = " + str(self.__hauteur) + ", " \
+ " imma = " + str(self.__imma) + ", " \
+ " estDansParking = " + str(self.__estDansParking)+"]"
\ No newline at end of file
diff --git a/src/m/connexionBDD.py b/src/m/connexionBDD.py
index 6546a4c..9c4a48a 100644
--- a/src/m/connexionBDD.py
+++ b/src/m/connexionBDD.py
@@ -1,14 +1,26 @@
+from shutil import copyfile
+
__author__ = 'sidya'
import sqlite3
class connexionBDD:
+ __chemin = "m/BDDprojetPython.sq3"
+ __sql = "m/table.sql"
def __init__(self):
- self.__chemin = "m/BDDprojetPython.sq3"
- self.__conn = sqlite3.connect(self.__chemin)
+ try:
+ with open(self.__chemin):
+ pass
+ except IOError:
+ self.__conn = sqlite3.connect(connexionBDD.__chemin)
+ self.__conn.row_factory = sqlite3.Row
+ self.__cur = self.__conn.cursor()
+ self.initialisationBDD()
+ self.__conn = sqlite3.connect(connexionBDD.__chemin)
self.__conn.row_factory = sqlite3.Row
self.__cur = self.__conn.cursor()
+
def execute(self, req, param = ()):
r = None
#try:
@@ -26,7 +38,15 @@ class connexionBDD:
self.__conn.close()
def initialisationBDD(self):
- with open("m/table.sql") as f:
+ with open(self.__sql) as f:
sql = f.read()
self.__conn.executescript(sql)
self.__conn.commit()
+
+ @staticmethod
+ def sauver(path):
+ copyfile(connexionBDD.chemin, path)
+
+ @staticmethod
+ def charger(path):
+ copyfile(path, connexionBDD.chemin)
diff --git a/src/m/table.sql b/src/m/table.sql
index 3c15ed4..f77882c 100644
--- a/src/m/table.sql
+++ b/src/m/table.sql
@@ -1,75 +1,77 @@
DROP TABLE IF EXISTS service;
DROP TABLE IF EXISTS contrat;
+DROP TABLE IF EXISTS voiture;
DROP TABLE IF EXISTS client;
DROP TABLE IF EXISTS abonnement;
DROP TABLE IF EXISTS placement;
-DROP TABLE IF EXISTS voiture;
DROP TABLE IF EXISTS place;
DROP TABLE IF EXISTS parking;
DROP TABLE IF EXISTS typePlace;
-
-
CREATE TABLE parking (
- idParking INTEGER PRIMARY KEY ,
- nom VARCHAR(30)
- );
+ idParking INTEGER PRIMARY KEY,
+ nom VARCHAR(30),
+ actif INTEGER(1) DEFAULT 1
+ );
CREATE TABLE typePlace (
- idTypePlace INTEGER PRIMARY KEY ,
- longueur INTEGER ,
- hauteur INTEGER ,
- nombre INTEGER
+ idTypePlace INTEGER PRIMARY KEY,
+ longueur INTEGER,
+ hauteur INTEGER,
+ nombre INTEGER,
+ prix FLOAT,
+ niveau INTEGER
);
CREATE TABLE place (
- idPlace INTEGER PRIMARY KEY ,
- idParking INTEGER ,
- idTypePlace INTEGER ,
- niveau INTEGER ,
- numero INTEGER ,
+ idPlace INTEGER PRIMARY KEY,
+ idParking INTEGER,
+ idTypePlace INTEGER,
+ numero INTEGER,
estLibre INTEGER(1),
estSuperAbo INTEGER(1),
- FOREIGN KEY (idParking) REFERENCES parking(id),
- FOREIGN KEY (idTypePlace) REFERENCES typePlace(id)
+ FOREIGN KEY (idParking) REFERENCES parking(idParking),
+ FOREIGN KEY (idTypePlace) REFERENCES typePlace(idTypePlace)
);
-CREATE TABLE voiture (
- idVoiture INTEGER PRIMARY KEY ,
- hauteur INTEGER ,
- longueur INTEGER ,
- imma VARCHAR(10),
- estDansParking INTEGER(1)
-);
-
-
CREATE TABLE placement (
- idPlacement VARCHAR(10) PRIMARY KEY ,
- idVoiture INTEGER ,
- idPlace INTEGER ,
- debut DATE,
- fin DATE,
- FOREIGN KEY (idVoiture) REFERENCES voiture(id),
- FOREIGN KEY (idPlace) REFERENCES place(id)
+ idPlacement VARCHAR(10) PRIMARY KEY,
+ idVoiture INTEGER,
+ idPlace INTEGER,
+ debut TIMESTAMP,
+ fin TIMESTAMP,
+ FOREIGN KEY (idVoiture) REFERENCES voiture(idVoiture),
+ FOREIGN KEY (idPlace) REFERENCES place(idPlace)
);
CREATE TABLE client (
- idClient VARCHAR(10) PRIMARY KEY ,
+ idClient VARCHAR(10) PRIMARY KEY,
nom VARCHAR(20),
prenom VARCHAR(20),
adresse VARCHAR(50),
typeAbonnement INTEGER
);
+CREATE TABLE voiture (
+ idVoiture INTEGER PRIMARY KEY,
+ idClient VARCHAR(10),
+ hauteur INTEGER,
+ longueur INTEGER,
+ imma VARCHAR(10),
+ estDansParking INTEGER(1)
+);
+
CREATE TABLE service (
- idService INTEGER PRIMARY KEY ,
+ idService INTEGER PRIMARY KEY,
idClient VARCHAR(10),
- dateDemande DATE,
- dateService DATE,
- dateRealisation DATE,
- rapport VARCHAR(255),
- FOREIGN KEY (idClient) REFERENCES client(id)
+ idPlacement VARCHAR(10),
+ typeService INTEGER,
+ dateDemande TIMESTAMP,
+ dateService TIMESTAMP,
+ dateRealisation TIMESTAMP
+ FOREIGN KEY (idClient) REFERENCES client(idClient),
+ FOREIGN KEY (idPlacement) REFERENCES placement(idPlacement)
);
\ No newline at end of file
diff --git a/src/m/test/TestClient.py b/src/m/test/TestClient.py
new file mode 100644
index 0000000..e9bdaef
--- /dev/null
+++ b/src/m/test/TestClient.py
@@ -0,0 +1,9 @@
+__author__ = 'sidya'
+
+from nose.tools import assert_equal
+
+from src.m.Parking import Parking, TypePlace, Place
+
+class TestClient :
+ def TestClient(self):
+ pass
\ No newline at end of file
diff --git a/src/m/test/TestParking.py b/src/m/test/TestParking.py
new file mode 100644
index 0000000..495c510
--- /dev/null
+++ b/src/m/test/TestParking.py
@@ -0,0 +1,74 @@
+__author__ = 'sidya'
+
+from nose.tools import assert_equal
+
+from src.m.Parking import Parking, TypePlace, Place
+
+class TestParking :
+ def TestParking(self):
+ p = Parking(None,"test",[TypePlace(None,220,200,4,2.5,1),TypePlace(None,200,130,5,2.5,1)])
+ id = p.id
+ assert_equal(p.nbPlacesLibresParking, 9, "Nombre de place libre non valide")
+ assert_equal(p.nbPlaces, 9, "Nombre de place non valide")
+ assert_equal(p.nbSuperAbo, 0, "Nombre de place super abo")
+
+ def TestRecherchePlace(self):
+ pass
+
+class TestPlace :
+ def TestPlace(self):
+ t1 =TypePlace(None,220,200,4,2.5,1)
+ parking = Parking(None,"test",[t1])
+
+ p = Place(None,parking,t1,2,1)
+
+ def TestPrendreLiberer(self):
+ t1 = TypePlace(None,220,200,4,2.5,1)
+ parking = Parking(None,"test",[t1])
+
+ p = Place(None,parking,t1,2,1)
+
+ assert_equal(p.estlibre, True, "La place devrait etre libre")
+
+ p.prendre()
+ assert_equal(p.estlibre, False, "La place ne devrait ne pas etre libre")
+
+ try:
+ p.prendre()
+ assert_equal(True, False, "Une place prise ne peut pas a nouveau prise")
+ except Exception :
+ pass
+
+ p.liberer()
+ assert_equal(p.estlibre, True, "La place devrait etre libre")
+
+ try:
+ p.liberer()
+ assert_equal(True, False, "Une place libre ne peut pas a nouveau liberée")
+ except Exception :
+ pass
+
+
+class TestTypePlace :
+ def TestTypePlace(self):
+ #Creation
+ t = TypePlace(None,220,200,4,2.5,1)
+ assert_equal(t.longueur, 220, "Valeur non attendue pour la longueur")
+ assert_equal(t.hauteur, 200,"Valeur non attendue pour la hauteur")
+ assert_equal(t.nombre,4,"Valeur non attendue pour le nombre de place")
+ assert_equal(t.prix, 2.5,"Valeur non attendue pour le prix")
+ assert_equal(t.niveau, 1, "Valeur non attendue pour le niveau")
+ id = t.id
+
+ #Recuperer un TypePlace Non existant
+ try:
+ t = TypePlace("aaaa")
+ assert_equal(True, False, "Un id invalide pour une type de place doit lever une exection")
+ except IndexError :
+ pass
+
+ #Recuperer un TypePlace existant
+ try:
+ t = TypePlace(id)
+ except IndexError :
+ assert_equal(True, False, "Un id valide pour une type de place ne doit pas lever une exection")
\ No newline at end of file
diff --git a/src/m/test/TestService.py b/src/m/test/TestService.py
new file mode 100644
index 0000000..6525846
--- /dev/null
+++ b/src/m/test/TestService.py
@@ -0,0 +1,10 @@
+from src.m.Service import Service
+
+__author__ = 'sidya'
+
+from nose.tools import assert_equal
+
+
+class TestService :
+ def TestService(self):
+ pass
\ No newline at end of file
diff --git a/src/m/test/TestVoiture.py b/src/m/test/TestVoiture.py
new file mode 100644
index 0000000..3fc021a
--- /dev/null
+++ b/src/m/test/TestVoiture.py
@@ -0,0 +1,28 @@
+from src.m.Voiture import Voiture
+
+__author__ = 'sidya'
+
+from nose.tools import assert_equal
+
+
+
+class TestVoiture :
+ def TestVoiture(self):
+ v = Voiture(None,None,120,100,"IMMA")
+ assert_equal(v.longueur, 120, "Ne retourne pas la longueur attendue")
+ assert_equal(v.hauteur, 100, "Ne retourne pas la hateur attendue")
+ assert_equal(v.immatriculation, "IMMA", "Ne retourne pas l'immatriculation attendue")
+ id = v.id
+
+ #Recuperer une Voiture Non existant
+ try:
+ t = Voiture("aaaa")
+ assert_equal(True, False, "Un id invalide pour une voiture doit lever une exection")
+ except IndexError :
+ pass
+
+ #Recuperer un Voiture existant
+ try:
+ t = Voiture(id)
+ except IndexError :
+ assert_equal(True, False, "Un id valide pour une voiture ne doit pas lever une exection")
\ No newline at end of file
diff --git a/src/c/test/__init__.py b/src/m/test/__init__.py
similarity index 100%
rename from src/c/test/__init__.py
rename to src/m/test/__init__.py
diff --git a/src/v/Camera.py b/src/v/Camera.py
index 1dcd918..3e075a6 100644
--- a/src/v/Camera.py
+++ b/src/v/Camera.py
@@ -10,7 +10,7 @@ __author__ = 'sidya'
class Camera:
@classmethod
def donnerVoiture(self):
- v = Voiture(random.randint(150, 300), random.randint(100, 200), ''.join(
+ v = Voiture(None, None, random.randint(150, 300), random.randint(100, 200), ''.join(
random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10))),False)
return v
diff --git a/src/v/MyQWidget.py b/src/v/MyQWidget.py
index c183d21..82bfc28 100644
--- a/src/v/MyQWidget.py
+++ b/src/v/MyQWidget.py
@@ -11,12 +11,9 @@ class MyQWidget(QtGui.QWidget):
def closeEvent(self, event):
result = QtGui.QMessageBox.question(self,
"Confirmer Fermeture...",
- "Etes vous sur de vouloir abandonner ?\n"
- "(Toute modification non enregistrée seras perdu)",
+ "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()
- self.w = QtGui.QWidget
\ No newline at end of file
+ self.__main.showWindow()
\ No newline at end of file
diff --git a/src/v/Ui_Borne.py b/src/v/Ui_Borne.py
index 752319e..5837fa9 100644
--- a/src/v/Ui_Borne.py
+++ b/src/v/Ui_Borne.py
@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'borne.ui'
#
-# Created: Mon Jan 12 14:40:36 2015
-# by: PyQt4 UI code generator 4.11.3
+# 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!
@@ -17,23 +17,21 @@ except AttributeError:
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_Borne(object):
def setupUi(self, Borne):
Borne.setObjectName(_fromUtf8("Borne"))
- Borne.resize(669, 579)
+ Borne.resize(809, 579)
self.btn_Voiture = QtGui.QPushButton(Borne)
- self.btn_Voiture.setGeometry(QtCore.QRect(140, 40, 211, 27))
+ self.btn_Voiture.setGeometry(QtCore.QRect(30, 40, 211, 27))
self.btn_Voiture.setObjectName(_fromUtf8("btn_Voiture"))
self.nomParking = QtGui.QLabel(Borne)
- self.nomParking.setGeometry(QtCore.QRect(300, 10, 151, 20))
+ self.nomParking.setGeometry(QtCore.QRect(10, 10, 791, 20))
self.nomParking.setObjectName(_fromUtf8("nomParking"))
self.box_id = QtGui.QGroupBox(Borne)
self.box_id.setGeometry(QtCore.QRect(20, 150, 331, 171))
@@ -60,7 +58,7 @@ class Ui_Borne(object):
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.horizontalLayout.addLayout(self.verticalLayout)
self.labIdClient = QtGui.QLabel(self.box_id)
- self.labIdClient.setGeometry(QtCore.QRect(130, 31, 91, 16))
+ self.labIdClient.setGeometry(QtCore.QRect(30, 31, 261, 20))
self.labIdClient.setObjectName(_fromUtf8("labIdClient"))
self.box_abo = QtGui.QGroupBox(Borne)
self.box_abo.setGeometry(QtCore.QRect(20, 350, 331, 201))
@@ -99,12 +97,13 @@ class Ui_Borne(object):
self.btn_desabo.setGeometry(QtCore.QRect(120, 160, 87, 27))
self.btn_desabo.setObjectName(_fromUtf8("btn_desabo"))
self.box_recup = QtGui.QGroupBox(Borne)
- self.box_recup.setGeometry(QtCore.QRect(380, 350, 271, 121))
+ self.box_recup.setGeometry(QtCore.QRect(380, 350, 401, 171))
self.box_recup.setObjectName(_fromUtf8("box_recup"))
self.formLayoutWidget_2 = QtGui.QWidget(self.box_recup)
- self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 261, 80))
+ self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 341, 61))
self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2"))
self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2)
+ self.formLayout_2.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_2.setMargin(0)
self.formLayout_2.setObjectName(_fromUtf8("formLayout_2"))
self.numeroTicketLabel = QtGui.QLabel(self.formLayoutWidget_2)
@@ -116,29 +115,87 @@ class Ui_Borne(object):
self.btn_recuperer = QtGui.QPushButton(self.formLayoutWidget_2)
self.btn_recuperer.setObjectName(_fromUtf8("btn_recuperer"))
self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.btn_recuperer)
+ self.pushButton = QtGui.QPushButton(self.box_recup)
+ self.pushButton.setGeometry(QtCore.QRect(240, 130, 101, 27))
+ self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label_aff = QtGui.QLabel(Borne)
- self.label_aff.setGeometry(QtCore.QRect(10, 90, 641, 31))
+ self.label_aff.setGeometry(QtCore.QRect(10, 90, 791, 31))
self.label_aff.setObjectName(_fromUtf8("label_aff"))
self.box_garer = QtGui.QGroupBox(Borne)
- self.box_garer.setGeometry(QtCore.QRect(390, 150, 231, 131))
+ self.box_garer.setGeometry(QtCore.QRect(340, 140, 471, 201))
self.box_garer.setObjectName(_fromUtf8("box_garer"))
self.btn_garer = QtGui.QPushButton(self.box_garer)
- self.btn_garer.setGeometry(QtCore.QRect(50, 60, 131, 27))
+ self.btn_garer.setGeometry(QtCore.QRect(290, 170, 131, 27))
self.btn_garer.setObjectName(_fromUtf8("btn_garer"))
+ self.box_service = QtGui.QGroupBox(self.box_garer)
+ self.box_service.setGeometry(QtCore.QRect(10, 20, 521, 151))
+ self.box_service.setObjectName(_fromUtf8("box_service"))
+ self.dateTimeEdit = QtGui.QDateTimeEdit(self.box_service)
+ self.dateTimeEdit.setGeometry(QtCore.QRect(320, 30, 121, 23))
+ self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit"))
+ self.layoutWidget_2 = QtGui.QWidget(self.box_service)
+ self.layoutWidget_2.setGeometry(QtCore.QRect(20, 20, 109, 121))
+ self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2"))
+ self.verticalLayout_4 = QtGui.QVBoxLayout(self.layoutWidget_2)
+ self.verticalLayout_4.setMargin(0)
+ self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
+ self.checkBox_Livraison_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Livraison_2.setObjectName(_fromUtf8("checkBox_Livraison_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Livraison_2)
+ self.checkBox_Maintenance_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Maintenance_2.setObjectName(_fromUtf8("checkBox_Maintenance_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Maintenance_2)
+ self.checkBox_Entretien_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Entretien_2.setObjectName(_fromUtf8("checkBox_Entretien_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Entretien_2)
+ self.formLayoutWidget_3 = QtGui.QWidget(self.box_service)
+ self.formLayoutWidget_3.setGeometry(QtCore.QRect(130, 30, 181, 41))
+ self.formLayoutWidget_3.setObjectName(_fromUtf8("formLayoutWidget_3"))
+ self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_3)
+ self.formLayout_4.setMargin(0)
+ self.formLayout_4.setObjectName(_fromUtf8("formLayout_4"))
+ self.lieuLabel_2 = QtGui.QLabel(self.formLayoutWidget_3)
+ self.lieuLabel_2.setObjectName(_fromUtf8("lieuLabel_2"))
+ self.formLayout_4.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel_2)
+ self.lieuLineEdit_2 = QtGui.QLineEdit(self.formLayoutWidget_3)
+ self.lieuLineEdit_2.setObjectName(_fromUtf8("lieuLineEdit_2"))
+ self.formLayout_4.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit_2)
self.btn_annuler = QtGui.QPushButton(Borne)
- self.btn_annuler.setGeometry(QtCore.QRect(390, 40, 87, 27))
+ self.btn_annuler.setGeometry(QtCore.QRect(290, 40, 87, 27))
self.btn_annuler.setObjectName(_fromUtf8("btn_annuler"))
self.btn_quitter = QtGui.QPushButton(Borne)
self.btn_quitter.setGeometry(QtCore.QRect(520, 540, 87, 27))
self.btn_quitter.setObjectName(_fromUtf8("btn_quitter"))
+ self.lcdNumber = QtGui.QLCDNumber(Borne)
+ self.lcdNumber.setGeometry(QtCore.QRect(590, 10, 171, 61))
+ self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
self.retranslateUi(Borne)
QtCore.QMetaObject.connectSlotsByName(Borne)
+ Borne.setTabOrder(self.btn_Voiture, self.btn_annuler)
+ Borne.setTabOrder(self.btn_annuler, self.lineEdit_id)
+ Borne.setTabOrder(self.lineEdit_id, self.btn_validerID)
+ Borne.setTabOrder(self.btn_validerID, self.nomLineEdit)
+ Borne.setTabOrder(self.nomLineEdit, self.prenomLineEdit)
+ Borne.setTabOrder(self.prenomLineEdit, self.numeroCarteLineEdit)
+ Borne.setTabOrder(self.numeroCarteLineEdit, self.checkBox)
+ Borne.setTabOrder(self.checkBox, self.btn_desabo)
+ Borne.setTabOrder(self.btn_desabo, self.btn_valider_abo)
+ Borne.setTabOrder(self.btn_valider_abo, self.checkBox_Livraison_2)
+ Borne.setTabOrder(self.checkBox_Livraison_2, self.lieuLineEdit_2)
+ Borne.setTabOrder(self.lieuLineEdit_2, self.dateTimeEdit)
+ Borne.setTabOrder(self.dateTimeEdit, self.checkBox_Maintenance_2)
+ Borne.setTabOrder(self.checkBox_Maintenance_2, self.checkBox_Entretien_2)
+ Borne.setTabOrder(self.checkBox_Entretien_2, self.btn_garer)
+ Borne.setTabOrder(self.btn_garer, self.numeroTicketLineEdit)
+ Borne.setTabOrder(self.numeroTicketLineEdit, self.btn_recuperer)
+ Borne.setTabOrder(self.btn_recuperer, self.pushButton)
+ Borne.setTabOrder(self.pushButton, self.btn_quitter)
def retranslateUi(self, Borne):
Borne.setWindowTitle(_translate("Borne", "Borne", None))
self.btn_Voiture.setText(_translate("Borne", "Detection Arrivee Voiture", None))
- self.nomParking.setText(_translate("Borne", "NomParking", None))
+ self.nomParking.setText(_translate("Borne", "
NomParking
", None))
self.box_id.setTitle(_translate("Borne", "Identification", None))
self.label.setText(_translate("Borne", "Carte Membre ID ", None))
self.btn_validerID.setText(_translate("Borne", "Valider", None))
@@ -146,17 +203,22 @@ class Ui_Borne(object):
self.box_abo.setTitle(_translate("Borne", "S\'abonner", None))
self.nomLabel.setText(_translate("Borne", "Nom", None))
self.prenomLabel.setText(_translate("Borne", "Prenom", None))
- self.numeroCarteLabel.setText(_translate("Borne", "Numero carte", None))
+ self.numeroCarteLabel.setText(_translate("Borne", "CB", None))
self.checkBox.setText(_translate("Borne", "PackGarantie", None))
self.btn_valider_abo.setText(_translate("Borne", "Valider", None))
self.btn_desabo.setText(_translate("Borne", "Désabonner", None))
self.box_recup.setTitle(_translate("Borne", "Récuperer", None))
self.numeroTicketLabel.setText(_translate("Borne", "Numero Ticket :", None))
self.btn_recuperer.setText(_translate("Borne", "Récupérer Véhicule", None))
- self.label_aff.setText(
- _translate("Borne", "TextLabel
", None))
+ self.pushButton.setText(_translate("Borne", "Payer", None))
+ self.label_aff.setText(_translate("Borne", "TextLabel
", None))
self.box_garer.setTitle(_translate("Borne", "Se garer", None))
self.btn_garer.setText(_translate("Borne", "Garer Véhicule", None))
+ self.box_service.setTitle(_translate("Borne", "Service (Abonnée seulement)", None))
+ self.checkBox_Livraison_2.setText(_translate("Borne", "Livraison", None))
+ self.checkBox_Maintenance_2.setText(_translate("Borne", "Maintenance", None))
+ self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None))
+ self.lieuLabel_2.setText(_translate("Borne", "Lieu", None))
self.btn_annuler.setText(_translate("Borne", "Annuler", None))
self.btn_quitter.setText(_translate("Borne", "Quitter", None))
diff --git a/src/v/Ui_CreaParking.py b/src/v/Ui_CreaParking.py
index 2ddc0ab..6c92b5d 100644
--- a/src/v/Ui_CreaParking.py
+++ b/src/v/Ui_CreaParking.py
@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'creationParking.ui'
#
-# Created: Mon Jan 5 16:57:56 2015
-# by: PyQt4 UI code generator 4.11.3
+# Created: Sat Jan 17 15:11:03 2015
+# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@@ -17,20 +17,18 @@ except AttributeError:
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(400, 300)
+ CreaParking.resize(622, 300)
self.layoutWidget = QtGui.QWidget(CreaParking)
- self.layoutWidget.setGeometry(QtCore.QRect(90, 270, 201, 29))
+ 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)
@@ -42,7 +40,7 @@ class Ui_CreaParking(object):
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
- self.layoutWidget1.setGeometry(QtCore.QRect(60, 230, 275, 25))
+ self.layoutWidget1.setGeometry(QtCore.QRect(200, 230, 275, 25))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout_3.setMargin(0)
@@ -54,9 +52,9 @@ class Ui_CreaParking(object):
self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal"))
self.horizontalLayout_3.addWidget(self.nbPlacesTotal)
self.tableWidget = QtGui.QTableWidget(CreaParking)
- self.tableWidget.setGeometry(QtCore.QRect(10, 90, 321, 121))
+ self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
- self.tableWidget.setColumnCount(3)
+ self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
@@ -64,14 +62,18 @@ class Ui_CreaParking(object):
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(350, 120, 41, 27))
+ 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(350, 160, 41, 27))
+ self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget2 = QtGui.QWidget(CreaParking)
- self.layoutWidget2.setGeometry(QtCore.QRect(52, 12, 291, 56))
+ self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2)
self.horizontalLayout.setMargin(0)
@@ -104,11 +106,15 @@ class Ui_CreaParking(object):
self.label_4.setText(_translate("CreaParking", "Nombre Places Total : ", None))
self.nbPlacesTotal.setText(_translate("CreaParking", "TextLabel", None))
item = self.tableWidget.horizontalHeaderItem(0)
- item.setText(_translate("CreaParking", "Hauteur", None))
+ item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)
- item.setText(_translate("CreaParking", "Longueur", None))
+ 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))
diff --git a/src/v/Ui_MainWindow.py b/src/v/Ui_MainWindow.py
index 0784c1c..8c97ff1 100644
--- a/src/v/Ui_MainWindow.py
+++ b/src/v/Ui_MainWindow.py
@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'main.ui'
#
-# Created: Mon Jan 12 15:29:56 2015
-# by: PyQt4 UI code generator 4.11.3
+# 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!
@@ -17,22 +17,20 @@ except AttributeError:
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_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.resize(561, 509)
+ MainWindow.resize(601, 596)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
- self.tabWidget.setGeometry(QtCore.QRect(0, 0, 561, 441))
+ self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
@@ -47,9 +45,6 @@ class Ui_MainWindow(object):
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.verticalLayout = QtGui.QVBoxLayout(self.tab_2)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
- self.comboBox = QtGui.QComboBox(self.tab_2)
- self.comboBox.setObjectName(_fromUtf8("comboBox"))
- self.verticalLayout.addWidget(self.comboBox)
self.formLayout_3 = QtGui.QFormLayout()
self.formLayout_3.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_3.setObjectName(_fromUtf8("formLayout_3"))
@@ -94,22 +89,54 @@ class Ui_MainWindow(object):
self.btn_supprimer.setObjectName(_fromUtf8("btn_supprimer"))
self.verticalLayout.addWidget(self.btn_supprimer)
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
- self.tab_5 = QtGui.QWidget()
- self.tab_5.setObjectName(_fromUtf8("tab_5"))
- self.tableWidget = QtGui.QTableWidget(self.tab_5)
- self.tableWidget.setGeometry(QtCore.QRect(60, 20, 431, 351))
- self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
- self.tableWidget.setColumnCount(1)
- self.tableWidget.setRowCount(0)
- item = QtGui.QTableWidgetItem()
- self.tableWidget.setHorizontalHeaderItem(0, item)
- self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
+ self.groupBox = QtGui.QGroupBox(self.tab_3)
+ self.groupBox.setGeometry(QtCore.QRect(30, 60, 501, 111))
+ self.groupBox.setObjectName(_fromUtf8("groupBox"))
+ self.comboBox_maintenance = QtGui.QComboBox(self.groupBox)
+ self.comboBox_maintenance.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_maintenance.setObjectName(_fromUtf8("comboBox_maintenance"))
+ self.btn_effectuer_maintenance = QtGui.QPushButton(self.groupBox)
+ self.btn_effectuer_maintenance.setGeometry(QtCore.QRect(326, 70, 161, 27))
+ self.btn_effectuer_maintenance.setObjectName(_fromUtf8("btn_effectuer_maintenance"))
+ self.groupBox_2 = QtGui.QGroupBox(self.tab_3)
+ self.groupBox_2.setGeometry(QtCore.QRect(30, 180, 501, 101))
+ self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
+ self.comboBox_entretien = QtGui.QComboBox(self.groupBox_2)
+ self.comboBox_entretien.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_entretien.setObjectName(_fromUtf8("comboBox_entretien"))
+ self.btn_effectuer_entretien = QtGui.QPushButton(self.groupBox_2)
+ self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27))
+ self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien"))
+ self.groupBox_3 = QtGui.QGroupBox(self.tab_3)
+ self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111))
+ self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
+ self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3)
+ self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison"))
+ self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3)
+ self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27))
+ self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison"))
self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
+ self.tab_4 = QtGui.QWidget()
+ self.tab_4.setObjectName(_fromUtf8("tab_4"))
+ self.label_2 = QtGui.QLabel(self.tab_4)
+ self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16))
+ self.label_2.setObjectName(_fromUtf8("label_2"))
+ self.label_3 = QtGui.QLabel(self.tab_4)
+ self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16))
+ self.label_3.setObjectName(_fromUtf8("label_3"))
+ self.label_4 = QtGui.QLabel(self.tab_4)
+ self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16))
+ self.label_4.setObjectName(_fromUtf8("label_4"))
+ self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
+ self.comboBox = QtGui.QComboBox(self.centralwidget)
+ self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27))
+ self.comboBox.setObjectName(_fromUtf8("comboBox"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 561, 25))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 601, 25))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFichier = QtGui.QMenu(self.menubar)
self.menuFichier.setObjectName(_fromUtf8("menuFichier"))
@@ -137,7 +164,10 @@ class Ui_MainWindow(object):
self.actionQuitter.setObjectName(_fromUtf8("actionQuitter"))
self.action = QtGui.QAction(MainWindow)
self.action.setObjectName(_fromUtf8("action"))
+ self.actionNouveau_2 = QtGui.QAction(MainWindow)
+ self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2"))
self.menuFichier.addAction(self.actionCharger)
+ self.menuFichier.addAction(self.actionNouveau_2)
self.menuFichier.addAction(self.actionSauvegarder)
self.menuFichier.addSeparator()
self.menuFichier.addAction(self.actionQuitter)
@@ -146,7 +176,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(1)
+ self.tabWidget.setCurrentIndex(2)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
@@ -166,10 +196,17 @@ class Ui_MainWindow(object):
self.btn_creer.setText(_translate("MainWindow", "Créer", None))
self.btn_supprimer.setText(_translate("MainWindow", "Supprimer", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None))
- item = self.tableWidget.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Nouvelle colonne", None))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None))
+ self.groupBox.setTitle(_translate("MainWindow", "Maintenance", None))
+ self.btn_effectuer_maintenance.setText(_translate("MainWindow", "Effectuer Maintenance", None))
+ self.groupBox_2.setTitle(_translate("MainWindow", "Entretien", None))
+ self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None))
+ self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None))
+ self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", 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.label_3.setText(_translate("MainWindow", "Frequentation par mois", None))
+ self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None))
self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))
self.actionCharger.setText(_translate("MainWindow", "Charger", None))
@@ -181,4 +218,5 @@ class Ui_MainWindow(object):
self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None))
self.actionQuitter.setText(_translate("MainWindow", "Quitter", None))
self.action.setText(_translate("MainWindow", "?", None))
+ self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None))
diff --git a/src/v/Ui_Panneau.py b/src/v/Ui_Panneau.py
deleted file mode 100644
index 64edb88..0000000
--- a/src/v/Ui_Panneau.py
+++ /dev/null
@@ -1,6 +0,0 @@
-__author__ = 'sidya'
-
-
-class Panneau:
- def afficherNbPlaceDisponible(self, parking):
- print(parking.nbPlacesLibresParking())
\ No newline at end of file
diff --git a/src/v/Ui_Service.py b/src/v/Ui_Service.py
deleted file mode 100644
index 697f22e..0000000
--- a/src/v/Ui_Service.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'service.ui'
-#
-# Created: Mon Jan 12 17:07:46 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_Service(object):
- def setupUi(self, Service):
- Service.setObjectName(_fromUtf8("Service"))
- Service.resize(469, 221)
- self.btn_valider = QtGui.QPushButton(Service)
- self.btn_valider.setGeometry(QtCore.QRect(260, 180, 87, 27))
- self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
- self.dateTimeEdit = QtGui.QDateTimeEdit(Service)
- self.dateTimeEdit.setGeometry(QtCore.QRect(330, 60, 121, 23))
- self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit"))
- self.btn_annuler = QtGui.QPushButton(Service)
- self.btn_annuler.setGeometry(QtCore.QRect(120, 180, 87, 27))
- self.btn_annuler.setObjectName(_fromUtf8("btn_annuler"))
- self.formLayoutWidget = QtGui.QWidget(Service)
- self.formLayoutWidget.setGeometry(QtCore.QRect(160, 60, 160, 41))
- self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget"))
- self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
- 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.widget = QtGui.QWidget(Service)
- self.widget.setGeometry(QtCore.QRect(50, 50, 109, 121))
- self.widget.setObjectName(_fromUtf8("widget"))
- self.verticalLayout = QtGui.QVBoxLayout(self.widget)
- self.verticalLayout.setMargin(0)
- self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
- self.checkBox_Livraison = QtGui.QCheckBox(self.widget)
- self.checkBox_Livraison.setObjectName(_fromUtf8("checkBox_Livraison"))
- self.verticalLayout.addWidget(self.checkBox_Livraison)
- self.checkBox_Maintenance = QtGui.QCheckBox(self.widget)
- self.checkBox_Maintenance.setObjectName(_fromUtf8("checkBox_Maintenance"))
- self.verticalLayout.addWidget(self.checkBox_Maintenance)
- self.checkBox_Entretien = QtGui.QCheckBox(self.widget)
- self.checkBox_Entretien.setObjectName(_fromUtf8("checkBox_Entretien"))
- self.verticalLayout.addWidget(self.checkBox_Entretien)
-
- self.retranslateUi(Service)
- QtCore.QMetaObject.connectSlotsByName(Service)
-
- def retranslateUi(self, Service):
- Service.setWindowTitle(_translate("Service", "Form", None))
- self.btn_valider.setText(_translate("Service", "Valider", None))
- self.btn_annuler.setText(_translate("Service", "Annuler", None))
- self.lieuLabel.setText(_translate("Service", "Lieu", None))
- self.checkBox_Livraison.setText(_translate("Service", "Livraison", None))
- self.checkBox_Maintenance.setText(_translate("Service", "Maintenance", None))
- self.checkBox_Entretien.setText(_translate("Service", "Entretien", None))
-
diff --git a/ui/borne.py b/ui/borne.py
index 78662c5..9577dee 100644
--- a/ui/borne.py
+++ b/ui/borne.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'borne.ui'
#
-# Created: Mon Jan 12 14:40:36 2015
+# 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!
@@ -26,12 +26,12 @@ except AttributeError:
class Ui_Borne(object):
def setupUi(self, Borne):
Borne.setObjectName(_fromUtf8("Borne"))
- Borne.resize(669, 579)
+ Borne.resize(809, 579)
self.btn_Voiture = QtGui.QPushButton(Borne)
- self.btn_Voiture.setGeometry(QtCore.QRect(140, 40, 211, 27))
+ self.btn_Voiture.setGeometry(QtCore.QRect(30, 40, 211, 27))
self.btn_Voiture.setObjectName(_fromUtf8("btn_Voiture"))
self.nomParking = QtGui.QLabel(Borne)
- self.nomParking.setGeometry(QtCore.QRect(300, 10, 151, 20))
+ self.nomParking.setGeometry(QtCore.QRect(10, 10, 791, 20))
self.nomParking.setObjectName(_fromUtf8("nomParking"))
self.box_id = QtGui.QGroupBox(Borne)
self.box_id.setGeometry(QtCore.QRect(20, 150, 331, 171))
@@ -58,7 +58,7 @@ class Ui_Borne(object):
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.horizontalLayout.addLayout(self.verticalLayout)
self.labIdClient = QtGui.QLabel(self.box_id)
- self.labIdClient.setGeometry(QtCore.QRect(130, 31, 91, 16))
+ self.labIdClient.setGeometry(QtCore.QRect(30, 31, 261, 20))
self.labIdClient.setObjectName(_fromUtf8("labIdClient"))
self.box_abo = QtGui.QGroupBox(Borne)
self.box_abo.setGeometry(QtCore.QRect(20, 350, 331, 201))
@@ -97,12 +97,13 @@ class Ui_Borne(object):
self.btn_desabo.setGeometry(QtCore.QRect(120, 160, 87, 27))
self.btn_desabo.setObjectName(_fromUtf8("btn_desabo"))
self.box_recup = QtGui.QGroupBox(Borne)
- self.box_recup.setGeometry(QtCore.QRect(380, 350, 271, 121))
+ self.box_recup.setGeometry(QtCore.QRect(380, 350, 401, 171))
self.box_recup.setObjectName(_fromUtf8("box_recup"))
self.formLayoutWidget_2 = QtGui.QWidget(self.box_recup)
- self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 261, 80))
+ self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 341, 61))
self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2"))
self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2)
+ self.formLayout_2.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_2.setMargin(0)
self.formLayout_2.setObjectName(_fromUtf8("formLayout_2"))
self.numeroTicketLabel = QtGui.QLabel(self.formLayoutWidget_2)
@@ -114,29 +115,91 @@ class Ui_Borne(object):
self.btn_recuperer = QtGui.QPushButton(self.formLayoutWidget_2)
self.btn_recuperer.setObjectName(_fromUtf8("btn_recuperer"))
self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.btn_recuperer)
+ self.pushButton = QtGui.QPushButton(self.box_recup)
+ self.pushButton.setGeometry(QtCore.QRect(240, 130, 101, 27))
+ self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label_aff = QtGui.QLabel(Borne)
- self.label_aff.setGeometry(QtCore.QRect(10, 90, 641, 31))
+ self.label_aff.setGeometry(QtCore.QRect(10, 90, 791, 31))
self.label_aff.setObjectName(_fromUtf8("label_aff"))
self.box_garer = QtGui.QGroupBox(Borne)
- self.box_garer.setGeometry(QtCore.QRect(390, 150, 231, 131))
+ self.box_garer.setGeometry(QtCore.QRect(340, 140, 471, 201))
self.box_garer.setObjectName(_fromUtf8("box_garer"))
self.btn_garer = QtGui.QPushButton(self.box_garer)
- self.btn_garer.setGeometry(QtCore.QRect(50, 60, 131, 27))
+ self.btn_garer.setGeometry(QtCore.QRect(290, 170, 131, 27))
self.btn_garer.setObjectName(_fromUtf8("btn_garer"))
+ self.box_service = QtGui.QGroupBox(self.box_garer)
+ self.box_service.setGeometry(QtCore.QRect(10, 20, 521, 151))
+ self.box_service.setObjectName(_fromUtf8("box_service"))
+ self.dateTimeEdit = QtGui.QDateTimeEdit(self.box_service)
+ self.dateTimeEdit.setGeometry(QtCore.QRect(320, 30, 121, 23))
+ self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit"))
+ self.layoutWidget_2 = QtGui.QWidget(self.box_service)
+ self.layoutWidget_2.setGeometry(QtCore.QRect(20, 20, 109, 121))
+ self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2"))
+ self.verticalLayout_4 = QtGui.QVBoxLayout(self.layoutWidget_2)
+ self.verticalLayout_4.setMargin(0)
+ self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
+ self.checkBox_Livraison_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Livraison_2.setObjectName(_fromUtf8("checkBox_Livraison_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Livraison_2)
+ self.checkBox_Maintenance_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Maintenance_2.setObjectName(_fromUtf8("checkBox_Maintenance_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Maintenance_2)
+ self.checkBox_Entretien_2 = QtGui.QCheckBox(self.layoutWidget_2)
+ self.checkBox_Entretien_2.setObjectName(_fromUtf8("checkBox_Entretien_2"))
+ self.verticalLayout_4.addWidget(self.checkBox_Entretien_2)
+ self.formLayoutWidget_3 = QtGui.QWidget(self.box_service)
+ self.formLayoutWidget_3.setGeometry(QtCore.QRect(130, 30, 181, 41))
+ self.formLayoutWidget_3.setObjectName(_fromUtf8("formLayoutWidget_3"))
+ self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_3)
+ self.formLayout_4.setMargin(0)
+ self.formLayout_4.setObjectName(_fromUtf8("formLayout_4"))
+ self.lieuLabel_2 = QtGui.QLabel(self.formLayoutWidget_3)
+ self.lieuLabel_2.setObjectName(_fromUtf8("lieuLabel_2"))
+ self.formLayout_4.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel_2)
+ self.lieuLineEdit_2 = QtGui.QLineEdit(self.formLayoutWidget_3)
+ self.lieuLineEdit_2.setObjectName(_fromUtf8("lieuLineEdit_2"))
+ self.formLayout_4.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit_2)
self.btn_annuler = QtGui.QPushButton(Borne)
- self.btn_annuler.setGeometry(QtCore.QRect(390, 40, 87, 27))
+ self.btn_annuler.setGeometry(QtCore.QRect(290, 40, 87, 27))
self.btn_annuler.setObjectName(_fromUtf8("btn_annuler"))
self.btn_quitter = QtGui.QPushButton(Borne)
self.btn_quitter.setGeometry(QtCore.QRect(520, 540, 87, 27))
self.btn_quitter.setObjectName(_fromUtf8("btn_quitter"))
+ self.lcdNumber = QtGui.QLCDNumber(Borne)
+ self.lcdNumber.setGeometry(QtCore.QRect(590, 10, 171, 61))
+ self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
self.retranslateUi(Borne)
QtCore.QMetaObject.connectSlotsByName(Borne)
+ Borne.setTabOrder(self.btn_Voiture, self.btn_annuler)
+ Borne.setTabOrder(self.btn_annuler, self.lineEdit_id)
+ Borne.setTabOrder(self.lineEdit_id, self.btn_validerID)
+ Borne.setTabOrder(self.btn_validerID, self.nomLineEdit)
+ Borne.setTabOrder(self.nomLineEdit, self.prenomLineEdit)
+ Borne.setTabOrder(self.prenomLineEdit, self.numeroCarteLineEdit)
+ Borne.setTabOrder(self.numeroCarteLineEdit, self.checkBox)
+ Borne.setTabOrder(self.checkBox, self.btn_desabo)
+ Borne.setTabOrder(self.btn_desabo, self.btn_valider_abo)
+ Borne.setTabOrder(self.btn_valider_abo, self.checkBox_Livraison_2)
+ Borne.setTabOrder(self.checkBox_Livraison_2, self.lieuLineEdit_2)
+ Borne.setTabOrder(self.lieuLineEdit_2, self.dateTimeEdit)
+ Borne.setTabOrder(self.dateTimeEdit, self.checkBox_Maintenance_2)
+ Borne.setTabOrder(self.checkBox_Maintenance_2, self.checkBox_Entretien_2)
+ Borne.setTabOrder(self.checkBox_Entretien_2, self.btn_garer)
+ Borne.setTabOrder(self.btn_garer, self.numeroTicketLineEdit)
+ Borne.setTabOrder(self.numeroTicketLineEdit, self.btn_recuperer)
+ Borne.setTabOrder(self.btn_recuperer, self.pushButton)
+ Borne.setTabOrder(self.pushButton, self.btn_quitter)
+ Borne.setTabOrder(self.btn_quitter, Borne.checkBox_Livraison)
+ Borne.setTabOrder(Borne.checkBox_Livraison, Borne.checkBox_Maintenance)
+ Borne.setTabOrder(Borne.checkBox_Maintenance, Borne.checkBox_Entretien)
+ Borne.setTabOrder(Borne.checkBox_Entretien, Borne.lieuLineEdit)
def retranslateUi(self, Borne):
Borne.setWindowTitle(_translate("Borne", "Borne", None))
self.btn_Voiture.setText(_translate("Borne", "Detection Arrivee Voiture", None))
- self.nomParking.setText(_translate("Borne", "NomParking", None))
+ self.nomParking.setText(_translate("Borne", "NomParking
", None))
self.box_id.setTitle(_translate("Borne", "Identification", None))
self.label.setText(_translate("Borne", "Carte Membre ID ", None))
self.btn_validerID.setText(_translate("Borne", "Valider", None))
@@ -144,16 +207,22 @@ class Ui_Borne(object):
self.box_abo.setTitle(_translate("Borne", "S\'abonner", None))
self.nomLabel.setText(_translate("Borne", "Nom", None))
self.prenomLabel.setText(_translate("Borne", "Prenom", None))
- self.numeroCarteLabel.setText(_translate("Borne", "Numero carte", None))
+ self.numeroCarteLabel.setText(_translate("Borne", "CB", None))
self.checkBox.setText(_translate("Borne", "PackGarantie", None))
self.btn_valider_abo.setText(_translate("Borne", "Valider", None))
self.btn_desabo.setText(_translate("Borne", "Désabonner", None))
self.box_recup.setTitle(_translate("Borne", "Récuperer", None))
self.numeroTicketLabel.setText(_translate("Borne", "Numero Ticket :", None))
self.btn_recuperer.setText(_translate("Borne", "Récupérer Véhicule", None))
+ self.pushButton.setText(_translate("Borne", "Payer", None))
self.label_aff.setText(_translate("Borne", "TextLabel
", None))
self.box_garer.setTitle(_translate("Borne", "Se garer", None))
self.btn_garer.setText(_translate("Borne", "Garer Véhicule", None))
+ self.box_service.setTitle(_translate("Borne", "Service (Abonnée seulement)", None))
+ self.checkBox_Livraison_2.setText(_translate("Borne", "Livraison", None))
+ self.checkBox_Maintenance_2.setText(_translate("Borne", "Maintenance", None))
+ self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None))
+ self.lieuLabel_2.setText(_translate("Borne", "Lieu", None))
self.btn_annuler.setText(_translate("Borne", "Annuler", None))
self.btn_quitter.setText(_translate("Borne", "Quitter", None))
diff --git a/ui/borne.ui b/ui/borne.ui
index 7057819..5465d49 100644
--- a/ui/borne.ui
+++ b/ui/borne.ui
@@ -6,7 +6,7 @@
0
0
- 669
+ 809
579
@@ -16,7 +16,7 @@
- 140
+ 30
40
211
27
@@ -29,14 +29,14 @@
- 300
+ 10
10
- 151
+ 791
20
- NomParking
+ <html><head/><body><p align="center">NomParking</p></body></html>
@@ -90,10 +90,10 @@
- 130
+ 30
31
- 91
- 16
+ 261
+ 20
@@ -143,7 +143,7 @@
-
- Numero carte
+ CB
@@ -194,19 +194,14 @@
Désabonner
- formLayoutWidget
- checkBox
- btn_valider_abo
- btn_desabo
- prenomLineEdit
380
350
- 271
- 121
+ 401
+ 171
@@ -217,11 +212,14 @@
0
40
- 261
- 80
+ 341
+ 61
+
+ QFormLayout::AllNonFixedFieldsGrow
+
-
@@ -241,13 +239,26 @@
+
+
+
+ 240
+ 130
+ 101
+ 27
+
+
+
+ Payer
+
+
10
90
- 641
+ 791
31
@@ -258,10 +269,10 @@
- 390
- 150
- 231
- 131
+ 340
+ 140
+ 471
+ 201
@@ -270,8 +281,8 @@
- 50
- 60
+ 290
+ 170
131
27
@@ -280,11 +291,91 @@
Garer Véhicule
+
+
+
+ 10
+ 20
+ 521
+ 151
+
+
+
+ Service (Abonnée seulement)
+
+
+
+
+ 320
+ 30
+ 121
+ 23
+
+
+
+
+
+
+ 20
+ 20
+ 109
+ 121
+
+
+
+ -
+
+
+ Livraison
+
+
+
+ -
+
+
+ Maintenance
+
+
+
+ -
+
+
+ Entretien
+
+
+
+
+
+
+
+
+ 130
+ 30
+ 181
+ 41
+
+
+
+ -
+
+
+ Lieu
+
+
+
+ -
+
+
+
+
+
+ box_service
+ btn_garer
- 390
+ 290
40
87
27
@@ -307,17 +398,43 @@
Quitter
- btn_Voiture
- nomParking
-
- box_id
- box_abo
- box_recup
- label_aff
- box_garer
- btn_annuler
- btn_quitter
+
+
+
+ 590
+ 10
+ 171
+ 61
+
+
+
+
+ btn_Voiture
+ btn_annuler
+ lineEdit_id
+ btn_validerID
+ nomLineEdit
+ prenomLineEdit
+ numeroCarteLineEdit
+ checkBox
+ btn_desabo
+ btn_valider_abo
+ checkBox_Livraison_2
+ lieuLineEdit_2
+ dateTimeEdit
+ checkBox_Maintenance_2
+ checkBox_Entretien_2
+ btn_garer
+ numeroTicketLineEdit
+ btn_recuperer
+ pushButton
+ btn_quitter
+ checkBox_Livraison
+ checkBox_Maintenance
+ checkBox_Entretien
+ lieuLineEdit
+
diff --git a/ui/creaParking.py b/ui/creaParking.py
index f45fc47..20d7f1f 100644
--- a/ui/creaParking.py
+++ b/ui/creaParking.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'creationParking.ui'
#
-# Created: Mon Jan 5 16:57:56 2015
+# Created: Sat Jan 17 15:11:03 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@@ -26,9 +26,9 @@ except AttributeError:
class Ui_CreaParking(object):
def setupUi(self, CreaParking):
CreaParking.setObjectName(_fromUtf8("CreaParking"))
- CreaParking.resize(400, 300)
+ CreaParking.resize(622, 300)
self.layoutWidget = QtGui.QWidget(CreaParking)
- self.layoutWidget.setGeometry(QtCore.QRect(90, 270, 201, 29))
+ 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)
@@ -40,7 +40,7 @@ class Ui_CreaParking(object):
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
- self.layoutWidget1.setGeometry(QtCore.QRect(60, 230, 275, 25))
+ self.layoutWidget1.setGeometry(QtCore.QRect(200, 230, 275, 25))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout_3.setMargin(0)
@@ -52,9 +52,9 @@ class Ui_CreaParking(object):
self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal"))
self.horizontalLayout_3.addWidget(self.nbPlacesTotal)
self.tableWidget = QtGui.QTableWidget(CreaParking)
- self.tableWidget.setGeometry(QtCore.QRect(10, 90, 321, 121))
+ self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
- self.tableWidget.setColumnCount(3)
+ self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
@@ -62,14 +62,18 @@ class Ui_CreaParking(object):
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(350, 120, 41, 27))
+ 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(350, 160, 41, 27))
+ self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget2 = QtGui.QWidget(CreaParking)
- self.layoutWidget2.setGeometry(QtCore.QRect(52, 12, 291, 56))
+ self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2)
self.horizontalLayout.setMargin(0)
@@ -102,12 +106,17 @@ class Ui_CreaParking(object):
self.label_4.setText(_translate("CreaParking", "Nombre Places Total : ", None))
self.nbPlacesTotal.setText(_translate("CreaParking", "TextLabel", None))
item = self.tableWidget.horizontalHeaderItem(0)
- item.setText(_translate("CreaParking", "Hauteur", None))
+ item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)
- item.setText(_translate("CreaParking", "Longueur", None))
+ 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))
+
diff --git a/ui/creationParking.ui b/ui/creationParking.ui
index c2fe3b3..3bce16f 100644
--- a/ui/creationParking.ui
+++ b/ui/creationParking.ui
@@ -6,7 +6,7 @@
0
0
- 400
+ 622
300
@@ -16,8 +16,8 @@
- 90
- 270
+ 230
+ 260
201
29
@@ -42,7 +42,7 @@
- 60
+ 200
230
275
25
@@ -69,19 +69,19 @@
30
- 130
- 311
- 91
+ 100
+ 521
+ 121
- Hauteur
+ Hauteur (cm)
- Longueur
+ Longueur (cm)
@@ -89,11 +89,21 @@
Nombre
+
+
+ Etage
+
+
+
+
+ Prix (€)
+
+
- 350
+ 570
120
41
27
@@ -106,8 +116,8 @@
- 350
- 160
+ 570
+ 170
41
27
@@ -119,8 +129,8 @@
- 52
- 12
+ 180
+ 20
291
56
diff --git a/ui/main.py b/ui/main.py
index ad8652c..8c97ff1 100644
--- a/ui/main.py
+++ b/ui/main.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'main.ui'
#
-# Created: Mon Jan 12 15:29:56 2015
+# 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!
@@ -26,11 +26,11 @@ except AttributeError:
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.resize(561, 509)
+ MainWindow.resize(601, 596)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
- self.tabWidget.setGeometry(QtCore.QRect(0, 0, 561, 441))
+ self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
@@ -45,9 +45,6 @@ class Ui_MainWindow(object):
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.verticalLayout = QtGui.QVBoxLayout(self.tab_2)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
- self.comboBox = QtGui.QComboBox(self.tab_2)
- self.comboBox.setObjectName(_fromUtf8("comboBox"))
- self.verticalLayout.addWidget(self.comboBox)
self.formLayout_3 = QtGui.QFormLayout()
self.formLayout_3.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_3.setObjectName(_fromUtf8("formLayout_3"))
@@ -92,22 +89,54 @@ class Ui_MainWindow(object):
self.btn_supprimer.setObjectName(_fromUtf8("btn_supprimer"))
self.verticalLayout.addWidget(self.btn_supprimer)
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
- self.tab_5 = QtGui.QWidget()
- self.tab_5.setObjectName(_fromUtf8("tab_5"))
- self.tableWidget = QtGui.QTableWidget(self.tab_5)
- self.tableWidget.setGeometry(QtCore.QRect(60, 20, 431, 351))
- self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
- self.tableWidget.setColumnCount(1)
- self.tableWidget.setRowCount(0)
- item = QtGui.QTableWidgetItem()
- self.tableWidget.setHorizontalHeaderItem(0, item)
- self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
+ self.groupBox = QtGui.QGroupBox(self.tab_3)
+ self.groupBox.setGeometry(QtCore.QRect(30, 60, 501, 111))
+ self.groupBox.setObjectName(_fromUtf8("groupBox"))
+ self.comboBox_maintenance = QtGui.QComboBox(self.groupBox)
+ self.comboBox_maintenance.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_maintenance.setObjectName(_fromUtf8("comboBox_maintenance"))
+ self.btn_effectuer_maintenance = QtGui.QPushButton(self.groupBox)
+ self.btn_effectuer_maintenance.setGeometry(QtCore.QRect(326, 70, 161, 27))
+ self.btn_effectuer_maintenance.setObjectName(_fromUtf8("btn_effectuer_maintenance"))
+ self.groupBox_2 = QtGui.QGroupBox(self.tab_3)
+ self.groupBox_2.setGeometry(QtCore.QRect(30, 180, 501, 101))
+ self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
+ self.comboBox_entretien = QtGui.QComboBox(self.groupBox_2)
+ self.comboBox_entretien.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_entretien.setObjectName(_fromUtf8("comboBox_entretien"))
+ self.btn_effectuer_entretien = QtGui.QPushButton(self.groupBox_2)
+ self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27))
+ self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien"))
+ self.groupBox_3 = QtGui.QGroupBox(self.tab_3)
+ self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111))
+ self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
+ self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3)
+ self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27))
+ self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison"))
+ self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3)
+ self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27))
+ self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison"))
self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
+ self.tab_4 = QtGui.QWidget()
+ self.tab_4.setObjectName(_fromUtf8("tab_4"))
+ self.label_2 = QtGui.QLabel(self.tab_4)
+ self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16))
+ self.label_2.setObjectName(_fromUtf8("label_2"))
+ self.label_3 = QtGui.QLabel(self.tab_4)
+ self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16))
+ self.label_3.setObjectName(_fromUtf8("label_3"))
+ self.label_4 = QtGui.QLabel(self.tab_4)
+ self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16))
+ self.label_4.setObjectName(_fromUtf8("label_4"))
+ self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
+ self.comboBox = QtGui.QComboBox(self.centralwidget)
+ self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27))
+ self.comboBox.setObjectName(_fromUtf8("comboBox"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 561, 25))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 601, 25))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFichier = QtGui.QMenu(self.menubar)
self.menuFichier.setObjectName(_fromUtf8("menuFichier"))
@@ -135,7 +164,10 @@ class Ui_MainWindow(object):
self.actionQuitter.setObjectName(_fromUtf8("actionQuitter"))
self.action = QtGui.QAction(MainWindow)
self.action.setObjectName(_fromUtf8("action"))
+ self.actionNouveau_2 = QtGui.QAction(MainWindow)
+ self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2"))
self.menuFichier.addAction(self.actionCharger)
+ self.menuFichier.addAction(self.actionNouveau_2)
self.menuFichier.addAction(self.actionSauvegarder)
self.menuFichier.addSeparator()
self.menuFichier.addAction(self.actionQuitter)
@@ -144,7 +176,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(1)
+ self.tabWidget.setCurrentIndex(2)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
@@ -164,10 +196,17 @@ class Ui_MainWindow(object):
self.btn_creer.setText(_translate("MainWindow", "Créer", None))
self.btn_supprimer.setText(_translate("MainWindow", "Supprimer", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None))
- item = self.tableWidget.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Nouvelle colonne", None))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None))
+ self.groupBox.setTitle(_translate("MainWindow", "Maintenance", None))
+ self.btn_effectuer_maintenance.setText(_translate("MainWindow", "Effectuer Maintenance", None))
+ self.groupBox_2.setTitle(_translate("MainWindow", "Entretien", None))
+ self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None))
+ self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None))
+ self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", 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.label_3.setText(_translate("MainWindow", "Frequentation par mois", None))
+ self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None))
self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))
self.actionCharger.setText(_translate("MainWindow", "Charger", None))
@@ -179,4 +218,5 @@ class Ui_MainWindow(object):
self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None))
self.actionQuitter.setText(_translate("MainWindow", "Quitter", None))
self.action.setText(_translate("MainWindow", "?", None))
+ self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None))
diff --git a/ui/main.ui b/ui/main.ui
index 14dabbe..c448b28 100644
--- a/ui/main.ui
+++ b/ui/main.ui
@@ -6,8 +6,8 @@
0
0
- 561
- 509
+ 601
+ 596
@@ -17,10 +17,10 @@
- 0
- 0
+ 20
+ 40
561
- 441
+ 501
@@ -59,9 +59,6 @@
Parkings
- -
-
-
-
@@ -159,31 +156,173 @@
-
-
- Membres
-
-
-
-
- 60
- 20
- 431
- 351
-
-
-
-
- Nouvelle colonne
-
-
-
-
Services
+
+
+
+ 30
+ 60
+ 501
+ 111
+
+
+
+ Maintenance
+
+
+
+
+ 10
+ 20
+ 481
+ 27
+
+
+
+
+
+
+ 326
+ 70
+ 161
+ 27
+
+
+
+ Effectuer Maintenance
+
+
+
+
+
+
+ 30
+ 180
+ 501
+ 101
+
+
+
+ Entretien
+
+
+
+
+ 10
+ 20
+ 481
+ 27
+
+
+
+
+
+
+ 326
+ 60
+ 161
+ 27
+
+
+
+ Effectuer Entretien
+
+
+
+
+
+
+ 30
+ 290
+ 511
+ 111
+
+
+
+ Livraison
+
+
+
+
+ 10
+ 20
+ 481
+ 27
+
+
+
+
+
+
+ 326
+ 70
+ 161
+ 27
+
+
+
+ Effectuer Livraison
+
+
+
+
+
+ Stats
+
+
+
+
+ 40
+ 80
+ 161
+ 16
+
+
+
+ Frequentation par jour
+
+
+
+
+
+ 40
+ 110
+ 161
+ 16
+
+
+
+ Frequentation par mois
+
+
+
+
+
+ 40
+ 140
+ 241
+ 16
+
+
+
+ Duree moyenne de stationnement
+
+
+
+
+
+
+
+ 40
+ 10
+ 539
+ 27
+
+
@@ -199,6 +338,7 @@
Fichier
+
@@ -259,6 +399,11 @@
?
+
+
+ Nouveau
+
+