Ir para conteúdo
  • Cadastre-se

gustavozr

Membros
  • Total de ítens

    6
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

gustavozr's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Reputação

  1. Ricardo, eu realizei os teste com 2 e com 3 casas decimais, o resultado final é independente disto, o cálculo aparentemente está ligado diretamente com a quantidade de casas decimais prevista dentro do SAT. Talvez se você fizer um teste com equipamentos Sweda ou Gertec você alcance os mesmos resultados que eu consegui. Sds. Gustavo
  2. Boa tarde a todos, realizei os testes, e como havia previsto, os resultados diferem, embora pelo que analisei o cálculo está correto, apenas a precisão do ponto-flutuante na hora do cálculo varia. No caso os SATs Sweda e Gertec retornaram R$ 0,98 e o SAT Tanca retornou R$ 0,99. Dados enviados: <prod> <cProd>717827</cProd> <cEAN>10304717827019</cEAN> <xProd>Pp PIMENTA BIQUINHO*</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <indRegra>A</indRegra> </prod> Retorno Sweda (R$ 0,98) <prod> <cProd>717827</cProd> <cEAN>10304717827019</cEAN> <xProd>Pp PIMENTA BIQUINHO*</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <vProd>0.98</vProd> <indRegra>A</indRegra> <vItem>0.98</vItem> </prod> Retorno Gertec (R$ 0,98) <prod> <cProd>717827</cProd> <cEAN>10304717827019</cEAN> <xProd>Pp PIMENTA BIQUINHO*</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <vProd>0.98</vProd> <indRegra>A</indRegra> <vItem>0.98</vItem> </prod> Retorno Tanca (R$ 0,99) <prod> <cProd>717827</cProd> <cEAN>10304717827019</cEAN> <xProd>Pp PIMENTA BIQUINHO*</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <vProd>0.99</vProd> <indRegra>A</indRegra> <vItem>0.99</vItem> <vRatDesc>0.00</vRatDesc> <vRatAcr>0.00</vRatAcr> </prod> Agora terei que trabalhar para prever todas as situações. Obrigado a ajuda de todos. Sds. Gustavo
  3. Ricardo, pelo que entendi, todos os SATs trabalham com o arredondamento NBR, a diferença é o tipo de variável ponto-flutuante que cada um está utilizando. Pois tanto 0,98 quanto 0,99 estão corretos dependendo de qual a precisão da variável de ponto-flutuante que você está utilizando. Realizei os testes com as marcas Sweda e Gertec, vou ver outros SATs para ver o que ocorre, e informo aqui no mesmo post. Sds. Gustavo
  4. eu identifiquei o seguinte: No código abaixo o valor retornado será R$ 0,99 (diferente do SAT) var currValorUnit : currency; currQtde : currency; currTotal : currency; begin currValorUnit:=0.99; currQtde:=0.995; currTotal:=ACBrUtil.RoundABNT(currValorUnit * currQtde, 2); end; O valor final da variável currTotal será apresentado como 0.99, e como estava comparando pelo calculado pelo SAT, o valor não bate. Aparentemente, pelo que observei é porque a variável que a funcção RoundABNT recebe é um double, e o valor passado para a função é 0.98505. Então implementei a situação de outra forma, conforme abaixo: var currValorUnit : currency; currQtde : currency; currTotal : currency; begin currValorUnit:=0.99; currQtde:=0.995; currTotal:=currValorUnit * currQtde; currTotal:=ACBrUtil.RoundABNT(currTotal, 2); end; Neste caso o valor de currTotal será 0.98 (R$ 0,98), assim como no retorno do SAT. O valor passado para a função RoundABNT neste caso, como é uma variável do tipo currency, será 0.9850. Pelo que observei com este teste, o SAT também faz cálculos com variáveis de até 4 casas decimais, como é o caso do currency do Delphi. E o caso foi sanado desta forma.
  5. Fiz o teste com duas casa decimais, mas ocorre o mesmo problema. Tentei fazer um XML com 3 casa decimais na quantidade, mas ocorreu o erro 06010 ("Rejeição: Erro não identificado"), e quando voltei as 4 casas decimais, voltou a funcionar. <prod> <cProd>717827</cProd> <cEAN>030471782701</cEAN> <xProd>PIMENTA BIQUINHO</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.99</vUnCom> <vProd>0.98</vProd> <indRegra>A</indRegra> <vItem>0.98</vItem> </prod> se alguém tiver alguma luz, eu agradeceria.
  6. gustavozr

    ABNTRoundTo e campo vItem

    Bom dia, estou com uma situação estranha em relação ao arredondamento realizado pelo SAT. Eu envio a seguinte TAG de produto <prod> <cProd>717827</cProd> <cEAN>030471782701</cEAN> <xProd>PIMENTA BIQUINHO</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <indRegra>A</indRegra> </prod> E o SAT me retorna <prod> <cProd>717827</cProd> <cEAN>030471782701</cEAN> <xProd>PIMENTA BIQUINHO</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <vProd>0.98</vProd> <indRegra>A</indRegra> <vItem>0.98</vItem> </prod> Ele está retornando o valor do item como R$ 0,98 , porém realizo o arredondamento da multiplicação entre qCom e vUnCom, através da função ABNTRoundTo da unit ACBrUtil, e o valor retornado é R$ 0,99. Até parece que o SAT está ignorando a regra de arredondamento 'A'. Alguém já pegou algum caso assim?
×
×
  • 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.

The popup will be closed in 10 segundos...