cascardo/declara.git
3 years agoInsere bens e rendimentos na ordem em que aparecem.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:40:55 +0000 (17:40 -0300)]
Insere bens e rendimentos na ordem em que aparecem.

Ao invés de inserí-los de forma ordenada, permitindo melhor comparação com
declaração gerada pelo IRPF2020.

3 years agoAlguns atributos de bens são números.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 01:03:11 +0000 (22:03 -0300)]
Alguns atributos de bens são números.

Desta forma, a linha gerada se assemelha à linha do IRPF2020.

3 years agoSuporta imprimir atributo como número.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 01:02:57 +0000 (22:02 -0300)]
Suporta imprimir atributo como número.

3 years agoSuporta banco em bem.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:41:32 +0000 (21:41 -0300)]
Suporta banco em bem.

Ao gerar a declaração para entrega, utiliza o atributo banco em bem.

3 years agoSuporta CNPJ em bem.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:36:46 +0000 (21:36 -0300)]
Suporta CNPJ em bem.

Ao gerar a declaração para entrega, lê o atributo de CNPJ do bem.

3 years agoNovos campos em bens para 2020.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:31:00 +0000 (21:31 -0300)]
Novos campos em bens para 2020.

Suporte a dependentes a ser implementado.

3 years agoUtiliza atributos para bens.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:30:26 +0000 (21:30 -0300)]
Utiliza atributos para bens.

Muitos campos são utilizados em bens, muitos deles dependendo do tipo de bem.
Ao invés de suportar uma linha com um número muito grande de parâmetros
obrigatórios a toda linha de bens, utiliza o novo sistema de atributos.

Assim, as linhas de bens ficam mais legíveis e nem todos os parâmetros serão
exigidos para todos os tipos de bens.

3 years agoEscapa o carectere %.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:28:56 +0000 (21:28 -0300)]
Escapa o carectere %.

3 years agoSuporte a atributos.
Thadeu Lima de Souza Cascardo [Sun, 28 Jun 2020 00:28:38 +0000 (21:28 -0300)]
Suporte a atributos.

Utiliza nossa simples implementação de dicionário para implementar atributos em
alguns objetos, a serem lidos dos comandos como atributo=valor.

3 years agoSuporte inicial a 2020.
Thadeu Lima de Souza Cascardo [Sat, 13 Jun 2020 04:18:02 +0000 (01:18 -0300)]
Suporte inicial a 2020.

Valores iguais a anos anteriores e suporte inicial a novos campos nas linhas
principais. Testado com declaração simples.

3 years agoCorrige conjuge_salva.
Thadeu Lima de Souza Cascardo [Sat, 13 Jun 2020 03:23:51 +0000 (00:23 -0300)]
Corrige conjuge_salva.

Ao salvar dados de cônjuge, alguns campos a mais foram utilizados
incorretamente.

3 years agoSuporte a outros rendimentos isentos para 2019
Thadeu Lima de Souza Cascardo [Mon, 29 Apr 2019 20:10:20 +0000 (17:10 -0300)]
Suporte a outros rendimentos isentos para 2019

Com o novo formato de linhas de rendimentos isentos e tributados
exclusivamente na fonte desde 2018, diferentes tipos de fontes precisam de
novo suporte. Este commit atualiza o suporte a outros rendimentos isentos,
testado para 2019.

3 years agoAtualiza linha de bens para 2019.
Thadeu Lima de Souza Cascardo [Mon, 22 Apr 2019 09:28:44 +0000 (06:28 -0300)]
Atualiza linha de bens para 2019.

Mais um campo de 30 caracteres foi acrescentado à linha de bens, atualizando o
tamanho do campo de IPTU.

3 years agoLista de dependentes no cabeçalho de 2019.
Thadeu Lima de Souza Cascardo [Mon, 22 Apr 2019 00:50:49 +0000 (21:50 -0300)]
Lista de dependentes no cabeçalho de 2019.

