コード例 #1
0
    def dropdiam(self):
        conn = connectSQLite()
        cur = conn.cursor()
        try:
            ###################this is different from filled ############
            if (self.LE_Diam is not None or self.LE_Diam != ""):
                self.LE_Diam.clear()
                #############
            description = self.LE_DescMat.text()

            cur.execute(
                "SELECT Diam FROM Mat WHERE Name = ? ORDER BY Diam ASC",
                (description, ))
            desc = cur.fetchall()

            listdesc = []
            for dsc in desc:
                for d in dsc:
                    listdesc.append(str(d))

            cmpt = QCompleter(listdesc)
            cmpt.setCaseSensitivity(0)
            cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
            self.LE_Diam.setCompleter(cmpt)

            self.LE_Diam.editingFinished.connect(self.remplircodemat)

        except:

            QMessageBox.about(
                self, "Warning",
                "Error. Not matching material designation. Please select a designation proposed in the dropdown list. "
            )

        closeSQLite(conn)
コード例 #2
0
    def populerdescdiam(
        self
    ):  # rempli designation et diametre du materiel lorsque code est entree
        conn = connectSQLite()
        cur = conn.cursor()
        try:

            self.LE_DescMat.clear()
            self.LE_Diam.clear()
            code = self.LE_Mat.text()

            cur.execute("SELECT Name, Diam FROM Mat WHERE Number = ?",
                        (code, ))
            Code = cur.fetchone()
            desc = str(Code[0])
            diam = str(Code[1])

            self.LE_DescMat.setText(desc)
            self.LE_Diam.setText(diam)

        except:

            QMessageBox.about(
                self, "Warning",
                "Error. Could not find matching Designation and diameter for this material code. Please try another one."
            )
        closeSQLite(conn)
コード例 #3
0
    def populerdescdiam(self):
        conn = connectSQLite()
        cur = conn.cursor()
        try:

            self.LE_DescMat.clear()
            ### If it's not none or not blank then clear it
            if (self.LE_Diam.text() != "" and self.LE_Diam.text() is not None):
                self.LE_Diam.clear()
            ###Above is different from VueNewPart###
            code = self.LE_Mat.text()

            cur.execute("SELECT Name, Diam FROM Mat WHERE Number = ?",
                        (code, ))
            Code = cur.fetchone()
            desc = str(Code[0])
            diam = str(Code[1])

            self.LE_DescMat.setText(desc)
            self.LE_Diam.setText(diam)

        except:

            QMessageBox.about(
                self, "Warning",
                "Error. Could not find matching Designation and diameter for this material code. Please try another one."
            )

        closeSQLite(conn)
コード例 #4
0
    def remplircodemat(
            self
    ):  # remplie code mat apres que la designation + diam soit rentrer
        conn = connectSQLite()
        cur = conn.cursor()

        description = self.LE_DescMat.text()
        diam = self.LE_Diam.text()
        # print("description: ", description)
        # print("diam: ", diam)

        cur.execute("SELECT Number FROM Mat WHERE Name = ? AND Diam = ?",
                    (description, diam))
        Code = cur.fetchone()
        code = str(Code[0])

        self.LE_Mat.setText(code)

        ####I removed this popup. The systemhook will catch the error and print to console##########
        # QMessageBox.about(self, "Warning", "Error. To select a material code from its description and diameter you have to select one option of the dropdown list provided.")

        #Point user to field in question if it is blank
        if (self.LE_DescMat.text() is None or self.LE_DescMat.text() == ""):
            self.LE_DescMat.setFocus()
        if (self.LE_Mat.text() is None or self.LE_Mat.text() == ""):
            self.LE_Mat.setFocus()

        closeSQLite(conn)
コード例 #5
0
 def UpdateTableOperation(self):
     # conn = MSACES.CES.connectSQLite()
     conn = connectSQLite()
     cur = conn.cursor()
     a = self.TableOperation.currentRow()
     a = int(a)
     
     number = self.TableOperation.item(a,0).text()
     
     b = self.TableOperation.currentColumn()
     b = int(b)
     
     if b == 0 :   
         QMessageBox.warning(self, "Warning", "This field is protected, your modification will not be saved. Please choose the -add operation- option to create a new operation")
         return
     elif b == 1 :
         tabcolumn = "Name"   
     elif b == 2 :
         tabcolumn = "Min"        
     
     toedit = self.TableOperation.item(a,b).text()
     
     cur.execute("UPDATE Op SET %s = ? WHERE Number = ?" %tabcolumn,(toedit,number) )
     conn.commit() 
     
     QMessageBox.about(self, "Confimation", "Operation updated.")
     # MSACES.CES.closeSQLite(conn)
     closeSQLite(conn)
コード例 #6
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def UpdateTable(self):

        a = self.tableMM.currentRow()
        a = int(a)

        number = self.tableMM.item(a, 0).text()

        b = self.tableMM.currentColumn()
        b = int(b)

        if b == 0:
            QMessageBox.warning(
                self, "Warning",
                "This field is protected, your modification will not be saved. Please choose the -add raw material- option to create a new number"
            )
            return
        elif b == 1:
            tabcolumn = "Diam"
        elif b == 2:
            tabcolumn = "Cost"
        elif b == 3:
            tabcolumn = "Spec"
        elif b == 4:
            tabcolumn = "Type"
            toedit = self.tableMM.item(a, b).text()
            if toedit != "Steel" and toedit != "NiBase" and toedit != "Alum" and toedit != "Titan":
                QMessageBox.warning(
                    self, "Warning",
                    "Wrong input, this field must be one of the following type : Steel, NiBase, Alum or Titan"
                )
                return
        elif b == 5:
            tabcolumn = "Form"
            toedit = self.tableMM.item(a, b).text()
            if toedit != "Bar" and toedit != "Coil" and toedit != "Hex":
                QMessageBox.warning(
                    self, "Warning",
                    "Wrong input, this field must be one of the following form : Bar, Coil or Hex"
                )
                return
        elif b == 6:
            tabcolumn = "Groupe"
            toedit = self.tableMM.item(a, b).text()
            if toedit != "B" and toedit != "C" and toedit != "D" and toedit != "E" and toedit != "F":
                QMessageBox.warning(
                    self, "Warning",
                    "Wrong input, this field must be one of the following form : B, C, D, E or F"
                )
                return

        toedit = self.tableMM.item(a, b).text()
        conn = connectSQLite()
        cur = conn.cursor()
        cur.execute("UPDATE Mat SET %s = ? WHERE Number = ?" % tabcolumn,
                    (toedit, number))
        conn.commit()

        QMessageBox.about(self, "Confirmation", "Update done")

        closeSQLite(conn)
