Metadata-Version: 2.4
Name: ProjetoUmMADS
Version: 0.0.2
Summary: Projeto de MADS - Grupo 7 - Gestão de Stocks
Home-page: https://github.com/JoaoPinheiro1311/ProjetoUmMADS
Author: JoaoPinheiro1311
Author-email: a040698@ipmaia.pt
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

# ðŸ“¦ GestÃ£o de Stocks

**Sistema modular para gestÃ£o de armazÃ©ns e mercadorias, com anÃ¡lise de margens, alertas e relatÃ³rios.**

Este pacote permite:
- Criar e gerir mÃºltiplos armazÃ©ns com capacidade e localizaÃ§Ã£o
- Adicionar, remover e transferir mercadorias
- Calcular valores mÃ©dios, margens de lucro e emitir alertas automÃ¡ticos
- Gerar logs e visualizaÃ§Ãµes grÃ¡ficas

---

## ðŸ“¦ InstalaÃ§Ã£o

```bash
pip install ProjetoUmMADS==0.0.1
```

## AdiÃ§Ã£o de armazÃ©ns
armas =  []

armazem_A = Armazem("ArmazÃ©m A", 1000, Lat=42.1, Lon=-8.6)
armazem_B = Armazem("ArmazÃ©m B", 1500, Lat=42.1, Lon=-8.6)
armazem_C = Armazem("ArmazÃ©m C", 2000, Lat=42.1, Lon=-8.6)

## Exemplos de erros e avisos
armazem_D = Armazem("ArmazÃ©m C", 260, Lat=42.1, Lon=-8.6)

## AdiÃ§Ã£o de dados
armazem_A.adicionar_mercadoria("Arroz", 30, 1.2, 2.0)
armazem_A.adicionar_mercadoria("FeijÃ£o", 20, 1.5, 1.8)
armazem_B.adicionar_mercadoria("AÃ§Ãºcar", 50, 1.0, 1.5)
armazem_C.adicionar_mercadoria("Sal", 40, 0.8, 1.0)

## Exemplos de erros e avisos
armazem_C.adicionar_mercadoria("cafÃ©", 50, 1.0, 1.5)
armazem_C.adicionar_mercadoria("cafÃ©", -10, .8, 1.5)

## RemoÃ§Ã£o de mercadoria
armazem_A.remover_mercadoria("Latas", 10)

## TransferÃªncia entre armazÃ©ns
armazem_A.transferir_mercadoria(armazem_B, "FeijÃ£o", 10)
armazem_B.transferir_mercadoria(armazem_C, "AÃ§Ãºcar", 20)

Armazem.listar_armazens()

## Criar armazÃ©m
armazem_A = Armazem("A", 1000, 0, 0)

## Adicionar mercadoria para atingir 90%
armazem_A.adicionar_mercadoria("Latas", 90, 1.5, 0.3)

## Verificar capacidade
armazem_A.verificar_capacidade()

## Mostrar logs
armazem_A.mostrar_logs()

armazem_A.custo_medio_produto("Latas")

## Adicionando mercadoria com preÃ§o de venda
armazem_A.adicionar_mercadoria("Latas", 50, 2.0, 0.5)  # PreÃ§o de venda = 2.0â‚¬
armazem_A.adicionar_mercadoria("Latas", 50, 3.0, 0.5)  # PreÃ§o de venda = 3.0â‚¬
armazem_B.adicionar_mercadoria("Latas", 50, 3.0, 0.5)  # PreÃ§o de venda = 3.0â‚¬

## Calcular o valor mÃ©dio de venda
armazem_A.valor_medio_venda_produto("Latas")

## Adicionando mercadorias com preÃ§os de custo e de venda
armazem_A.adicionar_mercadoria("Latas", 10, 2.0, 0.5)  # PreÃ§o de custo = 2.0â‚¬
armazem_A.stock["Latas"]["preÃ§o_venda"] = 3.0  # PreÃ§o de venda = 3.0â‚¬

armazem_A.adicionar_mercadoria("Peras", 10, 1.0, 0.3)  # PreÃ§o de custo = 1.0â‚¬
armazem_A.stock["Peras"]["preÃ§o_venda"] = 5.5  # PreÃ§o de venda = 5.5â‚¬

## Listar produtos com maior margem de lucro
armazem_A.listar_produtos_maior_margem()

## Adicionando mercadorias
armazem_A.adicionar_mercadoria("Latas", 200, 2.0, 0.5)  # 40 unidades
armazem_B.adicionar_mercadoria("Peras", 200, 1.0, 0.3)  # 30 unidades

## Verificar alertas de capacidade
armazem_A.alerta_quase_cheio()
armazem_A.alerta_quase_vazio()

## Remover mercadoria para verificar alerta de quase vazio
armazem_B.remover_mercadoria("Peras", 300)

## Verificar alertas de capacidade novamente
armazem_A.alerta_quase_cheio()
armazem_A.alerta_quase_vazio()
armazem_B.alerta_quase_cheio()
armazem_B.alerta_quase_vazio()

armazem_A.listar_produtos_maior_margem()
armazem_A.grafico_evolucao_margens()

Armazem.listar_armazens_mais_lucrativos()
