Projeto Inovação Compartilhar
Projeto Inovação Compartilhar
Projeto Inovação Compartilhar
NOME:
RA :
SOROCABA / SP
4
NOME
Tutor EAD:
SOROCABA / SP
2024
5
Sumário
1. INTRODUÇÃO......................................................................................................3
2. DESENVOLVIMENTO..........................................................................................4
2.1. Passo 1......................................................................................................... 4
2.2. Passo 2......................................................................................................... 9
2.3. Passo 3.......................................................................................................10
2.4. Passo 4.......................................................................................................15
3. CONCLUSÃO.....................................................................................................18
REFERÊNCIAS......................................................................................................... 19
3
1 INTRODUÇÃO
2 DESENVOLVIMENTO
2.1 PASSO 1
Sprint 2:
2.2 PASSO 2
Interpretação:
2.3 PASSO 3
Criam-se as funções para definição das estruturas de dados, bem como algoritmos
de cadastro e consulta dos produtos, movimentações de estoque e relatórios.
self.id_produto = id_produto
self.tipo = tipo # 'entrada' ou 'saida'
self.quantidade = quantidade
self.data = data
produtos = {}
categorias = {}
movimentacoes = []
Id_produto_counter = 1
id_categoria_counter = 1
id_movimentacao_counter = 1
def cadastrar_categoria(nome):
global id_categoria_counter
categoria = Categoria(id_categoria_counter, nome)
categorias[id_categoria_counter] = categoria
id_categoria_counter += 1
return categoria
def consultar_produto(id_produto):
return produtos.get(id_produto, "Produto não encontrado.")
def consultar_categoria(id_categoria):
return categorias.get(id_categoria, "Categoria não encontrada.")
Algoritmos de Movimentação:
produto = produtos[id_produto]
if tipo == 'saida' and produto.quantidade < quantidade:
raise ValueError("Quantidade insuficiente em estoque.")
if tipo == 'entrada':
produto.quantidade += quantidade
elif tipo == 'saida':
produto.quantidade -= quantidade
movimentacao = Movimentacao(id_movimentacao_counter,
id_produto, tipo, quantidade, data)
movimentacoes.append(movimentacao)
id_movimentacao_counter += 1
return movimentacao
13
def gerar_relatorio_estoque():
relatorio = []
for id_produto, produto in produtos.items():
relatorio.append({
'id_produto': id_produto,
'nome': produto.nome,
'categoria': categorias[produto.categoria].nome,
'quantidade': produto.quantidade,
'preco': produto.preco,
'localizacao': produto.localizacao
}) return relatorio
def consultar_movimentacoes(id_produto):
if id_produto not in produtos:
raise ValueError("Produto não encontrado.")
historico = [mov for mov in movimentacoes if mov.id_produto ==
id_produto]
return historico
def gerar_relatorio_movimentacoes():
relatorio = []
for mov in movimentacoes:
relatorio.append({
'id_movimentacao': mov.id_movimentacao,
'id_produto': mov.id_produto,
'nome_produto': produtos[mov.id_produto].nome,
'tipo': mov.tipo,
14
'quantidade': mov.quantidade,
'data': mov.data
})
return relatorio
Exemplo de Uso:
# Cadastro de categorias
cat1 = cadastrar_categoria("Eletrônicos")
cat2 = cadastrar_categoria("Livros")
# Cadastro de produtos
# Gerar relatórios
relatorio_estoque = gerar_relatorio_estoque()
relatorio_movimentacoes = gerar_relatorio_movimentacoes()
print(relatorio_estoque)
print(relatorio_movimentacoes)
15
2.4 PASSO 4
-Consolidação de Pedidos
Ator: Sistema (Processo Automático)
Descrição: O sistema realiza a consolidação das solicitações de compra e
emite os pedidos para o fornecedor.
Precondições: As solicitações de compra precisam estar registradas no
sistema.
Pós-condições: O pedido consolidado é enviado para o fornecedor.
Figura Diagrama:
18
Fonte autor.
19
3 CONCLUSÃO
REFERÊNCIAS
TRELLO, https://trello.com/b/zCsaYAKw/desenvolvimento-de-sistemas-de-
gerenciamento-de-estoque-gideone