Oi, Só pra repetir aqui com muitos detalhes o que já anunciei bem resumidamente no identi.ca:
A Receita Federal fez o favor de mudar o formato de arquivo na versão final do IRPF-Livre 2010. Também fez a mesma coisa no IRPF2008v3.0, mexeu um pouquinho na lista de bancos no IRPF2009v2.0, e passou a exigir declarações com esses (não tão) novos números de versões para quem precisar fazer retificações. No próprio dia primeiro, já arrumei o IRPF-Livre 2010 pra gerar arquivos iguais aos da versão final. Uma das alterações mais interessantes foi que o campo ENDERECO_MAC, que era deixado em branco na versão de testes, agora era preenchido. Sei lá por que a Receita Federal quer saber o endereço físico da máquina usada pra preencher uma declaração, nem por que ela acha que tem o direito de colocar essa informação particular na declaração assim, na surdina, mas vi aí uma oportunidade bacana pra “assinar” declarações com o IRPF-Livre. A oportunidade se consolidou quando descobri que o GCJ / GNU Classpath ainda não oferece os métodos necessários pra pegar o ENDERECO_MAC da interface de rede conectada à Internet. Isso é funcionalidade de Java 1.6. Ponto negativo pra Receita Federal: pra que que precisava exigir versão mais nova do Java, se um montão de gente já tem versões mais antigas perfeitamente funcionais instaladas? Certamente não é só porque o OpenJDK 1.6 é Livre, né? Até porque, de fato, não é: só o IcedTea, que substitui os pedaços privativos do OpenJDK, é realmente Livre. Enfim, a solução foi deixar o usuário preencher o campo ENDERECO_MAC como lhe conviesse: 12 caracteres hexadecimais pra se divertir à vontade. Dá pra colocar o valor igual ao determinado pelo IRPF2010, pra verificar que a declaração fica idêntica bit a bit, aí depois troca pra outra coisa pra “assinar” a declaração. Eu, por exemplo, usei “001F8EEDO300", uma tentativa porca de escrever FREEDOM com hexadecimal. Mais porca ainda porque consegui colocar uma letra O onde tinha que ser um zero. E, sabe o quê? A declaração foi enviada sem problema algum. Então, ao que tudo indica, podem deitar e rolar nesse campo: "RECEITASUCKS", "FORAIRPF2010", "IRPFLIV4EVER". Claro que, pra fazer isso, precisa usar o IRPF-Livre pelo menos pra preparar a declaração pro envio ;-) Usando essa versão, a r6674, já entreguei declarações minha e da minha esposa ontem. O meu amigo lá na agência do Banco do Brasil, quando me viu chegando com os disquetes na mão, falou “Nossa, já?!?” :-) Levei em pen-drive também, mas não conseguimos descobrir como usar as interfaces USB da máquina nova que botaram na mesa dele :-( O sistema é GNU/Linux, mas há várias razões pra não habilitar USB num banco que não permite aos funcionários sequer trocar e-mails com clientes. Descobri, enquanto preparava essas declarações, que o IRPF-Livre (assim como o IRPF privativo) não fazia alguns cálculos quando lia os dados do arquivo XML. Foi uma surpresa: ele faz bastantes contas, mas em particular o resultado da ficha cônjuge e os totais das fichas de rendimentos isentos e rendimentos com tributação exclusiva na fonte não eram recalculados. Não consegui descobrir o porquê :-( O resultado: se não fizesse essas contas na mão, a declaração seria gerada sem uma das linhas, onde deveriam ser sumarizados os rendimentos isentos (e, se não me engano, também os com tributação exclusiva na fonte). Resumos também sairiam tortos, podendo até levar a suspeitas de tentativa de fraude, apesar de isso não fazer muito sentido, pois são rendimentos que não geram tributação, ou que já foram tributados, e a Receita já foi devidamente informada sobre eles. Como evidência de que não dá problema, as declarações que entreguei em 2009, com essas linhas faltando, passaram lisas. Mesmo assim, achei melhor preparar declarações de retificação, até porque a Receita Federal continua insistindo que minhas declarações de 2008 dão “Erro de descompctação” (sic). De repente, corringindo isso, vai. Preparei as retificações desde 2007, calculando esses números na mão, verificando que tava tudo certo, gravei as declarações no disquete junto com as de 2010, e... O banco não aceitou as declarações nem de 2008 nem de 2009, porque foram geradas com versões antigas demais “do IRPF”. Bom, tecnicamente, não foram, mas como o IRPF-Livre gera declarações iguaizinhas às do IRPF privativo em que se baseou, ele continuava dizendo que era versão 1.0. Lá vou eu então atualizar o IRPF-Livre 2008 e 2009. Enquanto mexia nisso, me ocorreu que não custava muito dar um jeito de ele fazer as contas que não fazia, ainda que na marra. Fui lá e fiz. Aproveitei pra implementar um novo comando que dispensa a dança do grava/restaura pra recalcular valores derivados dos preenchidos: o comando recalcula agora faz isso, sem passar por um arquivo intermediário, refazendo as contas e gravando diretamente no repositório xml. Muito mais prático ;-) Enquanto implementava essas coisas, entre elas o cálculo do resultado da ficha cônjuge, pensei... Pô... É chato pacas ficar caçando os números da declaração do cônjuge, especialmente sem um comandinho que cuspa na tela o resumo da declaração. Esse comandinho, ainda não fiz, mas fiz algo muitíssimo mais útil: um comando que abre a sua declaração, a de seu cônjuge (que precisa estar no mesmo repositório), faz as contas de um e de outro e preenche as fichas de Cônjuge nas respectivas declarações. E pronto! Não é o máximo? Viu, Receita, é por coisas assim, e muitas outras mais, que esse (e qualquer outro) tipo de software tinha que ser Livre! Com as novas versões dos IRPF-Livre 2007, 2008, 2009 e 2010, que acabei de publicar, todas identificadas como r6675 nos respectivos anos (é o número da revisão no repositório SVN, cada ano com seu branch), gerei novas declarações de 2008 e 2009, pra entregar amanhã^Wdaqui a pouco, e verifiquei que não mudou nada nas declarações de 2010 nem de 2007, como esperado. Ufa!, fiz as contas direitinho ;-) Aproveitei pra fazer um back-port de algumas funcionalidades pra versão de 2007. Por exemplo, agora ela imprime o “número do recibo” quando prepara uma declaração pra entrega, como as mais novas já faziam. É, isso mesmo, a Receita Federal chama um hash calculado sobre a declaração de “número de recibo”, embora não tenha recebido a declaração. Imagina que barato a Receita Federal dizer que você não entregou a declaração, e você chega lá com o número de recibo? Forçando um pouquinho a barra, daria até pra gerar um arquivo de recibo, que só a própria Receita ia poder dizer se é válido ou não. Agora imagina que barato você ter um .REC gerado pela Receita e ela dizer que não foi ela que emitiu. Já pensou? Enfim... Era meio chato achar esse número no arquivo de declaração anterior, na hora de preparar uma retificação (pra declaração no ano seguinte é tranquila, o importador já preenche), e mesmo assim ele aparece no arquivo de declaração sem os dois dígitos verificadores (por isso que implementei lá por 2008 o comandinho calculaDV, agora também na versão para 2007), então achei que valia a pena. Amanhã (ou, no caso, daqui a pouco) vou passar no BB de novo pra entregar as retificações, aproveitando a tranquilidade bancária de início de mês. E aí, salvo relatórios de erros, provavelmente só volto a esse programa ano que vem. Saudações Livres, -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist Red Hat Brazil Compiler Engineer _______________________________________________ PSL-Brasil mailing list [email protected] http://listas.softwarelivre.org/mailman/listinfo/psl-brasil Regras da lista: http://twiki.softwarelivre.org/bin/view/PSLBrasil/RegrasDaListaPSLBrasil SAIR DA LISTA ou trocar a senha: http://listas.softwarelivre.org/mailman/options/psl-brasil