A lista de dependentes não aparece nos cabeçalhos de 2017 e 2018, mas aparece
novamente em 2019.

3 years agoVersão IRPF de 2017.
Thadeu Lima de Souza Cascardo [Mon, 22 Apr 2019 00:50:32 +0000 (21:50 -0300)]
Versão IRPF de 2017.

A versão do IRPF de 2017 mais atual é 130.

3 years agoObrigatoriedade para rendimentos isentos e exclusivos.
Thadeu Lima de Souza Cascardo [Sat, 20 Apr 2019 00:47:46 +0000 (21:47 -0300)]
Obrigatoriedade para rendimentos isentos e exclusivos.

Rendimentos isentos ou tributados exclusivamente na fonte cuja soma é superior
a R$ 40.000,00 obrigam o contribuinte a apresentar a Declaração de Ajuste
Anual.

3 years agoLucro gera linha 84, enquanto aplicações geram linha 88
Thadeu Lima de Souza Cascardo [Fri, 19 Apr 2019 13:22:43 +0000 (10:22 -0300)]
Lucro gera linha 84, enquanto aplicações geram linha 88

Como as linhas devem estar numericamente em ordem, emite as linhas de número 84
antes das linhas de número 88.

3 years agomais suporte a lucro
Thadeu Lima de Souza Cascardo [Mon, 15 Apr 2019 02:03:51 +0000 (23:03 -0300)]
mais suporte a lucro

3 years agoSuporte a lucro de micro-empresa e SIMPLES.
Thadeu Lima de Souza Cascardo [Mon, 15 Apr 2019 00:41:54 +0000 (21:41 -0300)]
Suporte a lucro de micro-empresa e SIMPLES.

3 years agoUsa códigos novos para rendimentos isentos.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:41:15 +0000 (17:41 -0300)]
Usa códigos novos para rendimentos isentos.

Pode quebrar suporte a anos anteriores a 2019. Os códigos e linhas são
diferentes para rendimentos isentos e tributados exclusivamente na fonte.

Códigos específicos deveriam ser usados continuamente e as linhas adaptadas
adequadamente de acordo com o ano.

Outra melhoria é utilizar nomes para os tipos de rendimentos.

3 years agoMudança de fillers na linha T9 para 2019.
Thadeu Lima de Souza Cascardo [Sat, 20 Apr 2019 00:49:19 +0000 (21:49 -0300)]
Mudança de fillers na linha T9 para 2019.

3 years agoSuporte inicial para 2019.
Thadeu Lima de Souza Cascardo [Mon, 15 Apr 2019 02:04:04 +0000 (23:04 -0300)]
Suporte inicial para 2019.

Valores iniciais para 2019. Outras correções são necessárias.

5 years agoInicializa membro da estrutura de rendimentos isentos.
Thadeu Lima de Souza Cascardo [Sat, 20 Apr 2019 10:53:32 +0000 (07:53 -0300)]
Inicializa membro da estrutura de rendimentos isentos.

O membro chamado exclusivo da estrutura de rendimentos isentos só era iniciado
quando o comando exclusivo era utilizado ou o código do rendimento era
conhecido. Inicia como não exclusivo, deixando o comando, no caso de código
desconhecido, como forma de identificar se o rendimento é tributado
exclusivamente na fonte.

5 years agoEvita divisão por zero ao calcular alíquota efetiva.
Thadeu Lima de Souza Cascardo [Sat, 20 Apr 2019 10:14:48 +0000 (07:14 -0300)]
Evita divisão por zero ao calcular alíquota efetiva.

Se não há rendimentos tributáveis, uma divisão por zero ocorreria ao calcular a
alíquota efetiva. Considera alíquota igual a zero neste caso.

5 years agoVersão IRPF para 2018.
Thadeu Lima de Souza Cascardo [Mon, 15 Apr 2019 00:41:44 +0000 (21:41 -0300)]
Versão IRPF para 2018.

A versão mínima para transmissão da declaração de 2018 é 160.

