Wiki / SuperCalculo ~5 min

1658 - Reembolso (trib. IRRF)

⚙️ Metadados

  • Código: 1658
  • Tipo: Provento
  • INSS: ISE
  • FGTS: ISE
  • IRRF: SAL
  • Natureza eSocial: -
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 290

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Fapes
  • Lançamento manual em valor.
👤 Hikvision
  • Lançamento manual em valor.
👤 Minipreco
  • Lógica de Cálculo:

    1. A verba é calculada apenas se houver um lançamento válido (Lancamento) e a Quantidade lançada for maior que zero.
    2. É realizada uma validação para garantir que o Empregado seja do tipo Estagiário. Se o vínculo for diferente de Estagiário, o sistema gera um erro fatal (SysFunc_Panico) e interrompe o cálculo, informando que a verba 1658 foi lançada incorretamente.
    3. Se as condições forem atendidas, o ValorTotal da verba é calculado dividindo o VG_VlrSalNom (Valor do Salário Nominal) pelo VG_HsMes (Horas Mensais) e multiplicando o resultado pela Lancamento.Quantidade.
    4. O valor final é arredondado para o padrão do sistema utilizando a função Func_ArredondamentoPadrao.
    5. A memória de cálculo detalha os valores utilizados na operação.
  • Fórmula matemática:

    • Valor Total = Func_ArredondamentoPadrao(VG_VlrSalNom ÷ VG_HsMes × Lancamento.Quantidade)
  • Variáveis Utilizadas:

    • Lancamento: Objeto que representa o lançamento da verba.
    • Lancamento.Quantidade: Quantidade lançada para a verba.
    • Empregado.TipoVinculo: Tipo de vínculo do empregado (ex: Estagiário).
    • EnumTipoVinculoBO.Estagiario: Enumeração que representa o tipo de vínculo “Estagiário”.
    • VG_VlrSalNom: Variável global que representa o valor do salário nominal do empregado.
    • VG_HsMes: Variável global que representa a carga horária mensal do empregado.
    • HoleriteVerba.ValorTotal: Variável que armazena o valor final calculado da verba.
    • HoleriteVerba.MemoriaCalculo: Campo para armazenar a descrição do cálculo.
  • Condições Especiais:

    • if (Func_ValidarExistenciaLancamento(Lancamento) == true && Lancamento.Quantidade > 0M): Verifica a existência e quantidade do lançamento.
    • if (Empregado.TipoVinculo != EnumTipoVinculoBO.Estagiario): Condição que restringe o cálculo da verba apenas para Estagiários.
  • Funções Identificadas:

    • Func_ValidarExistenciaLancamento(Lancamento): Verifica se o lançamento da verba é válido e existe.
    • SysFunc_Panico("..."): Interrompe o processo de cálculo e exibe uma mensagem de erro fatal.
    • Func_ArredondamentoPadrao(valor): Arredonda o valor para o padrão de precisão monetária do sistema.
    • Argumento(valor): Registra um valor para ser usado na construção da memória de cálculo.
    • EscreverMemoria("[NORMAL]", @"..."): Formata e armazena a descrição do cálculo na memória da verba.
👤 Syngenta
  • Lançamento manual em valor.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

Se (ModoCaptura = “ValorManual”) -> ValorTotal = Func_ArredondamentoPadrao(Lancamento.ValorTotal)

Se (ModoCaptura = “ProporcionalHoras”) -> ValorTotal = Func_ArredondamentoPadrao((VG_VlrSalNom / VG_HsMes) * Lancamento.Quantidade)


1. Filtros de Elegibilidade e Validações de Vínculo (Substitui SysFunc_Panico)

Se (Configuracao.ValidarExistenciaLancamento == Verdadeiro) { Se (Func_ValidarExistenciaLancamento(Lancamento) == Falso) { InterromperCalculo(); } }

Se (Configuracao.RestringirPorTipoVinculo == Verdadeiro) { Se (Empregado.TipoVinculo != Configuracao.TipoVinculoPermitido) { Se (Configuracao.ModoIncompatibilidadeVinculo == “BloqueioFatal”) { SysFunc_Panico(“Erro Operacional: A rubrica 1658 é restrita ao vínculo parametrizado (” + Configuracao.TipoVinculoPermitido + ”).”); } Caso Contrário { InterromperCalculo(); } } }

