def __init__(self, journal_date=QDate.currentDate().toPyDate(), parent=None): super(BaseDetailModel, self).__init__(parent) self.records = [] self.records.append(BatchDetail()) self.itemModel = modelsandviews.ItemModel('BOM') self.formType = 0 self.journal_date = journal_date
self.editing = False self.setWindowTitle(localTITLE) def reject(self): self.accept() def accept(self): if self.dirty: answer = QMessageBox.question( self, "Editing - %s" % localTITLE, "Would you like to save your data?", QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) if answer == QMessageBox.Cancel: return elif answer == QMessageBox.No: QDialog.accept(self) elif answer == QMessageBox.Yes: self.save() QDialog.accept(self) self.my_parent.formClosed() if __name__ == '__main__': app = QApplication(sys.argv) setupDatabase("Production.sqlite") item = modelsandviews.ItemModel('Items') base = modelsandviews.BaseListModel() form = ProductionPrep(item, base) form.show() app.exec_()
self.clear() def clear(self, cIndex=0): widgets = self.findChildren(QWidget) for widget in widgets: if isinstance(widget, (QLineEdit, QTextEdit)): widget.clear() elif isinstance(widget, QComboBox): if widget.objectName() != self.type_comboBox.objectName(): widget.setCurrentIndex(-1) elif isinstance(widget, QCheckBox): widget.setChecked(False) self.type_comboBox.setCurrentIndex(cIndex) self.baseModel.clear() self.bomModel.clear() self.myParent.refreshModels() self.dirty = False self.editing = False self.mixItem = False self.setWindowTitle(localTITLE) if __name__ == '__main__': app = QApplication(sys.argv) setupDatabase("Production.sqlite") supModel = modelsandviews.SupplierModel() itmModel = modelsandviews.ItemModel('BOM') bsModel = modelsandviews.BaseListModel() form = ItemForm(supModel, itmModel, bsModel, 0) form.show() app.exec_()
def setupUi(self): # setup Models self.supplierModel = modelsandviews.SupplierModel() self.bomModel = modelsandviews.ItemModel('BOM') self.itemModel = modelsandviews.ItemModel('Items') self.baseListModel = modelsandviews.BaseListModel() self.batchListModel = modelsandviews.BatchListModel() self.prepListModel = modelsandviews.PrepListModel() # prepare form variables self.home_form = None self.supplier_form = None self.item_form = None self.receive_form = None self.batch_form = None self.prodprep_form = None self.production_form = None self.inventoryAdj_form = None self.batchAdj_form = None self.findItem_form = None self.find_form = None self.settings_form = None # // prepare other variables self.from_date = QDate().currentDate().toPyDate() self.to_date = QDate().currentDate().toPyDate() self.report_bomId = None accounts = functions.dLookup(databaseschema.Settings.value_1, databaseschema.Settings.setting == 'export_accounts') accounts = accounts.split('|') self.ap_account = accounts[0].strip() self.ap_usAccount = accounts[1].strip() self.inv_account = accounts[2].strip() self.exp_class = accounts[3].strip() self.openWindowDock.show() self.openWindowDock.setObjectName('OpenWindowDock') self.openWindowDock.setAllowedAreas(Qt.LeftDockWidgetArea| Qt.RightDockWidgetArea) self.openWindowList = QListWidget() self.openWindowDock.setWidget(self.openWindowList) self.addDockWidget(Qt.LeftDockWidgetArea, self.openWindowDock) self.openWindowList.clicked.connect(self.dockWindow) importSupplierAction = self.createAction('Import Supplier List', self.importSupplier, None, ':/icons/import', 'Import supplier list from excel') importBOMAction = self.createAction('Import BOM List', self.importBOM, None, ':/icons/import', 'Import Bill Of Material list from excel') importBaseAction = self.createAction('Import Base', self.importBase, None, ':/icons/import', 'Import Bases from excel') importItemAction = self.createAction('Import Item List', self.importItem, None, ':/icons/import', 'Import item list from excel') importReceiveAction = self.createAction('Import Receive', self.importReceive, None, ':/icons/import', 'Import inventory receiving from excel') exportReceiveAction = self.createAction('Export IIF', self.exportReceive, None, ':/icons/export', 'Export receive reports to an IIF file.') setupUserAction = self.createAction('Setup User', self.userSetup, None, ':/icons/settings', 'Setup new user name and password') settingsAction = self.createAction('Preferences', self.settingsForm, None, ':/icons/settings', 'Settings and Tools') utilitiesMenu = self.fileMenu.addMenu('Utilities') self.addActions(utilitiesMenu, (importSupplierAction, importBOMAction, importBaseAction, importItemAction, importReceiveAction, None, exportReceiveAction, None, setupUserAction, settingsAction)) self.fileMenu.insertMenu(self.fileQuitAction, utilitiesMenu) self.fileMenu.insertSeparator(self.fileQuitAction) formHomeAction = self.createAction("Home", self.homeForm, 'Ctrl+H', ":/icons/home", "Go To Home") formSupplierAction = self.createAction("New Supplier", self.supplierForm, None, ":/icons/account", "Add New Supplier") formItemAction = self.createAction("New Item", self.itemForm, None, ":/icons/item", "Add New Item") formReceiveAction = self.createAction("Receive Inventory", self.receiveForm, None, ":/icons/inventory", "Receive Inventory") formProdprepAction = self.createAction('Prepare Production', self.prodprepForm, None, ":/icons/prep", "Prepare A Production") formBatchAction = self.createAction('Create Batch', self.batchForm, None, ':/icons/batch', 'Create A Batch') formBaseAction = self.createAction('Record Base', self.baseForm, None, ':/icons/batch', 'Record A New Base') formProduction = self.createAction('Production', self.productionForm, None, ':/icons/production', 'Record A Production') formInvAdjustment = self.createAction('Adjust Inventory', self.invAdjustment, None, ':/icons/journal', 'Adjust Inventory') formBatchAdjAction = self.createAction('Adjust Batch RM', self.batchAdjForm, None, ':/icons/settings', 'Adjust Raw Materials on a batch before production') formMenu = self.menuBar().addMenu("Form") self.addActions(formMenu, (formHomeAction, formSupplierAction, formItemAction, formReceiveAction, formProdprepAction, formBatchAction, formBaseAction, formProduction, formInvAdjustment, formBatchAdjAction)) findMenu = self.menuBar().addMenu('Find') findItemAction = self.createAction('Find Item', self.findItem, None, ':/icons/find', 'Find Item') findAction = self.createAction('&Find', self.findForm, 'Ctrl+F', ':/icons/search', 'Find Transaction') self.addActions(findMenu, (findItemAction, findAction)) reportInventorySumAction = self.createAction('Inventory Evaluation', self.inventorySumReport, None, ':/icons/report', 'Invenatory Report') reportInventoryDetailAction = self.createAction('Inventory Detail', self.inventoryDetReport, None, ':/icons/report', 'Inventory Detail Report') reportMenu = self.menuBar().addMenu('Reports') self.addActions(reportMenu, (reportInventorySumAction, reportInventoryDetailAction)) self.windowNextAction = self.createAction("&Next", self.mdi.activateNextWindow, QKeySequence.NextChild) self.windowPrevAction = self.createAction("&Previous", self.mdi.activatePreviousWindow, QKeySequence.PreviousChild) self.windowCascadeAction = self.createAction("Casca&de", self.mdi.cascade) self.windowTileAction = self.createAction("&Tile", self.mdi.tile) self.windowRestoreAction = self.createAction("&Restore All", self.windowRestoreAll) self.windowMinimizeAction = self.createAction("&Iconize All", self.windowMinimizeAll) self.windowArrangeIconsAction = self.createAction("&Arrange Icons", self.mdi.arrangeIcons) self.windowCloseAction = self.createAction("&Close", self.mdi.closeActiveWindow, QKeySequence.Close) self.showDockAction = self.createAction('Show Dock Window', self.showDockWindow) formToolBar = self.addToolBar('Forms Toolbar') formToolBar.setObjectName('FormToolBar') self.addActions(formToolBar, (formHomeAction, formSupplierAction, formItemAction, formReceiveAction, formProdprepAction, formBatchAction, formProduction, formBatchAdjAction, formInvAdjustment)) findToolBar = self.addToolBar('Find Toolbar') findToolBar.setObjectName('FindToolBar') self.addActions(findToolBar, (findItemAction, findAction)) self.windowMapper = QSignalMapper(self) self.connect(self.windowMapper, SIGNAL("mapped(QWidget*)"), self.mdi, SLOT("setActiveWindow(QWidget*)")) self.windowMenu = self.menuBar().addMenu("&Window") self.connect(self.windowMenu, SIGNAL("aboutToShow()"), self.updateWindowMenu) helpMenu = self.menuBar().addMenu('Help') aboutAction = self.createAction('&About Production Program', self.helpAbout) self.addActions(helpMenu, (aboutAction,)) self.homeForm() self.updateWindowMenu()