def UI(self):
        self.buatform()
        self.buattabelpinjam()
        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.layoutCrud.addWidget(self.btntambah)
        self.layoutCrud.addWidget(self.btnedit)
        self.layoutCrud.addWidget(self.btnhapus)

        self.layouttabel.addWidget(self.tablepinjam)

        self.btntambah.clicked.connect(self.enableform)
        # self.btnedit.clicked.connect(lambda: self.editanggota())
        self.btnhapus.clicked.connect(self.hapusid)
        self.formpinjam.addRow(self.layouttabel)
        self.formpinjam.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)
Пример #2
0
    def buatform(self):
        # formlayout
        self.formpengunjung = QFormLayout(self)
        # data inputan

        self.nama = QLineEdit(self)
        self.nama.setPlaceholderText("Nama")
        self.formpengunjung.addRow("Nama      ", self.nama)

        self.alamat = QTextEdit(self)
        self.alamat.setPlaceholderText("Alamat")
        self.alamat.setFixedHeight(50)
        self.formpengunjung.addRow("Alamat        ", self.alamat)

        self.nohp = QLineEdit(self)
        self.nohp.setInputMask("+62 9999 9999 999")
        self.formpengunjung.addRow("No Handphone      ", self.nohp)

        self.tglberkunjung = QDateEdit(self)
        self.tglberkunjung.setDisplayFormat('dd/MM/yyyy')
        self.tglberkunjung.setDate(QDate.currentDate())
        self.tglberkunjung.setReadOnly(True)
        self.formpengunjung.addRow("Tanggal Berkunjung        ",
                                   self.tglberkunjung)

        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.submit_btn)
        self.formpengunjung.addRow(self.btn_simpan)
Пример #3
0
    def Ui(self):
        self.buattabel()
        self.layoutUtama = QGridLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.btntambah.clicked.connect(lambda: self.formbuku())

        frameCrudSection = QFrameComponent("white")
        frameCrudSection.setContentsMargins(5, 5, 5, 5)
        frameTabel = QFrameComponent("white")
        frameTabel.setContentsMargins(5, 5, 5, 5)

        layoutCrudSection = QHBoxLayout(frameCrudSection)
        layoutTabel = QVBoxLayout(frameTabel)
        self.layoutUtama.addWidget(frameCrudSection, 1, 0, 2, 9, Qt.AlignTop)
        self.layoutUtama.addWidget(frameTabel, 5, 0, 3, 9, Qt.AlignBottom)

        layoutCrudSection.addWidget(self.btntambah)
        layoutCrudSection.addWidget(self.btnedit)
        layoutCrudSection.addWidget(self.btnhapus)

        layoutTabel.addWidget(self.table)
        self.setLayout(self.layoutUtama)
        self.show()
Пример #4
0
    def __init__(self):
        super().__init__()
        self.setFixedSize(400, 250)
        self.setWindowTitle("PERPUSTAKAAN DAERAH")

        self.font = QtGui.QFont()
        self.font.setFamily("Product Sans")
        self.font.setPointSize(12)
        self.font.setWeight(55)
        self.layoutUtama = QGridLayout()
        layout = QFrameComponent("")

        lbl_user = QLabelComponent("Username", "black")
        lbl_user.setFont(self.font)
        self.txtusername = QEditLineComponent("")
        lbl_pass = QLabelComponent("Password", "black")
        lbl_pass.setFont(self.font)
        self.txtpassword = QEditLineComponent("")
        self.txtpassword.setEchoMode(QLineEdit.Password)
        self.btnLogin = QPushButtonComponent("Login")
        self.btnLogin.setFont(self.font)

        self.layoutUtama.addWidget(layout, 4, 0, 1, 5, Qt.AlignTop)
        self.layoutUtama.addWidget(lbl_user, 1, 1, 1, 3, Qt.AlignLeft)
        self.layoutUtama.addWidget(self.txtusername, 2, 1, 1, 3)
        self.layoutUtama.addWidget(lbl_pass, 3, 1, 1, 3, Qt.AlignLeft)
        self.layoutUtama.addWidget(self.txtpassword, 4, 1, 1, 3)
        self.layoutUtama.addWidget(self.btnLogin, 4, 1, 2, 3)
        self.btnLogin.clicked.connect(lambda: self.switchMainMenu())

        self.setLayout(self.layoutUtama)
        self.show()
    def buatform(self):
        # formlayout
        self.formpinjam = QFormLayout(self)
        # data inputan

        self.idpinjam = QLineEdit(self)
        self.idpinjam.setPlaceholderText("Id Peminjaman")
        self.formpinjam.addRow("Id Peminjaman      ", self.idpinjam)

        self.idanggota = QLineEdit(self)
        self.idanggota.setPlaceholderText("Id Anggota")
        self.formpinjam.addRow("Id Anggota      ", self.idanggota)

        self.idpetugas = QLineEdit(self)
        self.idpetugas.setPlaceholderText("Id Petugas")
        self.formpinjam.addRow("Id Petugas      ", self.idpetugas)

        self.idbuku = QLineEdit(self)
        self.idbuku.setPlaceholderText("Id Buku")
        self.formpinjam.addRow("Id Buku     ", self.idbuku)

        self.tglpinjam = QDateEdit(self)
        self.tglpinjam.setDisplayFormat('dd/MM/yyyy')
        self.tglpinjam.setCalendarPopup(True)
        self.formpinjam.addRow("Tanggal Peminjaman      ", self.tglpinjam)

        self.tglkembali = QDateEdit(self)
        self.tglkembali.setDisplayFormat('dd/MM/yyyy')
        self.tglkembali.setCalendarPopup(True)
        self.formpinjam.addRow("Tanggal Kembalikan       ", self.tglkembali)

        self.tgldikembali = QDateEdit(self)
        self.tgldikembali.setDisplayFormat('dd/MM/yyyy')
        self.tgldikembali.setCalendarPopup(True)
        self.tgldikembali.setDate(QDate.currentDate())
        self.formpinjam.addRow("Tanggal Dikembalikan      ", self.tgldikembali)

        self.status = QComboBox()
        self.status.addItem("Dipinjam")
        self.status.addItem("Selesai")
        self.formpinjam.addRow("Status      ", self.status)

        self.denda = QComboBox()
        self.denda.addItem("NolRb")
        self.denda.addItem("DuaRb")
        self.denda.addItem("LimaRb")
        self.formpinjam.addRow("Denda      ", self.denda)

        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formpinjam.addRow(self.btn_simpan)