5 years agoNão gera linhas de rendimentos exclusivos de total zero.
Thadeu Lima de Souza Cascardo [Fri, 19 Apr 2019 13:13:39 +0000 (10:13 -0300)]
Não gera linhas de rendimentos exclusivos de total zero.

Quando não há um determinado rendimento exclusivo, seu total é zero, e não deve
ser gerada uma linha para determinado tipo de rendimento exclusivo.

5 years agoTelefone é outro campo no detalhe do recibo.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:39:23 +0000 (17:39 -0300)]
Telefone é outro campo no detalhe do recibo.

A partir de 2018, o telefone aparece em um campo diferente no detalhe do
recibo. O campo onde aparecia é um FILLER agora.

5 years agoPagamento de psicólogo é despesa médica.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:38:42 +0000 (17:38 -0300)]
Pagamento de psicólogo é despesa médica.

5 years agoSe total de rendimentos é zero, não gera linha.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:37:40 +0000 (17:37 -0300)]
Se total de rendimentos é zero, não gera linha.

Ao gerar a linha de um tipo de rendimento, se o seu total é zero, a linha não
deve ser gerada.

5 years agoUtiliza contexto na declaração ao gerar rendimentos.
Thadeu Lima de Souza Cascardo [Mon, 30 Apr 2018 20:35:13 +0000 (17:35 -0300)]
Utiliza contexto na declaração ao gerar rendimentos.

O número de linhas é utilizado para obter o rendimento cuja linha será gerada.
No entanto, com o novo formato de 2018, este método não funciona sempre.

A utilização de um ponteiro de uso temporário na declaração resolve o problema,
e é menos sujeito a erros.

5 years agoAdiciona /INSTALL a gitignore
Thadeu Lima de Souza Cascardo [Sun, 13 May 2018 14:12:44 +0000 (11:12 -0300)]
Adiciona /INSTALL a gitignore

5 years agoAdiciona arquivos de teste ao gitignore
Thadeu Lima de Souza Cascardo [Sun, 13 May 2018 14:10:27 +0000 (11:10 -0300)]
Adiciona arquivos de teste ao gitignore

5 years agoAdiciona arquivos de backup a gitignore
Thadeu Lima de Souza Cascardo [Sun, 13 May 2018 14:09:54 +0000 (11:09 -0300)]
Adiciona arquivos de backup a gitignore

5 years agoAdiciona arquivos objetos a gitignore
Thadeu Lima de Souza Cascardo [Sun, 13 May 2018 14:09:27 +0000 (11:09 -0300)]
Adiciona arquivos objetos a gitignore

5 years agoComenta gitignore
Thadeu Lima de Souza Cascardo [Sun, 13 May 2018 14:09:00 +0000 (11:09 -0300)]
Comenta gitignore

5 years agodeclara: retorna 0 se, e somente se, houverem erros
Antonio Terceiro [Mon, 30 Apr 2018 01:33:06 +0000 (22:33 -0300)]
declara: retorna 0 se, e somente se, houverem erros

getline() com certeza vai retornar -1 quando o arquivo acabar, então não
se pode usar seu valor de retorno como status de saída do programa como
um todo.

Além disso, como `r` é sobrescrito a cada iteração, precisamos de uma
outra variável pra guardar um valor de saída. Caso contrário, se a
execução do ultimo comando no arquivo for bem sucedido, o programa vai
retornar 0 mesmo se houver erros anteriormente.

5 years agoconjuge: melhora grafia de mensagem de erro
Antonio Terceiro [Mon, 30 Apr 2018 01:33:07 +0000 (22:33 -0300)]
conjuge: melhora grafia de mensagem de erro

5 years agoAdiciona arquivos .gitignore
Antonio Terceiro [Mon, 30 Apr 2018 01:33:05 +0000 (22:33 -0300)]
Adiciona arquivos .gitignore

