def GenerateProducts(self): ProductList = self.ProductList ProductList.clear() #self.ProductList.setHorizontalHeaderLabels(['Code', 'Product', 'Price', 'Quantity']) # either labels are wrong or table output is wrong, i opted to change label self.ProductList.setHorizontalHeaderLabels( ['Code', 'Product', 'Manufacturer_ID', 'Price']) # either labels are wrong or table output is wrong, i opted to change label #result = read.product_quantity(c) result = read.table(tables.TableEnum.product, c) rowCount = 0 self.ProductList.setRowCount(len(result)) for item in result: self.ProductList.setItem(rowCount, 0, QTableWidgetItem(str(item[0]))) self.ProductList.setItem(rowCount, 1, QTableWidgetItem(item[1])) # either labels are wrong or table output is wrong, i opted to change label #self.ProductList.setItem(rowCount, 2, QTableWidgetItem("$" + str(item[2]))) #self.ProductList.setItem(rowCount, 3, QTableWidgetItem(str(item[3]))) self.ProductList.setItem(rowCount, 2, QTableWidgetItem(str(item[2]))) self.ProductList.setItem(rowCount, 3, QTableWidgetItem("$" + str(item[3]))) rowCount = rowCount + 1
def populateTable(self, dialog): header1 = dialog.tableWidget.horizontalHeader() header1.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch) header1.setSectionResizeMode(2, QtWidgets.QHeaderView.Stretch) header1.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch) header1.setSectionResizeMode(3, QtWidgets.QHeaderView.Stretch) header1.setSectionResizeMode(4, QtWidgets.QHeaderView.Stretch) tableWidget = dialog.tableWidget tableWidget.clear() dialog.tableWidget.setHorizontalHeaderLabels( ['Batch_ID', 'Product_ID', 'EXP_date', 'Import_Date', 'Quantity']) batchList = read.table(tables.TableEnum.batch, c) rowCount = 0 dialog.tableWidget.setRowCount(len(batchList)) for item1 in batchList: dialog.tableWidget.setItem(rowCount, 0, QTableWidgetItem(str(item1[0]))) dialog.tableWidget.setItem(rowCount, 1, QTableWidgetItem(str(item1[1]))) dialog.tableWidget.setItem(rowCount, 2, QTableWidgetItem(str(item1[2]))) dialog.tableWidget.setItem(rowCount, 3, QTableWidgetItem(str(item1[3]))) dialog.tableWidget.setItem(rowCount, 4, QTableWidgetItem(str(item1[4]))) rowCount = rowCount + 1
def ShowRestoredialog(self): mydialog = CreateInputDialog('Pages/StockDialog.ui') productList = read.table(tables.TableEnum.product, c) for product in productList: mydialog.ProductIDCombo.addItem(str(product[0]) + " " + product[1]) mydialog.Confirm.clicked.connect( lambda: self.commitToDatabase(mydialog)) mydialog.exec()
from PyQt5.QtCore import QDate from PyQt5.QtWidgets import QWidget, QApplication, QMainWindow, QTableWidgetItem, QDialog, QTableView, QTableWidget from PyQt5.uic import loadUi from UserInterface import SaleDialog, StockMenu, ReportMenu, ForecastMenu from datetime import datetime import read import tables import connect import insert import UserInterface.SideMenuModule as SideMenuModule connector = connect.conn() c = connector.cursor() # This variable holds an array of product arrays productList = read.table(tables.TableEnum.product, c) # This variable holds an array of customers customerList = read.table(tables.TableEnum.customer, c) class NewSalesMenu(QMainWindow): # This is a hash table that holds individual # added sales (Key: Product Id, Value: Quantity). # It will be added, modified or emptied saleItems = {} # This hash table holds key-value pairs of products # Id and corresponding name. Used for searching for # product name productTable = {}
def test_table(self): result = read.table(tables.TableEnum.product, cursor) self.assertEqual(5, len(result)) result = read.table(tables.TableEnum.sale_items, cursor) self.assertEqual(7, len(result))
# Imports all the Database scripts import UserInterface.SideMenuModule as SideMenuModule import read import connect import tables import insert from UserInterface import SalesMenu, ReportMenu, ForecastMenu from UserInterface.ProductDialog import ManageProductDialog ''' This Method manages the code for the Stock UI and its related dialog popup boxes. ''' # Probably bad practice but at dont have to create this object 1000 times connector = connect.conn() c = connector.cursor() result = read.table(tables.TableEnum.manufacturer, c) class NewStockMenu(QMainWindow): def __init__(self): super(NewStockMenu, self).__init__() loadUi('Pages/StockWindow.ui', self) self.show() # Variables self.CurrentView = "Product" # self.BatchView.setHidden(True) SideMenuModule.InitButtons(self, self.StockMenuButton) # Makes column size all even header = self.ProductList.horizontalHeader()
for num in args: if num == "": self.showErrorMsg() return False if not num.isnumeric(): self.showErrorMsg() return False if int(num) < 1: self.showErrorMsg() return False if int(args[0]) > len(self.ProductTable): self.showErrorMsg() return False return True def showErrorMsg(self): self.ProductNameText.setText("Please enter a valid number") if __name__ == "__main__": app = QApplication(sys.argv) connector = connect.conn() c = connector.cursor() productList = read.table(tables.TableEnum.product, c) productTable = {} for x in productList: productTable[x[0]] = x[1] print(productTable) window = CreateSaleDialog('Pages/AddSaleDialog.ui', productTable, None, None) sys.exit(app.exec_())