Пример #6
0
    def buatform(self):
        # formlayout
        self.formuser = QFormLayout(self)

        # data inputab
        self.username = QLineEdit(self)
        self.username.setPlaceholderText("Username")
        self.formuser.addRow("Usename        ", self.username)

        self.passwrd = QLineEdit(self)
        self.passwrd.setPlaceholderText("Password")
        self.formuser.addRow("Password       ", self.passwrd)

        self.hakakses = QComboBox()
        self.hakakses.addItem("Admin")
        self.hakakses.addItem("Petugas")
        self.formuser.addRow("Hak Akses      ", self.hakakses)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formuser.addRow(self.btn_simpan)
Пример #7
0
    def buatform(self):
        # formlayout
        self.formanggota = QFormLayout(self)
        # data inputan
        self.Nik = QLineEdit(self)
        self.Nik.setPlaceholderText("Nomor Induk Keluarga")
        self.formanggota.addRow("NIK", self.Nik)

        self.nama = QLineEdit(self)
        self.nama.setPlaceholderText("Nama Anggota")
        self.formanggota.addRow("Nama Anggota", self.nama)

        self.tempatlahir = QLineEdit(self)
        self.tempatlahir.setPlaceholderText("Tempat Lahir")
        self.formanggota.addRow("Tempat Lahir", self.tempatlahir)

        self.tglLahir = QDateEdit(self)
        self.tglLahir.setDisplayFormat('dd/MM/yyyy')
        self.tglLahir.setCalendarPopup(True)
        self.formanggota.addRow("Tanggal Lahir", self.tglLahir)

        self.alamat = QTextEdit(self)
        self.alamat.setPlaceholderText("Alamat")
        self.alamat.setFixedHeight(50)
        self.formanggota.addRow("Alamat", self.alamat)

        self.nohp = QLineEdit(self)
        self.nohp.setInputMask("+62 9999 9999 999")
        self.formanggota.addRow("No Handphone", self.nohp)

        self.jenkel = QComboBox()
        self.jenkel.addItem("laki-laki")
        self.jenkel.addItem("perempuan")
        self.formanggota.addRow("Jenis Kelamin ", self.jenkel)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formanggota.addRow(self.btn_simpan)
Пример #8
0
    def buatform(self):
        # formlayout
        self.formbuku = QFormLayout(self)
        # data inputan

        self.judulb = QLineEdit(self)
        self.judulb.setPlaceholderText("Judul Buku")
        self.formbuku.addRow("Judul Buku        ", self.judulb)

        self.pengarang = QLineEdit(self)
        self.pengarang.setPlaceholderText("Pengarang")
        self.formbuku.addRow("Pengarang        ", self.pengarang)

        self.penerbit = QLineEdit(self)
        self.penerbit.setPlaceholderText("Penerbit")
        self.formbuku.addRow("Penerbit        ", self.penerbit)

        self.tahunterbit = QDateEdit(self)
        self.tahunterbit.setDisplayFormat('yyyy')
        self.tahunterbit.setDate(QDate.currentDate())
        self.formbuku.addRow("Tanggal Terbit        ", self.tahunterbit)

        self.stokbuku = QLineEdit(self)
        self.stokbuku.setPlaceholderText("Stok Buku")
        self.formbuku.addRow("Stok Buku         ", self.stokbuku)

        self.norak = QComboBox()
        self.norak.addItem("Drama")
        self.norak.addItem("Komedi")
        self.norak.addItem("Sejarah")
        self.norak.addItem("Biografi")
        self.formbuku.addRow("Rak           ", self.norak)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formbuku.addRow(self.btn_simpan)
Пример #9
0
    def __init__(self, username, hakakses):
        super().__init__()

        self.showMaximized()
        self.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False)
        self.setWindowTitle("MENU")

        frameheadBar = QFrameComponent("white")

        headBarLayout = QGridLayout(frameheadBar)
        headBarLayout.setSpacing(5)

        self.btnPetugas = QPushButtonComponent("Data Petugas")
        self.btnAnggota = QPushButtonComponent("Data Anggota")
        self.btnTransaksi = QPushButtonComponent("Transaksi")
        self.btnBuku = QPushButtonComponent("Data Buku")
        self.btnUser = QPushButtonComponent("Data User")
        self.btnLogOut = QPushButtonComponent("Log Out")
        self.hak_akses = QLabel(str(hakakses))
        self.username = QLabel(str(username))
        framebodybar = QFrameComponent("maroon")
        bodyBarLayout = QHBoxLayout(framebodybar)

        headBarLayout.addWidget(self.btnPetugas, 0, 1)
        headBarLayout.addWidget(self.btnAnggota, 0, 2)
        headBarLayout.addWidget(self.btnBuku, 0, 3)
        headBarLayout.addWidget(self.btnTransaksi, 0, 4)
        headBarLayout.addWidget(self.btnUser, 0, 5)
        headBarLayout.addWidget(self.btnLogOut, 0, 6, QtCore.Qt.AlignBottom)
        bodyBarLayout.addWidget(self.username)
        bodyBarLayout.addWidget(self.hak_akses)

        layoutUtama = QGridLayout()
        layoutUtama.addWidget(frameheadBar, 0, 1, 1, 10, QtCore.Qt.AlignTop)
        layoutUtama.addWidget(framebodybar, 2, 1, 1, 10)

        self.btnPetugas.clicked.connect(lambda: self.openpetugas())
        self.btnAnggota.clicked.connect(lambda: self.openanggota())
        self.btnBuku.clicked.connect(lambda: self.openbuku())
        self.btnUser.clicked.connect(lambda: self.openuser())
        self.btnTransaksi.clicked.connect(lambda: self.openpeminjaman())
        self.btnLogOut.clicked.connect(lambda: self.openlogout())
        self.cekhak_akses()
        self.setLayout(layoutUtama)
        self.show()
