You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

641 lines
33 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QCheckBox, QDateEdit, QHeaderView,
QLabel, QLineEdit, QPushButton, QSizePolicy,
QTabWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, QMessageBox,
QWidget)
from PySide6 import QtCore, QtGui, QtWidgets
from connect import *
import time
cursor, conn = connect()
class Ui_bookcontrol(object):
def setupUi(self, bookadmin):
bookadmin.setObjectName("bookadmin")
bookadmin.resize(846, 550)
self.tabWidget = QtWidgets.QTabWidget(bookadmin)
self.tabWidget.setGeometry(QtCore.QRect(20, 20, 811, 515))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label_2 = QtWidgets.QLabel(self.tab)
self.label_2.setObjectName("label_2")
self.horizontalLayout.addWidget(self.label_2)
self.readerid = QtWidgets.QLineEdit(self.tab)
self.readerid.setObjectName("readerid")
self.horizontalLayout.addWidget(self.readerid)
self.label = QtWidgets.QLabel(self.tab)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.readername = QtWidgets.QLineEdit(self.tab)
self.readername.setObjectName("readername")
self.horizontalLayout.addWidget(self.readername)
self.label_3 = QtWidgets.QLabel(self.tab)
self.label_3.setObjectName("label_3")
self.horizontalLayout.addWidget(self.label_3)
self.unit = QtWidgets.QLineEdit(self.tab)
self.unit.setObjectName("unit")
self.horizontalLayout.addWidget(self.unit)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.select = QtWidgets.QPushButton(self.tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.select.sizePolicy().hasHeightForWidth())
self.select.setSizePolicy(sizePolicy)
self.select.setObjectName("select")
self.horizontalLayout_2.addWidget(self.select)
self.selectall = QtWidgets.QPushButton(self.tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.selectall.sizePolicy().hasHeightForWidth())
self.selectall.setSizePolicy(sizePolicy)
self.selectall.setObjectName("selectall")
self.horizontalLayout_2.addWidget(self.selectall)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.readerinfors = QtWidgets.QTableWidget(self.tab)
self.readerinfors.setObjectName("readerinfors")
self.readerinfors.setColumnCount(8)
self.readerinfors.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(5, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(6, item)
item = QtWidgets.QTableWidgetItem()
self.readerinfors.setHorizontalHeaderItem(7, item)
self.verticalLayout.addWidget(self.readerinfors)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab_2)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
self.horizontalLayout_13.setObjectName("horizontalLayout_13")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_4 = QtWidgets.QLabel(self.tab_2)
self.label_4.setObjectName("label_4")
self.horizontalLayout_3.addWidget(self.label_4)
self.bookid = QtWidgets.QLineEdit(self.tab_2)
self.bookid.setObjectName("bookid")
self.horizontalLayout_3.addWidget(self.bookid)
self.horizontalLayout_13.addLayout(self.horizontalLayout_3)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.label_5 = QtWidgets.QLabel(self.tab_2)
self.label_5.setObjectName("label_5")
self.horizontalLayout_5.addWidget(self.label_5)
self.bookname = QtWidgets.QLineEdit(self.tab_2)
self.bookname.setObjectName("bookname")
self.horizontalLayout_5.addWidget(self.bookname)
self.horizontalLayout_13.addLayout(self.horizontalLayout_5)
self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
self.label_6 = QtWidgets.QLabel(self.tab_2)
self.label_6.setObjectName("label_6")
self.horizontalLayout_12.addWidget(self.label_6)
self.author = QtWidgets.QLineEdit(self.tab_2)
self.author.setObjectName("author")
self.horizontalLayout_12.addWidget(self.author)
self.horizontalLayout_13.addLayout(self.horizontalLayout_12)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.label_7 = QtWidgets.QLabel(self.tab_2)
self.label_7.setObjectName("label_7")
self.horizontalLayout_8.addWidget(self.label_7)
self.type = QtWidgets.QLineEdit(self.tab_2)
self.type.setObjectName("type")
self.horizontalLayout_8.addWidget(self.type)
self.horizontalLayout_13.addLayout(self.horizontalLayout_8)
self.verticalLayout_3.addLayout(self.horizontalLayout_13)
self.horizontalLayout_14 = QtWidgets.QHBoxLayout()
self.horizontalLayout_14.setObjectName("horizontalLayout_14")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.label_8 = QtWidgets.QLabel(self.tab_2)
self.label_8.setObjectName("label_8")
self.horizontalLayout_4.addWidget(self.label_8)
self.prize = QtWidgets.QLineEdit(self.tab_2)
self.prize.setObjectName("prize")
self.horizontalLayout_4.addWidget(self.prize)
self.horizontalLayout_14.addLayout(self.horizontalLayout_4)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.label_9 = QtWidgets.QLabel(self.tab_2)
self.label_9.setObjectName("label_9")
self.horizontalLayout_6.addWidget(self.label_9)
self.press = QtWidgets.QLineEdit(self.tab_2)
self.press.setObjectName("press")
self.horizontalLayout_6.addWidget(self.press)
self.horizontalLayout_14.addLayout(self.horizontalLayout_6)
self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
self.label_12 = QtWidgets.QLabel(self.tab_2)
self.label_12.setObjectName("label_12")
self.horizontalLayout_10.addWidget(self.label_12)
self.totalnum = QtWidgets.QLineEdit(self.tab_2)
self.totalnum.setObjectName("totalnum")
self.horizontalLayout_10.addWidget(self.totalnum)
self.horizontalLayout_14.addLayout(self.horizontalLayout_10)
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
self.label_11 = QtWidgets.QLabel(self.tab_2)
self.label_11.setObjectName("label_11")
self.horizontalLayout_9.addWidget(self.label_11)
self.num = QtWidgets.QLineEdit(self.tab_2)
self.num.setObjectName("num")
self.horizontalLayout_9.addWidget(self.num)
self.horizontalLayout_14.addLayout(self.horizontalLayout_9)
self.verticalLayout_3.addLayout(self.horizontalLayout_14)
self.horizontalLayout_17 = QtWidgets.QHBoxLayout()
self.horizontalLayout_17.setObjectName("horizontalLayout_17")
self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
self.horizontalLayout_15.setObjectName("horizontalLayout_15")
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.label_10 = QtWidgets.QLabel(self.tab_2)
self.label_10.setObjectName("label_10")
self.horizontalLayout_7.addWidget(self.label_10)
self.abstract_2 = QtWidgets.QLineEdit(self.tab_2)
self.abstract_2.setObjectName("abstract_2")
self.horizontalLayout_7.addWidget(self.abstract_2)
self.horizontalLayout_15.addLayout(self.horizontalLayout_7)
self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
self.horizontalLayout_11.setObjectName("horizontalLayout_11")
self.label_13 = QtWidgets.QLabel(self.tab_2)
self.label_13.setObjectName("label_13")
self.horizontalLayout_11.addWidget(self.label_13)
self.bookshelf = QtWidgets.QLineEdit(self.tab_2)
self.bookshelf.setObjectName("bookshelf")
self.horizontalLayout_11.addWidget(self.bookshelf)
self.horizontalLayout_15.addLayout(self.horizontalLayout_11)
self.horizontalLayout_17.addLayout(self.horizontalLayout_15)
self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
self.horizontalLayout_16.setObjectName("horizontalLayout_16")
self.addbook = QtWidgets.QPushButton(self.tab_2)
self.addbook.setObjectName("addbook")
self.horizontalLayout_16.addWidget(self.addbook)
self.deletebook = QtWidgets.QPushButton(self.tab_2)
self.deletebook.setObjectName("deletebook")
self.horizontalLayout_16.addWidget(self.deletebook)
self.alterbook = QtWidgets.QPushButton(self.tab_2)
self.alterbook.setObjectName("alterbook")
self.horizontalLayout_16.addWidget(self.alterbook)
self.horizontalLayout_17.addLayout(self.horizontalLayout_16)
self.verticalLayout_3.addLayout(self.horizontalLayout_17)
self.bookinfos = QtWidgets.QTableWidget(self.tab_2)
self.bookinfos.setObjectName("bookinfos")
self.bookinfos.setColumnCount(11)
self.bookinfos.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(5, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(6, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(7, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(8, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(9, item)
item = QtWidgets.QTableWidgetItem()
self.bookinfos.setHorizontalHeaderItem(10, item)
self.verticalLayout_3.addWidget(self.bookinfos)
self.verticalLayout_5.addLayout(self.verticalLayout_3)
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.iteminfo = QtWidgets.QTableWidget(self.tab_3)
self.iteminfo.setGeometry(QtCore.QRect(80, 40, 421, 384))
self.iteminfo.setObjectName("iteminfo")
self.iteminfo.setColumnCount(4)
self.iteminfo.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.iteminfo.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.iteminfo.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.iteminfo.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.iteminfo.setHorizontalHeaderItem(3, item)
self.layoutWidget = QtWidgets.QWidget(self.tab_3)
self.layoutWidget.setGeometry(QtCore.QRect(610, 160, 95, 301))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.yes = QtWidgets.QPushButton(self.layoutWidget)
self.yes.setObjectName("yes")
self.verticalLayout_4.addWidget(self.yes)
self.no = QtWidgets.QPushButton(self.layoutWidget)
self.no.setObjectName("no")
self.verticalLayout_4.addWidget(self.no)
self.refresh = QtWidgets.QPushButton(self.layoutWidget)
self.refresh.setObjectName("refresh")
self.verticalLayout_4.addWidget(self.refresh)
self.tabWidget.addTab(self.tab_3, "")
self.retranslateUi(bookadmin)
self.tabWidget.setCurrentIndex(2)
QtCore.QMetaObject.connectSlotsByName(bookadmin)
self.show_all_books()
self.selectall.clicked.connect(self.show_all_readers)
self.select.clicked.connect(self.readerselect)
self.addbook.clicked.connect(self.add_book)
self.deletebook.clicked.connect(self.drop_book)
self.alterbook.clicked.connect(self.update_book)
self.bookinfos.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.bookinfos.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed)
self.bookinfos.activated.connect(self.displayinfo)
self.show_all_items()
self.iteminfo.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.iteminfo.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed)
self.yes.clicked.connect(self.pizhun)
self.no.clicked.connect(self.bohui)
self.refresh.clicked.connect(self.show_all_items)
def retranslateUi(self, bookadmin):
_translate = QtCore.QCoreApplication.translate
bookadmin.setWindowTitle(_translate("bookadmin", "图书管理员操作界面"))
self.label_2.setText(_translate("bookadmin", "读者ID"))
self.label.setText(_translate("bookadmin", "姓名"))
self.label_3.setText(_translate("bookadmin", "单位"))
self.select.setText(_translate("bookadmin", "查询"))
self.selectall.setText(_translate("bookadmin", "显示所有"))
item = self.readerinfors.horizontalHeaderItem(0)
item.setText(_translate("bookadmin", "读者ID"))
item = self.readerinfors.horizontalHeaderItem(1)
item.setText(_translate("bookadmin", "姓名"))
item = self.readerinfors.horizontalHeaderItem(2)
item.setText(_translate("bookadmin", "性别"))
item = self.readerinfors.horizontalHeaderItem(3)
item.setText(_translate("bookadmin", "单位"))
item = self.readerinfors.horizontalHeaderItem(4)
item.setText(_translate("bookadmin", "读者类型"))
item = self.readerinfors.horizontalHeaderItem(5)
item.setText(_translate("bookadmin", "可借册数"))
item = self.readerinfors.horizontalHeaderItem(6)
item.setText(_translate("bookadmin", "在借册数"))
item = self.readerinfors.horizontalHeaderItem(7)
item.setText(_translate("bookadmin", "欠款"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("bookadmin", "查询读者信息"))
self.label_4.setText(_translate("bookadmin", "书号"))
self.label_5.setText(_translate("bookadmin", "书名"))
self.label_6.setText(_translate("bookadmin", "作者"))
self.label_7.setText(_translate("bookadmin", "类型"))
self.label_8.setText(_translate("bookadmin", "价格"))
self.label_9.setText(_translate("bookadmin", "出版社"))
self.label_12.setText(_translate("bookadmin", "在馆册数"))
self.label_11.setText(_translate("bookadmin", "馆藏册数"))
self.label_10.setText(_translate("bookadmin", "摘要"))
self.label_13.setText(_translate("bookadmin", "书架号"))
self.addbook.setText(_translate("bookadmin", "添加"))
self.deletebook.setText(_translate("bookadmin", "删除"))
self.alterbook.setText(_translate("bookadmin", "修改"))
item = self.bookinfos.horizontalHeaderItem(0)
item.setText(_translate("bookadmin", "书号"))
item = self.bookinfos.horizontalHeaderItem(1)
item.setText(_translate("bookadmin", "书名"))
item = self.bookinfos.horizontalHeaderItem(2)
item.setText(_translate("bookadmin", "作者"))
item = self.bookinfos.horizontalHeaderItem(3)
item.setText(_translate("bookadmin", "类型"))
item = self.bookinfos.horizontalHeaderItem(4)
item.setText(_translate("bookadmin", "价格"))
item = self.bookinfos.horizontalHeaderItem(5)
item.setText(_translate("bookadmin", "出版社"))
item = self.bookinfos.horizontalHeaderItem(6)
item.setText(_translate("bookadmin", "摘要"))
item = self.bookinfos.horizontalHeaderItem(7)
item.setText(_translate("bookadmin", "馆藏册数"))
item = self.bookinfos.horizontalHeaderItem(8)
item.setText(_translate("bookadmin", "在馆册数"))
item = self.bookinfos.horizontalHeaderItem(9)
item.setText(_translate("bookadmin", "书架号"))
item = self.bookinfos.horizontalHeaderItem(10)
item.setText(_translate("bookadmin", "被借次数"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("bookadmin", "管理书籍信息"))
item = self.iteminfo.horizontalHeaderItem(0)
item.setText(_translate("bookadmin", "读者ID"))
item = self.iteminfo.horizontalHeaderItem(1)
item.setText(_translate("bookadmin", "书号"))
item = self.iteminfo.horizontalHeaderItem(2)
item.setText(_translate("bookadmin", "借/还"))
item = self.iteminfo.horizontalHeaderItem(3)
item.setText(_translate("bookadmin", "时间"))
self.yes.setText(_translate("bookadmin", "批准"))
self.no.setText(_translate("bookadmin", "驳回"))
self.refresh.setText(_translate("bookadmin", "刷新"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("bookadmin", "借阅/归还审批"))
# 显示所有的读者
def show_all_readers(self):
sql = "select * from readers"
res = cursor.execute(sql)
readerinfo = cursor.fetchall()
self.readerinfors.setRowCount(res)
for i in range(res):
reader = readerinfo[i]
readerid = QtWidgets.QTableWidgetItem(reader[0])
readername = QtWidgets.QTableWidgetItem(reader[1])
readersex = QtWidgets.QTableWidgetItem(reader[2])
readerunit = QtWidgets.QTableWidgetItem(reader[3])
readertype = QtWidgets.QTableWidgetItem(reader[4])
books_can_borrow = QtWidgets.QTableWidgetItem(str(reader[5]))
books_borrowed = QtWidgets.QTableWidgetItem(str(reader[6]))
charge_to_pay = QtWidgets.QTableWidgetItem(str(reader[8]))
self.readerinfors.setItem(i, 0, readerid)
self.readerinfors.setItem(i, 1, readername)
self.readerinfors.setItem(i, 2, readersex)
self.readerinfors.setItem(i, 3, readerunit)
self.readerinfors.setItem(i, 4, readertype)
self.readerinfors.setItem(i, 5, books_can_borrow)
self.readerinfors.setItem(i, 6, books_borrowed)
self.readerinfors.setItem(i, 7, charge_to_pay)
def readerselect(self):
readerid = self.readerid.text()
readername = self.readername.text()
readerunit = self.unit.text()
abc = 0
if readerid:
readerid = 'ID="%s"' % (readerid)
abc = 1
if readername:
if abc == 1:
readername = 'and 姓名="%s"' % (readername)
else:
readername = '姓名="%s"' % (readername)
abc = 1
if readerunit:
if abc == 1:
readerunit = 'and 单位="%s"' % (readerunit)
else:
readerunit = '单位="%s"' % (readerunit)
sql0 = 'select * from readers where '
sql1 = readerid + readername + readerunit
sql = sql0 + sql1
if sql1:
res = cursor.execute(sql)
if res:
readerinfo = cursor.fetchall() # 返回一堆元组组成的元组
self.readerinfors.setRowCount(res)
for i in range(res):
reader = readerinfo[i]
readerid = QtWidgets.QTableWidgetItem(reader[0])
readername = QtWidgets.QTableWidgetItem(reader[1])
readersex = QtWidgets.QTableWidgetItem(reader[2])
readerunit = QtWidgets.QTableWidgetItem(reader[3])
readertype = QtWidgets.QTableWidgetItem(reader[4])
books_can_borrow = QtWidgets.QTableWidgetItem(str(reader[5]))
books_borrowed = QtWidgets.QTableWidgetItem(str(reader[6]))
charge_to_pay = QtWidgets.QTableWidgetItem(str(reader[8]))
self.readerinfors.setItem(i, 0, readerid)
self.readerinfors.setItem(i, 1, readername)
self.readerinfors.setItem(i, 2, readersex)
self.readerinfors.setItem(i, 3, readerunit)
self.readerinfors.setItem(i, 4, readertype)
self.readerinfors.setItem(i, 5, books_can_borrow)
self.readerinfors.setItem(i, 6, books_borrowed)
self.readerinfors.setItem(i, 7, charge_to_pay)
else:
QMessageBox.warning(None, "警告", "没有符合条件的读者!", QMessageBox.Yes)
else:
QMessageBox.warning(None, "警告", "至少输入一项读者信息!", QMessageBox.Yes)
# 显示图书信息
def show_all_books(self):
sql = 'SELECT * FROM books'
res = cursor.execute(sql)
books = cursor.fetchall()
self.bookinfos.setRowCount(res)
for i in range(res):
book = books[i]
self.bookinfos.setItem(i, 0, QtWidgets.QTableWidgetItem(book[0]))
self.bookinfos.setItem(i, 1, QtWidgets.QTableWidgetItem(book[1]))
self.bookinfos.setItem(i, 2, QtWidgets.QTableWidgetItem(book[2]))
self.bookinfos.setItem(i, 3, QtWidgets.QTableWidgetItem(book[3]))
self.bookinfos.setItem(i, 4, QtWidgets.QTableWidgetItem(str(book[4])))
self.bookinfos.setItem(i, 5, QtWidgets.QTableWidgetItem(book[5]))
self.bookinfos.setItem(i, 6, QtWidgets.QTableWidgetItem(book[6]))
self.bookinfos.setItem(i, 7, QtWidgets.QTableWidgetItem(str(book[7])))
self.bookinfos.setItem(i, 8, QtWidgets.QTableWidgetItem(str(book[8])))
self.bookinfos.setItem(i, 9, QtWidgets.QTableWidgetItem(book[9]))
self.bookinfos.setItem(i, 10, QtWidgets.QTableWidgetItem(str(book[10])))
# 添加图书
def add_book(self):
bookid = self.bookid.text()
bookname = self.bookname.text()
author = self.author.text()
booktype = self.type.text()
prize1 = self.prize.text()
press = self.press.text()
abstract_2 = self.abstract_2.text()
bookshelf = self.bookshelf.text()
try:
totalnum = int(self.totalnum.text())
num = int(self.num.text())
if prize1 != '':
prize = float(prize1)
if bookid and bookname and author and booktype and prize and press and totalnum and num and abstract_2 and bookshelf:
sql = 'insert into books(书号,书名,作者,类型,价格,出版社,摘要,馆藏册数,在馆册数,书架号,被借次数) values ("%s","%s","%s","%s","%.2f","%s","%s","%d","%d","%s","%d")' % (
bookid, bookname, author, booktype, prize, press, abstract_2, num, totalnum, bookshelf, 0)
cursor.execute(sql)
conn.commit()
self.show_all_books()
else:
QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes)
else:
QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes)
except (pymysql.err.IntegrityError, ValueError):
QMessageBox.warning(None, "警告", "书目信息错误!", QMessageBox.Yes)
# 删除图书
def drop_book(self):
s = self.bookinfos.currentRow() # 通过获取第几行从0开始
bookid = self.bookinfos.item(s, 0).text()
sql = 'delete from books where 书号="%s"' % (bookid)
cursor.execute(sql)
conn.commit()
self.show_all_books()
# 显示图书信息
def displayinfo(self):
s = self.bookinfos.currentRow()
self.bookid.setText(self.bookinfos.item(s, 0).text())
self.bookname.setText(self.bookinfos.item(s, 1).text())
self.author.setText(self.bookinfos.item(s, 2).text())
self.type.setText(self.bookinfos.item(s, 3).text())
self.prize.setText(self.bookinfos.item(s, 4).text())
self.press.setText(self.bookinfos.item(s, 5).text())
self.abstract_2.setText(self.bookinfos.item(s, 6).text())
self.num.setText(self.bookinfos.item(s, 7).text())
self.totalnum.setText(self.bookinfos.item(s, 8).text())
self.bookshelf.setText(self.bookinfos.item(s, 9).text())
# 修改图书
def update_book(self):
bookid = self.bookid.text()
bookname = self.bookname.text()
author = self.author.text()
booktype = self.type.text()
prize1 = self.prize.text()
press = self.press.text()
abstract_2 = self.abstract_2.text()
bookshelf = self.bookshelf.text()
try:
totalnum = int(self.totalnum.text())
num = int(self.num.text())
if prize1 != '':
prize = float(prize1)
if bookid and bookname and author and booktype and prize and press and totalnum and num and abstract_2 and bookshelf:
sql = 'UPDATE books SET 书号="%s",书名="%s",作者="%s",类型="%s",价格="%.2f",出版社="%s",摘要="%s",馆藏册数="%d",在馆册数="%d",书架号="%s",被借次数="%d" WHERE 书号="%s"' % (
bookid, bookname, author, booktype, prize, press, abstract_2, num, totalnum, bookshelf, 0, bookid)
cursor.execute(sql)
conn.commit()
self.show_all_books()
else:
QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes)
else:
QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes)
except (pymysql.err.IntegrityError, ValueError):
QMessageBox.warning(None, "警告", "书目信息错误!", QMessageBox.Yes)
# 显示审批信息
def show_all_items(self):
sql = 'SELECT * FROM item'
res = cursor.execute(sql)
items = cursor.fetchall()
self.iteminfo.setRowCount(res)
for i in range(res):
item = items[i]
self.iteminfo.setItem(i, 1, QtWidgets.QTableWidgetItem(item[0]))
self.iteminfo.setItem(i, 0, QtWidgets.QTableWidgetItem(item[1]))
self.iteminfo.setItem(i, 3, QtWidgets.QTableWidgetItem(str(item[2])))
self.iteminfo.setItem(i, 2, QtWidgets.QTableWidgetItem(item[3]))
def pizhun(self):
s = self.iteminfo.currentRow() # 通过获取第几行从0开始
readerid = self.iteminfo.item(s, 0).text()
bookid = self.iteminfo.item(s, 1).text()
selecttype = self.iteminfo.item(s, 2).text()
itemtime = str(self.iteminfo.item(s, 3).text())
if selecttype == 'borrow':
# 从item中取出并放入borrow中
sql1 = 'delete from item where bookid="%s"' % (bookid)
cursor.execute(sql1)
conn.commit()
sql2 = 'insert into borrow(ID,书号,借书时间) values ("%s","%s","%s")' % (readerid, bookid, itemtime)
cursor.execute(sql2)
conn.commit()
# reader里面的在借册数加一可借册数减一
sql3 = 'update readers set 可借册数=可借册数-1,在借册数=在借册数+1 where ID="%s"' % (readerid)
cursor.execute(sql3)
conn.commit()
# 图书被借册数加一
sql4 = 'update books set 被借次数=被借次数+1,在馆册数=在馆册数-1 where 书号="%s"' % (bookid)
cursor.execute(sql4)
conn.commit()
else:
sql = 'select * from borrow where ID="%s" and 书号="%s"' % (readerid, bookid)
cursor.execute(sql)
borrowtime = cursor.fetchall()
borrowtime = borrowtime[0]
borrowtime = str(borrowtime[-1])
# 获取当前时间与借书时间相差的天数
borrowtime = time.strptime(borrowtime, "%Y-%m-%d")
time_array1 = int(time.mktime(borrowtime))
itemtime = time.strptime(itemtime, "%Y-%m-%d")
time_array2 = int(time.mktime(itemtime))
result = (time_array2 - time_array1) // 60 // 60 // 24
# 读出该身份人员可借时间
sql7 = 'select * from readers where ID="%s"' % (readerid)
cursor.execute(sql7)
item = cursor.fetchall()
item = item[0]
if item[4] == '研究生':
readertime = 60
elif item[4] == '本科生':
readertime = 30
elif item[4] == '教师':
readertime = 90
time_to_cal = result - readertime
# 判断是否超期
if time_to_cal <= 0:
QMessageBox.warning(None, "谢谢惠顾", "还书成功!", QMessageBox.Yes)
else:
sql8 = 'update readers set 欠款=欠款+"%d" where ID="%s"' % (time_to_cal, readerid)
cursor.execute(sql8)
conn.commit()
QMessageBox.warning(None, "注意", "该读者已逾期,请提醒及时还清欠款!", QMessageBox.Yes)
sql5 = 'delete from borrow where 书号="%s"' % (bookid)
cursor.execute(sql5)
conn.commit()
sql6 = 'delete from item where bookid="%s"' % (bookid)
cursor.execute(sql6)
conn.commit()
sql9 = 'update readers set 可借册数=可借册数+1,在借册数=在借册数-1 where ID="%s"' % (readerid)
cursor.execute(sql9)
conn.commit()
sql10 = 'update books set 在馆册数=在馆册数+1 where 书号="%s"' % (bookid)
cursor.execute(sql10)
conn.commit()
self.show_all_items()
def bohui(self):
s = self.iteminfo.currentRow() # 通过获取第几行从0开始
bookid = self.iteminfo.item(s, 1).text()
sql = 'delete from item where bookid="%s"' % (bookid)
cursor.execute(sql)
conn.commit()