Ejemplo n.º 1
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)
Ejemplo n.º 2
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)
Ejemplo n.º 3
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)
Ejemplo n.º 4
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)
Ejemplo n.º 5
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)
Ejemplo n.º 6
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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    def PBDeletePart(self):
        print("Delete pressed!")
        try:
            PartNumber = self.LE_SearchPartNumber.text()
            PartNumber = str(PartNumber)
            if (not PartNumber or PartNumber == ""):
                QMessageBox.warning(
                    self, "Warning",
                    "Please select a part that belong to the existing list of the completer."
                )
                return
            print("PartNumber: ", PartNumber)
        except Exception as ex:
            print(ex)

        try:
            conn = connectSQLite()
            cur = conn.cursor()
            cur.execute("SELECT PartNumber FROM PART WHERE PartNumber = ?",
                        (PartNumber, ))
            parts = cur.fetchall()
            print("number of parts: ", len(parts))

            ##Verify there is a UNIQUE match before deletion
            if (len(parts) == 1):

                buttonReply = QMessageBox.question(
                    self, 'Warning',
                    "This delete is irreversible. Are you sure you want to Delete "
                    + PartNumber + "??", QMessageBox.Yes | QMessageBox.No,
                    QMessageBox.No)

                if buttonReply == QMessageBox.Yes:

                    cur.execute("DELETE FROM PART WHERE PartNumber = ?",
                                (PartNumber, ))
                    conn.commit()
                    self.LE_SearchPartNumber.setText("")  #Reset text to blank
                    self.setSearchPartNumberCompleter(
                    )  #Update completer as we have just deleted a part
                if buttonReply == QMessageBox.No:
                    print("nothing done")
            elif (len(parts) > 1):
                QMessageBox.warning(
                    self, "Warning",
                    "Delete operation found multiple matches to this part number and cannot determine which part to delete. This part will not be deleted."
                )
            else:
                QMessageBox.warning(self, "Warning",
                                    "Cannot find that part in the database.")

        except Exception as ex:
            print(ex)
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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)
Ejemplo n.º 17
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)
Ejemplo n.º 18
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)
Ejemplo n.º 19
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)
Ejemplo n.º 20
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)
Ejemplo n.º 21
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)
Ejemplo n.º 22
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)
Ejemplo n.º 23
0
    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)
Ejemplo n.º 24
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)
Ejemplo n.º 25
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)
Ejemplo n.º 26
0
    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)
Ejemplo n.º 27
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)
Ejemplo n.º 28
0
    def saveChanges(self):
        conn = connectSQLite()
        cur = conn.cursor()

        name = self.EditName.text()
        minimum = self.EditMin.text()
        minimum = int(minimum)
        opnum = self.EditOp.text()
        opnum = int(opnum) #int required for SQL query
        unit = self.EditUnit.text()



        dg1b = self.TableEditOp.item(0,0).text()
        dg2b = self.TableEditOp.item(1,0).text()
        dg3b = self.TableEditOp.item(2,0).text()
        dg4b = self.TableEditOp.item(3,0).text()
        dg5b = self.TableEditOp.item(4,0).text()
        dg6b = self.TableEditOp.item(5,0).text()
        dg7b = self.TableEditOp.item(6,0).text()
        dg8b = self.TableEditOp.item(7,0).text()
        dg9b = self.TableEditOp.item(8,0).text()
        dg10b = self.TableEditOp.item(9,0).text()
        sub = self.TableEditOp.item(10,0).text()
        dg1c = self.TableEditOp.item(0,1).text()
        dg2c = self.TableEditOp.item(1,1).text()
        dg3c = self.TableEditOp.item(2,1).text()
        dg4c = self.TableEditOp.item(3,1).text()
        dg5c = self.TableEditOp.item(4,1).text()
        dg6c = self.TableEditOp.item(5,1).text()
        dg7c = self.TableEditOp.item(6,1).text()
        dg8c = self.TableEditOp.item(7,1).text()
        dg9c = self.TableEditOp.item(8,1).text()
        dg10c = self.TableEditOp.item(9,1).text()
        suc = self.TableEditOp.item(10,1).text()
        dg1d = self.TableEditOp.item(0,2).text()
        dg2d = self.TableEditOp.item(1,2).text()
        dg3d = self.TableEditOp.item(2,2).text()
        dg4d = self.TableEditOp.item(3,2).text()
        dg5d = self.TableEditOp.item(4,2).text()
        dg6d = self.TableEditOp.item(5,2).text()
        dg7d = self.TableEditOp.item(6,2).text()
        dg8d = self.TableEditOp.item(7,2).text()
        dg9d = self.TableEditOp.item(8,2).text()
        dg10d = self.TableEditOp.item(9,2).text()
        sud = self.TableEditOp.item(10,2).text()
        dg1e = self.TableEditOp.item(0,3).text()
        dg2e = self.TableEditOp.item(1,3).text()
        dg3e = self.TableEditOp.item(2,3).text()
        dg4e = self.TableEditOp.item(3,3).text()
        dg5e = self.TableEditOp.item(4,3).text()
        dg6e = self.TableEditOp.item(5,3).text()
        dg7e = self.TableEditOp.item(6,3).text()
        dg8e = self.TableEditOp.item(7,3).text()
        dg9e = self.TableEditOp.item(8,3).text()
        dg10e = self.TableEditOp.item(9,3).text()
        sue = self.TableEditOp.item(10,3).text()
        dg1f = self.TableEditOp.item(0,4).text()
        dg2f = self.TableEditOp.item(1,4).text()
        dg3f = self.TableEditOp.item(2,4).text()
        dg4f = self.TableEditOp.item(3,4).text()
        dg5f = self.TableEditOp.item(4,4).text()
        dg6f = self.TableEditOp.item(5,4).text()
        dg7f = self.TableEditOp.item(6,4).text()
        dg8f = self.TableEditOp.item(7,4).text()
        dg9f = self.TableEditOp.item(8,4).text()
        dg10f = self.TableEditOp.item(9,4).text()
        suf = self.TableEditOp.item(10,4).text()




        try:
            # print(type(opnum))
            # print(type(minimum))
            cur.execute('''UPDATE Op SET 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 = ?
            WHERE 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,opnum))
            conn.commit()

            QMessageBox.about(self, "Confimation", "The operation "+ str(opnum) + " has been updated successfully.")
        except Exception as ex:
            printError(ex)
Ejemplo n.º 29
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)
Ejemplo n.º 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)