Peculium v0.8.0 — painel redesenhado e juros de mora do DARF
Reúne três versões de trabalho (0.7.0, 0.7.1 e 0.8.0). Fecha a última conta de imposto que estava incompleta e redesenha o painel.
Painel redesenhado
Régua de quatro somas no topo — patrimônio, custo, resultado e proventos, cada uma com a sua nota de contexto —, composição da carteira em barra empilhada, gráficos de proventos mês a mês e aportes acumulados, e a tabela completa de posições.
A divergência com a B3 agora aparece no painel: data do retrato, quantos papéis conferem e quanto a B3 informa a mais, com cada papel que falta lançar. Para isso o retrato importado passou a ser guardado — só o que a B3 disse, nunca a conclusão. A comparação é refeita a cada abertura, então lançar a compra que faltava apaga o aviso sozinho.
Tema não escolhe layout. Um painel, três temas. Amarrar os dois faria trocar para o escuro à noite render uma estrutura diferente sem ter pedido. O que muda por tema são as cores de série: no escuro a púrpura não contrasta, e as três precisam ser distinguíveis entre si, não só do fundo.
Três correções que só a captura revelou: a média de proventos dividia por doze (o certo é dividir pelos meses que tiveram provento — por doze, em agosto, diria metade do que se recebe por mês); a classe saía como FII e ACAO, que é código de banco e não rótulo de tela; e o resultado saía R$ ▲ +2,60, com o cifrão antes da seta.
Juros de mora do DARF
A última conta de imposto declaradamente incompleta. Soma a Selic acumulada mensalmente do mês seguinte ao vencimento até o anterior ao do pagamento, mais 1% no mês do pagamento (Lei 9.430/96, art. 61 §3).
A série que serve é a 4390 (Selic acumulada no mês), não a 11 (Selic diária) que o programa já usava para a curva da renda fixa: a lei manda somar taxas mensais, não capitalizar dias. A distinção foi conferida contra a API do Banco Central.
- O caso mais comum não precisa de série nenhuma: pagar dentro do mês seguinte ao vencimento não fecha nenhum mês inteiro de atraso, então os juros são só o 1% — e esse DARF sai completo mesmo sem rede.
- Faltando um mês da série, o programa recusa calcular e diz qual falta. Juros a menos numa guia de recolhimento é diferença que a Receita cobra depois.
- A tela de Impostos ganhou coluna de Juros e o botão Atualizar Selic — quem não tem renda fixa nunca abriria a Carteira, onde ficava o único botão que baixa séries do BCB.
Portabilidade entre corretoras
Ela vem em duas linhas no relatório de Movimentação — débito na origem, crédito no destino — e o leitor agora as pareia por data, papel e quantidade. Juntas viram um lançamento de transferência; uma ponta só continua pendente, porque metade da portabilidade não diz para onde o papel foi.
Como consequência, o aviso de saldo negativo numa corretora deixou de dizer "falta a transferência": a causa mais comum passou a ser a compra anterior, feita na origem antes do período do extrato. O aviso nomeia as duas.
Subscrição
Continua sem virar lançamento — as linhas nomeiam o papel intermediário (direito, recibo) e nenhuma traz o valor pago. O que mudou é que os seis subtipos deixaram de receber a mesma frase: só o "Recibo de Subscrição" vira posição, e é ele que ganha a instrução de lançar a compra. Quando o recibo virar a cota definitiva, o passo é registrar uma conversão em Eventos.
Corrigido
- O formulário de instituição saía espremido. O CNPJ não é um campo curto — carrega o botão de busca e a nota de privacidade —, e dividido em três colunas o input cortava a própria máscara. Ele passou a ocupar a linha inteira, o que também desafogou os formulários de lançamento, de título de renda fixa e de pagamento do DARF.
Esquema
Versão 3: tabela posicao_b3, com o último retrato importado. Cofre antigo ganha a tabela ao abrir, sem migração de dado.
366 testes unitários e 38 E2E. As proteções novas foram verificadas por mutação — neutralizar cada uma faz o teste correspondente falhar; uma delas revelou que o outro lado da portabilidade sumia da conferência em silêncio.
Ainda sem validação contra documento real: o leitor de PDF de nota de venda. O parser foi construído a partir de notas de compra, e a nota de venda difere no sinal do líquido e na presença de IRRF. O caminho razão → fisco → obrigações está coberto por teste de integração, mas isso não substitui o documento.
O Windows pode barrar o executável (Smart App Control): use Peculium.cmd ou rode do código-fonte.