4.4 KiB
Changelog — Simulação de Custo de Contratação
Histórico específico desta aplicação, extraído de
plano.md.Formato: uma entrada por rodada,
### Rodada N — Título; quando a rodada não tem número registrado,### Títulosó. A numeração de rodada não é global — cada aplicação conta as próprias, e o mesmo número designa trabalhos diferentes em arquivos diferentes. Ao citar uma rodada, sempre nomear o arquivo. Ver o topo deplano.md.
Rodada 37 — Simulação de Custo de Contratação (Geradoc)
Pedido (2026-08-11): substituir a planilha manual de custo de contratação (projects/planilha de custo/*.xlsx) por um formulário no Portal que gera um PDF pronto pra enviar ao cliente — primeira aplicação de "Geradoc" a sair do estado de placeholder.
Decisões confirmadas com o usuário: v1 cobre só Empregado CLT (as outras 4 modalidades do pedido original — Simples Nacional, Regime Normal, Pró-labore, Empregado Doméstico — ficam para quando houver planilha de referência equivalente); cálculo pontual, sem persistência (devolve o PDF direto, nada salva no banco); corrigido um gap real da planilha original (dedução por dependente não somava à base do IRRF quando usava desconto real de INSS); e as tabelas de INSS/IRRF, que nasceram hardcoded, viraram um cadastro editável (ParametroFiscalCustoContratacao, singleton) na mesma rodada em que a redução de IRRF da Lei 15.270/2025 (vigente desde jan/2026) foi implementada, já que ambas mudam por lei/todo ano. PDF gerado via reportlab (adicionado ao requirements.txt), com cabeçalho nas cores reais da marca (dourado/marrom amostrados de logo.png), não o roxo do tema do Portal. Migração 0023_parametrofiscalcustocontratacao. Detalhe técnico completo no CLAUDE.md desta pasta.
Rodada 38 — Revisão de interface (30/09/2026): validação, tabelas fiscais e formulário no celular
Correções de interface apontadas pela revisão de interface de 30/09/2026, só no frontend (custo-contratacao.js/.css/.html); nada mudou no cálculo nem no backend.
- Tabelas fiscais sem valor inválido gravado como 0:
parseValorBrEstrito()aceita só número no formato brasileiro ("1.234,56" ou "1234,56"); campo inválido fica marcado em vermelho (.is-invalido), o cursor vai ao primeiro deles e nada é salvo. Antes um valor inválido virava 0 sem aviso e era gravado para todos os usuários. - Tabelas fiscais com milhar e coeficiente com vírgula: os inputs das faixas e dos parâmetros passam a ser preenchidos com separador de milhar ("7.350,00",
formataValorBrMilhar), compatível comparseValorBrEstritoao salvar. O coeficiente B da Lei 15.270/2025 aparece com vírgula ("0,133145"); o salvar continua aceitando vírgula ou ponto.formataValorBr(sem milhar) continua sendo a usada no payload da simulação. - Falha ao carregar as tabelas fiscais: mensagem com próximo passo ("Recarregue a página; se persistir, contate a Inovação.") e "Salvar tabelas" desabilitado até a carga terminar com sucesso, para não gravar tabelas vazias.
- Validação do formulário: item de "Outros itens"/"Outros benefícios"/"Outros descontos" com valor e sem nome bloqueia o envio (antes era descartado do cálculo sem aviso) e leva o cursor ao nome; salário contratual, % de INSS Empregador e % de FGTS em branco também levam o cursor ao campo, em vez de só mostrar a mensagem no rodapé.
- Gerar PDF: a aba é aberta no clique, antes do
fetch(senão o bloqueador de pop-up costuma barrar), recebe o PDF quando ele chega e o blob é revogado depois; os botões mostram "Gerando…"/"Salvando…" e ficam travados até terminar. - Limpar: pede confirmação (
pidConfirm, perigoso) só quando há algo preenchido no formulário ou alguma linha incluída nos itens. - Campos e layout: campos monetários e percentuais com
inputmode="decimal"(inclusive as faixas criadas pelo JS); placeholder do coeficiente B "Ex.: 0,133145…"; linhas de 2 e 3 colunas do formulário e do painel fiscal viram uma coluna em tela de celular (até 640px, com escopo só no conteúdo da Simulação, sem afetar os modais comuns do shell);tabular-numsnos inputs das faixas.
Ficaram sem inputmode="decimal" de propósito os campos que aceitam valor ou percentual ("Adicional Art. 62" e os três descontos, ex.: "40%"): em teclado virtual de celular esse modo pode não oferecer o "%".