Ir para conteúdo
  • 0

Desconto por item


Diego_Flores
Ir para solução Solucionado por Henrique Merola Faria ,

Pergunta

  • Alunos

Boa noite pessoal,espero que estejam todos bem 
estou precisando de ajuda para calcularo desconto  que cada item recebeu de forma percentual em  determinadas requisições 
a logica seria a seguinte se o vl_desconto >0 preciso pegar este valor de destondo e dividir entre os itens  que estão  nesta requisição que  apos feito calculo sera o valor atualizado desta requisição segue exemplo , até tenti fazer mas não é em todo casoque a minha medida esta sendo eficas, no visual de tabela eu vou precisar exibir o valor do item sem desnto e quanto ficou com desconto e qual seira o percentual de desconto que o mesmo recebeu  e tambem existe a possiblidade do item ter seu valor zerado quando o desconto for aplicado  
 

Desconto Proporcional por Item =
VAR ValorDescontoRequisicao =
 
IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
CALCULATE(SELECTEDVALUE(F_req_manu[desconto_req]), ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao])),0)
 
-- CALCULATE(SELECTEDVALUE(F_req_manu[VL_DESCONTO]), ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]))  -- Valor total do desconto da requisição
VAR TotalValorItensRequisicao =
 
IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
CALCULATE(SUM(F_req_manu[vl_total]), ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao])),0) -- Total do valor dos itens na requisição, ignorando filtros
VAR ValorItemAtual =
 IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
 SELECTEDVALUE(F_req_manu[valor_item]) ,0) -- Valor do item atual
VAR QuantidadeItemAtual = IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
   
    SELECTEDVALUE(F_req_manu[qtd_item]),0)  -- Quantidade do item atual
VAR ValorTotalItemAtual = ValorItemAtual * QuantidadeItemAtual  -- Valor total do item atual (valor * quantidade)
-- Calcula o percentual que cada item representa do valor total da requisição
VAR perc_item_valor = DIVIDE(ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o desconto proporcional por item
VAR desconto_por_item = DIVIDE(ValorDescontoRequisicao * ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o valor total após aplicar o desconto
VAR vl_total = ValorTotalItemAtual - desconto_por_item
 
RETURN
desconto_por_item

 

 

Capturar.PNG

Capturar.PNG

Capturar.PNG

Capturar.PNG

Custo-fazendas.pbix

Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
10 minutos atrás, Diego_Flores disse:

@Henrique Merola Faria seria isso mesmo é que neste caso por algum motivo que eu não entendi o calculo não foi feito corretamente

@Diego_Flores essa é a medida que utilizei no exemplo que te enviei. 

O que está comentado são partes dos códigos originais que não foram utilizados.
Dá uma comparada com a tua medida original.
Mas, em resumo, as comparações com desconto > 0 estavam causando problemas.

Desconto Proporcional por Item =
VAR Requisicao = MAX(F_req_manu[id])
VAR ValorDescontoRequisicao =
//IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
CALCULATE(
    SUM(F_req_manu[desconto_req])/COUNTROWS(F_req_manu),
    FILTER(ALL(F_req_manu),
           F_req_manu[desconto_req]>0 && F_req_manu[id] = Requisicao)
    )
VAR TotalValorItensRequisicao =
CALCULATE(SUM(F_req_manu[vl_total]), ALLEXCEPT(F_req_manu,F_req_manu[id]))
 
VAR ValorItemAtual =                                                         -- Valor unitário, menos dos itens com desconto = 0
 IF(ValorDescontoRequisicao > 0,
 SELECTEDVALUE(F_req_manu[valor_item]) ,0) -- Valor do item atual
 
// VAR QuantidadeItemAtual = IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,       -- Desconsidera itens com desconto = 0
// SELECTEDVALUE(F_req_manu[qtd_item]),0)  -- Quantidade do item atual
 
VAR QuantidadeItemAtual = IF(ValorDescontoRequisicao > 0,      
SELECTEDVALUE(F_req_manu[qtd_item]),0)  -- Quantidade do item atual
 
VAR ValorTotalItemAtual = ValorItemAtual * QuantidadeItemAtual  -- Valor total do item atual (valor * quantidade)  -- Desconsidera itens com desconto = 0
 
-- Calcula o percentual que cada item representa do valor total da requisição
VAR perc_item_valor = DIVIDE(ValorTotalItemAtual, TotalValorItensRequisicao, 0)
 
-- Calcula o desconto proporcional por item
VAR desconto_por_item = DIVIDE(ValorDescontoRequisicao * ValorTotalItemAtual, TotalValorItensRequisicao, 0)
 
-- Calcula o valor total após aplicar o desconto
VAR vl_total = ValorTotalItemAtual - desconto_por_item
 
RETURN
vl_total
  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Diego_Flores, veja se esse é o resultado desejado para a req. R-65668

image.png.03ab63cea6ab3057bd86192951033e23.png

 

Desconto Proporcional por Item =
VAR ValorDescontoRequisicao =
IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
CALCULATE(AVERAGE(F_req_manu[desconto_req])), 0)
 
VAR TotalValorItensRequisicao =
CALCULATE(SUM(F_req_manu[vl_total]), ALLEXCEPT(F_req_manu,F_req_manu[id]),F_req_manu[desconto_req]>0)  //*** somente itens com desconto
 
VAR ValorItemAtual =                                                         -- Valor unitário, menos dos itens com desconto = 0
 IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,
 SELECTEDVALUE(F_req_manu[valor_item]) ,0) -- Valor do item atual
 