6 years agoPermite importação de declarações.
Thadeu Lima de Souza Cascardo [Mon, 9 Apr 2018 23:13:54 +0000 (20:13 -0300)]
Permite importação de declarações.

Arquivos de declaração gerados para transmissão podem agora ser importados.

A importação não realiza alguns cálculos e, portanto, deve ser utilizada apenas
para salvar novo arquivo, que deve ser reprocessado.

6 years agoNão salva cônjuge caso não haja CPF.
Thadeu Lima de Souza Cascardo [Mon, 9 Apr 2018 23:51:52 +0000 (20:51 -0300)]
Não salva cônjuge caso não haja CPF.

Cônjuge era salvo mesmo quando não havia cônjuge.

6 years agoIndicação de campos vazios em bens.
Thadeu Lima de Souza Cascardo [Tue, 10 Apr 2018 02:58:41 +0000 (23:58 -0300)]
Indicação de campos vazios em bens.

Unidade de medida e registro de imóveis vazios utilizam uma representação
diferente. Ao menos em 2018, bens não imóveis também utilizam tal
representação.

6 years agoMais campos para bens em 2018.
Thadeu Lima de Souza Cascardo [Tue, 10 Apr 2018 02:57:51 +0000 (23:57 -0300)]
Mais campos para bens em 2018.

A partir de 2018, outros dados passam a ser pedidos para alguns tipos de bens.
Tais dados vão todos em todas as linhas de bens.

6 years agoRendimentos isentos e exclusivos em 2018.
Thadeu Lima de Souza Cascardo [Tue, 10 Apr 2018 02:35:40 +0000 (23:35 -0300)]
Rendimentos isentos e exclusivos em 2018.

As linhas mudaram em 2018. A linha simples com totais utilizada em anos
anteriores foi alterada para múltiplas linhas, com o total por sub-código de
rendimento.

Tais sub-códigos também foram introduzidos recentemente. As linhas com
detalhamento também mudaram para linhas que possuem o mesmo sub-código.

6 years agoCritérios de obrigatoriedade.
Thadeu Lima de Souza Cascardo [Tue, 10 Apr 2018 02:33:48 +0000 (23:33 -0300)]
Critérios de obrigatoriedade.

Há outros critérios de obrigatoriedade, como valor total de bens e direitos. Um
dos campos gerados da declaração a ser entregue identifica os diferentes
critérios de obrigatoriedade como bits em seu valor.

6 years agoAlíquota efetiva na declaração completa
Thadeu Lima de Souza Cascardo [Tue, 10 Apr 2018 02:33:24 +0000 (23:33 -0300)]
Alíquota efetiva na declaração completa

6 years agoSuporte inicial a 2018.
Thadeu Lima de Souza Cascardo [Sun, 4 Mar 2018 12:52:16 +0000 (09:52 -0300)]
Suporte inicial a 2018.

Suporte testado para rendimentos de pessoa jurídica.

6 years agoCalcula alíquota efetiva.
Thadeu Lima de Souza Cascardo [Sun, 4 Mar 2018 12:51:29 +0000 (09:51 -0300)]
Calcula alíquota efetiva.

O IRPF 2018 calcula e utiliza o valor de alíquota efetiva no arquivo gerado.

6 years agoImplementa celular.
Thadeu Lima de Souza Cascardo [Sun, 4 Mar 2018 12:48:48 +0000 (09:48 -0300)]
Implementa celular.

A Receita Federal tem um campo para telefone e outro para celular.

6 years agoSuporta carnê leão
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:16:23 +0000 (17:16 -0300)]
Suporta carnê leão

6 years agoNão imprime soma de zero a total
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:14:45 +0000 (17:14 -0300)]
Não imprime soma de zero a total

6 years agoDistingue pagamentos de titular e dependentes
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:14:18 +0000 (17:14 -0300)]
Distingue pagamentos de titular e dependentes

6 years agoSuporta NIT, exigido a partir de 2017
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:13:25 +0000 (17:13 -0300)]
Suporta NIT, exigido a partir de 2017

