cascardo/declara.git
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.

8 years agoImprime lista de dependentes no cabeçalho do DEC.
Thadeu Lima de Souza Cascardo [Sun, 10 Apr 2016 11:52:14 +0000 (08:52 -0300)]
Imprime lista de dependentes no cabeçalho do DEC.

O cabeçalho do arquivo contém campos para CPFs e datas de nascimento dos
dependentes. Estes valores não eram impressos. Agora, itera-se na lista
de dependentes e os valores são impressos.

8 years agoCom o suporte a 2016, muda versão.
Thadeu Lima de Souza Cascardo [Sat, 9 Apr 2016 02:32:33 +0000 (23:32 -0300)]
Com o suporte a 2016, muda versão.

Utiliza versão 2016.0, ainda que o software seja experimental, indicando
suporte ao ano de 2016.

8 years agoNão instala biblioteca.
Thadeu Lima de Souza Cascardo [Sat, 9 Apr 2016 02:31:48 +0000 (23:31 -0300)]
Não instala biblioteca.

Biblioteca não deve ser publicada no momento, sendo apenas para uso
interno do programa.

8 years agoSuporta geração de declaração de 2016.
Thadeu Lima de Souza Cascardo [Sat, 26 Mar 2016 03:22:13 +0000 (00:22 -0300)]
Suporta geração de declaração de 2016.

8 years agoNão gera linha de isentos e exclusivos quando não existentes.
Thadeu Lima de Souza Cascardo [Sat, 26 Mar 2016 03:17:22 +0000 (00:17 -0300)]
Não gera linha de isentos e exclusivos quando não existentes.

Quando os rendimentos isentos ou tributados de forma exclusiva na fonte
não existem, não imprime suas respectivas linhas.

8 years agoNão imprime valores nulos.
Thadeu Lima de Souza Cascardo [Sat, 26 Mar 2016 03:16:38 +0000 (00:16 -0300)]
Não imprime valores nulos.

Imprime a string vazia para alguns valores, quando estes não foram
definidos pelo usuário.

8 years agoFunções para lista de pagamentos ordenados.
Thadeu Lima de Souza Cascardo [Sat, 26 Mar 2016 03:14:16 +0000 (00:14 -0300)]
Funções para lista de pagamentos ordenados.

Cria uma função para lista de pagamentos independente do código, uma
função mais genérica, com um callback de condição, e uma função para
pagamentos à previdência pública INSS.

8 years agoCalcula imposto para 2016.
Thadeu Lima de Souza Cascardo [Sat, 19 Mar 2016 19:23:41 +0000 (16:23 -0300)]
Calcula imposto para 2016.

Adiciona os valores de limites e alíquotas suportados para o exercício
de 2016.

8 years agoRetorna erro para gerar declaração de ano não suportado.
Thadeu Lima de Souza Cascardo [Sat, 19 Mar 2016 15:01:59 +0000 (12:01 -0300)]
Retorna erro para gerar declaração de ano não suportado.

Apenas a declaração de 2015 é suportada no momento. Retorna erro caso o
usuário tente gerar uma declaração de outro exercício.

8 years agoPermite expandir cálculo para outros anos.
Thadeu Lima de Souza Cascardo [Sat, 19 Mar 2016 14:58:55 +0000 (11:58 -0300)]
Permite expandir cálculo para outros anos.

Introduz macros para indexar arranjos com o ano do exercício da
declaração, e altera as variáveis utilizadas para os valores de 2015
para arranjos, de tal forma a permitir expansão para outros anos.

8 years agoImprime complemento corretamente.
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 18:11:08 +0000 (15:11 -0300)]
Imprime complemento corretamente.

Se não há complemento, imprime espaços.

8 years agoGera linha de cônjuge apenas se há cônjuge declarado.
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 18:09:48 +0000 (15:09 -0300)]
Gera linha de cônjuge apenas se há cônjuge declarado.

A linha de cônjuge era emitida incondicionalmente. Esta deve ser emitida
apenas se há declaração de cônjuge.

8 years agoAdiciona teste de tokenizer.
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 12:02:27 +0000 (09:02 -0300)]
Adiciona teste de tokenizer.

Teste é ainda bem simples, mas já verifica o correto suporte a
comentários e o tratamento de espaços em branco.

8 years agoCompara chaves do hash sem distinção de "caixa".
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 11:57:14 +0000 (08:57 -0300)]
Compara chaves do hash sem distinção de "caixa".

Apenas a lista de comandos e totais utilizam pmhash. Ao utilizar
strcasecmp ao invés de strcmp, comandos passam a ser reconhecidos
independente de utilizarem letras maiúsculas ou minúsculas.

8 years agoSuporta comentários.
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 11:55:45 +0000 (08:55 -0300)]
Suporta comentários.

Implementa comentários no tokenizer, permitindo que apareçam no arquivo
de entrada.