VAR QuantidadeItemAtual = IF(SELECTEDVALUE(F_req_manu[desconto_req])>0,       -- Desconsidera itens com desconto = 0
SELECTEDVALUE(F_req_manu[qtd_item]),0)  -- Quantidade do item atual
 
VAR ValorTotalItemAtual = ValorItemAtual * QuantidadeItemAtual  -- Valor total do item atual (valor * quantidade)  -- Desconsidera itens com desconto = 0
 
-- Calcula o percentual que cada item representa do valor total da requisição
VAR perc_item_valor = DIVIDE(ValorTotalItemAtual, TotalValorItensRequisicao, 0)
 
-- Calcula o desconto proporcional por item
VAR desconto_por_item = DIVIDE(ValorDescontoRequisicao * ValorTotalItemAtual, TotalValorItensRequisicao, 0)
 
-- Calcula o valor total após aplicar o desconto
VAR vl_total = ValorTotalItemAtual - desconto_por_item
 
RETURN
vl_total
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Henrique Merola Faria no caso  da  requisição 65668, o valor correto seria  11,675 no caso acho que pra ficar mais claro  seria  + ou - assim
os 614,50 de desconto aplicados  teria que ser  com basse  no valor total de cada item  que sua qnt * valor unitario, onde o maior valor recebe mais desconto , digamos que o servico ai que é o maior  que temos   seria 3.300 - os 614,50 ai como este desconto ja foi aplicado para o proximo item desta requisição ele precisaria ser 0 e assim por diante 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 02/10/2024 em 20:43, Diego_Flores disse:

se o vl_desconto >0 preciso pegar este valor de destondo e dividir entre os itens  que estão  nesta requisição

2 horas atrás, Diego_Flores disse:

digamos que o servico ai que é o maior  que temos   seria 3.300 - os 614,50 ai como este desconto ja foi aplicado para o proximo item desta requisição ele precisaria ser 0 e assim por diante 

Por favor, usa a requisição 65668 como um dos exemplos.
 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde, @Diego_Flores, por favor, coloca uma coluna adicional com o Resultado Esperado,
para não ter erro de nossa parte agora.
Tenho aplicar o total de desconto no item de serviço e zero nos outros (último post), ou fazer um rateio proporcional,
incluindo o item de serviço (como parece ser nessa planilha) ?

image.png.a7eaa0cf4ea4b6365f5906340d44fd82.png

Editado por Henrique Merola Faria
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Diego_Flores realmente o pbix dessa essa imagem eu não enviei.
É essa a solução que você precisa ? 
O valor do desconto de R$ 614,5 rateado proporcionalmente entre todos os itens da requisição,
inclusive o item de Serviços.
Isso reduz o valor total da requisição de 12.290,00 para 11.657,50.
Se for essa a solução, eu te envio o pbix.
Se não, faz um excel igual a esse, informando o valor desejado de desconto para cada item, por favor.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Diego_Flores, no exemplo que vc mandou, o total de desconto é de 72. OU seja, o total é 900, mas com desconto ficaria 828? Correto?

Bom, se estiver correto, então entendo que o desconto tem que ser feito entre os itens 18698, 18697 e 6342, pois somente eles tem desconto aplicado (os itens 260 e 3225 não foram aplicados desconto).

Então, entendo que o valor total destes 3 itens que tiveram desconto é de 400. Logo, o desconto para cada item seria:

Item 18698 => (72 / 400) * 80 = 14,40

Item 18697 => (72 / 400) * 130 = 23,40

Item 6342 => (72 / 400) * 190 = 34,20

Desta forma, 14,40 + 23,40 + 34,20 = 72, que é o total de desconto.

Seria isso?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Veja se é isso:

Desconto Proporcional por Item = 
VAR vDesconto = MAX(F_req_manu[desconto_req])
VAR vValorItem = MAX(F_req_manu[valor_item])
Var vQtdItem = MAX(F_req_manu[qtd_item])
VAR ValorDescontoRequisicao = 
    CALCULATE(
        AVERAGE(F_req_manu[desconto_req]), 
        ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]),
        F_req_manu[desconto_req] > 0
    )
