criei esse codigo mas nao to conseguindo conectar o banco de dados alguem arruma?
import os
# Dados iniciais
clientes = []
produtos = []
estoque = {}
vendas = []
# Funções
def limpar_tela():
os.system('cls' if
os.name == 'nt' else 'clear')
def cadastrar_cliente():
nome = input("Digite o nome do cliente: ")
clientes.append(nome)
print(f"Cliente '{nome}' cadastrado com sucesso!")
def incluir_produto():
produto = input("Digite o nome do produto: ")
quantidade = int(input(f"Digite a quantidade de '{produto}': "))
preco = float(input(f"Digite o preço unitário de '{produto}': "))
produtos.append(produto)
estoque[produto] = {'quantidade': quantidade, 'preco': preco}
print(f"Produto '{produto}' incluído com sucesso!")
def controlar_vendas():
if not clientes:
print("Nenhum cliente cadastrado! Cadastre um cliente antes de realizar vendas.")
return
if not produtos:
print("Nenhum produto cadastrado! Cadastre produtos antes de realizar vendas.")
return
cliente = input("Digite o nome do cliente que está comprando: ")
if cliente not in clientes:
print(f"Cliente '{cliente}' não encontrado.")
return
produto = input("Digite o nome do produto que está sendo comprado: ")
if produto not in estoque:
print(f"Produto '{produto}' não encontrado no estoque.")
return
quantidade = int(input(f"Digite a quantidade de '{produto}' que está sendo comprada: "))
if quantidade > estoque[produto]['quantidade']:
print(f"Estoque insuficiente! Temos apenas {estoque[produto]['quantidade']} unidades de '{produto}'.")
return
total = quantidade * estoque[produto]['preco']
vendas.append({'cliente': cliente, 'produto': produto, 'quantidade': quantidade, 'total': total})
estoque[produto]['quantidade'] -= quantidade
print(f"Venda realizada com sucesso! Total: R${total:.2f}")
def ver_estoque():
if not estoque:
print("Estoque vazio!")
return
print("\nEstoque atual:")
for produto, dados in estoque.items():
print(f"- {produto}: {dados['quantidade']} unidades disponíveis, R${dados['preco']:.2f} cada.")
# Menu principal
def menu():
while True:
print("\n===== Sistema de Gestão =====")
print("1. Cadastrar cliente")
print("2. Incluir produto")
print("3. Controlar vendas")
print("4. Ver estoque")
print("5. Sair")
opcao = input("Escolha uma opção: ")
if opcao == '1':
cadastrar_cliente()
elif opcao == '2':
incluir_produto()
elif opcao == '3':
controlar_vendas()
elif opcao == '4':
ver_estoque()
elif opcao == '5':
print("Saindo do sistema... Até logo!")
break
else:
print("Opção inválida! Tente novamente.")
input("\nPressione Enter para continuar...")
limpar_tela()
# Executar o programa
if __name__ == "__main__":
menu()
import sqlite3
class Loja:
def __init__(self):
# Conectar ou criar banco de dados
self.conn = sqlite3.connect('loja.db')
self.cursor = self.conn.cursor()
self.criar_tabelas()
def criar_tabelas(self):
# Criando as tabelas no banco de dados
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS clientes (
id_cliente INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT,
email TEXT
)
''')
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS produtos (
id_produto TEXT PRIMARY KEY,
nome TEXT,
preco REAL,
quantidade INTEGER
)
''')
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS vendas (
id_venda INTEGER PRIMARY KEY AUTOINCREMENT,
id_produto TEXT,
quantidade INTEGER,
valor REAL,
FOREIGN KEY(id_produto) REFERENCES produtos(id_produto)
)
''')
def cadastrar_cliente(self, nome, email):
self.cursor.execute('''
INSERT INTO clientes (nome, email) VALUES (?, ?)
''', (nome, email))
self.conn.commit()
return "Cliente cadastrado com sucesso!"
def incluir_produto(self, id_produto, nome, preco, quantidade):
self.cursor.execute('''
INSERT INTO produtos (id_produto, nome, preco, quantidade) VALUES (?, ?, ?, ?)
''', (id_produto, nome, preco, quantidade))
self.conn.commit()
return "Produto incluído com sucesso!"
def registrar_venda(self, id_produto, quantidade_vendida):
# Verificando se o produto existe no banco de dados
self.cursor.execute('''
SELECT * FROM produtos WHERE id_produto = ?
''', (id_produto,))
produto = self.cursor.fetchone()
if not produto:
return "Produto não encontrado!"
# Verificando se o estoque é suficiente
if produto[3] < quantidade_vendida:
return "Estoque insuficiente!"
# Atualizando a quantidade do produto
nova_quantidade = produto[3] - quantidade_vendida
self.cursor.execute('''
UPDATE produtos SET quantidade = ? WHERE id_produto = ?
''', (nova_quantidade, id_produto))
# Registrando a venda
valor_venda = quantidade_vendida * produto[2]
self.cursor.execute('''
INSERT INTO vendas (id_produto, quantidade, valor) VALUES (?, ?, ?)
''', (id_produto, quantidade_vendida, valor_venda))
self.conn.commit()
return "Venda registrada com sucesso!"
def ver_estoque(self):
self.cursor.execute('''
SELECT * FROM produtos
''')
produtos = self.cursor.fetchall()
if produtos:
estoque = []
for produto in produtos:
estoque.append(f"ID: {produto[0]}, Nome: {produto[1]}, Preço: R${produto[2]:.2f}, Quantidade: {produto[3]}")
return "\n".join(estoque)
else:
return "Estoque vazio."
# Exemplo de uso
if __name__ == "__main__":
loja = Loja()
print(loja.cadastrar_cliente("João Silva", "
jo...@email.com"))
print(loja.incluir_produto("001", "Notebook", 3500.00, 10))
print(loja.incluir_produto("002", "Mouse", 50.00, 100))
print("\n--- Estoque Atual ---")
print(loja.ver_estoque())
print("\n--- Realizando Venda ---")
print(loja.registrar_venda("001", 2))
print("\n--- Estoque Atualizado ---")
print(loja.ver_estoque())