2. Determinação da Base de Cálculo e Modo de Captura (Manual vs. Proporcional)

Definir ValorCalculado = 0.00; Definir QuantidadeFinal = 1.00;

Se (Configuracao.ModoCapturaVerba == “ValorManual”) { Se (Lancamento.ValorTotal > 0) { ValorCalculado = Lancamento.ValorTotal; QuantidadeFinal = Lancamento.Quantidade > 0 ? Lancamento.Quantidade : 1.00; } } Caso Contrário Se (Configuracao.ModoCapturaVerba == “ProporcionalHoras”) { Se (Lancamento.Quantidade > 0) { Definir ValorHora = VG_VlrSalNom / VG_HsMes; ValorCalculado = ValorHora * Lancamento.Quantidade; QuantidadeFinal = Lancamento.Quantidade; } }

3. Aplicação de Limites e Diretrizes de Proteção

Se (ValorCalculado > 0 E Configuracao.PossuiTetoMaximo == Verdadeiro) { Se (ValorCalculado > Configuracao.ValorTetoMaximo) { ValorCalculado = Configuracao.ValorTetoMaximo; } }

4. Gravação de Campos e Consolidação do Holerite

Se (ValorCalculado > 0) { HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao(ValorCalculado); HoleriteVerba.Quantidade = QuantidadeFinal;

Registro estruturado em memória de cálculo sem hardcode Argumento(VG_VlrSalNom); Argumento(VG_HsMes); Argumento(QuantidadeFinal); EscreverMemoria(“[NORMAL]”, “Reembolso calculado com base no modelo: ” + Configuracao.ModoCapturaVerba);

AdicionarAoHolerite(HoleriteVerba);

}


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E CONTROLE DE ELEGIBILIDADE CONTRA HARDCODE

[X] Exigir Validação de Existência de Lançamento Ativo no Movimento Mensal [X] Restringir Execução da Rubrica por Tipo de Vínculo do Empregado -> Vínculo Permitido: [ Estagiário ] -> Comportamento de Incompatibilidade: (X) Bloqueio Fatal / Pânico ( ) Ignorar

2. DIRETRIZES DE CAPTURA, MODO OPERACIONAL E LIMITES FINANCEIROS

Modo de Captura Operacional da Rubrica: ( ) Valor Manual Direto (Prevalência do Valor Digitado/Importado) ( ) Proporcionalização Horas (Valor Hora Baseado no Salário Nominal) (X) Misto por Perfil de Empresa (Habilita Switches Dinâmicos por Configuração)

[ ] Aplicar Teto Máximo de Reembolso por Período | Valor Limite R$: [ 0,00 ]

3. ATRIBUTOS COMPLEMENTARES E MEMÓRIA DE CÁLCULO

[X] Ativar Gravação de Memória de Cálculo Dinâmica para Auditoria de Folha [ ] Disparar Custo de Encargo Interno Associado

4. MATRIX TRIBUTÁRIA ESOCIAL E CONFIGURAÇÕES FISCAIS

Código da Rubrica Destino: [ 1658 ] Natureza eSocial: [ 1099 ] Incidência INSS: [ ISE - Isento ] DSR: [ Não ] Incidência FGTS: [ ISE - Isento ] Médias: [ Não ] Incidência IRRF: [ SAL - Salário ] Impacto Financeiro: [ Sim ]

Clientes com mesma regra

  • Fapes, Hikvision e Syngenta: Estes clientes operam estritamente sob o modelo de lançamento manual em valor. O mecanismo dynamic absorve este comportamento definindo o parâmetro “Modo de Captura Operacional da Rubrica” como “Valor Manual Direto” nas suas respectivas chaves de parametrização de perfil, mantendo a integridade do input inserido pelos analistas de RH sem a interferência de regras de salário/horas.
  • Minipreco: O fluxo dinâmico unifica esta operação ao ativar a flag de restrição por tipo de vínculo configurada para “Estagiário”, selecionando o modo de incompatibilidade como “Bloqueio Fatal / Pânico” e parametrizando o modo de captura como “Proporcionalização Horas”. O motor intercepta as variáveis globais de salário contratual e carga horária mensal para realizar a divisão e multiplicação pela quantidade lançada exatamente como no fluxo original.

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