Пример #1
0
    def BuscaContaAReceber(self, id):
        self.formAReceber()
        busca = CrudContaAReceber()
        busca.id = id
        busca.selectContaID()
        self.tx_Cod.setText(str(busca.id))
        self.tx_Id.setText(str(busca.idCliente))
        self.BuscaClienteId(self.tx_descricao)
        self.tx_descricao.setText(busca.descricao)
        self.cb_categoria.setCurrentIndex(
            self.cb_categoria.findData(busca.categoria))
        self.dt_Vencimento.setDate(busca.dataVencimento)
        self.tx_valor.setText(str(busca.valor))
        self.tx_Obs.setPlainText(busca.obs)
        if busca.dataRecebimento:
            self.dt_dataPagamento.setDate(busca.dataRecebimento)
        self.cb_formaPagamento.setCurrentIndex(
            self.cb_formaPagamento.findData(busca.idFormaPagamento))
        self.tx_valorPago.setText(str(busca.valor - busca.valorRecebido))
        self.lb_ValorPendente.setText(str(busca.valor - busca.valorRecebido))

        if busca.idStatusPagamento == 1:
            self.bt_receber.setDisabled(True)
            self.bt_PrintRecibo.setVisible(True)
            self.desabilitaLineEdit(self.fr_FormReceber)

        elif busca.idStatusPagamento == 2:
            self.bt_receber.setEnabled(True)

        self.cb_repetir.setHidden(True)
        self.lb_Repetir.setHidden(True)
        self.lb_obsRepetir.setHidden(True)
        pass
Пример #2
0
    def financeiroHoje(self):

        # A Receber
        busca = CrudContaAReceber()
        self.qtdeHome(self.lb_areceberHoje, busca.aReceberHoje())

        # A PAgar
        busca = CrudContaAPagar()
        self.qtdeHome(self.lb_apagarHoje, busca.aPagarHoje())
Пример #3
0
    def Entrada(self):
        dataInicio = QDate.toString(
            self.dt_inicio.date(), "yyyy-MM-dd")
        dataFim = QDate.toString(
            self.dt_fim.date(), "yyyy-MM-dd")

        busca = CrudContaAReceber()
        busca.dataRecebimento = dataInicio
        busca.dataFim = dataFim
        busca.movEntrada()

        # Setando a data referente a busca
        self.lb_inicioMovimento.setText(QDate.toString(
            self.dt_inicio.date(), "dd-MM-yyyy"))
        self.lb_fimMovimento.setText(QDate.toString(
            self.dt_fim.date(), "dd-MM-yyyy"))
        self.lb_inicioDespesa.setText(QDate.toString(
            self.dt_inicio.date(), "dd-MM-yyyy"))
        self.lb_fimDespesa.setText(QDate.toString(
            self.dt_fim.date(), "dd-MM-yyyy"))

        self.lb_entradaPendente.setText(str(busca.valorAReceber))
        self.lb_entradaRecebido.setText(str(busca.valorRecebido))

        if busca.valorAReceber > 0.01:
            # Grafico
            if busca.valorRecebido:
                valor = busca.valorRecebido / busca.valorAReceber * 100
                # formato
                self.pr_receita.setFormat("%.02f%%" % (valor))
                # Max e valor
                self.pr_receita.setMaximum(busca.valorAReceber)
                self.pr_receita.setValue(busca.valorRecebido)
        self.detalheEntrada()
        pass
