class EditStaffCellDialog(QDialog):
    def __init__(self, staffId):
        super(EditStaffCellDialog, self).__init__()
        self.init(staffId)
        self.loading()

    def init(self, staffId):
        self.initUI()
        self.initSQL()
        self.initOther()
        self.initInteraction()
        self.initValue(staffId)

    def initUI(self):
        self.ui = Ui_EditStaffCellDialog()
        self.ui.setupUi(self)

    def initSQL(self):
        self.SQLHelper = SQLHelper()

    def initOther(self):
        self.moveFlag = False

    def initValue(self, staffId):
        self.staffId = staffId

    def initInteraction(self):
        self.ui.cancel.clicked.connect(self.cancelClicked)
        self.ui.dialogNavClose.clicked.connect(self.dialogNavCloseClicked)
        self.ui.comfirm.clicked.connect(self.comfirmClicked)

    def loading(self):
        if not self.staffId is None:
            staff = self.SQLHelper.getStaffById(self.staffId)[0]

            self.ui.staffNumLineEdit.setText(str(staff[0]))
            self.ui.staffNumLineEdit.setEnabled(False)
            self.ui.stuNumLineEdit.setText(staff[1])
            self.ui.nameLineEdit.setText(staff[2])

    def cancelClicked(self):
        self.SQLHelper.close()
        self.reject()

    def dialogNavCloseClicked(self):
        self.SQLHelper.close()
        self.reject()

    def comfirmClicked(self):

        staffNum = self.ui.staffNumLineEdit.text()
        stuNum = self.ui.stuNumLineEdit.text()
        name = self.ui.nameLineEdit.text()

        if staffNum == '' or stuNum == '' or name == '':
            dialog = MessageDialog("錯誤訊息", "請確認表單資料填寫完整")
            dialog.exec()
        else:
            staffNum = int(staffNum)
            if self.staffId is None:
                staffs = self.SQLHelper.getStaffById(staffNum)
                if len(staffs) != 0:
                    dialog = MessageDialog("錯誤訊息",
                                           f'已有工讀生編號{staffNum}號的工讀生,請查核後重試')
                    dialog.exec()
                else:
                    dialog = MessageDialog("提示訊息", "請確認是否新增工讀生")
                    if dialog.exec():
                        self.SQLHelper.newStaff(staffNum, stuNum, name)
                        self.accept()
            else:
                dialog = MessageDialog("提示訊息", "請確認是否修改工讀生")
                if dialog.exec():
                    self.SQLHelper.updateStaffById(staffNum, stuNum, name)
                    self.accept()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.moveFlag = True
            self.movePosition = event.globalPos() - self.pos()
            self.setCursor(QCursor(Qt.OpenHandCursor))
            event.accept()

    def mouseMoveEvent(self, event):
        if Qt.LeftButton and self.moveFlag:
            self.move(event.globalPos() - self.movePosition)
            event.accept()

    def mouseReleaseEvent(self, event):
        self.moveFlag = False
        self.setCursor(Qt.ArrowCursor)
Пример #2
0
class CheckAuthDialog(QDialog):
    def __init__(self, staffNum):
        super(CheckAuthDialog, self).__init__()
        self.init(staffNum)
        self.loadingFocus()

    def init(self, staffNum):
        self.initValue(staffNum)
        self.initUI()
        self.initInteraction()
        self.initOther()
        self.initSQL()

    def initValue(self, staffNum):
        self.staffNum = staffNum

    def initUI(self):
        self.ui = Ui_CheckAuthDialog()
        self.ui.setupUi(self)

    def initInteraction(self):
        self.ui.dialogNavClose.clicked.connect(self.dialogNavCloseClicked)
        self.ui.comfirm.clicked.connect(self.comfirmClicked)
        self.ui.cancel.clicked.connect(self.cancelClicked)
        self.ui.stuNumLineEdit.returnPressed.connect(self.comfirmClicked)

    def initOther(self):
        self.moveFlag = False

    def initSQL(self):
        self.SQLHelper = SQLHelper()

    def loading(self):
        self.loadingFocus()

    def loadingFocus(self):
        self.ui.stuNumLineEdit.setFocus(True)

    def dialogNavCloseClicked(self):
        self.SQLHelper.close()
        self.reject()

    def cancelClicked(self):
        self.SQLHelper.close()
        self.reject()

    def comfirmClicked(self):

        staff = self.SQLHelper.getStaffById(self.staffNum)[0]

        if self.ui.stuNumLineEdit.text() == staff[1]:
            self.accept()
        else:
            self.hide()
            dialog = MessageDialog("錯誤提示", "操作人員驗證錯誤,請重試")
            dialog.exec()
            self.reject()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.moveFlag = True
            self.movePosition = event.globalPos() - self.pos()
            self.setCursor(QCursor(Qt.OpenHandCursor))
            event.accept()

    def mouseMoveEvent(self, event):
        if Qt.LeftButton and self.moveFlag:
            self.move(event.globalPos() - self.movePosition)
            event.accept()

    def mouseReleaseEvent(self, event):
        self.moveFlag = False
        self.setCursor(Qt.ArrowCursor)