예제 #1
0
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"))
예제 #2
0
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_()
예제 #3
0
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_()
예제 #4
0
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_()
예제 #5
0
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_()