-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdesafio2.py
125 lines (111 loc) · 5.04 KB
/
desafio2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
"""
Desafio 02:
Tomando por base o banco de dados criado em aula, com a tabela produto, crie uma nova tabela de nome "venda", com os seguintes campos:
- IdVenda
- NomeCliente
- IdProduto
- Quantidade
- DataHoraVenda
Faça um programa em Python com um menu interável no Console, usando while, onde o usuário poderá escolher as seguintes opções para executar:
1) Cadastrar novo produto
2) Visualizar todos os produtos
3) Visualizar um produto específico de acordo com o ID
4) Registrar venda, solicitando que o usuário digite o nome do cliente que está realizando a compra, o ID do produto que será comprado e a quantidade comprada. Ao registrar a venda, deve-se debitar a quantidade de produtos comprados do estoque, e não havendo estoque suficiente para a compra, não concluir a venda e apresentar uma mensagem em tela falando que não é possível comprar aquela determinada quantidade do produto.
A entrega do desafio 02 deve ser feita através de um repositório no GITHub
"""""
import mysql.connector
conn = mysql.connector.connect(
host='127.0.0.1',
user='root',
password='root',
database='demodb'
)
cursor = conn.cursor()
def CadastrarProduto():
try:
produto = {}
produto["nome"] = input("Digite o nome do produto: ")
produto["valor"] = input("Digite o valor do produto: ")
produto["cod_barras"] = input("Digite o código de barras do produto: ")
produto["estoque"] = input("Digite o estoque do produto: ")
cursor.execute("insert into produtos (nome, valor, cod_barras, estoque) "
"values (%s, %s, %s, %s)", (produto["nome"], produto["valor"],
produto["cod_barras"], produto["estoque"]))
conn.commit()
print("Produto cadastrado com sucesso...")
except:
print("Infelizmente tivemos um erro no cadastro do produto. Tente novamente mais tarde...")
def VisualizarProdutos():
try:
cursor.execute("select id, nome, valor, cod_barras, estoque from produtos")
print("Produtos:")
for produto in cursor.fetchall():
print(produto)
print("\n")
input("digite qualquer tecla para continuar...")
except:
print("Infelizmente tivemos problemas ao selecionar produtos. Tente novamente mais tarde...")
def VisualizarProdutoEspecifico():
try:
idProduto = input("Digite um ID de produto: ")
cursor.execute("select id, nome, valor, cod_barras, estoque from produtos where id = %s",
(idProduto,))
for produto in cursor.fetchall():
print(produto)
print("\n")
input("digite qualquer tecla para continuar...")
except:
print("Infelizmente não foi possível selecionar um produto. Tente novamente mais tarde...")
def RegistrarVenda():
nomeCliente = input("Digite o nome do cliente: ")
idProduto = input("Digite o ID produto que será vendido: ")
quantidade = float(input("Digite a quantidade do produto que será vendida: "))
estoqueProduto = 0
cursor.execute("select estoque from produtos where id = %s", (idProduto,))
for produto in cursor.fetchall():
estoqueProduto = float(produto[0])
if estoqueProduto < quantidade:
print("Venda não pode ser efetivada. Não há estoque suficiente...")
else:
novoEstoque = estoqueProduto - quantidade
cursor.execute("insert into venda (NomeCliente, IdProduto, Quantidade, DataHoraVenda) "
"values (%s, %s, %s, now())", (nomeCliente, idProduto, quantidade))
cursor.execute("update produtos set estoque = %s where id = %s",
(novoEstoque, idProduto))
conn.commit()
print("Venda registrada com sucesso")
opcao = 0
while opcao >= 0 and opcao < 5:
if opcao == 0:
print("Escolha uma opção:\n"
"1) Cadastrar Novo Produto\n"
"2) Visualizar todos os produtos\n"
"3) Visualizar um produto específico\n"
"4) Registrar Venda\n"
"5) Sair")
digitacaoInvalida = True
while digitacaoInvalida:
try:
opcao = int(input("Digite um comando: "))
if opcao == 0:
print("comando inválido...")
else:
digitacaoInvalida = False
except Exception as e:
print("comando inválido...")
elif opcao == 1:
print("Opção selecionada: 1) Cadastrar Novo Produto")
CadastrarProduto()
opcao = 0
elif opcao == 2:
print("Opção selecionada: 2) Visualizar todos os produtos")
VisualizarProdutos()
opcao = 0
elif opcao == 3:
print("Opção selecionada: 3) Visualizar um produto específico")
VisualizarProdutoEspecifico()
opcao = 0
elif opcao == 4:
print("Opção selecionada: 4) Registrar Venda")
RegistrarVenda()
opcao = 0