コード例 #7
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def __init__(self, parent):
        super(VueMaterialManagement, self).__init__(parent)
        self.setupUi(self)
        self.PB_SetAllCost.clicked.connect(self.setall)
        self.PB_SetFromTo.clicked.connect(self.setfromto)
        self.PB_EnterMat.clicked.connect(self.remplirmat)
        self.PB_NewRawMat.clicked.connect(self.addrawmat)
        self.PB_ShowAll.clicked.connect(self.showAllMat)

        conn = connectSQLite()
        cur = conn.cursor()
        cur.execute("SELECT DISTINCT Name FROM Mat ORDER BY Name ASC")
        name = cur.fetchall()

        listnum = []
        for prt in name:
            for p in prt:
                listnum.append(str(p))

        cmpt = QCompleter(listnum)
        cmpt.setCaseSensitivity(0)
        cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
        self.LE_MatName.setCompleter(cmpt)

        cur.execute("SELECT MAX(Number) FROM Mat")
        number = cur.fetchone()

        nextnumber = str(number[0] + 1)

        self.LE_RawNumber.setText(nextnumber)
        closeSQLite(conn)
コード例 #8
0
    def setCompleters(self):

        conn = connectSQLite()
        cur = conn.cursor()

        ####
        try:
            cur.execute("SELECT Number FROM Op ORDER BY Number ASC")
            part = cur.fetchall()

            listnum = []
            for prt in part:
                for p in prt:
                    listnum.append(str(p))

            cmpt = QCompleter(listnum)
            cmpt.setCaseSensitivity(0)
            cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
            self.LE_CodeOp.setCompleter(cmpt)
        except Exception as ex:
            printError(ex)

        try:
            cur.execute("SELECT NAME FROM OP ORDER BY NAME ASC")
            desc = cur.fetchall()

            listdesc = []
            for dsc in desc:
                for d in dsc:
                    listdesc.append(str(d))

            cmpt = QCompleter(listdesc)
            cmpt.setCaseSensitivity(0)
            cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
            self.LE_DescriptionOp.setCompleter(cmpt)
        except Exception as ex:
            printError(ex)
        ####
        try:
            cur.execute("SELECT DISTINCT Name FROM Mat ORDER BY Name ASC")
            descmat = cur.fetchall()

            listdescmat = []
            i = 0
            while i <= len(descmat) - 1:

                a = str(descmat[i][0])
                listdescmat.append(a)

                i = i + 1

            cmpt = QCompleter(listdescmat)
            cmpt.setCaseSensitivity(0)
            cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)

            self.LE_DescMat.setCompleter(cmpt)
        except Exception as ex:
            printError(ex)

        closeSQLite(conn)
コード例 #9
0
    def loadOperations(self, setupcost, cost):
        if (not self.ops):
            print("operations is empty")
            return

        conn = connectSQLite()
        cur = conn.cursor()
        i = 0

        # print("self.numOps: ", self.numOps)
        while i < self.numOps and self.numOps != 0:  #-2 because Op1 isn't an op
            # print("Loading operation tab", i)
            # print("%s : self.ops[i]: %s "%(i, self.ops[i]))

            if self.ops[i] == '0' or self.ops[i] == '' or self.ops[
                    i] == None or self.ops[i] == '100':
                # print("i: ", i)
                # print("breaking: ", self.ops[i], i)
                break

            self.listop.append(self.ops[i])
            #            p = int(i)

            a2 = str(self.ops[i])
            # print("a2: ", a2)
            if (int(a2) > 1100):
                break
            a2 = QtWidgets.QTableWidgetItem(a2)
            self.TableOp.setItem(i, 0, a2)

            pnum = str(self.ops[i])

            #            if (int(pnum) > 1100): #max in Synoptic is 1099 PN00080067-001 CNR Drill
            #                break
            #            print("pnum: ", pnum)

            cur.execute("SELECT Name FROM Op WHERE Number = ?", (pnum, ))
            Name = cur.fetchone()
            # print("Name: ", Name)

            a3 = str(Name[0])
            a3 = QtWidgets.QTableWidgetItem(a3)
            self.TableOp.setItem(i, 1, a3)

            cur.execute(
                "SELECT %s,%s FROM Op WHERE Number = ?" % (setupcost, cost),
                (pnum, ))
            Cout = cur.fetchone()

            a4 = str(Cout[0])
            a4 = QtWidgets.QTableWidgetItem(a4)
            self.TableOp.setItem(i, 2, a4)
            a5 = str(Cout[1])
            a5 = QtWidgets.QTableWidgetItem(a5)
            self.TableOp.setItem(i, 3, a5)

            i = i + 1

        closeSQLite(conn)
コード例 #10
0
ファイル: test_Quote.py プロジェクト: gdoshi88/GD-CES
    def test_getNumberOps(self):
        self.form.partnumber = "BACB30PN10-17"
        conn = connectSQLite()
        cur = conn.cursor()

        self.form.getNumberOps(cur)
        closeSQLite(conn)
        self.assertEqual(17, self.form.synopticNumOps)
