Пример #1
0
    def CadastraVendaDB(self):
        # current datetime in UTC
        dt = datetime.now()
        utc_time = dt.replace(tzinfo=timezone.utc)

        INSERIR = CrudVenda()
        INSERIR.id = self.tx_IdVenda.text()
        INSERIR.idCliente = self.tx_IdCliente.text().upper()
        INSERIR.tipoPagamento = self.cb_TipoPagamento.currentData()
        INSERIR.dataVenda = utc_time
        INSERIR.subtotal = self.tx_SubTotal.text().replace(",", ".")
        INSERIR.desconto = self.tx_Desconto.text().replace(",", ".")
        INSERIR.addVenda()

        ATUALIZAR_ESTOQUE = CrudProduto()
        INSERIR_ITENS = CrudRelVenda()
        for row in range(self.tb_Itens.rowCount()):
            idProduto = self.tb_Itens.item(row, 1).text()
            qtd = self.tb_Itens.item(row, 3).text()
            INSERIR_ITENS.idVenda = self.tx_IdVenda.text()
            INSERIR_ITENS.idProduto = idProduto
            INSERIR_ITENS.qtd = qtd
            INSERIR_ITENS.valorUnitario = self.tb_Itens.item(row, 4).text()
            INSERIR_ITENS.valorTotal = self.tb_Itens.item(row, 5).text()
            INSERIR_ITENS.addItens()
            ATUALIZAR_ESTOQUE.id = idProduto
            ATUALIZAR_ESTOQUE.DetalhamentoProdutoId()
            ATUALIZAR_ESTOQUE.qtdEstoque = int(
                ATUALIZAR_ESTOQUE.qtdEstoque) - int(qtd)
            ATUALIZAR_ESTOQUE.updateProduto()
        self.janelaVendas()
Пример #2
0
    def ListarVenda(self):
        lista = CrudVenda()
        # se o texto ta vazio vai buscar tudo
        lista.venda = self.tx_BuscaVendas.text()
        lista.listaVenda()

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

        i = 0
        # lista.venda vira array apos select
        if len(lista.id) >= 1:
            while i < len(lista.id):
                self.tb_Vendas.insertRow(i)
                self.alinharDadosTabela(self.tb_Vendas, i, 0, str(lista.id[i]))
                self.SetTabelaID(self.tb_Vendas, i, 1, lista.id[i])
                self.SetFormataDadosPessoaisTabela(
                    self.tb_Vendas, i, 2, "%s %s" %
                    (lista.nomeCliente[i], lista.sobrenomeCliente[i]),
                    "ID: " + str(lista.idCliente[i]))
                self.SetFormataDadosPessoaisTabela(self.tb_Vendas, i, 3,
                                                   lista.tipoPagamento[i], "")
                self.SetFormataDadosPessoaisTabela(self.tb_Vendas, i, 4,
                                                   lista.dataVenda[i], "")
                self.SetValorTable(self.tb_Vendas, i, 5, lista.valorTotal[i])
                # click edit
                self.botaoTabela(self.tb_Vendas, i, 6,
                                 partial(self.DetalhamentoVenda, lista.id[i]),
                                 "#7AB32E")
                i += 1
Пример #3
0
    def SelectVendaId(self, id):
        busca = CrudVenda()
        self.FormVendas()
        self.tx_Cod.setText(str(id))
        busca.id = id
        busca.selectVendaId()

        self.tx_Id.setText(str(busca.idCliente))
        self.BuscaClienteId(self.tx_IdBuscaItem)
        self.tx_Desconto.setText(str(busca.desconto))
        self.tx_Frete.setText(str(busca.frete))
        self.dt_Prazo.setDate(busca.prazoEntrega)

        if busca.valorRecebido:
            self.tx_valorRecebido.setText(str(busca.valorRecebido))

        if busca.idStatusPagamento == 2:
            self.bt_GerarParcela.setEnabled(True)

        if busca.idStatusEntrega == 2:
            self.bt_Entregar.setEnabled(True)

        if busca.idStatusEntrega == 1:
            self.bt_Entregar.setDisabled(True)
            self.tb_Itens.setColumnHidden(6, True)
            for item in self.fr_addProduto.findChildren(QLineEdit):
                item.setDisabled(True)

        # Listando itens referente a venda
        listaItens = CrudRelVenda()
        listaItens.idVenda = id
        listaItens.listaItens()

        i = 0
        while i < len(listaItens.valorTotal):

            self.tb_Itens.insertRow(i)
            self.conteudoTabela(self.tb_Itens, i, 0,
                                str(listaItens.idProduto[i]))
            self.conteudoTabelaLeft(self.tb_Itens, i, 1,
                                    listaItens.produto[i])
            self.conteudoTabelaLeft(self.tb_Itens, i, 2,
                                    str(listaItens.obs[i]))
            self.conteudoTabela(self.tb_Itens, i, 3,
                                str(listaItens.qtde[i]))
            self.conteudoTabela(self.tb_Itens, i, 4,
                                str(listaItens.valorUnitario[i]))
            self.conteudoTabela(self.tb_Itens, i, 5,
                                str(listaItens.valorTotal[i]))
            self.botaoRemoveItem(self.tb_Itens, i, 6,
                                 partial(self.RemoveLInha, i), "#005099")
            self.conteudoTabela(self.tb_Itens, i, 7,
                                str(listaItens.id[i]))
            self.TotalFinal()

            i += 1
        self.bt_Imprimir.setEnabled(True)
        self.ParcelasAReceber()

        pass