Пример #10
0
    def UI(self):
        self.buatform()
        self.buattabelpengunjung()

        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Berkunjung")
        self.btntambah.clicked.connect(self.enableform)

        self.layoutCrud.addWidget(self.btntambah)
        self.layouttabel.addWidget(self.tablepengunjung)
        self.btntambah.clicked.connect(self.enableform)
        self.formpengunjung.addRow(self.layouttabel)
        self.formpengunjung.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)
Пример #11
0
class LoginView(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(400, 250)
        self.setWindowTitle("PERPUSTAKAAN DAERAH")

        self.font = QtGui.QFont()
        self.font.setFamily("Product Sans")
        self.font.setPointSize(12)
        self.font.setWeight(55)
        self.layoutUtama = QGridLayout()
        layout = QFrameComponent("")

        lbl_user = QLabelComponent("Username", "black")
        lbl_user.setFont(self.font)
        self.txtusername = QEditLineComponent("")
        lbl_pass = QLabelComponent("Password", "black")
        lbl_pass.setFont(self.font)
        self.txtpassword = QEditLineComponent("")
        self.txtpassword.setEchoMode(QLineEdit.Password)
        self.btnLogin = QPushButtonComponent("Login")
        self.btnLogin.setFont(self.font)

        self.layoutUtama.addWidget(layout, 4, 0, 1, 5, Qt.AlignTop)
        self.layoutUtama.addWidget(lbl_user, 1, 1, 1, 3, Qt.AlignLeft)
        self.layoutUtama.addWidget(self.txtusername, 2, 1, 1, 3)
        self.layoutUtama.addWidget(lbl_pass, 3, 1, 1, 3, Qt.AlignLeft)
        self.layoutUtama.addWidget(self.txtpassword, 4, 1, 1, 3)
        self.layoutUtama.addWidget(self.btnLogin, 4, 1, 2, 3)
        self.btnLogin.clicked.connect(lambda: self.switchMainMenu())

        self.setLayout(self.layoutUtama)
        self.show()

    @pyqtSlot()
    def buttonClick(self):
        username = self.txtUsername.text()
        password = self.txtpassword.text()
        checkLogin = OrmUser.cekuser(username, password)
        if (checkLogin == True):
            self.switchMainMenu()
        else:
            msg = QMessageBox()
            msg.resize(250, 250)
            msg.setIcon(QMessageBox.Warning)
            msg.setText("Username Atau Password Salah!")
            msg.setWindowTitle("LOGIN SALAH")
            msg.exec_()

    @pyqtSlot()
    def switchMainMenu(self):
        username = self.txtusername.text()
        hakakses = OrmUser.findHakAkses(username)
        self.mainMenu = MainMenuView(username.upper(), hakakses)
        self.mainMenu.show()
        self.hide()

    def clear(self):
        self.txtusername.setText("")
        self.txtpassword.setText("")
        self.txtusername.setFocus()
Пример #12
0
class PetugasView(QWidget):
    def __init__(self):
        super(PetugasView, self).__init__()
        self.setWindowTitle("Data Petugas")
        self.resize(750, 350)
        self.UI()
        self.disableform()

    def UI(self):
        self.buatform()
        self.buattabelpetugas()
        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.layoutCrud.addWidget(self.btntambah)
        self.layoutCrud.addWidget(self.btnedit)
        self.layoutCrud.addWidget(self.btnhapus)
        self.layouttabel.addWidget(self.tablepetugas)

        self.btntambah.clicked.connect(self.enableform)
        # self.btnedit.clicked.connect(lambda: self.editanggota())
        self.btnhapus.clicked.connect(self.hapusAnggotaId)
        self.formpetugas.addRow(self.layouttabel)
        self.formpetugas.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)

    def buatform(self):
        # formlayout
        self.formpetugas = QFormLayout(self)
        # data inputan

        self.nama = QLineEdit(self)
        self.nama.setPlaceholderText("Nama Petugas")
        self.formpetugas.addRow("Nama Petugas", self.nama)

        self.tempatlahir = QLineEdit(self)
        self.tempatlahir.setPlaceholderText("Tempat Lahir")
        self.formpetugas.addRow("Tempat Lahir", self.tempatlahir)

        self.tglLahir = QDateEdit(self)
        self.tglLahir.setDisplayFormat('dd/MM/yyyy')
        self.tglLahir.setCalendarPopup(True)
        self.formpetugas.addRow("Tanggal Lahir", self.tglLahir)

        self.alamat = QTextEdit(self)
        self.alamat.setPlaceholderText("Alamat")
        self.alamat.setFixedHeight(50)
        self.formpetugas.addRow("Alamat", self.alamat)

        self.nohp = QLineEdit(self)
        self.nohp.setInputMask("+62 9999 9999 999")
        self.formpetugas.addRow("No Handphone", self.nohp)

        self.jenkel = QComboBox()
        self.jenkel.addItem("laki-laki")
        self.jenkel.addItem("perempuan")
        self.formpetugas.addRow("Jenis Kelamin ", self.jenkel)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formpetugas.addRow(self.btn_simpan)

    def buattabelpetugas(self):
        self.buattabel()

    def buattabel(self):
        self.tablepetugas = QTableWidget()
        self.tablepetugas.cellClicked.connect(self.cek)
        self.tablepetugas.setColumnCount(7)
        self.tablepetugas.setHorizontalHeaderLabels([
            "IdPetugas", "Nama", "TempatLahir", "TanggalLahir", "Alamat",
            "NoHandphone", "JenisKelamin"
        ])
        self.tablepetugas.setFixedSize(900, 350)
        self.tablepetugas.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.isiTable()

    def cek(self, row):
        print(self.tablepetugas.item(row, 0).text())
        print(self.tablepetugas.item(row, 1).text())
        print(self.tablepetugas.item(row, 2).text())
        print(self.tablepetugas.item(row, 3).text())
        print(self.tablepetugas.item(row, 4).text())
        print(self.tablepetugas.item(row, 5).text())
        print(self.tablepetugas.item(row, 6).text())

    def isiTable(self):
        query = OrmPetugas.tampilpetugas()
        self.tablepetugas.setRowCount(len(query))
        for row in range(len(query)):
            self.tablepetugas.setItem(
                row, 0, QTableWidgetItem(str(query[row].idpetugas)))
            self.tablepetugas.setItem(row, 1,
                                      QTableWidgetItem(str(query[row].Nama)))
            self.tablepetugas.setItem(row, 2,
                                      QTableWidgetItem(query[row].TempatLahir))
            self.tablepetugas.setItem(
                row, 3, QTableWidgetItem(query[row].TanggalLahir))
            self.tablepetugas.setItem(row, 4,
                                      QTableWidgetItem(str(query[row].Alamat)))
            self.tablepetugas.setItem(row, 5,
                                      QTableWidgetItem(query[row].NoHandphone))
            self.tablepetugas.setItem(
                row, 6, QTableWidgetItem(str(query[row].JenisKelamin)))

    def simpan_btn(self):
        try:
            Petugas(self.nama.text(), self.tempatlahir.text(),
                    self.tglLahir.text(), self.alamat.toPlainText(),
                    self.nohp.text(), self.jenkel.currentText())

            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Telah Disimpan")
            msg.setWindowTitle("Berhasil")
            msg.exec_()
            self.refresh()
            self.disableform()
            self.isiTable()
        except Exception as e:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)

            msg.setText("Data tidak berhasil disimpan")
            msg.setInformativeText(f"ERROR : {e}")
            msg.setWindowTitle("Warning")
            msg.exec_()

    def disableform(self):
        self.nama.setReadOnly(True)
        self.tempatlahir.setReadOnly(True)
        self.tglLahir.setReadOnly(True)
        self.alamat.setReadOnly(True)
        self.nohp.setReadOnly(True)
        self.jenkel.setDisabled(True)
        self.btn_simpan.setDisabled(True)

    def enableform(self):
        self.nama.setReadOnly(False)
        self.tempatlahir.setReadOnly(False)
        self.tglLahir.setReadOnly(False)
        self.alamat.setReadOnly(False)
        self.nohp.setReadOnly(False)
        self.jenkel.setDisabled(False)
        self.btn_simpan.setDisabled(False)
        self.nama.setFocus()

    def refresh(self):
        self.nama.clear()
        self.tempatlahir.clear()
        self.tglLahir.clear()
        self.alamat.clear()
        self.nohp.clear()

    def cekid(self, row):
        self.SelectedId = int(self.tablepetugas.item(row, 0).text())
        print(self.SelectedId)

    def hapusAnggotaId(self, row):
        SelectedId = int(self.tablepetugas.item(row, 0).text())
        OrmPetugas.hapusPetugas(SelectedId)
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("Data Telah Dihapus")
        msg.setWindowTitle("Berhasil")
        msg.exec_()
        self.isiTable()