コード例 #11
0
    def __init__(self, parent):
        super(VueOpManagement, self).__init__(parent)
        self.setupUi(self) 
        # conn = MSACES.CES.connectSQLite()
        conn = connectSQLite()
        cur = conn.cursor()         
        self.LE_ChooseOP.returnPressed.connect(self.remplirtable)
        ############CHANGED ?? ##########
        # self.LE_ChooseOP.currentIndexChanged.connect(self.remplirtable)

        self.PB_ValidateNewOp.clicked.connect(self.Addnewop)
        self.LookUpEditOp.clicked.connect(self.remplirtable)
        self.FillColumn.clicked.connect(self.fillColumn)
        self.FillRow.clicked.connect(self.fillRow)
        self.saveEdit.clicked.connect(self.saveChanges)

        self.setCompleters()

        cur.execute("SELECT MAX(Number) FROM OP")
        number = cur.fetchone()
        
        nextnumber = str(number[0]+1)
        
        self.LE_OpNumber.setText(nextnumber)

        
        

        
# Table Operation fenetre 1 
  
        cur.execute("SELECT Number, Name, Min FROM Op")
        Op = cur.fetchall()
        
        nbligne = len(Op)
        self.TableOperation.setRowCount(nbligne)
        
        n = 0
        while n <= len(Op)-1:
            
            a1 = str(Op[n][0])        
            a1 = QtWidgets.QTableWidgetItem(a1)
            self.TableOperation.setItem(n,0,a1)   
            
            a2 = str(Op[n][1])        
            a2 = QtWidgets.QTableWidgetItem(a2)
            self.TableOperation.setItem(n,1,a2)
            
            a3 = str(Op[n][2])        
            a3 = QtWidgets.QTableWidgetItem(a3)
            self.TableOperation.setItem(n,2,a3)
            
            n = n+1 
        
        self.TableOperation.cellDoubleClicked.connect(self.UpdateTableOperation)
        # MSACES.CES.closeSQLite(conn)
        closeSQLite(conn)
コード例 #12
0
ファイル: test_Quote.py プロジェクト: gdoshi88/GD-CES
    def test_findMaterialInfo(self):
        # self.form.partnumber = "BACB30PN10-17"
        self.form.partMaterial = "600"
        conn = connectSQLite()
        cur = conn.cursor()

        self.form.findMaterialInfo(cur)
        closeSQLite(conn)

        self.assertEqual("INCO718--AMS5662/C50TF13", self.form.matnamespec)
コード例 #13
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def setall(self):

        name = self.LE_MatName.text()
        cost = self.LE_SetAllCost.text()
        conn = connectSQLite()
        cur = conn.cursor()
        cur.execute("UPDATE MAT SET Cost = ? WHERE Name = ?", (cost, name))
        conn.commit()

        self.remplirmat()

        QMessageBox.about(self, "Confimation", "Cost updated")
        self.LE_SetAllCost.clear()
        closeSQLite(conn)
コード例 #14
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def remplirmat(self):

        self.tableMM.clearContents()

        name = self.LE_MatName.text()
        conn = connectSQLite()
        cur = conn.cursor()
        cur.execute("SELECT * FROM Mat WHERE Name = ? ORDER BY Diam ASC",
                    (name, ))
        Mat = list(cur)

        nbligne = len(Mat)
        self.tableMM.setRowCount(nbligne)

        n = 0
        while n <= len(Mat) - 1:

            a1 = str(Mat[n][0])
            a1 = QtWidgets.QTableWidgetItem(a1)
            self.tableMM.setItem(n, 0, a1)

            a3 = str(Mat[n][2])
            a3 = QtWidgets.QTableWidgetItem(a3)
            self.tableMM.setItem(n, 3, a3)

            a4 = str(Mat[n][3])
            a4 = QtWidgets.QTableWidgetItem(a4)
            self.tableMM.setItem(n, 4, a4)

            a5 = str(Mat[n][4])
            a5 = QtWidgets.QTableWidgetItem(a5)
            self.tableMM.setItem(n, 5, a5)

            a6 = str(Mat[n][5])
            a6 = QtWidgets.QTableWidgetItem(a6)
            self.tableMM.setItem(n, 6, a6)

            a7 = str(Mat[n][6])
            a7 = QtWidgets.QTableWidgetItem(a7)
            self.tableMM.setItem(n, 1, a7)

            a8 = str(Mat[n][7])
            a8 = QtWidgets.QTableWidgetItem(a8)
            self.tableMM.setItem(n, 2, a8)

            n = n + 1

        self.tableMM.cellDoubleClicked.connect(self.UpdateTable)
        closeSQLite(conn)
コード例 #15
0
ファイル: test_Quote.py プロジェクト: gdoshi88/GD-CES
    def test_findPartInfo(self):
        self.form.partnumber = "BACB30PN10-17"
        conn = connectSQLite()
        cur = conn.cursor()

        self.form.findPartInfo(cur)
        closeSQLite(conn)

        self.assertEqual("P.S", self.form.estimator)
        self.assertEqual("AP", self.form.partRev)
        self.assertEqual("12PT,FB,7185/8-18", self.form.partDesc)
        self.assertEqual("BP", self.form.partMfgSpec)
        self.assertEqual("**PASSIVATE**", self.form.partNote)
        self.assertEqual(600, self.form.partMaterial)
        self.assertEqual("09/17/2019", self.form.creationDate)
コード例 #16
0
    def setSearchPartNumberCompleter(self):
        conn = connectSQLite()
        cur = conn.cursor()

        cur.execute("SELECT PartNumber FROM Part ORDER BY PartNumber ASC")
        part = cur.fetchall()
        #        print("part lookup from search: ", part)

        listpart = []
        for prt in part:
            for p in prt:
                listpart.append(str(p))
        cmpt = QCompleter(listpart)
        cmpt.setCaseSensitivity(0)
        self.LE_SearchPartNumber.setCompleter(cmpt)
        closeSQLite(conn)