6 years agoCPF e DN de dependentes é Filler em 2017
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:12:18 +0000 (17:12 -0300)]
CPF e DN de dependentes é Filler em 2017

6 years agoUsa última versão IRPF 2017
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:10:27 +0000 (17:10 -0300)]
Usa última versão IRPF 2017

6 years agoDefine erro para comando conjuge
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:09:46 +0000 (17:09 -0300)]
Define erro para comando conjuge

6 years agoMostra outras deduções no modo verboso
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:07:52 +0000 (17:07 -0300)]
Mostra outras deduções no modo verboso

6 years agoComentário sobre número de dependentes com instrução
Thadeu Lima de Souza Cascardo [Tue, 6 Mar 2018 20:07:17 +0000 (17:07 -0300)]
Comentário sobre número de dependentes com instrução

7 years agoCorrige possível utilização após liberar memória.
Thadeu Lima de Souza Cascardo [Thu, 2 Mar 2017 10:32:32 +0000 (07:32 -0300)]
Corrige possível utilização após liberar memória.

Se um erro ocorre ao atualizar os totais dos rendimentos isentos ou
exclusivos, liberamos a estrutura, mas não a removemos da lista. A
adição à lista deve ser a última ação, para prevenir tais erros.

7 years agoOutros rendimentos isentos exclusivos.
Thadeu Lima de Souza Cascardo [Thu, 2 Mar 2017 10:27:59 +0000 (07:27 -0300)]
Outros rendimentos isentos exclusivos.

Outros rendimentos exigem uma descrição, e a discriminação se são
isentos ou exclusivos.

Até então, rendimentos exclusivos utilizavam o comando isento e eram
distintos pelo seu código. O comando exclusivo utiliza o mesmo código,
mas permite a distinção pelo primeiro argumento, quando o código não o
permitir.

7 years agoAdiciona totais de rendimentos tributáveis.
Thadeu Lima de Souza Cascardo [Tue, 28 Feb 2017 20:36:31 +0000 (17:36 -0300)]
Adiciona totais de rendimentos tributáveis.

Rendimentos tributáveis e de pessoas físicas são adicionados. Onde
rendimentos tributáveis devem ser utilizados, ao invés de apenas
rendimentos de pessoa jurídica, a mudança foi feita.

7 years agoRemove variável não utilizada
Thadeu Lima de Souza Cascardo [Tue, 28 Feb 2017 20:34:13 +0000 (17:34 -0300)]
Remove variável não utilizada

7 years agoGera hash do CPF no cabeçalho.
Thadeu Lima de Souza Cascardo [Mon, 27 Feb 2017 22:07:47 +0000 (19:07 -0300)]
Gera hash do CPF no cabeçalho.

Um dos campos do cabeçalho apresenta um hash que é apenas um CRC32 do CPF. Se
uma nova versão do IRPF remover tal campo, basta reverter este commit junto com
a provável atualização do campo de versão.

7 years agoGera cabeçalhos para versão 2017.
Thadeu Lima de Souza Cascardo [Mon, 27 Feb 2017 14:06:19 +0000 (11:06 -0300)]
Gera cabeçalhos para versão 2017.

Os cabeçalhos de declarações simplificada e completa mantém os campos de
2016, mudam alguns valores de código e versão e adicionam celular e um
campo de presença de cônjuge.

A primeira versão do IRPF 2017 também substitui um campo em branco por
um hash, que aparenta depender apenas do CPF. No entanto, parece ser um
bug e uma nova versão é esperada.

7 years agoAdiciona mensagens de erro ao comando gera.
Thadeu Lima de Souza Cascardo [Sat, 14 Jan 2017 16:35:02 +0000 (14:35 -0200)]
Adiciona mensagens de erro ao comando gera.

Mensagens ao validar parâmetros, verificar o ano suportado e erro ao
abrir arquivo são emitidas.

