Wiki / SuperCalculo ~7 min

22 - Hora Reduzida

⚙️ Metadados

  • Código: 22
  • Tipo: Provento
  • INSS: SAL
  • FGTS: SAL
  • IRRF: SAL
  • Natureza eSocial: 1299 - Outros adicionais
  • DSR: Sim
  • Médias: Sim
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 624

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Employer (ID da Fórmula: 2355)
  • Lógica de Cálculo:

    1. Validação de Entrada: O sistema verifica se existe um lançamento manual para esta verba (Func_ValidarExistenciaLancamento).
    2. Cenário 1: Valor Informado Diretamente:
      • Se o usuário lançou um valor monetário (Lancamento.ValorTotal > 0), o sistema executa uma validação de integridade específica:
        • Se o contrato for “1.1151.1” (ETT - nuubes), deve ter o complemento de origem “1695” (Ficta).
        • Se tiver o complemento “1695”, deve ser o contrato “1.1151.1”.
        • Caso contrário, o sistema gera um erro (SysFunc_Panico).
      • Passando na validação, o valor final é o valor lançado arredondado.
    3. Cenário 2: Percentual e Quantidade Informados:
      • Calcula o valor da hora: Salário Nominal / Horas Mês.
      • Aplica o acréscimo: Valor Hora * (1 + (Percentual / 100)).
      • Multiplica pela quantidade: Resultado * Quantidade.
    4. Cenário 3: Apenas Quantidade Informada:
      • Calcula o valor da hora simples: Salário Nominal / Horas Mês.
      • Multiplica pela quantidade: Valor Hora * Quantidade.
    5. Memória de Cálculo: Gera o texto explicativo (MCA ou MCB) detalhando a operação matemática realizada.
  • Variáveis Utilizadas:

    • VG_VlrSalNom: Valor do Salário Nominal do funcionário.
    • VG_HsMes: Carga horária mensal do funcionário.
    • Lancamento.ValorTotal, Lancamento.Percentual, Lancamento.Quantidade: Dados inseridos manualmente.
    • Cod_Contrato_Filho: Tag utilizada para validação específica.
  • Dependências:

  • Tipo de Relação: Geração (A verba 22 gera reflexo na verba 55).

  • Fluxo de Cálculo: Após calcular o valor da Hora Reduzida, se o valor for positivo, o sistema invoca a função de DSR para calcular o reflexo na verba 55.

  • Funções Identificadas:

    • SysFunc_TagPossuiConteudo: Verifica se o contrato do funcionário corresponde a uma lista específica.
    • SysFunc_Panico: Interrompe o cálculo e exibe erro bloqueante se a validação de contrato/complemento falhar.
    • Func_ArredondamentoPadrao: Garante que o valor final tenha 2 casas decimais.
    • SysFunc_VerbaPossuiDSR e Func_DSR: Gerenciam o cálculo do repouso remunerado.
