Correção no Custo Médio das 5 Últimas Entradas NT 0547/2026

Resumo da Nota Técnica

Foi realizada uma correção no relatório Venda por Grupo e Subgrupo com Rentabilidade – 5 Últimas Entradas, ajustando o cálculo do custo médio dos produtos.
O relatório passa a considerar a quantidade real de entradas disponíveis até a data de cada venda, evitando que produtos com menos de 5 entradas tenham seu custo médio reduzido artificialmente.
Também foi ajustado o cálculo para que compras realizadas após a venda não sejam consideradas, garantindo maior consistência nos resultados de rentabilidade de períodos históricos.

Detalhes da Nota Tecnica

Solicitação

Foi identificado que, quando um produto possuía 5 ou mais entradas, o cálculo do custo médio era realizado corretamente.

Porém, quando existiam menos de 5 entradas, o sistema utilizava o divisor fixo 5, fazendo com que o valor das poucas entradas existentes fosse dividido por 5.

Esse comportamento reduzia indevidamente o custo médio e, consequentemente, apresentava uma rentabilidade maior do que a real.

Também foi identificado que o relatório considerava as últimas entradas disponíveis no momento da emissão, sem respeitar a data em que a venda ocorreu.

Dessa forma, uma compra realizada posteriormente poderia ser utilizada no cálculo de uma venda de um período anterior, alterando o resultado de relatórios históricos.

________________________________________

Problemas Identificados

1. Divisor fixo no cálculo

O cálculo anterior utilizava a quantidade fixa de 5 entradas, mesmo quando o produto possuía menos entradas disponíveis.

Exemplo:

• Produto possui apenas 2 entradas;

• O sistema deveria calcular a média dessas 2 entradas;

• Porém, o cálculo utilizava o divisor 5.

Isso resultava em um custo médio incorreto e impactava diretamente a rentabilidade apresentada.

2. Entradas posteriores à venda

O cálculo também não considerava a data da venda como limite para seleção das entradas.

Com isso, uma compra realizada posteriormente poderia ser utilizada no cálculo de uma venda anterior.

Exemplo:

• Compra: 10/01

• Venda: 15/01

• Nova compra: 10/04

Ao consultar novamente o relatório de janeiro, a compra de abril não deve ser utilizada como referência para a venda de janeiro.

________________________________________

Desenvolvimento Realizado

Foram ajustadas as fórmulas de TOTALCOMPRA e VLRCOMPRAMEDIA do relatório.

1. Divisor dinâmico

O cálculo passou a utilizar a quantidade real de entradas encontradas:

SUM(ENTP_VLRUNITARIO) / NULLIF(COUNT(ENTP_VLRUNITARIO), 0)

Dessa forma:

• Com 1 entrada, divide por 1.

• Com 2 entradas, divide por 2.

• Com 3 entradas, divide por 3.

• Com 4 entradas, divide por 4.

• Com 5 ou mais entradas, considera as 5 últimas entradas.

O NULLIF evita divisão por zero quando não houver entradas válidas.

2. Respeito à data da venda

Foi adicionada a condição:

ENTP_DATACOMPRA <= PEDV_DATA

Assim, somente as entradas realizadas até a data da venda podem participar do cálculo.

Isso garante que compras futuras não alterem a rentabilidade de vendas já realizadas.

________________________________________

Regra de Cálculo

O relatório passa a trabalhar conforme as seguintes regras:

Screenshot_1

A opção de completar as entradas faltantes com a média das entradas existentes não foi necessária, pois matematicamente o resultado é equivalente ao cálculo utilizando a quantidade real de entradas.

________________________________________

Consistência dos Relatórios Históricos

Com a alteração, o custo utilizado para uma venda passa a respeitar o histórico de compras existente até o momento daquela venda.

Dessa forma, uma compra realizada posteriormente não interfere na rentabilidade de períodos já encerrados.

Isso proporciona resultados mais assertivos, reais e consistentes para análises históricas.

________________________________________

Arquivo Alterado

Relatório:

REL_VENDASGRUPOSUBGRUPORENTABILIDADE_VLRCOMPRA_5ULTIMASENTRADA.fr3

________________________________________

Atualização Necessária

Para que a correção funcione no ambiente do cliente, será necessário substituir o arquivo:

REL_VENDASGRUPOSUBGRUPORENTABILIDADE_VLRCOMPRA_5ULTIMASENTRADA.fr3

no ambiente do cliente.

Questões:

1. Qual era o problema no cálculo do custo médio dos produtos?
a) O sistema não considerava nenhuma entrada de produto.
b) O sistema utilizava sempre a última compra realizada.
c) O sistema utilizava o divisor fixo 5 mesmo quando o produto possuía menos de 5 entradas.
d) O sistema multiplicava o custo médio pela quantidade vendida.
________________________________________
2. Como passou a ser calculada a média quando existem menos de 5 entradas?
a) O sistema continua dividindo por 5.
b) O sistema considera somente a entrada mais antiga.
c) O sistema considera a média das entradas existentes.
d) O sistema utiliza o preço de venda do produto.
________________________________________
3. O que acontece quando existe uma compra posterior à data da venda?
a) A compra posterior é utilizada normalmente.
b) A compra posterior não é considerada no cálculo daquela venda.
c) A compra posterior substitui todas as entradas anteriores.
d) O relatório deixa de apresentar a venda.

Parâmetros Envolvidos

Não há parâmetros envolvidos.

» Nota Técnica