def setupWidget(self): style = """ QTreeWidget::item:!selected{ border-bottom: 1px solid black; border-left: 1px solid black; border-top: 1px solid black; padding: 5px; } QTreeWidget::item:selected{} """ self.treeBill.setStyleSheet(style) listAttribute = [ "Item Name", "Type Name", "ID", "Amount", "Sale Type", "Price", "Created Date", "Created Time", "Notice" ] for attribute in listAttribute: self.comboFilter.addItem(attribute) data = Database() listBill = data.getAllListBill() for bill in listBill: self.addBillIntoTree(bill) data.closeDatabase() self.comboFilter.setCurrentIndex(0) self.listHistories = self.loadHistories() self.completer = QtWidgets.QCompleter(self.listHistories) self.editFind.setCompleter(self.completer)
def loadDataForHomePage(self): data = Database() date = datetime.datetime.now().date().strftime("%d/%m/%Y") listBill = data.getListBillAtDate(str(date)) for bill in listBill: self.addItemIntoTree(bill) data.closeDatabase()
def onItemCellContentChange(self, row, col): if self.isAddItem: return cell = self.tableItem.item(row, col) print(cell.text()) data = Database() if col == 0: data.updateItemName( self.tableItem.item(row, 1).text(), cell.text()) elif col == 1: try: data.updateItemID(self.beforeItemChange, cell.text()) except sqlite3.IntegrityError: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("ID này đã tồn tại !!") msg.setInformativeText( "Xin hãy chọn một ID khác và thử lại !!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() data.closeDatabase() return else: data.updateAllTypeHasIDParent(cell.text()) self.onCurrentItemCellChange(row, col, None, None) data.closeDatabase()
def onAddUser(self): data = Database() user = User() user.name = self.editName.text() user.username = self.editUsername.text() user.passWord = self.editPass.text() try: data.insertUser(user) except sqlite3.IntegrityError: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("Your username has already existed !!!") msg.setInformativeText("Please choose another username !!!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() return self.addUserIntoTable(user) data.closeDatabase() self.editName.clear() self.editPass.clear() self.editUsername.clear()
def startFinding(self, index, newHis): data = Database() self.treeBill.clear() # Filter is Item name if index == 0: listResult = data.getListBillWithItemName(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Type name if index == 1: listResult = data.getListBillWithTypeName(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is ID if index == 2: listResult = data.getListBillWithIDBill(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Amount if index == 3: listResult = data.getListBillWithAmount(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Sale Type if index == 4: listResult = data.getListBillWithSaleType(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Price if index == 5: listResult = data.getListBillWithPrice(newHis) for bill in listResult: self.addBillIntoTree(bill) # # Filter is Created User # if index == 6: # listResult = data.getListBillWithUserCreate(newHis) # for bill in listResult: # self.addBillIntoTree(bill) # Filter is Created Date if index == 6: listResult = data.getListBillAtDate(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Created Time if index == 7: listResult = data.getListBillAtTime(newHis) for bill in listResult: self.addBillIntoTree(bill) # Filter is Notice if index == 8: listResult = data.getListBillWithNotice(newHis) for bill in listResult: self.addBillIntoTree(bill) data.closeDatabase()
def checkAccount(self): username = self.editUsername.text() passWord = self.editPassword.text() data = Database() user = data.getUserInfo(username) if user.username == username and user.passWord == passWord: data.closeDatabase() return True else: data.closeDatabase() return False
def onAddType(self): if self.comboFilter.currentIndex() > 1: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Critical) msg.setText("Bạn hiện đang ở chế độ tìm kiếm !!") msg.setInformativeText( "Thoát khỏi chế độ tìm kiếm để thực hiện chức năng này !!") msg.setDetailedText( "Chọn tìm kiếm với 'Tên mặt hàng' hoặc 'ID mặt hàng' và chọn mặt hàng muốn thêm để thoát khỏi chế độ tìm kiếm!!" ) msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() return row = self.tableItem.currentRow() if row >= 0: idParent = self.tableItem.item(row, 1).text() date = datetime.datetime.now() newId = "TY-" + date.strftime("%d%m%Y%H%M%S") newType = TypeItem(idType=newId, idParent=idParent, amount=0, unitPrice=0, wholePrice=0, originPrice=0) data = Database() while True: try: data.insertTypeItem(newType) except sqlite3.IntegrityError: date = date + datetime.timedelta(0, 1) newId = "TY-" + date.strftime("%d%m%Y%H%M%S") newType.idType = newId else: break data.closeDatabase() self.addTypeIntoTable(newType) else: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("Bạn muốn thực hiện điều này trong mặt hàng nào !!") msg.setInformativeText( "Xin hãy chọn một mặt hàng trước khi thực hiện !!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() return
def SetupWidget(self): data = Database() self.listItem = data.getListItemWithoutType() for item in self.listItem: self.comboItem.addItem(item.name) data.closeDatabase() self.spinAmount.setMinimum(0) self.spinAmount.setMaximum(10**9) self.btnBrowse.setIcon( QtGui.QIcon("Image/icons8-browse-folder-50.png")) self.btnBrowse.setIconSize(QtCore.QSize(16, 16)) date = datetime.datetime.now().strftime("TY-%d%m%Y%H%M%S") self.editID.setText(date)
def onAddItem(self): date = datetime.datetime.now() newId = "IT-" + date.strftime("%d%m%Y%H%M%S") newItem = Item(idItem=newId) data = Database() while True: try: data.insertItem(newItem) except sqlite3.IntegrityError: date = date + datetime.timedelta(0, 1) newId = "IT-" + date.strftime("%d%m%Y%H%M%S") newItem.idItem = newId else: break data.closeDatabase() self.addItemIntoTable(newItem)
def onCellChange(self, row, col): dataChange = self.tableUser.item(row, col).text() if col == 1: if dataChange != self.beforeChange: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("Không thể sửa Username !!") msg.setInformativeText("Vui lòng thử lại !!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() self.tableUser.item(row, col).setText(self.beforeChange) return else: return username = self.tableUser.item(row, 1).text() data = Database() if col == 0: data.updateNameOfUser(username, dataChange) if col == 2: data.updatePassOfUser(username, dataChange) data.closeDatabase()
def setupWidget(self): listAttribute = [ "Tên mặt hàng", "ID mặt hàng", "Tên loại hàng", "ID Loại hàng", "Số lượng tồn", "Giá lẻ", "Giá sỉ", "Giá vốn", "Ghi chú", "Hình ảnh" ] for attribute in listAttribute: self.comboFilter.addItem(attribute) self.comboFilter.setCurrentIndex(0) data = Database() self.listItem = data.getListItemWithoutType() for item in self.listItem: self.addItemIntoTable(item) data.closeDatabase() self.tableItem.setCurrentCell(0, 0) self.onCurrentItemCellChange(0, 0, None, None) self.listHistories = self.loadHistories() self.completer = QtWidgets.QCompleter(self.listHistories) self.editFind.setCompleter(self.completer)
def onDeleteType(self): currentRow = self.tableType.currentRow() currentCol = self.tableType.currentColumn() numberRow = self.tableType.rowCount() if currentRow >= 0: idDel = self.tableType.item(currentRow, 1).text() data = Database() data.deleteTypeItem(idDel) data.closeDatabase() self.tableType.removeRow(currentRow) if currentRow == numberRow - 1: self.tableType.setCurrentCell(currentRow - 1, currentCol) else: self.tableType.setCurrentCell(currentRow, currentCol) else: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("Bạn muốn xóa loại hàng nào !!") msg.setInformativeText( "Xin hãy chọn một loại hàng trước khi xóa !!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() return
def startFinding(self, index, findingContent): data = Database() self.tableItem.clearContents() self.tableItem.setRowCount(0) self.tableType.clearContents() self.tableType.setRowCount(0) listResult = [] # Filter is Item name if index == 0: listResult = data.getListItemWithName(findingContent) for item in listResult: self.addItemIntoTable(item) # Filter is Item ID if index == 1: listResult = data.getListItemWithID(findingContent) for item in listResult: self.addItemIntoTable(item) # Filter is Type Name if index == 2: listResult = data.getListTypeWithName(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is ID if index == 3: listResult = data.getListTypeWithID(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is Amount if index == 4: listResult = data.getListTypeWithAmount(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is Unit Price if index == 5: listResult = data.getListTypeWithUnitPrice(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is WholePrice if index == 6: listResult = data.getListTypeWithWholePrice(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is Origin Price if index == 7: listResult = data.getListTypeWithOriginPrice(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is Notice if index == 8: listResult = data.getListTypeWithNotice(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) # Filter is Image Path if index == 9: listResult = data.getListTypeWithImagePath(findingContent) for typeItem in listResult: self.addTypeIntoTable(typeItem) data.closeDatabase()
def onTypeCellContentChange(self, row, col): if self.isAddType: return cell = self.tableType.item(row, col) data = Database() if col == 0: data.updateTypeName( self.tableType.item(row, 1).text(), cell.text()) elif col == 1: try: data.updateItemID(self.beforeItemChange, cell.text()) except sqlite3.IntegrityError: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Warning) msg.setText("ID này đã tồn tại !!") msg.setInformativeText( "Xin hãy chọn một ID khác và thử lại !!") msg.setStandardButtons(QtWidgets.QMessageBox.Ok) msg.exec() data.closeDatabase() return elif col == 3: try: test = int(cell.text()) except ValueError: Msgbox = QtWidgets.QMessageBox() Msgbox.setText("Error, Giá trị này phải là số!") Msgbox.exec() cell.setText(str(0)) return data.updateTypeAmount( self.tableType.item(row, 1).text(), cell.text()) elif col == 4: try: test = float(cell.text()) except ValueError: Msgbox = QtWidgets.QMessageBox() Msgbox.setText("Error, Giá trị này phải là số!") Msgbox.exec() cell.setText(str(0)) return data.updateTypeUnitPrice( self.tableType.item(row, 1).text(), cell.text()) elif col == 5: try: test = float(cell.text()) except ValueError: Msgbox = QtWidgets.QMessageBox() Msgbox.setText("Error, Giá trị này phải là số!") Msgbox.exec() cell.setText(str(0)) return data.updateTypeWholePrice( self.tableType.item(row, 1).text(), cell.text()) elif col == 6: try: test = float(cell.text()) except ValueError: Msgbox = QtWidgets.QMessageBox() Msgbox.setText("Error, Giá trị này phải là số!") Msgbox.exec() cell.setText(str(0)) return data.updateTypeOriginPrice( self.tableType.item(row, 1).text(), cell.text()) elif col == 7: data.updateTypeNotice( self.tableType.item(row, 1).text(), cell.text()) elif col == 8: data.updateTypeImagePath( self.tableType.item(row, 1).text(), cell.text()) data.closeDatabase()
def setupWidget(self): data = Database() listUser = data.getListUser() for user in listUser: self.addUserIntoTable(user) data.closeDatabase()