Relatório Projeto Multidisciplinar VI
Relatório Projeto Multidisciplinar VI
Relatório Projeto Multidisciplinar VI
Entrevista
- Razão Social: Dunder Mifflin Paper Company, Nome fantasia: Dunder Mifflin,
CNPJ: 99.824.777/0001-82, Instituição privada, Localizada em: Avenida
Washington, 702, Scranton.
- Somos uma empresa de papel, vendemos papel de cartas, a4, a5, a3, papel
para fotos entre outros.
- Nosso objetivo é inovar no sistema tecnológico, para que fique mais fácil
organizar os produtos
- Como dito antes, inicialmente podemos fazer de uma forma simples, começando
com um gratuito, e se as coisas se complicarem faremos com um banco de dados
maior.
- Bem, desde que funcione pode ser de qualquer forma, deixo a sua escolha.
Após a entrevista com Michael Scott, definimos que iremos criar um sistema de
login, utilizaremos o nome de um dos funcionários e criaremos uma senha-base para
que possamos mostrar o projeto.
Criamos as defs e as variáveis para poder definir o que cada coisa iria fazer no
programa, assim criando uma caixa de login, utilizamos também um código para
criar uma tabela pelo próprio código do python, essa tabela seria “Funcionários” e
teria as colunas Jim e 123, que seriam o login e a senha para a aplicação.
Após isso criamos a Janela que adicionaria produtos ao nosso banco de dados,
assim, podendo descrevê-los com nome, descrição, preço e estoque.
import tkinter as tk
from tkinter import messagebox
import sqlite3
import mysql.connector
entry_nome = None
entry_descricao = None
entry_preco = None
entry_estoque = None
def login():
nome = entry_username.get()
senha = entry_password.get()
conn = sqlite3.connect('dunder.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE funcionarios (
id INTEGER PRIMARY KEY,
nome TEXT,
senha TEXT
)
''')
print("Tabela 'funcionarios' criada com sucesso!")
cursor.execute('''
SELECT * FROM funcionarios WHERE nome = ? AND senha = ?
''', (nome, senha))
user = cursor.fetchone()
if user:
messagebox.showinfo("Login", "Login bem-sucedido!")
root.destroy()
abrir_tela_cadastro_produto()
else:
messagebox.showerror("Erro", "Usuário ou senha incorretos!")
conn.close()
def abrir_tela_cadastro_produto():
global entry_nome, entry_descricao, entry_preco, entry_estoque
janela = tk.Tk()
janela.title("Cadastro de Produto")
janela.mainloop()
def salvar_produto():
conexao = mysql.connector.connect(
host="localhost",
user="root",
password="admin",
database="dunder"
)
cursor = conexao.cursor()
nome = entry_nome.get()
descricao = entry_descricao.get()
preco = float(entry_preco.get())
estoque = int(entry_estoque.get())
conexao.commit()
cursor.close()
conexao.close()
entry_nome.delete(0, tk.END)
entry_descricao.delete(0, tk.END)
entry_preco.delete(0, tk.END)
entry_estoque.delete(0, tk.END)
root = tk.Tk()
root.title("Dunder Mifflin Login")
root.mainloop()
Código do sistema de compras:
import mysql.connector
import tkinter as tk
from tkinter import messagebox
class Produto:
def __init__(self, nome, preco, estoque):
self.Nome = nome
self.Preco = preco
self.Estoque = estoque
def conectar_banco_dados():
return mysql.connector.connect(
host="localhost",
user="root",
password="admin",
database="dunder"
)
def carregar_produtos():
produtos = []
try:
conexao = conectar_banco_dados()
cursor = conexao.cursor()
cursor.execute("SELECT Nome, Preco, Estoque FROM produtos")
for nome, preco, estoque in cursor:
produtos.append(Produto(nome, preco, int(estoque)))
except mysql.connector.Error as erro:
print("Erro ao carregar produtos:", erro)
finally:
if conexao.is_connected():
cursor.close()
conexao.close()
return produtos
def comprar_produto_interface():
escolha = entry_produto.get().strip().lower()
quantidade = int(entry_quantidade.get())
produto_escolhido = None
for produto in produtos:
if produto.Nome.lower() == escolha:
produto_escolhido = produto
break
if produto_escolhido:
comprar_produto(produto_escolhido, quantidade)
else:
messagebox.showwarning("Produto não encontrado", "Produto não
encontrado.")
def atualizar_interface():
text_produtos.delete(1.0, tk.END)
for produto in produtos:
text_produtos.insert(tk.END, f"{produto.Nome} -
R${produto.Preco} - Estoque: {produto.Estoque}\n")
produtos = carregar_produtos()
root = tk.Tk()
root.title("Loja")
label_instrucao = tk.Label(root, text="Digite o nome do produto e a
quantidade desejada:")
label_instrucao.pack()
frame_inputs = tk.Frame(root)
frame_inputs.pack()
entry_produto = tk.Entry(frame_inputs)
entry_produto.grid(row=0, column=1)
entry_quantidade = tk.Entry(frame_inputs)
entry_quantidade.grid(row=1, column=1)
atualizar_interface()
root.mainloop()