diff --git a/SansK.py b/SansK.py index 0c4cffcd54ddb033d3b99ec67a32c8cf24aff59f..bfa2563c205e4f2bffbe163d285444c2495b47f6 100644 --- a/SansK.py +++ b/SansK.py @@ -269,4 +269,3 @@ if __name__ == "__main__": ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_()) - a=input("exit") diff --git a/__pycache__/Pemesanan.cpython-37.pyc b/__pycache__/Pemesanan.cpython-37.pyc index 963f81ab627c9ba6638113c1f597bea1dd2bf978..0b0b5e1f1619f9d3d587f0b05b4ab8c666f1ed1f 100644 Binary files a/__pycache__/Pemesanan.cpython-37.pyc and b/__pycache__/Pemesanan.cpython-37.pyc differ diff --git a/__pycache__/RiwayatTransaksi.cpython-37.pyc b/__pycache__/RiwayatTransaksi.cpython-37.pyc index 8092ae44f16c1cc0e57af3f888feeec3a5c5c4ab..9304e35cec8edfcf7c7541b15594af3f06199801 100644 Binary files a/__pycache__/RiwayatTransaksi.cpython-37.pyc and b/__pycache__/RiwayatTransaksi.cpython-37.pyc differ diff --git a/__pycache__/RiwayatTransaksi_display.cpython-37.pyc b/__pycache__/RiwayatTransaksi_display.cpython-37.pyc index 7f67ee0c88cca78f21687c1c9126a57eb30393ab..c93e6cdaba4f57d2732ed741ca05b51e22184ace 100644 Binary files a/__pycache__/RiwayatTransaksi_display.cpython-37.pyc and b/__pycache__/RiwayatTransaksi_display.cpython-37.pyc differ diff --git a/__pycache__/pembayaran.cpython-37.pyc b/__pycache__/pembayaran.cpython-37.pyc index 9f355bbec8aa17c90bdac0b9b9c70fa111aad789..14fe897b64ef26f8af9252527faaa18236705fa8 100644 Binary files a/__pycache__/pembayaran.cpython-37.pyc and b/__pycache__/pembayaran.cpython-37.pyc differ diff --git a/__pycache__/pembayaran_display_oo.cpython-37.pyc b/__pycache__/pembayaran_display_oo.cpython-37.pyc index c8ea0f9e27c521d43555d875b084854aded44bda..b86f988decfbce1fd99904d3561e762aed8cc1e0 100644 Binary files a/__pycache__/pembayaran_display_oo.cpython-37.pyc and b/__pycache__/pembayaran_display_oo.cpython-37.pyc differ diff --git a/__pycache__/pemesanan_ui_fix.cpython-37.pyc b/__pycache__/pemesanan_ui_fix.cpython-37.pyc index fae22f1821470de1b35b31c9a172c4ea96c8e409..059d766a4f018ee74ef8d60755d7c00d9c2cefac 100644 Binary files a/__pycache__/pemesanan_ui_fix.cpython-37.pyc and b/__pycache__/pemesanan_ui_fix.cpython-37.pyc differ diff --git a/dist/SansK.exe b/dist/SansK.exe deleted file mode 100644 index 2cc3c9409960ec8577f5139bd6e3a657c85ab17d..0000000000000000000000000000000000000000 Binary files a/dist/SansK.exe and /dev/null differ diff --git a/fix/doc/Modul 0 - Menu Utama.JPG b/fix/doc/Modul 0 - Menu Utama.JPG new file mode 100644 index 0000000000000000000000000000000000000000..cc930e05ccfddae76e95794a774a2f3b10fce6fa Binary files /dev/null and b/fix/doc/Modul 0 - Menu Utama.JPG differ diff --git a/fix/doc/Modul 1 - Menu Kasir.JPG b/fix/doc/Modul 1 - Menu Kasir.JPG new file mode 100644 index 0000000000000000000000000000000000000000..b89102bd574f135bdbfef5b728ed0600350da188 Binary files /dev/null and b/fix/doc/Modul 1 - Menu Kasir.JPG differ diff --git a/fix/doc/Modul 2.2 Riwayat Transaksi.JPG b/fix/doc/Modul 2.2 Riwayat Transaksi.JPG new file mode 100644 index 0000000000000000000000000000000000000000..899c0c80bff384887226a57f60530518926ac25a Binary files /dev/null and b/fix/doc/Modul 2.2 Riwayat Transaksi.JPG differ diff --git a/fix/img/logo.jpg b/fix/img/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfdc4b9fc9967e8b1c5f7acf7fcb9f08ebe04e2b Binary files /dev/null and b/fix/img/logo.jpg differ diff --git a/fix/src/Keanggotaan.py b/fix/src/Keanggotaan.py new file mode 100644 index 0000000000000000000000000000000000000000..e2269345d8a9ab412f842a736ac5e634dd157da5 --- /dev/null +++ b/fix/src/Keanggotaan.py @@ -0,0 +1,98 @@ +#Programmer : Yasyfiana Fariha Putrisusari/ 13518143 +#Fitur: Keanggotaan +#Nama file : Keanggotaan.py +#Tanggal : 9 April 2020 + +''' +Modul menginmplementasikan pengurusan keanggotaan +dengan menggunakan tabel Daftar Anggota. +Modul menangani penambahan status keanggotaan, +Pencarian anggota, dan perpanjangan keanggotaan +''' +from sqlalchemy import * +import sqlalchemy as db +from datetime import datetime +from engine_needed import metadata, engine, connection + +# #--------KONFIGURASI DATA BASE----------- +# #Inisialiasi Database +# print("Enter user: ", end="") +# user = str(input()) +# print("Enter password: ", end="") +# password = str(input()) + +# host = "localhost" +# port = "3306" +# db_name = "sansK" + +# name_engine = "mysql+pymysql://" + user + ":" + password + "@" + host + ":" + port + "/" + db_name +# engine = db.create_engine(name_engine) +# connection = engine.connect() +# metadata = db.MetaData() + +#Penggunaan Tabel +global DaftarAnggota +DaftarAnggota = db.Table ("keanggotaan", metadata, autoload=True, autoload_with=engine) + +#----------GETTER---------- +def getNewIDAnggota(): + query = db.select([func.count(DaftarAnggota.columns.IDAnggota)]) + result_exc = connection.execute(query) + result_set = result_exc.fetchall() + return (result_set[0][0] +1) + +#GETTER BERDASARKAN ID +def getNama(id): + query = db.select([DaftarAnggota.columns.Nama]).where(DaftarAnggota.columns.IDAnggota == id) + result_exc = connection.execute(query) + result_set = result_exc.fetchall() + return (result_set[0][0]) + +def getNomorIdentitas(id): + query = db.select([DaftarAnggota.columns.NomorIdentitas]).where(DaftarAnggota.columns.IDAnggota == id) + result_exc = connection.execute(query) + result_set = result_exc.fetchall() + return (result_set[0][0]) + +def getTanggalAktif(id): + query = db.select([DaftarAnggota.columns.TanggalAktif]).where(DaftarAnggota.columns.IDAnggota == id) + result_exc = connection.execute(query) + result_set = result_exc.fetchall() + return (result_set[0][0]) + +#GETTER BERDASARKAN NAMA DAN IDENTITAS +def getIDAnggota(nama, noIdentitas): + query = db.select([DaftarAnggota.columns.IDAnggota]).where(db.and_(DaftarAnggota.columns.Nama == nama, DaftarAnggota.columns.NomorIdentitas == noIdentitas)) + result_exc = connection.execute(query) + result_set = result_exc.fetchall() + return (result_set[0][0]) + + +#CEK STATUS +def cekID(id): + result = False + query = db.select([DaftarAnggota.columns.IDAnggota]).where(DaftarAnggota.columns.IDAnggota == id) + query_result = connection.execute(query) + resultset = query_result.fetchall() + if len(resultset) > 0: + result = True + return result + +def cekNoIden(noIden): + result = False + query = db.select([DaftarAnggota.columns.NomorIdentitas]).where(DaftarAnggota.columns.NomorIdentitas == noIden) + query_result = connection.execute(query) + resultset = query_result.fetchall() + if len(resultset) > 0: + result = True + return result + +#--TAMBAH ANGGOTA-- +def TambahAnggota(nama, noIdentitas, id): + tanggalAktif = (datetime.today().strftime('%Y-%m-%d')) + query = db.insert(DaftarAnggota).values(IDAnggota = id, Nama = nama, NomorIdentitas = noIdentitas, TanggalAktif = tanggalAktif) + result_exc = connection.execute(query) + +#test +# print(getNewIDAnggota()) + \ No newline at end of file diff --git a/fix/src/Keanggotaan_UI.py b/fix/src/Keanggotaan_UI.py new file mode 100644 index 0000000000000000000000000000000000000000..2f72778fe078fc4d73951a7c6b6b48bac018a31b --- /dev/null +++ b/fix/src/Keanggotaan_UI.py @@ -0,0 +1,715 @@ +#Programmer : Yasyfiana Fariha Putrisusari/ 13518143 +#Fitur: Keanggotaan +#Nama file : KeanggotaanUI.py +#Tanggal : 11 April 2020 + +# -*- coding: utf-8 -*- +# Form implementation generated from reading ui file 'Keanggotaan.ui' +# Created by: PyQt5 UI code generator 5.13.0 +# WARNING! All changes made in this file will be lost! + +"""IMPORT LIBRARY""" +from sqlalchemy import * +import sqlalchemy as db +from datetime import datetime +from PyQt5.QtCore import QRegExp +from PyQt5.QtGui import QRegExpValidator +from PyQt5 import QtCore, QtGui, QtWidgets + + +import Keanggotaan as DaftarAnggota + + +class Keanggotaan(object): + # def Show_Keluar(self): + # self.MainWindow.show() + # self.window.hide() + + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1237, 860) + MainWindow.setStyleSheet("background-color: rgb(237, 231, 226);\n") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.vlayout_Menu = QtWidgets.QVBoxLayout() + self.vlayout_Menu.setObjectName("vlayout_Menu") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setEnabled(True) + self.label_4.setMaximumSize(QtCore.QSize(500, 460)) + self.label_4.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_4.setStyleSheet("") + self.label_4.setText("") + # self.label_4.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_4.setScaledContents(True) + self.label_4.setObjectName("label_4") + self.vlayout_Menu.addWidget(self.label_4) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + self.vlayout_Menu.addItem(spacerItem) + self.label_13 = QtWidgets.QLabel(self.centralwidget) + self.label_13.setEnabled(True) + self.label_13.setMaximumSize(QtCore.QSize(500, 460)) + self.label_13.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_13.setStyleSheet("") + self.label_13.setText("") + self.label_13.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_13.setScaledContents(True) + self.label_13.setObjectName("label_13") + self.vlayout_Menu.addWidget(self.label_13) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(spacerItem1) + self.button_pemesana = QtWidgets.QPushButton(self.centralwidget) + self.button_pemesana.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pemesana.setFont(font) + self.button_pemesana.setStyleSheet("color:rgb(135, 126, 93);\n""background-color: rgb(191, 215, 152);") + self.button_pemesana.setObjectName("button_pemesana") + self.vlayout_Menu.addWidget(self.button_pemesana) + self.button_pembayaran = QtWidgets.QPushButton(self.centralwidget) + self.button_pembayaran.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pembayaran.setFont(font) + self.button_pembayaran.setStyleSheet("color:rgb(135, 126, 93);\n""background-color: rgb(191, 215, 152);") + self.button_pembayaran.setObjectName("button_pembayaran") + self.vlayout_Menu.addWidget(self.button_pembayaran) + self.button_anggota = QtWidgets.QPushButton(self.centralwidget) + self.button_anggota.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_anggota.setFont(font) + self.button_anggota.setStyleSheet("color:rgb(135, 126, 93);\n""background-color: rgb(191, 215, 152);") + self.button_anggota.setObjectName("button_anggota") + self.vlayout_Menu.addWidget(self.button_anggota) + spacerItem2 = QtWidgets.QSpacerItem(0, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.vlayout_Menu.addItem(spacerItem2) + self.button_kkeluar = QtWidgets.QPushButton(self.centralwidget) + self.button_kkeluar.setMinimumSize(QtCore.QSize(0, 50)) + self.button_kkeluar.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setFamily("Microsoft New Tai Lue") + font.setPointSize(10) + self.button_kkeluar.setFont(font) + self.button_kkeluar.setStyleSheet("background-color:rgb(135, 182, 166);\n""color:rgb(255, 220, 179);") + self.button_kkeluar.setObjectName("button_kkeluar") + self.vlayout_Menu.addWidget(self.button_kkeluar) + spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(spacerItem3) + self.horizontalLayout.addLayout(self.vlayout_Menu) + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem4) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.VLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.horizontalLayout.addWidget(self.line) + spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem5) + self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) + self.stackedWidget.setObjectName("stackedWidget") + + + #PAGE CARI ANGGOTA + self.page_CariAnggota = QtWidgets.QWidget() + self.page_CariAnggota.setObjectName("page_CariAnggota") + self.verticalLayout = QtWidgets.QVBoxLayout(self.page_CariAnggota) + self.verticalLayout.setObjectName("verticalLayout") + self.vlayout_Anggota = QtWidgets.QVBoxLayout() + self.vlayout_Anggota.setObjectName("vlayout_Anggota") + spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota.addItem(spacerItem6) + self.label_Anggota = QtWidgets.QLabel(self.page_CariAnggota) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(26) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota.setFont(font) + self.label_Anggota.setStyleSheet("color:rgb(91, 88, 66);") + self.label_Anggota.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota.setObjectName("label_Anggota") + self.vlayout_Anggota.addWidget(self.label_Anggota) + spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota.addItem(spacerItem7) + self.tab_Cari = QtWidgets.QTabWidget(self.page_CariAnggota) + self.tab_Cari.setStyleSheet("background-color: rgb(245, 191, 192);\n""selection-background-color: rgb(170, 170, 255);") + self.tab_Cari.setObjectName("tab_Cari") + self.tab_IDA = QtWidgets.QWidget() + self.tab_IDA.setStyleSheet("background-color: rgb(245, 191, 192);") + self.tab_IDA.setObjectName("tab_IDA") + self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.tab_IDA) + self.horizontalLayout_5.setObjectName("horizontalLayout_5") + self.groupBox_2 = QtWidgets.QGroupBox(self.tab_IDA) + self.groupBox_2.setStyleSheet("background-color: rgb(135, 195, 190);") + self.groupBox_2.setTitle("") + self.groupBox_2.setObjectName("groupBox_2") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_2) + self.gridLayout_3.setObjectName("gridLayout_3") + spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_3.addItem(spacerItem8, 4, 0, 1, 1) + self.texteditor_IDc = QtWidgets.QLineEdit(self.groupBox_2) + self.texteditor_IDc.setStyleSheet("color:rgb(254, 209, 134);\n""background-color: rgb(230, 131, 116)") + self.texteditor_IDc.setObjectName("texteditor_IDc") + self.gridLayout_3.addWidget(self.texteditor_IDc, 2, 0, 1, 1) + self.horizontalLayout_6 = QtWidgets.QHBoxLayout() + self.horizontalLayout_6.setObjectName("horizontalLayout_6") + spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_6.addItem(spacerItem9) + self.button_cariID = QtWidgets.QPushButton(self.groupBox_2) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.button_cariID.setFont(font) + self.button_cariID.setStyleSheet("background-color: rgb(245, 191, 192);color:rgb(180, 155, 151)") + self.button_cariID.setObjectName("button_cariID") + self.horizontalLayout_6.addWidget(self.button_cariID) + self.gridLayout_3.addLayout(self.horizontalLayout_6, 3, 0, 1, 1) + self.label_7 = QtWidgets.QLabel(self.groupBox_2) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_7.setFont(font) + self.label_7.setStyleSheet("color:rgb(255, 201, 162);") + self.label_7.setObjectName("label_7") + self.gridLayout_3.addWidget(self.label_7, 1, 0, 1, 1) + spacerItem10 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_3.addItem(spacerItem10, 0, 0, 1, 1) + self.horizontalLayout_5.addWidget(self.groupBox_2) + self.tab_Cari.addTab(self.tab_IDA, "") + self.tab_Nama = QtWidgets.QWidget() + self.tab_Nama.setObjectName("tab_Nama") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.tab_Nama) + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.groupBox = QtWidgets.QGroupBox(self.tab_Nama) + self.groupBox.setStyleSheet("background-color: rgb(135, 195, 190);") + self.groupBox.setTitle("") + self.groupBox.setObjectName("groupBox") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox) + self.gridLayout_2.setObjectName("gridLayout_2") + spacerItem11 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_2.addItem(spacerItem11, 6, 0, 1, 1) + self.texteditor_namaC = QtWidgets.QLineEdit(self.groupBox) + self.texteditor_namaC.setStyleSheet("color:rgb(254, 209, 134);\n""background-color: rgb(230, 131, 116)") + self.texteditor_namaC.setObjectName("texteditor_namaC") + self.gridLayout_2.addWidget(self.texteditor_namaC, 2, 0, 1, 1) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem12) + self.button_CariN = QtWidgets.QPushButton(self.groupBox) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.button_CariN.setFont(font) + self.button_CariN.setStyleSheet("background-color: rgb(245, 191, 192);color:rgb(180, 155, 151)") + self.button_CariN.setObjectName("button_CariN") + self.horizontalLayout_3.addWidget(self.button_CariN) + self.gridLayout_2.addLayout(self.horizontalLayout_3, 5, 0, 1, 1) + self.label_3 = QtWidgets.QLabel(self.groupBox) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:rgb(255, 201, 162)") + self.label_3.setObjectName("label_3") + self.gridLayout_2.addWidget(self.label_3, 3, 0, 1, 1) + self.label_5 = QtWidgets.QLabel(self.groupBox) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:rgb(255, 201, 162);") + self.label_5.setObjectName("label_5") + self.gridLayout_2.addWidget(self.label_5, 1, 0, 1, 1) + self.text_editor_noidenC = QtWidgets.QLineEdit(self.groupBox) + self.text_editor_noidenC.setStyleSheet("color:rgb(254, 209, 134);\n""background-color: rgb(230, 131, 116)") + self.text_editor_noidenC.setObjectName("text_editor_noidenC") + self.gridLayout_2.addWidget(self.text_editor_noidenC, 4, 0, 1, 1) + spacerItem13 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_2.addItem(spacerItem13, 0, 0, 1, 1) + self.horizontalLayout_4.addWidget(self.groupBox) + self.tab_Cari.addTab(self.tab_Nama, "") + self.vlayout_Anggota.addWidget(self.tab_Cari) + spacerItem14 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota.addItem(spacerItem14) + self.verticalLayout.addLayout(self.vlayout_Anggota) + self.stackedWidget.addWidget(self.page_CariAnggota) + + + #PAGE MENU ANGGOTA + self.page_MenuA = QtWidgets.QWidget() + self.page_MenuA.setObjectName("page_MenuA") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.page_MenuA) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.vlayout_Anggota_3 = QtWidgets.QVBoxLayout() + self.vlayout_Anggota_3.setObjectName("vlayout_Anggota_3") + spacerItem15 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_3.addItem(spacerItem15) + self.label_Anggota_3 = QtWidgets.QLabel(self.page_MenuA) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(26) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota_3.setFont(font) + self.label_Anggota_3.setStyleSheet("color:rgb(101, 200, 222);") + self.label_Anggota_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota_3.setObjectName("label_Anggota_3") + self.vlayout_Anggota_3.addWidget(self.label_Anggota_3) + spacerItem16 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_3.addItem(spacerItem16) + self.horizontalLayout_8 = QtWidgets.QHBoxLayout() + self.horizontalLayout_8.setObjectName("horizontalLayout_8") + self.button_CariA = QtWidgets.QPushButton(self.page_MenuA) + self.button_CariA.setMinimumSize(QtCore.QSize(200, 500)) + font = QtGui.QFont() + font.setFamily("Palatino Linotype") + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.button_CariA.setFont(font) + self.button_CariA.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.button_CariA.setStyleSheet("color: rgb(254, 254, 254);\n""background-color: rgb(233, 147, 132)\n") + self.button_CariA.setObjectName("button_CariA") + self.horizontalLayout_8.addWidget(self.button_CariA) + self.button_TambahA = QtWidgets.QPushButton(self.page_MenuA) + self.button_TambahA.setMinimumSize(QtCore.QSize(200, 500)) + font = QtGui.QFont() + font.setFamily("Palatino Linotype") + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.button_TambahA.setFont(font) + self.button_TambahA.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.button_TambahA.setStyleSheet("color: rgb(254, 254, 254);\n""background-color: rgb(233, 147, 132)\n") + self.button_TambahA.setObjectName("button_TambahA") + self.horizontalLayout_8.addWidget(self.button_TambahA) + self.button_PerpanjangD = QtWidgets.QPushButton(self.page_MenuA) + self.button_PerpanjangD.setEnabled(False) + self.button_PerpanjangD.setMinimumSize(QtCore.QSize(200, 500)) + font = QtGui.QFont() + font.setFamily("Palatino Linotype") + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.button_PerpanjangD.setFont(font) + self.button_PerpanjangD.setStyleSheet("color: rgb(213, 213, 213);\n""background-color:rgb(222, 135, 124);\n") + self.button_PerpanjangD.setObjectName("button_PerpanjangD") + self.horizontalLayout_8.addWidget(self.button_PerpanjangD) + self.vlayout_Anggota_3.addLayout(self.horizontalLayout_8) + spacerItem17 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + self.vlayout_Anggota_3.addItem(spacerItem17) + self.verticalLayout_4.addLayout(self.vlayout_Anggota_3) + self.stackedWidget.addWidget(self.page_MenuA) + + + #PAGE TAMBAH ANGGOTA + self.page_tambahA = QtWidgets.QWidget() + self.page_tambahA.setObjectName("page_tambahA") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.page_tambahA) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.vlayout_Anggota_2 = QtWidgets.QVBoxLayout() + self.vlayout_Anggota_2.setObjectName("vlayout_Anggota_2") + spacerItem18 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_2.addItem(spacerItem18) + self.label_Anggota_2 = QtWidgets.QLabel(self.page_tambahA) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(26) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota_2.setFont(font) + self.label_Anggota_2.setStyleSheet("color:rgb(91, 88, 66);") + self.label_Anggota_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota_2.setObjectName("label_Anggota_2") + self.vlayout_Anggota_2.addWidget(self.label_Anggota_2) + spacerItem19 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_2.addItem(spacerItem19) + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.groupBox_3 = QtWidgets.QGroupBox(self.page_tambahA) + self.groupBox_3.setStyleSheet("background-color: rgb(135, 195, 190);") + self.groupBox_3.setTitle("") + self.groupBox_3.setObjectName("groupBox_3") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_3) + self.gridLayout_4.setObjectName("gridLayout_4") + spacerItem20 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem20, 6, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(self.groupBox_3) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:rgb(255, 201, 162);") + self.label_6.setObjectName("label_6") + self.gridLayout_4.addWidget(self.label_6, 1, 0, 1, 1) + spacerItem21 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem21, 0, 0, 1, 1) + self.texteditor_namaTambah = QtWidgets.QLineEdit(self.groupBox_3) + self.texteditor_namaTambah.setStyleSheet("color:rgb(254, 209, 134);\n""background-color: rgb(230, 131, 116)") + self.texteditor_namaTambah.setObjectName("texteditor_namaTambah") + self.gridLayout_4.addWidget(self.texteditor_namaTambah, 2, 0, 1, 1) + self.text_editor_noidenTambah = QtWidgets.QLineEdit(self.groupBox_3) + self.text_editor_noidenTambah.setStyleSheet("color:rgb(254, 209, 134);\n""background-color: rgb(230, 131, 116)") + self.text_editor_noidenTambah.setObjectName("text_editor_noidenTambah") + self.gridLayout_4.addWidget(self.text_editor_noidenTambah, 4, 0, 1, 1) + self.label_8 = QtWidgets.QLabel(self.groupBox_3) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_8.setFont(font) + self.label_8.setStyleSheet("color:rgb(255, 201, 162)") + self.label_8.setObjectName("label_8") + self.gridLayout_4.addWidget(self.label_8, 3, 0, 1, 1) + self.horizontalLayout_7 = QtWidgets.QHBoxLayout() + self.horizontalLayout_7.setObjectName("horizontalLayout_7") + spacerItem22 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_7.addItem(spacerItem22) + self.button_tambahData_2 = QtWidgets.QPushButton(self.groupBox_3) + font = QtGui.QFont() + font.setPointSize(9) + self.button_tambahData_2.setFont(font) + self.button_tambahData_2.setStyleSheet("background-color: rgb(233, 175, 127);\n""color: rgb(255, 255, 255);") + self.button_tambahData_2.setObjectName("button_tambahData_2") + self.horizontalLayout_7.addWidget(self.button_tambahData_2) + self.gridLayout_4.addLayout(self.horizontalLayout_7, 5, 0, 1, 1) + self.verticalLayout_2.addWidget(self.groupBox_3) + self.vlayout_Anggota_2.addLayout(self.verticalLayout_2) + spacerItem23 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_2.addItem(spacerItem23) + self.verticalLayout_3.addLayout(self.vlayout_Anggota_2) + self.stackedWidget.addWidget(self.page_tambahA) + + #PAGE HASIL DATA ANGGOTA + self.page_HasilData = QtWidgets.QWidget() + self.page_HasilData.setObjectName("page_HasilData") + self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.page_HasilData) + self.verticalLayout_6.setObjectName("verticalLayout_6") + self.vlayout_Anggota_4 = QtWidgets.QVBoxLayout() + self.vlayout_Anggota_4.setObjectName("vlayout_Anggota_4") + spacerItem24 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_4.addItem(spacerItem24) + self.label_Anggota_4 = QtWidgets.QLabel(self.page_HasilData) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(26) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota_4.setFont(font) + self.label_Anggota_4.setStyleSheet("color:rgb(91, 88, 66);") + self.label_Anggota_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota_4.setObjectName("label_Anggota_4") + self.vlayout_Anggota_4.addWidget(self.label_Anggota_4) + spacerItem25 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_4.addItem(spacerItem25) + self.verticalLayout_5 = QtWidgets.QVBoxLayout() + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.groupBox_4 = QtWidgets.QGroupBox(self.page_HasilData) + self.groupBox_4.setStyleSheet("background-color: rgb(250, 202, 147);") + self.groupBox_4.setTitle("") + self.groupBox_4.setObjectName("groupBox_4") + self.gridLayout_5 = QtWidgets.QGridLayout(self.groupBox_4) + self.gridLayout_5.setObjectName("gridLayout_5") + self.FileNameLayout = QtWidgets.QHBoxLayout() + self.FileNameLayout.setObjectName("FileNameLayout") + self.label_9 = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_9.setFont(font) + self.label_9.setStyleSheet("color:rgb(154, 108, 141);") + self.label_9.setObjectName("label_9") + self.FileNameLayout.addWidget(self.label_9) + self.label_hasilnama = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.label_hasilnama.setFont(font) + self.label_hasilnama.setStyleSheet("color: rgb(74, 55, 82);") + self.label_hasilnama.setObjectName("label_hasilnama") + self.FileNameLayout.addWidget(self.label_hasilnama) + spacerItem26 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.FileNameLayout.addItem(spacerItem26) + self.gridLayout_5.addLayout(self.FileNameLayout, 4, 0, 1, 1) + spacerItem27 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_5.addItem(spacerItem27, 2, 0, 1, 1) + spacerItem28 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_5.addItem(spacerItem28, 14, 0, 1, 1) + self.FileNameLayout_4 = QtWidgets.QHBoxLayout() + self.FileNameLayout_4.setObjectName("FileNameLayout_4") + self.label_12 = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_12.setFont(font) + self.label_12.setStyleSheet("color:rgb(154, 108, 141);") + self.label_12.setObjectName("label_12") + self.FileNameLayout_4.addWidget(self.label_12) + self.label = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.label.setFont(font) + self.label.setStyleSheet("color: rgb(74, 55, 82);") + self.label.setObjectName("label") + self.FileNameLayout_4.addWidget(self.label) + spacerItem29 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.FileNameLayout_4.addItem(spacerItem29) + self.gridLayout_5.addLayout(self.FileNameLayout_4, 3, 0, 1, 1) + self.FileNameLayout_2 = QtWidgets.QHBoxLayout() + self.FileNameLayout_2.setObjectName("FileNameLayout_2") + self.label_10 = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_10.setFont(font) + self.label_10.setStyleSheet("color:rgb(154, 108, 141);") + self.label_10.setObjectName("label_10") + self.FileNameLayout_2.addWidget(self.label_10) + self.label_hasilnoiden = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.label_hasilnoiden.setFont(font) + self.label_hasilnoiden.setStyleSheet("color: rgb(74, 55, 82);") + self.label_hasilnoiden.setObjectName("label_hasilnoiden") + self.FileNameLayout_2.addWidget(self.label_hasilnoiden) + spacerItem30 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.FileNameLayout_2.addItem(spacerItem30) + self.gridLayout_5.addLayout(self.FileNameLayout_2, 12, 0, 1, 1) + self.horizontalLayout_9 = QtWidgets.QHBoxLayout() + self.horizontalLayout_9.setObjectName("horizontalLayout_9") + spacerItem31 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_9.addItem(spacerItem31) + self.button_kembali = QtWidgets.QPushButton(self.groupBox_4) + font = QtGui.QFont() + font.setPointSize(9) + self.button_kembali.setFont(font) + self.button_kembali.setStyleSheet("background-color: rgb(59, 176, 176);\n""color: rgb(255, 255, 255);") + self.button_kembali.setObjectName("button_kembali") + self.horizontalLayout_9.addWidget(self.button_kembali) + self.gridLayout_5.addLayout(self.horizontalLayout_9, 15, 0, 1, 1) + self.FileNameLayout_3 = QtWidgets.QHBoxLayout() + self.FileNameLayout_3.setObjectName("FileNameLayout_3") + self.label_11 = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(10) + self.label_11.setFont(font) + self.label_11.setStyleSheet("color:rgb(154, 108, 141);") + self.label_11.setObjectName("label_11") + self.FileNameLayout_3.addWidget(self.label_11) + self.label_hasiltanggal = QtWidgets.QLabel(self.groupBox_4) + font = QtGui.QFont() + font.setFamily("Segoe MDL2 Assets") + font.setPointSize(9) + self.label_hasiltanggal.setFont(font) + self.label_hasiltanggal.setStyleSheet("color: rgb(74, 55, 82);") + self.label_hasiltanggal.setObjectName("label_hasiltanggal") + self.FileNameLayout_3.addWidget(self.label_hasiltanggal) + spacerItem32 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.FileNameLayout_3.addItem(spacerItem32) + self.gridLayout_5.addLayout(self.FileNameLayout_3, 13, 0, 1, 1) + self.verticalLayout_5.addWidget(self.groupBox_4) + self.vlayout_Anggota_4.addLayout(self.verticalLayout_5) + spacerItem33 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Anggota_4.addItem(spacerItem33) + self.verticalLayout_6.addLayout(self.vlayout_Anggota_4) + self.stackedWidget.addWidget(self.page_HasilData) + + #PAGE PESAN KESALAHAN + self.page = QtWidgets.QWidget() + self.page.setObjectName("page") + self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.page) + self.verticalLayout_7.setObjectName("verticalLayout_7") + spacerItem34 = QtWidgets.QSpacerItem(20, 393, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_7.addItem(spacerItem34) + self.groupBox_5 = QtWidgets.QGroupBox(self.page) + self.groupBox_5.setStyleSheet("background-color: rgb(250, 202, 147);") + self.groupBox_5.setTitle("") + self.groupBox_5.setObjectName("groupBox_5") + self.gridLayout_6 = QtWidgets.QGridLayout(self.groupBox_5) + self.gridLayout_6.setObjectName("gridLayout_6") + self.horizontalLayout_10 = QtWidgets.QHBoxLayout() + self.horizontalLayout_10.setObjectName("horizontalLayout_10") + self.button_kembali_2 = QtWidgets.QPushButton(self.groupBox_5) + font = QtGui.QFont() + font.setPointSize(9) + self.button_kembali_2.setFont(font) + self.button_kembali_2.setStyleSheet("background-color: rgb(59, 176, 176);\n""color: rgb(255, 255, 255);") + self.button_kembali_2.setObjectName("button_kembali_2") + self.horizontalLayout_10.addWidget(self.button_kembali_2) + self.gridLayout_6.addLayout(self.horizontalLayout_10, 12, 0, 1, 1) + spacerItem35 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_6.addItem(spacerItem35, 2, 0, 1, 1) + spacerItem36 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_6.addItem(spacerItem36, 11, 0, 1, 1) + self.label_pesanKejadian = QtWidgets.QLabel(self.groupBox_5) + font = QtGui.QFont() + font.setFamily("MS Sans Serif") + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.label_pesanKejadian.setFont(font) + self.label_pesanKejadian.setStyleSheet("color:rgb(95, 81, 94)") + self.label_pesanKejadian.setAlignment(QtCore.Qt.AlignCenter) + self.label_pesanKejadian.setObjectName("label_pesanKejadian") + self.gridLayout_6.addWidget(self.label_pesanKejadian, 10, 0, 1, 1) + self.verticalLayout_7.addWidget(self.groupBox_5) + spacerItem37 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_7.addItem(spacerItem37) + self.stackedWidget.addWidget(self.page) + self.horizontalLayout.addWidget(self.stackedWidget) + MainWindow.setCentralWidget(self.centralwidget) + + reg_ex = QRegExp("[0-9]+.?[0-9]{,1}") + input_validator = QRegExpValidator(reg_ex, self.texteditor_IDc) + input_validator1 = QRegExpValidator(reg_ex, self.text_editor_noidenC) + input_validator2 = QRegExpValidator(reg_ex, self.text_editor_noidenTambah) + self.texteditor_IDc.setValidator(input_validator) + self.text_editor_noidenC.setValidator(input_validator1) + self.text_editor_noidenTambah.setValidator(input_validator2) + + + self.retranslateUi(MainWindow) + self.stackedWidget.setCurrentIndex(1) + self.tab_Cari.setCurrentIndex(0) + # self.button_kkeluar.clicked.connect(self.Show_Keluar) + self.button_anggota.clicked.connect(self.Show_MenuAnggota) + self.button_CariA.clicked.connect(self.Show_CariA) + self.button_cariID.clicked.connect(self.Event_searchByID) + self.button_CariN.clicked.connect(self.Event_searchByN) + self.button_TambahA.clicked.connect(self.Show_TambahA) + self.button_tambahData_2.clicked.connect(self.Event_tambahA) + self.button_kembali.clicked.connect(self.Show_MenuAnggota) + self.button_kembali_2.clicked.connect(self.Show_MenuAnggota) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + + def Event_searchByID(self): + id = self.texteditor_IDc.text() + if(DaftarAnggota.cekID(id) == True): + nama = DaftarAnggota.getNama(id) + noIden = DaftarAnggota.getNomorIdentitas(id) + aktif = DaftarAnggota.getTanggalAktif(id) + self.stackedWidget.setCurrentIndex(3) + self.label.setText(str(id)) + self.label_hasilnama.setText(str(nama)) + self.label_hasilnoiden.setText(str(noIden)) + self.label_hasiltanggal.setText(str(aktif)) + else: + self.stackedWidget.setCurrentIndex(4) + self.label_pesanKejadian.setText("Data tidak ditemukan") + + + def Event_searchByN(self): + noIden = self.text_editor_noidenC.text() + if(DaftarAnggota.cekNoIden(noIden)): + nama = self.texteditor_namaC.text() + id = DaftarAnggota.getIDAnggota(nama,noIden) + aktif = DaftarAnggota.getTanggalAktif(id) + self.stackedWidget.setCurrentIndex(3) + self.label.setText(str(id)) + self.label_hasilnama.setText(str(nama)) + self.label_hasilnoiden.setText(str(noIden)) + self.label_hasiltanggal.setText(str(aktif)) + else: + self.stackedWidget.setCurrentIndex(4) + self.label_pesanKejadian.setText("Data tidak ditemukan") + + def Event_tambahA(self): + try: + nama = self.texteditor_namaTambah.text() + noIden = self.text_editor_noidenTambah.text() + if(DaftarAnggota.cekNoIden(noIden)): + id = DaftarAnggota.getIDAnggota(nama,noIden) + aktif = DaftarAnggota.getTanggalAktif(id) + self.stackedWidget.setCurrentIndex(3) + self.label.setText(str(id)) + self.label_hasilnama.setText(str(nama)) + self.label_hasilnoiden.setText(str(noIden)) + self.label_hasiltanggal.setText(str(aktif)) + else: + id = DaftarAnggota.getNewIDAnggota() + DaftarAnggota.TambahAnggota(str(nama),int(noIden),id) + aktif = DaftarAnggota.getTanggalAktif(id) + self.stackedWidget.setCurrentIndex(3) + self.label.setText(str(id)) + self.label_hasilnama.setText(str(nama)) + self.label_hasilnoiden.setText(str(noIden)) + self.label_hasiltanggal.setText(str(aktif)) + except: + self.stackedWidget.setCurrentIndex(4) + self.label_pesanKejadian.setText("Mohon input data dengan benar.") + + def Show_MenuAnggota(self): + self.stackedWidget.setCurrentIndex(1) + self.texteditor_IDc.setText("") + self.texteditor_namaC.setText("") + self.text_editor_noidenC.setText("") + self.texteditor_namaTambah.setText("") + self.text_editor_noidenTambah.setText("") + + def Show_CariA(self): + self.stackedWidget.setCurrentIndex(0) + + def Show_TambahA(self): + self.stackedWidget.setCurrentIndex(2) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SansK")) + self.button_pemesana.setText(_translate("MainWindow", "Pemesanan")) + self.button_pembayaran.setText(_translate("MainWindow", "Pembayaran")) + self.button_anggota.setText(_translate("MainWindow", "Anggota")) + self.button_kkeluar.setText(_translate("MainWindow", "Keluar")) + self.label_Anggota.setText(_translate("MainWindow", "Cari Anggota")) + self.button_cariID.setText(_translate("MainWindow", "Cari")) + self.label_7.setText(_translate("MainWindow", "ID Anggota")) + self.tab_Cari.setTabText(self.tab_Cari.indexOf(self.tab_IDA), _translate("MainWindow", "Berdasarkan IDAnggota")) + self.button_CariN.setText(_translate("MainWindow", "Cari")) + self.label_3.setText(_translate("MainWindow", "Nomor Identitas")) + self.label_5.setText(_translate("MainWindow", "Nama")) + self.tab_Cari.setTabText(self.tab_Cari.indexOf(self.tab_Nama), _translate("MainWindow", "Berdasarkan Nama")) + self.label_Anggota_3.setText(_translate("MainWindow", "Anggota")) + self.button_CariA.setText(_translate("MainWindow", "Cari\nAnggota")) + self.button_TambahA.setText(_translate("MainWindow", "Tambah\nAnggota")) + self.button_PerpanjangD.setText(_translate("MainWindow", "Perpanjang\nAnggota")) + self.label_Anggota_2.setText(_translate("MainWindow", "Tambah Anggota")) + self.label_6.setText(_translate("MainWindow", "Nama")) + self.label_8.setText(_translate("MainWindow", "Nomor Identitas")) + self.button_tambahData_2.setText(_translate("MainWindow", "Tambah")) + self.label_Anggota_4.setText(_translate("MainWindow", "Data Anggota")) + self.label_9.setText(_translate("MainWindow", "Nama :")) + self.label_hasilnama.setText(_translate("MainWindow", "ini nama")) + self.label_12.setText(_translate("MainWindow", "ID Anggota :")) + self.label.setText(_translate("MainWindow", "ini id")) + self.label_10.setText(_translate("MainWindow", "Nomor Identitas :")) + self.label_hasilnoiden.setText(_translate("MainWindow", "ini nomor identitas")) + self.button_kembali.setText(_translate("MainWindow", "Kembali")) + self.label_11.setText(_translate("MainWindow", "Tanggal Aktif :")) + self.label_hasiltanggal.setText(_translate("MainWindow", "ini tanggal aktif")) + self.button_kembali_2.setText(_translate("MainWindow", "OK")) + self.label_pesanKejadian.setText(_translate("MainWindow", "Data Tidak Ditemukan")) + + +if __name__ == "__main__": + import sys + try: + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Keanggotaan() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) + except: + print("error") \ No newline at end of file diff --git a/fix/src/Pemesanan.py b/fix/src/Pemesanan.py new file mode 100644 index 0000000000000000000000000000000000000000..0eaba3041f9c73276dcb146ddc4fb2a68c80679a --- /dev/null +++ b/fix/src/Pemesanan.py @@ -0,0 +1,185 @@ +import sqlalchemy as db +import datetime +from engine_needed import engine, metadata, connection + +#TABLE +Ruangan = db.Table("DaftarRuangan", metadata, autoload=True, autoload_with=engine) +Pemesanan = db.Table("DaftarPemesanan", metadata, autoload=True, autoload_with=engine) +keanggotaan = db.Table("keanggotaan", metadata, autoload=True, autoload_with=engine) + +#RUANGAN +#MENDAPATKAN DATA DARI ATRIBUT +# def getJenis(nomorRuangan) : +# query = db.select([Ruangan.columns.Jenis]).where(Ruangan.columns.NomorRuangan == nomorRuangan) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +# def getUkuran(nomorRuangan) : +# query = db.select([Ruangan.columns.Ukuran]).where(Ruangan.columns.NomorRuangan == nomorRuangan) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +def getHargaRuangan(nomorRuangan) : + query = db.select([Ruangan.columns.Harga]).where(Ruangan.columns.NomorRuangan == nomorRuangan) + result = connection.execute(query) + resultset = result.fetchall() + return (resultset[0][0]) + +def getListRuangan(jumlahorg) : + if (jumlahorg >= 1) and (jumlahorg <= 5) : + ukuran = "Small" + elif (jumlahorg >= 6) and (jumlahorg <= 9) : + ukuran = "Medium" + else : + ukuran = "Large" + query = db.select([Ruangan.columns.NomorRuangan]).where(db.and_(Ruangan.columns.Ukuran == ukuran)) + result = connection.execute(query) + resultset = result.fetchall() + result_arr = [] + for i in enumerate(resultset): + result_arr.append(i[1][0]) + return (result_arr) + +#Mengembalikan nomor ruangan jika ada yang tersedia, -1 jika tidak ada yang tersedia +def tersedia(jumlahorg, waktu, tanggal,durasi) : + if (jumlahorg >= 1) and (jumlahorg <= 5) : + ukuran = "Small" + elif (jumlahorg >= 6) and (jumlahorg <= 9) : + ukuran = "Medium" + else : + ukuran = "Large" + + query = db.select([Ruangan.columns.NomorRuangan, Ruangan.columns.Jenis, Ruangan.columns.Ukuran]).where(db.and_(Ruangan.columns.Ukuran == ukuran)) + result = connection.execute(query) + resultset = result.fetchall() + result_arr = dict() + for i in enumerate(resultset): + temp = {} + temp["jenis"] = i[1][1] + temp["ukuran"] = i[1][2] + result_arr[i[1][0]] = temp + + listRuangan = result_arr + query = db.select([Pemesanan.columns.NomorRuangan, Pemesanan.columns.Durasi, Pemesanan.columns.Waktu]) + query = query.select_from(Ruangan.join(Pemesanan, Pemesanan.columns.NomorRuangan == Ruangan.columns.NomorRuangan)).where(db.and_(Ruangan.columns.Ukuran == ukuran, Pemesanan.columns.Tanggal == tanggal)) + res = connection.execute(query).fetchall() + reserved_arr = [] + for i in enumerate(res): + reserved_arr.append(i[1]) + + ruang_boolean = dict() + for i in (listRuangan) : + ruang_boolean[i] = 0 + + i = 0 + while (i<len(reserved_arr)) : + temp_start = reserved_arr[i][2].hour + temp_durasi = reserved_arr[i][1] + temp_nomor = reserved_arr[i][0] + temp_finish = temp_start + temp_durasi + if (ruang_boolean[temp_nomor] == 0): + if (waktu == temp_start) or ((waktu > temp_start) and (waktu < temp_finish)) or ((waktu + durasi >= temp_start) and (waktu + durasi <= temp_finish)) or (waktu == temp_finish) : + ruang_boolean[temp_nomor] = 1 + i+=1 + + tersedia = [] + found = False + available = -1 + for key in ruang_boolean : + if (ruang_boolean[key] == 1) : + tempo = listRuangan.pop(key) + + return listRuangan + +#Pemesanan +#MENDAPATKAN DATA DARI ATRIBUT Pemesanan +# def getTanggal(nomorAntrian) : +# query = db.select([Pemesanan.columns.Tanggal]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +# def getDurasi(nomorAntrian) : +# query = db.select([Pemesanan.columns.Durasi]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +# def getWaktu(nomorAntrian) : +# query = db.select([Pemesanan.columns.Waktu]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +# def getRuangan(nomorAntrian) : +# query = db.select([Pemesanan.columns.NomorRuangan]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +def getStatus(nomorAntrian) : + query = db.select([Pemesanan.columns.Status]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) + result = connection.execute(query) + resultset = result.fetchall() + return (resultset[0][0]) + +# def getTotHarga(nomorAntrian) : +# query = db.select([Pemesanan.columns.Harga]).where(Pemesanan.columns.NomorAntrian == nomorAntrian) +# result = connection.execute(query) +# resultset = result.fetchall() +# return (resultset[0][0]) + +def getMaxNomorAntrian() : + query = db.select([db.func.max(Pemesanan.columns.NomorAntrian)]) + result = connection.execute(query).fetchall() + return (result[0][0]) + +#MENAMBAHKAN DATA Pemesanan +def tambahPesanan(nama, durasi, tanggal, waktu, nomorRuang, id,harga) : + query = db.insert(Pemesanan).values(Nama = nama, Durasi = durasi, Tanggal = tanggal, Waktu = waktu, StatusPemesanan = "memesan", NomorRuangan = nomorRuang, IDAnggota = id, Harga = harga) + result = connection.execute(query) + +#MENGGANTI STATUS +def penggantianStatus(nomorAntrian, status) : + query = db.update(Pemesanan).values(StatusPemesanan = status).where(Pemesanan.columns.NomorAntrian == nomorAntrian) + result = connection.execute(query) + +#HITUNG HARGA +def updateHarga(nomorAntrian) : + totalharga = getHargaRuangan(nomorAntrian) * getDurasi(nomorAntrian) + query = db.update(Pemesanan).values(Harga = totalharga).where(Pemesanan.columns.NomorAntrian == nomorAntrian) + result = connection.execute(query) + +def findAnggota(id) : + if (id == "") : + return True + query = db.select([keanggotaan.columns.IDAnggota]) + result = connection.execute(query).fetchall() + found = False + # print(result) + result_arr = {} + for i in enumerate(result) : + # print(i[1][0]) + if (id == i[1][0]) : + found = True + break + + return found + +def Time(waktu) : + waktu = datetime.time(int(waktu)) + return waktu + +def parserTime(waktu) : + return int(waktu) + +def parserDate(tanggal) : + hari, bulan, tahun = map(int, tanggal.split("/")) + tgl = datetime.date(tahun, bulan, hari) + return tgl + +# #TEST +# print(getMaxNomorAntrian()) + diff --git a/fix/src/RiwayatTransaksi.py b/fix/src/RiwayatTransaksi.py new file mode 100644 index 0000000000000000000000000000000000000000..f3615f3320e4652db14ebe72095a34e346bcedff --- /dev/null +++ b/fix/src/RiwayatTransaksi.py @@ -0,0 +1,30 @@ +import sqlalchemy as db +from sqlalchemy import func +from sqlalchemy import cast, Date +from datetime import datetime + +import sqlalchemy as db +from engine_needed import engine, metadata, connection + +rt = db.Table ('riwayattransaksi', metadata, autoload=True, autoload_with=engine) + +def searchByNum(number): + query=db.select([rt]).where(rt.columns.NomorTransaksi == number) + ResultProxy = connection.execute(query) + ResultSet = ResultProxy.fetchall() + return ResultSet + +def selectall(): + query=db.select([rt]) + ResultProxy = connection.execute(query) + ResultSet = ResultProxy.fetchall() + return ResultSet + +def searchByDate(date): + query=db.select([rt]).where(func.DATE(rt.columns.WaktuPembayaran) == date) + ResultProxy = connection.execute(query) + ResultSet = ResultProxy.fetchall() + return ResultSet + +#test +# print(searchall()) \ No newline at end of file diff --git a/fix/src/RiwayatTransaksi_display.py b/fix/src/RiwayatTransaksi_display.py new file mode 100644 index 0000000000000000000000000000000000000000..4f8faa238963e119c0d8ba164cd22eb5b37ddcab --- /dev/null +++ b/fix/src/RiwayatTransaksi_display.py @@ -0,0 +1,243 @@ +# -*- coding: utf-8 -*- +# Form implementation generated from reading ui file 'C:\Users\Annisa Rahim\Desktop\if2250-2020-k02-2-sanskmanajemen\gui.ui' +# Created by: PyQt5 UI code generator 5.13.0 +''' +MODUL RIWAYAT TRANSAKSI +-Kelompok 2 k2 sansK Management- +Penanggung jawab: +Nama: Annisa Rahim +NIM : 13518089 + +fungsi modul ini antara lain: +1. Menampilkan Riwayat Transaksi yang mengacu pada database Manajemen Karaoke Sans K (data.selectall,loadData) +2. Menampilkan hasil pencarian berdasarkan input nomorTransaksi dari user (search, data.searchByNum) +3. Menampilkan riwayat transaksi berdasarkan tanggal yang dipilih oleh user (data.searchByDate, dateMode, onDateChanged) + +catatan tambahan: +-pada fungsi ke-2, jika tidak ada input dari user fungsi akan menghasilkan +seluruh data riwayat transaksi yang ada di database +-pada fungsi ke-3 default date yang muncul pertama adalah tanggal hari ini +''' +import sqlalchemy as db +from sqlalchemy import func +from sqlalchemy import cast, Date +from datetime import datetime +import RiwayatTransaksi as data + +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtCore import Qt + +class RiwayatTransaksi(object): + + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1237, 860) + MainWindow.setStyleSheet("background-color: rgb(237, 231, 226);\n" +"\n" +"") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayoutWidget_2 = QtWidgets.QWidget(self.centralwidget) + self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(160, 160, 1051, 631)) + self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") + self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setObjectName("verticalLayout") + self.tableWidget = QtWidgets.QTableWidget(self.verticalLayoutWidget_2) + self.tableWidget.setStyleSheet("background-color: rgb();\n" +"\n" +"") + self.tableWidget.setColumnCount(10) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) + self.tableWidget.setHorizontalHeaderLabels(["No. Transaksi", "No. Antrian","Nama", "Durasi", "Tanggal", "Waktu", "No. Ruangan", "Harga", "Waktu Pembayaran", "ID Anggota"]) + self.verticalLayout.addWidget(self.tableWidget) + self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget) + self.horizontalLayoutWidget.setGeometry(QtCore.QRect(430, 110, 781, 51)) + self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) + self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.searchButton = QtWidgets.QPushButton(self.horizontalLayoutWidget) + self.searchButton.setObjectName("searchButton") + self.searchButton.clicked.connect(self.search) + self.horizontalLayout_2.addWidget(self.searchButton) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.dateButton = QtWidgets.QPushButton(self.horizontalLayoutWidget) + self.dateButton.setObjectName("dateButton") + self.horizontalLayout_2.addWidget(self.dateButton) + self.dateButton.clicked.connect(self.dateMode) + self.tanggal = QtWidgets.QLabel(self.horizontalLayoutWidget) + self.tanggal.hide() + self.tanggal.setObjectName("tanggal") + self.horizontalLayout_2.addWidget(self.tanggal) + self.dateEdit = QtWidgets.QDateEdit(self.horizontalLayoutWidget) + self.dateEdit.hide() + self.dateEdit.setObjectName("dateEdit") + + self.horizontalLayout_2.addWidget(self.dateEdit) + self.button_keluar = QtWidgets.QPushButton(self.centralwidget) + self.button_keluar.setGeometry(QtCore.QRect(20, 720, 100, 51)) + self.button_keluar.setMinimumSize(QtCore.QSize(0, 50)) + self.button_keluar.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setFamily("Microsoft New Tai Lue") + font.setPointSize(10) + self.button_keluar.setFont(font) + self.button_keluar.setStyleSheet("background-color:rgb(135, 182, 166);\n" +"color:rgb(255, 220, 179);") + self.button_keluar.setObjectName("button_keluar") + self.searchInput = QtWidgets.QPlainTextEdit(self.centralwidget) + self.searchInput.setGeometry(QtCore.QRect(310, 120, 111, 31)) + self.searchInput.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) + self.searchInput.setObjectName("searchInput") + self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.centralwidget) + self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(160, 110, 131, 51)) + self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2") + self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2) + self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.no_antrian = QtWidgets.QLabel(self.horizontalLayoutWidget_2) + font = QtGui.QFont() + font.setPointSize(8) + self.no_antrian.setFont(font) + self.no_antrian.setObjectName("no_antrian") + self.horizontalLayout_3.addWidget(self.no_antrian) + self.horizontalLayoutWidget_3 = QtWidgets.QWidget(self.centralwidget) + self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(140, 10, 1071, 91)) + self.horizontalLayoutWidget_3.setObjectName("horizontalLayoutWidget_3") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_3) + self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.RiwayatTransaksi = QtWidgets.QLabel(self.horizontalLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("MS Sans Serif") + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.RiwayatTransaksi.setFont(font) + self.RiwayatTransaksi.setStyleSheet("color:rgb(95, 81, 94)") + self.RiwayatTransaksi.setAlignment(QtCore.Qt.AlignCenter) + self.RiwayatTransaksi.setObjectName("RiwayatTransaksi") + self.horizontalLayout_4.addWidget(self.RiwayatTransaksi) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 10, 131, 121)) + self.label.setText("") + self.label.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label.setScaledContents(True) + self.label.setObjectName("label") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Riwayat Transaksi")) + self.searchButton.setText(_translate("MainWindow", "search")) + self.dateButton.setText(_translate("MainWindow", "Ganti Tanggal")) + self.tanggal.setText(_translate("MainWindow", "Tanggal")) + self.dateEdit.setDisplayFormat(_translate("MainWindow", "dd/MM/yyyy")) + self.button_keluar.setText(_translate("MainWindow", "Keluar")) + self.no_antrian.setText(_translate("MainWindow", "Nomor Transaksi:")) + self.RiwayatTransaksi.setText(_translate("MainWindow", "Riwayat Transaksi")) + + def loadData(self,result): + self.tableWidget.setRowCount(0) + if (result!=[]): + ir=0 + for row in (result): + self.tableWidget.insertRow(ir) + ic=0 + for column in row: + item=QtWidgets.QTableWidgetItem(str(column)) + item.setTextAlignment(Qt.AlignCenter) + self.tableWidget.setItem(ir,ic, item) + ic+=1 + ir+=1 + # change the alignment + header=self.tableWidget.horizontalHeader() + header.setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents) + for i in range (1,ic): + header.setSectionResizeMode(i, QtWidgets.QHeaderView.ResizeToContents) + + def search(self): + table=[] + input = self.searchInput.toPlainText() + if (input==""): + table=data.selectall() + else: + table=data.searchByNum(input) + self.loadData(table) + + def dateMode(self): + table=[] + + year=int(datetime.today().strftime('%Y')) + month=int(datetime.today().strftime('%m')) + day=int(datetime.today().strftime('%d')) + self.dateEdit.setDateTime(QtCore.QDateTime(QtCore.QDate(year, month, day), QtCore.QTime(0, 0, 0))) + self.dateEdit.show() + self.tanggal.show() + self.dateButton.hide() + + fulldate=datetime.today().strftime('%Y/%m/%d') + table=data.searchByDate(fulldate) + self.loadData(table) + self.dateEdit.dateChanged.connect(self.onDateChanged) + + def onDateChanged(self): + table=[] + fulldate=str(self.dateEdit.date().toPyDate()) + table=data.searchByDate(fulldate) + self.loadData(table) + + + +# import test_rc + +# def createEngine(user, password, host, port, db_name) : +# name_engine = "mysql+pymysql://" + user + ":" + password + "@" + host + ":" + port + "/" + db_name +# return (db.create_engine(name_engine)) + +# def data.searchByNum(number): +# query=db.select([rt]).where(rt.columns.NomorTransaksi == number) +# ResultProxy = connection.execute(query) +# ResultSet = ResultProxy.fetchall() +# return ResultSet + +# def data.selectall(): +# query=db.select([rt]) +# ResultProxy = connection.execute(query) +# ResultSet = ResultProxy.fetchall() +# return ResultSet + +# def data.searchByDate(date): +# query=db.select([rt]).where(func.DATE(rt.columns.WaktuPembayaran) == date) +# ResultProxy = connection.execute(query) +# ResultSet = ResultProxy.fetchall() +# return ResultSet + +if __name__ == "__main__": + import sys + + # database setup + # password=input("masukkan password: ") + # engine = createEngine('root',password,'localhost','3306','sansK') + # connection = engine.connect() + # metadata = db.MetaData() + # rt = db.Table ('riwayattransaksi', metadata, autoload=True, autoload_with=engine) + + # ui setup + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = RiwayatTransaksi() + ui.setupUi(MainWindow) + + # inisialisasi table + fulltable=data.selectall() + ui.loadData(fulltable) + + MainWindow.show() + sys.exit(app.exec_()) diff --git a/fix/src/SansK.py b/fix/src/SansK.py new file mode 100644 index 0000000000000000000000000000000000000000..86aa8a933d59bc4f6bc417a73849c77b97a5c4af --- /dev/null +++ b/fix/src/SansK.py @@ -0,0 +1,270 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Menus.ui' +# +# Created by: PyQt5 UI code generator 5.13.0 +# +# WARNING! All changes made in this file will be lost! + + +from PyQt5 import QtCore, QtGui, QtWidgets +from Keanggotaan_UI import Keanggotaan +from pemesanan_ui_fix import Pemesanan +from RiwayatTransaksi_display import RiwayatTransaksi +from pembayaran_display_oo import Pembayaran +import RiwayatTransaksi as rt + +class Ui_MainWindow(object): + + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1237, 860) + MainWindow.setStyleSheet("background-color: rgb(237, 231, 226);\n") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.stackedWidget_2 = QtWidgets.QStackedWidget(self.centralwidget) + self.stackedWidget_2.setObjectName("stackedWidget_2") + self.page_Menu = QtWidgets.QWidget() + self.page_Menu.setObjectName("page_Menu") + self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.page_Menu) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.vlayout_Menu_2 = QtWidgets.QVBoxLayout() + self.vlayout_Menu_2.setObjectName("vlayout_Menu_2") + self.horizontalLayout_7 = QtWidgets.QHBoxLayout() + self.horizontalLayout_7.setObjectName("horizontalLayout_7") + self.label_15 = QtWidgets.QLabel(self.page_Menu) + self.label_15.setEnabled(True) + self.label_15.setMaximumSize(QtCore.QSize(500, 460)) + self.label_15.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_15.setStyleSheet("") + self.label_15.setText("") + self.label_15.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_15.setScaledContents(True) + self.label_15.setObjectName("label_15") + self.horizontalLayout_7.addWidget(self.label_15) + self.vlayout_Menu_2.addLayout(self.horizontalLayout_7) + self.label_Anggota_4 = QtWidgets.QLabel(self.page_Menu) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota_4.setFont(font) + self.label_Anggota_4.setStyleSheet("color:rgb(101, 200, 222);") + self.label_Anggota_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota_4.setObjectName("label_Anggota_4") + self.vlayout_Menu_2.addWidget(self.label_Anggota_4) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu_2.addItem(spacerItem) + self.button_anggota = QtWidgets.QPushButton(self.page_Menu) + self.button_anggota.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_anggota.setFont(font) + self.button_anggota.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_anggota.setObjectName("button_anggota") + self.vlayout_Menu_2.addWidget(self.button_anggota) + self.button_pemesana = QtWidgets.QPushButton(self.page_Menu) + self.button_pemesana.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pemesana.setFont(font) + self.button_pemesana.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pemesana.setObjectName("button_pemesana") + self.vlayout_Menu_2.addWidget(self.button_pemesana) + self.button_pembayaran = QtWidgets.QPushButton(self.page_Menu) + self.button_pembayaran.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pembayaran.setFont(font) + self.button_pembayaran.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pembayaran.setObjectName("button_pembayaran") + self.vlayout_Menu_2.addWidget(self.button_pembayaran) + spacerItem1 = QtWidgets.QSpacerItem(0, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.vlayout_Menu_2.addItem(spacerItem1) + self.horizontalLayout_3.addLayout(self.vlayout_Menu_2) + self.stackedWidget_2.addWidget(self.page_Menu) + self.page_MAsuk = QtWidgets.QWidget() + self.page_MAsuk.setObjectName("page_MAsuk") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.page_MAsuk) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.vlayout_Menu = QtWidgets.QVBoxLayout() + self.vlayout_Menu.setObjectName("vlayout_Menu") + self.horizontalLayout_6 = QtWidgets.QHBoxLayout() + self.horizontalLayout_6.setObjectName("horizontalLayout_6") + self.label_13 = QtWidgets.QLabel(self.page_MAsuk) + self.label_13.setEnabled(True) + self.label_13.setMaximumSize(QtCore.QSize(500, 460)) + self.label_13.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_13.setStyleSheet("") + self.label_13.setText("") + self.label_13.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_13.setScaledContents(True) + self.label_13.setObjectName("label_13") + self.horizontalLayout_6.addWidget(self.label_13) + self.vlayout_Menu.addLayout(self.horizontalLayout_6) + self.label_Anggota_3 = QtWidgets.QLabel(self.page_MAsuk) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota_3.setFont(font) + self.label_Anggota_3.setStyleSheet("color:rgb(101, 200, 222);") + self.label_Anggota_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota_3.setObjectName("label_Anggota_3") + self.vlayout_Menu.addWidget(self.label_Anggota_3) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(spacerItem2) + self.button_MKasir = QtWidgets.QPushButton(self.page_MAsuk) + self.button_MKasir.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_MKasir.setFont(font) + self.button_MKasir.setStyleSheet("color: rgb(254, 254, 254);\n" + "background-color: rgb(233, 147, 132)\n" + "") + self.button_MKasir.setObjectName("button_MKasir") + self.vlayout_Menu.addWidget(self.button_MKasir) + self.button_MManajer = QtWidgets.QPushButton(self.page_MAsuk) + self.button_MManajer.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_MManajer.setFont(font) + self.button_MManajer.setStyleSheet("color: rgb(254, 254, 254);\n" + "background-color: rgb(233, 147, 132)\n" + "") + self.button_MManajer.setObjectName("button_MManajer") + self.vlayout_Menu.addWidget(self.button_MManajer) + spacerItem3 = QtWidgets.QSpacerItem(0, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.vlayout_Menu.addItem(spacerItem3) + self.horizontalLayout_2.addLayout(self.vlayout_Menu) + self.stackedWidget_2.addWidget(self.page_MAsuk) + self.horizontalLayout.addWidget(self.stackedWidget_2) + MainWindow.setCentralWidget(self.centralwidget) + + #Sambungkan antar window + + # riwayat transaksi + self.windowRT = QtWidgets.QMainWindow() + self.uiRT = RiwayatTransaksi() + self.uiRT .setupUi (self.windowRT) + # pemesanan + self.windowPesan = QtWidgets.QMainWindow() + self.uiPesan = Pemesanan() + self.uiPesan.setupUi (self.windowPesan) + #keanggotaan + self.windowAnggota = QtWidgets.QMainWindow() + self.uiAnggota = Keanggotaan() + self.uiAnggota.setupUi (self.windowAnggota) + #pembayaran + self.windowBayar = QtWidgets.QMainWindow() + self.uiBayar = Pembayaran() + self.uiBayar.setupUi(self.windowBayar) + + self.windowRT.hide() + self.windowPesan.hide() + self.windowAnggota.hide() + self.windowBayar.hide() + + MainWindow.show() + self.stackedWidget_2.setCurrentIndex(1) + + self.retranslateUi(MainWindow) + + #Event handler button MainWindow + self.button_anggota.clicked.connect(self.Show_Keanggotaan) + self.button_pemesana.clicked.connect(self.Show_Pemesanan) + self.button_MManajer.clicked.connect(self.Show_RiwayatTransaksi) + self.button_MKasir.clicked.connect(self.Show_Menu) + self.button_pembayaran.clicked.connect(self.Show_Pembayaran) + + #Event handler buttom keanggotaan + self.uiAnggota.button_pemesana.clicked.connect(self.Show_Pemesanan) + self.uiAnggota.button_kkeluar.clicked.connect(self.Show_Masuk) + self.uiAnggota.button_pembayaran.clicked.connect(self.Show_Pembayaran) + + #Event handler button pesanan + self.uiPesan.button_anggota.clicked.connect(self.Show_Keanggotaan) + self.uiPesan.button_kkeluar.clicked.connect(self.Show_Masuk) + self.uiPesan.button_pembayaran.clicked.connect(self.Show_Pembayaran) + + #Event handler button pembayaran + self.uiBayar.button_anggota.clicked.connect(self.Show_Keanggotaan) + self.uiBayar.button_pemesana.clicked.connect(self.Show_Pemesanan) + self.uiBayar.button_kkeluar.clicked.connect(self.Show_Masuk) + + #event handler button RT + self.uiRT.button_keluar.clicked.connect(self.Show_Masuk) + + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def Show_Keanggotaan(self): + MainWindow.hide() + self.windowPesan.hide() + self.windowBayar.hide() + self.windowAnggota.show() + + def Show_Pemesanan(self): + MainWindow.hide() + self.windowPesan.show() + self.windowAnggota.hide() + self.windowBayar.hide() + + def Show_RiwayatTransaksi(self): + MainWindow.hide() + fulltable=rt.selectall() + self.uiRT.loadData(fulltable) + self.windowRT.show() + + def Show_Pembayaran(self): + MainWindow.hide() + self.windowAnggota.hide() + self.windowPesan.hide() + self.windowBayar.show() + + def Show_Masuk(self): + MainWindow.show() + self.stackedWidget_2.setCurrentIndex(1) + self.windowAnggota.hide() + self.windowPesan.hide() + self.windowBayar.hide() + self.windowRT.hide() + self.windowBayar.hide() + + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SansK")) + self.label_Anggota_4.setText(_translate("MainWindow", "Menu")) + self.button_anggota.setText(_translate("MainWindow", "Anggota")) + self.button_pemesana.setText(_translate("MainWindow", "Pemesanan")) + self.button_pembayaran.setText(_translate("MainWindow", "Pembayaran")) + self.label_Anggota_3.setText(_translate("MainWindow", "Masuk")) + self.button_MKasir.setText(_translate("MainWindow", "Kasir")) + self.button_MManajer.setText(_translate("MainWindow", "Manajer")) + + def Show_Menu(self): + self.stackedWidget_2.setCurrentIndex(0) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/fix/src/__pycache__/Keanggotaan.cpython-37.pyc b/fix/src/__pycache__/Keanggotaan.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cfd2149674fc2b68f4f44bdb42bf2f577b0cb64b Binary files /dev/null and b/fix/src/__pycache__/Keanggotaan.cpython-37.pyc differ diff --git a/fix/src/__pycache__/Keanggotaan_UI.cpython-37.pyc b/fix/src/__pycache__/Keanggotaan_UI.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..caf345afc899cfb2ec345730e7a743ba67255c85 Binary files /dev/null and b/fix/src/__pycache__/Keanggotaan_UI.cpython-37.pyc differ diff --git a/fix/src/__pycache__/Pemesanan.cpython-37.pyc b/fix/src/__pycache__/Pemesanan.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ac64b8e77a71678b0dcf8dbf5a97815c9f1f48a Binary files /dev/null and b/fix/src/__pycache__/Pemesanan.cpython-37.pyc differ diff --git a/fix/src/__pycache__/RiwayatTransaksi.cpython-37.pyc b/fix/src/__pycache__/RiwayatTransaksi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0cdddf46bf55d3f2919052ba203171408b52b491 Binary files /dev/null and b/fix/src/__pycache__/RiwayatTransaksi.cpython-37.pyc differ diff --git a/fix/src/__pycache__/RiwayatTransaksi_display.cpython-37.pyc b/fix/src/__pycache__/RiwayatTransaksi_display.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..375db1a2f34157bd621107b4352eacf2f06ccc95 Binary files /dev/null and b/fix/src/__pycache__/RiwayatTransaksi_display.cpython-37.pyc differ diff --git a/fix/src/__pycache__/engine_needed.cpython-37.pyc b/fix/src/__pycache__/engine_needed.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..68c8e7ed85897854e714e41d061207abebedf139 Binary files /dev/null and b/fix/src/__pycache__/engine_needed.cpython-37.pyc differ diff --git a/fix/src/__pycache__/pembayaran.cpython-37.pyc b/fix/src/__pycache__/pembayaran.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cbd148bcda54421696efe7b179623d13a72d699d Binary files /dev/null and b/fix/src/__pycache__/pembayaran.cpython-37.pyc differ diff --git a/fix/src/__pycache__/pembayaran_display_oo.cpython-37.pyc b/fix/src/__pycache__/pembayaran_display_oo.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ef77f2cad28dcc419b3afd5e6e632fbc4012c0c Binary files /dev/null and b/fix/src/__pycache__/pembayaran_display_oo.cpython-37.pyc differ diff --git a/fix/src/__pycache__/pemesanan_ui_fix.cpython-37.pyc b/fix/src/__pycache__/pemesanan_ui_fix.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f44a98d49b8ce99aaca2b4bc00316f25bcf0744 Binary files /dev/null and b/fix/src/__pycache__/pemesanan_ui_fix.cpython-37.pyc differ diff --git a/fix/src/engine_needed.py b/fix/src/engine_needed.py new file mode 100644 index 0000000000000000000000000000000000000000..8ad96d5536d231df448773196b91a81ab9abb40a --- /dev/null +++ b/fix/src/engine_needed.py @@ -0,0 +1,12 @@ +import sqlalchemy as db + +user = input("Root : ") +password = input("password : ") +db_name = input("database name : ") +host = "localhost" +port = "3306" +name_engine = "mysql+pymysql://" + user + ":" + password + "@" + host + ":" + port + "/" + db_name +engine = db.create_engine(name_engine) +metadata = db.MetaData() +connection = engine.connect() + diff --git a/fix/src/logo.jpg b/fix/src/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfdc4b9fc9967e8b1c5f7acf7fcb9f08ebe04e2b Binary files /dev/null and b/fix/src/logo.jpg differ diff --git a/fix/src/pembayaran.py b/fix/src/pembayaran.py new file mode 100644 index 0000000000000000000000000000000000000000..832dfe3d56e3a50200e1c641e59ba6c461cb0bd5 --- /dev/null +++ b/fix/src/pembayaran.py @@ -0,0 +1,115 @@ +# MODUL PEMBAYARAN +# PENANGGUNG JAWAB: 13518008 HASNA ROIHAN NAFIISAH + +''' +Modul ini mengimplementasikan pembayaran dengan menggunakan tabel data pemesanan, mencetak bukti transaksi, +dan menyimpan hasil pembayaran ke dalam tabel data riwayat transaksi. Modul ini juga akan mengganti status pemesanan +pada pemesanan terkait menjadi "melakukan pembayaran." + +''' +import sqlalchemy as db +from sqlalchemy.sql.expression import func +from datetime import datetime +from engine_needed import metadata, engine, connection + +# INSIALISASI DATABASE +# user = "root" +# host = "localhost" +# port = "3306" +# db_name = "sansK" + +# def createEngine(user, host, port, db_name) : +# # root, password, localhost, 3306 +# print("Enter password: ", end="") +# password = str(input()) +# name_engine = "mysql+pymysql://" + user + ":" + password + "@" + host + ":" + port + "/" + db_name +# print("Connecting") +# return (db.create_engine(name_engine)) + +# engine = createEngine(user,host,port,db_name) +# print("Creating engine success") +# connection = engine.connect() +# print("Connecting engine success") +# metadata = db.MetaData() +# print("Connecting metadata success") + +# INISIALISASI TABEL +DaftarPemesanan = db.Table('daftarpemesanan', metadata, autoload = True, autoload_with = engine) +RiwayatTransaksi = db.Table('riwayattransaksi', metadata, autoload = True, autoload_with = engine) + +# Mengecek keberadaan nomor antrian dalam daftar pemesanan +def is_order_exist(order_id): + result = False + query = db.select([DaftarPemesanan.columns.NomorAntrian]).where(db.and_(DaftarPemesanan.columns.NomorAntrian == order_id, DaftarPemesanan.columns.StatusPemesanan != "melakukan pembayaran")) + query_result = connection.execute(query) + resultset = query_result.fetchall() + if len(resultset) > 0: + result = True + return result + +# Mengambil tuple field yang memiliki nomor antrian yang diinginkan +# Mengembalikan True jika berhasil +# resultset yang dihasilkan harus hanya memiliki satu tuple +def fetch_order(order_id, resultset): + exist = is_order_exist(order_id) + if exist: + query = query = db.select([DaftarPemesanan]).where(db.and_(DaftarPemesanan.columns.NomorAntrian == order_id, DaftarPemesanan.columns.StatusPemesanan != "melakukan pembayaran")) + query_result = connection.execute(query) + temp = query_result.fetchall() + resultset = resultset.append(temp[0]) + + # mengubah status pemesanan + #query = db.update(DaftarPemesanan).values(StatusPemesanan = "melakukan pembayaran").where(DaftarPemesanan.columns.NomorAntrian == order_id) + #query_result = connection.execute(query) + return exist + +# Memasukkan daftar pemesanan yang sudah dibayar ke dalam tabel riwayat transaksi +def update_invoice(resultset,result): + query = db.update(DaftarPemesanan).values(StatusPemesanan = "melakukan pembayaran").where(DaftarPemesanan.columns.NomorAntrian == resultset[0][0]) + query_result = connection.execute(query) + exist = False + if len(resultset) == 1: + resultorder = resultset[0] + for i in range(len(resultorder)): + if not (i == 6 or i == 8): + result.append(resultorder[i]) + result.append(datetime.now()) + if len(resultorder) < 8: + result.append(None) + else: + result.append(resultorder[8]) + print(len(result)) + query = db.insert(RiwayatTransaksi).values(NomorAntrian = result[0], Nama = result[1], Durasi = result[2], Tanggal = result[3], Waktu = result[4], NomorRuangan = result[5], Harga = result[6], WaktuPembayaran = result[7], IDAnggota = result[8]) + proxy = connection.execute(query) + # get the latest transaction record + transactionno = db.func.max(RiwayatTransaksi.columns.NomorTransaksi) + proxy2 = connection.execute(transactionno) + trans_no = proxy2.fetchall() + print(trans_no) + result.insert(0,trans_no[0][0]) + exist = True + return exist + +def print_invoice(result): + for i in range(len(result)): + print(result[i]) + +# MAIN PROG +# order_id = int(input("Masukkan nomor antrian: ")) +# resultset = [] +# success = fetch_order(order_id, resultset) +# if success: +# result = [] +# success2 = update_invoice(resultset,result) +# print(resultset) +# if success2: +# print_invoice(result) +# else: +# print("Pembayaran gagal") +# else: +# print("Nomor antrian tidak ditemukan") + + + + + diff --git a/fix/src/pembayaran_display_oo.py b/fix/src/pembayaran_display_oo.py new file mode 100644 index 0000000000000000000000000000000000000000..0ca83665444f47c07b789d25f484beb768877a9a --- /dev/null +++ b/fix/src/pembayaran_display_oo.py @@ -0,0 +1,471 @@ +# MODUL PEMBAYARAN +# PENANGGUNG JAWAB: 13518008 HASNA ROIHAN NAFIISAH + +''' +Modul ini mengimplementasikan pembayaran dengan menggunakan tabel data pemesanan, mencetak bukti transaksi, +dan menyimpan hasil pembayaran ke dalam tabel data riwayat transaksi. Modul ini juga akan mengganti status pemesanan +pada pemesanan terkait menjadi "melakukan pembayaran." + +''' +from PyQt5 import QtCore, QtGui, QtWidgets + + +import pembayaran as data + +class Pembayaran(object): + def setupUi(self, MainWindow): + # SETUP MAIN WINDOW + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1269, 846) + MainWindow.setStyleSheet("background-color: rgb(237, 231, 226)") + #MainWindow.show() + + # SETUP SIDE MENU + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.vlayout_Menu = QtWidgets.QVBoxLayout() + self.vlayout_Menu.setObjectName("vlayout_Menu") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setEnabled(True) + self.label_4.setMaximumSize(QtCore.QSize(500, 460)) + self.label_4.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_4.setStyleSheet("") + self.label_4.setText("") + self.label_4.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_4.setScaledContents(True) + self.label_4.setObjectName("label_4") + self.vlayout_Menu.addWidget(self.label_4) + self.spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + self.vlayout_Menu.addItem(self.spacerItem) + self.spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(self.spacerItem1) + self.button_pemesana = QtWidgets.QPushButton(self.centralwidget) + self.button_pemesana.setMinimumSize(QtCore.QSize(0, 50)) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(15) + self.button_pemesana.setFont(self.font) + self.button_pemesana.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pemesana.setObjectName("button_pemesana") + self.vlayout_Menu.addWidget(self.button_pemesana) + self.button_pembayaran = QtWidgets.QPushButton(self.centralwidget) + self.button_pembayaran.setMinimumSize(QtCore.QSize(0, 50)) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(15) + self.button_pembayaran.setFont(self.font) + self.button_pembayaran.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pembayaran.setObjectName("button_pembayaran") + self.vlayout_Menu.addWidget(self.button_pembayaran) + self.button_anggota = QtWidgets.QPushButton(self.centralwidget) + self.button_anggota.setMinimumSize(QtCore.QSize(0, 50)) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(15) + self.button_anggota.setFont(self.font) + self.button_anggota.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_anggota.setObjectName("button_anggota") + self.vlayout_Menu.addWidget(self.button_anggota) + self.spacerItem2 = QtWidgets.QSpacerItem(0, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.vlayout_Menu.addItem(self.spacerItem2) + self.button_kkeluar = QtWidgets.QPushButton(self.centralwidget) + self.button_kkeluar.setMinimumSize(QtCore.QSize(0, 50)) + self.button_kkeluar.setMaximumSize(QtCore.QSize(100, 16777215)) + self.font = QtGui.QFont() + self.font.setFamily("Microsoft New Tai Lue") + self.font.setPointSize(10) + self.button_kkeluar.setFont(self.font) + self.button_kkeluar.setStyleSheet("background-color:rgb(135, 182, 166);\n" + "color:rgb(255, 220, 179);") + self.button_kkeluar.setObjectName("button_kkeluar") + self.vlayout_Menu.addWidget(self.button_kkeluar) + self.spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(self.spacerItem3) + self.horizontalLayout.addLayout(self.vlayout_Menu) + self.spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(self.spacerItem4) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.VLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.horizontalLayout.addWidget(self.line) + self.spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(self.spacerItem5) + self.verticalLayout_6 = QtWidgets.QVBoxLayout() + self.verticalLayout_6.setObjectName("verticalLayout_6") + + # MENU PEMBAYARAN + self.mainstack = QtWidgets.QStackedWidget(self.centralwidget) + self.mainstack.setObjectName("mainstack") + self.entry = QtWidgets.QWidget() + self.entry.setObjectName("entry") + self.widget = QtWidgets.QWidget(self.entry) + self.widget.setGeometry(QtCore.QRect(0, -7, 611, 901)) + self.widget.setObjectName("widget") + self.vlayout_pembayaran = QtWidgets.QVBoxLayout(self.widget) + self.vlayout_pembayaran.setContentsMargins(0, 0, 0, 0) + self.vlayout_pembayaran.setObjectName("vlayout_pembayaran") + self.spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_pembayaran.addItem(self.spacerItem6) + self.label_Anggota = QtWidgets.QLabel(self.widget) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(26) + self.font.setBold(True) + self.font.setWeight(75) + self.font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.label_Anggota.setFont(self.font) + self.label_Anggota.setStyleSheet("color:rgb(91, 88, 66);") + self.label_Anggota.setAlignment(QtCore.Qt.AlignCenter) + self.label_Anggota.setObjectName("label_Anggota") + self.vlayout_pembayaran.addWidget(self.label_Anggota) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(self.spacerItem7) + self.groupBox = QtWidgets.QGroupBox(self.widget) + self.groupBox.setStyleSheet("background-color: rgb(135, 195, 190);") + self.groupBox.setTitle("") + self.groupBox.setObjectName("groupBox") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox) + self.gridLayout.setObjectName("gridLayout") + self.spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout.addItem(self.spacerItem8, 6, 0, 1, 1) + self.inputOrderId = QtWidgets.QLineEdit(self.groupBox) + self.inputOrderId.setStyleSheet("color:rgb(254, 209, 134);\n" + "background-color: rgb(230, 131, 116)") + self.inputOrderId.setObjectName("inputOrderId") + self.gridLayout.addWidget(self.inputOrderId, 1, 0, 1, 1) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(self.spacerItem9) + self.gridLayout.addLayout(self.horizontalLayout_2, 5, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(self.groupBox) + self.font = QtGui.QFont() + self.font.setFamily("Segoe MDL2 Assets") + self.font.setPointSize(10) + self.label_2.setFont(self.font) + self.label_2.setStyleSheet("color: rgb(237, 231, 226);") + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) + self.spacerItem10 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout.addItem(self.spacerItem10, 2, 0, 1, 1) + self.verticalLayout.addWidget(self.groupBox) + self.vlayout_pembayaran.addLayout(self.verticalLayout) + self.spacerItem11 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_pembayaran.addItem(self.spacerItem11) + + # Order ID found or not found + self.stackedWidget = QtWidgets.QStackedWidget(self.widget) + self.stackedWidget.setStyleSheet("background-color: rgb(135, 195, 190);") + self.stackedWidget.setObjectName("stackedWidget") + self.orderfound = QtWidgets.QWidget() + self.orderfound.setObjectName("orderfound") + self.verticalLayoutWidget = QtWidgets.QWidget(self.orderfound) + self.verticalLayoutWidget.setGeometry(QtCore.QRect(80, 20, 160, 51)) + self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) + self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.label = QtWidgets.QLabel(self.verticalLayoutWidget) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(11) + self.label.setFont(self.font) + self.label.setStyleSheet("background-color: rgb(255, 255, 255);") + self.label.setObjectName("label") + self.verticalLayout_4.addWidget(self.label) + self.spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.verticalLayout_4.addItem(self.spacerItem12) + self.verticalLayoutWidget_2 = QtWidgets.QWidget(self.orderfound) + self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(290, 20, 271, 51)) + self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2) + self.verticalLayout_5.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.label_3 = QtWidgets.QLabel(self.verticalLayoutWidget_2) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(11) + self.label_3.setFont(self.font) + self.label_3.setStyleSheet("background-color: rgb(255, 255, 255);") + self.label_3.setObjectName("label_3") + self.verticalLayout_5.addWidget(self.label_3) + self.spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.verticalLayout_5.addItem(self.spacerItem13) + self.horizontalLayoutWidget = QtWidgets.QWidget(self.orderfound) + self.horizontalLayoutWidget.setGeometry(QtCore.QRect(100, 80, 451, 31)) + self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) + self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.spacerItem14 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(self.spacerItem14) + self.buttonProses = QtWidgets.QPushButton(self.horizontalLayoutWidget) + self.font = QtGui.QFont() + self.font.setFamily("Segoe MDL2 Assets") + self.font.setPointSize(9) + self.buttonProses.setFont(self.font) + self.buttonProses.setStyleSheet("background-color: rgb(237, 231, 226);\n" + "color: rgb(135, 195, 190);") + self.buttonProses.setObjectName("buttonProses") + self.horizontalLayout_4.addWidget(self.buttonProses) + self.stackedWidget.addWidget(self.orderfound) + self.ordernotfound = QtWidgets.QWidget() + self.ordernotfound.setObjectName("ordernotfound") + self.label_5 = QtWidgets.QLabel(self.ordernotfound) + self.label_5.setGeometry(QtCore.QRect(120, 40, 341, 51)) + self.font = QtGui.QFont() + self.font.setFamily("Segoe MDL2 Assets") + self.font.setPointSize(12) + self.label_5.setFont(self.font) + self.label_5.setStyleSheet("color: rgb(237, 231, 226);") + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.stackedWidget.addWidget(self.ordernotfound) + self.vlayout_pembayaran.addWidget(self.stackedWidget) + self.spacerItem15 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_pembayaran.addItem(self.spacerItem15) + + # Cetak Invoice + self.mainstack.addWidget(self.entry) + self.invoice = QtWidgets.QWidget() + self.invoice.setObjectName("invoice") + self.verticalLayoutWidget_4 = QtWidgets.QWidget(self.invoice) + self.verticalLayoutWidget_4.setGeometry(QtCore.QRect(19, 9, 571, 801)) + self.verticalLayoutWidget_4.setObjectName("verticalLayoutWidget_4") + self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_4) + self.verticalLayout_8.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_8.setObjectName("verticalLayout_8") + self.spacerItem16 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(self.spacerItem16) + self.labelinvoice = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setFamily("Constantia") + self.font.setPointSize(26) + self.font.setBold(True) + self.font.setWeight(75) + self.font.setStyleStrategy(QtGui.QFont.PreferDefault) + self.labelinvoice.setFont(self.font) + self.labelinvoice.setStyleSheet("color:rgb(91, 88, 66);") + self.labelinvoice.setAlignment(QtCore.Qt.AlignCenter) + self.labelinvoice.setObjectName("labelinvoice") + self.verticalLayout_8.addWidget(self.labelinvoice) + self.spacerItem17 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(self.spacerItem17) + self.verticalLayout_9 = QtWidgets.QVBoxLayout() + self.verticalLayout_9.setObjectName("verticalLayout_9") + self.widget1 = QtWidgets.QWidget(self.verticalLayoutWidget_4) + self.widget1.setObjectName("widget1") + self.verticalLayout_9.addWidget(self.widget1) + + # label nomor transaksi + self.NomorTransaksi = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.NomorTransaksi.setFont(self.font) + self.NomorTransaksi.setObjectName("NomorTransaksi") + self.verticalLayout_9.addWidget(self.NomorTransaksi) + self.spacerItem18 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem18) + + # label nomor antrian + self.NomorAntrian = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.NomorAntrian.setFont(self.font) + self.NomorAntrian.setObjectName("NomorAntrian") + self.verticalLayout_9.addWidget(self.NomorAntrian) + self.spacerItem19 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem19) + + # label nama pelanggan + self.Nama = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.Nama.setFont(self.font) + self.Nama.setObjectName("Nama") + self.verticalLayout_9.addWidget(self.Nama) + self.spacerItem20 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem20) + + # label nomor ruangan + self.noRuangan = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.noRuangan.setFont(self.font) + self.noRuangan.setObjectName("noRuangan") + self.verticalLayout_9.addWidget(self.noRuangan) + self.spacerItem21 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem21) + + # label durasi + self.durasi = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.durasi.setFont(self.font) + self.durasi.setObjectName("durasi") + self.verticalLayout_9.addWidget(self.durasi) + self.spacerItem22 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem22) + + # label waktu + self.waktu = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.waktu.setFont(self.font) + self.waktu.setObjectName("waktu") + self.verticalLayout_9.addWidget(self.waktu) + self.spacerItem23 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem23) + + # labelharga + self.labelharga = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.labelharga.setFont(self.font) + self.labelharga.setObjectName("labelharga") + self.verticalLayout_9.addWidget(self.labelharga) + self.spacerItemHarga = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItemHarga) + + #label waktu pembayaran + self.waktubayar = QtWidgets.QLabel(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(11) + self.waktubayar.setFont(self.font) + self.waktubayar.setObjectName("waktubayar") + self.verticalLayout_9.addWidget(self.waktubayar) + self.spacerItem24 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(self.spacerItem24) + + # button bayar + self.horizontalLayout_5 = QtWidgets.QHBoxLayout() + self.horizontalLayout_5.setObjectName("horizontalLayout_5") + self.spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_5.addItem(self.spacerItem25) + self.buttonBayar = QtWidgets.QPushButton(self.verticalLayoutWidget_4) + self.font = QtGui.QFont() + self.font.setPointSize(12) + self.buttonBayar.setFont(self.font) + self.buttonBayar.setObjectName("buttonBayar") + self.horizontalLayout_5.addWidget(self.buttonBayar) + self.verticalLayout_9.addLayout(self.horizontalLayout_5) + self.verticalLayout_8.addLayout(self.verticalLayout_9) + self.spacerItem26 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(self.spacerItem26) + self.spacerItem27 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(self.spacerItem27) + + self.mainstack.addWidget(self.invoice) + self.verticalLayout_6.addWidget(self.mainstack) + self.horizontalLayout.addLayout(self.verticalLayout_6) + self.spacerItem28 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(self.spacerItem28) + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.mainstack.setCurrentIndex(0) + self.stackedWidget.setCurrentIndex(1) + self.stackedWidget.hide() + self.inputOrderId.setValidator(QtGui.QIntValidator(1,999)) + + # SIGNALS + self.inputOrderId.returnPressed.connect(self.inputID) + self.buttonProses.clicked.connect(self.display_invoice) + self.buttonBayar.clicked.connect(self.display_input) + self.button_pembayaran.clicked.connect(self.display_input) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + # SET TEXT + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SansK")) + self.button_pemesana.setText(_translate("MainWindow", "Pemesanan")) + self.button_pembayaran.setText(_translate("MainWindow", "Pembayaran")) + self.button_anggota.setText(_translate("MainWindow", "Anggota")) + self.button_kkeluar.setText(_translate("MainWindow", "Keluar")) + self.label_Anggota.setText(_translate("MainWindow", "Pembayaran")) + self.label_2.setText(_translate("MainWindow", "Masukkan nomor antrian pemesanan:")) + self.label.setText(_translate("MainWindow", "order_id")) + self.label_3.setText(_translate("MainWindow", "Nama pelanggan")) + self.buttonProses.setText(_translate("MainWindow", "Proses")) + self.label_5.setText(_translate("MainWindow", "Nomor antrian tidak ditemukan")) + self.labelinvoice.setText(_translate("MainWindow", "Invoice")) + self.NomorTransaksi.setText(_translate("MainWindow", "NomorTransaksi")) + self.NomorAntrian.setText(_translate("MainWindow", "NomorAntrian")) + self.Nama.setText(_translate("MainWindow", "NamaPelanggan")) + self.noRuangan.setText(_translate("MainWindow", "NomorRuangan")) + self.durasi.setText(_translate("MainWindow", "Durasi")) + self.waktu.setText(_translate("MainWindow", "Waktu")) + self.waktubayar.setText(_translate("MainWindow", "Waktu Pembayaran")) + self.labelharga.setText(_translate("MainWindow", "Harga")) + self.buttonBayar.setText(_translate("MainWindow", "Cetak")) + + # INPUT ORDER + def inputID(self): + self.resultset = [] + self.result = [] + self.order_id = int(self.inputOrderId.text()) + + success = data.fetch_order(self.order_id, self.resultset) + if success: + #success2 = data.update_invoice(self.resultset,self.result) + print(self.resultset) + self.label.setText(str(self.resultset[0][0])) + self.label_3.setText(str(self.resultset[0][1])) + self.stackedWidget.setCurrentIndex(0) + #if success2: + # data.print_invoice(self.result) + #else: + # print("Pembayaran gagal") + else: + self.stackedWidget.setCurrentIndex(1) + print("Nomor antrian tidak ditemukan") + + self.stackedWidget.show() + + # DISPLAY INVOICE IF FOUND + def display_invoice(self): + success2 = data.update_invoice(self.resultset,self.result) + if success2: + data.print_invoice(self.result) + else: + print("Pembayaran gagal") + + self.NomorTransaksi.setText("Nomor Transaksi: " + str(self.result[0])) + self.NomorAntrian.setText("Nomor Antrian: " + str(self.result[1])) + self.Nama.setText("Nama Pelanggan: " + str(self.result[2])) + self.durasi.setText("Durasi: " + str(self.result[3])) + self.waktu.setText("Waktu: " + str(self.result[5])) + self.noRuangan.setText("Nomor Ruangan: " + str(self.result[6])) + self.labelharga.setText("Harga: " + str(self.result[7])) + self.waktubayar.setText("Waktu Pembayaran: " + str(self.result[8])) + self.mainstack.setCurrentIndex(1) + + # BACK ON SEARCH MENU + def display_input(self): + self.mainstack.setCurrentIndex(0) + self.stackedWidget.hide() + + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Pembayaran() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) + + + + + diff --git a/fix/src/pemesanan_ui_fix.py b/fix/src/pemesanan_ui_fix.py new file mode 100644 index 0000000000000000000000000000000000000000..9d164933ca00fe50f0a12fa16a2a4152f688c2e3 --- /dev/null +++ b/fix/src/pemesanan_ui_fix.py @@ -0,0 +1,418 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui_fix.ui' +# +# Created by: PyQt5 UI code generator 5.14.2 +# +# WARNING! All changes made in this file will be lost! + + +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtCore import QRegExp +from PyQt5.QtGui import QRegExpValidator +import Pemesanan as func +import datetime + + +class Pemesanan(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1269, 846) + MainWindow.setStyleSheet("background-color: rgb(237, 231, 226);\n" + "\n" + "") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.vlayout_Menu = QtWidgets.QVBoxLayout() + self.vlayout_Menu.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) + self.vlayout_Menu.setObjectName("vlayout_Menu") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setEnabled(True) + self.label_4.setMaximumSize(QtCore.QSize(100, 100)) + self.label_4.setFocusPolicy(QtCore.Qt.WheelFocus) + self.label_4.setStyleSheet("") + self.label_4.setText("") + self.label_4.setPixmap(QtGui.QPixmap("logo.jpg")) + self.label_4.setScaledContents(True) + self.label_4.setObjectName("label_4") + self.vlayout_Menu.addWidget(self.label_4) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(spacerItem) + self.button_pemesanan = QtWidgets.QPushButton(self.centralwidget) + self.button_pemesanan.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pemesanan.setFont(font) + self.button_pemesanan.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pemesanan.setObjectName("button_pemesanan") + self.button_pemesanan.clicked.connect(self.kembalimenu_clicked) + self.vlayout_Menu.addWidget(self.button_pemesanan) + self.button_pembayaran = QtWidgets.QPushButton(self.centralwidget) + self.button_pembayaran.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_pembayaran.setFont(font) + self.button_pembayaran.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_pembayaran.setObjectName("button_pembayaran") + self.vlayout_Menu.addWidget(self.button_pembayaran) + self.button_anggota = QtWidgets.QPushButton(self.centralwidget) + self.button_anggota.setMinimumSize(QtCore.QSize(0, 50)) + font = QtGui.QFont() + font.setFamily("Constantia") + font.setPointSize(15) + self.button_anggota.setFont(font) + self.button_anggota.setStyleSheet("color:rgb(135, 126, 93);\n" + "background-color: rgb(191, 215, 152);") + self.button_anggota.setObjectName("button_anggota") + self.vlayout_Menu.addWidget(self.button_anggota) + spacerItem1 = QtWidgets.QSpacerItem(0, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.vlayout_Menu.addItem(spacerItem1) + self.button_kkeluar = QtWidgets.QPushButton(self.centralwidget) + self.button_kkeluar.setMinimumSize(QtCore.QSize(0, 50)) + self.button_kkeluar.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setFamily("Microsoft New Tai Lue") + font.setPointSize(10) + self.button_kkeluar.setFont(font) + self.button_kkeluar.setStyleSheet("background-color:rgb(135, 182, 166);\n" + "color:rgb(255, 220, 179);") + self.button_kkeluar.setObjectName("button_kkeluar") + self.vlayout_Menu.addWidget(self.button_kkeluar) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.vlayout_Menu.addItem(spacerItem2) + self.horizontalLayout.addLayout(self.vlayout_Menu) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem3) + self.vlayout_pemesanan = QtWidgets.QVBoxLayout() + self.vlayout_pemesanan.setObjectName("vlayout_pemesanan") + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.vlayout_pemesanan.addItem(spacerItem4) + self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Apple Braille") + self.Tambah_pemesanan = QtWidgets.QWidget() + self.Tambah_pemesanan.setObjectName("Tambah_pemesanan") + + #groupbox + self.groupBox = QtWidgets.QGroupBox(self.Tambah_pemesanan) + self.groupBox.setGeometry(QtCore.QRect(20, 160, 991, 541)) + self.groupBox.setStyleSheet("background-color: rgb(112, 174, 167);") + self.groupBox.setTitle("") + self.groupBox.setObjectName("groupBox") + self.label_err = QtWidgets.QLabel(self.groupBox) + self.label_err.hide() + self.label1_err = QtWidgets.QLabel(self.groupBox) + self.label1_err.hide() + self.label2_err = QtWidgets.QLabel(self.groupBox) + self.label2_err.hide() + self.label3_err = QtWidgets.QLabel(self.groupBox) + self.label3_err.hide() + self.label4_err = QtWidgets.QLabel(self.groupBox) + self.label4_err.hide() + + self.label_err.setGeometry(QtCore.QRect(40, 400, 500, 16)) + self.label1_err.setGeometry(QtCore.QRect(40, 400, 500, 16)) + self.label2_err.setGeometry(QtCore.QRect(40, 400, 500, 16)) + self.label3_err.setGeometry(QtCore.QRect(40, 400, 500, 16)) + self.label4_err.setGeometry(QtCore.QRect(40, 400, 500, 16)) + + self.label_IDAnggota = QtWidgets.QLabel(self.groupBox) + self.label_IDAnggota.setGeometry(QtCore.QRect(40, 70, 91, 16)) + self.label_IDAnggota.setObjectName("label_IDAnggota") + self.label_Tanggal = QtWidgets.QLabel(self.groupBox) + self.label_Tanggal.setGeometry(QtCore.QRect(40, 170, 59, 16)) + self.label_Tanggal.setObjectName("label_Tanggal") + self.label_Waktu = QtWidgets.QLabel(self.groupBox) + self.label_Waktu.setGeometry(QtCore.QRect(40, 220, 400, 16)) + self.label_Waktu.setObjectName("label_Waktu") + self.lineEdit_durasi = QtWidgets.QLineEdit(self.groupBox) + self.lineEdit_durasi.setGeometry(QtCore.QRect(40, 140, 59, 21)) + self.lineEdit_durasi.setStyleSheet("background-color: rgb(255, 255, 255);") + self.lineEdit_durasi.setObjectName("lineEdit_durasi") + self.Tanggal = QtWidgets.QDateEdit(self.groupBox) + self.Tanggal.setGeometry(QtCore.QRect(40, 190, 110, 22)) + self.Tanggal.setStyleSheet("background-color: rgb(255, 255, 255);") + self.Tanggal.setObjectName("Tanggal") + self.Jumlah_org = QtWidgets.QSpinBox(self.groupBox) + self.Jumlah_org.setGeometry(QtCore.QRect(40, 290, 42, 21)) + self.Jumlah_org.setStyleSheet("background-color: rgb(255, 255, 255);") + self.Jumlah_org.setObjectName("Jumlah_org") + self.Jumlah_org.setMaximum(15) + self.Jumlah_org.setDisplayIntegerBase(10) + self.pushButton_next = QtWidgets.QPushButton(self.groupBox) + self.pushButton_next.setGeometry(QtCore.QRect(790, 440, 81, 31)) + self.pushButton_next.setStyleSheet("background-color: rgb(222, 109, 97);\n" + "alternate-background-color: rgb(222, 109, 97);") + self.pushButton_next.setObjectName("pushButton_next") + self.pushButton_next.clicked.connect(self.next_clicked) + self.label_Nama = QtWidgets.QLabel(self.groupBox) + self.label_Nama.setGeometry(QtCore.QRect(40, 20, 59, 16)) + self.label_Nama.setObjectName("label_Nama") + self.lineEdit_ID = QtWidgets.QLineEdit(self.groupBox) + self.lineEdit_ID.setGeometry(QtCore.QRect(40, 90, 831, 21)) + self.lineEdit_ID.setStyleSheet("background-color: rgb(255, 255, 255);") + self.lineEdit_ID.setObjectName("lineEdit_ID") + self.lineEdit_Name = QtWidgets.QLineEdit(self.groupBox) + self.lineEdit_Name.setGeometry(QtCore.QRect(40, 40, 831, 21)) + self.lineEdit_Name.setStyleSheet("background-color: rgb(255, 255, 255);") + self.lineEdit_Name.setObjectName("lineEdit_Name") + self.label_Durasi = QtWidgets.QLabel(self.groupBox) + self.label_Durasi.setGeometry(QtCore.QRect(40, 120, 300, 16)) + self.label_Durasi.setObjectName("label_Durasi") + self.Waktu = QtWidgets.QTimeEdit(self.groupBox) + self.Waktu.setGeometry(QtCore.QRect(40, 240, 61, 22)) + self.Waktu.setStyleSheet("background-color: rgb(255, 255, 255);") + self.Waktu.setObjectName("Waktu") + self.label_Jumlahorg = QtWidgets.QLabel(self.groupBox) + self.label_Jumlahorg.setGeometry(QtCore.QRect(40, 270, 91, 16)) + self.label_Jumlahorg.setObjectName("label_Jumlahorg") + self.label_7 = QtWidgets.QLabel(self.Tambah_pemesanan) + self.label_7.setGeometry(QtCore.QRect(210, 60, 551, 71)) + font = QtGui.QFont() + font.setPointSize(30) + self.label_7.setFont(font) + self.label_7.setStyleSheet("") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.stackedWidget.addWidget(self.Tambah_pemesanan) + self.Ruangan = QtWidgets.QWidget() + self.Ruangan.setObjectName("Ruangan") + self.groupBox_3 = QtWidgets.QGroupBox(self.Ruangan) + self.groupBox_3.setGeometry(QtCore.QRect(70, 120, 831, 561)) + self.groupBox_3.setStyleSheet("background-color: rgb(79, 144, 132);") + self.groupBox_3.setTitle("") + self.groupBox_3.setObjectName("groupBox_3") + self.label_6 = QtWidgets.QLabel(self.groupBox_3) + self.label_6.setGeometry(QtCore.QRect(220, 290, 401, 81)) + font = QtGui.QFont() + font.setPointSize(40) + self.label_6.setFont(font) + self.label_6.setStyleSheet("background-color: rgb(95, 160, 150);") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.label = QtWidgets.QLabel(self.groupBox_3) + self.label.setGeometry(QtCore.QRect(150, 30, 551, 41)) + font = QtGui.QFont() + font.setPointSize(30) + self.label.setFont(font) + self.label.setStyleSheet("background-color: rgb(95, 160, 150);") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.ENTER = QtWidgets.QPushButton(self.groupBox_3) + self.ENTER.setGeometry(QtCore.QRect(370, 490, 113, 32)) + self.ENTER.setObjectName("ENTER") + self.ENTER.clicked.connect(self.ruangan_clicked) + + self.labelruang5_err = QtWidgets.QLabel(self.groupBox_3) + self.labelruang5_err.hide() + self.labelruang5_err.setGeometry(QtCore.QRect(330, 530, 190, 16)) + + self.tableView = QtWidgets.QTableWidget(self.groupBox_3) + self.tableView.setGeometry(QtCore.QRect(200, 120, 431, 261)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tableView.sizePolicy().hasHeightForWidth()) + self.tableView.setSizePolicy(sizePolicy) + self.tableView.setStyleSheet("background-color: rgb(255, 255, 255);") + self.tableView.setObjectName("tableView") + self.lineEdit = QtWidgets.QLineEdit(self.groupBox_3) + self.lineEdit.setGeometry(QtCore.QRect(370, 440, 113, 21)) + self.lineEdit.setStyleSheet("background-color: rgb(255, 255, 255);\n" + "gridline-color: rgb(112, 174, 167);\n" + "border-color: rgb(112, 174, 167);") + self.lineEdit.setText("") + self.lineEdit.setObjectName("lineEdit") + self.label_10 = QtWidgets.QLabel(self.groupBox_3) + self.label_10.setGeometry(QtCore.QRect(370, 420, 111, 20)) + self.label_10.setAlignment(QtCore.Qt.AlignCenter) + self.label_10.setObjectName("label_10") + self.stackedWidget.addWidget(self.Ruangan) + self.berhasil = QtWidgets.QWidget() + self.berhasil.setObjectName("berhasil") + self.groupBox_2 = QtWidgets.QGroupBox(self.berhasil) + self.groupBox_2.setGeometry(QtCore.QRect(60, 140, 831, 561)) + self.groupBox_2.setStyleSheet("background-color: rgb(222, 109, 97);") + self.groupBox_2.setTitle("") + self.groupBox_2.setObjectName("groupBox_2") + self.label_3 = QtWidgets.QLabel(self.groupBox_2) + self.label_3.setGeometry(QtCore.QRect(220, 290, 401, 81)) + font = QtGui.QFont() + font.setPointSize(40) + self.label_3.setFont(font) + self.label_3.setStyleSheet("background-color: rgb(95, 160, 150);") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label_5 = QtWidgets.QLabel(self.groupBox_2) + self.label_5.setGeometry(QtCore.QRect(220, 390, 401, 61)) + font = QtGui.QFont() + font.setPointSize(40) + self.label_5.setFont(font) + self.label_5.setStyleSheet("background-color: rgb(95, 160, 150);") + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.label_2 = QtWidgets.QLabel(self.groupBox_2) + self.label_2.setGeometry(QtCore.QRect(50, 50, 731, 111)) + font = QtGui.QFont() + font.setPointSize(40) + self.label_2.setFont(font) + self.label_2.setStyleSheet("background-color: rgb(112, 174, 167);") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.pushButton_5 = QtWidgets.QPushButton(self.groupBox_2) + self.pushButton_5.setGeometry(QtCore.QRect(360, 500, 141, 31)) + self.pushButton_5.setObjectName("pushButton_5") + self.pushButton_5.clicked.connect(self.kembalimenu_clicked) + self.stackedWidget.addWidget(self.berhasil) + self.vlayout_pemesanan.addWidget(self.stackedWidget) + self.horizontalLayout.addLayout(self.vlayout_pemesanan) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.VLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.horizontalLayout.addWidget(self.line) + spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem5) + spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem6) + MainWindow.setCentralWidget(self.centralwidget) + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + reg_ex = QRegExp("[0-9]+.?[0-9]{,1}") + input_validator = QRegExpValidator(reg_ex, self.lineEdit_durasi) + input_validator1 = QRegExpValidator(reg_ex, self.lineEdit_ID) + self.lineEdit_durasi.setValidator(input_validator) + self.lineEdit_ID.setValidator(input_validator1) + self.lineEdit.setValidator(QtGui.QIntValidator(1,30)) + + def ruangan_clicked(self) : + jumlahorg = int(self.Jumlah_org.text()) + waktu = func.parserTime(self.Waktu.text()) + tanggal = func.parserDate(self.Tanggal.text()) + durasi = int(self.lineEdit_durasi.text()) + tersedia = func.tersedia(jumlahorg, waktu, tanggal, durasi) + + if (tersedia.get(int(self.lineEdit.text())) != None) : + self.stackedWidget.setCurrentIndex(2) + harga = int(self.lineEdit_durasi.text()) * func.getHargaRuangan(self.lineEdit.text()) + func.tambahPesanan(self.lineEdit_Name.text(), int(self.lineEdit_durasi.text()), func.parserDate(self.Tanggal.text()), func.Time(self.Waktu.text()),int(self.lineEdit.text()), int(self.lineEdit_ID.text()),harga) + self.label_5.setText(str(func.getMaxNomorAntrian())) + else : + self.stackedWidget.setCurrentIndex(1) + self.labelruang5_err.show() + self.lineEdit.clear() + + + def next_clicked(self): + try : + valid = 0 + if ((func.parserDate(self.Tanggal.text())) != datetime.date.today()) : + valid = 1 + elif (func.findAnggota(int(self.lineEdit_ID.text())) == False) : + valid = 2 + elif (func.Time(self.Waktu.text()) <= datetime.datetime.now().time()) : + valid = 3 + + if (valid == 0) : + self.stackedWidget.setCurrentIndex(1) + jumlahorg = int(self.Jumlah_org.text()) + waktu = func.parserTime(self.Waktu.text()) + tanggal = func.parserDate(self.Tanggal.text()) + durasi = int(self.lineEdit_durasi.text()) + tersedia = func.tersedia(jumlahorg, waktu, tanggal, durasi) + + if (len(tersedia) > 0) : + self.tableView.setColumnCount(3) + self.tableView.setHorizontalHeaderLabels(['Nomor Ruangan', 'Jenis', 'Ukuran']) + data1 = [] + data2 = [] + data3 = [] + for i in (tersedia) : + data1.append(i) + data2.append(tersedia[i]["jenis"]) + data3.append(tersedia[i]["ukuran"]) + self.tableView.setRowCount(len(tersedia)) + for index in range(len(tersedia)): + item = QtWidgets.QTableWidgetItem(str(data1[index])) + self.tableView.setItem(index,0,item) + item2 = QtWidgets.QTableWidgetItem(data2[index]) + self.tableView.setItem(index,1,item2) + item3 = QtWidgets.QTableWidgetItem(data3[index]) + self.tableView.setItem(index,2,item3) + else : + self.label3_err.show() + elif (valid == 1): + self.stackedWidget.setCurrentIndex(0) + self.label_err.show() + elif (valid == 2) : + self.stackedWidget.setCurrentIndex(0) + self.label1_err.show() + self.lineEdit_ID.clear() + elif (valid == 3) : + self.stackedWidget.setCurrentIndex(0) + self.label2_err.show() + except : + self.stackedWidget.setCurrentIndex(0) + self.label4_err.show() + + + + def kembalimenu_clicked(self) : + self.stackedWidget.setCurrentIndex(0) + self.lineEdit_durasi.clear() + self.lineEdit_ID.clear() + self.lineEdit_Name.clear() + self.Jumlah_org.clear() + self.label_err.hide() + self.label1_err.hide() + self.label2_err.hide() + self.label3_err.hide() + + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SansK")) + self.button_pemesanan.setText(_translate("MainWindow", "Pemesanan")) + self.button_pembayaran.setText(_translate("MainWindow", "Pembayaran")) + self.button_anggota.setText(_translate("MainWindow", "Anggota")) + self.button_kkeluar.setText(_translate("MainWindow", "Keluar")) + self.label_IDAnggota.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ffffff;\">ID Anggota</span></p></body></html>")) + self.Tanggal.setDisplayFormat(_translate("MainWindow",str(datetime.date))) + self.label_Tanggal.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ffffff;\">Tanggal</span></p></body></html>")) + self.Waktu.setDisplayFormat(_translate("MainWindow","HH")) + self.label_Waktu.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#fbfbfb;\">Waktu (Hanya dapat memasuki jam)</span></p></body></html>")) + self.pushButton_next.setText(_translate("MainWindow", "Next")) + self.label_Nama.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ffffff;\">Nama </span></p></body></html>")) + self.label_Durasi.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ffffff;\">Durasi (Dalam jam)</span></p></body></html>")) + self.label_Jumlahorg.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ffffff;\">Jumlah Orang</span></p></body></html>")) + self.label_7.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:64pt;\">PEMESANAN</span></p></body></html>")) + self.label_6.setText(_translate("MainWindow", "NOMOR ANTRIAN")) + self.label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">RUANGAN YANG TERSEDIA</span></p></body></html>")) + self.lineEdit.setText(_translate("MainWindow", "")) + self.label_3.setText(_translate("MainWindow", "NOMOR ANTRIAN")) + self.label_2.setText(_translate("MainWindow", "PESANAN BERHASIL !!")) + self.pushButton_5.setText(_translate("MainWindow", "kembali ke menu")) + self.label_err.setText(_translate("MainWindow", "Tidak bisa pesan selain hari ini!")) + self.label1_err.setText(_translate("MainWindow", "IDAnggota tidak ada!")) + self.label2_err.setText(_translate("MainWindow", "Waktu sudah lewat!")) + self.label3_err.setText(_translate("MainWindow", "Tidak ada ruangan yang tersedia!")) + self.label4_err.setText(_translate("MainWindow", "Masukan tidak valid!")) + self.labelruang5_err.setText(_translate("MainWindow", "Nomor Ruangan tidak tersedia!")) + self.ENTER.setText(_translate("MainWindow", "ENTER")) + self.label_10.setText(_translate("MainWindow", "Nomor Ruangan:")) + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Pemesanan() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/fix/src/sansK2020.sql b/fix/src/sansK2020.sql new file mode 100644 index 0000000000000000000000000000000000000000..e4e46fca93d707d89f7787bd0575117c8c677ac3 --- /dev/null +++ b/fix/src/sansK2020.sql @@ -0,0 +1,149 @@ +-- MySQL dump 10.13 Distrib 8.0.19, for Win64 (x86_64) +-- +-- Host: localhost Database: sansk +-- ------------------------------------------------------ +-- Server version 8.0.19 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `daftarpemesanan` +-- + +DROP TABLE IF EXISTS `daftarpemesanan`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `daftarpemesanan` ( + `NomorAntrian` int NOT NULL AUTO_INCREMENT, + `Nama` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, + `Durasi` int DEFAULT NULL, + `Tanggal` date DEFAULT NULL, + `Waktu` time DEFAULT NULL, + `NomorRuangan` int NOT NULL, + `StatusPemesanan` char(20) DEFAULT NULL, + `Harga` int DEFAULT NULL, + `IDAnggota` bigint DEFAULT NULL, + PRIMARY KEY (`NomorAntrian`), + KEY `NomorRuangan` (`NomorRuangan`), + KEY `IDAnggota` (`IDAnggota`), + CONSTRAINT `daftarpemesanan_ibfk_1` FOREIGN KEY (`NomorRuangan`) REFERENCES `daftarruangan` (`NomorRuangan`), + CONSTRAINT `daftarpemesanan_ibfk_2` FOREIGN KEY (`IDAnggota`) REFERENCES `keanggotaan` (`IDAnggota`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daftarpemesanan` +-- + +LOCK TABLES `daftarpemesanan` WRITE; +/*!40000 ALTER TABLE `daftarpemesanan` DISABLE KEYS */; +INSERT INTO `daftarpemesanan` VALUES (1,'yuhu',2,'2020-04-08','08:00:00',1,'melakukan pembayaran',100000,5),(2,'lucu',2,'2020-04-08','10:00:00',1,'memesan',100000,3),(3,'hihu',3,'2020-04-08','08:00:00',6,'memesan',100000,5),(4,'hilu',2,'2020-04-12','15:00:00',3,'memesan',100000,2),(5,'cyn',2,'2020-04-12','20:00:00',11,'memesan',100000,1),(6,'Aya',2,'2020-04-12','15:00:00',1,'memesan',100000,1),(7,'athena',2,'2020-04-12','20:00:00',1,'memesan',100000,5),(8,'yey',2,'2020-04-12','14:00:00',21,'memesan',220000,2),(9,'qwerty',2,'2020-04-12','20:00:00',30,'memesan',190000,2),(10,'aya',1,'2020-04-12','14:00:00',22,'memesan',110000,5),(11,'asd',2,'2020-04-12','19:00:00',2,'memesan',100000,2),(12,'lilu',2,'2020-04-12','20:00:00',10,'memesan',70000,2),(13,'qwerty',2,'2020-04-12','20:00:00',9,'memesan',70000,4); +/*!40000 ALTER TABLE `daftarpemesanan` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daftarruangan` +-- + +DROP TABLE IF EXISTS `daftarruangan`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `daftarruangan` ( + `NomorRuangan` int NOT NULL AUTO_INCREMENT, + `Jenis` char(6) DEFAULT NULL, + `Ukuran` char(6) DEFAULT NULL, + `Harga` int DEFAULT NULL, + PRIMARY KEY (`NomorRuangan`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daftarruangan` +-- + +LOCK TABLES `daftarruangan` WRITE; +/*!40000 ALTER TABLE `daftarruangan` DISABLE KEYS */; +INSERT INTO `daftarruangan` VALUES (1,'VIP','Small',50000),(2,'VIP','Small',50000),(3,'VIP','Small',50000),(4,'VIP','Small',50000),(5,'VIP','Small',50000),(6,'nonVIP','Small',35000),(7,'nonVIP','Small',35000),(8,'nonVIP','Small',35000),(9,'nonVIP','Small',35000),(10,'nonVIP','Small',35000),(11,'VIP','Medium',80000),(12,'VIP','Medium',80000),(13,'VIP','Medium',80000),(14,'VIP','Medium',80000),(15,'VIP','Medium',80000),(16,'nonVIP','Medium',65000),(17,'nonVIP','Medium',65000),(18,'nonVIP','Medium',65000),(19,'nonVIP','Medium',65000),(20,'nonVIP','Medium',65000),(21,'VIP','Large',110000),(22,'VIP','Large',110000),(23,'VIP','Large',110000),(24,'VIP','Large',110000),(25,'VIP','Large',110000),(26,'nonVIP','Large',95000),(27,'nonVIP','Large',95000),(28,'nonVIP','Large',95000),(29,'nonVIP','Large',95000),(30,'nonVIP','Large',95000); +/*!40000 ALTER TABLE `daftarruangan` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `keanggotaan` +-- + +DROP TABLE IF EXISTS `keanggotaan`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `keanggotaan` ( + `IDAnggota` bigint NOT NULL, + `Nama` varchar(20) NOT NULL, + `NomorIdentitas` bigint NOT NULL, + `TanggalAktif` date NOT NULL, + PRIMARY KEY (`IDAnggota`), + UNIQUE KEY `NomorIdentitas` (`NomorIdentitas`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `keanggotaan` +-- + +LOCK TABLES `keanggotaan` WRITE; +/*!40000 ALTER TABLE `keanggotaan` DISABLE KEYS */; +INSERT INTO `keanggotaan` VALUES (1,'Joe Benjamin',3244012333456760,'2020-12-02'),(2,'Lucy Jackson',3324400000034650,'2019-07-23'),(3,'Avery Hope',3702156934560010,'2019-08-15'),(4,'Ted Harold',3620012340012130,'2020-01-22'),(5,'Vey Gerald',3020017740012127,'2020-02-20'); +/*!40000 ALTER TABLE `keanggotaan` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `riwayattransaksi` +-- + +DROP TABLE IF EXISTS `riwayattransaksi`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `riwayattransaksi` ( + `NomorTransaksi` int NOT NULL AUTO_INCREMENT, + `NomorAntrian` int NOT NULL, + `Nama` varchar(20) NOT NULL, + `Durasi` int NOT NULL, + `Tanggal` date NOT NULL, + `Waktu` time NOT NULL, + `NomorRuangan` int NOT NULL, + `Harga` int NOT NULL, + `WaktuPembayaran` datetime NOT NULL, + `IDAnggota` int DEFAULT NULL, + PRIMARY KEY (`NomorTransaksi`), + KEY `rt_ruangan` (`NomorRuangan`), + CONSTRAINT `rt_ruangan` FOREIGN KEY (`NomorRuangan`) REFERENCES `daftarruangan` (`NomorRuangan`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `riwayattransaksi` +-- + +LOCK TABLES `riwayattransaksi` WRITE; +/*!40000 ALTER TABLE `riwayattransaksi` DISABLE KEYS */; +INSERT INTO `riwayattransaksi` VALUES (1,1,'Hasna',3,'2020-04-08','22:00:00',3,30000,'2020-04-09 00:13:55', NULL),(2,1,'yuhu',2,'2020-04-08','08:00:00',1,5,'2020-04-12 19:06:37', NULL); +/*!40000 ALTER TABLE `riwayattransaksi` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2020-04-12 21:35:47