Пример #4
0
    def ParcelasAReceber(self):
        while self.tb_Parcelas.rowCount() > 0:
            self.tb_Parcelas.removeRow(0)

        busca = CrudContaAReceber()
        busca.idVenda = self.tx_Cod.text()
        busca.listaParcelas()

        # Se houver parcela gerada desabilita Botao salvar e remover item
        if busca.dataVencimento:
            self.bt_GerarParcela.setDisabled(True)
            self.tb_Itens.setColumnHidden(6, True)
            for item in self.fr_addProduto.findChildren(QLineEdit):
                item.setDisabled(True)
            self.bt_Salvar.setDisabled(True)
            self.cb_FormaPagamento.setDisabled(True)
            self.cb_QtdeParcela.setDisabled(True)
        i = 0
        while i < len(busca.dataVencimento):
            self.tb_Parcelas.insertRow(i)
            self.conteudoTabela(self.tb_Parcelas, i,
                                0, str(busca.id[i]))
            self.dt_tabela(self.tb_Parcelas, i,
                           1, busca.dataVencimento[i], busca.idStatusPagamento[i])
            self.conteudoTabela(self.tb_Parcelas, i,
                                2, str(busca.valor[i]))
            self.tx_tabelaReceber(self.tb_Parcelas, i, 3,
                                  busca.idStatusPagamento[i],
                                  str(busca.valor[i] - busca.valorRecebido[i]))
            self.botaoReceberParcela(self.tb_Parcelas, i, 4,
                                     partial(self.Receber, i), "Receber",
                                     busca.idStatusPagamento[i])
            self.cb_QtdeParcela.setCurrentIndex(
                self.cb_QtdeParcela.findData(len(busca.id)))
            self.cb_FormaPagamento.setCurrentIndex(
                self.cb_FormaPagamento.findData(
                    busca.idFormaPagamento[0]))

            i += 1
Пример #5
0
    def ReceberParcela(self, id):

        if not self.tx_valorPago.text():
            self.tx_valorPago.setFocus()
        elif not self.cb_formaPagamento.currentData():
            self.cb_formaPagamento.setFocus()
        else:
            INSERI = CrudContaAReceber()
            INSERI.id = self.tx_Cod.text()
            INSERI.valorRecebido = self.tx_valorPago.text().replace(",", ".")
            INSERI.formaPagamento = self.cb_formaPagamento.currentData()
            INSERI.dataRecebimento = QDate.toString(
                QDate.currentDate(), "yyyy-MM-dd")
            INSERI.receberConta()
            self.BuscaContaAReceber(self.tx_Cod.text())
        pass
Пример #6
0
    def tabelaAReceber(self):
        busca = CrudContaAReceber()
        dataInicio = QDate.toString(
            self.dt_Inicio.date(), "yyyy-MM-dd")
        dataFim = QDate.toString(
            self.dt_Fim.date(), "yyyy-MM-dd")
        busca.dataVencimento = dataInicio
        busca.dataFim = dataFim
        busca.statusPagamento = self.cb_Situacao.currentData()
        busca.listaContaAReceber()
        while self.tb_AReceber.rowCount() > 0:
            self.tb_AReceber.removeRow(0)

        self.totalRecebido = 0.00
        self.totalPendente = 0.00

        i = 0
        for lista in busca.nomeCliente:
            self.tb_AReceber.insertRow(i)
            self.conteudoTabela(self.tb_AReceber, i, 0, str(busca.id[i]))
            self.TabelaStatus(self.tb_AReceber, i, 1,
                              self.StatusEntrega(1,
                                                 busca.idStatusPagamento[i]))
            self.TabelaNomeTelefone(self.tb_AReceber, i, 2, busca.nomeCliente[i],
                                    busca.telefoneCliente[i])
            self.TabelaNomeTelefone(
                self.tb_AReceber, i, 3, busca.descricao[i], "")

            self.TabelaEntrega(self.tb_AReceber, i, 4,
                               busca.dataVencimento[i],
                               self.StatusEntrega(busca.idStatusPagamento[i]),
                               busca.statusPagamento[i].upper())
            self.conteudoTabela(self.tb_AReceber, i, 5,
                                "R$ "+str(busca.valor[i]))

            self.conteudoTabela(self.tb_AReceber, i, 6,
                                "R$ "+str(busca.valor[i] - busca.valorRecebido[i]))
            self.botaoReceberParcela(
                self.tb_AReceber, i, 7, partial(
                    self.BuscaContaAReceber, busca.id[i]),
                "Receber",  2)

            # Total Pendente
            self.totalPendente = self.totalPendente + \
                float((busca.valor[i] - busca.valorRecebido[i]))
            # Total Recebido
            self.totalRecebido = self.totalRecebido + \
                float(busca.valorRecebido[i])

            i += 1