Пример #13
0
class BukuView(QWidget):

    def __init__(self):
        super(BukuView,self).__init__()
        self.setWindowTitle("Data Buku")
        self.resize(750, 350)
        self.UI()
        self.disableform()

    def UI(self):
        self.buatform()
        self.buattabelbuku()
        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.layoutCrud.addWidget(self.btntambah)
        self.layoutCrud.addWidget(self.btnedit)
        self.layoutCrud.addWidget(self.btnhapus)
        self.layouttabel.addWidget(self.tablebuku)

        self.btntambah.clicked.connect(self.enableform)
        # self.btnedit.clicked.connect(lambda: self.editanggota())
        self.btnhapus.clicked.connect(self.hapusid)
        self.formbuku.addRow(self.layouttabel)
        self.formbuku.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)

    def buatform(self):
        # formlayout
        self.formbuku = QFormLayout(self)
        # data inputan

        self.judulb = QLineEdit(self)
        self.judulb.setPlaceholderText("Judul Buku")
        self.formbuku.addRow("Judul Buku        ", self.judulb)

        self.pengarang = QLineEdit(self)
        self.pengarang.setPlaceholderText("Pengarang")
        self.formbuku.addRow("Pengarang        ", self.pengarang)

        self.penerbit = QLineEdit(self)
        self.penerbit.setPlaceholderText("Penerbit")
        self.formbuku.addRow("Penerbit        ", self.penerbit)

        self.tahunterbit = QDateEdit(self)
        self.tahunterbit.setDisplayFormat('yyyy')
        self.tahunterbit.setDate(QDate.currentDate())
        self.formbuku.addRow("Tanggal Terbit        ", self.tahunterbit)

        self.stokbuku = QLineEdit(self)
        self.stokbuku.setPlaceholderText("Stok Buku")
        self.formbuku.addRow("Stok Buku         ", self.stokbuku)

        self.norak = QComboBox()
        self.norak.addItem("Drama")
        self.norak.addItem("Komedi")
        self.norak.addItem("Sejarah")
        self.norak.addItem("Biografi")
        self.formbuku.addRow("Rak           ", self.norak)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formbuku.addRow(self.btn_simpan)

    def buattabelbuku(self):
        self.buattabel()

    def buattabel(self):
        self.tablebuku = QTableWidget()
        self.tablebuku.setColumnCount(7)
        self.tablebuku.setHorizontalHeaderLabels(
            ["IdBuku","Judul Buku","Pengarang", "Penerbit","Tahun Terbit", "Stok Buku", "Nama Rak"])
        self.tablebuku.setFixedSize(900, 350)
        self.tablebuku.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.isiTable()

    def isiTable(self):
        query = OrmBuku.tampilbuku()
        self.tablebuku.setRowCount(len(query))
        for row in range(len(query)):
            self.tablebuku.setItem(row, 0, QTableWidgetItem(str(query[row].IdBuku)))
            self.tablebuku.setItem(row, 1, QTableWidgetItem(str(query[row].JudulBuku)))
            self.tablebuku.setItem(row, 2, QTableWidgetItem(str(query[row].Pengarang)))
            self.tablebuku.setItem(row, 3, QTableWidgetItem(query[row].Penerbit))
            self.tablebuku.setItem(row, 4, QTableWidgetItem(query[row].TahunTerbit))
            self.tablebuku.setItem(row, 5, QTableWidgetItem(str(query[row].Stok)))
            self.tablebuku.setItem(row, 6, QTableWidgetItem(query[row].NomorRak))

    def simpan_btn(self):
        try:
            Buku(self.judulb.text(),
                    self.pengarang.text(),
                    self.penerbit.text(),
                    self.tahunterbit.text(),
                    self.stokbuku.text(),
                    self.norak.currentText())

            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Telah Disimpan")
            msg.setWindowTitle("Berhasil")
            msg.exec_()
            self.refresh()
            self.disableform()
            self.isiTable()
        except Exception as e:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)

            msg.setText("Data tidak berhasil disimpan")
            msg.setInformativeText(f"ERROR : {e}")
            msg.setWindowTitle("Warning")
            msg.exec_()

    def disableform(self):
        self.judulb.setReadOnly(True)
        self.pengarang.setReadOnly(True)
        self.penerbit.setReadOnly(True)
        self.tahunterbit.setDisabled(True)
        self.stokbuku.setReadOnly(True)
        self.norak.setDisabled(True)
        self.btn_simpan.setDisabled(True)

    def enableform(self):
        self.judulb.setReadOnly(False)
        self.pengarang.setReadOnly(False)
        self.penerbit.setReadOnly(False)
        self.tahunterbit.setDisabled(False)
        self.stokbuku.setReadOnly(False)
        self.norak.setDisabled(False)
        self.btn_simpan.setDisabled(False)
        self.judulb.setFocus()

    def refresh(self):
        self.judulb.clear()
        self.pengarang.clear()
        self.penerbit.clear()
        self.tahunterbit.clear()
        self.stokbuku.clear()

    def cekid(self, row):
        self.SelectedId = int(self.tablebuku.item(row, 0).text())
        print(self.SelectedId)

    def hapusid(self, row):
        SelectedId = int(self.tablebuku.item(row, 0).text())
        OrmBuku.hapusBuku(SelectedId)
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("Data Telah Dihapus")
        msg.setWindowTitle("Berhasil")
        msg.exec_()
        self.isiTable()
