Re: [IRPF-Livre] Possível erro em src/serpro/ppgd/negocio/Valor.java impacta todas as operações

Adonay Felipe Nogueira adfeno.7046 en gmail.com
Mar Abr 16 02:39:58 UTC 2024


Boas notícias, considerando os testes que fiz com porcentagens, a 
revisão r19536 aprimorou ainda mais o suporte a estes, bem como limpou 
um pouco das definições iniciais da classe Valor. Além disso, corrigi o 
conteúdo da alíquota efetiva na declaração completa, para que seja 
expressado em notação decimal, conforme esperado pelo modelo padrão.

Não é necessário fazer explicitamente a conversão de uma porcentagem em 
notação decimal para porcento no resumo ou na exportação tendo em vista 
que o NÃO USO da função converte () já faz isso implicitamente, o que 
foi agora mencionado na mesma.

Em 14/04/2024 09:53, Adonay Felipe Nogueira escreveu:
> Boas notícias, a revisão r19528 parece resolver o problema da perda de 
> precisão. Além disso, agora os valores são arredondados ou truncados 
> apenas quando se usa getConteudoFormatado () ou asTxt (), que até onde 
> entendo, devem ser usados apenas para gravação, resumo e preparação. Já 
> o método converte () opera agora somente com valores em formato que não 
> seja porcentagem e nem taxa de câmbio.
> 
> Supostamente eu teria que investigar por qual motivo *não precisei* usar 
> a outra parte da nova função converteNotacaoPorcentagem (), para 
> converter de uma fração para porcentagem (paraFracao = false) em 
> getConteudoFormatado () e asTxt (), mas como os cálculos do desconto 
> simplificado de 20% (0,2) e da alíquota de 7,5% (0,075) parecem ter sido 
> feitos corretamente, e a alíquota efetiva foi exibida corretamente no 
> resumo sem precisar do método converteNotacaoPorcentagem (), então 
> resolvi deixar assim por ora.
> 
> Em 06/04/2024 19:30, Adonay Felipe Nogueira escreveu:
>> Favor desconsiderar o anexo que começa com 07 no email anterior, pois 
>> ele está incorreto e se refere a outro teste. Sei que não se pode 
>> remover um arquivo já publicado, mas segue a cópia de segurança 
>> correta gerada pelo IRPF privativo de liberdade do exercício de 2024, 
>> ano base 2023.
>>
>> Em 06/04/2024 18:52, Adonay Felipe Nogueira escreveu:
>>> Em adendo ao relato inicial, segue mais alguns testes e, inclusive, 
>>> segue em anexo as declarações geradas pelo próprio IRPF privativo de 
>>> liberdade.
>>>
>>> = Etapas para teste
>>>
>>> 1. Faça uma declaração nova conforme parâmetros dos subitens abaixo, 
>>> ou restaure as cópias de segurança das declarações em anexo, todas as 
>>> quais foram geradas pelo próprio IRPF privativo de liberdade, 
>>> selecionando a opção pela declaração simplificada.
>>>
>>> 1.a) Faça uma nova declaração: irpf nova 01234567890
>>>
>>> 1.b) Em aplicacao/dados/iddeclaracao.xml, insira:
>>>       nome="CONTRIBUINTE"
>>>       tipoDeclaracao="1"
>>>
>>> 1.c) Em aplicacao/dados/0123456780/0123456780.xml, adicione um item 
>>> vazio em colecaoRendPJTitular.
>>>
>>> 2.d) irpf recalcula 0123456780
>>>
>>> 3.e) No novo item em colecaoRendPJTitular, adicione:
>>>       NIFontePagadora="01.234.567/0001-20"
>>>       nomeFontePagadora="PAGADOR"
>>>       rendRecebidoPJ="40.000,00"
>>>
>>> 2. irpf recalcula 01234567890
>>> 3. irpf resumo 01234567890
>>>
>>> Nas declarações em anexo, o registro 18 (REG_RESUMOSIMPLES) pode ser 
>>> usado também para confrontar os valores gerados pelo IRPF-Livre.
>>>
>>> = Resultados dos testes
>>>
>>> == 2021, ano base 2020
>>>
>>> IRPF-Livre 2021 r18092 = 526,42 a pagar
>>> IRPF privativo 2021 1.9 = 686,42 a pagar
>>> 40.000,00 * (1 - 0,2) * 0,075 - 1.713,58 = 686,42 a pagar
>>>
>>> == 2022, ano base 2021
>>>
>>> IRPF-Livre 2022 r19250 = 526,42 a pagar
>>> IRPF privativo 2022 1.9 = 686,42 a pagar
>>> 40.000,00 * (1 - 0,2) * 0,075 - 1.713,58 = 686,42 a pagar
>>>
>>> == 2023, ano base 2022
>>>
>>> IRPF-Livre 2023 r19509 = 526,42 a pagar
>>> IRPF privativo 2023 1.5 = 686,42 a pagar
>>> 40.000,00 * (1 - 0,2) * 0,075 - 1.713,58 = 686,42 a pagar
>>>
>>> == 2024, ano base 2023
>>>
>>> IRPF-Livre 2024 r19523 = 401,61 a pagar
>>> IRPF privativo 2024 1.1 = 561,61 a pagar
>>> 40.000,00 * (1 - 0,2) * 0,075 - 1.838,39 = 561,61 a pagar
>>>
>>>
>>>
>>>
>>> Em 31/03/2024 00:18, Adonay Felipe Nogueira escreveu:
>>>> Conforme consta na revisão r19523 do irpf-livre-2024, encontrei 
>>>> possíveis erros de arredondamento em 
>>>> src/serpro/ppgd/negocio/Valor.java.
>>>>
>>>> Trata-se da perda de números pois valor retornado é incorreto caso 
>>>> pVal tenha mais que duas casas decimais. O problema é mais visível e 
>>>> foi encontrado na multiplicação (*), que é usada em alguns locais 
>>>> com porcentagens. Falta investigar se também ocorre com outras 
>>>> operações matemáticas.
>>>>
>>>> = Como reproduzir
>>>>
>>>> 1. Preencha uma declaração com rendimentos tributáveis maiores que o 
>>>> limite cujo multiplicador tenha mais que duas casas decimais e mande 
>>>> o IRPF-Livre recalcular. Use algo como 
>>>> serpro.ppgd.irpf.ModeloDeclaracao.LIMITE_ANUAL_7_MEIO_PORCENT + R$ 
>>>> 1,00.
>>>>
>>>> 2. Siga a seção "Dicas para encontrar/depurar erros" do LEIAME até o 
>>>> passo 5, vá ao final do ~/.jdbrc e insira algo similar ao seguinte, 
>>>> trocando o número ao final pelo da linha que usa 
>>>> _baseCalculo.operacao ('*', "0,075") no arquivo 
>>>> src/serpro/ppgd/irpf/ModeloDeclaracao.java:
>>>>
>>>>      stop at serpro.ppgd.irpf.ModeloDeclaracao:65
>>>>
>>>> 3. Continue com os passos da seção e, após as configurações, faça 
>>>> 'irpf resumo'.
>>>>
>>>> 4. Já dentro do jdb (vide LEIAME), use o comando 'run'.
>>>>
>>>> 5. Se tudo deu certo, o IRPF-Livre estará parado na linha que 
>>>> pedimos. Agora exiba a base de cálculo e o resultado da 
>>>> multiplicação para comparações futuras:
>>>>
>>>>      eval _baseCalculo
>>>>      eval _baseCalculo.operacao ('*', "0,075")
>>>>
>>>> 7. Assumindo que _baseCalculo esteja correta, faça a mesma 
>>>> multiplicação em outra calculadora. Experimente também multiplicar 
>>>> por 0,07.
>>>>
>>>> = Ambiente de testes
>>>>
>>>> * Distribuição: GNU+Linux Trisquel 11 Aramo
>>>>
>>>> * Compilador Eclipse: 3.16.0 (pacote: ecj=3.16.0-1)
>>>>
>>>> * Versões do OpenJDK Runtime Environment:
>>>> ** 11.0.22+7-post-Ubuntu-0ubuntu222.04.1 (pacote: 
>>>> openjdk-11-jre-headless:amd64=11.0.22+7-0ubuntu2~22.04.1)
>>>> ** 21.0.2+13-Ubuntu-122.04.1 (pacote: 
>>>> openjdk-21-jre-headless:amd64=21.0.2+13-1~22.04.1)
>>>>
>>>> * Versões do depurador jdb:
>>>> ** 11.0 (pacote: 
>>>> openjdk-11-jdk-headless:amd64=11.0.22+7-0ubuntu2~22.04.1)
>>>> ** 21.0 (pacote: openjdk-21-jdk-headless:amd64=21.0.2+13-1~22.04.1)
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <http://www.fsfla.org/pipermail/softwares-impostos/attachments/20240415/0ce763f9/attachment.sig>


Más información sobre la lista de distribución Softwares-impostos