Пример #7
0
    def detalheEntrada(self):
        dataInicio = QDate.toString(self.dt_inicio.date(), "yyyy-MM-dd")
        dataFim = QDate.toString(self.dt_fim.date(), "yyyy-MM-dd")

        busca = CrudContaAReceber()
        busca.dataRecebimento = dataInicio
        busca.dataFim = dataFim
        busca.detalheEntrada()

        while self.tb_receita.rowCount() > 0:
            self.tb_receita.removeRow(0)

        i = 0
        while i < len(busca.categoria):
            self.tb_receita.insertRow(i)
            self.conteudoTabelaLeft(
                self.tb_receita, i, 0,
                busca.categoria[i] + " - " + busca.formaPagamento[i])
            self.conteudoTabela(self.tb_receita, i, 1,
                                "R$ " + str(busca.valorRecebido[i]))
            i += 1

        pass
Пример #8
0
    def imprimirVenda(self):
        self.documento = QWebEngineView()

        headertable = ["Produto", "Obs. ", "Qnte.", "$ Unitário", "$ Total"]
        produto = []
        qtde = []
        obs = []
        valorUnitario = []
        totalItem = []
        for i in range(self.tb_Itens.rowCount()):
            produto.append(self.tb_Itens.item(i, 1).text())
            obs.append(self.tb_Itens.item(i, 2).text())
            qtde.append(self.tb_Itens.item(i, 3).text())
            valorUnitario.append(self.tb_Itens.item(i, 4).text())
            totalItem.append(self.tb_Itens.item(i, 5).text())

        # Consulta Venda Banco de Dados
        busca = CrudVenda()
        busca.id = self.tx_Cod.text()
        busca.selectVendaId()

        # Consulta Cliente banco de dados
        cliente = CrudCliente()
        cliente.id = self.tx_Id.text()
        cliente.selectClienteId()

        # Consulta Financeiro banco de dados
        financeiro = CrudContaAReceber()
        financeiro.idVenda = self.tx_Cod.text()
        financeiro.listaParcelas()

        html = self.renderTemplate(
            "venda.html",
            estilo=self.resourcepath('Template/estilo.css'),
            titulo="Pedido Nº:",
            idPedido=self.tx_Cod.text(),
            cliente=cliente.nome,
            endCliente=[cliente.endereco, cliente.numero],
            cepCliente=cliente.cep,
            emailEcliente=cliente.email,
            cpfCliente=cliente.cpf,
            cidadeCliente=cliente.cidade,
            telefoneCliente=self.formatoNumTelefone(cliente.telefone),
            rgCliente=cliente.rg,
            bairroCliente=cliente.bairro,
            estadoCliente=cliente.estado,
            celularCliente=self.formatoNumTelefone(cliente.celular),
            dataEmissao=QDate.toString(self.dt_Emissao.date(), "dd-MM-yyyy"),
            prazoEntrega=QDate.toString(self.dt_Prazo.date(), "dd-MM-yyyy"),
            dataEntrega=QDate.toString(self.dt_Entrega.date(), "dd-MM-yyyy"),
            statusEntrega=[busca.idStatusEntrega, busca.statusEntrega],
            statusFinanceiro=busca.statusPagamento,
            headertable=headertable,
            descProduto=produto,
            observacao=obs,
            quantidade=qtde,
            valUnit=valorUnitario,
            valTotalItens=totalItem,
            subtotal=self.lb_SubTotal.text(),
            frete=self.tx_Frete.text(),
            desconto=self.tx_Desconto.text(),
            total=self.tx_TotalFinal.text(),
            formaPagamento=self.cb_FormaPagamento.currentText(),
            condicao=self.cb_QtdeParcela.currentText(),
            descParcela=financeiro.descricao,
            vencimentoparcela=financeiro.dataVencimento,
            valorParcela=financeiro.valor,
            situacao=financeiro.statusPagamento,
            formaPagamentoParcela=financeiro.formaPagamento)

        self.documento.load(QUrl("file:///" +
                                 self.resourcepath("report.html")))
        self.documento.loadFinished['bool'].connect(self.previaImpressao)