Пример #14
0
class PengembalianView(QWidget):
    def __init__(self):
        super(PengembalianView, self).__init__()
        self.setWindowTitle("Data Pengembalian Buku")
        self.resize(750, 350)
        self.UI()
        self.disableform()

    def UI(self):
        self.buatform()
        self.buattabelpinjam()
        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.layoutCrud.addWidget(self.btntambah)
        self.layoutCrud.addWidget(self.btnedit)
        self.layoutCrud.addWidget(self.btnhapus)

        self.layouttabel.addWidget(self.tablepinjam)

        self.btntambah.clicked.connect(self.enableform)
        # self.btnedit.clicked.connect(lambda: self.editanggota())
        self.btnhapus.clicked.connect(self.hapusid)
        self.formpinjam.addRow(self.layouttabel)
        self.formpinjam.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)

    def buatform(self):
        # formlayout
        self.formpinjam = QFormLayout(self)
        # data inputan

        self.idpinjam = QLineEdit(self)
        self.idpinjam.setPlaceholderText("Id Peminjaman")
        self.formpinjam.addRow("Id Peminjaman      ", self.idpinjam)

        self.idanggota = QLineEdit(self)
        self.idanggota.setPlaceholderText("Id Anggota")
        self.formpinjam.addRow("Id Anggota      ", self.idanggota)

        self.idpetugas = QLineEdit(self)
        self.idpetugas.setPlaceholderText("Id Petugas")
        self.formpinjam.addRow("Id Petugas      ", self.idpetugas)

        self.idbuku = QLineEdit(self)
        self.idbuku.setPlaceholderText("Id Buku")
        self.formpinjam.addRow("Id Buku     ", self.idbuku)

        self.tglpinjam = QDateEdit(self)
        self.tglpinjam.setDisplayFormat('dd/MM/yyyy')
        self.tglpinjam.setCalendarPopup(True)
        self.formpinjam.addRow("Tanggal Peminjaman      ", self.tglpinjam)

        self.tglkembali = QDateEdit(self)
        self.tglkembali.setDisplayFormat('dd/MM/yyyy')
        self.tglkembali.setCalendarPopup(True)
        self.formpinjam.addRow("Tanggal Kembalikan       ", self.tglkembali)

        self.tgldikembali = QDateEdit(self)
        self.tgldikembali.setDisplayFormat('dd/MM/yyyy')
        self.tgldikembali.setCalendarPopup(True)
        self.tgldikembali.setDate(QDate.currentDate())
        self.formpinjam.addRow("Tanggal Dikembalikan      ", self.tgldikembali)

        self.status = QComboBox()
        self.status.addItem("Dipinjam")
        self.status.addItem("Selesai")
        self.formpinjam.addRow("Status      ", self.status)

        self.denda = QComboBox()
        self.denda.addItem("NolRb")
        self.denda.addItem("DuaRb")
        self.denda.addItem("LimaRb")
        self.formpinjam.addRow("Denda      ", self.denda)

        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formpinjam.addRow(self.btn_simpan)

    def buattabelpinjam(self):
        self.buattabel()

    def buattabel(self):
        self.tablepinjam = QTableWidget(self)

        self.tablepinjam.setColumnCount(9)
        self.tablepinjam.setHorizontalHeaderLabels([
            "Id Pengembalian", "Id Peminjaman", "Id Anggota", "Id Petugas",
            "Id Buku", "Tanggal Peminjaman", "Tanggal Kembalikan",
            "Tanggal Dikembalikan", "Status"
        ])
        self.tablepinjam.setFixedSize(900, 350)
        self.tablepinjam.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.isiTable()

    def isiTable(self):
        query = OrmPengembalian.tampilpengembaian()

        self.tablepinjam.setRowCount(len(query))
        for row in range(len(query)):
            self.tablepinjam.setItem(
                row, 0, QTableWidgetItem(str(query[row].idpengembalian)))
            self.tablepinjam.setItem(
                row, 1, QTableWidgetItem(str(query[row].idpeminjaman)))
            self.tablepinjam.setItem(
                row, 2, QTableWidgetItem(str(query[row].idanggota)))
            self.tablepinjam.setItem(
                row, 3, QTableWidgetItem(str(query[row].idpetugas)))
            self.tablepinjam.setItem(row, 4,
                                     QTableWidgetItem(str(query[row].idbuku)))
            self.tablepinjam.setItem(
                row, 5, QTableWidgetItem(str(query[row].tglPinjam)))
            self.tablepinjam.setItem(
                row, 6, QTableWidgetItem(str(query[row].tglKembali)))
            self.tablepinjam.setItem(
                row, 7, QTableWidgetItem(str(query[row].tglDikembalikan)))
            self.tablepinjam.setItem(row, 8,
                                     QTableWidgetItem(str(query[row].Status)))
            self.tablepinjam.setItem(row, 9,
                                     QTableWidgetItem(str(query[row].Denda)))

    def simpan_btn(self):
        try:

            Pengembalian(self.idpinjam.text(), self.idanggota.text(),
                         self.idpetugas.text(), self.idbuku.text(),
                         self.tglpinjam.text(), self.tglkembali.text(),
                         self.tgldikembali.text(), self.status.currentText(),
                         self.denda.currentText())

            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Telah Disimpan")
            msg.setWindowTitle("Berhasil")
            msg.exec_()
            self.refresh()
            self.disableform()
            self.isiTable()
        except Exception as e:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)

            msg.setText("Data tidak berhasil disimpan")
            msg.setInformativeText(f"ERROR : {e}")
            msg.setWindowTitle("Warning")
            msg.exec_()

    def disableform(self):
        self.idpinjam.setReadOnly(True)
        self.idanggota.setReadOnly(True)
        self.idpetugas.setReadOnly(True)
        self.idbuku.setReadOnly(True)
        self.tglpinjam.setReadOnly(True)
        self.tglkembali.setReadOnly(True)
        self.tgldikembali.setReadOnly(True)
        self.status.setDisabled(True)
        self.denda.setDisabled(True)
        self.btn_simpan.setDisabled(True)

    def enableform(self):
        self.idpinjam.setReadOnly(False)
        self.idanggota.setReadOnly(False)
        self.idpetugas.setReadOnly(False)
        self.idbuku.setReadOnly(False)
        self.tglpinjam.setReadOnly(False)
        self.tglkembali.setReadOnly(False)
        self.tgldikembali.setReadOnly(False)
        self.status.setDisabled(False)
        self.denda.setDisabled(False)
        self.btn_simpan.setDisabled(False)
        self.idpinjam.setFocus()

    def refresh(self):
        self.idpinjam.clear()
        self.idanggota.clear()
        self.idpetugas.clear()
        self.idbuku.clear()

    def cekid(self, row):
        self.SelectedId = int(self.tablepinjam.item(row, 0).text())
        print(self.SelectedId)

    def hapusid(self, row):
        SelectedId = int(self.tablepinjam.item(row, 0).text())
        OrmPengembalian.hapuspengembalian(SelectedId)
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("Data Telah Dihapus")
        msg.setWindowTitle("Berhasil")
        msg.exec_()
        self.isiTable()
