예제 #1
0
파일: controle.py 프로젝트: ROAND/Otica
    def __init__(self, *args, **kwargs):
        self.i = 0 # REMOVEIT!
        QtGui.QWidget.__init__(self, *args, **kwargs)
        self.ui = Ui_FormExibir()
        self.ui.setupUi(self)
        self.setMinimumWidth(550)
        self.setMinimumHeight(380)
        self.ui.txtNome.textChanged.connect(self.nameChanged)
        self.ui.btTodos.clicked.connect(self.botaoTodos)
        self.ui.btDeletar.clicked.connect(self.deleteOS)
        self.podeAtualizarSomatorio = False
        # self.setWindowTitle("Exibição de OSs")
        try:
            # Variaveis de sessão do banco de dados
            Session = sessionmaker(bind=engine)
            self.session = Session()
        except Exception as e:
            lineno, fname = get_filename_lnumber()
            enviaEmail(e.message, fname, lineno)

        try:
            seta_locale(True)
            # Pega todos os registros da tabela OS e adequa o tableWidget à tabela
            self.clientes = self.session.query(
                OS).all(
            )  # .with_entities(OS.nome, OS.armacao) # # .filter_by(nome="Ronnie").first()
            self.ui.tableWidget.setRowCount(len(self.clientes))
            # Pega os headers da tabela e os insere em tableWidget
            self.setHeader()
            # Insere os dados da tabela no tableWidget
            self.showData()
            self.podeAtualizarSomatorio = True
        except Exception as e:
            lineno, fname = get_filename_lnumber()
            enviaEmail(e.message, fname, lineno)
