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()
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()
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()