| Produto: | TOTVS Varejo Supermercados |
|---|---|
| Linha de Produto: | Supermercados - Linha Consinco |
| Segmento: | Varejo |
| Tipo de Documento: | Manutenção |
| Módulo: | Acordos e Verbas |
| Caminho: | Administração > Verba sem Acordo Promocional |
| Função: | VERBAS DE BONIFICAÇÃO SEM ACORDO PROMOCIONAL - MAC0046 |
| País: | Brasil |
| Ticket: | 24603214 |
| Requisito/StoryIssue (informe o requisito relacionado) : | DSUPCONTR-9250 |
Contexto
Ao cadastrar uma verba no valor de R$0,01 e consumi-la, ao tentar gerar um acordo promocional por meio da aplicação “Verba de Bonificação sem Acordo Promocional” com os Indicadores Agrupar o Valor do Acordo Por Fornecedor e/ou Família marcados, o sistema apresenta a mensagem:
“Houve divergência de valores na geração dos acordos. Não foi possível realizar a geração dos acordos.”
Com isso, a geração do acordo não é concluída.
Causa raiz
Esse comportamento ocorre devido à validação implementada na função pkg_Mrl_VerbaSellOutApuracao.fValidaApuracao, que compara os valores vnVlrTotalAcordoGerado e vnVlrTotalAcordoGeradoAux.
Como o valor da verba é inferior a R$0,01, ambos os campos são definidos como NULL. Nesse cenário, a condição NULL = NULL não é satisfeita, impedindo que a variável vsApuracaoOK seja definida como 'S'. Consequentemente, o sistema atribui vsApuracaoOK = 'N' e retorna a mensagem de erro.
Além disso, o sistema possui um trava ao selecionar a linha com valor de acordo menor que R$0,01, porém ao realizar a geração agrupada, está verificação não é realizada.
Cadastro de verba
Criar uma verba de bonificação marcada como “verba sem acordo”.
Definir um valor unitário da verba inferior a R$0,01.
Execução de venda
Realizar uma venda em que a quantidade utilizada multiplica-se pelo valor unitário da verba, de forma que o valor total de verba (vlrunitverba × qtdutilizada) não ultrapasse R$0,01.
Geração do acordo
Realizar a geração do acordo promocional pela aplicação Verba de Bonificação sem Acordo Promocional, selecionando um dos indicadores Agrupar o Valor do Acordo por Fornecedor e/ou Família, para as linhas em que a quantidade total a ser gerada seja inferior a R$0,01.
04. SOLUÇÃO
Tratamento de variáveis nulas
Aplicado NVL(0) a todas as variáveis utilizadas na validação do valor do acordo gerado na função pkg_Mrl_VerbaSellOutApuracao.fValidaApuracao.
Essa alteração garante que a condição seja corretamente atendida mesmo quando a comparação resultar em NULL = NULL.
Validação de valor mínimo
Incluída uma validação adicional na procedure pkg_Mrl_VerbaSellOutApuracao.SP_ApuraVerba.
Caso o valor do acordo gerado seja inferior a R$0,01, o sistema exibirá a mensagem:
Não é possível gerar acordo para valores menores que R$0.01. Não foi possível realizar a geração dos acordos.
Abrangência da alteração
A implementação foi realizada diretamente no objeto de banco de dados.
Dessa forma, o bloqueio é aplicado tanto nas execuções realizadas via aplicação quanto nos processos executados por job.
Se estiver na versão 24.07, atualizar o sistema para o service pack 24.07.036 ou service pack superior.
Se estiver na versão 25.01, atualizar o sistema para o service pack 25.01.011 ou service pack superior