Esempio n. 1
0
 def __init__(self):
     QtGui.QWidget.__init__(self)
     self.ui = Ui_FormExibirCaixa()
     self.ui.setupUi(self)
     self.atribuirDatasSugeridas()
     self.setSqlColumnsSize()
     self.ui.btMostrarDetalhes_2.hide()
     # preenche a tabela
     self.setHeader()
     self.showData()
Esempio n. 2
0
class ExibirCX(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.ui = Ui_FormExibirCaixa()
        self.ui.setupUi(self)
        self.atribuirDatasSugeridas()
        self.setSqlColumnsSize()
        self.ui.btMostrarDetalhes_2.hide()
        # preenche a tabela
        self.setHeader()
        self.showData()

    def atribuirDatasSugeridas(self):
        hoje = datetime.datetime.now()
        self.ui.dateEdit_Inicial.setDate(QDate(
            hoje.year, hoje.month - 1, hoje.day))
        self.ui.dateEdit_Final.setDate(QDate(datetime.datetime.now()))

    def setSqlColumnsSize(self):
        Session = sessionmaker(bind=engine)
        self.session = Session()

        self.dbDataCaixa = self.session.query(Caixa).all()
        self.ui.tableWidget_Caixa.setRowCount(len(self.dbDataCaixa))

        try:
            self.ui.tableWidget_Caixa.setColumnCount(
                len(self.dbDataCaixa[0].__table__.columns) - 1)  #
        except:
            mostrarMessageBox("Erro", u"Não há registros para exibir")

    def gerarRelatorio(self):
        [todasCelulasEstaoVazias, dadosDaTabela] = getAllTableData(
            self.ui.tableWidget_Caixa)
        if (todasCelulasEstaoVazias is False):
            r = Relatorio(dados=dadosDaTabela)
            caminho = find_data_file("famotica.py")
            mostrarMessageBox(u"Relatório", u"O relatório se encontrará na área de trabalho.\n")
            r.gerarRelatorio()
        else:
            mostrarMessageBox(
                "Erro",
                u"O filtro escolhido não exibe dados, por favor escolha outro filtro.")
        pass

    def mostrarDetalhes(self):
        print("mostrarDetalhes()")
        pass

    def atualizarExibicaoCX(self):
        '''
        Atualiza o widget responsavel por exibir a movimentacao de caixa.
        Essa funcao e' invocada pela editingFinished() dos DOIS q-date-edit-s
        '''
        if sys.platform == "win32":
            dataInicial = datetime.datetime.strptime(
                self.ui.dateEdit_Inicial.text(),
                "%d/%m/%Y")

            dataFinal = datetime.datetime.strptime(
                self.ui.dateEdit_Final.text(),
                "%d/%m/%Y")
        else:
            dataInicial = datetime.datetime.strptime(
                self.ui.dateEdit_Inicial.text(),
                "%d/%m/%y")

            dataFinal = datetime.datetime.strptime(
                self.ui.dateEdit_Final.text(),
                "%d/%m/%y")

        # chama query caixa
        self.queryCAIXA(dataInicial, dataFinal)
        atualizarSomatorioPrecos(self.ui.tableWidget_Caixa, self.ui.lbTot)

    def setHeader(self):
        try:
            self.header = []
            self.bigHeader = []
            for col in self.dbDataCaixa[0].__table__.columns:
                # if col.name not in "id":
                self.header.append(col.name)
                self.bigHeader.append(col.name.capitalize())
            self.ui.tableWidget_Caixa.setHorizontalHeaderLabels(self.bigHeader[0:6])
        except Exception as e:
            enviaEmail(e.message)

    def showData(self):
        seta_locale(True)
        for row, caixa in enumerate(self.dbDataCaixa):
            di = row2dict(caixa)
            for index, item in enumerate(self.header[0:6]):  # < header
                novaCel = QtGui.QTableWidgetItem(str(di[item]))
                # if(index == 0):
                naoPermitirAlteracoes(novaCel)
                self.ui.tableWidget_Caixa.setItem(row, index, novaCel)
            atualizarSomatorioPrecos(self.ui.tableWidget_Caixa, self.ui.lbTot)

    def queryCAIXA(self, dataInicial, dataFinal):
        seta_locale(True)
        caixa = self.session.query(Caixa).filter(
            Caixa.data.between(dataInicial, dataFinal)).all()
        self.ui.tableWidget_Caixa.setRowCount(len(caixa))
        # Insere os dados da tabela no tableWidget
        for row, itemCaixa in enumerate(caixa):
            di = row2dict(itemCaixa)
            for index, item in enumerate(self.header):
                novaCel = QtGui.QTableWidgetItem(str(di[item]))
                # if(index == 0):
                naoPermitirAlteracoes(novaCel)
                self.ui.tableWidget_Caixa.setItem(
                    row,
                    index,
                    QtGui.QTableWidgetItem(novaCel))