| 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 |
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.
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).
| Regra | Descrição |
|---|---|
| RN01 | O status do código deve ser alterado de Novo para Distribuído no momento em que ele for concedido como benefício. |
| RN02 | A 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. |
| RN03 | Códigos já marcados como Distribuído não devem ser distribuídos novamente. |
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.
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).
Regra de exibição atual:
Campo utilizado | Status exibido |
|---|---|
| false | Novo |
| true | Utilizado |
Será mantida a lógica atual, adicionando a verificação da existência do código na tabela codigo_promocional_beneficio.
Nova regra:
| utilizado | Existe na tabela codigo_promocional_beneficio | Status exibido |
|---|---|---|
| false | false | Novo |
| false | true | Distribuído |
| true | — | Utilizado |
Nota: O status "Utilizado" tem prioridade. Se
utilizado = true, o status será sempre "Utilizado", mesmo se estiver reservado.
RB01: O status será calculado dinamicamente com base nas tabelas codigo_promocional e codigo_promocional_beneficio.
RB02: Não haverá persistência física de um campo de status no banco.
RB03: Códigos presentes na tabela de reserva e ainda não utilizados devem ser exibidos como Distribuídos.
RB04: Códigos utilizados devem sempre ser exibidos como Utilizados.
RB05: A verificação será realizada em tempo real durante a listagem/exibição dos códigos.
Código não utilizado, não reservado → Status: Novo
Código não utilizado, reservado → Status: Distribuído
Código utilizado, não reservado → Status: Utilizado
Código utilizado, reservado → Status: Utilizado