Last active
August 21, 2017 07:15
-
-
Save eyllanesc/1934e946a7be6a2be19b9a3ae5cb76d8 to your computer and use it in GitHub Desktop.
inventory
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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