Пример #15
0
class PengunjungView(QDialog):
    def __init__(self):
        super(PengunjungView, self).__init__()
        self.setWindowTitle("Form Pengunjung")
        self.resize(750, 350)
        self.UI()
        self.disableform()

    def UI(self):
        self.buatform()
        self.buattabelpengunjung()

        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Berkunjung")
        self.btntambah.clicked.connect(self.enableform)

        self.layoutCrud.addWidget(self.btntambah)
        self.layouttabel.addWidget(self.tablepengunjung)
        self.btntambah.clicked.connect(self.enableform)
        self.formpengunjung.addRow(self.layouttabel)
        self.formpengunjung.addRow(self.layoutCrud)

        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)

    def buatform(self):
        # formlayout
        self.formpengunjung = QFormLayout(self)
        # data inputan

        self.nama = QLineEdit(self)
        self.nama.setPlaceholderText("Nama")
        self.formpengunjung.addRow("Nama      ", self.nama)

        self.alamat = QTextEdit(self)
        self.alamat.setPlaceholderText("Alamat")
        self.alamat.setFixedHeight(50)
        self.formpengunjung.addRow("Alamat        ", self.alamat)

        self.nohp = QLineEdit(self)
        self.nohp.setInputMask("+62 9999 9999 999")
        self.formpengunjung.addRow("No Handphone      ", self.nohp)

        self.tglberkunjung = QDateEdit(self)
        self.tglberkunjung.setDisplayFormat('dd/MM/yyyy')
        self.tglberkunjung.setDate(QDate.currentDate())
        self.tglberkunjung.setReadOnly(True)
        self.formpengunjung.addRow("Tanggal Berkunjung        ",
                                   self.tglberkunjung)

        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.submit_btn)
        self.formpengunjung.addRow(self.btn_simpan)

    def buattabelpengunjung(self):
        self.buattabel()

    def buattabel(self):
        self.tablepengunjung = QTableWidget()
        self.tablepengunjung.cellClicked.connect(self.isiForm)
        self.tablepengunjung.setColumnCount(5)
        self.tablepengunjung.setHorizontalHeaderLabels([
            "Id Pengunjung", "Nama", "Alamat", "NoHandphone",
            "Tanggal Berkunjung"
        ])
        self.tablepengunjung.setFixedSize(900, 350)
        self.tablepengunjung.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.isiTable()

    def isiForm(self, row):
        self.nama.setText(self.tablepengunjung.item(row, 1).text())
        self.alamat.setText(self.tablepengunjung.item(row, 2).text())
        dataTgl = self.tablepengunjung.item(row, 4).text().split('/')
        dd = int(dataTgl[0])
        mm = int(dataTgl[1])
        yy = int(dataTgl[2])
        self.tglberkunjung.setDate(QDate(yy, mm, dd))
        self.nohp.setText(str(self.tablepengunjung.item(row, 3).text()))

    def isiTable(self):
        query = OrmPengunjung.tampilpengunjung()
        self.tablepengunjung.setRowCount(len(query))
        for row in range(len(query)):
            self.tablepengunjung.setItem(
                row, 0, QTableWidgetItem(str(query[row].IdPengunjung)))
            self.tablepengunjung.setItem(
                row, 1, QTableWidgetItem(str(query[row].Nama)))
            self.tablepengunjung.setItem(
                row, 2, QTableWidgetItem(str(query[row].Alamat)))
            self.tablepengunjung.setItem(row, 3,
                                         QTableWidgetItem(query[row].NoHp))
            self.tablepengunjung.setItem(
                row, 4, QTableWidgetItem(query[row].TanggalBerkunjung))

    def submit_btn(self):
        try:
            Pengunjung(self.nama.text(), self.alamat.toPlainText(),
                       self.nohp.text(), self.tglberkunjung.text())

            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Telah Disimpan")
            msg.setWindowTitle("Berhasil")
            msg.exec_()
            self.refresh()
            self.disableform()
            self.isiTable()
        except Exception as e:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)

            msg.setText("Data tidak berhasil disimpan")
            msg.setInformativeText(f"ERROR : {e}")
            msg.setWindowTitle("Warning")
            msg.exec_()

    def disableform(self):
        self.nama.setReadOnly(True)
        self.alamat.setReadOnly(True)
        self.nohp.setReadOnly(True)
        self.btn_simpan.setDisabled(True)

    def enableform(self):
        self.nama.setReadOnly(False)
        self.alamat.setReadOnly(False)
        self.nohp.setReadOnly(False)
        self.btn_simpan.setDisabled(False)
        self.nama.setFocus()

    def refresh(self):
        self.nama.clear()
        self.alamat.clear()
        self.nohp.clear()