Пример #9
0
    def Receber(self, id):

        if self.tb_Parcelas.cellWidget(id, 3).text():

            # Recebendo parcela
            INSERI = CrudContaAReceber()
            INSERI.id = self.tb_Parcelas.item(id, 0).text()
            INSERI.valorRecebido = self.tb_Parcelas.cellWidget(
                id, 3).text().replace(",", ".")
            INSERI.formaPagamento = self.cb_FormaPagamento.currentData()
            INSERI.dataRecebimento = QDate.toString(QDate.currentDate(),
                                                    "yyyy-MM-dd")

            # Inserindo valor recebido no DB
            INSERI.receberConta()

            # Atualizando valor Recebido
            INSERI = CrudVenda()
            INSERI.id = self.tx_Cod.text()
            INSERI.valorRecebido = self.tb_Parcelas.cellWidget(
                id, 3).text().replace(",", ".")

            # Executando o update no DB
            INSERI.Receber()

            # Recalculando valores
            if self.tx_valorRecebido.text():
                valorRecebido = float(self.tx_valorRecebido.text()) + float(
                    INSERI.valorRecebido)
            else:
                valorRecebido = float(INSERI.valorRecebido)

            self.tx_valorRecebido.setText(format(valorRecebido, '.2f'))
            self.TotalFinal()

            # populando tabelas de parcelas a receber
            self.ParcelasAReceber()
Пример #10
0
    def CadContaVenda(self):

        INSERI = CrudContaAReceber()

        if self.tb_Parcelas.rowCount() > 0:
            for i in range(self.tb_Parcelas.rowCount()):
                try:
                    self.tb_Parcelas.item(i, 0).text()
                    INSERI.id = self.tb_Parcelas.item(i, 0).text()
                except:
                    INSERI.id = INSERI.lastIdContaAReceber()
                INSERI.idVenda = self.tx_Cod.text()
                INSERI.idCliente = self.tx_Id.text()
                INSERI.descricao = """Pedido de Venda {}. Parcela {} de {} """.format(
                    self.tx_Cod.text(), i + 1, self.tb_Parcelas.rowCount())
                INSERI.categoria = 1
                INSERI.dataVencimento = QDate.toString(
                    self.tb_Parcelas.cellWidget(i, 1).date(), "yyyy-MM-dd")
                INSERI.valor = self.tb_Parcelas.item(i, 2).text()
                INSERI.formaPagamento = self.cb_FormaPagamento.currentData()
                INSERI.inseriParcelaVenda()
Пример #11
0
 def cadContaReceber(self):
     repetir = int(self.cb_repetir.currentData())
     for i in range(repetir):
         id = int(self.tx_Cod.text()) + i
         INSERI = CrudContaAReceber()
         INSERI.id = id
         INSERI.idCliente = self.tx_Id.text()
         INSERI.descricao = self.tx_descricao.text()
         INSERI.categoria = self.cb_categoria.currentData()
         INSERI.formaPagamento = self.cb_formaPagamento.currentData()
         INSERI.dataVencimento = QDate.toString(QDate.addMonths(
             self.dt_Vencimento.date(), i), "yyyy-MM-dd")
         INSERI.valor = self.tx_valor.text()
         INSERI.obs = self.tx_Obs.toPlainText()
         INSERI.inseriContaAReceber()
     self.BuscaContaAReceber(self.tx_Cod.text())
Пример #12
0
 def idCheckAReceber(self):
     if not self.tx_Cod.text():
         busca = CrudContaAReceber()
         self.tx_Cod.setText(str(busca.lastIdContaAReceber()))
     pass