コード例 #17
0
    def PBValidateOperation(self):
        try:
            conn = connectSQLite()
            cur = conn.cursor()
            partnumber = self.LE_PartNumber.text()
            description = self.LE_Description.text()
            revision = self.LE_Revision.text()
            mfgspec = self.LE_MfgSpec.text()
            mat = self.LE_Mat.text()
            headop = self.CB_HeadOp.currentText()
            diam = self.LE_Diam.text()
            shank = self.LE_Shank.text()
            # note = self.LE_Note.text()
            #QTextEdit uses different method than QLineEdit
            note = self.LE_Note.toPlainText()
            estby = self.CB_EstBy.currentText()
            dateest = self.LE_EstDate.text()
            stud = self.stud
            nut = self.nut
            nobid = self.nobid
            slugBool = self.isOverrideSlug  #1 or 0 because sqlite doesn't have booleans
            HVBool = self.isOverrideHV  #1 or 0 because sqlite doesn't have booleans
            #QTextEdit uses different method than QLineEdit
            nobidnote = self.txtNoBid.toPlainText()

            nut = int(nut)
            stud = int(stud)
            nobid = int(nobid)

            print("")
        except Exception as ex:
            printError(ex)

        ##New- was missing in 1.7.3
        try:
            partWeight = self.LE_Diam_2.text()
            headVol = self.LE_Diam_3.text()
        except Exception as ex:
            printError(ex)

        ################
        self.updateInsertPart(cur, conn, partnumber, description, revision,
                              mfgspec, estby, dateest, mat, partWeight, diam,
                              shank, headVol, headop, note, nut, stud, nobid,
                              nobidnote, slugBool, HVBool)

        closeSQLite(conn)
コード例 #18
0
    def remplirtable(self):
        # conn = MSACES.CES.connectSQLite()
        conn = connectSQLite()
        cur = conn.cursor()

        name = self.LE_ChooseOP.text()
        # print("name: ", name)
        cur.execute("SELECT * FROM Op WHERE Name = ?",(name,))            
        EditOp = cur.fetchone()
        self.EditName.setText(name)
        # print("Edit Op: ", EditOp[0], EditOp[1],EditOp[2],EditOp[3])
        minimum = str(EditOp[2])
        op = str(EditOp[0])
        unit = str(EditOp[3])
        self.EditMin.setText(minimum)
        self.EditOp.setText(op)
        self.EditUnit.setText(unit)

        n = 0
        while n <= 10:
                
            a1 = str(EditOp[n+4])        
            a1 = QtWidgets.QTableWidgetItem(a1)
            self.TableEditOp.setItem(n,0,a1)
                
            a2 = str(EditOp[n+11+4])        
            a2 = QtWidgets.QTableWidgetItem(a2)
            self.TableEditOp.setItem(n,1,a2)
                
            a3 = str(EditOp[n+22+4])        
            a3 = QtWidgets.QTableWidgetItem(a3)
            self.TableEditOp.setItem(n,2,a3)
                
            a3 = str(EditOp[n+33+4])        
            a3 = QtWidgets.QTableWidgetItem(a3)
            self.TableEditOp.setItem(n,3,a3)
                
            a4 = str(EditOp[n+44+4])        
            a4 = QtWidgets.QTableWidgetItem(a4)
            self.TableEditOp.setItem(n,4,a4)
                  
            n = n+1 
            
        self.TableEditOp.cellDoubleClicked.connect(self.UpdateTableEditOp)
        closeSQLite(conn)
コード例 #19
0
    def remplircode(self):

        conn = connectSQLite()
        cur = conn.cursor()
        try:
            desc = self.LE_DescriptionOp.text()
            desc = str(desc)
            cur.execute("SELECT Number FROM Op WHERE NAME = ?", (desc, ))
            Code = cur.fetchone()
            code = str(Code[0])

            self.LE_CodeOp.setText(code)
        except:
            QMessageBox.about(
                self, "Warning",
                "Error. The code corrsponding to this description cannot be found. "
            )
        closeSQLite(conn)
コード例 #20
0
    def remplirdescription(self):
        conn = connectSQLite()
        cur = conn.cursor()

        try:
            code = self.LE_CodeOp.text()
            code = str(code)
            cur.execute("SELECT Name FROM Op WHERE Number = ?", (code, ))
            Desc = cur.fetchone()
            desc = str(Desc[0])

            self.LE_DescriptionOp.setText(desc)
        except:
            QMessageBox.about(
                self, "Warning",
                "Error. The description corrsponding to this operation code cannot be found. "
            )

        closeSQLite(conn)
コード例 #21
0
    def filledpw(self):
        # print("VueNewPart filledpw go")

        conn = connectSQLite()
        cur = conn.cursor()

        try:
            self.unsafe_filledpw(cur)
        except Exception as ex:
            printError(ex)
            # print("VueNewPart filledpw except")
            checkList = [self.LE_Mat, self.LE_Diam, self.LE_Shank]

            for frog in checkList:
                #Only complete this once so the focus is set to the most recent text box
                if (frog.text() is None or frog.text() == ""):
                    frog.setFocus()
                    break

        closeSQLite(conn)
コード例 #22
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def setfromto(self):

        name = self.LE_MatName.text()
        cost = self.LE_SetFromTo.text()
        diamfrom = self.LE_SetFromDiam.text()
        diamto = self.LE_SetToDiam.text()
        conn = connectSQLite()
        cur = conn.cursor()
        cur.execute(
            "UPDATE MAT SET Cost = ? WHERE Name = ? AND Diam > ? AND Diam < ?",
            (cost, name, diamfrom, diamto))
        conn.commit()

        self.remplirmat()

        QMessageBox.about(self, "Confimation", "Cost updated")

        self.LE_SetFromTo.clear()
        self.LE_SetFromDiam.clear()
        self.LE_SetToDiam.clear()
        closeSQLite(conn)
