Ir para conteúdo
  • Cadastre-se

dev botao

Total do Desconto difere do somatorio dos itens.


Wellissonr
Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 1945 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá sou novo aqui,

Estou com esse problema ao fazer o rateio do desconto nos itens.

quando por exemplo lanço um desconto de 19.93

ele me retorna Total do Desconto difere do somatorio dos itens (vDesc informado: 19.93, vDesc calculado: 19.92).

No xml os dois itens estão, assim não fechando o valor:

item 1

     <vProd>75.00</vProd>
     <vDesc>9.96</vDesc>
 
     item 2
 
    <vProd>75.00</vProd>
    <vDesc>9.96</vDesc>
 
   codigo
	if (CDSNota.FieldByName('VALOR_DESCONTO').AsFloat > 0) then
		Prod.vDesc := RoundTo(((CDSNota.FieldByName('VALOR_DESCONTO').AsFloat/cdsNfSaidaDetalheSUBTOTAL_GERAL.AsVariant)*Prod.vProd),-2)
	else
    	Prod.vDesc := 0;

 
Editado por Wellissonr
Link para o comentário
Compartilhar em outros sites

Em 05/09/2017 at 16:13, BigWings disse:

Para os casos de rateio você sempre deve considerar a "sobra" em cada arredondamento, e ir somando numa variável. 

Após passar todos os itens, acrescentar a sobra ao desconto do item de maior valor.

Poderia me citar um exemplo usando esta "sobra" ?

Link para o comentário
Compartilhar em outros sites

  • Membros
7 minutos atrás, Wellissonr disse:

Poderia me citar um exemplo usando esta "sobra" ?

Desconto Total: 19,93
Desconto Total Fracionado: 19,92
Diferença: 0,01
Você tem que adicionar esse 0,01 no desconto de um dos itens. Aconselho que seja feito no item de maior valor.

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores
11 minutos atrás, Wellissonr disse:

Poderia me citar um exemplo usando esta "sobra" ?

if (CDSNota.FieldByName('VALOR_DESCONTO').AsFloat > 0) then
begin
  Prod.vDesc := RoundTo(((CDSNota.FieldByName('VALOR_DESCONTO').AsFloat/cdsNfSaidaDetalheSUBTOTAL_GERAL.AsVariant)*Prod.vProd),-2)
  Sobra := Sobra + (CDSNota.FieldByName('VALOR_DESCONTO').AsFloat/cdsNfSaidaDetalheSUBTOTAL_GERAL.AsVariant)*Prod.vProd) - Prod.vDesc;
end
else
  Prod.vDesc := 0;

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • 1 ano depois...
  • Membros
26 minutos atrás, suporti2011 disse:

Você poderia ter colocado a sua solução ai p ajudar aqueles que ainda não sabe 

Tópico antigo.

Sugiro você abrir um novo tópico detalhando a sua dúvida.

  • Curtir 1
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1945 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.