Clipper On Line • Ver Tópico - Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor lwinter » 07 Mar 2019 13:16

Bom dia, galera!
Tenho acompanhado ha tempos este forum e gostaria de parabenizar a todos que colaboram com este site e dizer que tem muitos feras por aqui.
Comecei a trabalhar com o Clipper no final da década de 80, mas ainda sou bastante jovem, tenho 50 anos. rsrsrs...
Em 1992, comecei a trabalhar como autônomo e em 1995 fundei uma empresa de automação comercial para Postos de Combustíveis. Em 2011, com a ajuda do meu mestre, caríssimo e respeitabilíssimo Toledo consegui migrar nosso PDV do Clipper 5.2e para Harbour 3.0. Só para se ter uma ideia na época, nossa frente de caixa estava rodando em mais de 3000 PDVs em Postos de Combustíveis. Vocês devem ter notado o nível de stress que eu passei na época. Isso me ajudou a fazermos a migração de nosso PDV de forma bem tranquila para plataforma da Microsoft em C#.
Agradeço de coração ao empenho e dedicação do Toledo nesta missão que para mim foi extremamente importante.
Em 2016, por uma questão de oportunidade e outros motivos acabei vendendo minha empresa e hoje estou com tempo para fazer aquilo que gosto. E este é um dos motivos de eu estar aqui, tentar retribuir uma pequena parte daquilo que fui beneficiado e que vocês (sem saber) me ajudaram e muito. Acho a ideia deste forum fantástica por ate hoje tem ajudado muita gente a migrar suas aplicações do Clipper para Harbour e com isso sustentar os seus negócios e suas famílias.
Obrigado Toledo!!!

Disponibilizei no Github (https://github.com/leonardowascheck/simulador-de-vendas-de-bombas-e-balancas) o fonte de um pequeno aplicativo, bem simples, desenvolvido em Harbour para ajuda-los no entendimento dos problemas de arredondamento e truncamento dos documentos fiscais eletrônicos e como soluciona-los.
Quem se interessar pelo assunto, recomendo a leitura do Readme.md (https://github.com/leonardowascheck/simulador-de-vendas-de-bombas-e-balancas/blob/master/README.md) pois esta bem completo e poderá ajudar aos desenvolvedores iniciantes aos mais avançados.
Sugestões de melhorias através de pull request serão muito bem vindas!

Abraços a todos os mestres, pica das galaxias e iniciantes em Harbour deste grupo!!!!!

Atenciosamente,
Leonardo Wascheck
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes

Corrigido erro critico funcao GetValoresIAT

Mensagempor lwinter » 22 Mar 2019 18:40

Descobri um erro na função de arredondamento e truncamento, antes a função estava elevando 10^(n+2), isso porque eu tinha esquecido que o preco unitário é ate 3 casas. Agora o aplicativo passa a elevar 10^(n+4) para deixar uma folga.
Este erro afetava de forma critica os cálculos mas foi corrigido.

Essas correcoes já estão disponíveis em https://github.com/leonardowascheck/sim ... e-balancas

Abraços!
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor lwinter » 22 Mar 2019 18:45

Só comentando o meu ultimo comentário.
Na matemática, quando multiplicamos dois números decimais, a precisao do resultado é a somatória das casas decimais dos produtos.
Ex: 3.799 * 12.45, resulta em um numero 47.29775 (5 casas decimais). E as linguagens se comportam desta forma e por isso mesmo tive que fazer a ultima correção.

Abracos!
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor rochinha » 26 Mar 2019 17:40

Amiguinhos,

Iwinter
Ótimo aporte que com certeza nos auxiliará muitos, inclusive a mim mesmo pois sofro com arredondamentos além de duas casas.

Seja bem vindo ao Rol de Anciões do Reino xBase e obrigado por dividir o seu poder.

:-Y
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor lwinter » 28 Mar 2019 13:17

Carissimo Rochinha, que bom que de alguma forma isso o ajudou.
Lembrando que para quem trabalha com automação para postos, quando o preco unitário passar de R$ 5,000 já começa aparecer alguns problemas caso sua aplicação não for refaturada para contemplar as recomendações contidas no documento readme.md. Quando o preco unitário passar de R$ 10,000 haverá muitos problemas no mercado para quem não utilizar internamente 4 casas decimais na qtde. Foi por isso que o governo já disponibilizou esta possibilidade.

Outra coisa, estou estudando Python 3.7 (linguagem incrível e fácil de aprender para quem conhece Harbour) e acabei de disponibilizar um novo commit com o mesmo aplicativo SVG-IOT mas em python.
Caso queira esta disponível, a vantagem é que o resultado é uma planilha no Excel.

Outra coisa, se vocês acharem interessante, posso estar implementando um método onde é passado os valores da venda (qtde, iat_iot, preco unit e valor, iat_dfe) e retornara o valor da venda ajustada para colocar no DF-e. Desta forma ajudaria a toda a comunidade
Na realidade, este é um ponto muito mas muito importante de ser tratado na automação comercial mas que poucos dao atenção, acabando dando muito problema de suporte.
Eu mesmo acabei tendo uma solução intermediaria, pois na época que eu desenvolvi o svg-iot, eu estava mais focado na migração do Harbour para C#.
Mas vocês ainda tem tempo de resolver isso com mais calma.
No dia a dia não temos tempo para pensar neste nível de detalhes pois estamos totalmente ocupados com a operação e com nossos clientes, então este programa e esta função pode ser de grande ajuda. Para vocês terem uma ideia nem software house de grande porte estão atentadas a detalhes neste nível.
O ideal seria que os fabricantes de equipamentos IOT (balanças e bombas) disponibilizasse a informação do campo IAT dentro dos elementos de vendas capturados, facilitaria muito o trabalho. Mas os fabricante em sua maioria (tirando algumas exceções que são muito legais e se importam com o cliente) são tudo uma cambada de arrogantes e ignorantes.

Me deixa saber se vocês querem que eu desenvolva este método que farei com o maior prazer.

abraços!
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor rochinha » 28 Mar 2019 19:31

Amiguinhos,

Iwinter todo conhecimento só se agrega. O desenvolvimento se dará usando Python? então mina sugestão é pedir ao Toledo para incluir uma sub-categoria em Outras Linguagens de Programação e você colocar estas contribuições.

Vale lembrar que nem todos tem disponibilidade de tempo para aprender outras linguagens pois creio que a maioria aqui entende 100% de xBase e 10% de outras linguagens para integrações.

É tipico saber o básico de um CRUD em outra linguagem e por aí vai.

Caso você encontre tempo, venha somar. ficamos agradecidos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Entendendo Truncamento e Arredondamento com NFC-e/CF-e

Mensagempor lwinter » 28 Mar 2019 22:49

Oi Rochinha!
Não, não o método que me propus a desenvolver seria feito em Harbour mesmo.
Seria uma função onde você passa o método IAT e valores capturados da balança ou bomba e ela retornaria os elementos de vendas com a qtde ajustada. Penso que isso poderia ajudar quem utiliza o padrão xBase.
O que você acha?
lwinter
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 123
Data de registro: 07 Mar 2011 12:08
Cidade/Estado: Campinas - SP
Curtiu: 1 vez
Mens.Curtidas: 12 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 19 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro