Example #1
0
class Ui_createBOMDialog(QDialog):
	def __init__(self, mainte):
		super(Ui_createBOMDialog, self).__init__()
		self.mainte = mainte
		self.setupUi(self)

	def setupUi(self, createBOMDialog):
		self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowCloseButtonHint)

		createBOMDialog.setObjectName("createBOMDialog")
		createBOMDialog.resize(763, 510)
		self.label = QtWidgets.QLabel(createBOMDialog)
		self.label.setGeometry(QtCore.QRect(10, -1, 47, 20))
		self.label.setObjectName("label")
		self.loggedUserlbl = QtWidgets.QLabel(createBOMDialog)
		self.loggedUserlbl.setGeometry(QtCore.QRect(61, 0, 180, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.loggedUserlbl.setFont(font)
		self.loggedUserlbl.setText("")
		self.loggedUserlbl.setObjectName("loggedUserlbl")
		self.loggedUserlbl.setText(getLoginDataPKL()['name'])
		self.line = QtWidgets.QFrame(createBOMDialog)
		self.line.setGeometry(QtCore.QRect(12, 20, 740, 3))
		self.line.setFrameShape(QtWidgets.QFrame.HLine)
		self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line.setObjectName("line")
		self.label_3 = QtWidgets.QLabel(createBOMDialog)
		self.label_3.setGeometry(QtCore.QRect(10, 31, 90, 13))
		self.label_3.setObjectName("label_3")
		self.label_4 = QtWidgets.QLabel(createBOMDialog)
		self.label_4.setGeometry(QtCore.QRect(253, 31, 130, 13))
		self.label_4.setObjectName("label_4")
		self.label_5 = QtWidgets.QLabel(createBOMDialog)
		self.label_5.setGeometry(QtCore.QRect(11, 61, 130, 13))
		self.label_5.setObjectName("label_5")
		self.label_6 = QtWidgets.QLabel(createBOMDialog)
		self.label_6.setGeometry(QtCore.QRect(12, 78, 130, 13))
		self.label_6.setObjectName("label_6")
		self.customerNamelbl = QtWidgets.QLabel(createBOMDialog)
		self.customerNamelbl.setGeometry(QtCore.QRect(96, 32, 151, 16))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.customerNamelbl.setFont(font)
		self.customerNamelbl.setText("")
		self.customerNamelbl.setObjectName("customerNamelbl")
		self.customerMPhonelbl = QtWidgets.QLabel(createBOMDialog)
		self.customerMPhonelbl.setGeometry(QtCore.QRect(376, 31, 121, 16))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.customerMPhonelbl.setFont(font)
		self.customerMPhonelbl.setText("")
		self.customerMPhonelbl.setObjectName("customerMPhonelbl")
		self.line_2 = QtWidgets.QFrame(createBOMDialog)
		self.line_2.setGeometry(QtCore.QRect(6, 201, 750, 3))
		self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
		self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_2.setObjectName("line_2")
		self.label_10 = QtWidgets.QLabel(createBOMDialog)
		self.label_10.setGeometry(QtCore.QRect(405, 5, 100, 13))
		self.label_10.setObjectName("label_10")
		self.maintenanceCodelbl = QtWidgets.QLabel(createBOMDialog)
		self.maintenanceCodelbl.setGeometry(QtCore.QRect(505, 5, 100, 13))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.maintenanceCodelbl.setFont(font)
		self.maintenanceCodelbl.setText("")
		self.maintenanceCodelbl.setObjectName("maintenanceCodelbl")
		self.label_12 = QtWidgets.QLabel(createBOMDialog)
		self.label_12.setGeometry(QtCore.QRect(602, 6, 47, 10))
		self.label_12.setObjectName("label_12")
		self.bomCodelbl = QtWidgets.QLabel(createBOMDialog)
		self.bomCodelbl.setGeometry(QtCore.QRect(650, 2, 100, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.bomCodelbl.setFont(font)
		self.bomCodelbl.setText("")
		self.bomCodelbl.setObjectName("bomCodelbl")
		self.label_14 = QtWidgets.QLabel(createBOMDialog)
		self.label_14.setGeometry(QtCore.QRect(524, 30, 120, 13))
		self.label_14.setObjectName("label_14")
		self.label_15 = QtWidgets.QLabel(createBOMDialog)
		self.label_15.setGeometry(QtCore.QRect(524, 60, 120, 13))
		self.label_15.setObjectName("label_15")
		self.label_16 = QtWidgets.QLabel(createBOMDialog)
		self.label_16.setGeometry(QtCore.QRect(524, 90, 100, 13))
		self.label_16.setObjectName("label_16")
		self.totalRMCled = QtWidgets.QLineEdit(createBOMDialog)
		self.totalRMCled.setEnabled(False)
		self.totalRMCled.setGeometry(QtCore.QRect(653, 27, 100, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.totalRMCled.setFont(font)
		self.totalRMCled.setStyleSheet("color: rgb(255, 0, 0);")
		self.totalRMCled.setAlignment(QtCore.Qt.AlignCenter)
		self.totalRMCled.setObjectName("totalRMCled")
		self.totalSPCled = QtWidgets.QLineEdit(createBOMDialog)
		self.totalSPCled.setEnabled(False)
		self.totalSPCled.setGeometry(QtCore.QRect(653, 55, 100, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.totalSPCled.setFont(font)
		self.totalSPCled.setStyleSheet("color: rgb(255, 0, 0);")
		self.totalSPCled.setAlignment(QtCore.Qt.AlignCenter)
		self.totalSPCled.setObjectName("totalSPCled")
		self.totalRMSPCled = QtWidgets.QLineEdit(createBOMDialog)
		self.totalRMSPCled.setEnabled(False)
		self.totalRMSPCled.setGeometry(QtCore.QRect(653, 87, 100, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.totalRMSPCled.setFont(font)
		self.totalRMSPCled.setStyleSheet("color: rgb(255, 0, 0);")
		self.totalRMSPCled.setAlignment(QtCore.Qt.AlignCenter)
		self.totalRMSPCled.setObjectName("totalRMSPCled")
		self.line_8 = QtWidgets.QFrame(createBOMDialog)
		self.line_8.setGeometry(QtCore.QRect(510, 36, 3, 150))
		self.line_8.setFrameShape(QtWidgets.QFrame.VLine)
		self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_8.setObjectName("line_8")
		self.line_3 = QtWidgets.QFrame(createBOMDialog)
		self.line_3.setGeometry(QtCore.QRect(11, 50, 490, 3))
		self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
		self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_3.setObjectName("line_3")
		self.productMaintled = QtWidgets.QLineEdit(createBOMDialog)
		self.productMaintled.setGeometry(QtCore.QRect(140, 59, 201, 20))
		self.productMaintled.setObjectName("productMaintled")
		self.maintdesled = QtWidgets.QTextEdit(createBOMDialog)
		self.maintdesled.setGeometry(QtCore.QRect(143, 86, 291, 80))
		self.maintdesled.setObjectName("maintdesled")
		self.bomgroupbox = QtWidgets.QGroupBox(createBOMDialog)
		self.bomgroupbox.setGeometry(QtCore.QRect(8, 211, 750, 290))
		self.bomgroupbox.setTitle("")
		self.bomgroupbox.setObjectName("bomgroupbox")
		self.savebtn = QtWidgets.QPushButton(self.bomgroupbox)
		self.savebtn.setGeometry(QtCore.QRect(7, 179, 90, 40))
		self.savebtn.setObjectName("savebtn")
		self.laborCostled = QtWidgets.QLineEdit(self.bomgroupbox)
		self.laborCostled.setGeometry(QtCore.QRect(645, 29, 100, 20))
		self.laborCostled.setAlignment(QtCore.Qt.AlignCenter)
		self.laborCostled.setObjectName("laborCostled")
		self.otherCostlbl = QtWidgets.QLineEdit(self.bomgroupbox)
		self.otherCostlbl.setGeometry(QtCore.QRect(645, 83, 100, 20))
		self.otherCostlbl.setAlignment(QtCore.Qt.AlignCenter)
		self.otherCostlbl.setObjectName("otherCostlbl")
		self.label_19 = QtWidgets.QLabel(self.bomgroupbox)
		self.label_19.setGeometry(QtCore.QRect(665, 189, 60, 13))
		self.label_19.setObjectName("label_19")
		self.addNewRMbtn = QtWidgets.QPushButton(self.bomgroupbox)
		self.addNewRMbtn.setGeometry(QtCore.QRect(5, 15, 100, 40))
		self.addNewRMbtn.setObjectName("addNewRMbtn")
		self.label_18 = QtWidgets.QLabel(self.bomgroupbox)
		self.label_18.setGeometry(QtCore.QRect(665, 63, 60, 13))
		self.label_18.setObjectName("label_18")
		self.totalCostled = QtWidgets.QLineEdit(self.bomgroupbox)
		self.totalCostled.setEnabled(False)
		self.totalCostled.setGeometry(QtCore.QRect(645, 209, 100, 20))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.totalCostled.setFont(font)
		self.totalCostled.setStyleSheet("color: rgb(255, 0, 0);")
		self.totalCostled.setAlignment(QtCore.Qt.AlignCenter)
		self.totalCostled.setObjectName("totalCostled")
		self.line_7 = QtWidgets.QFrame(self.bomgroupbox)
		self.line_7.setGeometry(QtCore.QRect(106, 12, 10, 280))
		self.line_7.setFrameShape(QtWidgets.QFrame.VLine)
		self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_7.setObjectName("line_7")
		self.label_17 = QtWidgets.QLabel(self.bomgroupbox)
		self.label_17.setGeometry(QtCore.QRect(666, 9, 60, 13))
		self.label_17.setObjectName("label_17")
		self.closebtn = QtWidgets.QPushButton(self.bomgroupbox)
		self.closebtn.setGeometry(QtCore.QRect(7, 239, 90, 40))
		self.closebtn.clicked.connect(self.close)
		self.closebtn.setObjectName("closebtn")
		self.calcfinbtn = QtWidgets.QPushButton(self.bomgroupbox)
		self.calcfinbtn.setGeometry(QtCore.QRect(654, 126, 80, 40))
		self.calcfinbtn.setObjectName("calcfinbtn")
		self.addNewSPbtn = QtWidgets.QPushButton(self.bomgroupbox)
		self.addNewSPbtn.setGeometry(QtCore.QRect(5, 69, 100, 40))
		self.addNewSPbtn.setObjectName("addNewSPbtn")
		self.line_9 = QtWidgets.QFrame(self.bomgroupbox)
		self.line_9.setGeometry(QtCore.QRect(637, 8, 3, 280))
		self.line_9.setFrameShape(QtWidgets.QFrame.VLine)
		self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_9.setObjectName("line_9")
		self.tableView = QtWidgets.QTableView(self.bomgroupbox)
		self.tableView.setGeometry(QtCore.QRect(119, 15, 510, 270))
		self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
		self.tableView.setTabKeyNavigation(False)
		self.tableView.setProperty("showDropIndicator", False)
		self.tableView.setDragDropOverwriteMode(False)
		self.tableView.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
		self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
		self.tableView.setObjectName("tableView")
		self.tableData = BomItemTableModel()
		self.tableView.setModel(self.tableData)
		self.tableView.setColumnWidth(1, 210)
		self.tableView.setColumnWidth(2, 80)
		self.tableView.setColumnWidth(3, 40)
		self.tableView.setColumnWidth(4, 60)
		self.calcinibtn = QtWidgets.QPushButton(createBOMDialog)
		self.calcinibtn.setGeometry(QtCore.QRect(668, 165, 90, 30))
		self.calcinibtn.setStyleSheet("color: rgb(255, 0, 0);")
		self.calcinibtn.setObjectName("calcinibtn")
		self.savereqdatabtn = QtWidgets.QPushButton(createBOMDialog)
		self.savereqdatabtn.setGeometry(QtCore.QRect(346, 171, 160, 23))
		self.savereqdatabtn.setObjectName("savereqdatabtn")
		self.label.raise_()
		self.loggedUserlbl.raise_()
		self.line.raise_()
		self.label_3.raise_()
		self.label_4.raise_()
		self.label_5.raise_()
		self.label_6.raise_()
		self.customerNamelbl.raise_()
		self.customerMPhonelbl.raise_()
		self.line_2.raise_()
		self.label_10.raise_()
		self.maintenanceCodelbl.raise_()
		self.label_12.raise_()
		self.bomCodelbl.raise_()
		self.label_14.raise_()
		self.label_15.raise_()
		self.label_16.raise_()
		self.totalRMCled.raise_()
		self.totalSPCled.raise_()
		self.totalRMSPCled.raise_()
		self.line_8.raise_()
		self.line_3.raise_()
		self.productMaintled.raise_()
		self.maintdesled.raise_()
		self.bomgroupbox.raise_()
		self.calcinibtn.raise_()
		self.addNewRMbtn.raise_()
		self.addNewSPbtn.raise_()
		self.calcinibtn.raise_()
		self.bomgroupbox.setEnabled(False)
		self.calcinibtn.setEnabled(False)
		# set Maintenance Data
		self.loggedUserlbl.setText(getLoginDataPKL()['name'])
		self.maintenanceCodelbl.setText(self.mainte.m_code)
		if self.mainte.billOfMaterial == None:
			self.bomCodelbl.setText(BOMControl.BOMCode())
		# else:
		# self.bomCodelbl.setText(self.createBOM.gen_code)
		self.customerNamelbl.setText(self.mainte.customers.name)
		self.customerMPhonelbl.setText(self.mainte.customers.mobile_number)
		if not self.mainte.product_of_maintenance == None:
			self.productMaintled.setText(self.mainte.product_of_maintenance)
			self.productMaintled.setEnabled(False)
			if not self.mainte.maintenance_description == None:
				self.maintdesled.setText(self.mainte.maintenance_description)
				self.maintdesled.setEnabled(False)
			# self.createBOMFun()
			self.bomgroupbox.setEnabled(True)
			self.calcinibtn.setEnabled(True)
		else:
			self.setRequData()
		self.savereqdatabtn.raise_()
		self.savereqdatabtn.clicked.connect(self.setRequData)
		self.calcinibtn.clicked.connect(self.refresheddata)
		self.addNewRMbtn.clicked.connect(self.addRMAction)
		self.addNewSPbtn.clicked.connect(self.addSpAction)
		self.savebtn.clicked.connect(self.saveBOM)
		self.label_17.setVisible(False)
		self.label_18.setVisible(False)
		self.label_19.setVisible(False)
		self.laborCostled.setVisible(False)
		self.otherCostlbl.setVisible(False)
		self.calcfinbtn.setVisible(False)
		self.totalCostled.setVisible(False)
		self.line_9.setVisible(False)

		self.retranslateUi(createBOMDialog)
		QtCore.QMetaObject.connectSlotsByName(createBOMDialog)
		self.tableDataShow()
		self.lablesData()

	def retranslateUi(self, createBOMDialog):
		_translate = QtCore.QCoreApplication.translate
		createBOMDialog.setWindowTitle(_translate("createBOMDialog", "Create BOM"))
		self.label.setText(_translate("createBOMDialog", "Welcome, "))
		self.label_3.setText(_translate("createBOMDialog", "Customer Name :"))
		self.label_4.setText(_translate("createBOMDialog", "Customer Mobile Phone :"))
		self.label_5.setText(_translate("createBOMDialog", "Product for Maintenance :"))
		self.label_6.setText(_translate("createBOMDialog", "Maintenance Descreption :"))
		self.label_10.setText(_translate("createBOMDialog", "Maintenance Code :"))
		self.label_12.setText(_translate("createBOMDialog", "BOM ID :"))
		self.label_14.setText(_translate("createBOMDialog", "Total Raw Material Cost :"))
		self.label_15.setText(_translate("createBOMDialog", "Total Spare Parts Cost :"))
		self.label_16.setText(_translate("createBOMDialog", "Total RM & SP Cost :"))
		self.savebtn.setText(_translate("createBOMDialog", "Save"))
		self.label_19.setText(_translate("createBOMDialog", "Total Cost"))
		self.addNewRMbtn.setText(_translate("createBOMDialog", "Add Raw Material"))
		self.label_18.setText(_translate("createBOMDialog", "Other Cost"))
		self.label_17.setText(_translate("createBOMDialog", "Labor Cost"))
		self.closebtn.setText(_translate("createBOMDialog", "Close"))
		self.calcfinbtn.setText(_translate("createBOMDialog", "Add Cost  \n"
															  " Re-Calculate"))
		self.addNewSPbtn.setText(_translate("createBOMDialog", "Add Spare Part"))
		self.calcinibtn.setText(_translate("createBOMDialog", "Refresh"))
		self.savereqdatabtn.setText(_translate("createBOMDialog", "Save Product & Descreption"))

	def createBOMFun(self):
		if select_bill_of_material_for_maintenance(self.mainte.id):
			bom = select_bill_of_material_for_maintenance(self.mainte.id)
		else:
			bom = creatBOMWithNewMAint(self.mainte.id)
		return bom

	def setRequData(self):
		if self.productMaintled.text() == '' or self.maintdesled.toPlainText() == '':
			QMessageBox.warning(QMessageBox(), "Oop's", 'Product and Description is required',
								QMessageBox.Ok)
		else:
			# maint = self.mainte
			maint_id = self.mainte.id
			update_maintenance_product(self.mainte.id
									   , self.productMaintled.text()
									   , self.maintdesled.toPlainText())
			self.createBOMFun()
			self.bomgroupbox.setEnabled(True)
			self.calcinibtn.setEnabled(True)
			self.productMaintled.setEnabled(False)
			self.maintdesled.setEnabled(False)
			self.savereqdatabtn.setEnabled(False)

	def tableDataShow(self):
		if select_bill_of_material_for_maintenance(self.mainte.id):
			bom = select_bill_of_material_for_maintenance(self.mainte.id)
			for idx, val in enumerate(getAllItemForBOM(bom.id)):
				self.tableData.addItems(BillOfMaterialItem(getAllItemForBOM(bom.id)[
															   idx].raw_material_id
														   , getAllItemForBOM(bom.id)[idx].spare_part_id
														   , None, getAllItemForBOM(bom.id)[idx].cost_of_material,
														   getAllItemForBOM(bom.id)[idx].qty_of_material,
														   getAllItemForBOM(bom.id)[idx].gen_code))

	def contextMenuEvent(self, event):
		self.menu = QtWidgets.QMenu(self)
		renameAction = QtWidgets.QAction('Delete', self)
		renameAction.triggered.connect(self.renameSlot)
		self.menu.addAction(renameAction)
		# add other required actions
		self.menu.popup(QtGui.QCursor.pos())

	def renameSlot(self):
		indexes = self.tableView.selectionModel().selectedRows(0)
		for ind in sorted(indexes):
			bomitem = select_bill_of_material_item_by_code(ind.data())
			if bomitem.raw_material_id != None:
				mat = select_row_material_by_id(bomitem.raw_material_id)
				matname = mat.name
				matcode = mat.code
				mattype = 'Raw Material'
			if bomitem.spare_part_id != None:
				mat = select_spare_parts_by_id(bomitem.spare_part_id)
				matname = mat.name
				matcode = mat.gen_code
				mattype = 'Spare Parts'
		replay = QMessageBox.warning(QMessageBox(), "Oop's",
									 'You want delete\n {} : '.format(mattype) + '{}'.format(matcode) + ' - {}'.format(
										 matname) + '\n Are you sure?',
									 QMessageBox.Yes | QMessageBox.Cancel)
		if replay == QMessageBox.Yes:
			delete_bill_of_material_item(bomitem.id)

	# get the selected cell and perform renaming
	def refresheddata(self):
		bom = select_bill_of_material_for_maintenance(self.mainte.id)
		self.tableData = BomItemTableModel()
		self.tableView.setModel(self.tableData)
		self.tableDataShow()
		self.lablesData()

	def lablesData(self):
		if select_bill_of_material_for_maintenance(self.mainte.id):
			bom = select_bill_of_material_for_maintenance(self.mainte.id)
			if claculateBOMItemRMCost(bom.id) == 0:
				rwcost = 0
			else:
				rwcost = claculateBOMItemRMCost(bom.id)
			if claculateBOMItemSPCost(bom.id) == 0:
				spcost = 0
			else:
				spcost = claculateBOMItemSPCost(bom.id)
			self.totalRMCled.setText(str(rwcost))
			self.totalSPCled.setText(str(spcost))
			self.totalRMSPCled.setText(str(rwcost + spcost))

	def addRMAction(self):
		bomo = select_bill_of_material_for_maintenance(self.mainte.id)
		from uiview.ui_addRMBOMItem import Ui_addRMBOMItemDialog
		self.addrmdiloag = Ui_addRMBOMItemDialog(bomo)
		self.addrmdiloag.exec_()

	def addSpAction(self):
		bomo = select_bill_of_material_for_maintenance(self.mainte.id)
		from uiview.ui_addSPBOMItem import Ui_addSPBOMItemDialog
		self.addspdiloag = Ui_addSPBOMItemDialog(bomo)
		self.addspdiloag.exec_()

	def saveBOM(self):
		if select_bill_of_material_for_maintenance(self.mainte.id):
			bom = select_bill_of_material_for_maintenance(self.mainte.id)
			rwmatcost = claculateBOMItemRMCost(bom.id)
			spmatcost = claculateBOMItemSPCost(bom.id)
			mattotalcost = rwmatcost + spmatcost
			update_bill_of_material(bom.id, spmatcost, rwmatcost, mattotalcost)
			self.saveMainte()

	def saveMainte(self):
		totalCost = self.totalRMSPCled.text()
		update_maintenance_from_BOM(
			self.mainte.id
			, totalCost
			, timestampstr
		)
class Ui_maintenanceDetailsDialog(QDialog):
	def __init__(self, mainte):
		super(Ui_maintenanceDetailsDialog, self).__init__()
		self.mainte = mainte
		self.setupUi(self)

	def setupUi(self, maintenanceDetailsDialog):
		self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowCloseButtonHint)

		maintenanceDetailsDialog.setObjectName("maintenanceDetailsDialog")
		maintenanceDetailsDialog.resize(696, 588)
		self.label = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label.setGeometry(QtCore.QRect(8, 5, 50, 13))
		self.label.setObjectName("label")
		self.loggeduserlbl = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.loggeduserlbl.setGeometry(QtCore.QRect(58, 5, 201, 16))
		font = QtGui.QFont()
		font.setBold(True)
		font.setWeight(75)
		self.loggeduserlbl.setFont(font)
		self.loggeduserlbl.setText("")
		self.loggeduserlbl.setObjectName("loggeduserlbl")
		self.loggeduserlbl.setText(getLoginDataPKL()['name'])
		self.label_3 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_3.setGeometry(QtCore.QRect(10, 33, 90, 13))
		self.label_3.setObjectName("label_3")
		self.label_4 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_4.setGeometry(QtCore.QRect(12, 60, 130, 13))
		self.label_4.setObjectName("label_4")
		self.label_5 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_5.setGeometry(QtCore.QRect(10, 96, 120, 20))
		self.label_5.setObjectName("label_5")
		self.label_6 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_6.setGeometry(QtCore.QRect(350, 60, 60, 13))
		self.label_6.setObjectName("label_6")
		self.label_7 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_7.setGeometry(QtCore.QRect(350, 34, 100, 13))
		self.label_7.setObjectName("label_7")
		self.line = QtWidgets.QFrame(maintenanceDetailsDialog)
		self.line.setGeometry(QtCore.QRect(7, 25, 680, 3))
		self.line.setFrameShape(QtWidgets.QFrame.HLine)
		self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line.setObjectName("line")
		self.customerNamelbl = QtWidgets.QLineEdit(maintenanceDetailsDialog)
		self.customerNamelbl.setEnabled(False)
		self.customerNamelbl.setGeometry(QtCore.QRect(96, 31, 240, 20))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.customerNamelbl.setFont(font)
		self.customerNamelbl.setStyleSheet("color: rgb(255, 0, 0);")
		self.customerNamelbl.setObjectName("customerNamelbl")
		self.maintenanceCodelbl = QtWidgets.QLineEdit(maintenanceDetailsDialog)
		self.maintenanceCodelbl.setEnabled(False)
		self.maintenanceCodelbl.setGeometry(QtCore.QRect(449, 31, 160, 20))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.maintenanceCodelbl.setFont(font)
		self.maintenanceCodelbl.setStyleSheet("color: rgb(255, 0, 0);")
		self.maintenanceCodelbl.setObjectName("maintenanceCodelbl")
		self.maintenanceProductlbl = QtWidgets.QLineEdit(maintenanceDetailsDialog)
		self.maintenanceProductlbl.setEnabled(False)
		self.maintenanceProductlbl.setGeometry(QtCore.QRect(133, 92, 290, 30))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.maintenanceProductlbl.setFont(font)
		self.maintenanceProductlbl.setObjectName("maintenanceProductlbl")
		self.bomCodelbl = QtWidgets.QLineEdit(maintenanceDetailsDialog)
		self.bomCodelbl.setEnabled(False)
		self.bomCodelbl.setGeometry(QtCore.QRect(409, 57, 170, 20))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.bomCodelbl.setFont(font)
		self.bomCodelbl.setStyleSheet("color: rgb(255, 0, 0);")
		self.bomCodelbl.setObjectName("bomCodelbl")
		self.customerMobilelbl = QtWidgets.QLineEdit(maintenanceDetailsDialog)
		self.customerMobilelbl.setEnabled(False)
		self.customerMobilelbl.setGeometry(QtCore.QRect(144, 57, 190, 20))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.customerMobilelbl.setFont(font)
		self.customerMobilelbl.setStyleSheet("color: rgb(255, 0, 0);")
		self.customerMobilelbl.setObjectName("customerMobilelbl")
		self.line_2 = QtWidgets.QFrame(maintenanceDetailsDialog)
		self.line_2.setGeometry(QtCore.QRect(7, 82, 680, 3))
		self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
		self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_2.setObjectName("line_2")
		self.line_3 = QtWidgets.QFrame(maintenanceDetailsDialog)
		self.line_3.setGeometry(QtCore.QRect(344, 30, 3, 50))
		self.line_3.setFrameShape(QtWidgets.QFrame.VLine)
		self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_3.setObjectName("line_3")
		self.label_11 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_11.setGeometry(QtCore.QRect(11, 136, 130, 13))
		self.label_11.setObjectName("label_11")
		self.label_12 = QtWidgets.QLabel(maintenanceDetailsDialog)
		self.label_12.setGeometry(QtCore.QRect(10, 222, 60, 13))
		self.label_12.setObjectName("label_12")
		self.maintenanceDescriplbl = QtWidgets.QTextEdit(maintenanceDetailsDialog)
		self.maintenanceDescriplbl.setEnabled(False)
		self.maintenanceDescriplbl.setGeometry(QtCore.QRect(141, 132, 380, 80))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.maintenanceDescriplbl.setFont(font)
		self.maintenanceDescriplbl.setObjectName("maintenanceDescriplbl")
		self.tableView = QtWidgets.QTableView(maintenanceDetailsDialog)
		self.tableView.setEnabled(False)
		self.tableView.setGeometry(QtCore.QRect(71, 221, 520, 360))
		self.tableView.setObjectName("tableView")
		self.closebtn = QtWidgets.QPushButton(maintenanceDetailsDialog)
		self.closebtn.setGeometry(QtCore.QRect(609, 536, 80, 40))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.closebtn.setFont(font)
		self.closebtn.setObjectName("closebtn")
		self.editbtn = QtWidgets.QPushButton(maintenanceDetailsDialog)
		self.editbtn.setGeometry(QtCore.QRect(609, 483, 80, 40))
		font = QtGui.QFont()
		font.setPointSize(9)
		font.setBold(True)
		font.setWeight(75)
		self.editbtn.setFont(font)
		self.editbtn.setObjectName("editbtn")
		self.line_4 = QtWidgets.QFrame(maintenanceDetailsDialog)
		self.line_4.setGeometry(QtCore.QRect(600, 89, 3, 490))
		self.line_4.setFrameShape(QtWidgets.QFrame.VLine)
		self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
		self.line_4.setObjectName("line_4")
		self.retranslateUi(maintenanceDetailsDialog)
		QtCore.QMetaObject.connectSlotsByName(maintenanceDetailsDialog)
		self.maintedata()
		self.editbtn.clicked.connect(self.openEdit)
		self.closebtn.clicked.connect(self.close)
		# role handel
		role = getLoginDataPKL()['role']
		if int(role) == 1 or int(role) == 2:
			# self.
			self.editbtn.setEnabled(False)

	def retranslateUi(self, maintenanceDetailsDialog):
		_translate = QtCore.QCoreApplication.translate
		maintenanceDetailsDialog.setWindowTitle(_translate("maintenanceDetailsDialog", "Maintenance Details Dialog"))
		self.label.setText(_translate("maintenanceDetailsDialog", "Welcome, "))
		self.label_3.setText(_translate("maintenanceDetailsDialog", "Customer Name :"))
		self.label_4.setText(_translate("maintenanceDetailsDialog", "Customer Mobile Number :"))
		self.label_5.setText(_translate("maintenanceDetailsDialog", "Product of Maintenance :"))
		self.label_6.setText(_translate("maintenanceDetailsDialog", "BOM Code :"))
		self.label_7.setText(_translate("maintenanceDetailsDialog", "Maintenance Code :"))
		self.label_11.setText(_translate("maintenanceDetailsDialog", "Maintenance descreption :"))
		self.label_12.setText(_translate("maintenanceDetailsDialog", "BOM Table :"))
		self.closebtn.setText(_translate("maintenanceDetailsDialog", "Close"))
		self.editbtn.setText(_translate("maintenanceDetailsDialog", "Edit"))

	def maintedata(self):
		bom = select_bill_of_material_for_maintenance(self.mainte.id)
		self.maintenanceCodelbl.setText(self.mainte.m_code)
		self.bomCodelbl.setText(bom.gen_code)
		self.customerNamelbl.setText(self.mainte.customers.name)
		self.customerMobilelbl.setText(self.mainte.customers.mobile_number)
		self.maintenanceProductlbl.setText(self.mainte.product_of_maintenance)
		self.maintenanceDescriplbl.setText(self.mainte.maintenance_description)
		self.tableDataShow()

	def tableDataShow(self):
		self.tableData = BomItemTableModel()
		self.tableView.setModel(self.tableData)
		bom = select_bill_of_material_for_maintenance(self.mainte.id)
		for idx, val in enumerate(getAllItemForBOM(bom.id)):
			self.tableData.addItems(BillOfMaterialItem(getAllItemForBOM(bom.id)[
														   idx].raw_material_id
													   , getAllItemForBOM(bom.id)[
														   idx].spare_part_id
													   , None, getAllItemForBOM(bom.id)[
														   idx].cost_of_material,
													   getAllItemForBOM(bom.id)[
														   idx].qty_of_material,
													   getAllItemForBOM(bom.id)[idx].gen_code))

	def openEdit(self):
		from uiview.ui_editBOM import Ui_editBOMDialog
		self.ed = Ui_editBOMDialog(self.mainte)
		self.ed.exec_()