7 years agoRemove fim de linha em mensagens de erro.
Thadeu Lima de Souza Cascardo [Sat, 14 Jan 2017 16:30:41 +0000 (14:30 -0200)]
Remove fim de linha em mensagens de erro.

7 years agoAdiciona valores para cálculo referente a exercício 2017.
Thadeu Lima de Souza Cascardo [Sat, 14 Jan 2017 12:24:26 +0000 (10:24 -0200)]
Adiciona valores para cálculo referente a exercício 2017.

Os valores foram obtidos a partir de [1], com exceção do valor de
obrigatoriedade, que foi obtido a partir da Instrução Normativa 1671 de
2016.

O comando "gera" ainda não suporta o ano de 2017.

[1] http://idg.receita.fazenda.gov.br/acesso-rapido/tributos/irpf-imposto-de-renda-pessoa-fisica

7 years agoSimplifica set_int e set_string.
Thadeu Lima de Souza Cascardo [Sat, 14 Jan 2017 15:08:37 +0000 (15:08 +0000)]
Simplifica set_int e set_string.

set_int e set_string eram utilizados com argumentos dados a um comando e
sempre esperavam dois argumentos apenas, o que fazia com que seu uso não
fosse legível a não ser pelas macros SET_INT_ e SET_STRING_.

Movendo a lógica de teste de argumentos para as macros, foi possível
simplificar set_int e set_string e tornar o uso de set_int em alguns
casos mais legível, bem como passar a utilizar set_string para verificar
erros de alocação de memória.

As macros SET_INT_ e SET_STRING_ foram também unificadas em SET_VAL_,
porém mantidas com os argumentos que aceitavam anteriormente, mas
fazendo uso desta última. SET_VAL_ foi melhorada para aceitar um texto
de ajuda e definir um texto de erro mais amigável ao usuário.

7 years agoAdiciona ajuda curta para ajuda.
Thadeu Lima de Souza Cascardo [Sat, 14 Jan 2017 13:13:04 +0000 (13:13 +0000)]
Adiciona ajuda curta para ajuda.

7 years agoFecha o stream para arquivo processado.
Thadeu Lima de Souza Cascardo [Wed, 14 Dec 2016 23:40:19 +0000 (21:40 -0200)]
Fecha o stream para arquivo processado.

Ao abrir o arquivo com fdopen, um vazamento de memória ocorre se o
stream não for fechado com fclose.

7 years agoAdiciona ajuda sobre a ajuda.
Thadeu Lima de Souza Cascardo [Mon, 12 Dec 2016 01:50:46 +0000 (23:50 -0200)]
Adiciona ajuda sobre a ajuda.

7 years agoFunção para iniciar todos os comandos.
Thadeu Lima de Souza Cascardo [Mon, 12 Dec 2016 01:50:01 +0000 (23:50 -0200)]
Função para iniciar todos os comandos.

7 years agoEmite mensagem de erro se ano é inválido.
Thadeu Lima de Souza Cascardo [Mon, 12 Dec 2016 01:45:07 +0000 (23:45 -0200)]
Emite mensagem de erro se ano é inválido.

Se o ano não é suportado pelo comando calcula, uma mensagem de erro é
definida.

7 years agoImprime mensagem de erro se definida.
Thadeu Lima de Souza Cascardo [Mon, 12 Dec 2016 01:43:55 +0000 (23:43 -0200)]
Imprime mensagem de erro se definida.

Caso um erro tenha ocorrido e a mensagem de erro esteja definida,
utilize-a ao invés da mensagem correspondente ao código de erro.

7 years agoPermite definir um erro ao processar a declaração.
Thadeu Lima de Souza Cascardo [Mon, 12 Dec 2016 01:42:17 +0000 (23:42 -0200)]
Permite definir um erro ao processar a declaração.

Uma mensagem de erro pode ser definida no contexto da declaração. Assim,
o usuário pode ter mais detalhes sobre o erro ao processar algum
comando.

