def __init__(self, parent=None): super().__init__(parent) self.parking_controller = ParkingController() self.setupUi(self) self.event = threading.Event() self.t = SignalService(self, self.parking_controller.parking, self.event) self.setupEvents() self.t.start()
class ParkingViewer(QtGui.QTabWidget, Ui_TabWidget, QtGui.QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.parking_controller = ParkingController() self.setupUi(self) self.event = threading.Event() self.t = SignalService(self, self.parking_controller.parking, self.event) self.setupEvents() self.t.start() def faire_livraison(self): date = self.calendar_livraison.selectedDate() time = self.time_livraison.time() temp = datetime.datetime(date.year(), date.month(), date.day(), time.hour(), time.minute(), 0, 0).timestamp() num = self.numeroticket_livraison.text() try: livr = self.parking_controller.creer_livraison(temp, int(num)) if livr: QtGui.QMessageBox.question(self, "Création d'une livraison", "Le service a bien ete cree", QtGui.QMessageBox.Ok) else : if livr is None : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas dans le parking", QtGui.QMessageBox.Ok) else : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas abonne", QtGui.QMessageBox.Ok) except ValueError: reply = QtGui.QMessageBox.question(self, 'Message',"Numero de ticket invalide", QtGui.QMessageBox.Ok) def faire_entretien(self): date = self.calendar_entretien.selectedDate() time = self.time_entretien.time() temp = datetime.datetime(date.year(), date.month(), date.day(), time.hour(), time.minute(), 0, 0).timestamp() num = self.numeroticket_entretien.text() try: entr = self.parking_controller.creer_entretien(temp, int(num)) if entr: QtGui.QMessageBox.question(self, "Creation d'entretien", "L'entretien a bien ete cree", QtGui.QMessageBox.Ok) else : if entr is None : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas dans le parking", QtGui.QMessageBox.Ok) else : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas abonne", QtGui.QMessageBox.Ok) except ValueError: reply = QtGui.QMessageBox.question(self, 'Message',"Numero de ticket invalide", QtGui.QMessageBox.Ok) def faire_maintenance(self): date = self.calendar_maintenance.selectedDate() time = self.time_maintenance.time() temp = datetime.datetime(date.year(), date.month(), date.day(), time.hour(), time.minute(), 0, 0).timestamp() num = self.numeroticket_maintenance.text() try: main = self.parking_controller.creer_maintenance(temp, int(num)) if main : QtGui.QMessageBox.question(self, "Creation d'entretien", "La maintenance à bien ete cree", QtGui.QMessageBox.Ok) else : if main is None : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas dans le parking", QtGui.QMessageBox.Ok) else : QtGui.QMessageBox.question(self, "Création d'une livraison", "Vous ne pouvez bénéficier de ce service car vous n'etes pas abonne", QtGui.QMessageBox.Ok) except ValueError: reply = QtGui.QMessageBox.question(self, 'Message',"Numero de ticket invalide", QtGui.QMessageBox.Ok) def closeEvent(self, event): reply = QtGui.QMessageBox.question(self, 'Message', "Voulez vous vraiment quitter l'application?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: self.event.set() self.parking_controller.sauvegarder_parking() event.accept() else: event.ignore() def garer_button_cliked(self): nom = self.nom_edit.text() adresse = self.adresse_edit.text() moyen_paiement = str(self.paiement_combo.currentText()) abonnement = str(self.abonnement_combo.currentText()) place = self.parking_controller.ajouter_client_parking(nom, adresse, abonnement) if place is not None : self.rafraichir_nb_place() ticket = TicketViewer(place, self.parking_controller) ticket.exec_() else: QtGui.QMessageBox.question(self, 'Recuperation de voiture',"Plus de place disponible ou aucune pouvant aceuillir votre voiture", QtGui.QMessageBox.Ok) def recuperer_voiture_button_cliked(self): try: num_ticket = int(self.saisie_num_ticket_label.text()) voiture = self.parking_controller.faire_sortir(num_ticket) prix = self.parking_controller.recuperer_prix(num_ticket) if voiture is not None and prix is not None: QtGui.QMessageBox.question(self, 'Recuperation de voiture',"Au revoir mr {} le prix est de {}".format(voiture.proprietaire.nom, prix), QtGui.QMessageBox.Ok) elif voiture is not 42 : QtGui.QMessageBox.question(self, 'Recuperation de voiture',"Votre voiture n'est plus dans le parking", QtGui.QMessageBox.Ok) else: QtGui.QMessageBox.question(self, 'Recuperation de voiture',"Il n'existe pas de ticket avec ce numero", QtGui.QMessageBox.Ok) except ValueError: reply = QtGui.QMessageBox.question(self, 'Message',"Numero de ticket invalide", QtGui.QMessageBox.Ok) self.rafraichir_nb_place() def rafraichir_nb_place(self): self.place_dispo_label.setText(_translate("TabWidget", self.parking_controller.afficher_place_disponible(), None)) def clear_entretien_hour(self): date = datetime.datetime.today() if self.calendar_entretien.selectedDate() == QtCore.QDate.fromString(date.strftime("%Y-%m-%d"), 'yyyy-MM-dd'): qtime = QtCore.QTime.fromString(date.strftime("%H-%M"), 'hh-mm') self.time_entretien.setTime(qtime) self.time_entretien.setMinimumTime(qtime) print("egal", self.time_entretien.minimumTime()) else : print("pas egal") self.time_entretien.clearMinimumDate() def clear_livraison_hour(self): date = datetime.datetime.today() if self.calendar_livraison.selectedDate() == QtCore.QDate.fromString(date.strftime("%Y-%m-%d"), 'yyyy-MM-dd'): qtime = QtCore.QTime.fromString(date.strftime("%H-%M"), 'hh-mm') self.time_livraison.setTime(qtime) self.time_livraison.setMinimumTime(qtime) print("egal", self.time_livraison.minimumTime()) else : print("pas egal") self.time_livraison.clearMinimumDate() def clear_maintenance_hour(self): date = datetime.datetime.today() if self.calendar_maintenance.selectedDate() == QtCore.QDate.fromString(date.strftime("%Y-%m-%d"), 'yyyy-MM-dd'): qtime = QtCore.QTime.fromString(date.strftime("%H-%M"), 'hh-mm') self.time_maintenance.setTime(qtime) self.time_maintenance.setMinimumTime(qtime) print("egal", self.time_maintenance.minimumTime()) else : print("pas egal") self.time_maintenance.clearMinimumDate() def setupEvents(self): self.garer_button.clicked.connect(self.garer_button_cliked) self.recuperer_button.clicked.connect(self.recuperer_voiture_button_cliked) self.Valider_livraison.clicked.connect(self.faire_livraison) self.Valider_entretien.clicked.connect(self.faire_entretien) self.Valider_maintenance.clicked.connect(self.faire_maintenance) self.calendar_entretien.selectionChanged.connect(self.clear_entretien_hour) self.calendar_livraison.selectionChanged.connect(self.clear_livraison_hour) self.calendar_maintenance.selectionChanged.connect(self.clear_maintenance_hour) self.connect(self.t, QtCore.SIGNAL('signalService'), self.signal_service) def signal_service(self, msg): QtGui.QMessageBox.question(self, "Service effectue", msg, QtGui.QMessageBox.Ok) def main(self): self.show()