Calculadora de Ferias¶
Rota: /calculadora-ferias
Grupo: Pessoal
Tipo: Front-end puro (HTML/CSS/JS sem framework) + API leve de estado
Classificacao: vps-compatible
Descricao¶
Tela interna criada para substituir a planilha data/CALCULO FERIAS.xlsx no portal, focada no modelo 2026, com calculo principal de ferias na area central, abas locais no rodape da pagina e tabelas/faixas editaveis em um modal de parametros avancados com controle de permissao por ADMIN ou e-mail liberado.
Como funciona¶
- A pagina abre dentro do layout autenticado padrao do portal.
- O usuario preenche apenas os campos operacionais necessarios para o calculo.
- O usuario pode alternar entre
Modo simplificadoeModo completo por periodos. - O modal
Parametros avancadospermite ajustar faixas de INSS, IRRF e constantes usadas nas formulas, incluindo os parametros docalculo novode 2026. - No modo completo, a tela libera blocos separados de ferias e abono com divisores por periodo, espelhando a distribuicao da aba
2026da planilha. - O card
Aba / Anofica ao final da pagina e permite criar abas novas e abrir o modalGerenciar abas. - Cada aba salva seus proprios parametros avancados, enquanto a lista de e-mails autorizados continua compartilhada.
- Os resultados sao exibidos em KPIs, cards de detalhamento e composicao do recebimento.
- O historico fica salvo localmente no navegador do usuario.
Arquivos relacionados¶
public/calculadora-ferias.htmlpublic/js/calculadora-ferias.jspublic/js/sidebar.jssrc/routes/tools/calculadora-ferias.routes.jssrc/core/tool-catalog.json
Compatibilidade¶
- A ferramenta nao depende de Excel local em runtime.
- A logica fica em
public/js/calculadora-ferias.jse usa apenas assets publicos do portal. - O acesso deve respeitar RBAC via
tool:calculadora-feriasoutool:*. - A persistencia compartilhada dos parametros avancados usa
GET/POST /api/calculadora-ferias/state. - Somente
ADMINou e-mails liberados conseguem salvar parametros avancados; somenteADMINpode alterar a lista de e-mails liberados. - O modelo operacional continua focado na regra
2026. - O modo
simplificadopreserva o fluxo operacional do prototipo com total de dias + divisor padrao do mes. - O modo
completo por periodoshabilita a distribuicao de ferias e abono em blocos separados, com divisores por bloco, e aplica o redutor docalculo novoapenas nesse modo. - As abas criadas na tela clonam os parametros da aba de origem, mas nao mudam a base legal de 2026.
Troubleshooting¶
| Sintoma | Causa provavel | Solucao |
|---|---|---|
| A pagina abre com sidebar, topbar ou fundo diferentes do restante do portal | O HTML foi gerado com uma casca propria (shell, sidebar, topbar) em vez de reutilizar nfe-layout + sidebar.js |
Manter a pagina montada dentro de nfe-layout, carregar /styles.css e inicializar inicializarSidebar('calculadora-ferias') |
| A sidebar parece "um pouco diferente" das outras paginas | A pagina carregou uma fonte web (Inter) so nela, alterando a renderizacao do texto global da sidebar/topbar |
Deixar a tipografia global do portal vir apenas de /styles.css e restringir a fonte externa ao que for realmente exclusivo da ferramenta |
A sidebar fica torta, sem o mesmo espacamento da calculo-salario, ou o rodape cola na lateral |
A estrutura interna da sidebar foi simplificada e deixou de usar o mesmo bloco nfe-sidebar-top com toggle padrao da pagina de salario |
Reaproveitar a mesma casca estrutural da calculo-salario, mantendo nfe-sidebar-top, nfe-sidebar-toggle, nfe-sidebar-menu e a inicializacao via sidebar.js |
Os tres botoes do topo ficam com cor/tamanho diferente da calculo-salario |
A ferramenta usava botoes locais em vez dos componentes globais .btn, .btn-secondary e .btn-primary |
Reaproveitar os mesmos componentes de botao e o mesmo espaco de acoes da pagina de salario |
| A ferramenta aparece no menu, mas nao entra no catalogo/documentacao do portal | O slug nao foi registrado em src/core/tool-catalog.json |
Adicionar calculadora-ferias ao catalogo e regenerar docs/tools/index.md |
| O campo de ano sugere cenarios diferentes, mas o calculo esta travado em 2026 | A planilha original possui multiplas abas/anos, mas a ferramenta foi deliberadamente reduzida para um unico modelo | Exibir uma aba fixa FÉRIAS 2026, remover o ano editavel da tela principal e manter os parametros do modelo 2026 no modal avancado |
O botao + Nova aba ou o modal Gerenciar abas desaparecem |
A reescrita da calculadora removeu a logica de abas dinamicas e deixou apenas uma aba fixa, sem os componentes usados na tela de salario | Restaurar o card Aba / Ano com + Nova aba, Gerenciar abas e persistencia por aba, clonando os parametros da aba de origem |
O exemplo 4500 / 380 / 20 ferias / 10 abono / 1 dependente / 120 e-consignado nao bate com o prototipo |
A regra do redutor calc. novo da pagina de salario foi aplicada diretamente no IRRF da calculadora de ferias, zerando descontos que nao deveriam ser zerados nesse fluxo |
Calcular INSS/IRRF sobre a base de ferias de 2026 e usar o redutor apenas como informacao separada ate haver validacao adicional da planilha |
O aviso dos dias vendidos aparece errado em dias de ferias e dias de abono |
A validacao usava um limite generico e nao a relacao operacional esperada entre ferias gozadas, abono e total do periodo | Avisar quando diasAbono > diasFerias / 2 (equivalente a vender mais de 1/3 do periodo) e quando diasFerias + diasAbono > 30 |
| Um cenario fracionado da planilha nao bate exatamente com a tela | A planilha CALCULO FERIAS.xlsx permite distribuir ferias/abono em multiplos blocos e divisores, enquanto a tela estava operando apenas por total agregado |
Alternar para Modo completo por periodos e preencher os blocos separados de ferias e abono com os divisores corretos da aba 2026 |
| O bloco de detalhamento aparece sem os cards de descontos | A secao foi publicada apenas com cards de parcelas/bases e acabou omitindo INSS, IRRF, e-Consignado e total de descontos | Completar a grade de detalhamento com os cards negativos para fechar o mesmo conjunto de conferencia esperado no layout da calculadora |
| O modal de parametros abre deslocado para a esquerda | O modal foi renderizado dentro de uma casca propria, sem seguir o mesmo padrao de largura e empilhamento visual da pagina de salario | Reutilizar o mesmo estilo de modal da pagina de salario e manter a renderizacao acima da sidebar global |
O modelo 2026 fica sem o parametro limite do calculo novo |
O valor fixo da planilha (Z23) nao estava exposto na tela, mesmo afetando a regra complementar de 2026 |
Incluir limite do calculo novo nos parametros avancados junto com R10 e R11, para permitir ajuste facil sem editar o codigo |
| Os cards principais ficam com um bege/amarelo diferente das outras ferramentas | A paleta local da calculadora usava superficies quentes demais (#fffdf8, #fce8c7, bordas bege), destoando do padrao branco/azulado do portal |
Trocar os cards para superficies brancas/neutras e usar destaques suaves alinhados ao restante das paginas |
| O modal de parametros ainda fica com tom amarelado/bege | O container do modal e o rodape/tab strip ainda estavam com superficies quentes, mesmo depois de neutralizar o restante da pagina | Usar fundo branco no modal e cinza frio suave apenas nas abas, mantendo o modal no mesmo clima visual das outras telas internas |
| O modal de parametros mostra numeros com muitas casas e fica dificil editar | Inputs controlados em React/Babel estavam reformatando floats crus em cada render e podiam brigar com o cursor do usuario | Migrar a tela para HTML/JS puro, limitar a formatacao editavel e salvar os campos do modal apenas na confirmacao |
| Usuarios liberados por e-mail conseguem editar parametros, mas nao deveriam gerenciar a propria lista de autorizacao | A mesma permissao era reutilizada tanto para editar tabelas quanto para administrar a allowlist | Separar as regras: ADMIN ou e-mail liberado edita parametros, mas somente ADMIN pode adicionar/remover e-mails autorizados |
| Os valores do prototipo ficam alguns centavos diferentes do esperado | O calculo estava somando parcelas ja arredondadas, acumulando perda de precisao antes das bases finais | Somar as parcelas com precisao cheia e arredondar apenas nas saidas exibidas e nas bases finais, preservando o resultado 6506,67 / 409,13 / 165,43 / 5812,11 no exemplo de referencia |
| O usuario nao percebe quando esta vendo o calculo simplificado e nao o de periodos completos | O seletor de modo existia, mas faltava um aviso textual persistente reforcando qual regra esta ativa | Exibir badge + aviso visual logo acima dos campos, deixando claro quando a tela usa modo simplificado e quando passa a usar modo completo por periodos |
O redutor do calculo novo zera ou altera o IRRF fora do contexto esperado |
A regra complementar de 2026 foi aplicada diretamente tambem no fluxo simplificado, misturando o comportamento do prototipo com o comportamento da planilha completa | Aplicar o redutor apenas no modo completo por periodos e manter o modo simplificado aderente ao prototipo operacional |
| A tela redireciona para login ao abrir fora do portal | A pagina depende do fluxo autenticado e do contexto provido por AuthClient |
Validar pelo portal autenticado ou mockar AuthClient apenas em testes locais isolados |