7 years agohelp: comando exibe ajuda curta dos comandos.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 13:46:09 +0000 (11:46 -0200)]
help: comando exibe ajuda curta dos comandos.

O comando "help" ou "ajuda" sem parâmetros mostram a lista de comandos
acompanhados de uma descrição curta.

7 years agocmd: adiciona campo help.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 13:45:44 +0000 (11:45 -0200)]
cmd: adiciona campo help.

Comandos podem documentar uma ajuda curta com o campo help.

7 years agocmd: itera entre os comandos.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 13:41:21 +0000 (11:41 -0200)]
cmd: itera entre os comandos.

7 years agopmhash: permite iterar os valores.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 13:39:39 +0000 (11:39 -0200)]
pmhash: permite iterar os valores.

A função pmhash_next retorna o próximo valor de um hash dado um iterador
opaco que deve ser iniciado com NULL.

7 years agoBusca os arquivos de ajuda no diretório instalado.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 10:32:48 +0000 (08:32 -0200)]
Busca os arquivos de ajuda no diretório instalado.

Exporta DOCDIR para o código para que busque os arquivos de ajuda no
local em que foram instalados.

7 years agoDistribui os arquivos de ajuda.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 10:31:38 +0000 (08:31 -0200)]
Distribui os arquivos de ajuda.

Eles serão instalados em docdir, /usr/share/doc/declara/, se o prefixo
for /usr/.

7 years agoAdiciona ajuda para ano e cpf.
Thadeu Lima de Souza Cascardo [Sun, 11 Dec 2016 10:30:46 +0000 (08:30 -0200)]
Adiciona ajuda para ano e cpf.

Os comandos ano e cpf são documentados.

7 years agoAdiciona comando help.
Thadeu Lima de Souza Cascardo [Sat, 10 Dec 2016 13:24:14 +0000 (11:24 -0200)]
Adiciona comando help.

O comando help lê arquivos texto e imprime seu conteúdo na saída padrão.
Assim, a documentação pode ser escrita em simples arquivos.

7 years agodumpfile: joga o conteúdo de um arquivo em um fd
Thadeu Lima de Souza Cascardo [Sat, 10 Dec 2016 13:22:09 +0000 (11:22 -0200)]
dumpfile: joga o conteúdo de um arquivo em um fd

A função dumpfile lê o conteúdo de um arquivo e o escreve em um
descritor, que pode ser a saída padrão, por exemplo.

7 years agoAdiciona suporte a readline.
Thadeu Lima de Souza Cascardo [Sat, 10 Dec 2016 13:21:21 +0000 (11:21 -0200)]
Adiciona suporte a readline.

Quando executado sem um parâmetro, o declara aceitará comandos na
entrada padrão, utilizando readline e history.

7 years agoCorrige comentários de alguns campos.
Thadeu Lima de Souza Cascardo [Sat, 10 Dec 2016 12:10:05 +0000 (10:10 -0200)]
Corrige comentários de alguns campos.

7 years agoUtiliza macros para formatar Real no resumo.
Thadeu Lima de Souza Cascardo [Sat, 10 Dec 2016 12:09:17 +0000 (10:09 -0200)]
Utiliza macros para formatar Real no resumo.

8 years agoSuporta indenizações isentas, como FGTS e aviso prévio.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 22:44:18 +0000 (19:44 -0300)]
Suporta indenizações isentas, como FGTS e aviso prévio.

Indenizações como FGTS, aviso prévio e abono pecuniário contam como
rendimentos isentos.

8 years agoUsa marca BUG IRPF.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 22:22:21 +0000 (19:22 -0300)]
Usa marca BUG IRPF.

Os comportamentos que parecem ser bugs no programa IRPF distribuído pela
Receita Federal devem ser marcados como BUG IRPF.

8 years agoCálculo de despesas com instrução.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 19:38:17 +0000 (16:38 -0300)]
Cálculo de despesas com instrução.