コード例 #23
0
 def UpdateTableEditOp(self):
     # conn = MSACES.CES.connectSQLite()
     conn = connectSQLite()
     cur = conn.cursor()
     name = self.LE_ChooseOP.text()
     
     a = self.TableEditOp.currentRow()
     a = int(a)
     
     num = str(a+1)
     
     if a <= 9 :
         tabcolumn = str("DG"+num)
     elif a == 10:
         tabcolumn = "SU"
            
     b = self.TableEditOp.currentColumn()
     b = int(b)
     
     if b == 0 :
         g = "B"
     elif b == 1:
         g = "C"
     elif b == 2:
         g = "D"
     elif b == 3:
         g = "E"
     elif b == 4:
         g = "F"
     
     tabcolumn = str(tabcolumn+g)
     
     toedit = self.TableEditOp.item(a,b).text()
     
     cur.execute("UPDATE Op SET %s = ? WHERE Name = ?" %tabcolumn,(toedit,name) )
     conn.commit()
     
     QMessageBox.about(self, "Confimation", "Operation updated.")
     closeSQLite(conn)
コード例 #24
0
    def setCompleters(self):
        conn = connectSQLite()
        cur = conn.cursor()
        
        #set completer for unit box on Add New Operation tab

        unitList = list()
        unitList.append('pc')
        unitList.append('lb')

        unitCmpt = QCompleter(unitList)
        unitCmpt.setCaseSensitivity(0)
        unitCmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
        # self.LE_UnitOp.setCompleter(unitCmpt)
        self.LE_UnitOp.addItem('pc')
        self.LE_UnitOp.addItem('lb')
        self.LE_UnitOp.currentIndexChanged.connect(self.setUnitMeasure)


        ###Set completer for Choose your operation on Edit Operation Cost
        cur.execute("SELECT Name FROM Op ORDER BY Name ASC")
        part = cur.fetchall()
        
        listnum = []
        for prt in part:
            for p in prt:
                listnum.append(str(p))  
                       
        cmpt = QCompleter(listnum)  
        cmpt.setCaseSensitivity(0)
        cmpt.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
        self.LE_ChooseOP.setCompleter(cmpt)


        self.EditUnit.setCompleter(unitCmpt)

        closeSQLite(conn)
コード例 #25
0
ファイル: MSACES_MM.py プロジェクト: gdoshi88/GD-CES
    def addrawmat(self):

        cur.execute("SELECT MAX(Number) FROM Mat")
        number = cur.fetchone()

        nextnumber = str(number[0] + 1)

        number = self.LE_RawNumber.text()
        if number != nextnumber:
            number = nextnumber
            QMessageBox.warning(
                self, "Warning",
                "The number of the raw material has been automaticaly set to "
                + number + ".")
        name = self.LE_RawName.text()
        spec = self.LE_RawSpec.text()
        diam = self.LE_RawDiam.text()
        cost = self.LE_RawCost.text()

        rawtype = self.CB_Type.currentIndex()
        if rawtype == 0:
            rawtype = "Steel"
        elif rawtype == 1:
            rawtype = "NiBase"
        elif rawtype == 2:
            rawtype = "Alum"
        elif rawtype == 3:
            rawtype = "Titan"
        form = self.CB_Form.currentIndex()
        if form == 0:
            form = "Bar"
        elif form == 1:
            form = "Coil"
        elif form == 2:
            form = "Hex"
        group = self.CB_Group.currentIndex()
        if group == 0:
            group = "B"
        elif group == 1:
            group = "C"
        elif group == 2:
            group = "D"
        elif group == 3:
            group = "E"
        elif group == 4:
            group = "F"

        conn = connectSQLite()
        cur = conn.cursor()
        req = "INSERT INTO Mat(Number, Name , Spec, Type, Form, Groupe, Diam, Cost) VALUES (?,?,?,?,?,?,?,?)"
        cur.execute(req,
                    (number, name, spec, rawtype, form, group, diam, cost))
        conn.commit()

        name = self.LE_RawName.clear()
        spec = self.LE_RawSpec.clear()
        diam = self.LE_RawDiam.clear()
        cost = self.LE_RawCost.clear()

        QMessageBox.about(
            self, "Confirmation",
            "Raw Material number :" + number + "has been added successfully")

        newnextnumber = int(number) + 1
        newnextnumber = str(newnextnumber)
        self.LE_RawNumber.setText(newnextnumber)
        closeSQLite(conn)
