Skip to content

Commit

Permalink
a ajustar função de remoção de item do pedido, e load do historico de…
Browse files Browse the repository at this point in the history
… notas; conforme encontro outros bugs, vou resolvendo
  • Loading branch information
hyukiody committed Aug 8, 2024
1 parent 0d93bc3 commit 99b5cba
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 27 deletions.
Binary file modified __pycache__/class_nota.cpython-310.pyc
Binary file not shown.
Binary file modified __pycache__/class_pedido.cpython-310.pyc
Binary file not shown.
Binary file modified __pycache__/class_produto.cpython-310.pyc
Binary file not shown.
46 changes: 34 additions & 12 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def finalizar_pedido():
selecao = int(input('O pedido que está prestes a finalizar não poderá ser modificado! Insira o CODIGO do Pedido a finalizar: '))
#muda o statsus do pedido cujo código é "selecao" para fechado, alterando o atributo status de 0 para 1
pedido_atual = buscar_pedido_por_codigo(selecao)
pedido_atual.status = 1
pedido_atual._status = 1
print('Pedido finalizado com sucesso! \nAgora insira os dados do cliente e funcionário. \n')
cliente_atual = cadastrar_cliente()
funcionario_atual = cadastrar_funcionario()
Expand Down Expand Up @@ -111,13 +111,21 @@ def pedido_adicionar_item():
#Função Remover Item do Pedido: Essa função apaga um objeto do tipo item do pedido da lista que armazena os itens de um determinado pedido
def pedido_remover_item():
int_pedido_selecionado = int(input('Informe o código do pedido para remover um item selecionado: '))
#verifica se pedido existe
# verifica se pedido existe
if buscar_pedido_por_codigo(int_pedido_selecionado):
pedido = pedidos[int_pedido_selecionado]
int_codigo_item = int(input('Informe o número do item para remover deste pedido ' + str(pedido._codigo_pedido) + ': '))
# verifica se número intem informado existe: não faz sentido remover item 5 se ele não existe
# if pedido.quantidade_itens_pedido() <= int_codigo_item:
pedido.remover_item_pedido(int_codigo_item)
# verifica se número item informado existe
item_pedido = None
for item in pedido._itens_pedidos:
if item._produto._codigo_produto == int_codigo_item:
item_pedido = pedido._itens_pedidos.index(item)
break # Exit the loop once the item is found
if item_pedido:
pedido.remover_item_pedido(item_pedido)
print("Item removido com sucesso!")
else:
print("Item não encontrado no pedido.")
else:
print("Pedido inexistente")
return False
Expand Down Expand Up @@ -158,12 +166,18 @@ def cadastrar_produto():

#Função Remover Produdo: Busca um objeto do tipo produto pelo seu código e o apaga do dicionário estoque de produtos
def remover_produto():
int_codigo_remocao = int(input('Informe o código do produto para remoção: '))
codigo_remocao = int(input('Informe o código do produto para remoção: '))
produto_remover = None
for produto in estoque_produtos:
if produto._codigo_produto == int_codigo_remocao:
produto_remover =produto
print("Produto (" + produto_remover._descricao + ") removido!")
del estoque_produtos[int_codigo_remocao]
if produto._codigo_produto == codigo_remocao:
produto_remover = produto
if produto_remover:
print("Produto (" + produto_remover._descricao + ") removido!")
estoque_produtos.remove(produto_remover)
else:
print("Produto não encontrado!")



#Função Buscar Produto por Código: Informado o código de um produto, pesquisa o produto no dicionário estoque de produtos, isso se aproveita do fato de o código de um produto ser o seu index
def buscar_produto_por_codigo(int_codigo_produto):
Expand Down Expand Up @@ -294,14 +308,22 @@ def readAndLoad_method(arquivo, registro, cls):
elif (opcao_escolhida == "2"):
produto = cadastrar_produto()
if (produto):
# adiciona produto ao nosso estoque
for obj in estoque_produtos:
if obj._codigo_produto == produto._codigo_produto:
print("Produto já cadastrado!")
break
estoque_produtos.append(produto)
print("Produto cadastrado com sucesso!")
else:
print("Falha no cadastro do produto!")
# adiciona produto ao nosso estoque

# opc 3
elif (opcao_escolhida == "3"):
remover_produto()
# opc 4
elif (opcao_escolhida == "4"):
int_codigo_produto = input('Informe o código do produto para busca: ')
int_codigo_produto = int(input('Informe o código do produto para busca: '))
produto_pesquisa = buscar_produto_por_codigo(int_codigo_produto)
if (produto_pesquisa):
print("Produto encontrado:")
Expand Down
4 changes: 2 additions & 2 deletions class_nota.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,11 @@ def fromStringToSaveLoadMethod(String):
try:
attributes = String.strip().split(',')
if len(attributes) ==5:
codigo_pedido = attributes[0]
codigo_pedido = int(attributes[0])
cliente = attributes[1]
atendente = attributes[2]
horaGerada = attributes[3]
valorTotal = attributes[4]
valorTotal = float(attributes[4])
return Nota.__init__construtorDoRegistro(codigo_pedido, cliente, atendente, horaGerada,valorTotal)
else:
print(f"Erro na leitura do arquivo {String.strip()}")
Expand Down
16 changes: 13 additions & 3 deletions class_pedido.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,20 @@ def _itens_pedidos(self, value):
self.__itens_pedidos = value

def adicionar_item_ao_pedido(self, itempedido):
self.__itens_pedidos.append(itempedido)
item_found = False
for item in self.__itens_pedidos:
if item._produto._codigo_produto == itempedido._produto._codigo_produto:
item._quantidade += itempedido._quantidade
item._preco_item = item._produto._preco * item._quantidade
item_found = True
print("Pedido atualizado com sucesso!")
break # Exit the loop once the item is found and updated
if not item_found:
self.__itens_pedidos.append(itempedido)
print("Item adicionado ao pedido com sucesso!")

def remover_item_pedido(self, codigo_item):
self.__itens_pedidos.pop(codigo_item)
def remover_item_pedido(self, itempedido):
self.__itens_pedidos.pop(itempedido)

def quantidade_itens_pedido(self):
return int(len(self.__itens_pedidos))
Expand Down
12 changes: 6 additions & 6 deletions class_produto.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ def _validade(self, value):
def toStringForSaveLoadMethod(self):
return str(f'{self.__codigo_produto},{self.__descricao},{self.__preco},{self.__validade}')

def fromStringToSaveLoadMethod(String):
attributes = String.strip().split(',')
def fromStringToSaveLoadMethod(string):
attributes = string.strip().split(',')
if len(attributes) == 4:
codigo_produto = attributes[0]
descricao = attributes[1]
codigo_produto = int(attributes[0])
descricao = str(attributes[1])
preco = float(attributes[2])
validade = attributes[3]
validade = str(attributes[3])
return Produto(codigo_produto,descricao,preco,validade)
else:
print(f"Erro: Linha malformada encontrada: {String.strip()}")
print(f"Erro: Linha malformada encontrada: {string.strip()}")
return None
2 changes: 2 additions & 0 deletions notas_registro.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1,eu,eu,2024-08-08 15:36:43,240.0
1,1,1,2024-08-08 15:37:08,240.0
5 changes: 1 addition & 4 deletions produtos_registro.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
456,teste1,23.0,2024-08-08 00:00:00
789,teste2,20.0,2025-08-08 00:00:00
123,teste1,24.0,2024-08-08 00:00:00
123,teste12,24.0,2024-08-08 00:00:00
123,teste,24.0,2024-08-08 00:00:00

0 comments on commit 99b5cba

Please sign in to comment.