Пример #4
0
 def Entregar(self):
     INSERI = CrudVenda()
     INSERI.dataEntrega = QDate.toString(self.dt_Entrega.date(),
                                         "yyyy-MM-dd")
     INSERI.id = self.tx_Cod.text()
     INSERI.Entregar()
     self.SaidaEstoque()
     self.SelectVendaId(self.tx_Cod.text())
Пример #5
0
    def SelectCliente(self, valor):
        id = valor
        self.FormClientes()
        self.tx_Id.setText(str(id))
        busca = CrudCliente()
        busca.id = self.tx_Id.text()
        busca.selectClienteId()
        self.tx_NomeFantasia.setText(busca.nome)
        self.tx_RazaoSocial.setText(busca.sobrenome)
        self.tx_cnpj.setText(busca.cpf)
        self.tx_InscEstadual.setText(busca.rg)
        self.tx_Celular.setText(busca.celular)
        self.tx_Telefone.setText(busca.telefone)
        self.tx_Email.setText(busca.email)
        self.tx_Obs.setText(busca.obs)
        self.tx_Cep.setText(busca.cep)
        self.tx_Endereco.setText(busca.endereco)
        self.tx_Numero.setText(busca.numero)
        self.tx_Bairro.setText(busca.bairro)
        self.tx_Cidade.setText(busca.cidade)
        self.tx_Estado.setText(busca.estado)

        # Limpando tabela Histórico de Compras
        for row in range(self.tb_Historico.rowCount()):
            self.tb_Historico.removeRow(row)

        # Histórico de Compras cliente
        total = '0.00'
        lista = CrudVenda()
        lista.idCliente = valor
        lista.selectVendaCliente()
        i = 0

        while i < len(lista.dataEmissao):
            # print row
            self.tb_Historico.insertRow(i)
            self.conteudoTabela(self.tb_Historico, i, 0,
                                str(lista.dataEmissao[i]))
            self.conteudoTabela(self.tb_Historico, i, 1,
                                str(lista.dataEntrega[i]))
            self.conteudoTabela(self.tb_Historico, i, 2,
                                str(lista.valorTotal[i]))

            total = float(lista.valorTotal[i]) + float(total)

            i += 1

        self.lb_TotalHistorico.setText(format(float(total), ".2f"))
        i += 1
        pass
Пример #6
0
    def DetalhamentoVenda(self, valor):
        id = valor
        self.FormVendas()
        self.tx_IdVenda.setText(str(id))

        busca = CrudVenda()
        busca.id = id
        busca.DetalhamentoVendaId()
        self.tx_IdCliente.setText(str(busca.idCliente))
        self.cb_TipoPagamento.setCurrentIndex(
            self.cb_TipoPagamento.findData(busca.tipoPagamento))
        data = busca.dataVenda
        # add todos os itens na tabela
        lista = CrudRelVenda()
        lista.idVenda = id
        lista.listaItens()

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

        i = 0
        if len(lista.id) >= 1:
            while i < len(lista.id):
                self.tx_IdBuscaItem.setText(str(lista.id[i]))
                self.tx_NomeProdutoItem.setText(str(lista.produto[i]))
                self.tx_QtdItem.setText(str(lista.qtd[i]))
                self.tx_ValorUnitarioItem.setText(str(lista.valorUnitario[i]))
                self.tx_ValorTotalItem.setText(str(lista.valorTotal[i]))
                self.AddItemTabela(False)
                i += 1

        self.BuscaClienteId()
        self.tx_Desconto.setText(str(busca.desconto))
        self.TotalFinal()

        # disable add item...
        for filho in self.fr_addProduto.findChildren(QLineEdit):
            filho.clear()
            filho.setDisabled(True)
        self.bt_IncluirItem.setDisabled(True)
        self.tx_Desconto.setDisabled(True)
        self.cb_TipoPagamento.setDisabled(True)
        self.tx_IdCliente.setDisabled(True)
