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()
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
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
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())
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
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)
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))
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
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
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()
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)
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
def IdCheckPedido(self): if not self.tx_Cod.text(): busca = CrudVenda() self.tx_Cod.setText(str(busca.lastIdVenda())) pass
def IdCheckVenda(self): if not self.tx_IdVenda.text(): busca = CrudVenda() self.tx_IdVenda.setText(str(busca.lastIdVenda()))