01. DADOS GERAIS

Linha de Produto:Franquias e Redes
Segmento:Varejo
Módulo:Server e Client
Função:Código Promocional
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVARLIVECP-7874


02. SITUAÇÃO/REQUISITO

Implementar a alteração automática do status do Código Promocional para "Distribuído" sempre que um código for concedido como benefício de uma promoção. Essa atualização visa garantir a rastreabilidade e integridade dos códigos utilizados.

Objetivo

Evitar a reutilização indevida de códigos promocionais, assegurando que os códigos concedidos em promoções sejam identificados como já utilizados (status: Distribuído).

Regras de Negócio

RegraDescrição
RN01O status do código deve ser alterado de Novo para Distribuído no momento em que ele for concedido como benefício.
RN02A alteração deve ocorrer apenas quando o código for concedido por uma promoção — não em importações ou outras ações manuais.
RN03Códigos já marcados como Distribuído não devem ser distribuídos novamente.

Cenário de Uso

Dado que existe um código promocional disponível no sistema,
Quando ele for concedido como benefício em uma promoção,
Então seu status deve ser atualizado automaticamente para Distribuído.


Critérios de Aceite

03. SOLUÇÃO

Atualmente, os Códigos Promocionais não possuem um campo de status armazenado fisicamente no banco de dados.
O status é derivado a partir da coluna utilizado na tabela codigo_promocional.

Com a evolução da funcionalidade de concessão de benefícios promocionais, surgiu a necessidade de exibir um novo status: Distribuído, indicando que o código foi reservado (mas ainda não utilizado).

Comportamento Atual

Regra de exibição atual:

Campo utilizadoStatus exibido
falseNovo
trueUtilizado

Nova Regra de Exibição do Status

Será mantida a lógica atual, adicionando a verificação da existência do código na tabela codigo_promocional_beneficio.

Nova regra:

utilizadoExiste na tabela codigo_promocional_beneficioStatus exibido
falsefalseNovo
falsetrueDistribuído
trueUtilizado

Nota: O status "Utilizado" tem prioridade. Se utilizado = true, o status será sempre "Utilizado", mesmo se estiver reservado.


Regras de Negócio


Cenários de Teste

  1. Código não utilizado, não reservadoStatus: Novo

  2. Código não utilizado, reservadoStatus: Distribuído

  3. Código utilizado, não reservadoStatus: Utilizado

  4. Código utilizado, reservadoStatus: Utilizado