Пример #7
0
 def valorVendidoHoje(self):
     busca = CrudVenda()
     busca.dataEmissao = self.hoje
     busca.dataFim = self.hoje
     busca.relatValorDia()
     self.bt_vendidoHoje.setText(str(busca.valorRecebido))
     self.bt_clientesAtendidos.setText(str(busca.idCliente))
Пример #8
0
    def DataTabVendas(self):
        cliente = self.tx_BuscaVendas.text()
        lista = CrudVenda()
        lista.dataEmissao = QDate.toString(
            self.dt_InicioVenda.date(), "yyyy-MM-dd")

        lista.dataFim = QDate.toString(
            self.dt_FimVenda.date(), 'yyyy-MM-dd')

        lista.statusPagamento = self.cb_pagamento.currentData()
        lista.statusEntrega = self.cb_entrega.currentData()
        lista.listaVenda(cliente)

        while self.tb_Vendas.rowCount() > 0:
            self.tb_Vendas.removeRow(0)
            pass

        i = 0
        while i < len(lista.nomeCliente):
            self.tb_Vendas.insertRow(i)
            self.conteudoTabela(self.tb_Vendas, i, 0, str(lista.id[i]))

            self.TabelaStatus(self.tb_Vendas, i, 1,
                              self.StatusEntrega(lista.idStatusEntrega[i],
                                                 lista.idStatusPagamento[i]))

            self.TabelaNomeTelefone(
                self.tb_Vendas, i, 2, lista.nomeCliente[i],
                self.formatoNumTelefone(lista.celularCliente[i]))
            self.TabelaEntrega(self.tb_Vendas, i, 3,
                               lista.dataEmissao[i],
                               self.StatusEntrega(lista.idStatusEntrega[i]), "")
            self.TabelaEntrega(self.tb_Vendas, i, 4,
                               lista.prazoEntrega[i],
                               self.StatusEntrega(
                                   lista.idStatusEntrega[i]),
                               lista.statusEntrega[i].upper())
            # Coluna Valor pedido e status Pagamento
            self.TabelaEntrega(self.tb_Vendas, i, 5,
                               "R$ " + str(lista.valorTotal[i]),
                               self.StatusEntrega(
                                   lista.idStatusPagamento[i]),
                               lista.statusPagamento[i].upper())

            self.botaoTabela(self.tb_Vendas, i, 6,
                             partial(self.SelectVendaId, lista.id[i]), "#069")

            i += 1
Пример #9
0
    def valorvendidoMes(self):
        busca = CrudVenda()
        busca.dataEmissao = self.primeiroDiaMes()
        busca.dataFim = self.ultimoDiaMes()
        busca.relatValorDia()
        self.bt_vendidoMes.setText(str(busca.valorRecebido))

        # Abrindo Jenela Venda Mes
        pass
Пример #10
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()
Пример #11
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)
Пример #12
0
    def CadVenda(self):
        if not int(self.tb_Itens.rowCount()) < 1:
            INSERI = CrudVenda()
            INSERI.id = self.tx_Cod.text()
            INSERI.idCliente = self.tx_Id.text()
            INSERI.dataEmissao = QDate.toString(self.dt_Emissao.date(),
                                                'yyyy-MM-dd')
            INSERI.prazoEntrega = QDate.toString(self.dt_Prazo.date(),
                                                 'yyyy-MM-dd')
            INSERI.categoria = 1
            INSERI.desconto = self.tx_Desconto.text()
            INSERI.frete = self.tx_Frete.text()
            INSERI.valorTotal = self.tx_TotalFinal.text()
            INSERI.vendedor = self.idUser

            INSERI.inseriVenda()
            self.CadItemVenda()
        pass
Пример #13
0
 def IdCheckPedido(self):
     if not self.tx_Cod.text():
         busca = CrudVenda()
         self.tx_Cod.setText(str(busca.lastIdVenda()))
         pass
Пример #14
0
 def IdCheckVenda(self):
     if not self.tx_IdVenda.text():
         busca = CrudVenda()
         self.tx_IdVenda.setText(str(busca.lastIdVenda()))