Pular para conteúdo

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

  1. A pagina abre dentro do layout autenticado padrao do portal.
  2. O usuario preenche apenas os campos operacionais necessarios para o calculo.
  3. O usuario pode alternar entre Modo simplificado e Modo completo por periodos.
  4. O modal Parametros avancados permite ajustar faixas de INSS, IRRF e constantes usadas nas formulas, incluindo os parametros do calculo novo de 2026.
  5. No modo completo, a tela libera blocos separados de ferias e abono com divisores por periodo, espelhando a distribuicao da aba 2026 da planilha.
  6. O card Aba / Ano fica ao final da pagina e permite criar abas novas e abrir o modal Gerenciar abas.
  7. Cada aba salva seus proprios parametros avancados, enquanto a lista de e-mails autorizados continua compartilhada.
  8. Os resultados sao exibidos em KPIs, cards de detalhamento e composicao do recebimento.
  9. O historico fica salvo localmente no navegador do usuario.

Arquivos relacionados

  • public/calculadora-ferias.html
  • public/js/calculadora-ferias.js
  • public/js/sidebar.js
  • src/routes/tools/calculadora-ferias.routes.js
  • src/core/tool-catalog.json

Compatibilidade

  • A ferramenta nao depende de Excel local em runtime.
  • A logica fica em public/js/calculadora-ferias.js e usa apenas assets publicos do portal.
  • O acesso deve respeitar RBAC via tool:calculadora-ferias ou tool:*.
  • A persistencia compartilhada dos parametros avancados usa GET/POST /api/calculadora-ferias/state.
  • Somente ADMIN ou e-mails liberados conseguem salvar parametros avancados; somente ADMIN pode alterar a lista de e-mails liberados.
  • O modelo operacional continua focado na regra 2026.
  • O modo simplificado preserva o fluxo operacional do prototipo com total de dias + divisor padrao do mes.
  • O modo completo por periodos habilita a distribuicao de ferias e abono em blocos separados, com divisores por bloco, e aplica o redutor do calculo novo apenas 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