예제 #2
0
파일: controle.py 프로젝트: ROAND/Otica
class ExibirOSS(QtGui.QWidget):
    def __init__(self, *args, **kwargs):
        self.i = 0 # REMOVEIT!
        QtGui.QWidget.__init__(self, *args, **kwargs)
        self.ui = Ui_FormExibir()
        self.ui.setupUi(self)
        self.setMinimumWidth(550)
        self.setMinimumHeight(380)
        self.ui.txtNome.textChanged.connect(self.nameChanged)
        self.ui.btTodos.clicked.connect(self.botaoTodos)
        self.ui.btDeletar.clicked.connect(self.deleteOS)
        self.podeAtualizarSomatorio = False
        # self.setWindowTitle("Exibição de OSs")
        try:
            # Variaveis de sessão do banco de dados
            Session = sessionmaker(bind=engine)
            self.session = Session()
        except Exception as e:
            lineno, fname = get_filename_lnumber()
            enviaEmail(e.message, fname, lineno)

        try:
            seta_locale(True)
            # Pega todos os registros da tabela OS e adequa o tableWidget à tabela
            self.clientes = self.session.query(
                OS).all(
            )  # .with_entities(OS.nome, OS.armacao) # # .filter_by(nome="Ronnie").first()
            self.ui.tableWidget.setRowCount(len(self.clientes))
            # Pega os headers da tabela e os insere em tableWidget
            self.setHeader()
            # Insere os dados da tabela no tableWidget
            self.showData()
            self.podeAtualizarSomatorio = True
        except Exception as e:
            lineno, fname = get_filename_lnumber()
            enviaEmail(e.message, fname, lineno)

    def botaoTodos(self):
        self.clientes = self.session.query(OS).all()
        self.ui.txtNome.setText('')
        self.showData()
        self.mostrando = False
        pai = self.ui.textGLDP.parentWidget()
        if (pai is not None):
            for tipo in (QtGui.QLineEdit, QtGui.QTextEdit):
                for filhos in pai.findChildren(tipo):
                    filhos.setText("")
        self.ui.btGerarRelatorio.setEnabled(True)

    def setHeader(self):
        try:
            self.header = []
            self.bigHeader = []
            self.numCol = 4
            for col in self.clientes[0].__table__.columns:
                # if col.name not in "id":
                self.header.append(col.name)
                self.bigHeader.append(col.name.capitalize())
            self.ui.tableWidget.setColumnCount(len(self.header[0:self.numCol]))
            self.ui.tableWidget.setHorizontalHeaderLabels(self.bigHeader[0:self.numCol])
        except Exception as ex:
            mostrarMessageBox("Erro", u"Não há registros para exibir")
            lineno, fname = get_filename_lnumber()
            enviaEmail(ex.message, fname, lineno)

    def showData(self):
        seta_locale(True)
        self.ui.tableWidget.setRowCount(len(self.clientes))
        self.ui.tableWidget.setColumnCount(len(self.header[0:self.numCol]))
        for row, cliente in enumerate(self.clientes):
            di = row2dict(cliente)
            for index, item in enumerate(self.header[0:self.numCol]):
                novaCel = QtGui.QTableWidgetItem(str(di[item]))
                # if(index == 0):
                naoPermitirAlteracoes(novaCel)
                self.ui.tableWidget.setItem(row, index, novaCel)

                #        if( self.podeAtualizarSomatorio == True ):
        print(self.i)
        self.i += 1 #REMOVEIT!
        self.ui.tableWidget.update()
        atualizarSomatorioPrecos(self.ui.tableWidget, self.ui.lbTot) # FIXME! this call generate error!

    def deleteOS(self):
        try:
            idProcurada = self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), 0)
            idP = idProcurada.text()
            self.session.query(OS).filter(OS.id == int(idProcurada.text())).delete()
            self.session.commit()
            self.showData()
            mostrarMessageBox("Deletar", "OS %s deletada" % idP)
            self.botaoTodos()
        except Exception as ex:
            print ex
            lineno, fname = get_filename_lnumber()
            enviaEmail(ex.message, fname, lineno)

    def queryOSid(self, idx, numColumns):
        seta_locale(True)
        try:
            oss = self.session.query(OS).filter(OS.id == idx).all()
            self.ui.tableWidget.setRowCount(len(oss))
            self.ui.tableWidget.setColumnCount(len(self.header[0:numColumns]))
            self.ui.tableWidget.setHorizontalHeaderLabels(self.bigHeader[0:numColumns])
            # Insere os dados da tabela no tableWidget
            #di = row2dict(oss)
            for row, cliente in enumerate(oss):
                di = row2dict(cliente)
                for index, item in enumerate(self.header[0:numColumns]):
                    self.ui.tableWidget.setItem(
                        row,
                        index,
                        QtGui.QTableWidgetItem(unicode(di[item])))
            return di
        except Exception as ex:
            print ex
            lineno, fname = get_filename_lnumber()
            enviaEmail(ex.message, fname, lineno)


    def queryOS(self, txtnome):
        seta_locale(True)
        try:
            oss = self.session.query(OS).filter(OS.nome.contains(txtnome)).all()
            self.ui.tableWidget.setRowCount(len(oss))
            # Insere os dados da tabela no tableWidget
            for row, cliente in enumerate(oss):
                di = row2dict(cliente)
                for index, item in enumerate(self.header[0:4]):
                    self.ui.tableWidget.setItem(
                        row,
                        index,
                        QtGui.QTableWidgetItem(str(di[item])))
            atualizarSomatorioPrecos(self.ui.tableWidget, self.ui.lbTot) #< may generate error
        except Exception as ex:
            print ex
            lineno, fname = get_filename_lnumber()
            enviaEmail(ex.message, fname, lineno)

    def nameChanged(self):
        self.setHeader()
        self.queryOS(self.ui.txtNome.text())

    def gerarPlanilha(self):
        # print("valor (1,1) = %s" % (self.ui.tableWidget.item(0,2).text() ) )
        [todasCelulasEstaoVazias, dadosDaTabela] = getAllTableData(
            self.ui.tableWidget)
        if (todasCelulasEstaoVazias is False):
            r = Relatorio(dados=dadosDaTabela)
            r.gerarRelatorio()
            mostrarMessageBox("Relatorio", u"O relatório se encontrará na área de trabalho.\n")
        else:
            mostrarMessageBox(
                "Erro",
                u"O filtro escolhido não exibe dados, por favor escolha outro filtro.")
        pass

    mostrando = False

    def mostrarForm(self, query):
        self.ui.textGLDP.setText(str(query["grauLongeDP"]))
        self.ui.textGLOD.setText(str(query["grauLongeOD"]))
        self.ui.textGLODCIL.setText(str(query["grauLongeODCIL"]))
        self.ui.textGLODEI.setText(str(query["grauLongeODEIXO"]))
        self.ui.textGLOE.setText(str(query["grauLongeOE"]))
        self.ui.textGLOECIL.setText(str(query["grauLongeOECIL"]))
        self.ui.textGLOEEI.setText(str(query["grauLongeOEEIXO"]))
        self.ui.textGPDP.setText(str(query["grauPertoDP"]))
        self.ui.textGPOD.setText(str(query["grauPertoOD"]))
        self.ui.textGPODCIL.setText(str(query["grauPertoODCIL"]))
        self.ui.textGPODEI.setText(str(query["grauPertoODEIXO"]))
        self.ui.textGPOE.setText(str(query["grauPertoOE"]))
        self.ui.textGPOECIL.setText(str(query["grauPertoOECIL"]))
        self.ui.textGPOEEI.setText(str(query["grauPertoOEEIXO"]))

    def mostrarDetalhes(self):
        if not self.mostrando:
            self.ui.btGerarRelatorio.setEnabled(False)
            linhaAtual = self.ui.tableWidget.currentRow()
            if self.ui.tableWidget.rowCount() == 1:
                idProcurada = self.ui.tableWidget.item(0, 0)
                query = self.queryOSid(int(idProcurada.text()), len(self.clientes[0].__table__.columns))
                self.mostrarForm(query)
            if (linhaAtual != -1):
                # ZERO e' a primeira coluna (do id procurado)
                idProcurada = self.ui.tableWidget.item(linhaAtual, 0)
                # print(" idProcurada ====== %s" % idProcurada.text())
                query = self.queryOSid(int(idProcurada.text()), len(self.clientes[0].__table__.columns))
                self.mostrarForm(query)
            self.mostrando = True
        else:
            self.ui.btGerarRelatorio.setEnabled(True)
            linhaAtual = self.ui.tableWidget.currentRow()
            if self.ui.tableWidget.rowCount() == 1:
                idProcurada = self.ui.tableWidget.item(0, 0)
                query = self.queryOSid(int(idProcurada.text()), self.numCol)
            if (linhaAtual != -1):
                # ZERO e' a primeira coluna (do id procurado)
                idProcurada = self.ui.tableWidget.item(linhaAtual, 0)
                # print(" idProcurada ====== %s" % idProcurada.text())
                query = self.queryOSid(int(idProcurada.text()), self.numCol)
            self.mostrando = False