def go_ricevuta(self): nome = self.edit_cf_cliente.currentText().split("-") for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome( ) + " " + self.controller_cliente.get_cognome() == nome[0].strip(): self.controller_cliente.set_visita_medica("Effettuato") self.cliente_visitato = cliente self.controller_clienti.save_data() if self.cliente_visitato.get_pagamento_iniziale() == "None": QMessageBox.critical(self, "Errore", "Il cliente non ha pagato la rata iniziale!", QMessageBox.Ok) else: for visita in self.controller.get_lista_visite(): self.controller_visita = ControllerVisitaMedica(visita) if self.controller_visita.get_cliente() == nome[0].strip(): self.controller_visita.set_descrizione( self.edit_descrizione.toPlainText()) self.controller_visita.set_esito( self.edit_esito.currentText()) self.controller.save_data() QMessageBox.information(self, "Confermato", "Esito aggiunto al sistema", QMessageBox.Ok) self.go_pagamenti = VistaListaVisiteMediche.VistaListaVisiteMediche() self.go_pagamenti.show() self.close()
def elimina_pagamenti_by_cliente(self, i): start = 0 end = 0 trovato_inizio = False trovato_fine = False j = 0 self.controller_clienti = ControllerListaClienti() self.cliente = self.controller_clienti.get_lista_clienti()[i] self.controller_cliente = ControllerCliente(self.cliente) for pagamento in self.lista_pagamenti: if pagamento.get_cliente() == self.controller_cliente.get_nome( ) + " " + self.controller_cliente.get_cognome(): if not trovato_inizio: trovato_inizio = True start = j if trovato_inizio: if pagamento.get_cliente() != self.controller_cliente.get_nome( ) + " " + self.controller_cliente.get_cognome(): if not trovato_fine: trovato_fine = True end = j j += 1 print(start) print(end) if not trovato_fine: del self.lista_pagamenti[start:] else: del self.lista_pagamenti[start:end] self.sorted = sorted(self.lista_pagamenti, key=lambda x: (x.get_cliente())) self.save_data()
def go_pagamento(self): for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome( ) + " " + self.controller_cliente.get_cognome() == self.cliente: if self.n_pagamento == 0: self.controller_cliente.set_pagamento_iniziale( "Effettuato") if self.n_pagamento == 1: self.controller_cliente.set_pagamento_esame_teorico( "Effettuato") if self.n_pagamento == 2: self.controller_cliente.set_pagamento_lezioni_guida( "Effettuato") if self.n_pagamento == 3: self.controller_cliente.set_pagamento_esame_pratico( "Effettuato") if self.controller_cliente.get_id() == "None": self.controller_cliente.set_id( str(random.randint(10000, 99999))) self.controller_clienti.save_data() self.controller_pagamenti.aggiungi_pagamento(self.pagamento) self.controller_pagamenti.save_data() QMessageBox.information(self, "Confermato", "Pagamento effettuato con successo", QMessageBox.Ok) self.go_pagamenti = VistaListaPagamenti.VistaListaPagamenti() self.go_pagamenti.show() self.close()
def go_ricevuta(self): for cliente in self.lista_clienti: self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome() == \ self.edit_cliente.currentText(): self.cliente = cliente self.ricevuta = VistaRiepilogo( self.edit_prezzo.currentText(), self.edit_descrizione.currentText(), self.edit_descrizione.currentIndex(), self.cliente.get_nome() + " " + self.cliente.get_cognome()) self.ricevuta.show() self.close()
def go_new_visita(self): trovato = False for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_visita_medica() == "None": trovato = True if not trovato: QMessageBox.critical(self, "Attenzione", "Nessun cliente disponibile per prenotarsi", QMessageBox.Ok) return else: self.vista_nuovo_dipendente = VistaPrenotaVisitaMedica.VistaPrenotaVisitaMedica() self.vista_nuovo_dipendente.show() self.close()
def go_disdici(self): trovato = False for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_prenotazione() != "None": trovato = True if trovato: self.vista_esiti = VistaDisdettaPrenotazione(self.tipo) self.vista_esiti.show() self.close() else: QMessageBox.critical(self, "Errore", "Nessun cliente si è prenotato")
def go_esiti(self): trovato = False for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_prenotazione() != "None": nome = self.controller_cliente.get_prenotazione().split("-") if nome[2].strip() != "Lezione": trovato = True if trovato: self.go_esito = VistaInserisciEsitoEsame(self.tipo) self.go_esito.show() self.close() else: QMessageBox.critical(self, "Errore", "Nessun esito è presente nel sistema")
def disdici_prenotazione(self): conferma = QMessageBox.question( self, "Conferma", "Sei sicuro di voler disdire la prenotazione?", QMessageBox.Yes, QMessageBox.No) if conferma == QMessageBox.Yes: for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.selezione_cliente.currentText() == \ self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome(): self.controller_cliente.set_prenotazione("None") self.controller.save_data() self.go_home_istruttore = VistaHomeIstruttore.VistaHomeIstruttore( self.tipo) self.go_home_istruttore.show() self.close() else: return
def rimuovi_foto(self): for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome() == \ self.cliente.get_nome() + " " + self.cliente.get_cognome(): if self.controller_cliente.get_path() == "None": QMessageBox.information(self, "Errore", "Nessuna foto da eliminare", QMessageBox.Ok) return else: path = self.controller_cliente.get_path() os.remove(path) self.controller_cliente.set_path("None") self.cliente = cliente self.controller.save_data() self.refresh()
def salva_dati(self): for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome() == \ self.cliente.get_nome() + " " + self.cliente.get_cognome(): self.controller_cliente.set_nome(self.nome_edit.text()) self.controller_cliente.set_cognome(self.cognome_edit.text()) self.controller_cliente.set_cf(self.cf_edit.text()) self.controller_cliente.set_indirizzo( self.indirizzo_edit.text()) self.controller_cliente.set_email(self.email_edit.text()) self.controller_cliente.set_telefono(self.telefono_edit.text()) self.controller_cliente.set_data_nascita(self.data_edit.text()) self.cliente = cliente self.controller.save_data() self.go_cliente_mod = VistaCliente(self.cliente, False) self.go_cliente_mod.show() self.close()
def inserisci_esito(self): for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.selezione_cliente.currentText() == self.controller_cliente.get_nome()+" "+self.controller_cliente.get_cognome(): if self.esito_esame.currentText() == "IDONEO": nome = self.controller_cliente.get_prenotazione().split("-") if nome[2].strip() == "Esame teorico": self.controller_cliente.set_esame_teorico("Effettuato") if nome[2].strip() == "Esame pratico": self.controller_cliente.set_esame_pratico("Effettuato") self.controller_cliente.set_prenotazione("None") else: self.controller_cliente.set_prenotazione("None") QMessageBox.information(self, "Confermato", "Esito inserito con successo") self.controller.save_data() self.go_home_istruttore = VistaHomeIstruttore.VistaHomeIstruttore(self.tipo) self.go_home_istruttore.show() self.close()
def go_prenota(self): trovato = False for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_pagamento_iniziale() != "None": trovato = True if trovato: if self.controller.get_lista_prenotazioni(): self.go_prenotazione = VistaPrenotazione(self.tipo) self.go_prenotazione.show() self.close() else: QMessageBox.critical( self, "Errore", "Nessuna data disponibile per prenotarsi", QMessageBox.Ok) else: QMessageBox.critical(self, "Errore", "Nessun cliente ha pagato la rata iniziale", QMessageBox.Ok)
def upload_foto(self): filename = QFileDialog.getOpenFileName(self, 'open file', '/home', 'Images(*.jpg *.png)') if filename[0]: if self.cliente.get_path() != "None": path = self.cliente.get_path() os.remove(path) f = open(filename[0], 'r') src = f.name des = 'Image/' path = shutil.copy2(src, des) for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome() == \ self.cliente.get_nome() + " " + self.cliente.get_cognome(): self.controller_cliente.set_path(path) self.cliente = cliente self.controller.save_data() self.refresh() else: return
def __init__(self, cliente): super(VistaPagamentiEffettuati, self).__init__() self.controller_cliente = ControllerCliente(cliente) self.stylesheet_table = """ QTableWidget{ background-color: white; } """ # Inserimento della tabella e intestazione delle colonne. self.table = QTableWidget(self) self.table.setColumnCount(4) self.table.setRowCount(2) self.table.setItem(0, 0, QTableWidgetItem("Iscrizione")) self.table.setItem(0, 1, QTableWidgetItem("Esame teorico")) self.table.setItem(0, 2, QTableWidgetItem("Guide")) self.table.setItem(0, 3, QTableWidgetItem("Esame pratico")) # Impostazioni grafiche della tabella. self.table.setStyleSheet(self.stylesheet_table) self.table.horizontalHeader().setStretchLastSection(True) self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.table.horizontalHeader().hide() self.table.horizontalScrollBar().setDisabled(True) self.table.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.table.verticalHeader().hide() self.table.setEditTriggers(self.table.NoEditTriggers) self.table.setSelectionMode(self.table.NoSelection) self.table.setFocusPolicy(Qt.NoFocus) # Inserimento e impostazioni grafiche delle icone nella tabella. self.icon_no = QIcon("Image/no.png") self.icon_si = QIcon("Image/si.png") self.icon_sino = QIcon("Image/sino.png") self.no = QTableWidgetItem() self.no.setIcon(self.icon_no) self.si = QTableWidgetItem() self.si.setIcon(self.icon_si) # I seguenti if-else impostano l'icona corretta se il pagamento è stato effettuato o meno. if self.controller_cliente.get_pagamento_iniziale() == "None": self.table.setItem(1, 0, QTableWidgetItem(self.no)) else: self.table.setItem(1, 0, QTableWidgetItem(self.si)) if self.controller_cliente.get_pagamento_esame_teorico() == "None": self.table.setItem(1, 1, QTableWidgetItem(self.no)) else: self.table.setItem(1, 1, QTableWidgetItem(self.si)) if self.controller_cliente.get_pagamento_lezioni_guida() == "None": self.table.setItem(1, 2, QTableWidgetItem(self.no)) else: self.table.setItem(1, 2, QTableWidgetItem(self.si)) if self.controller_cliente.get_pagamento_esame_pratico() == "None": self.table.setItem(1, 3, QTableWidgetItem(self.no)) else: self.table.setItem(1, 3, QTableWidgetItem(self.si)) # Impostazioni grafiche generali della finestra del programma. self.table.setGeometry(20, 20, 600, 76) self.resize(640, 140) self.setFixedSize(self.size()) self.setWindowTitle("Pagamenti Cliente")
def __init__(self, parent=None): super(VistaPagamento, self).__init__(parent) self.controller_cliente = ControllerListaClienti() self.lista_clienti = self.controller_cliente.get_lista_clienti() self.stylesheet_window = """ QWidget{ background-color: #efefef; } """ self.stylesheet_label = """ QLabel{ background-color: transparent; } QComboBox{ background-color: white; border: 1px solid grey; color: black; } QLineEdit{ background-color: white; border: 2px solid #dfdfdf } QTextEdit{ background-color: white; border: 2px solid #dfdfdf } """ self.stylesheet_frame = """ QFrame{ border-radius: 15px; background-color: white; border: 2px solid #efefef; } """ self.stylesheet_button = """ QPushButton{ background-color: #cc3234; color: white; border-radius: 15px; } QPushButton::Pressed{ background-color: grey } """ self.stylesheet_button_back = """ QPushButton{ border-radius: 15px; background-color: transparent; } QPushButton::Pressed{ background-color: transparent; } """ # Inserimento e impostazioni grafiche dell'immagine dello sfondo della finestra. self.imagePath = "Image/foto.png" self.image = QImage(self.imagePath) self.label = QLabel(self) self.label.setPixmap(QPixmap.fromImage(self.image)) self.label.setScaledContents(True) self.label.setGeometry(0, 0, 1000, 450) # Inserimento e impostazioni grafiche dell'etichetta 'Inserisci Dati Pagamento'. self.label = QLabel(self) self.font = QFont("Arial", 18, QFont.Bold) self.label.setText("Inserisci Dati Pagamento") self.label.setFont(self.font) self.label.setStyleSheet(self.stylesheet_label) self.label.setGeometry(50, 55, 500, 40) # Inserimento e impostazioni grafiche del frame nella finestra. self.frame = QFrame(self) self.frame.setStyleSheet(self.stylesheet_frame) self.frame.setGeometry(50, 100, 900, 250) # Usa la funzione 'create_label' per creare due etichette. self.create_label("Seleziona cliente", 150) self.create_label("Prezzo", 250) # Inserimento e impostazioni grafiche dell'etichetta 'Descrizione pagamento'. self.label_descrizione = QLabel(self) self.label_descrizione.setText("Descrizione pagamento") self.label_descrizione.setGeometry(475, 150, 185, 25) self.label_descrizione.setStyleSheet(self.stylesheet_label) self.font_descrizione = QFont("Times", 9) self.label_descrizione.setFont(self.font_label) # Inserimento e impostazioni grafiche del menù a tendina contenente i cliente deella lista_cliente. self.edit_cliente = QComboBox(self) for cliente in self.lista_clienti: self.controller_cliente = ControllerCliente(cliente) self.edit_cliente.addItem(self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome()) self.edit_cliente.setGeometry(250, 150, 200, 30) self.edit_cliente.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina contenente la lista dei servizi per cui # è possibile effettuare un pagamento. self.edit_descrizione = QComboBox(self) self.edit_descrizione.addItem( "Bollettini + visita medica + prima rata", ["250"]) self.edit_descrizione.addItem("Esame teorico", ["60"]) self.edit_descrizione.addItem("Guide obbligatorie", ["180"]) self.edit_descrizione.addItem("Esame pratico", ["60"]) self.edit_descrizione.addItem("Guide aggiuntive", ["30"]) self.edit_descrizione.setGeometry(670, 150, 250, 40) self.edit_descrizione.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina che permette di scegliere il prezzo da pagare. self.edit_prezzo = QComboBox(self) self.edit_prezzo.setGeometry(250, 250, 200, 30) self.edit_prezzo.setStyleSheet(self.stylesheet_label) # In base al servizio scelto viene cambiato anche il prezzo nel relativo menù a tendina. self.edit_descrizione.currentIndexChanged.connect(self.update_data) self.update_data(self.edit_descrizione.currentIndex()) # Inserimento e impostazioni grafiche del bottone che permette di procedere con la stampa della ricevuta. self.button_ricevuta = QPushButton(self) self.button_ricevuta.setText("Procedi ricevuta") self.font_button = QFont("Times", 11) self.button_ricevuta.setFont(self.font_button) self.button_ricevuta.setGeometry(800, 375, 170, 50) self.button_ricevuta.setStyleSheet(self.stylesheet_button) self.button_ricevuta.clicked.connect(self.go_ricevuta) # Inserimento e impostazioni grafiche del bottone per tornare alla vista precedente. self.button_back = QPushButton(self) self.button_back.setIcon(QIcon('Image/back.png')) self.button_back.setIconSize(QSize(65, 65)) self.button_back.setGeometry(20, 375, 150, 50) self.button_back.setStyleSheet(self.stylesheet_button_back) self.button_back.clicked.connect(self.go_back) # Impostazioni grafiche generali della finestra del programma. self.setWindowTitle("Effettua Pagamento") self.setStyleSheet(self.stylesheet_window) self.resize(1000, 450) self.setFixedSize(self.size())
def __init__(self, parent=None): super(VistaPrenotaVisitaMedica, self).__init__(parent) self.controller = ControllerListaVisiteMediche() self.controller_clienti = ControllerListaClienti() self.stylesheet_frame = """ QFrame{ background-color: white; border: 1px solid grey; } """ self.stylesheet_window = """ QWidget{ background-color: #efefef; } """ self.stylesheet_label = """ QLabel{ background-color: transparent; } QLineEdit{ background-color: white; border: 2px solid #dfdfdf } QComboBox{ background-color: white; border: 1px solid grey; color: black; } """ self.stylesheet_button_back = """ QPushButton{ border-radius: 15px; background-color: transparent; } QPushButton::Pressed{ background-color: transparent; } """ self.stylesheet_button = """ QPushButton{ background-color: #cc3234; color: white; border-radius: 15px; } QPushButton::Pressed{ background-color: grey } """ self.stylesheet_calendar = """ QCalendarWidget QToolButton{ background-color : lightblue; } QCalendarWidget QWidget{ background-color : lightblue; } """ self.imagePath = "Image/foto.png" self.image = QImage(self.imagePath) self.label = QLabel(self) self.label.setPixmap(QPixmap.fromImage(self.image)) self.label.setScaledContents(True) self.label.setGeometry(0, 0, 1050, 600) # Inserimento e impostazioni grafiche dell'etichetta 'Prenota Visita'. self.label = QLabel(self) self.font = QFont("Times", 18) self.label.setText("Prenota Visita") self.label.setFont(self.font) self.label.setGeometry(50, 55, 250, 40) # Inserimento e impostazioni grafiche del frame nella finestra. self.frame = QFrame(self) self.frame.setStyleSheet(self.stylesheet_frame) self.frame.setGeometry(50, 100, 950, 330) # Usa la funzione 'create_label1' e 'create_label2' per creare due colonne di etichette. self.create_label1("Cliente", 150) self.create_label2("Data visita", 150) # Inserimento e impostazioni grafiche del menù a tendina contenente la lista dei clienti. self.edit_cf_cliente = QComboBox(self) for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) print(self.controller_cliente.get_visita_medica()) if self.controller_cliente.get_visita_medica() == "None": self.edit_cf_cliente.addItem( self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome()) self.edit_cf_cliente.setGeometry(175, 150, 200, 30) self.edit_cf_cliente.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del calendario. self.calendar = QCalendarWidget(self) self.calendar.setGridVisible(True) self.calendar.setStyleSheet(self.stylesheet_calendar) self.calendar.setGeometry(500, 150, 475, 250) # Inserimento e impostazioni grafiche del bottone per tornare alla vista precedente. self.button_back = QPushButton(self) self.button_back.setIcon(QIcon('Image/back.png')) self.button_back.setIconSize(QSize(90, 90)) self.button_back.setGeometry(50, 470, 90, 90) self.button_back.setStyleSheet(self.stylesheet_button_back) self.button_back.clicked.connect(self.go_back) # Inserimento e impostazioni grafiche del bottone che consente di confermare la prenotazione self.button_prenota = QPushButton(self) self.button_prenota.setText("Prenota visita") self.font_button = QFont("Times", 11) self.button_prenota.setFont(self.font_button) self.button_prenota.setGeometry(750, 490, 200, 50) self.button_prenota.setStyleSheet(self.stylesheet_button) self.button_prenota.clicked.connect(self.go_prenotazione) # Impostazioni grafiche generali della finestra del programma. self.setWindowTitle("Prenota Visita") self.setStyleSheet(self.stylesheet_window) self.resize(1050, 600) self.setFixedSize(self.size())
def salva_prenotazione(self): for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.edit_cliente.currentText() == \ self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome(): if self.edit_tipo.currentIndex() == 0: if self.controller_cliente.get_pagamento_iniziale( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione", QMessageBox.Ok) return if self.controller_cliente.get_visita_medica() == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha fatto la visita medica", QMessageBox.Ok) return if self.edit_tipo.currentIndex() == 1: if self.controller_cliente.get_pagamento_iniziale( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione", QMessageBox.Ok) return if self.controller_cliente.get_visita_medica() == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha fatto la visita medica", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_esame_teorico( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione per l'esame teorico", QMessageBox.Ok) return print('caio') if self.edit_tipo.currentIndex() == 2: if self.controller_cliente.get_pagamento_iniziale( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione", QMessageBox.Ok) return if self.controller_cliente.get_visita_medica() == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha fatto la visita medica", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_esame_teorico( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha ancora fatto l'esame teorico", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_lezioni_guida( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha ancora pagato le lezioni di guida", QMessageBox.Ok) return if self.edit_tipo.currentIndex() == 3: if self.controller_cliente.get_pagamento_iniziale( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione", QMessageBox.Ok) return if self.controller_cliente.get_visita_medica() == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha fatto la visita medica", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_esame_teorico( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha ancora fatto l'esame teorico", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_lezioni_guida( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha ancora pagato le lezioni di guida", QMessageBox.Ok) return if self.controller_cliente.get_pagamento_esame_pratico( ) == "None": QMessageBox.critical( self, "Errore", "Il cliente non ha pagato l'iscrizione per l'esame pratico", QMessageBox.Ok) return if self.controller_cliente.get_prenotazione() == "None": self.controller_cliente.set_prenotazione( self.edit_data.currentText() + " - " + self.edit_tipo.currentText()) else: conferma = QMessageBox.question( self, "Attenzione", "Il cliente si è già prenotato," "vuoi annullare la data precedente?", QMessageBox.Yes, QMessageBox.No) if conferma == QMessageBox.Yes: self.controller_cliente.set_prenotazione( self.edit_data.currentText() + " - " + self.edit_tipo.currentText()) else: return self.controller_clienti.save_data() self.go_lista_prenotazioni = VistaHomeIstruttore.VistaHomeIstruttore( self.tipo) self.go_lista_prenotazioni.show() self.close()
def __init__(self, tipo): super(VistaDisdettaPrenotazione, self).__init__() self.controller = ControllerListaClienti() self.tipo = tipo self.stylesheet_frame = """ QFrame{ background-color: white; border: 1px solid grey; } """ self.stylesheet_window = """ QWidget{ background-color: #dfdfdf; } """ self.stylesheet_label = """ QLabel{ background-color: white } QComboBox{ background-color: white; border: 1px solid grey; color: black; } """ self.stylesheet_button_back = """ QPushButton{ border-radius: 15px; background-color: transparent; } QPushButton::Pressed{ background-color: transparent; } """ self.stylesheet_button = """ QPushButton{ background-color: #cc3234; color: white; border-radius: 15px; } QPushButton::Pressed{ background-color: grey } """ # Inserimento e impostazioni grafiche dell'immagine dello sfondo della finestra. self.imagePath = "Image/foto.png" self.image = QImage(self.imagePath) self.label = QLabel(self) self.label.setPixmap(QPixmap.fromImage(self.image)) self.label.setScaledContents(True) self.label.setGeometry(0, 0, 700, 500) # Inserimento e impostazioni grafiche dell'etichetta 'Disdetta Prenotazione'. self.label_titolo = QLabel(self) self.font_titolo = QFont("Times", 18, QFont.Bold) self.label_titolo.setText("Disdetta Prenotazione") self.label_titolo.setFont(self.font_titolo) self.label_titolo.setGeometry(50, 55, 350, 40) # Inserimento e impostazioni grafiche del frame nella finestra. self.frame = QFrame(self) self.frame.setStyleSheet(self.stylesheet_frame) self.frame.setGeometry(50, 100, 600, 250) # Inserimento e impostazioni grafiche dell'etichetta 'Selezionare il cliente'. self.label_id = QLabel(self) self.font_id = QFont("Times", 9) self.label_id.setFont(self.font_id) self.label_id.setText("Selezionare il cliente") self.label_id.setGeometry(60, 190, 160, 30) self.label_id.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina contenente le prenotazioni effettuate # dai rispettivi cliente. self.selezione_cliente = QComboBox(self) for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_prenotazione() != "None": self.selezione_cliente.addItem( self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome()) self.selezione_cliente.setGeometry(250, 190, 300, 30) self.selezione_cliente.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del bottone per confermare la disdetta del servizio selezionato. self.button_disdici = QPushButton(self) self.button_disdici.setText("Disdici") self.font_button = QFont("Times", 11) self.button_disdici.setFont(self.font_button) self.button_disdici.setGeometry(525, 410, 120, 50) self.button_disdici.setStyleSheet(self.stylesheet_button) self.button_disdici.clicked.connect(self.disdici_prenotazione) # Inserimento e impostazioni grafiche del bottone per tornare alla vista precedente. self.button_back = QPushButton(self) self.button_back.setIcon(QIcon('Image/back.png')) self.button_back.setIconSize(QSize(60, 60)) self.button_back.setGeometry(50, 390, 90, 90) self.button_back.setStyleSheet(self.stylesheet_button_back) self.button_back.clicked.connect(self.go_back) # Impostazioni grafiche generali della finestra del programma. self.setWindowTitle("Disdici prenotazione") self.setStyleSheet(self.stylesheet_window) self.resize(700, 500) self.setFixedSize(self.size())
def set_data(self): self.button_group_apri = QButtonGroup() self.button_group_elimina = QButtonGroup() self.button_group_pagamenti = QButtonGroup() self.icon_no = QIcon("Image/no.png") self.icon_si = QIcon("Image/si.png") self.icon_sino = QIcon("Image/sino.png") self.apri_icon = QIcon("Image/apri_icon.png") self.cancella_icon = QIcon("Image/delete.png") self.no = QTableWidgetItem() self.no.setIcon(self.icon_no) self.si = QTableWidgetItem() self.si.setIcon(self.icon_si) i = 1 n_righe = len(self.controller.get_lista_clienti()) self.table.setRowCount(n_righe + 1) self.button_group_apri.buttonClicked.connect(self.on_selection_apri) self.button_group_elimina.buttonClicked.connect(self.on_selection_elimina) self.button_group_pagamenti.buttonClicked.connect(self.on_selection_pagamenti) for cliente in self.controller.get_lista_clienti(): self.sino = QPushButton() self.sino.setIcon(self.icon_sino) self.sino.setStyleSheet(self.stylesheet_pagamento) self.button_group_pagamenti.addButton(self.sino, i) self.controller_cliente = ControllerCliente(cliente) self.apri = QPushButton() self.apri.setIcon(self.apri_icon) self.apri.setIconSize(QSize(30, 30)) self.apri.setStyleSheet(self.stylesheet_pagamento) self.button_group_apri.addButton(self.apri, i) self.table.setCellWidget(i, 0, self.apri) if self.controller_cliente.get_id() == "None": self.table.setItem(i, 1, QTableWidgetItem(self.no)) else: self.table.setItem(i, 1, QTableWidgetItem(self.controller_cliente.get_id())) self.table.setItem(i, 2, QTableWidgetItem(self.controller_cliente.get_nome())) self.table.setItem(i, 3, QTableWidgetItem(self.controller_cliente.get_cognome())) if self.controller_cliente.get_esame_teorico() == "None": self.table.setItem(i, 4, QTableWidgetItem(self.no)) else: self.table.setItem(i, 4, QTableWidgetItem(self.si)) if self.controller_cliente.get_esame_pratico() == "None": self.table.setItem(i, 5, QTableWidgetItem(self.no)) else: self.table.setItem(i, 5, QTableWidgetItem(self.si)) if self.controller_cliente.get_pagamento_iniziale() == "None" and \ self.controller_cliente.get_pagamento_esame_teorico() == "None" and \ self.controller_cliente.get_pagamento_lezioni_guida() == "None" and \ self.controller_cliente.get_pagamento_esame_pratico() == "None": self.table.setItem(i, 6, QTableWidgetItem(self.no)) else: if self.controller_cliente.get_pagamento_iniziale() != "None" and \ self.controller_cliente.get_pagamento_esame_teorico() != "None" and \ self.controller_cliente.get_pagamento_lezioni_guida() != "None" and \ self.controller_cliente.get_pagamento_esame_pratico() != "None": self.table.setItem(i, 6, QTableWidgetItem(self.si)) else: self.table.setCellWidget(i, 6, self.sino) if self.controller_cliente.get_prenotazione() == "None": if self.controller_cliente.get_esame_pratico() == "Effettuato" and \ self.controller_cliente.get_esame_teorico() == "Effettuato": self.table.setItem(i, 7, QTableWidgetItem(self.si)) else: self.table.setItem(i, 7, QTableWidgetItem(self.no)) else: self.table.setItem(i, 7, QTableWidgetItem(self.controller_cliente.get_prenotazione())) self.delete = QPushButton() self.delete.setIcon(self.cancella_icon) self.delete.setIconSize(QSize(35, 35)) self.delete.setStyleSheet(self.stylesheet_pagamento) self.button_group_elimina.addButton(self.delete, i) self.table.setCellWidget(i, 8, self.delete) i = i + 1
def __init__(self, tipo): super(VistaPrenotazione, self).__init__() self.tipo = tipo self.controller = ControllerListaPrenotazioni() self.controller_clienti = ControllerListaClienti() # Inserisce il 'lista_orari' le informazioni contenute nel file 'lista_prenotazioni.pickle'. self.lista_orari = self.controller.get_lista_prenotazioni() self.stylesheet_frame = """ QFrame{ background-color: white; border: 1px solid grey; } """ self.stylesheet_window = """ QWidget{ background-color: #efefef; } """ self.stylesheet_label = """ QLabel{ background-color: white; } QLineEdit{ background-color: white; border: 2px solid #dfdfdf } QComboBox{ background-color: white; border: 1px solid grey; color: black; } """ self.stylesheet_button_back = """ QPushButton{ background-color: transparent; border-radius: 15px; } QPushButton::Pressed{ background-color: grey; } """ self.stylesheet_button = """ QPushButton{ background-color: #cc3234; color: white; border-radius: 15px; } QPushButton::Pressed{ background-color: grey } """ self.stylesheet_calendar = """ QCalendarWidget QToolButton{ background-color : lightblue; } QCalendarWidget QWidget{ background-color : lightblue; } """ # Inserimento e impostazioni grafiche dell'immagine dello sfondo della finestra. self.imagePath = "Image/foto.png" self.image = QImage(self.imagePath) self.label = QLabel(self) self.label.setPixmap(QPixmap.fromImage(self.image)) self.label.setScaledContents(True) self.label.setGeometry(0, 0, 1000, 550) # Inserimento e impostazioni grafiche dell'etichetta 'Nuova Prenotazione'. self.label = QLabel(self) self.font = QFont("Arial", 18, QFont.Bold) self.label.setText("Nuova Prenotazione") self.label.setFont(self.font) self.label.setGeometry(50, 55, 350, 40) self.label.setStyleSheet('background-color: transparent') # Inserimento e impostazioni grafiche del frame nella finestra. self.frame = QFrame(self) self.frame.setStyleSheet(self.stylesheet_frame) self.frame.setGeometry(50, 100, 900, 280) # Usa la funzione 'create_label1' per creare due etichette. self.create_label1("Cliente", 150) self.create_label1("Tipo", 250) # Inserimento e impostazioni grafiche dell'etichetta 'Data'. self.label_edit = QLabel(self) self.label_edit.setText("Data") self.label_edit.setGeometry(500, 150, 100, 20) self.label_edit.setStyleSheet(self.stylesheet_label) self.font_label1 = QFont("Times", 9) self.label_edit.setFont(self.font_label1) # Inserimento e impostazioni grafiche del menù a tendina contenente la lista dei cliente # che non hanno effettuato alcuna prenotazione. self.edit_cliente = QComboBox(self) for cliente in self.controller_clienti.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_esame_teorico() == "None" or \ self.controller_cliente.get_esame_pratico() == "None": if self.controller_cliente.get_id() != "None": self.edit_cliente.addItem(self.controller_cliente.get_nome() + " " + \ self.controller_cliente.get_cognome()) self.edit_cliente.setGeometry(250, 150, 200, 30) self.edit_cliente.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina contenente la lista dei servizi # per cui è possibile effettuare un pagamento. self.edit_tipo = QComboBox(self) self.edit_tipo.addItem("Lezione", self.get_data("Lezione")) self.edit_tipo.addItem("Esame teorico", self.get_data("Esame teorico")) self.edit_tipo.addItem("Lezione guida", self.get_data("Lezione guida")) self.edit_tipo.addItem("Esame pratico", self.get_data("Esame pratico")) self.edit_tipo.setGeometry(250, 250, 200, 30) self.edit_tipo.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina contenente le dati per cui # è possibile prenotarsi. self.edit_data = QComboBox(self) self.edit_data.setStyleSheet(self.stylesheet_label) self.edit_data.setGeometry(600, 150, 200, 30) # In base al servizio scelto vengono cambiate le dati per cui è possibile prenotarsi. self.edit_tipo.currentIndexChanged.connect(self.update_data) self.update_data(self.edit_tipo.currentIndex()) # Inserimento e impostazioni grafiche del bottone per tornare alla vista precedente. self.button_back = QPushButton(self) self.button_back.setIcon(QIcon('Image/back.png')) self.button_back.setIconSize(QSize(90, 90)) self.button_back.setGeometry(50, 420, 90, 90) self.button_back.setStyleSheet(self.stylesheet_button_back) self.button_back.clicked.connect(self.go_back) # Inserimento e impostazioni grafiche del bottone che permette di confermare la prenotazione. self.button_new_prenotazione = QPushButton(self) self.button_new_prenotazione.setText("Salva") self.font_button = QFont("Arial", 11) self.button_new_prenotazione.setFont(self.font_button) self.button_new_prenotazione.setGeometry(800, 440, 120, 50) self.button_new_prenotazione.setStyleSheet(self.stylesheet_button) self.button_new_prenotazione.clicked.connect(self.salva_prenotazione) # Impostazioni grafiche generali della finestra del programma. self.setWindowTitle("Nuova Prenotazione") self.setStyleSheet(self.stylesheet_window) self.resize(1000, 550) self.setFixedSize(self.size())
def __init__(self, tipo): super(VistaInserisciEsitoEsame, self).__init__() self.tipo = tipo self.controller = ControllerListaClienti() self.stylesheet_frame = """ QFrame{ background-color: white; border: 1px solid grey; } """ self.stylesheet_window = """ QWidget{ background-color: #dfdfdf; } """ self.stylesheet_label = """ QLabel{ background-color: white } QComboBox{ background-color: white; border: 1px solid grey; color: black; } """ self.stylesheet_button_back = """ QPushButton{ border-radius: 15px; background-color: transparent; } QPushButton::Pressed{ background-color:transparent; } """ self.stylesheet_button = """ QPushButton{ background-color: #cc3234; color: white; border-radius: 15px; } QPushButton::Pressed{ background-color: grey } """ # Inserimento e impostazioni grafiche dell'immagine dello sfondo della finestra. self.imagePath = "Image/foto.png" self.image = QImage(self.imagePath) self.label = QLabel(self) self.label.setPixmap(QPixmap.fromImage(self.image)) self.label.setScaledContents(True) self.label.setGeometry(0, 0, 700, 500) # Inserimento e impostazioni grafiche dell'etichetta 'Esito Esame'. self.label_titolo = QLabel(self) self.font_titolo = QFont("Times", 18, QFont.Bold) self.label_titolo.setText("Esito Esame") self.label_titolo.setFont(self.font_titolo) self.label_titolo.setGeometry(50, 55, 300, 40) # Inserimento e impostazioni grafiche del frame nella finestra. self.frame = QFrame(self) self.frame.setStyleSheet(self.stylesheet_frame) self.frame.setGeometry(50, 100, 600, 250) # Inserimento e impostazioni grafiche dell'etichetta 'Selezionare il cliente'. self.label_id = QLabel(self) self.font_id = QFont("Times", 9) self.label_id.setFont(self.font_id) self.label_id.setText("Selezionare il cliente") self.label_id.setGeometry(60, 190, 160, 30) self.label_id.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina contenente le prenotazioni dei clienti. self.selezione_cliente = QComboBox(self) for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.controller_cliente.get_prenotazione() != "None": nome = self.controller_cliente.get_prenotazione().split("-") if nome[2].strip() != "Lezione": self.selezione_cliente.addItem(self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome()) for cliente in self.controller.get_lista_clienti(): self.controller_cliente = ControllerCliente(cliente) if self.selezione_cliente.currentText() == self.controller_cliente.get_nome() + " " + self.controller_cliente.get_cognome(): self.prenotazione = self.controller_cliente.get_prenotazione() self.selezione_cliente.setGeometry(250, 190, 300, 30) self.selezione_cliente.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche dell'etichetta 'Esito'. self.label_id = QLabel(self) self.font_id = QFont("Times", 9) self.label_id.setFont(self.font_id) self.label_id.setText("Esito") self.label_id.setGeometry(60, 230, 160, 30) self.label_id.setStyleSheet(self.stylesheet_label) # Inserimento e impostazioni grafiche del menù a tendina che consente di determinare # l'idoneità o meno del cliente. self.esito_esame = QComboBox(self) self.esito_esame.addItem("IDONEO") self.esito_esame.addItem("NON IDONEO") self.esito_esame.setStyleSheet(self.stylesheet_label) self.esito_esame.setGeometry(250, 230, 300, 30) # Inserimento e impostazioni grafiche del bottone che permette di inserire l'esito dell'esame. self.button_esito = QPushButton(self) self.button_esito.setText("Inserisci esito") self.font_button = QFont("Times", 11) self.button_esito.setFont(self.font_button) self.button_esito.setGeometry(495, 410, 150, 50) self.button_esito.setStyleSheet(self.stylesheet_button) self.button_esito.clicked.connect(self.inserisci_esito) # Inserimento e impostazioni grafiche del bottone per tornare alla vista precedente. self.button_back = QPushButton(self) self.button_back.setIcon(QIcon('Image/back.png')) self.button_back.setIconSize(QSize(60, 60)) self.button_back.setGeometry(50, 390, 90, 90) self.button_back.setStyleSheet(self.stylesheet_button_back) self.button_back.clicked.connect(self.go_back) # Impostazioni grafiche generali della finestra del programma. self.setWindowTitle("Esito esame") self.setStyleSheet(self.stylesheet_window) self.resize(700, 500) self.setFixedSize(self.size())