コード例 #26
0
    def Addnewop(self):
        conn = connectSQLite()
        cur = conn.cursor() 
        number = self.LE_OpNumber.text()
        name = self.LE_OpName.text()
        minimum = self.LE_OpMin.text()
        try:
            unit = self.LE_UnitOp.text()
        except:
            unit = self.LE_UnitOp.currentText()

        dg1b = self.TableNewOp.item(0,0).text()
        dg2b = self.TableNewOp.item(1,0).text()
        dg3b = self.TableNewOp.item(2,0).text()
        dg4b = self.TableNewOp.item(3,0).text()
        dg5b = self.TableNewOp.item(4,0).text()
        dg6b = self.TableNewOp.item(5,0).text()
        dg7b = self.TableNewOp.item(6,0).text()
        dg8b = self.TableNewOp.item(7,0).text()
        dg9b = self.TableNewOp.item(8,0).text()
        dg10b = self.TableNewOp.item(9,0).text()
        sub = self.TableNewOp.item(10,0).text()
        dg1c = self.TableNewOp.item(0,1).text()
        dg2c = self.TableNewOp.item(1,1).text()
        dg3c = self.TableNewOp.item(2,1).text()
        dg4c = self.TableNewOp.item(3,1).text()
        dg5c = self.TableNewOp.item(4,1).text()
        dg6c = self.TableNewOp.item(5,1).text()
        dg7c = self.TableNewOp.item(6,1).text()
        dg8c = self.TableNewOp.item(7,1).text()
        dg9c = self.TableNewOp.item(8,1).text()
        dg10c = self.TableNewOp.item(9,1).text()
        suc = self.TableNewOp.item(10,1).text()
        dg1d = self.TableNewOp.item(0,2).text()
        dg2d = self.TableNewOp.item(1,2).text()
        dg3d = self.TableNewOp.item(2,2).text()
        dg4d = self.TableNewOp.item(3,2).text()
        dg5d = self.TableNewOp.item(4,2).text()
        dg6d = self.TableNewOp.item(5,2).text()
        dg7d = self.TableNewOp.item(6,2).text()
        dg8d = self.TableNewOp.item(7,2).text()
        dg9d = self.TableNewOp.item(8,2).text()
        dg10d = self.TableNewOp.item(9,2).text()
        sud = self.TableNewOp.item(10,2).text()
        dg1e = self.TableNewOp.item(0,3).text()
        dg2e = self.TableNewOp.item(1,3).text()
        dg3e = self.TableNewOp.item(2,3).text()
        dg4e = self.TableNewOp.item(3,3).text()
        dg5e = self.TableNewOp.item(4,3).text()
        dg6e = self.TableNewOp.item(5,3).text()
        dg7e = self.TableNewOp.item(6,3).text()
        dg8e = self.TableNewOp.item(7,3).text()
        dg9e = self.TableNewOp.item(8,3).text()
        dg10e = self.TableNewOp.item(9,3).text()
        sue = self.TableNewOp.item(10,3).text()
        dg1f = self.TableNewOp.item(0,4).text()
        dg2f = self.TableNewOp.item(1,4).text()
        dg3f = self.TableNewOp.item(2,4).text()
        dg4f = self.TableNewOp.item(3,4).text()
        dg5f = self.TableNewOp.item(4,4).text()
        dg6f = self.TableNewOp.item(5,4).text()
        dg7f = self.TableNewOp.item(6,4).text()
        dg8f = self.TableNewOp.item(7,4).text()
        dg9f = self.TableNewOp.item(8,4).text()
        dg10f = self.TableNewOp.item(9,4).text()
        suf = self.TableNewOp.item(10,4).text()
          
        
        req = "INSERT INTO Op(Number, Name , Min, Unit, DG1B ,DG2B, DG3B, DG4B, DG5B, DG6B, DG7B, DG8B, DG9B, DG10B, SUB, DG1C ,DG2C, DG3C, DG4C, DG5C, DG6C, DG7C, DG8C, DG9C, DG10C, SUC, DG1D ,DG2D, DG3D, DG4D, DG5D, DG6D, DG7D, DG8D, DG9D, DG10D, SUD, DG1E ,DG2E, DG3E, DG4E, DG5E, DG6E, DG7E, DG8E, DG9E, DG10E, SUE, DG1F ,DG2F, DG3F, DG4F, DG5F, DG6F, DG7F, DG8F, DG9F, DG10F, SUF) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
        cur.execute(req, (number,name,minimum,unit,dg1b,dg2b,dg3b,dg4b,dg5b,dg6b,dg7b,dg8b,dg9b,dg10b,sub,dg1c,dg2c,dg3c,dg4c,dg5c,dg6c,dg7c,dg8c,dg9c,dg10c,suc,dg1d,dg2d,dg3d,dg4d,dg5d,dg6d,dg7d,dg8d,dg9d,dg10d,sud,dg1e,dg2e,dg3e,dg4e,dg5e,dg6e,dg7e,dg8e,dg9e,dg10e,sue,dg1f,dg2f,dg3f,dg4f,dg5f,dg6f,dg7f,dg8f,dg9f,dg10f,suf))
        conn.commit()
        
        num = str(number)
        QMessageBox.about(self, "Confimation", "The operation "+ num + " has been added successfully.")
        
        cur.execute("SELECT MAX(Number) FROM OP")
        number = cur.fetchone()
        
        nextnumber = str(number[0]+1)
        
        self.LE_OpNumber.setText(nextnumber)
        
        self.LE_OpName.clear()
        self.LE_OpMin.clear()
        self.LE_UnitOp.clear()
        
        ii = 0
        while ii <= 4 :
            iii = 0
            while iii <= 10 :
                self.TableNewOp.item(iii,ii).clear()
                iii=iii+1
            ii = ii+1
        closeSQLite(conn)