👤 Jmalucelli (ID da Fórmula: 18547)
  • Lógica de Cálculo:

    • O código fornecido consiste inteiramente em comentários, o que indica que não há cálculo automático realizado pela fórmula (C#) neste momento.
    • A lógica definida explicitamente nos comentários é: // este cliente = Lçto. Manual, em Valor.
    • Isso significa que o usuário deve informar diretamente o valor monetário (R$) a ser pago, e não a quantidade de horas para o sistema calcular.
    • O sistema aceita o valor lançado manualmente (VlrLancado) e o processa diretamente para a folha.
  • Variáveis Utilizadas:

    • VG_Verba22ApenasPrc (Mencionada nos comentários para controle de médias).
  • Condições Especiais:

    • A fórmula atual serve apenas como documentação de que o processo é manual.
    • Há uma nota sobre comportamento de médias: Se a variável global VG_Verba22ApenasPrc for verdadeira, a média considera apenas o percentual; caso contrário, considera 1 + %.
👤 Tiautomotive (ID da Fórmula: 10852)
  • Lógica de Cálculo:

    • O código fornecido não contém instruções executáveis (apenas linhas comentadas com //).
    • A instrução // este cliente = Lçto. Manual, em Valor define o comportamento: o valor pago é exatamente o valor inserido manualmente pelo operador.
    • Não há multiplicação de horas por salário ou aplicação de coeficientes (como 52:30 para hora noturna reduzida) dentro desta fórmula específica.
  • Variáveis Utilizadas:

    • Nenhuma variável de cálculo (como VlrSalarioHora) é instanciada.
    • A variável VG_Verba22ApenasPrc é citada apenas como referência para comportamento de médias.
  • Condições Especiais:

    • A “condição” é a própria ausência de cálculo automático, forçando o input manual.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorTotal = Arredondar ( ( SalarioNominal / VG_HsMes ) * ( 1 + ( PercentualLancamento / 100 ) ) * ( QuantidadeLancamento * FatorFicta ) )


INÍCIO Processar_Hora_Reduzida (DadosEmpregado, DadosLancamento, ParametrosSistema)

1. Filtros de Elegibilidade e Isenções (Piso Seguro)

SE NOT Func_ValidarExistenciaLancamento(DadosLancamento) ENTÃO RETORNAR // Ignora o cálculo se não houver evento gravado FIM SE

// Validação de Vínculos Mandatórios (Substitui o hardcode de contrato/complemento da Employer) SE ParametrosSistema.ConfiguracaoVerba.PossuiVinculoObrigatorio == TRUE ENTÃO ContratoValido = ParametrosSistema.ConfiguracaoVerba.ValidarRegraVinculo(DadosEmpregado.CodContrato, DadosLancamento.ComplementoOrigem) SE NOT ContratoValido ENTÃO // Registra um log de inconsistência na folha em vez de estourar um pânico no sistema RegistrarInconsistenciaCalculo(DadosEmpregado.Id, “Incompatibilidade entre Contrato e Complemento de Origem para a Verba 22.”) RETORNAR FIM SE FIM SE

2. Determinação da Base de Cálculo, Multiplicadores e Fallbacks

ModoEntrada = ParametrosSistema.ConfiguracaoVerba.ObterModoEntrada(HoleriteVerba.Verba.Codigo)

// CENÁRIO 1: Entrada Direta por Valor Monetário (Jmalucelli, Tiautomotive e Employer) SE ModoEntrada == EnumModoEntrada.Valor ENTÃO SE DadosLancamento.ValorTotal > 0 ENTÃO HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao(DadosLancamento.ValorTotal) HoleriteVerba.Quantidade = 0 HoleriteVerba.ValorReferencia = 0 GatilhoDSR(DadosEmpregado, HoleriteVerba.ValorTotal, ParametrosSistema) RETORNAR FIM SE FIM SE

// CENÁRIOS 2 e 3: Entrada Baseada em Quantidade de Horas e Salário-Hora BaseCalculo = DadosEmpregado.SalarioNominal DivisorMensal = ParametrosSistema.Global.VG_HsMes SalarioHoraSimples = BaseCalculo / DivisorMensal

// Aplicação Automática do Coeficiente Ficta se parametrizado em tela SE ParametrosSistema.ConfiguracaoVerba.AplicarFatorFicta == TRUE ENTÃO FatorFicta = 1.142857 // Coeficiente padrão (52:30 para hora reduzida) SENÃO FatorFicta = 1.000000 FIM SE

QuantidadeEfetiva = DadosLancamento.Quantidade * FatorFicta PercentualAcrescimo = SE DadosLancamento.Percentual > 0 ENTÃO DadosLancamento.Percentual SENÃO 0

3. Execução do Cálculo Linear e Arredondamento

ValorHoraComAdicional = SalarioHoraSimples * (1 + (PercentualAcrescimo / 100)) ValorTotalCalculado = ValorHoraComAdicional * QuantidadeEfetiva

HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao(ValorTotalCalculado) HoleriteVerba.Quantidade = QuantidadeEfetiva HoleriteVerba.ValorReferencia = BaseCalculo

4. Gravação de campos e disparo de verbas de informação correlacionadas (DSR)

GatilhoDSR(DadosEmpregado, HoleriteVerba.ValorTotal, ParametrosSistema)

FIM

PROCEDIMENTO GatilhoDSR(DadosEmpregado, ValorOrigem, ParametrosSistema) SE SysFunc_VerbaPossuiDSR(22) E ValorOrigem > 0 ENTÃO CodigoVerbaDsr = ParametrosSistema.ConfiguracaoVerba.ObterVerbaDestinoDsr(22) Func_DSR(CodigoVerbaDsr, “DSR S/ Hora Reduzida”, 22, ValorOrigem, HoleriteVerba, TRUE) FIM SE FIM PROCEDIMENTO


Impactos

  • Substituição dos lançamentos manuais de valor por lançamentos de Quantidade de Horas, permitindo que o sistema calcule o valor atualizado conforme o salário do mês.

Benefícios

  • Fim do Pânico: As validações de contrato (nuubes) tornam-se regras de parametrização de tela, não mais interrupções de código.
  • Precisão Matemática: Uso do coeficiente exato da hora ficta em vez de arredondamentos manuais no lançamento.

Parametrizações Propostas para Reestruturação

  1. Automação do Coeficiente Ficta
  • Criar flag em tela: “Aplicar Coeficiente de Hora Reduzida (1,142857)?”.
  • Isso permite que o RH lance 01:00 hora relógio e o sistema pague automaticamente 01:08:34.
  1. Validação de Elegibilidade (Fim do Hardcode Nuubes)
  • Em vez de código fixo, a tela de configuração da verba deve permitir associar “Complementos de Origem Obrigatórios” para determinados grupos de contratos.
  1. Configuração de Médias
  • Disponibilizar em tela o parâmetro VG_Verba22ApenasPrc (Sim/Não), permitindo ao usuário definir se a média da verba 22 leva o valor principal ou apenas o “plus” do adicional.
  1. Alternância de Entrada
  • Permitir configurar se a verba aceita:
    • ( ) Somente Valor (R$).
    • ( ) Quantidade de Horas x Salário-Hora.
    • ( ) Valor Unitário Fixo.

Clientes com mesma regra

A reestruturação em modo híbrido e paramétrico aglutina todas as flutuações operacionais dos clientes mapeados em uma única regra operacional.

  • Jmalucelli e Tiautomotive: Através da opção de “Híbrido Dinâmico” ou “Somente Valor” na Seção 1 da interface, o motor detecta o preenchimento do campo Lancamento.ValorTotal e processa o valor fechado diretamente para a folha. A documentação contida em linhas de comentários legadas do C# é convertida em um parâmetro funcional auditável em tela. O comportamento de médias citado por ambos é centralizado no seletor da Seção 3.
  • Employer: O cenário de validação restritiva do contrato ETT nuubes deixa de rodar sob condições de código que disparavam o SysFunc_Panico. A associação obrigatória passa a ser gerenciada pela Seção 2 do painel, fornecendo segurança contra lançamentos errôneos e gerando alertas tratáveis sem derrubar o cálculo em lote da folha de pagamento.

Status Documental

  • Status: Documentada
  • Origem: export do Notion + catálogo da wiki
  • Fonte rastreável: 30dc75ea2e838139a8f0c114ac6bf45e

Voltar ao catálogo

Digite para pesquisar...

Scroll para zoom · Esc para fechar

⌨️ Atalhos de teclado
Navegação
Ctrl K Pesquisar na wiki
Ctrl F Buscar na página
? Ver atalhos
Visualização
Ctrl Shift F Modo foco
A+ / A− Tamanho da fonte
Ctrl D Alternar tema
Ações
Ctrl B Favoritar página
Esc Fechar dialogs