Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2445 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, não estou conseguindo fazer com que o rateio do desconto entre os produtos funcione, é o seguinte, quando o desconto é distribuído pelos itens, se cada item ficar com uma parte do desconto, nem que seja 0,01, é aceito normalmente, mas se for muitos itens e algum ficar com desconto igual a 0 não é aceito conforme mensagem de erro abaixo.

Obrigado pela ajuda.

 

 

erro_desconto.jpg

  • Moderadores
Postado
8 minutos atrás, Antonino disse:

Bom dia, não estou conseguindo fazer com que o rateio do desconto entre os produtos funcione, é o seguinte, quando o desconto é distribuído pelos itens, se cada item ficar com uma parte do desconto, nem que seja 0,01, é aceito normalmente, mas se for muitos itens e algum ficar com desconto igual a 0 não é aceito conforme mensagem de erro abaixo.

Você deve estar passando um valor com mais de 2 casas decimais para o desconto.

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

Projeto ACBr

 

 

  • Moderadores
Postado
48 minutos atrás, Antonino disse:

E quando for uma venda com uns 200 itens e tiver um desconto que o rateio ficar menos de 1 centavo pra cada item, como eu faço?

A regra geral é somar os resíduos (diferença entre o valor total do desconto e a soma dos descontos dos itens truncados para 2 casas decimais) e somar ao desconto do item de maior valor.

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

Projeto ACBr

 

 

Postado

Não estou conseguindo fazer esse rateio, vê meu código do rateio aí em baixo se tem como me auxiliar.

Obrigado.

 

         //Faz o Rateio do Desconto
         if desconto > 0 then
         begin
            p_desc_item   := (desconto / TotalCupom * 100);
            desconto_item := (db_Vendas.FieldByName('valor_total').AsFloat / 100) * p_desc_item;
            valor_total_desc_item := RoundTo(valor_total_desc_item + desconto_item, -5);

            if valor_total_desc_item > Desconto then
            begin
              ajusta_desconto := valor_total_desc_item - RoundTo(Desconto, -5);
              desconto_item := desconto_item - ajusta_desconto;
              if desconto_item < 0 then
              begin
                desconto_item := 0;
              end;
            end;
          //No Ultimo Item
            if ultimoitem = n_item then
            begin
              if valor_total_desc_item < Desconto then
              begin
                ajusta_desconto :=  RoundTo(Desconto, -5) - valor_total_desc_item;
                desconto_item :=  desconto_item + ajusta_desconto;
                if desconto_item < 0 then
                begin
                  desconto_item := 0;
                end;
              end;
            end;
         end
         else
         begin
           desconto_item := 0;
         end;
        Prod.vDesc     := desconto_item;


        //Fim do Rateio do Desconto por ITEM
        //////////////////////////////////

 

  • Este tópico foi criado há 2445 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.