예제 #1
0
 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()
예제 #2
0
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()