def mostraLibriInPrestito(tabella): """mostraLibriInPrestito mostra in una tabella i libri che sono in fase di prestito con l'utente che li ha presi e i giorni mancanti alla scadenza :type tabella: widget table :param tabella: tabella di visualizzazione """ listaLibri = biblioteca.getLibriPrestati( ) # restituisce una lista dei libri con quel nome tabella.setRowCount(len(listaLibri)) tabella.setColumnCount(4) tabella.setColumnWidth(0, 150) tabella.setColumnWidth(1, 200) tabella.setColumnWidth(2, 200) tabella.setColumnWidth(3, 144) if (len(listaLibri) > 0): for i in range(len(listaLibri)): persona = listaLibri[i].persona.strip() persona = biblioteca.infoUtente(persona) persona = persona[0][0] + " " + persona[0][1] titolo = listaLibri[i].titolo.strip() autore = listaLibri[i].autore.strip() scadenza = listaLibri[i].scadenza.strip() tabella.setItem(i, 0, QTableWidgetItem(persona)) tabella.setItem(i, 1, QTableWidgetItem(titolo)) tabella.setItem(i, 2, QTableWidgetItem(autore)) tabella.setItem(i, 3, QTableWidgetItem(scadenza + " GIORNI"))
def restituisciLibro(lista): """restituisciLibro resituisci il libro :type lista: list :param lista: restituisci il libro passando una lista contenente in posizione 0 l'id utente in posizione 1 il titolo del libro """ idUtente = lista[0] libro = lista[1] infoUtente = biblioteca.infoUtente(idUtente) nome = infoUtente[0][0] cognome = infoUtente[0][1] if idUtente == 0 or libro == 0: msg = QMessageBox() msg.setWindowTitle(f"errore") msg.setText(f"utente o libro non selezionato") x = msg.exec_() else: if biblioteca.restituisciPrestito(idUtente, libro): msg = QMessageBox() msg.setWindowTitle(f"successo") msg.setText( f"libro: {lista[1]} restituito con successo da {nome} {cognome}" ) x = msg.exec_() else: msg = QMessageBox() msg.setWindowTitle(f"errore") msg.setText("errore nella restituzione del libro") x = msg.exec_()
def libriInPrestito(lista, id, tabella): """libriInPrestito mostra in una tabella i libri dell'utente con l'id che viene selezionato nella tabella e lo mette nella variabile lista[0 :type lista: list :param lista: lista che contiene i valori di ID utente e del titolo del libro :type id: string :param id: id dell'utente selezionato :type tabella: widget table :param autore: tabella di visualizzazione """ try: index = id.column() id = id.text() lista[0] = id infoUtente = biblioteca.infoUtente(id) nome = infoUtente[0][0] cognome = infoUtente[0][1] msg = QMessageBox() if index == 2: msg.setWindowTitle(f"successo") msg.setText(f"utente selezionato: {nome} {cognome}") listaLibri = biblioteca.prestitiUtente(id) tabella.setRowCount(len(listaLibri)) tabella.setColumnCount(3) tabella.setColumnWidth(0, 350) tabella.setColumnWidth(1, 200) tabella.setColumnWidth(2, 144) if (len(listaLibri) > 0): for i in range(len(listaLibri)): titolo = listaLibri[i][1] autore = listaLibri[i][2] scadenza = str(listaLibri[i][3]) tabella.setItem(i, 0, QTableWidgetItem(titolo)) tabella.setItem(i, 1, QTableWidgetItem(autore)) tabella.setItem(i, 2, QTableWidgetItem(scadenza)) else: msg.setWindowTitle("Errore") msg.setText("libro non trovato") else: msg.setWindowTitle(f"errore") msg.setText(f"non hai selezionato l'id!") except: msg.setWindowTitle(f"errore") msg.setText(f"nessun utente selezionato") x = msg.exec_()
def prenotaLibro(lista): """prenotaLibro prenota il libro :type lista: list :param lista: prenota il libro passando una lista contenente in posizione 0 l'id utente, in posizione 1 il titolo del libro """ id = lista[0] libro = lista[1] msg = QMessageBox() if id == 0 or libro == 0: msg.setWindowTitle("errore") msg.setText("utente o libro non selezionato") else: controllo = biblioteca.prendiPrestito(libro, id) if controllo: infoUtente = biblioteca.infoUtente(id) nome = infoUtente[0][0] cognome = infoUtente[0][1] msg.setWindowTitle(f"successo") msg.setText( f"libro: {lista[1]} prenotato con successo da {nome} {cognome}" ) else: msg.setWindowTitle("errore") msg.setText("libro non prenotato") x = msg.exec_()
def setInfoLibroeUtente(lista, posizione, item): """setInfoLibroeUtente imposta il libro e l'utente scelto per le operazioni di prenotazione e restituzione dei libri :type lista: list :param lista: lista che contiene i valori di ID utente e del titolo del libro :type posizione: int :param tabella: semplice numero che indica dove inserire il valore da memorizzare nella lista (0 -> IDutente, 1 -> titoloLibro) :type item: string :param item: valore selezionato nella tabella """ try: index = item.column() item = item.text() lista[posizione] = item msg = QMessageBox() if posizione == 0: if not item.isalpha(): infoUtente = biblioteca.infoUtente(item) nome = infoUtente[0][0] cognome = infoUtente[0][1] msg.setWindowTitle(f"successo") msg.setText(f"utente selezionato: {nome} {cognome}") else: msg.setWindowTitle(f"errore") msg.setText(f"non hai selezionato l'id!") else: if index == 0: msg.setWindowTitle(f"successo") msg.setText(f"libro selezionato: {item}") else: msg.setWindowTitle(f"errore") msg.setText(f"seleziona il titolo!") except: if posizione == 0: msg.setWindowTitle(f"errore") msg.setText(f"nessun utente selezionato") else: msg.setWindowTitle(f"errore") msg.setText(f"nessun libro selezionato") x = msg.exec_()