Seguir

Rentabilidade de Produtos

Parâmetros: data inicial, data final, cálculo de preço, dividir produtos por linha, região, id do vendedor, id do contato.

Obter Dados Relatório Rentabilidade de Produtos

  • id do produto (a partir dos itens da nota)
  • nome do produto
  • nome da linha de produto
  • data de emissão da NF

Se cálculo for Média:

  • preço = média de:

valor unitário do item - ((valor COFINS / quantidade do item) + (valor ICMS / quantidade do item) + (valor PIS / quantidade do item))

Se cálculo for Mediana:

  • preço = mediana = (valor máximo do cálculo acima + valor mínimo) / 2

 ------------------------------------------------------------------------------------

OBSERVAÇÃO: Para o cálculo do preço, somente notas de saída serão consideradas.

 ------------------------------------------------------------------------------------

 

Filtros Fixos: situação diferente de 2 (emitida), datas de início e fim, idEmpresa

Filtros Opcionais: id do contato, id do vendedor, região/estados

Agrupamento dos dados: id do produto, ano e mês (a partir da NF)

 

Para cada linha

    custo =

Obter Dados Anteriores ao Período

  • Busca movimentações de estoque para o produto antes do período selecionado, permitindo também filtrar por depósito e contato.

Para cada linha encontrada

  • Define parâmetros “temEntradas”, “temSaidas” e “temTriangulacao” com base no tipo de lançamento (‘E’ ou ‘S’ para tipo, ‘S’ ou ‘N’ para triangulação).
  • Cria o conjunto “registro” onde cada elemento é formado por:
    • tipo: ‘E’ de entrada, ‘S’ de saída ou ‘B’ de balanço.
    • nota: número da Nota Fiscal.
    • data: data do lançamento.
    • quantidade: quantidade em números absolutos.
    • custoUnitario: custo do lançamento. Em caso de valor negativo, recebe 0.
    • tipoEntrada: ‘N’ de normal ou ‘D’ de devolução.
    • triangulacao: ‘S’ de sim, ‘N’ de não.
  • Se houverem registros, cria lançamentos zerados em cada depósito que não possua nenhum para o produto em questão (para constar).

qtdeSaldo → com valor inicial 0, é modificada a cada iteração do trecho a seguir.

custoUnitario → com valor inicial 0, é modificado a cada iteração do trecho a seguir.


Para cada registro dos depósitos

Caso lançamento seja Entrada

Se o tipo de entrada for Normal

Custo Total = (qtdeSaldo * custoUnitario) + quantidade do registro * custo unitário do registro

Se o tipo de entrada for Devolução

Custo Total = (qtdeSaldo + quantidade do registro) * custoUnitario

qtdeSaldo = qtdeSaldo + (quantidade do registro * 1)

Se qtdeSaldo for diferente de zero

custoUnitario = Custo Total / qtdeSaldo

Se qtdeSaldo for igual a 0 e custoUnitario do registro for maior que 0

custoUnitario = custo unitário do registro

Caso lançamento seja Saída

qtdeSaldo = qtdeSaldo - (quantidade do registro * 1)

Caso lançamento seja Balanço

Se o custoUnitario do registro for maior que zero

custoUnitario = custo unitário do registro

qtdeSaldo = quantidade do registro * 1

----------------------------------------------------------------

OBSERVAÇÃO: Com base no período filtrado, busca-se pelo balanço mais recente. Caso não seja encontrado, parte-se do valor 0. Entradas e saídas anteriores ao último balanço do período não serão consideradas.

----------------------------------------------------------------

Conjunto de resultados por depósito, onde cada elemento possui saldo (qtdeSaldo) e custo (custoUnitario).


qtdeSaldo = 0

custoUnitario = 0


Para cada resultado do conjunto por depósito

Se o custo do depósito for maior que zero

saldo = saldo do depósito e valor absoluto (caso seja zero, saldo = 1)

custoUnitario = (custoUnitario * valor absoluto de qtdeSaldo + custo do depósito * saldo do depósito) / (saldo do depósito + qtdeSaldo)

Se o saldo do depósito for 0

custoUnitario = custo do deposito

qtdeSaldo = qtdeSaldo + saldo do depósito

Retorno: array com quantidade (qtdeSaldo), custo unitário (custoUnitario).

Conjunto de venda composto de: período, preço e custo (custoUnitario de custo).

Retorna um máximo de 1000 registros de acordo com filtros opcionais de agrupamento.

Margem Total = preço - custo

Margem (%) = (Margem Total / preço) * 100

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0
Tem mais dúvidas? Envie uma solicitação

1 Comentários

Por favor, entre para comentar.
Powered by Zendesk