Пример #1
0
def book(bookname):
    data = Books.search(isbn=bookname)
    strx = str(data)
    strx = strx.replace('[', '')
    strx = strx.replace(']', '')
    strx = strx.replace('(', '')
    strx = strx.replace(')', '')
    strx = strx.replace('"', '')
    strx = strx.replace("'", "")
    strx = strx.replace(",", '|')

    x = strx.split("|")
    isbn = x[0]
    name = x[1]
    author = x[2]
    language = x[3]
    publisher = x[4]
    edition = x[5]
    branch = x[6]

    startdate = date.today()
    EndDate = date.today() + timedelta(days=7)

    if request.method == "POST":

        if "user" in session:
            email = session["user"]
            print(email)
            with CursorFromConnectionFromPool() as cursor:

                cursor.execute("select returndate,issuedbyisbn from public.users where email=%s;", (email,))

                returndate = cursor.fetchone()
                print(returndate)
                strx = str(returndate)
                strx = strx.replace('[', '')
                strx = strx.replace(']', '')
                strx = strx.replace('(', '')
                strx = strx.replace(')', '')
                strx = strx.replace('"', '')
                strx = strx.replace("'", "")
                strx = strx.replace(",", '|')
                strx = strx.replace(" ", "")

                x = strx.split("|")

                returndate = x[0]
                returnisbn = x[1]
                print(type(returnisbn))
                print(type(returndate))
                if returndate == '0' and returnisbn == '0':
                    print(returndate)
                    print(returnisbn)
                    if Books.copiesavailable(isbn):
                        with CursorFromConnectionFromPool() as cursor:
                            cursor.execute("UPDATE public.users SET issuedbyisbn=%s WHERE email=%s", (isbn, email))
                            cursor.execute("update public.users set returndate=%s where email=%s", (EndDate, email))
                        fromaddr = "*****@*****.**"
                        toaddr = email
                        msg = MIMEMultipart()
                        msg['From'] = fromaddr
                        msg['To'] = toaddr
                        msg["Subject"] = "You issue request for {} is underway".format(name)
                        branch = Branch.searchbranch(branch)
                        body = "You have been issued {} by {} from {} till {}. Please collect this book from branch {} at {}. Please return the book to the same branch it was issued from.".format(
                            name, author, startdate, EndDate, branch[0], branch[1])
                        msg.attach(MIMEText(body, 'plain'))
                        email = smtplib.SMTP('smtp.gmail.com', 587)
                        email.starttls()
                        email.login(fromaddr, "seprojsubmit")
                        message = msg.as_string()
                        email.sendmail(fromaddr, toaddr, message)
                        Books.issuethis(isbn)
                        flash("Book has been issued, email confirmation has been sent to you")
                        return redirect(url_for("book", bookname=isbn))
                    else:
                        flash("Issue failed, no copies in stock, please inquire again in 1 week")
                        return redirect(url_for("user", email=session[""]))
                else:
                    flash("You already have a book issued, please return that book to issue a new one")
                    return redirect(url_for("user", email=session[""]))
        else:
            return redirect(url_for("login"))
    else:
        return render_template("book.html", bookname=bookname, isbn=isbn, name=name, author=author, language=language,
                               publisher=publisher, edition=edition)