# BUSINESS_RULES.md

## Disponibilidade por periodo

Disponibilidade nunca deve ser calculada apenas pela quantidade fisica atual.

O calculo deve considerar quantidade fisica, reservas aprovadas em conflito, itens retirados ainda nao devolvidos, manutencao, perdas, vendas, descarte, itens fora de operacao e periodo solicitado.

Data prevista de devolucao nao e devolucao efetiva. Se a devolucao nao foi registrada, o item continua indisponivel.

## Numeros de estoque

Quantidade fisica, reservada e disponivel sao conceitos diferentes e devem aparecer separadamente quando necessario.

## Reservas

Diretor solicita. Controlador ou Super Admin analisa. Diretor nao aprova a propria reserva. Alteracoes de quantidade aprovada devem registrar diferenca, usuario, data e observacao.

Estados: rascunho, enviada, em analise, aprovada parcialmente, aprovada, rejeitada, cancelada, atendida.

## Retirada

Para patrimonio individual, o QR Code identifica uma unidade fisica. O item deve pertencer a reserva aprovada, a quantidade aprovada nao pode ser excedida, foto de saida e obrigatoria para item retornavel individual, condicao de saida deve ser registrada e a transferencia para o estoque do evento deve gerar inventory_movements.

## Devolucao

Devolucao exige foto, condicao e comparacao com a saida. Divergencia de condicao gera alerta, mas nao bloqueia a devolucao.

## Movimentacoes

Movimentacoes confirmadas nao sao editadas nem apagadas. Erro operacional deve gerar estorno relacionado, com motivo e usuario.

## Nao duplicidade

Uma unidade individual nao pode estar simultaneamente em dois estoques, dois eventos ou locais incompativeis. A unidade fisica possui uma localizacao atual unica.