コード例 #27
0
    def __init__(self, parent, partnumber, description, revision, mfgspec,
                 estby, date, mat, headop, diam, shank, note, ops, isNut,
                 isStud, isNoBid, NoBidNote, slugBool, HVBool):
        # print("VueEditPartFilled ")
        super(VueEditPartFilled, self).__init__(parent)
        conn = connectSQLite()
        cur = conn.cursor()
        self.setupUi(self)

        ##Implement some OOP best practices:
        self.partnumber = partnumber
        self.description = description
        self.revision = revision
        self.mfgspec = mfgspec
        self.estby = estby
        self.date = date
        self.mat = mat
        self.headop = headop
        self.diam = diam
        self.shank = shank
        self.note = note
        self.ops = ops
        # print("ops: ", ops)
        # print("typeops3:", type(ops))
        self.isNut = isNut
        self.isStud = isStud
        self.isNoBid = isNoBid
        ####
        self.nut = 0  #self.nut is like self.isOverrideSlug holds 1/0 for true/false
        self.stud = 0
        self.nobid = 0
        self.numOps = 0  #default
        print("VueEditPartFilled slugBool: ", slugBool)
        print("VueEditPartFilled HVBool: ", HVBool)
        self.isOverrideSlug = slugBool
        self.isOverrideHV = HVBool

        self.setCompleters()
        self.setPressedAction()

        self.listop = list()
        e = datetime.now()
        e.strftime('%m/%d/%Y')
        self.LE_EstDate.setText(e.strftime('%m/%d/%Y'))
        self.nbligne = 0

        ##Init UI Fields
        self.LE_PartNumber.setText(partnumber)
        self.LE_Description.setText(description)
        self.LE_Revision.setText(revision)
        self.LE_MfgSpec.setText(mfgspec)
        self.CB_EstBy.setCurrentIndex(estby)
        # print("mat: ", mat)
        self.LE_Mat.setText(mat)
        self.CB_HeadOp.setCurrentIndex(headop)
        # print("headop: ", headop)

        self.LE_Diam.setText(diam)
        self.LE_Shank.setText(shank)
        self.LE_Note.setText(note)

        self.LE_NumeroOp.setText("1")  ##Initialize Operation add to row 1

        self.PB_ValidateOperation.clicked.connect(self.PBValidateOperation)
        self.PB_SaveOperation.clicked.connect(self.PBSaveProgress)

        self.PB_AddOp.clicked.connect(self.PBAddOp)
        self.PB_RemoveOp.clicked.connect(self.PBRemoveOp)
        self.TableOp.clicked.connect(self.on_click)

        self.isNut = isNut
        self.isStud = isStud
        self.isNoBid = isNoBid

        self.NoBidNote = NoBidNote

        self.initStudNut()
        self.initNoBidBox()
        self.initOverrideBox()

        self.setNoBidText(self.NoBidNote)
        # self.txtNoBid.setText(self.NoBidNote)

        try:
            cur.execute("SELECT Groupe FROM Mat WHERE Number = ?", (mat, ))
            Groupe = cur.fetchone()
            group = str(Groupe[0])
        except:
            group = None
        try:
            Diam = float(diam)
        except:
            Diam = None
        try:
            if (group and Diam):
                setupcost, cost = trouvercout(group, Diam)
        except Exception as ex:
            print("ex: ", ex)
            print("group and/or diam required")
            setupcost = None
            cost = None
        try:
            # self.numOps = VueNewPartFilled.getNumberOfOps(self)
            self.numOps = self.getNumberOfOps()

            # numOps = VueNewPartFilled.getNumberOfOps(self, ops)
        except Exception as ex:
            print("getNumberOfOps ex: ", ex)
            print("cannot calculate number of operations")
        try:
            setupcost, cost = trouvercout(group, Diam)
        except:
            print("cannot calculate setupcost, cost")

        ###This is supposed to load Operation tab table with stuff
        if (self.ops and setupcost and cost and self.numOps):
            # self.loadOperations(ops,setupcost, cost, numOps)
            # self.loadOperations()
            self.loadOperations(setupcost, cost)
        else:
            print("cannot load operations")
        ###Load autocalculated stuff like part weight, head vol, slug length
        if (mat and diam and shank):
            self.filledpw()
        else:
            print("cannot fill in part weight")

        closeSQLite(conn)
コード例 #28
0
    def PBRemoveOp(self):
        conn = connectSQLite()
        cur = conn.cursor()
        try:
            rowposition = self.LE_NumeroOp.text()
            deleterow = int(rowposition) - 1
        except Exception as ex:
            printError(ex)

        try:
            del self.listop[deleterow]
        except IndexError as ex:
            QMessageBox.about(
                self, "Warning",
                "Error. The row you want to delete doesn't exist. ")
            printError(ex)
            return

        self.TableOp.clearContents()
        try:
            mat = self.LE_Mat.text()
            diam = self.LE_Diam.text()

            ii = 0
            while ii <= len(self.listop) - 1:

                code = str(self.listop[ii])

                cur.execute("SELECT Name FROM Op WHERE Number = ?", (code, ))
                Description = cur.fetchone()
                description = str(Description[0])

                a2 = code
                a2 = QtWidgets.QTableWidgetItem(a2)
                self.TableOp.setItem(ii, 0, a2)
                a3 = description
                a3 = QtWidgets.QTableWidgetItem(a3)
                self.TableOp.setItem(ii, 1, a3)

                cur.execute("SELECT Groupe FROM Mat WHERE Number = ?", (mat, ))
                Groupe = cur.fetchone()
                group = str(Groupe[0])

                Diam = float(diam)
                setupcost, cost = trouvercout(group, Diam)

                pnum = str(code)
                cur.execute(
                    "SELECT %s,%s FROM Op WHERE Number = ?" %
                    (setupcost, cost), (pnum, ))
                Cout = cur.fetchone()

                a4 = str(Cout[0])
                a4 = QtWidgets.QTableWidgetItem(a4)
                self.TableOp.setItem(ii, 2, a4)
                a5 = str(Cout[1])
                a5 = QtWidgets.QTableWidgetItem(a5)
                self.TableOp.setItem(ii, 3, a5)

                ii = ii + 1
        except Exception as ex:
            printError(ex)

        closeSQLite(conn)
