コード例 #1
0
ファイル: LoginView.py プロジェクト: Sapeiidw/PBO-Kelompok-4
class LoginView(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(1136, 833)
        self.setWindowTitle("LOGIN PUSKESMAS")

        # =========== LAYOUT 1 SECTION ===========
        lbllogo = QLabelReuse("", "")
        lbllogo.setPixmap(QtGui.QPixmap("assets/img/lung.svg"))
        lbllogo.setAlignment(QtCore.Qt.AlignCenter)

        lblPresentBy = QLabelReuse("PRESENT BY", "black")
        lblPresentBy.setAlignment(QtCore.Qt.AlignCenter)
        lblCredit = QLabelReuse(
            "-> Mohammad Fahmi         -> Pramana Ade Putra\n"
            "-> M.Rizqi Nugraha        -> Sakti Pujo Edi", "grey")
        lblCredit.setAlignment(QtCore.Qt.AlignCenter)

        # =========== LAYOUT 2 SECTION ===========
        lbljudul = QLabelReuse("PUSKESMAS", "black")
        font = QtGui.QFont()
        font.setFamily("Harlow Solid Italic")
        font.setPointSize(24)
        font.setBold(True)
        font.setWeight(50)
        lbljudul.setFont(font)
        lbljudul.setAlignment(QtCore.Qt.AlignCenter)

        lblusername = QLabelReuse("Username", "grey")
        lblpassword = QLabelReuse("Password", "grey")

        self.txtUsername = EditLineReuse("")
        self.txtpassword = EditLineReuse("")
        self.txtpassword.setEchoMode(QLineEdit.Password)

        self.btnLogin = QPushButtonReuse("Login", "")
        self.btnLogin.clicked.connect(lambda: self.buttonClick())

        # =========== LAYOUT SECTION =============
        layout1 = QVBoxLayout()
        layout1.addWidget(lbllogo)
        layout1.addWidget(lblPresentBy)
        layout1.addWidget(lblCredit)

        layout2 = QVBoxLayout()
        layout2.setContentsMargins(45, 45, 45, 45)
        layout2.setSpacing(0)
        layout2.addWidget(lbljudul)
        layout2.addWidget(lblusername)
        layout2.addWidget(self.txtUsername)
        layout2.addWidget(lblpassword)
        layout2.addWidget(self.txtpassword)
        layout2.addWidget(self.btnLogin)

        layoutUtama = QHBoxLayout()
        layoutUtama.addLayout(layout1)
        layoutUtama.addLayout(layout2)

        self.setLayout(layoutUtama)
        self.show()

    @pyqtSlot()
    def buttonClick(self):
        username = self.txtUsername.text()
        password = self.txtpassword.text()
        checkLogin = UserOrm.verifyUser(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 = UserOrm.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()
コード例 #2
0
class UserView(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("USER FORM.")
        self.resize(1400, 350)

        # ======== FONT CONFIGURE ======
        self.font = QtGui.QFont()
        self.font.setFamily("Product Sans")
        self.font.setPointSize(12)
        self.font.setWeight(55)

        # ======== BASE SECTION ========
        self.layoutUtama = QGridLayout()

        # ======== FIRST LAYOUT =======
        framelayout1 = QFrameReuse("white")
        framelayout1.setContentsMargins(25, 25, 25, 25)
        layout1 = QGridLayout(framelayout1)

        lbljudul = QLabelReuse("Data User", "rgb(0, 85, 255)")

        lblusername = QLabelReuse("\nUsername\n", "grey")
        lblusername.setFont(self.font)
        self.txtusername = EditLineReuse("")

        lblpassword = QLabelReuse("\n\nPassword\n", "grey")
        lblpassword.setFont(self.font)
        self.txtpassword = EditLineReuse("")

        lblhakAkses = QLabelReuse("\nHak Akses\n", "grey")
        lblhakAkses.setFont(self.font)
        self.cmbhakAkses = QComboBoxReuse()
        self.cmbhakAkses.addItems(['DOKTER', 'APOTEKER'])
        self.pilHakAkses = [HakAkses.DOKTER, HakAkses.APOTEKER]

        # ======== CRUD BUTTON ===========
        frameCrudSection = QFrameReuse("white")
        frameCrudSection.setContentsMargins(5, 5, 5, 5)

        layoutCrudSection = QHBoxLayout(frameCrudSection)

        self.btnTambah = QPushButtonReuse("", "assets/img/button.png")
        self.btnTambah.setStyleSheet("background-color : rgb(0, 85, 255);\n"
                                     "height : 80%;\n")
        self.btnTambah.setIconSize(QtCore.QSize(75, 54))

        self.btnView = QPushButtonReuse("", "assets/img/view62.png")
        self.btnView.setStyleSheet("background-color : rgb(0, 85, 255);\n"
                                   "height : 80%;\n")
        self.btnView.setIconSize(QtCore.QSize(75, 54))

        # ========== EVENT SECTION =========
        self.btnTambah.clicked.connect(lambda: self.insertData())
        self.btnView.clicked.connect(lambda: self.viewDataEvent())

        # ======== LAYOUT SECTION ======
        self.layoutUtama.addWidget(framelayout1, 0, 0, 1, 9, Qt.AlignVCenter)
        self.layoutUtama.addWidget(frameCrudSection, 5, 0, 1, 9,
                                   Qt.AlignBottom | Qt.AlignRight)

        layout1.addWidget(lbljudul, 0, 0, 1, 3, Qt.AlignLeft)
        layout1.addWidget(lblusername, 1, 0, 1, 3, Qt.AlignLeft)
        layout1.addWidget(self.txtusername, 2, 0, 2, 3)
        layout1.addWidget(lblpassword, 4, 0, 1, 3, Qt.AlignLeft)
        layout1.addWidget(self.txtpassword, 5, 0, 2, 3)
        layout1.addWidget(lblhakAkses, 1, 5, 1, 3)
        layout1.addWidget(self.cmbhakAkses, 2, 5, 2, 3)

        layoutCrudSection.addWidget(self.btnView)
        layoutCrudSection.addWidget(self.btnTambah)

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

    @pyqtSlot()
    def insertData(self):
        self.username = self.txtusername.text()
        self.password = self.txtpassword.text()
        self.hakAkses = self.pilHakAkses[self.cmbhakAkses.currentIndex()]
        user = User(self.username, self.password, self.hakAkses)
        try:
            UserOrm.insertUser(user)
        except Exception as e:
            msg = QMessageBox()
            msg.resize(250, 250)
            msg.setIcon(QMessageBox.Warning)
            msg.setText("Something Wrong", e)
            msg.setWindowTitle("GAGAL")
            msg.exec_()
        else:
            msg = QMessageBox()
            msg.resize(250, 250)
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Berhasil Di Input!")
            msg.setWindowTitle("BERHASIL")
            msg.exec_()
            self.clear()

    @pyqtSlot()
    def viewDataEvent(self):
        from View.UserViewContent import UserContentView
        self.viewData = UserContentView()
        self.viewData.show()
        self.viewData.exec_()

    def clear(self):
        self.txtusername.setText("")
        self.txtpassword.setText("")
        self.cmbhakAkses.setCurrentIndex(0)
        self.txtusername.setFocus()
コード例 #3
0
ファイル: ObatView.py プロジェクト: Sapeiidw/PBO-Kelompok-4
class ObatView(QDialog):
    def __init__(self):
        super().__init__()
        self.resize(1400, 700)
        self.setWindowTitle("FORM OBAT")
        self.setModal(True)

        # ======== FONT CONFIGURE ======
        self.font = QtGui.QFont()
        self.font.setFamily("Product Sans")
        self.font.setPointSize(12)
        self.font.setWeight(55)

        # ======== BASE SECTION ========
        self.layoutUtama = QGridLayout()

        # ======== FIRST LAYOUT =======
        framelayout1 = QFrameReuse("white")
        framelayout1.setContentsMargins(25, 25, 25, 25)
        layout1 = QGridLayout(framelayout1)

        lbljudul = QLabelReuse("Data Obat", "rgb(0, 85, 255)")

        lblnamaObat = QLabelReuse("\nNama Obat\n", "grey")
        lblnamaObat.setFont(self.font)
        self.txtnamaObat = EditLineReuse("")

        lbljenisObat = QLabelReuse("\nJenis Obat\n", "grey")
        lbljenisObat.setFont(self.font)
        self.cmbJenisObat = QComboBoxReuse()
        self.cmbJenisObat.addItems(['SERBUK', 'TABLET', 'PIL', 'KAPSUL',
                                    'SYRUP', 'SALEP', 'INJEKSI'])
        self.pilJenObat = [JenisObat.SERBUK, JenisObat.TABLET, JenisObat.PIL,
                           JenisObat.KAPSUL, JenisObat.SYRUP,
                           JenisObat.SALEP, JenisObat.INJEKSI]

        # ======== SECOND LAYOUT =======
        framelayout2 = QFrameReuse("white")
        framelayout2.setContentsMargins(25, 25, 25, 25)
        layout2 = QGridLayout(framelayout2)

        lbljudul2 = QLabelReuse("Inventaris Obat", "rgb(0, 85, 255)")

        lblstockObat = QLabelReuse("\nStock Obat", "grey")
        lblstockObat.setFont(self.font)
        self.txtstockObat = EditLineReuse("")

        lblhargaObat = QLabelReuse("\nHarga Obat", "grey")
        lblhargaObat.setFont(self.font)
        self.txthargaObat = EditLineReuse("")

        lbllokasiObat = QLabelReuse("\nLokasi Penyimpanan", "grey")
        lbllokasiObat.setFont(self.font)
        self.txtlokasiObat = EditLineReuse("")

        # ======== ADD DATA ===========
        self.btnTambah = QPushButtonReuse("", "assets/img/button.png")
        self.btnTambah.setStyleSheet("background-color : rgb(0, 85, 255);\n"
                                     "height : 80%;\n")
        self.btnTambah.setIconSize(QtCore.QSize(75, 54))

        # ========== EVENT SECTION =========
        self.btnTambah.clicked.connect(lambda: self.insertData())

        # ======== LAYOUT SECTION ======
        self.layoutUtama.addWidget(framelayout1, 0, 0, 1, 9, Qt.AlignTop)
        self.layoutUtama.addWidget(framelayout2, 2, 0, 1, 9)
        self.layoutUtama.addWidget(self.btnTambah, 5, 0, 1, 9, Qt.AlignBottom | Qt.AlignRight)

        layout1.addWidget(lbljudul, 0, 0, 1, 3, Qt.AlignLeft)
        layout1.addWidget(lbljenisObat, 1, 0, 1, 3, Qt.AlignLeft)
        layout1.addWidget(self.cmbJenisObat, 2, 0, 2, 3)
        layout1.addWidget(lblnamaObat, 1, 5, 1, 3)
        layout1.addWidget(self.txtnamaObat, 2, 5, 2, 3)

        layout2.addWidget(lbljudul2, 0, 0, 1, 3, Qt.AlignLeft)
        layout2.addWidget(lblstockObat, 1, 0, 1, 3, Qt.AlignLeft)
        layout2.addWidget(self.txtstockObat, 2, 0, 2, 3)
        layout2.addWidget(lblhargaObat, 4, 0, 1, 3, Qt.AlignLeft)
        layout2.addWidget(self.txthargaObat, 5, 0, 2, 3)
        layout2.addWidget(lbllokasiObat, 1, 5, 1, 3)
        layout2.addWidget(self.txtlokasiObat, 2, 5, 1, 3)

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

    @pyqtSlot()
    def insertData(self):
        self.jenisObat = self.pilJenObat[self.cmbJenisObat.currentIndex()]
        self.namaObat = self.txtnamaObat.text()
        self.stockObat = self.txtstockObat.text()
        self.hargaObat = self.txthargaObat.text()
        self.lokasi = self.txtlokasiObat.text()
        obat = Obat(self.jenisObat, self.namaObat)
        try:
            ObatOrm.insertObat(obat)
        except Exception as e:
            msg = QMessageBox()
            msg.resize(250, 250)
            msg.setIcon(QMessageBox.Warning)
            msg.setText("Something Wrong", e)
            msg.setWindowTitle("GAGAL")
            msg.exec_()
        else:
            try:
                idObat = ObatOrm.findLatest()
                inv = InventarisObat(idObat, self.stockObat, self.hargaObat, self.lokasi)
                InventarisObatOrm.insertInvenObat(inv)
            except Exception as e:
                msg = QMessageBox()
                msg.resize(250, 250)
                msg.setIcon(QMessageBox.Warning)
                msg.setText("Something Wrong", e)
                msg.setWindowTitle("GAGAL")
                msg.exec_()
            msg = QMessageBox()
            msg.resize(250, 250)
            msg.setIcon(QMessageBox.Information)
            msg.setText("Data Berhasil Di Input!")
            msg.setWindowTitle("BERHASIL")
            msg.exec_()
            self.clear()

    def clear(self):
        self.txtnamaObat.setText("")
        self.txtstockObat.setText("")
        self.cmbJenisObat.setCurrentIndex(0)
        self.txtlokasiObat.setText("")
        self.txthargaObat.setText("")
        self.txtnamaObat.setFocus()