Пример #16
0
class MainMenuView(QWidget):
    def __init__(self, username, hakakses):
        super().__init__()

        self.showMaximized()
        self.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False)
        self.setWindowTitle("MENU")

        frameheadBar = QFrameComponent("white")

        headBarLayout = QGridLayout(frameheadBar)
        headBarLayout.setSpacing(5)

        self.btnPetugas = QPushButtonComponent("Data Petugas")
        self.btnAnggota = QPushButtonComponent("Data Anggota")
        self.btnTransaksi = QPushButtonComponent("Transaksi")
        self.btnBuku = QPushButtonComponent("Data Buku")
        self.btnUser = QPushButtonComponent("Data User")
        self.btnLogOut = QPushButtonComponent("Log Out")
        self.hak_akses = QLabel(str(hakakses))
        self.username = QLabel(str(username))
        framebodybar = QFrameComponent("maroon")
        bodyBarLayout = QHBoxLayout(framebodybar)

        headBarLayout.addWidget(self.btnPetugas, 0, 1)
        headBarLayout.addWidget(self.btnAnggota, 0, 2)
        headBarLayout.addWidget(self.btnBuku, 0, 3)
        headBarLayout.addWidget(self.btnTransaksi, 0, 4)
        headBarLayout.addWidget(self.btnUser, 0, 5)
        headBarLayout.addWidget(self.btnLogOut, 0, 6, QtCore.Qt.AlignBottom)
        bodyBarLayout.addWidget(self.username)
        bodyBarLayout.addWidget(self.hak_akses)

        layoutUtama = QGridLayout()
        layoutUtama.addWidget(frameheadBar, 0, 1, 1, 10, QtCore.Qt.AlignTop)
        layoutUtama.addWidget(framebodybar, 2, 1, 1, 10)

        self.btnPetugas.clicked.connect(lambda: self.openpetugas())
        self.btnAnggota.clicked.connect(lambda: self.openanggota())
        self.btnBuku.clicked.connect(lambda: self.openbuku())
        self.btnUser.clicked.connect(lambda: self.openuser())
        self.btnTransaksi.clicked.connect(lambda: self.openpeminjaman())
        self.btnLogOut.clicked.connect(lambda: self.openlogout())
        self.cekhak_akses()
        self.setLayout(layoutUtama)
        self.show()

    def openpetugas(self):
        from View.PetugasView import PetugasView
        self.petugasview = PetugasView()
        self.petugasview.show()

    def openanggota(self):
        from View.AnggotaView import AnggotaView
        self.anggotaview = AnggotaView()
        self.anggotaview.show()

    def openbuku(self):
        from View.BukuView import BukuView
        self.bukuview = BukuView()
        self.bukuview.show()

    def openuser(self):
        from View.UserView import UserView
        self.userview = UserView()
        self.userview.show()

    def openpeminjaman(self):
        from View.PeminjamanView import PeminjamanView
        self.pinjamview = PeminjamanView()
        self.pinjamview.show()

    #
    # def openpengembalian(self):
    #     from View.PengembalianView import PengembalianView
    #     self.kembaliview = PengembalianView()
    #     self.kembaliview.show()
    #     self.kembaliview.exec_()
    #

    #
    def openlogout(self):
        from View.LoginView import LoginView
        self.loginview = LoginView()
        self.loginview.show()
        self.close()

    def cekhak_akses(self):
        hak_akses = self.hak_akses.text()
        if (hak_akses == str(HakAkses.Petugas)):
            self.btnPetugas.setVisible(False)
            self.btnUser.setVisible(False)
        elif (hak_akses == str(HakAkses.Admin)):
            self.btnPetugas.setVisible(True)
            self.btnUser.setVisible(True)
