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)
Beispiel #2
0
 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()
Beispiel #6
0
    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
Beispiel #8
0
    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()