-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProdutos.py
More file actions
147 lines (125 loc) · 5.54 KB
/
Produtos.py
File metadata and controls
147 lines (125 loc) · 5.54 KB
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
import tkinter as tk
class Produto:
def __init__(self, codigo, nome, quantidade, valor_unitario):
self.codigo = codigo
self.nome = nome
self.quantidade = quantidade
self.valor_unitario = valor_unitario
def __str__(self):
return f"Código:{self.codigo}\nNome:{self.nome}\nQuantidade:{self.quantidade}\n Valor_unitário: {self.valor_unitario}\n"
class gerenciadorProdutos:
def __init__(self, arquivo):
self.arquivo = arquivo
self.criar_arquivo()
def criar_arquivo(self):
try:
with open(self.arquivo, "x"):
pass
except FileExistsError:
pass
def codigo_existe(self, codigo):
with open(self.arquivo, "r") as file:
for linha in file:
valores = linha.strip().split(";")
if len(valores) == 4:
codigo_produto, _, _, _ = valores
if codigo_produto == codigo:
return True
return False
def incluir_produto(self, produto):
if self.codigo_existe(produto.codigo):
print("Erro: O código do produto já existe. ")
return
with open(self.arquivo, "a") as file:
linha = f"{produto.codigo}; {produto.nome};{produto.quantidade};{produto.valor_unitario}\n"
file.write(linha)
def consultar_produto(self, codigo):
with open(self.arquivo, "r") as file:
for linha in file:
Valores = linha.strip().split(";")
if len(Valores) == 4:
codigo_produto, nome, quantidade, valor_unitario = Valores
if codigo_produto == codigo:
produto = Produto(codigo_produto, nome, int(quantidade),
float(valor_unitario))
return Produto
return nome
def alterar_produto(self, codigo, novo_produto):
with open(self.arquivo, "r") as file:
linhas = file.readlines()
with open(self.arquivo, "w") as file:
for linha in linhas:
valores = linha.strip().split(";")
if len(valores) == 4:
codigo_produto, _, _, _ = valores
if codigo_produto == codigo:
file.write(f"{novo_produto.codigo};{novo_produto.nome};{novo_produto.quantidade};{novo_produto.valor_unitario}\n")
else:
file.write(linha)
def excluir_produto(self, codigo):
with open(self.arquivo, "r") as file:
linhas = file.readlines()
with open(self.arquivo, "w") as file:
for linha in linhas:
valores = linha.strip().split(";")
if len(valores) == 4:
codigo_produto, _, _, _ = valores
if codigo_produto != codigo:
file.write(linha)
def listar_produto(self):
with open(self.arquivo, "r") as file:
for linha in file:
valores = linha.strip().split(";")
if len(valores) == 4:
codigo, nome, quantidade, valor_unitario = valores
produto = Produto(codigo, nome,
int(quantidade), float(valor_unitario))
print(produto)
def exibir_menu():
print("1. Incluir produto")
print("2. Consultar produto")
print("3. Alterar produto")
print("4. Excluir produto")
print("5. Listar produtos")
print("6. Sair")
gerenciador = gerenciadorProdutos("listas_produtos.txt")
while True:
exibir_menu = exibir_menu()
opcao = input("Digite a opção desejada: ")
if opcao == "1":
codigo = input("Digite o código do produto: ")
if gerenciador.codigo_existe(codigo):
print("Erro: o código do produto já existe. ")
continue
nome = input("Digite o nome do produto: ")
quantidade = int(input("Digite a quantidade do produto: "))
valor_unitario = float(input("Digite o valor unitário do produto: "))
produto = Produto(codigo, nome, quantidade, valor_unitario)
gerenciador.incluir_produto(produto)
print("Produto incluido com sucesso!")
elif opcao == "2":
codigo = input("Digite o código do produto: ")
produto = gerenciador.consultar_produto(codigo)
if produto:
print(produto)
else:
print("Produto não encontrado. ")
elif opcao== "3":
codigo = input("Digite o código do produto a ser alterado: ")
novo_codigo = input("Digite o novo código do produto: ")
novo_nome = input("Digite o novo nome do produto: ")
nova_quantidade = int(input("Digite a nova quantidade do produto: "))
novo_valor_unitario = float(input("Digite o novo valor unitário do produtoF: "))
novo_produto = Produto(novo_codigo, novo_nome, nova_quantidade, novo_valor_unitario )
print("Produto alterado com sucesso! ")
elif opcao == "4":
codigo = input("Digite o código do produto a ser excluido: ")
gerenciador.excluir_produto (codigo)
print("Produto excluido com sucesso! ")
elif opcao == "5":
gerenciador.listar_produtos()
elif opcao == "6":
print("Sair do programa...")
break
else:
print("Opção inválida. Digite novamene.")