Пример #17
0
class UserView(QWidget):
    def __init__(self):
        super(UserView, self).__init__()
        self.setWindowTitle("Data User")
        self.resize(750, 350)
        self.UI()
        self.disableform()

    def UI(self):
        self.buatform()
        self.buattabeluser()
        self.layoutUtama = QVBoxLayout()
        self.layouttabel = QHBoxLayout()
        self.layoutCrud = QHBoxLayout()

        self.btntambah = QPushButtonComponent("Tambah")
        self.btnedit = QPushButtonComponent("Edit")
        self.btnhapus = QPushButtonComponent("Hapus")

        self.layoutCrud.addWidget(self.btntambah)
        self.layoutCrud.addWidget(self.btnedit)
        self.layoutCrud.addWidget(self.btnhapus)
        self.layouttabel.addWidget(self.tableuser)

        self.btntambah.clicked.connect(self.enableform)
        # self.btnedit.clicked.connect(lambda: self.editanggota())
        self.btnhapus.clicked.connect(self.hapususer)
        self.formuser.addRow(self.layouttabel)
        self.formuser.addRow(self.layoutCrud)

        # self.layoutUtama.addLayout(self.layouttabel)
        self.layoutUtama.addLayout(self.layoutCrud)
        self.setLayout(self.layoutUtama)

    def buatform(self):
        # formlayout
        self.formuser = QFormLayout(self)

        # data inputab
        self.username = QLineEdit(self)
        self.username.setPlaceholderText("Username")
        self.formuser.addRow("Usename        ", self.username)

        self.passwrd = QLineEdit(self)
        self.passwrd.setPlaceholderText("Password")
        self.formuser.addRow("Password       ", self.passwrd)

        self.hakakses = QComboBox()
        self.hakakses.addItem("Admin")
        self.hakakses.addItem("Petugas")
        self.formuser.addRow("Hak Akses      ", self.hakakses)
        # button
        self.btn_simpan = QPushButtonComponent("SIMPAN")
        self.btn_simpan.setFixedHeight(45)
        self.btn_simpan.clicked.connect(self.simpan_btn)
        self.formuser.addRow(self.btn_simpan)

    def buattabeluser(self):
        self.buattabel()

    def buattabel(self):
        self.tableuser = QTableWidget(self)
        self.tableuser.setColumnCount(4)
        self.tableuser.setHorizontalHeaderLabels(
            ["IdUser", "Username", "Password", "Hak Akses"])
        self.tableuser.setFixedSize(900, 350)
        self.tableuser.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.isiTable()

    def isiTable(self):
        query = OrmUser.tampiluser()

        self.tableuser.setRowCount(len(query))
        for row in range(len(query)):
            self.tableuser.setItem(
                row, 0, QTableWidgetItem(str(query[row].id_username)))
            self.tableuser.setItem(row, 1,
                                   QTableWidgetItem(str(query[row].username)))
            self.tableuser.setItem(row, 2,
                                   QTableWidgetItem(str(query[row].password)))
            self.tableuser.setItem(row, 3,
                                   QTableWidgetItem(str(query[row].hak_akses)))

    def simpan_btn(self):
        try:

            User(self.username.text(), self.passwrd.text(),
                 self.hakakses.currentText())

            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Telah Disimpan")
            msg.setWindowTitle("Berhasil")
            msg.exec_()
            self.refresh()
            self.disableform()
            self.isiTable()
        except Exception as e:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Information)

            msg.setText("Data tidak berhasil disimpan")
            msg.setInformativeText(f"ERROR : {e}")
            msg.setWindowTitle("Warning")
            msg.exec_()

    def disableform(self):

        self.username.setReadOnly(True)
        self.passwrd.setReadOnly(True)
        self.hakakses.setDisabled(True)
        self.btn_simpan.setDisabled(True)

    def enableform(self):
        self.username.setReadOnly(False)
        self.passwrd.setReadOnly(False)
        self.hakakses.setDisabled(False)
        self.btn_simpan.setDisabled(False)
        self.username.setFocus()

    def refresh(self):
        self.username.clear()
        self.passwrd.clear()

    def cekid(self, row):
        self.SelectedId = int(self.tableuser.item(row, 0).text())
        print(self.SelectedId)

    def hapususer(self, row):
        SelectedId = int(self.tableuser.item(row, 0).text())
        OrmUser.hapususer(SelectedId)
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("Data Telah Dihapus")
        msg.setWindowTitle("Berhasil")
        msg.exec_()
        self.isiTable()