コード例 #29
0
    def PBSaveProgress(self):
        # print("validate entering")
        conn = connectSQLite()
        cur = conn.cursor()
        try:
            try:
                partnumber = self.LE_PartNumber.text()
            except:
                QMessageBox.about(self, "Warning",
                                  "A valid part number is required to save. ")
                return

            try:
                description = self.LE_Description.text()
            except:
                description = None
            try:
                revision = self.LE_Revision.text()
            except:
                revision = None
            try:
                mfgspec = self.LE_MfgSpec.text()
            except:
                mfgspec = None
            try:
                mat = self.LE_Mat.text()
            except:
                mat = None
            try:
                headop = self.CB_HeadOp.currentText()
            except:
                headop = None
            try:
                diam = self.LE_Diam.text()
            except:
                diam = None
            try:
                shank = self.LE_Shank.text()
            except:
                shank = None
            try:
                # note = self.LE_Note.text()
                note = self.LE_Note.toPlainText()
            except:
                note = None
            try:
                estby = self.CB_EstBy.currentText()
            except:
                estby = None
            try:
                dateest = self.LE_EstDate.text()
            except:
                dateest = None

            try:
                nut = self.nut
            except:
                nut = 0

            try:
                stud = self.stud
            except:
                stud = 0

            try:
                nobid = self.nobid
            except:
                nobid = 0

            try:
                nobidnote = self.txtNoBid.text()
            except:
                nobidnote = None

            try:
                slugBool = self.isOverrideSlug
            except:
                slugBool = 0

            try:
                HVBool = self.isOverrideHV
            except:
                HVBool = 0

        except Exception as ex:
            printError(ex)

        ##New- was missing in 1.7.3
        try:
            partWeight = self.LE_Diam_2.text()
            print("partWeight: ", partWeight)
        except:
            partWeight = None
        try:
            headVol = self.LE_Diam_3.text()
            print("headVol: ", headVol)
        except:
            headVol = None

        self.updateInsertPart(cur, conn, partnumber, description, revision,
                              mfgspec, estby, dateest, mat, partWeight, diam,
                              shank, headVol, headop, note, nut, stud, nobid,
                              nobidnote, slugBool, HVBool)

        closeSQLite(conn)
コード例 #30
0
    def PBGoToEditPart(self):
        # print("PBGoEditTopart")
        try:
            PartNumber = self.LE_SearchPartNumber.text()
            conn = connectSQLite()
            cur = conn.cursor()
            cur.execute(
                "SELECT Description, Rev, MfgSpec, EstBy, Date, Material, Weight, Diam, Shank, HdVol, Heading, Note , Op1,Op2,Op3,Op4,Op5,Op6,Op7,Op8,Op9,Op10,Op11,Op12,Op13,Op14,Op15,Op16,Op17,Op18,Op19,Op20,Op21,Op22,Op23,Op24,Op25,Op26,Op27,Op28,Op29,Op30,Op31,Op32,Op33,Op34,Op35,Op36,Op37,Op38,Op39,Op40 FROM Part WHERE PartNumber = ?",
                (PartNumber, ))
            part = cur.fetchall()
            # print("part: ", part)
            if part == []:
                QMessageBox.warning(
                    self, "Warning",
                    "Please select a part that belong to the existing list of the completer."
                )
                return
            try:
                Description = str(part[0][0])
                # print("Description: ", Description)
            except:
                Description = None
            try:
                Revision = str(part[0][1])
                # print("Rev: ", Revision)
            except:
                Revision = None
            try:
                MfgSpec = str(part[0][2])
            except:
                MfgSpec = None
            try:
                EstBy = str(part[0][3])
                if EstBy == 'PS':
                    EstBy = int(0)
                elif EstBy == 'DD':
                    EstBy = int(1)
                elif EstBy == 'SO':
                    EstBy = int(2)
                else:
                    EstBy = int(0)
            except:
                EstBy = None
            try:
                Date = str(part[0][4])
            except:
                Date = None
            try:
                Mat = str(part[0][5])
            except:
                Mat = None
            try:
                Diameter = str(part[0][7])
            except:
                Diameter = None
            try:
                Schank = str(part[0][8])
            except:
                Schank = None
            try:
                HeadOp = str(part[0][10])
                if HeadOp == 'HotHead':
                    HeadOp = int(0)
                elif HeadOp == 'ColdHead':
                    HeadOp = int(1)
                elif HeadOp == 'ColdHeadUpset':
                    HeadOp = int(2)
                elif HeadOp == 'HotHeadUpset':
                    HeadOp = int(3)
                elif HeadOp == 'MachinePart':
                    HeadOp = int(4)
            except:
                HeadOp = None
            try:
                Note = str(part[0][11])
            except:
                Note = None
            try:
                Ops = list()
                Ops.clear()
                iii = 12

                while iii <= 51:
                    # print("iii: ", iii)
                    if part[0][iii] == 0:
                        print("breaking")
                        break
                    Ops.append(str(part[0][iii]))

                    iii = iii + 1
            except:
                Ops = None
            try:
                ##Check if it's a nut, if not nut assume it is bolt
                self.nut = part[0][52]
                self.translateNut(self.nut)
                # print("nut: ", self.nut)
                # print("isNut: ", self.isNut)
            except:
                self.isNut = False

            try:
                ##Check if it's a nut, if not nut assume it is bolt
                self.stud = part[0][53]
                self.translateStud(self.stud)
                # print("stud: ", self.stud)
                # print("isStud: ", self.isStud)
            except:
                self.isStud = False

            try:
                self.nobid = part[0][54]
                self.translateNoBid(self.nobid)

            except:
                self.isNoBid = False

            try:
                self.NoBidNote = part[0][55]
            except:
                self.NoBidNote = None

            try:
                self.slugBool = part[0][56]
            except:
                self.slugBool = 0

            try:
                self.HVBool = part[0][57]
            except:
                self.HVBool = 0

            vue = MSACES_NewPart.VueEditPartFilled(
                self, PartNumber, Description, Revision, MfgSpec, EstBy, Date,
                Mat, HeadOp, Diameter, Schank, Note, Ops, self.isNut,
                self.isStud, self.isNoBid, self.NoBidNote, self.slugBool,
                self.HVBool)
            # vue.showMaximized()
            vue.show()

            self.close()
        except Exception as ex:
            printError(ex)

        closeSQLite(conn)