8 years agoVerifica limites de token antes de alocar memória.
Thadeu Lima de Souza Cascardo [Sun, 13 Mar 2016 11:54:50 +0000 (08:54 -0300)]
Verifica limites de token antes de alocar memória.

Caso não exista mais tokens, não é necessário alocar mais memória.

8 years agoImplementa opção verbose.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:38:19 +0000 (17:38 -0300)]
Implementa opção verbose.

Com esta opção, alguns resultados intermediários são exibidos,
permitindo verificações e detecção de erros.

8 years agoPreenche campos implementados da declaração completa.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:36:55 +0000 (17:36 -0300)]
Preenche campos implementados da declaração completa.

Permite a geração de uma declaração completa, ainda que apenas com
alguns dos campos suportados.

8 years agoCorrige campo em caso de pagamento a pessoa física.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:35:31 +0000 (17:35 -0300)]
Corrige campo em caso de pagamento a pessoa física.

O valor 1 identifica pessoa física, com CPF, enquanto o valor 2
identifica pessoa jurídica, com CNPJ.

8 years agoTotaliza outros pagamentos.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:29:03 +0000 (17:29 -0300)]
Totaliza outros pagamentos.

A declaração completa exige outros totais de pagamentos, como pagamentos
médicos e de previdência. Soma tais totais em uma função própria, dada
sua nova complexidade.

8 years agoSoma total de decuções para declaração completa.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:27:48 +0000 (17:27 -0300)]
Soma total de decuções para declaração completa.

8 years agoRemove TODO em alguns casos.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:25:43 +0000 (17:25 -0300)]
Remove TODO em alguns casos.

Alguns campos foram implementados, não sendo mais necessário
documentá-los com TODO.

8 years agoCorrige campos de quotas em caso de imposto a pagar.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:24:43 +0000 (17:24 -0300)]
Corrige campos de quotas em caso de imposto a pagar.

Em caso de imposto a pagar, é necessário informar o número e valor das
quotas. No momento, apenas uma quota é suportada.

8 years agoNova função para ordenação de pagamentos médicos.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:22:58 +0000 (17:22 -0300)]
Nova função para ordenação de pagamentos médicos.

Como pagamentos médicos podem utilizar mais de um código de pagamento,
uma nova função foi necessária.

8 years agoPreenche corretamente se não há informações bancárias.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:19:17 +0000 (17:19 -0300)]
Preenche corretamente se não há informações bancárias.

Caso informações bancárias não sejam fornecidas, preenchar os campos
corretamente. No caso de banco e agência, preenche com zeros. No caso de
número de conta e dígito verificador, utilize espaços em branco.

8 years agoConserta campo de resultado de imposto no cabeçalho.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 20:15:45 +0000 (17:15 -0300)]
Conserta campo de resultado de imposto no cabeçalho.

Se há imposto a pagar, o resultado é 1. Se há imposto a restituir, o
resultado é 2. Ainda a confirmar se o resultado é 0 caso não haja
imposto a pagar nem a restituir.

8 years agoSalva demais partes da declaração
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 11:53:42 +0000 (08:53 -0300)]
Salva demais partes da declaração

8 years agoAdiciona macros para formatar valores em Real.
Thadeu Lima de Souza Cascardo [Sat, 12 Mar 2016 11:52:04 +0000 (08:52 -0300)]
Adiciona macros para formatar valores em Real.

8 years agoCalcula base de cálculo para declaração completa.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 10:47:00 +0000 (07:47 -0300)]
Calcula base de cálculo para declaração completa.

Como tentamos o cálculo de ambas as declarações, o valor da base de
cálculo deve ser calculado separadamente para cada tipo de declaração.

8 years agoPermite escolher entre declaração completa e simplificada.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 10:46:40 +0000 (07:46 -0300)]
Permite escolher entre declaração completa e simplificada.

8 years agoAtualiza versão do IRPF para aceitar declaração.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 10:00:37 +0000 (07:00 -0300)]
Atualiza versão do IRPF para aceitar declaração.

8 years agoDeduz reembolsos de pagamentos.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 10:00:09 +0000 (07:00 -0300)]
Deduz reembolsos de pagamentos.

Alguns pagamentos são reembolsados e seu valor não deve ser
contabilizado em deduções.

8 years agoInicializa valores da estrutura de bens.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 09:58:55 +0000 (06:58 -0300)]
Inicializa valores da estrutura de bens.

Bens estavam sendo incorretamente identificados como imóveis, já que
alguns de seus valores não são inicializados no caso de outros bens.

8 years agoInclui mais informações no sumário.
Thadeu Lima de Souza Cascardo [Fri, 25 Sep 2015 09:58:37 +0000 (06:58 -0300)]
Inclui mais informações no sumário.

Inclui base de cálculo, rendimentos isentos, rendimentos exclusivos e
hash/recibo no sumário.

8 years agoImplementa rendimentos de aplicações.
Thadeu Lima de Souza Cascardo [Thu, 10 Sep 2015 22:20:52 +0000 (19:20 -0300)]
Implementa rendimentos de aplicações.