Calcula despesas com instrução, limitados a seus valores por titular e
dependente. Soma tais valores às deduções. Também gera os valores
necessários para as linhas de declaração e totais, como número de
dependentes por instrução e total de despesas dedutíves com instrução.

8 years agoMudanças no cálculo das deduções.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 19:39:44 +0000 (16:39 -0300)]
Mudanças no cálculo das deduções.

Ao invés de considerar como dedução todos os pagamentos subtraídos de
todas as deduções, considera apenas aqueles valores legais conhecidos.

No momento, o total das despesas médicas e previdência. No entanto,
ainda é necessário fazer o cáculo para limites com a previdência.

8 years agoDeduções pode ser maiores que rendimentos tributáveis.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 19:32:57 +0000 (16:32 -0300)]
Deduções pode ser maiores que rendimentos tributáveis.

Base de cálculo deve ser zero nesses casos, não negativa.

8 years agoIRPF gera 0 para rendimentos isentos de dependentes.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 16:16:18 +0000 (13:16 -0300)]
IRPF gera 0 para rendimentos isentos de dependentes.

Na linha de cabeçalho da declaração simplificada, os rendimentos isentos
de dependentes exibem 0 no caso de rendimentos como doações e poupança.

Ainda não é claro se é algum bug, algum cálculo diferente do que
fazemos. O cálculo da linha 18 está correto, no entanto.

8 years agoCabeçalho de simplificada usa rendimentos de titular.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 16:13:46 +0000 (13:13 -0300)]
Cabeçalho de simplificada usa rendimentos de titular.

Os rendimentos isentos no cabeçalho da declaração simplificada se
referem aos rendimentos do titular.

8 years agoImprime total de doações na linha de rendimentos isentos.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:39:23 +0000 (12:39 -0300)]
Imprime total de doações na linha de rendimentos isentos.

8 years agoSuporta rendimentos de dependentes nos totais.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:35:15 +0000 (12:35 -0300)]
Suporta rendimentos de dependentes nos totais.

Ao gerar as linhas de totais, imprime os totais de rendimentos isentos e
exclusivos de dependentes.

8 years agoNão totaliza rendimentos de dependentes como de titular.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:33:54 +0000 (12:33 -0300)]
Não totaliza rendimentos de dependentes como de titular.

Os rendimentos de dependentes são adicionados a novos totais de
rendimentos de dependentes. Os rendimentos de titular excluem tais
rendimentos.

8 years agoSuporta rendimentos isentos e exclusivos de dependentes.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:32:51 +0000 (12:32 -0300)]
Suporta rendimentos isentos e exclusivos de dependentes.

Da mesma forma como implementado para pagamentos, os rendimentos isentos
e exclusivos de dependentes são indicados através de um índice de
dependentes.

8 years agoPermite pagamento para despesa com dependente.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:24:53 +0000 (12:24 -0300)]
Permite pagamento para despesa com dependente.

O dependente deve ser especificado numericamente, indexado a partir de
1. Este é o mesmo código a ser utilizado ao gerar a linha de dependente
e que será utilizado na linha de pagamento.

A opção foi feita por utilizar o índice, pois nem todos os dependentes
possuem CPF, e no raro caso de existirem dependentes homônimos, o nome
não poderia ser utilizado tampouco.

A utilização do índice exige que o dependente seja adicionado
anteriormente ao pagamento. Se o dependente for omitido ou tiver o
índice zero, considera-se a despesa com o titular.

A linha de pagamento também passa a ser gerada com a informação correta
sobre o dependente.

8 years agoImplementa list_size, retornando tamanho da lista.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 15:23:23 +0000 (12:23 -0300)]
Implementa list_size, retornando tamanho da lista.

Esta função será útil para obter número de dependentes, por exemplo.

8 years agoSuporta doações.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 12:23:24 +0000 (09:23 -0300)]
Suporta doações.

Computa doações e gera linha de doações. No entanto, ainda não imprime
nas linhas de totais.