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:
- A verba é calculada apenas se houver um lançamento válido (
Lancamento) e aQuantidadelançada for maior que zero. - É realizada uma validação para garantir que o
Empregadoseja 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. - Se as condições forem atendidas, o
ValorTotalda verba é calculado dividindo oVG_VlrSalNom(Valor do Salário Nominal) peloVG_HsMes(Horas Mensais) e multiplicando o resultado pelaLancamento.Quantidade. - O valor final é arredondado para o padrão do sistema utilizando a função
Func_ArredondamentoPadrao. - A memória de cálculo detalha os valores utilizados na operação.
- A verba é calculada apenas se houver um lançamento válido (
-
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