Skip to content

Instantly share code, notes, and snippets.

@eyllanesc
Last active August 21, 2017 07:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eyllanesc/1934e946a7be6a2be19b9a3ae5cb76d8 to your computer and use it in GitHub Desktop.
Save eyllanesc/1934e946a7be6a2be19b9a3ae5cb76d8 to your computer and use it in GitHub Desktop.
inventory
from PyQt4 import QtSql
from PyQt4 import QtCore, QtGui
import sqlite3
import subprocess
import sys
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
def closeEvent(self, event):
ret = QtGui.QMessageBox.question(None, 'Close request', 'Are you sure you want to quit?',
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
QtGui.QMessageBox.Yes)
if ret == QtGui.QMessageBox.Yes:
QtGui.QMainWindow.closeEvent(self, event)
else:
event.ignore()
#SQL Functions SQL Functions SQL Functions SQL Functions#
def loadData(self):
connection = sqlite3.connect('inventory.db')
query = "SELECT * FROM inventory"
result = connection.execute(query)
self.tableWidget.setRowCount(0)
for row_number, row_data in enumerate(result):
self.tableWidget.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.tableWidget.setItem(row_number, column_number, QtGui.QTableWidgetItem(str(data)))
connection.close()
def get_item(self):
connection = sqlite3.connect('inventory.db')
query = "SELECT * FROM inventory"
result = connection.execute(query)
#
#
for row_number, row_data in enumerate(result):
self.tableWidget.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.tableWidget.setItem(row_number, column_number, QtGui.QTableWidgetItem(str(data)))
filter_proxy_model = QtGui.QSortFilterProxyModel()
filter_proxy_model.setFilterKeyColumn(1) # third column
line_edit = self.lineEdit.float()
line_edit.textChanged.connect(filter_proxy_model.setFilterRegExp)
self.tableWidget.setModel(filter_proxy_model)
connection.close()
def comboBox2(self):
query = QtSql.QSqlQuery()
companyList = []
if not query.exec_("SELECT company FROM inventory"):
print("Error: " + query.lastError().text())
while query.next():
companyList += [[str(query.value(0).toString()), query.value(1).toInt()]]
return companyList
#Other Functions
def run(self, path):
subprocess.Popen(['pythonw', 'additem.py'])
def clearAll(self):
self.lineEdit.clear()
self.lineEdit_2.clear()
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1280, 760)
MainWindow.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(10, 20, 101, 21))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
self.lineEdit.setFont(font)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
###
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(760, 20, 81, 21))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.pushButton.clicked.connect(self.loadData)
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(310, 20, 75, 21))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.pushButton_2.clicked.connect(self.get_item)
###
self.model = QtSql.QSqlTableModel(self)
self.model.setTable("inventory")
self.model.select()
self.comboBox = QtGui.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(640, 20, 111, 22))
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.setModel(self.model)
self.comboBox.setModelColumn(self.model.fieldIndex("company"))
typeLabel = QtGui.QLabel("&Type:")
typeLabel.setBuddy(self.comboBox)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(660, 0, 91, 21))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.label.setFont(font)
self.label.setObjectName(_fromUtf8("label"))
self.comboBox_2 = QtGui.QComboBox(self.centralwidget)
self.comboBox_2.setGeometry(QtCore.QRect(510, 20, 121, 22))
self.comboBox_2.setObjectName(_fromUtf8("comboBox_2"))
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(550, 0, 91, 21))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(420, 0, 71, 21))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.comboBox_4 = QtGui.QComboBox(self.centralwidget)
self.comboBox_4.setGeometry(QtCore.QRect(390, 20, 111, 22))
self.comboBox_4.setObjectName(_fromUtf8("comboBox_4"))
self.comboBox_4.addItem(_fromUtf8(""))
self.lineEdit_2 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(120, 20, 181, 21))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
self.lineEdit_2.setFont(font)
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
####
self.tableWidget = QtGui.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(10, 50, 1116, 620))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(10)
self.tableWidget.setRowCount(0)
self.tableWidget.setHorizontalHeaderLabels(('Last Updated', 'ID', 'Supplier', 'Brand Name', 'Generic Name', 'Category', 'Item Cost',
'Selling Price', 'Quantity', 'Expiry Date'))
font = QtGui.QFont()
font.setFamily(_fromUtf8("Segoe UI"))
self.tableWidget.setFont(font)
header = self.tableWidget.horizontalHeader()
header.setResizeMode(0, QtGui.QHeaderView.ResizeToContents)
header.setResizeMode(1, QtGui.QHeaderView.ResizeToContents)
header.setResizeMode(3, QtGui.QHeaderView.Stretch)
header.setResizeMode(4, QtGui.QHeaderView.Stretch)
header.setResizeMode(5, QtGui.QHeaderView.ResizeToContents)
####
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 849, 21))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuAdd_Item = QtGui.QMenu(self.menubar)
self.menuAdd_Item.setObjectName(_fromUtf8("menuAdd_Item"))
self.menu = QtGui.QMenu(self.menubar)
self.menu.setTitle(_fromUtf8(""))
self.menu.setObjectName(_fromUtf8("menu"))
self.menuTransaction = QtGui.QMenu(self.menubar)
self.menuTransaction.setObjectName(_fromUtf8("menuTransaction"))
MainWindow.setMenuBar(self.menubar)
####
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
####
self.actionAdd_Item = QtGui.QAction(MainWindow)
self.actionAdd_Item.setObjectName(_fromUtf8("actionAdd_Item"))
self.actionEdit_Item = QtGui.QAction(MainWindow)
self.actionEdit_Item.setObjectName(_fromUtf8("actionEdit_Item"))
self.actionDelete_Item = QtGui.QAction(MainWindow)
self.actionDelete_Item.setObjectName(_fromUtf8("actionDelete_Item"))
self.actionAdd_Stock = QtGui.QAction(MainWindow)
self.actionAdd_Stock.setObjectName(_fromUtf8("actionAdd_Stock"))
self.actionConsume_Stock = QtGui.QAction(MainWindow)
self.actionConsume_Stock.setObjectName(_fromUtf8("actionConsume_Stock"))
self.actionDelete_Transaction = QtGui.QAction(MainWindow)
self.actionDelete_Transaction.setObjectName(_fromUtf8("actionDelete_Transaction"))
self.menuAdd_Item.addAction(self.actionAdd_Item)
self.menuAdd_Item.addAction(self.actionEdit_Item)
self.menuAdd_Item.addAction(self.actionDelete_Item)
self.menuTransaction.addAction(self.actionAdd_Stock)
self.menuTransaction.addAction(self.actionConsume_Stock)
self.menuTransaction.addAction(self.actionDelete_Transaction)
self.menubar.addAction(self.menuAdd_Item.menuAction())
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menuTransaction.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.lineEdit, self.lineEdit_2)
MainWindow.setTabOrder(self.lineEdit_2, self.pushButton_2)
MainWindow.setTabOrder(self.pushButton_2, self.comboBox_4)
MainWindow.setTabOrder(self.comboBox_4, self.comboBox_2)
MainWindow.setTabOrder(self.comboBox_2, self.comboBox)
MainWindow.setTabOrder(self.comboBox, self.pushButton)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "ValueChemists Inventory System", None))
app_icon = QtGui.QIcon()
app_icon.addFile('VC.png', QtCore.QSize(16, 16))
app.setWindowIcon(app_icon)
self.lineEdit.setText(_translate("MainWindow", "Item Code", None))
self.pushButton.setText(_translate("MainWindow", "Refresh", None))
self.pushButton_2.setText(_translate("MainWindow", "Filter", None))
self.comboBox.setItemText(0, _translate("MainWindow", "All", None))
self.comboBox.setItemText(1, _translate("MainWindow", "Low", None))
self.comboBox.setItemText(2, _translate("MainWindow", "Expired", None))
self.label.setText(_translate("MainWindow", "Stock Level", None))
self.label_2.setText(_translate("MainWindow", "Supplier", None))
self.comboBox_2.setItemText(0, _translate("MainWindow", "All", None))
self.label_3.setText(_translate("MainWindow", "Category", None))
self.comboBox_4.setItemText(0, _translate("MainWindow", "All", None))
self.lineEdit_2.setText(_translate("MainWindow", "Search Item Name", None))
self.menuAdd_Item.setTitle(_translate("MainWindow", "Manage Inventory", None))
self.menuTransaction.setTitle(_translate("MainWindow", "Manage Transactions", None))
self.actionAdd_Item.setText(_translate("MainWindow", "Add Item", None))
self.actionEdit_Item.setText(_translate("MainWindow", "Edit Item", None))
self.actionDelete_Item.setText(_translate("MainWindow", "Delete Item", None))
self.actionAdd_Stock.setText(_translate("MainWindow", "Add Stock", None))
self.actionConsume_Stock.setText(_translate("MainWindow", "Consume Stock", None))
self.actionDelete_Transaction.setText(_translate("MainWindow", "Delete Transaction", None))
#######################################################################################################################
def main():
w = MainWindow()
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment