Fórum Distribuir desconto no total para todos os itens ? #328977
09/09/2006
0
Pessoal tenho que distribuir os desconto no total para todos os itens
estou fazendo assim + está dando diferença no total
Acho o total divido pelo desconto em dinheiro acho o percentual
e vou aplicando aquele desconto em cada item, em alguns caso da certo
outros da centavos a mais ou a menos
Seu eu pegar um produto de venda 13,33 x10 133,30
depois pegar um produto 0,34 x1000 340 da um total 473,30
e tentar arredondar para 473,00 fica 469,97 diferenca de 3 centavos a menos
como fazer isso ?
Var
ValDesconto,TotalVenda,Desconto,Venda,QuantVenda :Currency ;
begin
ValDesconto :=0 ;
TotalVenda:=StrToFloat(LimparString(FrmPdv.PanelTotal.Caption));
if Tipo =´Valor´ Then
ValDesconto :=StrtoFloat(LimparString(EditDesconto.Text))/TotalVenda *100;
if Tipo =´Percentual´ Then
ValDesconto :=StrtoFloat(LimparString(EditDesconto.Text));
DataModulo.TableTempVendas.First ;
While not DataModulo.TableTempVendas.Eof do
begin
DataModulo.TableTempVendas.Edit ;
QuantVenda :=DataModulo.TableTempVendasQuantidade.Value ;
Venda:=DataModulo.TableTempVendasPreco_Venda.Value ;
Desconto:=(Venda*ValDesconto)/100 ;
DataModulo.TableTempVendasDesconto.Text:=´0´;
DataModulo.TableTempVendasTotal.Value:=(Venda-Desconto) *QuantVenda ;
Venda:=Venda-Desconto ;
DataModulo.TableTempVendasDesconto.Value:=Desconto ;
DataModulo.TableTempVendasValor.Value :=Venda ;
DataModulo.TableTempVendas.Next ;
end;
Obrigado a tds
estou fazendo assim + está dando diferença no total
Acho o total divido pelo desconto em dinheiro acho o percentual
e vou aplicando aquele desconto em cada item, em alguns caso da certo
outros da centavos a mais ou a menos
Seu eu pegar um produto de venda 13,33 x10 133,30
depois pegar um produto 0,34 x1000 340 da um total 473,30
e tentar arredondar para 473,00 fica 469,97 diferenca de 3 centavos a menos
como fazer isso ?
Var
ValDesconto,TotalVenda,Desconto,Venda,QuantVenda :Currency ;
begin
ValDesconto :=0 ;
TotalVenda:=StrToFloat(LimparString(FrmPdv.PanelTotal.Caption));
if Tipo =´Valor´ Then
ValDesconto :=StrtoFloat(LimparString(EditDesconto.Text))/TotalVenda *100;
if Tipo =´Percentual´ Then
ValDesconto :=StrtoFloat(LimparString(EditDesconto.Text));
DataModulo.TableTempVendas.First ;
While not DataModulo.TableTempVendas.Eof do
begin
DataModulo.TableTempVendas.Edit ;
QuantVenda :=DataModulo.TableTempVendasQuantidade.Value ;
Venda:=DataModulo.TableTempVendasPreco_Venda.Value ;
Desconto:=(Venda*ValDesconto)/100 ;
DataModulo.TableTempVendasDesconto.Text:=´0´;
DataModulo.TableTempVendasTotal.Value:=(Venda-Desconto) *QuantVenda ;
Venda:=Venda-Desconto ;
DataModulo.TableTempVendasDesconto.Value:=Desconto ;
DataModulo.TableTempVendasValor.Value :=Venda ;
DataModulo.TableTempVendas.Next ;
end;
Obrigado a tds
Essistemas
Curtir tópico
+ 0
Responder
Posts
09/09/2006
Raserafim
ao invés de utilizar a [b:feacc07d06]/[/b:feacc07d06] para dividir, tente utilizar [b:feacc07d06]div[/b:feacc07d06]
provavelmente assim o arredondamento ficará correto.
provavelmente assim o arredondamento ficará correto.
Responder
Gostei + 0
09/09/2006
Essistemas
Só que me parece que o div só trabalha com valores inteiros
tentei não deu muito certo não
Obrigado !
tentei não deu muito certo não
Obrigado !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)