-- CALCULATE(SELECTEDVALUE(F_req_manu[VL_DESCONTO]), ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]))  -- Valor total do desconto da requisição
VAR TotalValorItensRequisicao = 
    CALCULATE(
        SUM(F_req_manu[vl_total]), 
        ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]),
        F_req_manu[desconto_req] > 0
    ) -- Total do valor dos itens na requisição, ignorando filtros
VAR ValorItemAtual =
IF(
    vDesconto > 0,
    vValorItem, 
    0
) -- Valor do item atual
VAR QuantidadeItemAtual = 
IF(
    vDesconto > 0,
    vQtdItem, 
    0
)  -- Quantidade do item atual
VAR ValorTotalItemAtual = ValorItemAtual * QuantidadeItemAtual  -- Valor total do item atual (valor * quantidade)
-- Calcula o percentual que cada item representa do valor total da requisição
VAR perc_item_valor = DIVIDE(ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o desconto proporcional por item
VAR desconto_por_item = DIVIDE(ValorDescontoRequisicao * ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o valor total após aplicar o desconto
VAR vl_total = ValorTotalItemAtual - desconto_por_item
RETURN
vl_total

 

20241008_Custo-fazendas.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
21 horas atrás, Henrique Merola Faria disse:

@Diego_Flores realmente o pbix dessa essa imagem eu não enviei.
É essa a solução que você precisa ? 
O valor do desconto de R$ 614,5 rateado proporcionalmente entre todos os itens da requisição,
inclusive o item de Serviços.
Isso reduz o valor total da requisição de 12.290,00 para 11.657,50.
Se for essa a solução, eu te envio o pbix.
Se não, faz um excel igual a esse, informando o valor desejado de desconto para cada item, por favor.

@Henrique Merola Faria seria isso mesmo é que neste caso por algum motivo que eu não entendi o calculo não foi feito corretamente

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
11 horas atrás, Bruno Abdalla de Souza disse:

@Diego_Flores, no exemplo que vc mandou, o total de desconto é de 72. OU seja, o total é 900, mas com desconto ficaria 828? Correto?

Bom, se estiver correto, então entendo que o desconto tem que ser feito entre os itens 18698, 18697 e 6342, pois somente eles tem desconto aplicado (os itens 260 e 3225 não foram aplicados desconto).

Então, entendo que o valor total destes 3 itens que tiveram desconto é de 400. Logo, o desconto para cada item seria:

Item 18698 => (72 / 400) * 80 = 14,40

Item 18697 => (72 / 400) * 130 = 23,40

Item 6342 => (72 / 400) * 190 = 34,20

Desta forma, 14,40 + 23,40 + 34,20 = 72, que é o total de desconto.

Seria isso?

@Bruno Abdalla de Souza seria  sim 

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
10 horas atrás, Bruno Abdalla de Souza disse:

Veja se é isso:

Desconto Proporcional por Item = 
VAR vDesconto = MAX(F_req_manu[desconto_req])
VAR vValorItem = MAX(F_req_manu[valor_item])
Var vQtdItem = MAX(F_req_manu[qtd_item])
VAR ValorDescontoRequisicao = 
    CALCULATE(
        AVERAGE(F_req_manu[desconto_req]), 
        ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]),
        F_req_manu[desconto_req] > 0
    )
-- CALCULATE(SELECTEDVALUE(F_req_manu[VL_DESCONTO]), ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]))  -- Valor total do desconto da requisição
VAR TotalValorItensRequisicao = 
    CALCULATE(
        SUM(F_req_manu[vl_total]), 
        ALLEXCEPT(F_req_manu, F_req_manu[n_reqisicao]),
        F_req_manu[desconto_req] > 0
    ) -- Total do valor dos itens na requisição, ignorando filtros
VAR ValorItemAtual =
IF(
    vDesconto > 0,
    vValorItem, 
    0
) -- Valor do item atual
VAR QuantidadeItemAtual = 
IF(
    vDesconto > 0,
    vQtdItem, 
    0
)  -- Quantidade do item atual
VAR ValorTotalItemAtual = ValorItemAtual * QuantidadeItemAtual  -- Valor total do item atual (valor * quantidade)
-- Calcula o percentual que cada item representa do valor total da requisição
VAR perc_item_valor = DIVIDE(ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o desconto proporcional por item
VAR desconto_por_item = DIVIDE(ValorDescontoRequisicao * ValorTotalItemAtual, TotalValorItensRequisicao, 0)
-- Calcula o valor total após aplicar o desconto
VAR vl_total = ValorTotalItemAtual - desconto_por_item
RETURN
vl_total

 

20241008_Custo-fazendas.pbix 43.5 MB · 0 downloads

@Bruno Abdalla de Souza vou realizar alguns testes "principalmente nas situações em que o meu calculo não executou" e retorno se deu certo 

  • Like 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...