====== Ressuprimento com Etiquetas Seriadas ======
**Funcionalidade disponível a partir da Release 1.32.x** \\
Este módulo exige que o parâmetro de controle de Etiquetas Seriadas esteja ativo na filial. \\
Jira de referência: [[https://szsolucoes.atlassian.net/browse/BEES-3914|BEES-3914]]
===== 1. Visão Geral =====
O módulo de Ressuprimento foi adequado para clientes que utilizam o controle de **Etiquetas Seriadas** (por exemplo, BeautyColor). Anteriormente, o módulo movimentava itens apenas pela **quantidade** do produto. Com esta adequação, se o parâmetro do cliente estiver ativo, o Ressuprimento (Padrão e Kanban) passa a exigir e movimentar fisicamente por **Etiqueta Agrupadora (pallet)** ou **Seriada (caixa)**.
===== 2. Pré-requisitos =====
* Parâmetro ''bol_serial_control_depot = 1'' ativo na tabela ''bee_branches_settings'' da filial.
* Etiquetas agrupadoras com capacidade máxima configurada no endereço de picking.
* Ponto de ressuprimento definido no cadastro de produto-filial.
===== 3. Regras de Negócio =====
==== 3.1 Critério de Seleção — FEFO + FIFO ====
Para ordenação da busca de saldo no **pulmão** (depósito de reserva), o sistema obedece a dois critérios obrigatórios:
- **FEFO (First Expired, First Out):** Prioriza a etiqueta com a **menor data de validade**. Comportamento original mantido.
- **FIFO (First In, First Out):** Critério de desempate. Se duas etiquetas tiverem a mesma data de validade, o sistema seleciona primeiro a etiqueta com a **data de fabricação mais antiga**.
==== 3.2 Bloqueio de Fracionamento (Trava de Capacidade Lógica) ====
**Regra Crítica:** Não é permitido o ressuprimento **parcial** de uma etiqueta agrupadora.
O sistema valida a **Capacidade Lógica** do endereço de picking antes de criar a missão de ressuprimento:
* Fórmula: ''Capacidade Lógica = Capacidade Máxima Configurável - (Saldo Físico + Alocado + Reservado + Pendente)''
* A missão de ressuprimento **SÓ é criada** se o endereço de destino couber **100%** da quantidade contida na etiqueta agrupadora do pulmão.
* Se não couber integralmente, a missão **não é gerada** — para evitar a quebra do pallet (fracionamento).
**Por que esse bloqueio existe?** O fracionamento de pallets seriados invalida o rastreamento FEFO/FIFO, pois gera etiquetas-filhas sem vínculo com o lote original, comprometendo a auditoria fiscal e a integridade do controle de validade.
===== 4. Fluxo Operacional no Coletor =====
Como o ressuprimento parcial está bloqueado, o fluxo torna-se mais direto (movimentação de agrupadora fechada):
- O usuário aceita a missão de ressuprimento.
- Bipa o **endereço de origem** (pulmão/reserva).
- Bipa a **Etiqueta Agrupadora** (pallet).
- O sistema transfere logicamente o material para o operador.
- O usuário se dirige ao **endereço de destino** (picking).
- Confirma o abastecimento de 100% no local.
===== 5. Exemplo Prático (Dados de QA Validados) =====
Produto testado: **LPA02100 — COL CR PERM KIT BEAUTYCOLOR 1.0 PRETO ONIX**
| Parâmetro | Valor |
| ---- | ---- |
| Capacidade máxima do picking | 10.080 UN |
| Ponto de ressuprimento | 8.641 UN |
| Saldo atual do picking (RAM13P01) | 7.200 UN |
| Agrupadora encontrada no pulmão (RMM38P04) | 1.440 UN |
| Etiqueta agrupadora | ''20260604900020'' |
| Lote | ''184697'' |
**Validação da Regra de 100%:**
* Saldo atual (7.200) + Agrupadora (1.440) = 8.640 UN
* 8.640 < 10.080 (capacidade máxima) ✅
* Ressuprimento integral de **1.440 UN** criado com sucesso.
===== 6. Parametrização =====
A funcionalidade é controlada pelo parâmetro de filial:
| Parâmetro | Tabela | Valor para Ativar |
| ---- | ---- | ---- |
| ''bol_serial_control_depot'' | ''bee_branches_settings'' | ''1'' |
Quando o parâmetro está **inativo** (valor ''0'' ou ausente), o ressuprimento funciona pelo comportamento padrão (por quantidade, sem etiqueta).
===== 7. Considerações para QA =====
* Teste com dois produtos com a **mesma data de validade** e datas de fabricação diferentes para validar o critério FIFO de desempate.
* Teste a trava de capacidade criando um cenário onde a agrupadora tem mais unidades do que o espaço disponível no picking — a missão **não deve ser criada**.
* Após o ressuprimento, validar que o saldo do picking aumentou exatamente a quantidade da agrupadora movimentada.
----
//Documentação gerada via Assistente BeeStock — /CriarManual // \\
//Última atualização: Setembro/2026//