Rendimentos de aplicações, como CDB, utilizam o código 99, e seus totais
são utilizados na declaração completa.

8 years agoTotaliza deduções por dependentes.
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 03:37:38 +0000 (00:37 -0300)]
Totaliza deduções por dependentes.

O total de deduções por dependentes está presente na linha de totais.
Implementa uma função para obter o limite da dedução anual por
dependente e totaliza em um total DEPENDENTES.

8 years agoO CPF e o total do cônjuge estão nas primeiras linhas.
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 03:33:48 +0000 (00:33 -0300)]
O CPF e o total do cônjuge estão nas primeiras linhas.

A linha do cabeçalho contém o CPF do cônjuge, e a linha de totais da
declaração simplificada contém o total do cônjuge.

8 years agoAdiciona suporte a cônjuge.
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 03:32:23 +0000 (00:32 -0300)]
Adiciona suporte a cônjuge.

Dados da declaração do cônjuge estão na linha 9.

Futuramente, seria interessante implementar a importação dos dados da
declaração do cônjuge.

8 years agoCalcula dedução por dependentes.
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 01:53:10 +0000 (22:53 -0300)]
Calcula dedução por dependentes.

Calcula o valor da dedução usando o limite anual por dependente.

8 years agoImprime no resumo se declaração é simples ou completa
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 01:52:59 +0000 (22:52 -0300)]
Imprime no resumo se declaração é simples ou completa

8 years agoAdiciona suporte a linha de dependentes.
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 01:37:46 +0000 (22:37 -0300)]
Adiciona suporte a linha de dependentes.

A linha 25 é utilizada para listar os dependentes. O suporte completo a
dependentes ainda exige tanto o cálculo de dedução, quanto a lista de
demais campos para dependentes, como rendimentos e pagamentos, seja o
dependente o autor ou o beneficiário. Vários totais também dependem
destes campos.

8 years agoLimita o campo de data de nascimento a 8 caracteres
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 01:36:25 +0000 (22:36 -0300)]
Limita o campo de data de nascimento a 8 caracteres

8 years agodeclara.c usa bem_cmd_init de bem.h
Thadeu Lima de Souza Cascardo [Sun, 6 Sep 2015 01:35:34 +0000 (22:35 -0300)]
declara.c usa bem_cmd_init de bem.h

Adiciona o cabeçalho bem.h que estava faltando.

8 years agoImprime o hash do cabeçalho.
Thadeu Lima de Souza Cascardo [Sun, 9 Aug 2015 00:43:35 +0000 (21:43 -0300)]
Imprime o hash do cabeçalho.

Utiliza uma lista para guardar as linhas temporariamente, altera o
cabeçalho para incluir o hash e recalcula o campo de controle, com o
prefixo do nome de arquivo em formato DOS (8.3), e imprime as linhas no
arquivo.

8 years agoCalcula hashes do arquivo da declaração.
Thadeu Lima de Souza Cascardo [Sun, 9 Aug 2015 00:27:17 +0000 (21:27 -0300)]
Calcula hashes do arquivo da declaração.

Os dois hashes necessários para a declaração são calculados. O hash de
recibo está na última linha, o que facilita sua inclusão. O hash do
cabeçalho ainda não é impresso.

8 years agoImplementa comando sistema para configurações.
Thadeu Lima de Souza Cascardo [Sat, 8 Aug 2015 22:54:27 +0000 (19:54 -0300)]
Implementa comando sistema para configurações.

SO, versão do SO e da JVM e MAC address são campos do cabeçalho da
declaração. O usuário deve optar por informar ou não esses dados. No
momento, os dados são obtidos do arquivo de entrada ou valores padrões
são utilizados.

Seria interessante, no entanto, implementar outras opções, como obter os
dados reais do sistema, utilizar valores de sistemas livres, valores
aleatórios e valores conformantes com o que o software privativo
utiliza. O padrão também deveria ser configurado em tempo de compilação.

8 years agoGera linhas com totais de isentos e exclusivos.
Thadeu Lima de Souza Cascardo [Sat, 8 Aug 2015 20:34:50 +0000 (17:34 -0300)]
Gera linhas com totais de isentos e exclusivos.

O registro com os totais de rendimentos isentos inclui apenas poupança,
no momento.

Já o registro com os rendimentos com tributação exclusiva inclui décimo
terceiro e PLR.

8 years agoRendimentos isentos e de tributação exclusiva.
Thadeu Lima de Souza Cascardo [Sat, 8 Aug 2015 19:55:06 +0000 (16:55 -0300)]
Rendimentos isentos e de tributação exclusiva.

Alguns registros dos dois tipos exigem os mesmos campos. No momento,
apenas poupança e participação nos lucros e resultados são suportados.
Suporte a novos registros pode ou não ser trivial, dependendo dos campos
exigidos pelo registro.